Как удалить rootkit (руткиты) в gnu/linux

Настройка rkhunter (основанная на заведомо исправный значениях)

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

Откройте конфигурационный файл rkhunter с привилегиями root:

Настройка уведомлений

Если почтовый сервер установлен локально, можно получать почту, войдя в систему как root:

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

Данная строка определяет программу и параметры отправки почты:

Белый список известных файлов

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

Приведенные ниже четыре файла были выведены в результате проверки rkhunter; их нужно внести в белый список с помощью параметра SCRIPTWHITELIST, чтобы rkhunter знал, что эти файлы безвредны:

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

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

Определенные файлы каталога /dev вызывают предупреждения rkhunter. Эти файлы содержат детали реализации, которые фактически не указывают на какие-либо нарушения. Они необходимы и поддерживаются дистрибутивом.

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

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

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

Добавьте эти строки, чтобы внести эти файлы в белый список

Разрешение Root SSH-подключения

Следующий шаг — просто проверка утверждения. При запуске rkhunter проверяет этот параметр в конфигурационном файле и сравнивает его со значением в файле конфигурации SSHD.

Данная опция указывает, может ли root-пользователь устанавливать SSH-подключение. Многие методы обеспечения безопасности рекомендуют отключить root-логин. Если root-логин отключен, нужно установить значение «no».

При необходимости подключаться по SSH нужно изменить значение на «yes», чтобы rkhunter подтверждал такое соединение:

Сохраните изменения и закройте файл.

Что это такое?

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

Для захвата компьютера пользователя и применяются так называемые руткиты. Это вредоносное ПО, которое не только прячется от «глаз» антивируса, если такой присутствует на вашей машине, но и скрывает другое вредоносное программное обеспечение.

Руткиты достаточно легко обходят стандартную защиту ПК в виде того же брандмауэра и прячутся в недрах операционной системы таким образом,что бы их было практически невозможно обнаружить — в тех местах, до которых не доходит. В самом рутките может быть спрятано самое различное программное обеспечение, начиная от кейлоггеров и заканчивая специальным ботом, который ворует информацию, хранящуюся в браузере. А именно в браузере можно обнаружить весьма интересные данные, включая даже пароли от кредитных карт (именно поэтому я всегда напоминаю о том, что сохранять в интернет-обозревателях важную информацию нельзя).

Кроме того, Руткит часто имеет функцию бэкдора, что позволяет злоумышленнику подключаться к нему дистанционно. Что это значит? А то, что злоумышленник может добавлять и изменять функции вредоносного ПО, а в некоторых случаях даже способен управлять вашим компьютером, например, с целью рассылки того же спама.

Самое опасное то, что распознать руткит, если он остался незамеченным, в дальнейшем будет совсем непросто. А он, между тем, будет контроллировать ваш ПК…

Automate Rootkit Hunter

Rkhunter can be setup to run checks every day so that we always have up-to-date information about intrusions. This can be accomplished by creating a cronjob.Note: More recent versions of RKHunter have a cronjob preinstalled under the directory. In this case steps 2.1, 2.2 and 2.3 can be ignored.

2.1 Create Cron File

Create the run-file in the following location (RHEL based distributions only):

nano -w /etc/cron.daily/rkhunter.sh

2.2 Insert Shell Script

#!/bin/sh
(
/usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update
/usr/local/bin/rkhunter --cronjob --report-warnings-only
) | /bin/mail -s 'rkhunter Daily Scan Report (PutYourServerNameHere)' your@email.here

Обновление Rkhunter для борьбы с руткитами в Linux

Первое, что надо сделать после установки утилиты — это обновить ее и удостовериться, что у нас актуальная версия (актуальная версия на сегодня — 1.4.2):

И второе, — раз мы обновили базу, значит изменился конфигурационный файл утилиты (конфигурационный файл расположен в /etc/rkhunter.conf) и нам нужно сказать (показать) программе, что эти изменения внесены в файл конфигурации, вот для этого нужно сделать снимок (слепок, называйте как вам больше нравится) командой:
Это в Ваших же интересах, чтобы утилита меньше ложно срабатывала.

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

Проверяется это так:

Для дистрибутивов на базе RPM командой:

Для debian-но подобных дистрибутивов программой debsums. По умолчанию эта программа не установлена в системе, ее надо установить:

Какая бы система у вас не была установлена вывод будет примерно одинаковый:

(если везде написано «ОК», значит никаких изменений с файлами не происходило).

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

Тестирование будет проходить в несколько этапов с выводом сообщений по каждому пункту теста. Вы просто нажимаете Enter для продолжения.

И в конце выведется общий список — информация по тестированию.

Если вы визуально не хотите наблюдать за ходом тестирования, то можно запустить rkhunter с ключом -rwo, в этом случае будут выводиться только предупреждения:

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

Install RKHunter from Source

Because the Ubuntu repositories have an outdated version of rkhunter which contains an unpatched bug, we will be installing from source so that our program will behave properly.

Change to your home directory and download the files. As of this writing, 1.4.0 is the latest version, but you can go to the project’s home page to see if a newer version is available:

Once it has finished downloaded, extract the files and enter the resulting directory:

Inside, we should see a “files” directory, and an installer script. We will use this to install our program. Specify the layout to install it in the directory so that it will be in our default path:

This will install the software and the configuration files.

Now, we have rkhunter installed, but we still need some utilities to use all of its functionality. We can get these from the Ubuntu repositories:

If you are installing locally, you can name the system mail anything. Otherwise, make sure to use a fully qualified domain name.

Now, our software is installed and ready for testing and configuration.

Кочевые племена против оседлых форм жизни

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

В распределенных сетях (ботнетах) перезагрузка одного или нескольких узлов —
вообще не проблема, к тому же после перезагрузки узел будет инфицирован вновь.
Этот факт очень трудно обнаружить, ведь никаких изменений на диске нет! А
сетевые соединения современные руткиты скрывают весьма эффективно. Прошли те
времена, когда открытые порты обнаруживались тривиальным сканированием с
соседней машины. Продвинутые руткиты не открывают никаких портов. Они садятся на
сетевой интерфейс, контролируя трафик и модифицируя определенные поля в
заголовках TCP/IP-пакетов, значения которых согласно RFC выбираются случайным
образом. Скремблер скроет факт модификации (независимо от передаваемых руткитом
данных мы получим такое же хаотичное распределение, как и на незараженной
машине), а несимметричный шифратор предотвратит декодирование перехваченной
информации. Даже если мы заведомо знаем, что руткит есть!

Откуда мы узнаем, что он есть? Объем трафика в норме, никаких изменений на
диске не наблюдается (что кардинальным образом отличается от руткитов первого
типа, которые обнаруживаются настолько тривиально, насколько это можно себе
представить). Загружаемся с LiveCD и проверяем контрольные суммы всех файлов
(или просто осуществляем побайтовое сравнение с дистрибутивом). Конечно, для
серверов такой способ не очень-то пригоден — их вообще лучше не перезагружать,
но сервера, критичные к перезагрузкам, обычно оснащены RAID-массивами с
hot-plug’ом. Так что просто вытаскиваем один набор дисков из матрицы, ставим его
на другую машину, проверяем контрольную сумму и делаем оргвыводы.

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

Как удалить руткиты

удалим руткиты

Друзья, открою Вам секрет, в настоящее время с руткитами идёт настоящая война, просто это не афишируется и если вам посчастливится словить серьёзный и только что написанный руткит, справиться с ним будет очень нелегко даже профессионалу. Поэтому, не забывайте создавать бэкапы операционной системы и не отключайте никогда восстановление системы. Устанавливайте только 64-разрядные Windows 7 или Windows 8, так как в 64-битной операционной системе руткиту сложнее закрепиться. 

