Руткиты: внутренняя угроза

Введение

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

Сегодня интернет-злоумышленники действуют куда масштабнее! Их уже не прельщает «всего лишь» заражение сотен тысяч компьютеров и даже пандемия нового вируса. Они стремятся получить контроль над множеством ПК и использовать их для своих темных дел. Из миллионов зараженных систем они создают огромные сети, управляемые через Интернет. Используя гигантскую вычислительную производительность «зомби-сетей», можно, например, производить массовые рассылки спама и организовывать хакерские атаки невиданной ранее мощности. В качестве вспомогательного инструмента для таких целей очень часто используют новый, особо опасный тип вредоносных программ – руткиты

Чем опасны руткиты для компьютера

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

Эти коды маскируют определенный ключ реестра, который в свою очередь уже и запускает тот вредоносный объект, опасный для ПК. Таким образом, руткиты увеличивают продолжительность его влияния на компьютер.  

Эти маскирующие руткиты трудны в обнаружении. Они используют хитрые схемы скрыть свое местоположение. Также они могут прятаться в системе на уровне ядра или замаскироваться под полезное программное обеспечение или приложение. 

Руткиты относятся к программам с высоким уровнем риска для ПО и плохо поддаются удалению. Они могут быть опасны не только для стационарного компьютера и ноутбука, но и для IoT (сеть передачи данных между «вещами»).

Хакеры используют руткиты в целях:

  • Получить доступ к системе (backdoor – англ. черный ход) и контролировать ее. В данном случае руткит используется как шлюз для взлома ПК с последующим получение его учетных записей, паролей, кодов, личных данных.
  • Заразить ПК вирусными программным обеспечением. Такое ПО маскируется с помощью руткита и внедряется в ОС.
  • Контролировать антивирусные и другие сканирующие программы, чтобы распространить вредоносные объекты в системе. 

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

Родоначальники и популяризаторы

Статья Хогланда датирована 1999 годом. В ней он опирается на исследования ядра Windows, опубликованные годом раньше в форумах Usenet неким программистом из Шри-Ланки.

Еще раньше, начиная с 1995, гуру Windows-программирования Джефри Рихтер (Jeffrey Richter) в своей знаменитой книге «Advanced Windows» и четвертом ее издании «Programming Applications for Microsoft Windows» раскрывает технологии перехвата системных вызовов на уровне пользователя , которые будут впоследствии использованы во многих руткитах с точностью до приведенного в книге исходного кода.

Техники перехвата системных вызовов на уровне ядра общедоступно раскрыты в двух других классических книгах по программированию: С. Шрайбер «Недокументированные возможности Windows 2000», 2001 (Sven Schreiber Undocumented Windows 2000 secrets) и П. Дабак и др. «Недокументированные возможности Windows NT», 1999 (P. Dabak et al Undocumented Windows NT).

Stealth-вирусы

Стелс-вирусы появились едва ли не раньше, чем UNIX-руткиты – около 1990 г. В отличие от UNIX-руткитов, основная задача которых – впустить злоумышленника в систему и маскировать его действия, стелс-вирусы DOS, заражая файлы, просто скрывали себя от пользователя и антивирусных программ. То же делает и современный Windows-руткит. Используемые стелс-вирусами и Windows-руткитом технологии также во многом схожи. Например, перехват системных вызовов и маскировка вредоносного кода посредством выдачи ложной информации о содержимом диска или памяти – одна из техник Windows-руткитов и преобладающая техника стелс-вирусов.

Windows-руткиты появились десятью годами позже стелс-вирусов, и то, что их назвали именно руткитами, а не стелс-вирусами, что было бы логичнее, – заслуга исключительно Грега Хогланда (Greg Hoglund). Он был одним из первых, кто реализовал появляющиеся тут и там техники обхода системных механизмов защиты Windows в форме утилиты, нацеленной на сокрытие информации в системе. Результаты его работы были опубликованы в электронном журнале . Утилита, названная автором NT Rootkit, впоследствии была применена во многих вредоносных программах и по сей день вдохновляет исследователей и руткитостроителей.

Концепт-руткиты

К 2006 году большинство руткитов уже более или менее успешно обнаруживались расплодившимися к тому времени антируткитами; бум руткитов пошел на спад. Но пытливая исследовательская мысль продолжала поиск новых недетектируемых техник.

Больше всего энтузиазма вызывала идея использовать аппаратную виртуализацию, встраиваемую в новые процессоры от Intel и AMD, для того чтобы решить задачу перехвата управления операционной системой. При таком перехвате ни одна антируткит-утилита, известная на сегодняшний день, не может детектировать руткит. В течение 2006 года было представлено три таких концепции: SubVirt (pdf), BluePill (pdf)
и Vitrio (pdf). Сейчас детектирование этих руткитов считается открытой проблемой – но «в дикой природе» они не встречаются.

Второе направление исследований – загрузочные руткиты. Они решают все ту же задачу тотального управления операционной системой, перехватывая ее на стадии загрузки. Старая идея записывания кода в загрузочный сектор диска, известная еще со времен DOS-вирусов, возродилась в виде концептуального руткита eEye Bootroot (pdf) в 2005 году. Была еще одна похожая концепт-реализация – Vbootkit (pdf) (2007), которая позиционировалась в первую очередь как исследование актуального в тот момент вопроса о безопасности MS Vista.

Фальшивые перспективы

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

Есть и другие утилиты — Avenger (http://swandog46.geekstogo.com/avenger.zip), Helios (http://helios.miel-labs.com/downloads/Helios.zip, утилита требует для установки Net Framework v.2.0.50727), DarkSpy (сетевая версия доступна по адресу www.fyyre.net/~cardmagic/download/darkspy105_en.rar), IceSword (www.xfocus.net/tools/200509/IceSword_en1.12.rar). На наш диск мы эти программы не выкладываем по банальной причине — практически все антивирусы ошибочно видят в них троянцев. Весят утилитки немного, так что если будет желание или необходимость, вы всегда сможете их скачать с сайтов разработчиков.

Однако сотрудникам Microsoft вместе со специалистами Мичиганского университета весной этого года удалось создать принципиально новый руткит, который вообще не поддается обнаружению никакими стандартными способами. Новый монстр получил условное название SubVirt. Он создает монитор виртуальной машины (Virtual Machine Monitor, VMM) и полностью подгребает под себя все запущенные программы. И они прекрасно работают. Но ни одна из них не в состоянии определить, что Windows на самом деле фальшивая. Все как в теории относительности Альберта Эйнштейна — чтобы определить, движется тело или нет, нужно находиться снаружи, а не внутри.

Зачему Касперский ищет руткиты?

Антивирусное ПО – это главная защита компьютера от атак хакеров. Также оно способно увеличивать производительность системы путем удаления мусора. Но некоторые возможности данных программ вызывают вопросы у пользователя. Например, иногда сканирование занимает слишком много ресурсов.

Эта статья расскажет об одной из функций в антивирусе Kaspersky, так называемый поиск руткитов. В чем же заключаются возможности данной функции и стоит ли ее отключать?

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

При полной проверке устройства на наличие вредоносного ПО эта опция изначально включена

И, чтобы ее выключить, нужно понять, в чем ее важность

Руткит – это вид хакерского ПО. Оно предназначено, чтобы скрыть действие вредоносных программ в системе. Первые программы с руткитом появились около 20 лет назад, но существуют и по сей день. Rootkit применяется для скрытия отдельных вирусов или же как самостоятельный инструмент внедрения.

Действия руткитов можно разделить на следующие пункты:

  • скрытие действия вредоносных программ от антивирусов, в том числе сканера Windows;
  • несанкционированное подключение к компьютеру со стороны злоумышленников;
  • отключение антивируса путем внедрения в файлы программы.

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

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

Ядерная атака

Вставляя лицензионный диск в DVD-привод, никогда нельзя быть уверенным, что вы не заносите на компьютер руткит.

В конце 90-х в одном популярном мультсериале виртуальные 3D-герои боролись с не менее виртуальными мега-злодеями непосредственно внутри операционной системы. Основной целью мультяшных вирусов, троянцев и шпионских программ было какое-то непонятное ядро. Художники изображали его в виде круглого бункера со специальной панелью управления всеми процессами. Если сама система представлялась им как открытый огромный город, по которому ходили странные жители — байты (квадратные, одноглазые прямоугольники с ножками и ручками), то ядро пряталось глубоко под землей, в секретной шахте. Все подступы к ней охранялись мощными защитными механизмами. По представлениям авторов сериала, если зловредные программы доберутся до ядра, то все пропало. Само собой, в мультике этого не случилось. Зато в жизни стало реальным фактом.

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

Первым пал Unix. Появился руткит, использующий базовые свойства, на которых основана эта система. Кстати, сам термин (от англ. root и kit) говорит об изначальной связи с Unix (root — корень, ядро этой ОС). «Ядерная» программа в обычном режиме умеет прятать концы за счет изменения функций Windows API (на которых основана работа системы) вроде FindFirstFile /FindNextFile, отвечающих за показ файлов и папок. Они просто перестают замечать то, что нужно спрятать, чем бы вы ни пробовали посмотреть содержимое логических дисков. В защищенном же режиме руткит перехватывает обращения и меняет таблицу системных вызовов. Безопасный режим перестал быть безопасным.

Сколь ни печально, но ни один современный антивирус не увидит руткит на вашем жестком диске. Что и неудивительно — руткиты переписывают свойства API.

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

Внешне все остается как прежде — система работает, программы запускаются без задержки. Но на диске уже создана скрытая папка, в которой может оказаться все что угодно — от вируса до шпионской программы. Причем содержимое этой папки нормальному антивирусу так же недоступно, как и самому пользователю компьютера. Ведь для своей работы он тоже использует Windows API!

Руткиты обеспечивают новым вирусам более высокие шансы на выживание. Этим удачным обстоятельством немедленно воспользовались вирусописатели. Почти сразу после появления информации о рутките, который использовала для защиты дисков от копирования компания Sony BMG, в «Лаборатории Касперского» заявили о появлении в Сети хакерской отмычки Backdoor.Win32.Breplibot.b. Распространялась она через спам-рассылку. К письму прикреплялась фальшивая фотография (техника подмены картинок вирусами описывалась нами ранее). Как только юзер пробовал посмотреть рисунок, запускался вредоносный код. Причем первым делом он копировал себя в системный каталог $SYS$DRV.EXE. А именно в папке под таким названием хранились части DRM-защиты фирмы Sony. Если пользователь слушал диски Audio CD Sony, то бэкдор оказывался надежно скрыт от обнаружения любыми доступными методами.

Вот так аукнулось головотяпство Sony. Кстати, у многих профессиональных программистов сразу же возникло несколько любопытных вопросов. Хакер, использовавший руткит, скорее всего сам ничего не открывал. Он просто воспользовался информацией, которую разместил в Сети Марк Руссинович. Так стоило ли рассказывать каждому встречному о своем открытии? С другой стороны, на грязном деле попалась весьма уважаемая компания. Кто даст гарантию, что другие системы защиты дисков от других производителей не используют то же самое? В том числе и на дисках с компьютерными играми? Никаких гарантий у нас нет!

Как работать с утилитой в тихом режиме из командной строки

Для работы с утилитой TDSSKiller из командной строки используйте параметры из таблицы ниже:

Параметр Описание
-accepteula Согласиться с положениями Лицензионного соглашения.
-accepteulaksn Согласиться участвовать в Kaspersky Security Network.
-l <имя_файла> Записать отчет в файл.
-qpath <имя_папки> Выбрать расположение папки с карантином.
-qall Скопировать все объекты в карантин, включая чистые.
-qsus Скопировать только подозрительные объекты в карантин.
-qmbr Скопировать все главные загрузочные записи (MBR) в карантин.
-qboot Скопировать все загрузочные сектора в карантин.
-quefi Скопировать все UEFI-расширения в карантин.
-dcexact

Лечить или удалить известные угрозы автоматически.

Применяйте с ключом -silent для лечения большого количества компьютеров в сети.

-qcsvc <имя_сервиса> Скопировать указанный сервис в карантин.
-dcsvc <имя_сервиса> Удалить указанный сервис.
-sigcheck

Обнаружить файлы без цифровой подписи или с недействительной подписью.

Такие файлы могут быть не заражены. Если вы подозреваете, что это вредоносный файл, отправьте его на проверку через OpenTip.

-tdlfs Обнаружить файлы системы TDL-3/4, которая создается руткитами TDL-3/4 в последних секторах жесткого диска для хранения файлов. Все эти файлы могут копироваться в карантин.
-silent

Запустить тихий режим проверки.

Может применяться для централизованного запуска утилиты по сети.

-freboot Установить драйвер расширенного мониторинга и перезагрузить компьютер перед началом сканирования.
-fixmbr <имя_диска> Восстановить главную загрузочную запись (MBR) на указанном дисковом устройстве.
-fixboot <имя_раздела> Восстановить VBR и EIPL на указанном разделе.

Например, для проверки компьютера и записи подробного отчета в файл report.txt, который будет создан в папке с утилитой TDSSKiller, используйте команду:

TDSSKiller.exe -l report.txt

Чтобы просмотреть список допустимых параметров командой строки для утилиты TDSSKiller, используйте команду:

tdsskiller -h

Синонимы

  • badware (bad — плохое и (soft)ware — программное обеспечение) — плохое программное обеспечение.
  • computer contaminant (computer — компьютер и contaminant — загрязнитель) — термин для обозначения вредоносного программного обеспечения, который используется в законодательстве некоторых штатов США, например Калифорнии и Западной Виргинии.
  • crimeware (crime — преступность и software — программное обеспечение) — класс вредоносных программ, специально созданный для киберпреступлений. Это не синоним термина malware (значение термина malware шире). Не все программы, относящиеся к crimeware, являются вредоносными, поскольку понятие преступления субъективно и зависит от законодательства конкретной страны, а вред, наносимый владельцу и/или пользователю компьютера — объективен.

Основы руткитов

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

Руткиты не различаются по тому, в какую операционную систему они вторгаются. Будь то Windows, Apple, или Linux, установленный руткит скрытно заменяет части операционной системы тем, что на первый взгляд выглядит нормально. Это позволяет ему оставаться незамеченным и выполнять наносящие ущерб действия. При включении компьютера для запуска системы используется BIOS (базовая система ввода-вывода), и руткит может также получить контроль и над ней.

Уязвимости системы безопасности (такие, как незакрытые лазейки), зараженные торренты или загружаемое программное обеспечение позволяют руткиту получить доступ к вашему компьютеру.

Что за вирус руткит?

Руткит – это отдельный тип хакерских утилит, которые направлены на скрытие действия вирусов в файлах системы, отдельных папках.

Подобное ПО появилось более 20 лет назад и до сих пор существует благодаря постоянному обновлению. Rootkit может использоваться для сокрытия других вирусов или же выступать в качестве самостоятельного инструмента внедрения.

Основными “функциями” руткитов является:

  1. Организация несанкционированного доступа к ПК со стороны хакеров и злоумышленников.
  2. Помощь в сокрытии деятельности программ от антивирусных систем, встроенного сканера Windows.
  3. Полное отключение деятельности антивируса за счёт проникновения в файлы программы-защитника.

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

Руткит – самый распространенный и опасный тип угроз

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

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

Ещё утилиты для поиска и удаления руткитов

Sophos Anti-Rootkit (теперь называется Sophos Virus Removal Tool, к сожалению стала триальной, возможно, старые версии еще можно найти на файловых хранилищах) — неплохая и простая в использовании программа, без возможности указывать тип сканирования (она сканирует все). Но, также как и CureIt!, ее сложно назвать специализированной программой для поиска и удаления руткитов. Т.е. тоже можно использовать как дополнение к основному средству, правда в отличие от CureIT! она требует установки. Процесс работы очень прост. Вы просто запускаете сканирование и ожидаете результатов. После окончания поиска в интерфейсе появляется список обнаруженных угроз. При этом вы можете развернуть каждую угрозу и посмотреть где именно располагаются хвосты каждой конкретной угрозы. Возможно она была бы отличной утилитой по поиску и удалению руткитов, если бы она не была переориентирована со специализированного средства до миниантивируса. 

F-Secure Blacklight (к сожалению, сайт недоступен, необходимо искать версию на файловых хранилищах) это еще один отличный инструмент для удаления руткитов. К сожалению, его поддержка закончилась пару лет назад, и теперь его даже не найти на их сайте. Тем не менее, он все же есть на просторах интернета и совместим с Windows Vista и XP. Если вы попытаетесь запустить его на Windows 7, то будьте готовы увидеть диалоговое окно с сообщением «несовместимая ошибка».

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

Обработка результатов сканирования

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

..то можете дальше ничего не читать, ибо пока у вас просто всё отлично 🙂

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

Предупреждения могут быть вызваны просто тем, что вы обновили программное обеспечение, или обновили систему в целом, что привело к изменению системных настроек. Поэтому запускать rkhunter —propupd перед сканированием желательно всегда. Во-вторых, надо вспомнить, что вы устанавливали «потустороннего» в систему.

Например, может среагировать на установленный принтер или МФУ. Ведь всё это вы уже устанавливаете в систему дополнительно. Например, пример ложного срабатывания (последние 2 строчки, указывают на то, что после установки системы в домашней директории появились скрытые директории, которых в системе быть не должно, а это был установлен МФУ):

Просто надо детально смотреть по каждому пути (файлу) на который rkhunter «ругается». Если что-то вызывает сильное сомнение у вас, то надо сравнивать оригиналы файлов с теми, на которые ссылается rkhunter. Это долгий и кропотливый процесс. Ставится виртуальная машина, куда пишется чистая ось и открывая поочередно файлы с чистой оси вы их сравниваете с теми, которые вызывают сомнение. Еще раз повторюсь, что в 99 процентах это ложная тревога.

Ну, а если у вас выпал тот 1% и вы полностью уверены, что в системе сидит руткит, то можно предпринять следующее:

Определить к какой программе относится тот файл, на который указал rkhunter и переустановить эту программу

Но если руткит засел в ядре системы, то не пытайтесь самостоятельно его оттуда удалять, если Вы не эксперт по безопасности, который способен просчитать весь механизм, вектор атаки и путь проникновения конкретного руткита. В этом случае, наиболее хорошим решением будет:

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

В двух словах как-то так. Ну, что еще можно сказать в заключение..

Выход руткитов в массы

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

  • Троянцы, использующие для своей маскировки готовую утилиту или библиотеку. В качестве готовых утилит в основном использовались – очень и очень массово – Hacker Defender и FU.
  • Готовые руткиты-вредоносы, которые любой человек мог скачать или купить и слегка изменить в своих целях. Например, Haxdoor. Так же как и HacDef, он был очень популярен: осенью 2005 г. в базы Kaspersky Antivirus ежедневно добавляли по несколько сигнатур новых модификаций этого руткита.
  • Заказные разработки, предназначенные для точечного внедрения. Такие руткиты попадали в антивирусную лабораторию, как правило, из крупных организаций, часто в результате анализа компьютерных систем клиента на месте. Технология разработки этих руткитов была на очень высоком уровне, а количество – исчезающе мало.

В середине 2000-х порядка 80% всех руткитов приходилось на HacDef и Haxdoor.
Первыми среди уже существовавших вредоносных программ, куда начали встраиваться руткит-технологии, были многофункциональные бэкдоры Rbot и SdBot. Это и понятно – любое функциональное преимущество коммерческого троянца оборачивается выгодой для его хозяина, поэтому владельцы бот-сетей были первыми, кто подхватил новую технологию.

Rootkit-технологии для UNIX

Сокрытие присутствия в системе

Ситуация в UNIX очень напоминает ситуацию в мире Windows. Атакующий устанавливает rootkit на компьютер после того, как был получен привилегированный доступ — root. Права root, необходимые для инсталляции подавляющего большинства rootkit, можно получить с помощью использования известных уязвимостей, если злоумышленник имеет доступ в систему с правами обычного пользователя. В этом случае он может использовать локальный эксплойт или утилиты для взлома базы с паролями. Если злоумышленник не имеет соответствующих прав, то для проникновения в систему он может использовать удаленный эксплойт или, например, сниффер для перехвата паролей. Подобный перехват паролей возможен для целого ряда служб (ftp, telnet и др.) по причине того, что они осуществляют передачу паролей по сети в открытом виде.

В зависимости от предоставляемых возможностей rootkit может содержать различные вредоносные программы (Trojan-DDoS, Backdoor и прочие), которые устанавливаются на взломанный компьютер и ожидают команд от атакующего. Кроме того, rootkit могут содержать заплатки, которые закрывают уязвимости в защите системы с целью предотвращения повторного проникновения со стороны другого атакующего.

Также как и в Windows, в UNIX имеются и rootkit уровня приложений, и rootkit уровня ядра.

Рассмотрим уровень приложений. Как правило, подобные rootkit состоят из «троянизированных» версий обычных программ, скрывающих присутствие своих компонент в системе, и бэкдора, предоставляющего скрытый доступ в систему. Примерами rootkit уровня приложений являются lkr, trOn, ark и др.

Продемонстрируем работу rootkit уровня приложений на примере tr0n. Для сокрытия своего присутствия в системе данный rootkit выполняет целый ряд действий: в момент инсталляции он останавливает syslogd-демон, затем подменяет своими троянскими версиями следующие системные утилиты du, find, ifconfig, login, ls, netstat, ps, top, sz. Кроме того, в систему добавляется троянская версия sshd-демона. В завершение, в фоновом режиме запускается sniffer, в inetd.conf добавляется запуск telnetd-, rsh-, finger-демонов, перезапускается inetd и снова стартует syslogd.

Обычно tr0n располагается в /usr/src/.puta, но благодаря установленной ранее троянской версии утилиты ls, этот каталог невидим.

Перейдем к rootkit уровня ядра. Rootkit этого типа предоставляют все возможности предыдущего типа, но на более низком уровне — rootkit уровня приложений должны модифицировать отдельные бинарные файлы, rootkit уровня ядра должны изменить только ядро, что значительно увеличивает «качество» сокрытия информации.

Существует несколько способов внедрения rootkit в ядро системы UNIX:

  1. Использование LKM. Ядро linux, как и ядра многих других ОС, способны загружать модули (или драйверы устройств) «на лету», что позволяет злоумышленнику изменить системные вызовы ядра и тем самым выдавать некорректную информацию (например, исправленный список файлов). Использование подобного приема можно предотвратить, если скомпилировать монолитное ядро без поддержки LKM, но такое решение имеет существенный недостаток — необходимость включения в ядро всех нужных драйверов.
  2. Запись в /dev/kmem, который предоставляет доступ к занятой ядром области памяти. Запись в /dev/kmem переписывает ядро «на лету». Таким образом, для изменения ядра необходимо лишь найти нужное место в памяти, но это решаемая проблема. Существует исправление, запрещающее записывать в /dev/kmem напрямую. Также это можно сделать через mmap.
  3. Заражение существующих модулей. Отличие от первого способа заключается в том, что rootkit не содержит своего отдельного модуля и использует внедрение в уже существующие. Применение данного подхода позволяет сделать rootkit устойчивым к перезагрузке, поскольку чаще всего заражаются модули, которые будут загружены ОС в любом случае (например, драйвер файловой системы).

Обнаружение rootkit

К сожалению, нельзя дать универсальных рекомендаций по обнаружению rootkit, но приведенные ниже действия позволят обнаружить большинство современных rootkit для UNIX:

  1. Исследование аномального поведения файлов, использования сети, запуска задач по расписанию и в момент загрузки, регистрационных записей пользователей.
  2. Использование утилит, которые помогают выявить присутствие rootkit в системе: Saint Jude, Chrootkit, RkScan, Carbonite, Kstat, Rootkithunter, Tripware, Samhain и др.

От них нельзя избавиться

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

В такой момент руткит придает совершенно новый смысл вашей жизни, когда ваш компьютер «идет в разнос», а вы понимаете, что давно не делали резервной копии.

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

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

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

Основные задачи программы:

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

Теоретические очновы
Руткит
Руткит (англ. rootkit, то есть «набор root’а») — набор программных средств (например, исполняемых файлов, скриптов, конфигурационных файлов), для обеспечения:

  • маскировки объектов (процессов, файлов, директорий, драйверов)
  • контроля (событий, происходящих в системе)
  • сбора данных (параметров системы)
    Термин Rootkit исторически пришёл из мира UNIX, и под этим термином понимается набор утилит или специальный модуль ядра, которые злоумышленник устанавливает на взломанной им компьютерной системе сразу после получения прав суперпользователя. Этот набор, как правило, включает в себя разнообразные утилиты для «заметания следов» вторжения в систему, делает незаметными снифферы, сканеры, кейлоггеры,троянские программы, замещающие основные утилиты UNIX (в случае неядерного руткита). Rootkit позволяет взломщику закрепиться во взломанной системе и скрыть следы своей деятельности путём сокрытия файлов, процессов, а также самого присутствия руткита в системе.
    В систему руткит может быть установлен различными способами: загрузка посредством эксплойта, после получения шелл-доступа (в таком случае, может использоваться средство типа wget или исходный FTP-клиент для загрузки руткита с удаленного устройства), в исходном коде или ресурсах программного продукта.

Trend Micro RootkitBuster

Еще одна бесплатная программа, созданная специально для борьбы с вирусами типа Rootkit. Выполняет тщательную проверку системы на наличие опасного ПО и удаляет его.

Разберем процесс очистки более подробно:

  1. Загружаем актуальную версию «RootkitBuster», выбрав нужную разрядность по сравнению с вашей операционной системой.
  2. Запускаем, приняв условия соглашения и жмем «Next».
  3. Отмечаем галочками предлагаемые пункты и жмем «Scan Now».
  4. По завершению проверки, программа выведет списком найденные на компьютере руткиты, отмечаем их и удаляем.

После этого можно закрывать окно утилиты.

Антируткит-истерия

Другая сторона истории с руткитами – антируткит-истерия. К середине 2006 г. все крупные производители антивирусов осознали необходимость реагировать на новую угрозу. Реагировали по-разному. Одни доработали технологии продуктов так, чтобы получать доступ к скрытым объектам в процессе обычного антивирусного сканирования. Другие выпускали отдельные антируткит-утилиты. Третьи делали нечто среднее – встраивали отдельную функцию антируткит-сканирования в интерфейс антивирусного продукта. Никто из поздно проснувшихся особенно не преуспел – все лишь догоняли уже ушедший поезд.

В связи с этой гонкой из крупных антивирусных производителей стоит отметить разве что F-Secure: их антируткит-утилита была одной из первых после Rootkit Revealer от Sysinternals. Она умела искать только скрытые процессы, зато основывалась на proof-of-concept-технологии.

Заключение

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

Важно – после отключения поиска руткитов ваш компьютер станет максимально уязвимым, что касается и скачиваемых файлов из интернета. Не забудьте снова выставить флажок перед новой проверкой

Надеемся, данный материал разъяснил вам функцию поиска руткитов в программе Kaspersky. Приятного использования и максимальной защиты!

Заключение

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

Примечания

Уровень системных привилегий, на котором по умолчанию работает любое пользовательское приложение.

Режим пользователя – стандартный, пониженный уровень привилегий ОС; режим ядра – максимальный уровень привилегий.

В реальности, на компьютерах пользователей.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий