Как проверить Linux на руткит

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

Главным образом, устанавливаются так называемые руткиты (root kit). Руткит — это программа, которая маскирует свое присутствие на компьютере и открывает через сетевой порт root-доступ. Через этот скрытый канал хакер может использовать ваш компьютер для совершения уголовно наказуемых деяний, а отвечать придется вам. Вот почему так важно периодически проверять свой компьютер на наличие руткитов.

Установка chkrootkit

Казалось бы, а в чем проблема? apt-get install chkrootkit и вперед! Но разработчики руткитов этот алгоритм давно предусмотрели. Руткит модифицирует «антивирусную» программу, чтобы та не выдала его присутствие в системе. Следовательно, остается только один работающий способ провести проверку: загрузить исходники, сверить контрольную сумму, скомпилировать и запустить.

  1. Заходим на сайт http://www.chkrootkit.org/download/и загружаем два файла: исходники в tar.gz (chkrootkit latest Source tarball) и текстовой файл с контрольной суммой MD5 (chkrootkit tarball's MD5 signature).
  2. Запускаем md5sum и в качестве аргумента передаем имя скаченного архива. Сверяем контрольные суммы. Эта простая операция позволяет убедиться, что код chrootkit не был модифицирован руткитом во время загрузки или сохранения файла.
  3. Распаковываем архив: tar xf chrootkit.tar.gz.
  4. Компилируем: make.
  5. Запускаем проверку: ./chrootkit.

Проверка заключает в следующем:

  • сначала chkrootkit проверит системные файлы (/bin/* и /usr/bin/*) на предмет несанкционированной модификации;
  • потом программа проверит по списку наличие известных зловредов;
  • затем chrootkit проверит систему на подозрительную активность (например, сетевая карта в promisc-режиме);
  • и так далее.

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

Профессионалам

Людям, которые серьезно занимаются вопросами безопасности в Linux может показаться полезным знакомство с программным пакетом Lynis. Эта свободная программа проводит комплексный аудит безопасности в Linux-системах.

field_vote: 
Ваша оценка: Нет Средняя: 5 (3 оценки)
Главная тема: 
Дистрибутивы: 

Комментарии

chkrootkit на большем количестве ОС раскрывает следующую ложную инфекцию :

Searching for Suckit rootkit... Warning: /sbin/init INFECTED

rkhunter является более надежным

Оценка: 
Средняя: 5 (1 оценка)

так rkhunter похоже не больше не разрабатывается. Последняя активность на sourceforge: 2014-02-24. Впрочем как и chkrootkit — сам пакет от мая 2014.

Оценка: 
Пока без оценки

поправка — он лезет за апдейтами в инет, но обновил только базу backdoorports.dat, другие файлы остались старыми. Но это уже неплохо

Оценка: 
Пока без оценки

у меня не запустился
chkrootkit: can't find `ssh'.

Оценка: 
Пока без оценки

Такие вещи нужно держать на отдельной живой флешке, а то где гарантия что зараза не заменила make, gcc, md5 и bash.

Оценка: 
Средняя: 4.3 (3 оценки)

а как он с флешки

проверит систему на подозрительную активность (например, сетевая карта в promisc-режиме);

?

Оценка: 
Средняя: 5 (1 оценка)

ну люди, мы же всетаки линуксоиды. Сканируем, проверяем изменились ли какие нибудь файлы например в /usr/bin ну скажем в течении последних 24 часов

sudo find /usr/bin -type f -mtime -1

у меня было 0 совпадений. Какие там еще можно прочесать — /usr/sbin /usr/lib и тд. Мы же не виндовозники чтобы гадать :). Но мысль была правильная, плюсую

Оценка: 
Пока без оценки

А откуда предположение то автору руткита не хватит интеллекта поправить время?

Оценка: 
Средняя: 5 (1 оценка)

вот это я прокололся. Это очень интересная проблема, спасибо что сказал. Для rpmовских дистров есть хорошая возможность проверить подлинность пакетов. Вот цитата из мана

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

Проверку пакета выполняет команда rpm -V. Вы можете указать пакет, который хотите проверить, используя любой из перечисленных параметров выбора пакета. Простым примером проверки является команда rpm -V foo, которая проверяет, что все файлы пакета foo находятся там, куда они были изначально установлены. Например:

Чтобы проверить пакет, содержащий конкретный файл, выполните:
rpm -Vf /usr/bin/vim

Чтобы проверить ВСЕ установленные пакеты:
rpm -Va

Оценка: 
Средняя: 3.5 (2 оценки)

хах. опередил.

Оценка: 
Средняя: 5 (1 оценка)

Можно ещё сделать "rpm -V --all" (наверняка у deb систем такое тоже есть). Работает достаточно быстро, можно даже в крон прописать если уж совсем паранойя.

Оценка: 
Средняя: 5 (1 оценка)

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

Оценка: 
Пока без оценки
M_o_n_g_o_l аватар

Пробовал запускать на Мяте "deb -V --all" Чёт не взлетает никак ((

Оценка: 
Пока без оценки
M_o_n_g_o_l аватар

И deb -Va не катит...

Оценка: 
Пока без оценки
M_o_n_g_o_l аватар

А chkrootkit тоже гундит, что Warning: /sbin/init INFECTED...

Оценка: 
Пока без оценки

я тут занялся этой проблемой замены файлов: rpm -Va было неправильно. Это комманда проверяет подлинность установленных пакетов а не файлов, это разные вещи. Одна из лучших программ, которые отслеживают изменения в файлах называется AIDE (Advanced Intrusion Detection Enviornment), создает базу данных при инициализации куда вносить хеши файлов и может потом выявить их подлинность. Понятно что надо быть увереным перед инициализацией что система чистая, лучше сразу после установки. Хоть поддержу базы в актуальном состоянии можно автоматизировать, мне показалось это слишком долгим и сложным процессом. Кто может еще что добавить по этому поводу, есть ли другие программы или методы проверки?

Оценка: 
Пока без оценки

Так навскидку (решение кривое, пока главное идея).

1. Ставим систему на комп. (/home — отдельным разделом)
2. Грузимся с live-cd
3. rsyncом копируем / на флешку.

А дальше, при любых подозрениях грузимся с live-cd и тем же rsyncом проверяем какие файлы изменились (ЕМНИП там была опция a la "ничего не делать, только вывести список изменившихся файлов".

А вот как подобное сотворить без live-cd, на живой системе — это вопрос.

Оценка: 
Средняя: 5 (1 оценка)

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

Оценка: 
Пока без оценки

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

Оценка: 
Средняя: 5 (1 оценка)

я тут все никак не успокоюсь насчет того как проследить делают ли программы, в нашем случае rkhunter и chkrootkit какие либо изменения в файлах, очень важная тема. Хотелось бы не просто заменить файлы, а проследить что именно сделала программа. Наткнулся на очень интересную возможность, предоставляемую нам самим ядром. Для этого нам нужен пакет inotify-tools

Inotify — это подсистема ядра Linux, которая отслеживает изменения файловой системы в Linux (открытие, чтение, создание, удаление, перемещение, изменение атрибутов и др.). Впервые данная подсистема появилась в релизе ядра 2.6.13

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

inotifywait -m -r -e modify,attrib,close_write,move,create,delete /usr/bin /usr/lib /usr/sbin

в другом запускаем например rkhunter и наблюдаем. Ну или перенаправляем в файл для дальнейшего изучения.

ps я тут поискал по сайту, есть статья про Incron, который использует тоже inotify.

Оценка: 
Средняя: 4.8 (4 оценки)

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.