Что из себя представляет руткит? Руткит – это программа, маскирующая нахождение в операционной системе других вредоносных программ и всё, что относится к ним (процессы, ключи в реестре и так далее), происходит это путём перехвата и модификации низкоуровневых API-функций. Ну а работающая в нашей системе вредоносная программа может сделать много плохих дел, например ваш компьютер станет частью «ботнета» —компьютерной сети, состоящей из большого количества заражённых компьютеров. Злоумышленники могут использовать ресурсы заражённых компьютеров по своему усмотрению (рассылать спам, участвовать в DDoS-атаке на определённые сайты и так далее). Это скорее всего и произошло с компьютером нашего читателя.

Как удалить руткиты при помощи антивирусного диска 
Windows Defender Offline

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

 
Как удалить руткиты с помощью бесплатных антивирусных утилит 
http://support.kaspersky.ru/5350?el=88446#Скачайте файл TDSSKiller.exe

Rootkit.Win32.BackBoot.gen – возможно заражена загрузочная запись MBR.
 

Скопировать в карантинC:\TDSSKiller_QuarantineVirusTotal.com

 
Как удалить руткиты с помощью утилиты Dr.Web CureIt 
http://www.freedrweb.com/cureit/

Выбрать объекты для проверки

Оперативная памятьРуткитыЗапустить проверку

Как удалить руткиты с помощью утилиты AVZ  
точку восстановления системыhttp://z-oleg.com/secur/advice/http://z-oleg.com/secur/avz/download.php

avz.exe

Отмечаем для проверки диск с операционной системой, обычно C:, ещё отмечаем пункт Выполнить лечение, далее идём в Параметры поиска

и отмечаем пункт Детектировать перехватчики API и RooTkit и нажимаем Пуск, проверка началась.

 
Как удалить руткиты с помощью утилиты GMER  
http://www.gmer.net/

GMERC:Scan

Conclusion

It is also helpful to remember that when you make software changes on your computer, rkhunter may report differences in its next run. It is recommended that after you make changes, at least run to update rkhunter to the new file properties.

Because this software references known-good values and system states that you have allowed, it is best to install and configure this directly after you have configured most of the software for your installation. Doing so before configuring your software will result in a lot of false positives, while waiting too long can result in intrusion and not knowing if you are whitelisting bad files.

<div class=“author”>By Justin Ellingwood</div>

Методы детектирования и борьба с руткитами

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

К примеру, известен алгоритм отлова MEP-руткитов. Его суть заключается в том, что одна и та же информация регистрируется несколькими способами — с использованием API и «напрямую», после чего полученные данные сравниваются в поисках расхождений. Наиболее часто сканируются таблицы импорта и таблицы вызовов Native API, а также структурно вся файловая система.

Базовый арсенал средств отлова руткитов основывается на следующих методах.

  1. Сигнатурный поиск. Применяется еще со времен первых антивирусов и представляет собой поиск в проверяемом файле уникальной цепочки байтов (сигнатуры), присущей вредоносной программе.
  2. Эвристический или поведенческий анализатор. Эта технология основывается на поиске отклонений в настройках системы, конфигурационных файлах Linux или реестре Windows, подозрительном поведении процессов и модулей и так далее.
  3. Контроль целостности. Этот тип поиска основан на сравнении контрольной суммы (MD5 и тому подобное) или цифровой подписи разнообразных системных файлов с базой, содержащей контрольную сумму оригинальных файлов. В случае несовпадения программа делает вывод, что файл был модифицирован или вовсе заменен.

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

В качестве более полного ликбеза на данную тему могу порекомендовать почитать эту статью и вот эту книжку: A Comparitive Analysis of Rootkit Detection Techniques, которая доступна для загрузки и чтения в формате PDF. И не забудь ознакомиться с работой нашего соотечественника Игоря Коркина, посвященной форензике оперативной памяти и поиску в ней руткитов, — Applying memory forensics to rootkit detection.

