сканер chkrootkit обнаружил возможного троянца KLM

Сегодня я просканировал свою машину с chkrootkit инструмент путем выполнения:

sudo chkrootkit

И это было частью вывода:

Проверка 'lkm'... Вы имеете
2 процесса, скрытые для readdir команды You, имеют 2 процесса, скрытые для PS, управляют chkproc: Предупреждение: Возможный троянец LKM установил chkdirs: ничто обнаруженное

Это - что-нибудь для волнения о? И если так, как я могу исправить ситуацию?

Я запускаю Ubuntu 14.10 и chkrootkit версия 0.49.

6
задан 20 February 2015 в 11:34

1 ответ

Это - что-нибудь для волнения о?

Нет, это - положительная ложь и давнишняя ошибка в chrootkit. Вы будете видеть сообщение любое время, проверка lkm сообщает о скрытых процессах, недоступных командой readdir. Если у Вас есть что-то как ClamAV, MySQL, Exim или MailScanner, выполняющий Вас, обязаны видеть это предупреждение.

Самая легкая проверка: выполненный chrootkit пару раз с как многие остановленные сервисы (т.е. mysql, clamav и т.д.). Если результаты варьируются, это - ясный индикатор, это - положительная ложь.

Между прочим: rkhunter имеет лучшую проверку на lkm.


Некоторые случайные темы об этом сообщении: stackexchange, cpanel.net, Linuxquestions.org и все состояние это является поддельным и ошибка.


Что-то дополнительное: команда ./chkproc -v покажет идентификаторы процесса (PID) для сообщения, которое Вы получаете, и можно использовать это для нахождения программы, которая подключена к этому процессу с cd /proc/{PID}/ && cat cmdline

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


Таким образом, что необходимо знать о системе, чтобы смочь заняться этой проблемой?

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

Во-вторых: существует немного вредоносного программного обеспечения, предназначающегося для Linux, но это редко. По простой причине, что, хотя Linux является очень портативным, не случается так что портативно. Различия между дистрибутивами (как очень маленький), библиотеки, различные ядра и компиляторы делают выполняющий случайный код на случайных машинах чрезвычайно трудным. И люди, которые являются во вредоносное программное обеспечение, находятся в нем для финансовой выгоды. Таким образом, они фокусируются на Windows по очень простым причинам, что это - закрытый исходный код, имеет много дыр, которые зависят от Microsoft для принятия мер для фиксации их. (упрощенный :))


Теперь для предупреждения Вас занимаются возможным установленным троянцем LKM. LKM обозначает Модуль Ядра Linux и является одним из базовых модулей в Linux. Модули ядра загружаются в соответствие ядрам и если эти два не будут принадлежать вместе, то модули не загрузятся. Это - одна из основных функций безопасности системы Linux, которую можно использовать для того, чтобы разыскать вредоносный код (1).

Некоторые основные вещи о ядрах (2):

  • uname -r показывает Ваше ядро.

  • установленные ядра могут быть просмотрены в /boot.

    rinzwind@schijfwereld:/boot$ ls abi-3.16.0-22-generic initrd.img-3.16.0-29-generic abi-3.16.0-23-generic initrd.img-3.16.0-30-generic abi-3.16.0-24-generic memtest86+.bin abi-3.16.0-25-generic memtest86+.elf abi-3.16.0-28-generic memtest86+_multiboot.bin abi-3.16.0-29-generic System.map-3.16.0-22-generic abi-3.16.0-30-generic System.map-3.16.0-23-generic config-3.16.0-22-generic System.map-3.16.0-24-generic config-3.16.0-23-generic System.map-3.16.0-25-generic config-3.16.0-24-generic System.map-3.16.0-28-generic config-3.16.0-25-generic System.map-3.16.0-29-generic config-3.16.0-28-generic System.map-3.16.0-30-generic config-3.16.0-29-generic vmlinuz-3.16.0-22-generic config-3.16.0-30-generic vmlinuz-3.16.0-23-generic grub vmlinuz-3.16.0-24-generic initrd.img-3.16.0-22-generic vmlinuz-3.16.0-25-generic initrd.img-3.16.0-23-generic vmlinuz-3.16.0-28-generic initrd.img-3.16.0-24-generic vmlinuz-3.16.0-29-generic initrd.img-3.16.0-25-generic vmlinuz-3.16.0-30-generic initrd.img-3.16.0-28-generic

  • модули ядра установлены в /lib/modules в подкаталоге, соответствующем Вашему ядру.


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


