Назад | Перейти на главную страницу

Debian - Предупреждение: установлен возможный троян LKM

Я запускаю chkrootkit каждую ночь в 3:04. Более 1 года не возвращалось никаких проблем, но 1 месяц назад начало появляться это предупреждение:

=======================
Checking `lkm'...                                           You have     1 process hidden for readdir command
You have     1 process hidden for ps command
chkproc: Warning: Possible LKM Trojan installed
=======================

Теперь я запускаю chkrootkit каждый час и в

3:02
3:03
3:04
3:05

В остальное время предупреждений нет, но 2-3 раза в неделю chkrootkit возвращает это предупреждение в 3:02 или 3:04. При следующем сканировании через 1 минуту это предупреждение не возвращается. Любые идеи? Почему это предупреждение появляется в 3 часа ночи? Есть ли способ запустить chkrootkit, чтобы показать больше информации о скрытом процессе?

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

Rkhunter, Clamav, LFD / CSF не сообщает о проблемах на сервере.

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

Отслеживание предупреждения:

Я отслеживал ps команда до и после скрипта, в /etc/cron.daily/chkrootkit:

ls /proc/*/status -al > /tmp/lsproc.before.txt
ps axf > /tmp/psaxf.before.txt
ps auxwww > /tmp/psauxwww.before.txt
eval $CHKROOTKIT $RUN_DAILY_OPTS > $LOG_DIR/log.today.raw 2>&1
ls /proc/*/status -al > /tmp/lsproc.after.txt
ps axf > /tmp/psaxf.after.txt
ps auxwww > /tmp/psauxwww.after.txt

И вот результат:

$ wc -l /tmp/*.txt
  218 lsproc.before.txt
  219 psauxwww.before.txt
  217 psaxf.before.txt

  218 lsproc.after.txt
  216 psauxwww.after.txt
  219 psaxf.after.txt

Как видите: до того же (ps aux имеет одну первую строку для столбцов, которые ls /proc/* нет). Итак, раньше у нас было 218 процессов. После у нас остается 218, но только 215 (216 - 1) процессов в ps. И я получаю предупреждение: You have 3 process hidden for ps command, так что разница между /proc/ и ps.

Что это были за процессы? я просто diff два psauxwww *:

my_user     16674  0.0  0.0  13976  1456 ?        S    05:25   0:00 sh /one/dedicated/script.sh
my_user     16690  0.0  0.0  13980  1392 ?        S    05:25   0:00 sh /one/dedicated/script.sh
my_user     16691  0.0  0.0  44284  2824 ?        S    05:25   0:00 ssh [...]

Не спрятано, просто пропало!

Итак, это всего лишь один скрипт, который каждую минуту запускается с моим «скрытым» crontab. Но он не скрыт (как я обнаружил, вы можете скрыть некоторые процессы): он просто исчезает во время теста chkproc!

Решения?

Пока я не вижу простого решения. chkrootkit написано на bash, но chkproc составлен ...

Если вы отслеживаете отсутствующие процессы (скорее всего, cron, как в моем случае), вы можете:

  • прекратить запуск cron одновременно с chkrootkit (не всегда возможно, так как иногда вам нужно запускать cron каждую минуту, несмотря ни на что)

  • закройте свой скрипт точно в ту минуту, когда запускается chkrootkit, надеясь, что chkrootkit не будет работать больше одной минуты, например, в bash вы добавите для chkrootkit, работающего в 6:25:

    если ["` дата +% H% M` "=" 0625 "]; затем выйдите из 0; фи

  • немного отложить выполнение chkrootkit, добавив сон в начале /etc/cron.daily/chkrootkit script, например, если ваш другой сценарий занимает менее 15 секунд:

    спать 15

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

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

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

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

Я лично очень хорошо разбираюсь в том, что делать в таких и других ситуациях. Руководство по обеспечению безопасности Debian, особенно в вашем случае проверьте Глава 11 - После компромисса

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

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

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