Как заметать следы. Часть 7

Как заметать следы. Часть 7

В 2000 году я начал публикацию перевода первой части статьи Ван Хаузера "Как скрывать следы своих проделок". Серия оказалась востребованной и популярной, да и перевод не был завершен до конца ("Как заметать следы", часть 1, КГ №42 (283) от 24.10.2000 г., часть 2, КГ №43 (284) от 31.10.2000 г., часть 3, КГ №44 (285) от 8.11.2000 г., часть 4, КГ №45 (286) от 14.11.2000 г., часть 5, КГ №46 (287) от 21.11.2000 г., часть 6, КГ №48 (289) от 5.12.2000 г.).

Пришло время "собирать камни" и завершить начатое… Тем более, что многое изменилось с тех пор в законодательстве, в компьютерной индустрии, произошло много интересных и печальных событий… Я имею в виду возбуждение 26 уголовных дел в Минске по компьютерным преступлениям в январе 2001 года сразу после вступления в силу нового уголовного кодекса РБ.
В статьи я включил, на мой взгляд, показательные выдержки из отсутствующей главы, изъятой издателями из книги Кевина Митника "Искусство обмана". Все же глава появилась сначала на списке рассылок Yahoo, далее распространившись в Интернет. Название книги "Искусство обмана" вызывает ассоциации с философскими откровениями теоретика военного искусства древнего Китая Сунь Цзы: "Война — это путь обмана".

Первый опыт Митника
Под термином "билет с пересадкой" подразумевается возможность для человека сменить автобусные маршруты и продолжить поездку к месту назначения, но я придумал, как использовать "билеты с пересадкой" для бесплатных путешествий, куда мне хотелось. Добыча пустых "билетов с пересадкой" была прогулкой по парку: мусорные корзины на автобусных станциях были всегда заполнены только частично использованными билетами, которые выбрасывали сами водители перед сменой маршрутов. С пачкой пустых листов и дыроколом я мог отмечать только мои поездки и путешествовать везде, где ходили автобусы Луизианы. После долгого времени я имел все, и, к тому же, запомненные наизусть, расписания маршрутов для всей системы. Это — ранний пример моей удивительной памяти на определенные типы информации, и до сих пор я могу вспомнить телефонные номера, пароли и другие заметки вплоть до детства.
Другой интерес, проявленный в раннем возрасте, — это мое увлечение фокусами. Раз поняв, как работает новый трюк, я практиковался, практиковался и практиковался до тех пор, пока не овладевал им. В значительной степени благодаря фокусам я обнаружил в себе удовольствие от одурачивания людей.

5. Проверка установленных программ для обеспечения безопасности
На большинстве сайтов, на которых предприняты повышенные меры защищенности, стоят ревизоры безопасности, которые запускаются с помощью cron. Обычная директория для crontab — это /var/ spool/cron/crontab. Отметьте для себя все записи, особенно в корневом файле, и проверьте все файлы, которые они активизируют. Для просто быстрой проверки crontab корневого уровня напечатайте crontab -l root.
Некоторые из упомянутых инструментов безопасности чаще всего устанавливают на администраторские учетные записи. Другие (маленькие утилитки для проверки WTMP и, если также установлен, перехватчик пакетов) находятся в их каталогах ~/bin.
Ниже читайте, как выявлять таких администраторов и проверять их директории.
Внутренние программы-ревизоры могут быть: tiger, cops, spi, tripwire, l5, binaudit, hobgoblin, s3 и т.д.
Вам следует проверить, что выдают в отчетах ревизоры, и, если они что-то записывают в отчет, это может быть регистрацией следов вашего вторжения.
Если вы действительно способны это сделать, то:
— Обновите файлы данных программы-ревизора — так, чтобы она больше не генерировала отчеты этого типа.
— Перепрограммируйте/модифицируйте программное обеспечение — так, чтобы оно больше не создавало эти отчеты. (Я люблю подделывать программы cpm;-)).
— По возможности уберите так называемые "черные ходы", если вы их поставили, и пытайтесь достичь такого же контроля над системой, но по-другому.

6. Проверка администраторов
Для вас также существенно проверять системных операторов (сисопов) на предмет предпринимаемых ими мер противодействия, и первое, что вам для этого нужно, — это знать, какие учетные записи обычно они используют.
Вы можете проверить файл .forward в корневой директории и алиасы (псевдонимы) корня. Посмотрите в sulog и обратите внимание на тех людей, которые провели успешное выполнение su на доступ на уровне root. Возьмите файл группы и проверьте группы администраторов или пользователей с повышенными правами (и любые другие группы в этом файле, которые связаны с администрированием). grep, примененный с параметром admin к файлу с паролями, тоже может выдать администраторов.
Теперь вам следует узнать, кто же является администратором на машинах. Перейдите к их каталогам (используйте chid.c, changeid.c или что-нибудь похожее, чтобы стать пользователем, если нет разрешения для корня читать любой файл) и проверьте их .history, .sh_history, .bash_history, чтобы увидеть, какие команды обычно они набирают. Проверьте их файлы .profile, .login, .bash_profile, чтобы обнаружить, какие псевдонимы прописаны и выставлена ли автоматическая проверка безопасности или протоколирование в журналы. Просмотрите их каталог ~/bin! Чаще всего туда и помещаются скомпилированные программы, обеспечивающие безопасность! И непременно пройдитесь по другим каталогам, которые им выделены (применив ls -alR ~/).
Если вам удалось обнаружить какую-нибудь чушь, связанную с обеспечением мер безопасности, читайте пятый пункт о возможностях преодолеть эту защиту.

7. Как "скорректировать" программы, проверяющие контрольные суммы
Бывает, что администраторы действительно опасаются хакеров и устанавливают программы для обнаружения любых изменений в их критичных бинарных файлах. Если какой-нибудь двоичный файл был затронут, администратор проводит проверку на уровне бинарных кодов, и вмешательство обнаруживается.
Итак, как вы могли бы:
а) выяснить, установлены ли подобные ревизоры двоичных кодов и
б) модифицировать их так, чтобы еще можно было внедрить в них своих "троянских коней"?
Заметьте, что существует много ревизоров двоичных кодов, и на деле легко написать еще один. Это занимает всего лишь 15 минут, ревизор может быть реализован с помощью небольшого скрипта. Поэтому такие программы трудно обнаружить, если они установлены.
Еще заметьте, что встроенное программное обеспечение, проводящее аудит безопасности, также поддерживает такие бинарные проверки.
Вот список нескольких широко используемых.

Программа Обычное размещение Имена двоичных файлов
tripwire /usr/adm/tcheck, /usr/local/adm/tcheck базы данных, tripwire
binaudit /usr/local/adm/audit auditscan
hobgoblin ~user/bin hobgoblin
raudit ~user/bin raudit.pl
l5 Каталог компиляции l5
Но, очевидно, у администраторов в наличии слишком много возможностей! Программное обеспечение или база данных могут разместиться даже на постоянно демонтируемом диске или экспортированном разделе NFS (сетевая распределенная файловая система), находящемся на другом хосте. Или база данных с контрольными суммами находится на носителе, защищенном от записи. В реальности может быть слишком много вариантов. То, что вы обычно можете, — это только сделать быструю проверку, инсталлированы или нет вышеназванные пакеты и возможно или нет изменить двоичные данные. Если вы не смогли их обнаружить, но это действительно очень хорошо защищенный сайт, тогда вам не следует изменять двоичные файлы. Уверен, что они хорошо их замаскировали.
Но что, если вам удалось найти эти установленные программы, и вы можете модифицировать их (то есть они или на не защищенном от записи носителе, или на чем-то, чью защиту можно преодолеть, например, на диске, который не демонтируют, или постоянно монтируемом носителе, не закрытом от записи)?
У вас есть две возможности:
Первое, что вы можете, — это просто проверить параметры программы и запустить update с измененным двоичным файлом. Например, для tripware это будет tripwire
-update /bin/target. Второе, что вам доступно, — это изменить список проверяемых бинарных файлов, убрав запись о файле, вами замещенном.
Заметьте, что вам следует также проверить, контролируются ли изменения самого файла с базой данных! Если да, то сделайте так же для соответствующей записи update, delete.

8. Уловки пользователей для обеспечения безопасности
Это встречается редко, и описание приводится только ради полноты.
Некоторые пользователи, которых зовут администраторами или хакерами, обычно не желают, чтобы их учетными записями пользовался кто-то еще. Поэтому иногда встречаются особенности в их файлах автозапуска, применяемые ими для безопасности.
Проверьте все файлы "с точками" (.profile, .cshrc, .login, .logout и т.п.) для поиска команд, которые они запускают, какую "историю" записывают в журналы и какие пути поиска они устанавливают. Если, например, $HOME/bin идет перед /bin в путях поиска, вы должны проверить содержимое этого каталога… может случиться, что там находится программа, называемая "ls" или "w", которая фиксирует в журнал полное время исполнения и лишь после этого запускает реальную программу.
Другие автоматически проверяют журналы WMTP и lastlog на предмет применения zap, манипуляции файлами .rhosts, .Xauthority, работы активных перехватчиков пакетов и т.д.
Никогда не шутите с учетными записями, принадлежащими Unix wizard'ам (кудесникам).

9. Разное
В заключение, прежде чем сказать несколько слов о поведении при нахождении под подозрением или арестом, я здесь приведу разные мысли, которые стоят того, чтобы о них был разговор.
Старые клиенты telnet экспортировали переменную USER. Администратор, который знает об этом и модифицировал telnetd, может получить имена всех пользователей и таким образом идентифицировать учетную запись, с которой вы ведете взлом, однажды заметив проявление вашей активности. Новые клиенты исправлены, но опытный администратор может использовать другие возможности для идентификации пользователя — переменные UID, MAIL и HOME все еще экспортируются и позволяют легко идентифицировать учетную запись, использованную взломщиком. Перед тем как использовать telnet, измените переменные USER, UID, MAIL и HOME и, может быть, даже переменную PWD, если вы находитесь в домашнем каталоге.
На машинах HP-UX до версии 10 у вас есть возможность создавать скрытые каталоги. Я веду речь не о файлах с точкой ".", а об особом флаге. Фирма HP ввела его в 9 версии, но убрала в 10, потому что он использовался только хакерами;-). Если вы сделаете chmod +H directory, каталог будет невидимым для ls -al. Чтобы увидеть скрытые директории, необходимо добавить параметр -H к ls, например, ls -alH все покажет.
Если когда бы то ни было вам потребуется изменить временную метку файла, помните, что вы можете использовать команду touch для установки atime и mtime. Установить ctime можно только при помощи прямой записи на жесткий диск…
Если вы установили перехватчик пакетов, и это серьезная система, обеспечьте или закрытие выходных данных перехватчика, используя шифрующий алгоритм (я не веду речь о rot13), или пересылку перехватчиком всех данных через icmp или udp на внешний хост, находящийся под вашим контролем. Это все делается затем, чтобы, если администратор нашел что-либо, подобное перехватчику (использовав cpm и другие утилиты, проверяющие их на присутствие), то не смог бы определить из лог-файла, какие данные были захвачены и также не смог предупредить хозяев хостов, которые вы контролировали с помощью перехватчиков пакетов.

Автор перевода и комментариев
Valient Newman,
http://www.geocities.com/werebad/



Компьютерная газета. Статья была опубликована в номере 50 за 2003 год в рубрике безопасность :: разное

©1997-2024 Компьютерная газета