Сумма каталогов и файлов, которые могут быть затронуты, когда у Вас есть руткит, ограничена (руткит должен быть запущен с где-нибудь). Существует 2 каталога и группа файлов, которые будут предназначены...

  1. /etc/init.d/

    Сделайте ls -ltr /etc/init.d (это перечислит их в порядке, они были последние измененный), и проверьте на неизвестные сервисы. Нормальные сервисы будут иметь нормальные имена. Эти сервисы могут быть запущены системой или вручную.

    rinzwind@schijfwereld:/etc/init.d$ ls acpid hwclock.sh reboot alsa-utils irqbalance resolvconf anacron kerneloops rsync apparmor killprocs rsyslog apport kmod saned atieventsd lightdm sendsigs avahi-daemon lvm2 single bluetooth mountall-bootclean.sh skeleton bootmisc.sh mountall.sh smartmontools brltty mountdevsubfs.sh speech-dispatcher cgmanager mountkernfs.sh sslh cgproxy mountnfs-bootclean.sh sudo checkfs.sh mountnfs.sh thermald checkroot-bootclean.sh networking udev checkroot.sh network-manager udev-finish console-setup ondemand ufw cron php5-fpm umountfs cups pppd-dns umountnfs.sh cups-browsed procps umountroot dbus pulseaudio unattended-upgrades dns-clean rc urandom grub-common rc.local uuidd halt rcS x11-common hostname.sh README

  2. /etc/rc*/

    Запуск и уничтожает сценарии, расположены в /etc/rc[0-5,S].d. В целом файлы здесь имеют числа, и нормальное описание (эти файлы выполняются в алфавитном порядке при запуске и в обратном порядке во время уничтожения. Не упустите сценарии, состоящие из случайных чисел и букв. Вот список (это действительные сценарии).

    rinzwind@schijfwereld:/etc$ ls rc*/ rc0.d/: K01alsa-utils K01lightdm K01unattended-upgrades K05umountnfs.sh K01atieventsd K01php5-fpm K01urandom K06networking K01bluetooth K01pulseaudio K01uuidd K07umountfs K01cgmanager K01resolvconf K02avahi-daemon K08umountroot K01cgproxy K01speech-dispatcher K03sendsigs K09halt K01cups-browsed K01sslh K04rsyslog README K01irqbalance K01thermald K05hwclock.sh

    rc1.d/: K01alsa-utils K01irqbalance K01speech-dispatcher README K01atieventsd K01kerneloops K01sslh S01dns-clean K01bluetooth K01lightdm K01thermald S01killprocs K01cgmanager K01php5-fpm K01ufw S01pppd-dns K01cgproxy K01pulseaudio K01uuidd S02single K01cups K01saned K02avahi-daemon K01cups-browsed K01smartmontools K04rsyslog

    rc2.d/: README S01uuidd S02kerneloops S04cups S01apport S02acpid S02rsync S04cups-browsed S01cgmanager S02anacron S02smartmontools S04pulseaudio S01dns-clean S02atieventsd S02speech-dispatcher S04saned S01php5-fpm S02cgproxy S02thermald S05grub-common S01pppd-dns S02cron S03avahi-daemon S05ondemand S01rsyslog S02dbus S03bluetooth S05rc.local S01sslh S02irqbalance S03lightdm

    rc3.d/: README S01uuidd S02kerneloops S04cups S01apport S02acpid S02rsync S04cups-browsed S01cgmanager S02anacron S02smartmontools S04pulseaudio S01dns-clean S02atieventsd S02speech-dispatcher S04saned S01php5-fpm S02cgproxy S02thermald S05grub-common S01pppd-dns S02cron S03avahi-daemon S05ondemand S01rsyslog S02dbus S03bluetooth S05rc.local S01sslh S02irqbalance S03lightdm

    rc4.d/: README S01uuidd S02kerneloops S04cups S01apport S02acpid S02rsync S04cups-browsed S01cgmanager S02anacron S02smartmontools S04pulseaudio S01dns-clean S02atieventsd S02speech-dispatcher S04saned S01php5-fpm S02cgproxy S02thermald S05grub-common S01pppd-dns S02cron S03avahi-daemon S05ondemand S01rsyslog S02dbus S03bluetooth S05rc.local S01sslh S02irqbalance S03lightdm

    rc5.d/: README S01uuidd S02kerneloops S04cups S01apport S02acpid S02rsync S04cups-browsed S01cgmanager S02anacron S02smartmontools S04pulseaudio S01dns-clean S02atieventsd S02speech-dispatcher S04saned S01php5-fpm S02cgproxy S02thermald S05grub-common S01pppd-dns S02cron S03avahi-daemon S05ondemand S01rsyslog S02dbus S03bluetooth S05rc.local S01sslh S02irqbalance S03lightdm

    rc6.d/: K01alsa-utils K01lightdm K01unattended-upgrades K05umountnfs.sh K01atieventsd K01php5-fpm K01urandom K06networking K01bluetooth K01pulseaudio K01uuidd K07umountfs K01cgmanager K01resolvconf K02avahi-daemon K08umountroot K01cgproxy K01speech-dispatcher K03sendsigs K09reboot K01cups-browsed K01sslh K04rsyslog README K01irqbalance K01thermald K05hwclock.sh

    rcS.d/: README S03udev S08checkroot-bootclean.sh S01console-setup S04brltty S08kmod S02alsa-utils S04mountdevsubfs.sh S08urandom S02apparmor S04procps S09mountall.sh S02hostname.sh S04udev-finish S09networking S02mountkernfs.sh S05hwclock.sh S10mountall-bootclean.sh S02resolvconf S05lvm2 S10mountnfs.sh S02ufw S06checkroot.sh S11mountnfs-bootclean.sh S02x11-common S07checkfs.sh S12bootmisc.sh

  3. сценарий запуска.

    В общей Ubuntu использование избивает терминал и тире при начальной загрузке. echo $SHELL покажет Вам, какая оболочка используется. Для удара скрытые файлы для проверки на странные сценарии или странные строки кода...

    /etc/profile 
    /etc/bashrc
    /etc/bash.bashrc
    
    ~/.profile
    ~/.bash_profile
    

    Это 5 общих. Любая машина может иметь больше все же. Помимо этого Вы могли бы также включать

    /etc/crontab
    crontab
    

    Последний и для Вашего пользователя и путем выполнения sudo su. "crontab" можно перечислить с crontab -l. Наблюдайте за сценариями, которые не являются общим Linux или созданный Вами.

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

11
ответ дан 23 November 2019 в 07:28

Другие вопросы по тегам:

Похожие вопросы: