<<
>>

Разновидности руткитов

Рассмотрим пять разновидностей существующих в настоящее время руткитов. В каждом случае нас будет интересовать вопрос: «Где прячется руткит?».

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 или компакт-диске.

До сих пор речь шла о пассивных руткитах, которые не вмешиваются в работу программы их обнаружения. Но есть еще и активные руткиты, которые отыскивают и уничтожают эти программы или по крайней мере модифицируют их, чтобы они всегда объявляли: «Руткиты не найдены!». Для этого требуется предпринять более сложные меры воздействия, но, к счастью, активные руткиты на нашем горизонте еще не появились.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Разновидности руткитов:

  1. Разновидности инсценировок
  2. Разновидность рекомендательной формы
  3. ДВЕНАДЦАТЬ РАЗНОВИДНОСТЕЙ ЛЮБВИ
  4. Республика и ее разновидности
  5. § 3. Разновидности вопросов
  6. 3. Разновидности общественных объединений
  7. Монархия и ее разновидности
  8. I. 1. 2. Разновидности системного подхода.
  9. 3. Разновидности потребительских кооперативов
  10. 3. Разновидности объединений юридических лиц
  11. 3. Разновидности дееспособности граждан