Я запускаю 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), и восстановите из резервной копии только те данные, которые, как вы можете быть уверены, не заражены. Если такие данные содержатся в репозиториях, просто извлеките их оттуда, а не из резервной копии.
Предположите, что какие-либо файлы в системе и ее резервных копиях являются подозрительными, и постарайтесь как можно больше восстановить их, не копируя файлы из резервной копии. Восстановите файлы конфигурации, просто повторив то, что вы сделали, скопируйте вставленный текст и т. Д.