Руткит Руткит (англ. rootkit, т.е. «набор root'а») — программа или набор программ для скрытия следов присутствия злоумышленника или вредоносной программы в системе. Термин Rootkit исторически пришёл из мира UNIX, и под этим термином понимается набор утилит или специальный модуль ядра, которые взломщик устанавливает на взломанной им компьютерной системе сразу после получения прав суперпользователя. Этот набор, как правило, включает в себя разнообразные утилиты для «заметания следов» вторжения в систему, снифферы, сканеры, кейлоггеры, троянские программы, замещающие основные утилиты UNIX (в случае неядерного руткита). Rootkit позволяет взломщику закрепиться во взломанной системе и скрыть следы своей деятельности путём сокрытия файлов, процессов, а также самого присутствия руткита в системе.
В Windows из-за Windows File Protection переписывание системных файлов затруднено (хотя и его можно обойти!), поэтому основные способы внедрения в систему — модификация памяти. - перехват системных функций Windows API (API hooking) на уровне пользователя;
- то же на уровне ядра (перехват Native API);
- изменение системных структур данных;
- модификация MBR и загрузка до ядра операционной системы — буткиты (известный представитель BackDoor.MaosBoot).
Данный вид вредоносных кодов очень давно известен в мире Windows и с начала 90х годов прошлого столетия носит название стелс-вируса (Stealth). Кроме того, руткиту нужно как-то поставить себя на автозапуск. Нельзя не признать, что в Windows для этого существуют способы помимо «стандартных».
Кроме непосредственно себя руткит, как правило, может маскировать присутствие в системе любых описанных в его конфигурации каталогов и файлов на диске, ключей в реестре. По этой причине естественным образом появились «навесные» руткитные библиотеки. Многие руткиты устанавливают в систему свои драйверы и службы (они, естественно, также являются «невидимыми»).
Руткиты могут «подкидывать» не только злоумышленники. Небезызвестен случай, когда корпорация Sony встраивала подобие руткита в свои лицензионные аудиодиски. Руткитами по сути является большинство программных средств защиты от копирования (и средств обхода этих защит — например, эмуляторы CD и DVD приводов). От «нелегальных» они отличаются только тем, что ставятся с ведома пользователя.
Что такое rootkit-программа
Термин "rootkit” обозначает механизмы и приемы, с помощью которых вредоносные программы, такие как вирусы, программы-шпионы и трояны, пытаются скрыть свое присутствие от приложений, блокирующих программы-шпионы, антивирусов и средств управления системой. Rootkit-программы подразделяются на несколько классов в зависимости от способности сохранять работоспособность после перезагрузки компьютера и типа запуска (в пользовательском режиме или в режиме ядра).
Постоянные rootkit-программы Постоянные rootkit-программы запускаются после каждого запуска системы. Такие программы содержат код, который должен выполняться при каждом запуске системы или при каждом выполнении входа в систему пользователем, поэтому этот код должен располагаться в постоянном хранилище, таком как файловая система или реестр, и должен быть способ запуска этого кода без участия пользователя.
Rootkit-программы в оперативной памяти Rootkit-программы в оперативной памяти не обладают хранимым кодом и потому после перезагрузки пропадают.
Rootkit-программы режима пользователя Есть много способов, с помощью которых rootkit-программы пытаются избежать обнаружения. К примеру, rootkit-программы, работающие в пользовательском режиме, могут перехватывать все вызовы к функциям Windows FindFirstFile и FindNextFile. На этих вызовах основано перечисление содержимого папок файловой системы в приложениях для просмотра содержимого диска, включая проводник Windows и командную строку. Когда приложение осуществляет вывод содержимого папки, в результатах которого можно будет обнаружить файлы этой скрытой вредоносной программы, она перехватывает вызов и удаляет записи о своих файлах из результатов вывода содержимого папки.
Собственный API-интерфейс Windows служит промежуточным звеном между клиентскими приложениями, работающими в пользовательском режиме, и службами, работающими в режиме ядра. Более сложные rootkit-программы, работающие в пользовательском режиме, перехватывают вызовы перечисления содержимого файловой системы, реестра и списка процессов собственного API-интерфейса Windows. Это препятствует обнаружению таких программ сканерами, которые сравнивают результаты перечисления содержимого с помощью обычного API-интерфейса Windows с результатами перечисления с помощью собственного API-интерфейса Windows.
Rootkit-программы режима ядра Rootkit-программы, работающие в режиме ядра, обладают еще более широкими возможностями. Помимо перехвата вызовов собственного API-интерфейса Windows в режиме ядра они также могут напрямую управлять структурами данных ядра. Распространенным способом сокрытия присутствия вредоносного процесса является удаление этого процесса из списка ядра, в котором перечислены активные процессы. В API-интерфейсах для управления процессами используется содержимое этого списка, поэтому такая вредоносная программа не будет отображаться в списке активных процессов в приложениях для управления процессами, таких как диспетчер задач Windows или Process Explorer.
Антируткиты
Это утилиты или резидентные модули, обнаруживающие в системе присутствие руткитов и (в разной мере) удаляющие их. Существует множество конкурирующих средств для этого — как платных, так и бесплатных, но все они используют сходные принципы действия: поиск расхождений в таблицах импорта, таблицах Native API и в файловой системе, тоесть Одна и та же информация получается несколькими способами с использованием API и «напрямую» и ищутся расхождения.
|