INFO

Malware tools, такие как загрузчики (downloaders and droppers), rootkits, bootkits, в большинстве случаев сами по себе не являются вредоносным ПО в классическом понимании. Однако с помощью подобного инструментария злоумышленник может инфицировать целевую систему, при этом заметая следы взлома и заражения, что значительно усложняет последующий поиск и детектирование malware внутри системы.

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!
Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя!
Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Я уже участник «Xakep.ru»

Установка rkhunter из исходного кода

Репозитории Ubuntu содержат устаревшую версию rkhunter с неисправленной уязвимостью. Потому устанавливать данную программу лучше из исходного кода.

Перейдите в домашний каталог и скачайте файлы. На данный момент последней доступной версией программы является 1.4.0 (чтобы уточнить эту информацию, посетите страницу проекта)

После завершения загрузки файлов извлеките их и перейдите в итоговый каталог:

Здесь нужно найти каталог files и скрипт установки. В схеме размещения установки укажите каталог /usr, далее он будет использоваться как путь по умолчанию.

Это установит программу и конфигурационные файлы.

Теперь нужно установить некоторые утилиты, позволяющие использовать полный функционал rkhunter. Их можно получить из репозиториев Ubuntu:

Появятся вопросы о настройках почтового сервера. При желании можете настроить его, но для краткости руководства настройка почтового сервера, доступного в интернете, не охвачена. Выберите «Local only», чтобы последовать примеру статьи.

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

Теперь программное обеспечение установлено и готово к настройке и тестированию.

Обновление RkHunter

Перед тем как будет выполнена проверка linux на вирусы, необходимо обновить базу данных утилиты. Для этого выполните:

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

Обновление желательно выполнять регулярно, поэтому давайте создадим специальный скрипт и будем запускать его с помощью cron каждый день. Для этого создайте файл скрипта в директории /etc/cron.daily:

Теперь осталось только дать программе права на выполнение:

chmod +x /etc/cron.daily/rkhunters

Угроза извне

Те, кто пролезает на машину жертвы из Сети, обычно используют несколько простых и проверенных приемов. Самое простое, что может сделать злоумышленник – просканировать твою машину на открытые порты и попытаться найти уязвимый сетевой сервис. В борьбе с такими экземплярами фауны кул-хацкеров поможет отключение ненужных демонов, своевременные обновления дистрибутива и чтение моей статьи «Огненная дуга», посвященной правильной настройке брандмауэра (см. ][ от 06.2010). Обломавшись на этом пути, хацкер может попытаться подсунуть тебе троян под видом легальной программы или использовать дыру в браузере. В этом случае все просто: ставь софт из официальных репозиториев дистрибутива, используй правильные браузеры свежей версии.

Поняв безуспешность своих попыток проникновения, взломщик может попробовать провести DoS/DDoS. От хорошей распределенной атаки ты, скорее всего, не спасешься, а вот небольшую волну вполне сможешь выдержать, если будешь следовать рекомендациям, описанным в статье «Устоять любой ценой» (][ от 09.2009).

Хорошей практикой в борьбе с дырами является настройка автоматического обновления ОС, благодаря которому система всегда будет оставаться в свежайшем состоянии. Такие дистрибутивы, как Ubuntu, Fedora, OpenSuSE, уже имеют в своем составе графические напоминалки, которые время от времени выскакивают из трея и сообщают об очередном обновлении. Это удобно, но быстро надоедает, гораздо эффективнее сделать так, чтобы система сама производила обновления в фоне, не отвлекая пользователя от работы. В Ubuntu это делается через графический интерфейс (System -> Administration -> Software Sources -> Updates -> Automatic updates, Install security updates without confirmation) или с помощью модификации файла /etc/apt/apt.conf.d/10periodic:

Замечу, что это относится только к обновлениям безопасности, простой апдейт софта придется производить руками.
От возможных дыр в софте также очень эффективны такие системы, как SELinux или AppArmor (уже интегрированные в Ubuntu, OpenSuSE и Fedora), которые просто не позволят уязвимому сервису выполнить код, подсунутый взломщиком (мы не раз писали о настройке популярных расширений безопасности для ОС Linux, подними архив ][).

Automatische Scans und Signatur-Aktualisierungen per Cron-Job einrichten¶

Gerade bei Servern ist es nicht immer möglich, von einer Live-CD zu booten und dann nach Rootkits zu fanden. Hierfür haben die Programmierer die Möglichkeit geschaffen, sowohl rkhunter täglich als auch die Signatur-Aktualisierung automatisch als Cron-Job auszuführen.

Achtung!

Bevor man rkhunter als Cron-Job einplant, sollte man sich jedoch sicher sein, das Programm auf einem nicht kompromittierten System zu installieren, um die entsprechenden MD5-Fingerprints («Checksummen») anzulegen (zum Beispiel direkt nach einer Neuinstallation).

Nach der Installation von rkhunter sollte man zuerst

sudo rkhunter --propupd  

ausführen, um das Programm auf den aktuellen Stand zu bringen.

sudo rkhunter -c  

startet dann einen umfassenden interaktiven Prüflauf. Hierbei kann es durchaus zu Fehlalarmen kommen. Diese überprüft man in der Logdatei /var/log/rkhunter.log und passt gegebenenfalls die Konfigurationsdatei /etc/rkhunter.conf an,
zum Beispiel, um inetd-Dienste wie „swat“ hinzuzufügen.

Разрабатываем арсенал

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

Безусловно, LKM-руткиту не составит особого труда перехватить и его, но мне хотелось показать, что нынешним «ядерным» руткитам можно успешно противостоять из пространства пользователя, поэтому я предлагаю программу пользовательского уровня. При необходимости ее можно портировать в ядро. Там подделать размер файла руткит сможет, только подменив значение (для ядер старше 3.9.0 — ), но это как минимум чревато проблемами при чтении файла — все-таки серьезная низкоуровневая структура. В любом случае известные ныне руткиты не влияют ни на эти данные, ни на (смею предположить, что теперь начнут).

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

off_t get_fsize(FILE *f)

{

intres;

structstat fst;

errno=;

res=fstat(fileno(f),&fst);

if(res){

perror(«In get_fsize(): couldn’t get fstat»);

return;

}

returnfst.st_size;

}
 

shortcmp_size(FILE *f)

{

unsignedinti_size,read;

char*fbuf;

i_size=(unsignedint)get_fsize(f);

if(errno){

printf(«\x1b[1;31m***WARN***\x1b[0m Some problems with %s.\n»,

start_filesi);

return1;

}

fbuf=(char*)malloc((i_size+1)*sizeof(char));

memset(fbuf,,i_size+1);

read=fread(fbuf,1,i_size,f);

if(i_size!=read){

printf(«\x1b[1;31m***WARN***\x1b[0m Something performs file tampering of %s : «

«read %u bytes instead of %u.\n»,start_filesi,read,i_size);

lets_talk(f,i_size,read);

free(fbuf);

return1;

}else{

printf(«\x1b[32m%s\x1b[0m looks fine to the userland\n»,start_filesi);

free(fbuf);

return;

}

}

Если найдено несоответствие, программа предложит возможные действия: попытку прочесть действительное содержимое файла (побайтово, чтобы руткит не смог найти свои маркеры в считанном буфере. Это не дает никаких гарантий, но почему бы не попробовать?) и заменить его безопасной копией. К старому файлу с данными руткита при этом добавляется суффикс .

nitara-l3 в действии

Теперь осталось перезагрузиться, ведь руткит еще сидит в памяти и занимается своими грязными делами. Ну а дальше — ищем то, что скрывалось в ныне чистом файле автозагрузки, находим вредоносный бинарник, проверяем его на VirusTotal или где-нибудь еще и радуемся, какие мы молодцы.

Находим вредоносный LKM после перезагрузки

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

Какие бывают руткиты для Linux

Руткиты помогают злоумышленнику закрепить доступ ко взломанной системе, при этом акцент сделан на максимальной незаметности вредоноса. Для этого они скрывают сетевые соединения, процессы, папки, файлы, подделывают их содержимое. Обычно руткит несет в себе хакерские утилиты для управления зараженной машиной, с помощью которых злодей может установить и прятать в системе DDoS-бота или майнер (кстати, один такой, Skidmap, обнаружили сравнительно недавно). Чаще всего в эти утилиты входят бэкдоры, и не только те, что можно запросто обнаружить внешним сканером портов, а использующие технологию Port knocking (что-то вроде «простукивания портов»), когда порт открывается только после правильной и заранее определенной последовательности запросов к закрытым портам.

Традиционно все руткиты делят на работающие в пространстве пользователя и работающие в пространстве ядра. Против первых уже есть утилиты, способные обнаружить многие из них: chkrootkit, rkhunter, Antidoto и проект с незамысловатым названием linux-malware-detect. Поэтому «ядерные» руткиты, которые сложнее обнаружить непосредственно на зараженной системе, представляют больший интерес, хотя часть из них эти утилиты тоже могут выявить (но не удалить).

Руткиты уровня ядра в Linux, как правило, реализуются в виде загружаемых модулей ядра (LKM, Loadable Kernel Modules), но есть еще более экзотические способы: вредоносный код записывается прямо в память ядра через файл устройства или внедряется на ранних этапах загрузки с модификацией (если ты знаком с такими руткитами, дай знать — попадаются только теоретические описания, а найти образцы мне не удалось). Сейчас, впрочем, о случаях заражения «ядерными» руткитами пишут нечасто, но все тот же недавно выявленный Skidmap говорит о том, что об этой угрозе забывать не стоит.

Установка

Сразу после запуска инсталлятора RootkitBuster Билл обратил внимание на предупреждение Process Hacker о том, что софтина пытается установить в его систему файл — драйвер, используемый некоторыми приложениями Trend Micro. RootkitBuster устанавливает драйвер до того, как пользователь примет условия лицензионного соглашения (здесь и далее иллюстрации из блога Билла Демиркапи)

RootkitBuster устанавливает драйвер до того, как пользователь примет условия лицензионного соглашения (здесь и далее иллюстрации из блога Билла Демиркапи)

Примечательно, что драйвер и сам исполняемый файл сканера были распакованы на диск в папку еще до того, как на экране Билла появился текст лицензионного соглашения. Оно, в частности, гласило, что пользователь RootkitBuster обязуется «не пытаться перепроектировать, модифицировать, дизассемблировать, декомпилировать, исследовать исходный код или создавать производные произведения на основе этой программы».

Поэтому Билл взял и завершил процесс инсталлятора с помощью пункта «Закрыть окно» контекстного меню, так и не приняв условия лицензии. Что позволило ему с чистой совестью «дизассемблировать, декомпилировать» и делать с этим продуктом Trend Micro другие вещи, о которых в приличном обществе не принято говорить вслух. Отличный трюк для обхода юридических сложностей!

Тестовый запуск rkhunter

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

Для начала нужно убедиться, что установленная версия rkhunter достаточно современна. Если архив был получен с сайта проекта, этого делать не нужно; в противном случае лучше проверить:

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

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

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

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

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

Некоторые изменения (как, например, в файле passwd) выведены только потому, что они были внесены вспомогательными утилитами, загруженными ранее с помощью apt. Эти файлы имеют более поздние метки времени, чем базы данных rkhunter (они исчезнут при следующем запуске).

Альтернативный способ проверить результаты тестового запуска rkhunter — вывести предупреждения на экран.

Затем можно скопировать информацию и вставить ее в какой-нибудь файл, чтобы с ее помощью отредактировать конфигурационный файл.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *