Разновидности руткитов
1. Руткиты во встроенном программном обеспечении.
По крайней мере теоретически руткиты могут прятаться за счет перезаписи BIOS той копией, в которой они находятся. Такие руткиты будут получать управление при каждом запуске машины, а также при каждом запуске функции BIOS. Если после каждого применения руткит сам себя шифрует, а перед каждым применением дешифрует, то его будет крайне сложно обнаружить.2. Руткиты-гипервизоры. Очень коварная разновидность руткитов, способная запускать всю операционную систему и все приложения на виртуальной машине под своим управлением. Первое доказательство существования этой концепции, ее синяя таблетка (как в фильме «Матрица»), было продемонстрировано польским хакером Джоанной Рутковской (Joanna Rutkowska) в 2006 году. Эта разновидность руткитов, как правило, модифицирует загрузочную последовательность, чтобы при включении питания в роли надстройки над оборудованием выполнялся гипервизор, который затем запустит операционную систему и ее приложения на виртуальной машине.
Сильной стороной этого, как и предыдущего, метода встраивания руткита является то, что ничего не скрывается ни в операционной системе, ни в библиотеках или программах, поэтому детекторы руткитов, ведущие в них поиск, останутся ни с чем.3. Руткиты в ядре. В настоящее время к самой распространенной разновидности рут- китов относятся те из них, которые заражают операционную систему и прячутся в ней в виде драйверов устройств или загружаемых модулей ядра. Руткит может запросто заменить большой, сложный и часто изменяемый драйвер на новый, в котором содержится старый драйвер плюс сам руткит.
4. Руткиты в библиотеках. Другим местом, где может прятаться руткит, является системная библиотека, например libc в Linux.
Такое размещение дает вредоносной программе возможность проверять аргументы и возвращать значения системных вызовов, изменяя их по своему усмотрению и оставаясь незамеченной.5. Руткиты в приложениях. Еще одним местом, где прячутся руткиты, являются большие прикладные программы, особенно те, которые в процессе своей работы создают множество новых файлов (профили пользователей, изображения предпросмотра и т. д.). Эти новые файлы являются неплохим местом, где можно укрыться, не вызвав ни у кого удивления самим фактом существования этих файлов.
Пять мест, где могут прятаться руткиты, показаны на рис. 9.26.
Рис. 9.26. Пять мест, где может прятаться руткит |
Еще один класс методов обнаружения основан на хронометрировании, особенно вирту- ализированных устройств ввода-вывода. Предположим, что считывание какого-нибудь регистра устройства PCI на настоящей машине занимает 100 тактов и это время имеет высокую степень повторяемости. В виртуальной среде значение этих регистров поступает из памяти, и время их считывания зависит от того, откуда оно производится: из принадлежащей центральному процессору кэш-памяти первого уровня, из кэш-памяти второго уровня или из самой оперативной памяти. Программа обнаружения может без особого труда заставить это значение перемещаться вперед и назад между этими состояниями и замерять разницу между показателями времени считывания. Учтите, что эта изменчивость вызвана определенными причинами, а не изменением самого времени считывания.
Еще одна область, в которой можно провести замеры времени, — это выполнение привилегированных команд, особенно тех, которые на реальном оборудовании требуют всего лишь нескольких тактов и сотни или тысячи тактов, когда их требуется эмулировать. Например, если считывание значений некоторых защищенных регистров центрального процессора на настоящем оборудовании занимает 1 нс, то не существует способа осуществления миллиарда системных прерываний и эмуляций за 1 с.
Конечно, гипервизор может обмануть программу обнаружения, сообщая об эмулированном, а не о реальном времени на всех критичных по времени системных вызовах. Программа обнаружения может проигнорировать эмулированное время, подключившись к удаленной машине или веб-сайту, предоставляющему точный масштаб времени. Поскольку программе обнаружения нужно измерять только интервалы времени (например, сколько времени займет выполнение миллиарда считываний значений защищенных регистров), разница во времени между локальными и удаленными часами не имеет значения.Если между аппаратурой и операционной системой не проскользнул какой-нибудь гипервизор, руткит может прятаться внутри операционной системы. Его трудно обнаружить, загружая компьютер, поскольку операционной системе нельзя доверять. Например, руткит может установить большое количество файлов, все имена которых начинаются на «$$$», и, читая содержимое каталогов от имени пользовательских программ, никогда не сообщать о существовании таких файлов.
Один из способов обнаружения руткита при таких обстоятельствах заключается в загрузке компьютера с надежного внешнего носителя, такого как подлинный DVD или флеш-накопитель USB. После этого диск может быть просканирован программой, разработанной для борьбы с руткитами, без опасений, что руткит вмешается в сканирование. В качестве альтернативы можно сделать криптографический хэш каждого файла операционной системы и сравнить его с тем списком, который был сделан при установке системы и сохранен вне ее, в недоступном месте. Если такие хэши с оригинала не делались, они могут быть вычислены с установочного флеш-накопителя USB, компакт-диска или DVD или можно сравнить сами файлы.
Руткиты в библиотеках и прикладных программах спрятать труднее, но если операционная система была загружена с внешнего носителя и ей можно доверять, их хэши также можно сравнить с заведомо хорошими и сохраненными на флеш-накопителе USB или компакт-диске.
До сих пор речь шла о пассивных руткитах, которые не вмешиваются в работу программы их обнаружения. Но есть еще и активные руткиты, которые отыскивают и уничтожают эти программы или по крайней мере модифицируют их, чтобы они всегда объявляли: «Руткиты не найдены!». Для этого требуется предпринять более сложные меры воздействия, но, к счастью, активные руткиты на нашем горизонте еще не появились.
Еще по теме Разновидности руткитов:
- Разновидности инсценировок
- Разновидность рекомендательной формы
- ДВЕНАДЦАТЬ РАЗНОВИДНОСТЕЙ ЛЮБВИ
- Республика и ее разновидности
- § 3. Разновидности вопросов
- 3. Разновидности общественных объединений
- Монархия и ее разновидности
- I. 1. 2. Разновидности системного подхода.
- 3. Разновидности потребительских кооперативов
- 3. Разновидности объединений юридических лиц
- 3. Разновидности дееспособности граждан