5. Разрушение системного окружения: "наборы отмычек" и средства создания образа состояния системы



Разрушение системного окружения: "наборы отмычек" и средства создания образа состояния системы


До сих пор речь шла о многочисленных способах размещения в системе скрытых ловушек, чтобы обычные пользователи даже и не догадывались о том, что же происходит на самом деле. Многие представленные концепции касались средств, работающих под видом обычных программ (несмотря на зловредность выполняемых ими действий), которые скрывались в таких местах, где их легко найти. К сожалению, взломщики способны на более зловредные поступки, в чем вы очень скоро убедитесь. Из-за того, что профессиональное знание архитектуры операционных систем в настоящее время стало нормой, полное нарушение целостности системы становится тривиальной задачей.

"Наборы отмычек"



Что произойдет, если под контролем взломщика окажется сам код операционной системы? Предпосылки такого подхода появились еще в те времена, когда компиляция ядра UNIX иногда выполнялась еженедельно, если система плохо была настроена или находилась на началъном этапе установки. Естественно, что наборы программ, которые вместо обычных двоичных файлов операционной системы встраивают компоненты типа "троянский конь", получили название "наборов отмычек". Такие средства обеспечивают самую большую дискредитацию взламываемого компьютера. В главе 8 были описаны "наборы отмычек", предназначенные для системы UNIX, которые обычно состоят из четырех групп инструментов, адаптированных под конкретную платформу и версию операционной системы: (1) программы типа "троянский конь", например такие, как измененные версии login, netstat и ps; (2) программы, предназначенные для создания "потайных ходов", например вставки в файл inetd; (3) программы перехвата потока данных в сети; (4) программы очистки системных журналов.
Существует огромное множество "наборов отмычек" для системы UNIX. Для того чтобы убедиться в этом, достаточно заглянуть только на один Web-узел, находящийся по адресу http://packetstorm.security.com/UNIX/penetration/rootkits/. Еще несколько подобных наборов можно найти на этом же Web-узле по адресу /UNIX/misc. По-видимому, одним из наиболее известных является "набор отмычек" для системы Linux версии 5, в который входит несколько модифицированных версий основных утилит, включая su, ssh и несколько анализаторов сетевых пакетов.
Чтобы не отставать, операционная система Windows NT/2000 в 1999 году тоже "обзавелась" своим собственным набором аналогичных средств. Это случилось благодаря группе хакеров Грега Хогланда (Greg Hoglund). Грег застал врасплох сообщество Windows, продемонстрировав рабочий прототип таких инструментов, который способен выполнять сокрытие параметров системного реестра и "подмену" исполняемых файлов. Этот набор можно использовать в исполняемых файлах типа "троянский конь" без изменения их содержимого. Все эти трюки основываются на использовании перехвата функций (function hooking). Таким образом можно "модифицировать" ядро NT, в результате чего будут захвачены системные вызовы. С помощью "набора отмычек" можно скрыть процесс, параметр системного реестра или файл, а также перенаправить перехваченный вызов функциям программ типа "троянский конь". Полученный результат способен превзойти ожидания от внедрения обычных "троянских коней": пользователь не может быть уверен даже в целостности исполняемого кода.

Контрмеры против "наборов отмычек"



Если оказалось, что нельзя доверять даже командам Is или dir, значит, пришло время признать себя побежденным: создайте резервные копии важных данных (но только не двоичных файлов!), удалите все программное обеспечение, а затем переустановите его с проверенных носителей. Не следует особо надеяться на резервные копии, поскольку абсолютно неизвестно, когда именно взломщик пробрался в систему. После восстановления программное обеспечение также может оказаться "троянизированным".
Важно не забывать одно из золотых правил обеспечения безопасности и восстановления после сбоев: известные состояния (known states) и повторяемость (repeatability). Производственные системы зачастую должны быть быстро переустановлены, так что хорошо документированная и достаточно автоматизированная процедура установки позволит сэкономить много времени. Наличие проверенных носителей, готовых для выполнения процедуры восстановления, также достаточно важно. Если под рукой имеется компакт-диск с полностью сконфигурированным образом Web-сервера, то выигрыш во времени окажется еще более значительным. Другим хорошим приемом является документирование процесса настройки производственного режима эксплуатации, а не промежуточного режима, поскольку в процессе построения системы или ее обслуживания могут появиться изъяны в системе защиты (появление новых совместно используемых ресурсов и т.д.). Убедитесь, что в вашем распоряжении имеется контрольный список или автоматизированный сценарий возврата в производственный режим.
Подсчет контрольных сумм также оказывается хорошей защитой против использования "наборов отмычек", однако этот прием нужно применять к системе в исходном состоянии. Средства, подобные свободно распространяемой утилите MD5sum или программе Tripwire, которая рассматривалась выше, способны "снимать" образы файлов и уведомлять о нарушении их целостности при возникновении изменений. Перенаправление исполняемых файлов, выполняемое "набором отмычек" системы NT/2000, теоретически может нейтрализовать подсчет контрольных сумм. Однако поскольку код при этом не изменяется, но в то же время "захватывается" и передается через другую программу, то такой прецедент все же можно выявить.
В момент написания этой книги "набор отмычек" систем NT/2000 по-прежнему оставался на стадии альфа-версии и в основном предназначался для демонстрации наиболее важных особенностей, а не для реального применения. Так что его легко обнаружить. Просто проверьте наличие файлов deploy.exe и _root_.sys. Запуск и остановку этих средств можно выполнить с помощью команды net:

net start_root_ net stop_root_

He упускайте из вида такие наиболее опасные компоненты "наборов отмычек", как программы-анализаторы сетевых пакетов. Эти средства перехвата данных обладают особым коварством, поскольку способны "на лету" перехватывать сетевой трафик в процессе выполнения обычных операций.
При передаче информации по сети используйте механизмы шифрования, такие как сервер SSH (Secure Shell), протокол SSL (Secure Sockets Layer), шифрование почтовых сообщений POP (Pretty Good Privacy) или шифрование на уровне IP, которое обеспечивается при реализации виртуальных частных сетей на базе протокола IPSec (см. главу 9). Это надежные средства защиты от атак, направленных на перехват пакетов. Использование сетей с коммутируемой архитектурой и виртуальных локальных сетей может значительно снизить риск взлома, однако при использовании таких средств, как утилита dsniff, нельзя предоставить никаких гарантий, (см. главу 8).

Создание образа системного окружения для нейтрализации механизма проверки контрольных сумм



Существует несколько средств для создания зеркального образа системных томов (табл. 14.3). Эти мощные утилиты помогают сэкономить время и при возникновении внештатной ситуации могут оказаться просто незаменимыми. Однако их побитовая точность фиксирования состояния системы может быть использована для того, чтобы обвести вокруг пальца механизмы обеспечения безопасности, основанные на проверке контрольных сумм текущих системных данных.
Очевидно, что для осуществления подобной атаки требуется высокий уровень доступа к целевой системе, поскольку все перечисленные в табл. 14.3 процедуры требуют перезапуска системы или физического удаления жесткого диска. Впрочем, если взломщик получит этот вид доступа, то с уверенностью можно сказать, что он сможет отвести душу по-настоящему (читателям, которым в это не верится, стоит еще раз перечитать раздел о "наборах отмычек"). Подумайте о практическом применении приложений, основанных на использовании такой системной информации, как содержимое списка процессов, данных о загрузке центрального процессора и т.д. На основе этих данных генерируются контрольные суммы, применяемые в дальнейшем при санкционировании некоторых видов транзакций.

Таблица 14.3. Некоторые технологии копирования состояния системы и связанные с ними программные продукты

Технология
Программный продукт
Адрес URL
Дублирование жестких дисков
Image MASSter OmniClone line
http://www.ics-iq.com 
http: //www.logicube.com
Клонирование дисков
Drive Image FlashClone Norton Ghost RapiDeploy
http: //www.powerguest .com 
http: //www.ics-iq.com 
http: //www.symantec .com 
http: //www.altiris .com
Работа с виртуальными дисками, защищенными от записи
VMWare
http://www.vmware.com
Восстановление системы
9Lives (Win Bx only) SecondChance (только Win 9x)
http://www.duomark.com/9Lives 
http: //www.powerquest.com

Контрмеры



Физическая безопасность всегда должна быть во главе списка защитных мероприятий любой информационной системы. Двери с надежными замками могут предотвратить атаки, направленные на копирование или клонирование системных данных.
Положение становится более серьезным при взломе, при котором злоумышленники пользуются приложением, ранее приобретенным самой компанией. Надежные приложения должны быть основаны на технологиях, которые никак не связаны с функционированием системных компонентов, обеспечивающих возможность использования списка процессов, файловой системы или других данных, которые могут быть легко воспроизведены с помощью средств создания образа системы. Если производители программного обеспечения не спешат делиться техническими подробностями и обосновывать надежность своих программ, лучше поискать какую-нибудь альтернативу.