Добавить в цитаты Настройки чтения

Страница 7 из 12



1.6. Новаторские подходы хакеров – руткиты (rootkits)

Если троянцы, о которых говорилось выше, можно обнаружить с помощью системных утилит, то представители этого класса вычисляются только с помощью специальных утилит.

Руткиты представляют собой более продвинутый вариант троянских коней. Некоторые антивирусные компании не разделяют руткиты и троянцы, относя их к одной категории зловредных программ. Однако троян прячется на компьютере, обычно маскируясь под известную программу (например, Spymaster выдавает себя за приложение MSN Messenger), а руткиты используют для маскировки более продвинутые методы, внедряясь глубоко в систему.

Изначально словом «руткит» обозначался набор инструментов, позволяющий злоумышленнику возвращаться во взломанную систему таким образом, чтобы системный администратор не мог его видеть, а система – регистрировать. Долгое время руткиты были привилегией Unix-систем, но, как известно, хорошие идеи просто так не пропадают, и в конце ХХ века стали массово появляться руткиты, предназначенные для Microsoft Windows. О руткитах заговорили, только когда на их использовании в своих продуктах была поймана фирма Sony. Сегодня эксперты предсказывают бум этой технологии, и в ближайшие два-три года ожидается массовый рост количества руткитов – вплоть до 700 % в год. Самое печальное, что их будут использовать не только злоумышленники: руткиты станут массово применяться в коммерческих продуктах, в первую очередь для защиты от пиратства. Например, недавно было объявлено, что компания Microsoft создала руткит, обнаружить который невозможно. Не исключено, что это изобретение встретится в новых версиях Windows.

Обычному пользователю от этого не легче. Технология руткитов потенциально может быть использована для создания нового поколения программ-шпионов и червей, обнаружить которые после их проникновения в компьютер будет почти невозможно.

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

• системы, работающие на уровне ядра (Kernel Level, или KLT);

• системы, функционирующие на пользовательском уровне (User Level).

Первый известный руткит для системы Windows, NT Rootkit, был написан в 1999 году экспертом в области безопасности Грегом Хоглундом в виде драйвера уровня ядра. Он скрывал все файлы и процессы, в имени которых встречалось сочетание _root, перехватывал информацию, набираемую на клавиатуре, и использовал другие способы маскировки.

Самым известным на сегодня руткитом является Hacker Defender. Эта программа работает в режиме пользователя и маскируется за счет перехвата некоторых API. Hacker Defender может обрабатывать сетевой трафик до того, как он будет передан приложению, то есть любая программа, работающая в сети, может быть использована для взаимодействия со взломщиком. Руткит умеет скрывать файлы и процессы, записи в реестре и открытые порты и может неправильно показывать количество свободного места на диске. Он прописывается в автозагрузку, оставляя для себя черный вход, и прослушивает все открытые и разрешенные брандмауэром порты на предмет 256-битного ключа, который укажет, какой порт использовать для управления. Hacker Defender перехватывает функции запуска новых процессов, что позволяет ему заражать все программы, запускаемые пользователем. Он полиморфен: для шифрования исполняемых файлов руткита обычно используется утилита Morphine.

Примечание

Все современные версии руткитов могут прятать от пользователя файлы, папки и параметры реестра, скрывать программы, системные службы, драйверы и сетевые соединения.

Одним из наиболее опасных руткитов является FU, выполненный частично как приложение, а частично как драйвер. Он не занимается перехватами, а манипулирует объектами ядра системы, поэтому найти такого вредителя очень сложно.



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

Популярен способ блокировки доступа к файлу: файл открывается в режиме монопольного доступа или блокируется с помощью специальной функции; удалить такой файл стандартными способами невозможно. Если попытаться воспользоваться отложенным удалением (во время следующей загрузки), например с помощью программы типа MoveOnBoot, то, скорее всего, запись об этой операции будет через некоторое время удалена либо файл будет переименован.

Любопытный способ защиты использует червь Feebs. Для борьбы с антивирусами, антируткитами и другими утилитами, пытающимися уничтожить его, он выставляет приманку – замаскированный процесс, не видимый на вкладке Процессы в окне Диспетчера задач. Любое приложение, которое попытается обратиться к этому процессу, уничтожается. Программа может устанавливаться как дополнительный модуль к браузеру Internet Explorer, изменяющий его функциональность. Стандартные средства контроля автозапуска типа msconfig не видят эти параметры, а применение дополнительных утилит для изучения системы требует от пользователя определенной квалификации, поэтому единственный действительно надежный способ уничтожить такую программу – отформатировать жесткий диск и заново установить операционную систему.

К сожалению, существующие сегодня специализированные программы, предназначенные для обнаружения руткитов, и традиционные антивирусы не дают стопроцентной гарантии безопасности. Обладая исходным кодом этих программ, можно создать любые модификации руткитов или включить часть кода в любую шпионскую программу. Главное умение руткитов – не прочно закрепиться в системе, а проникнуть в нее, поэтому основным правилом для вас должны стать максимальная защита и осторожность.

1.7. Уязвимости программ и хакерские технологии

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

Можно выделить три причины проникновения вирусов:

• ошибки при разработке программного обеспечения;

• ошибки в настройках;

• воздействие на пользователя (социальный инжиниринг).

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