Rootkits - вредоносные программы, которые маскируют своё присутствие в системе. Они могут скрывать файлы, процессы и сетевые соединения, подменять команды и даже обходить антивирусные проверки.
▪️ Как rootkits скрывают процессы?
1. Подмена системных вызовов (syscalls). Rootkits перехватывают вызовы getdents(), readdir(), ps, top, скрывая нужные процессы.
2. Изменение ядра (Kernel Mode Rootkits). Загружаются как модули ядра (.ko файлы) и модифицируют функции ядра, скрывая свою активность.
3. Хук системы /proc. Подменяют содержимое /proc/[PID], скрывая процесс от стандартных утилит.
4. Использование LD_PRELOAD. Библиотеки динамической подгрузки подменяют поведение системных команд без изменения ядра.
▪️ Как обнаружить скрытые процессы?
1️⃣ Проверка /proc вручную
ls -al /proc | grep -vE "^[d-]r--r--r--"
Если процесс не виден стандартными командами (ps aux, top), но есть его директория в /proc — это подозрительно.
2️⃣ Сравнение выводов разных утилит
ps aux | wc -l && ls /proc | grep -E '^[0-9]+$' | wc -l
Числа должны совпадать. Если в /proc больше процессов, чем показывает ps, возможно, система заражена.
3️⃣ Использование утилиты
chkrootkit
chkrootkit | grep INFECTED
Простая проверка на известные rootkits.
4️⃣ Использование
rkhunter
rkhunter --check
Проверяет системные файлы на несанкционированные изменения.
5️⃣ Анализ ядра и загруженных модулей
lsmod | grep -i rootkit
Некоторые rootkits могут маскироваться, но подозрительные модули можно выявить через lsmod.
▪️ Как защититься?
Использовать SELinux/AppArmor для ограничения доступа к системным ресурсам.
Регулярно проверять целостность файлов (aide, tripwire).
Зарпетить загрузку новых модулей ядра (echo 1 > /proc/sys/kernel/modules_disabled).
Следить за сетевой активностью (netstat -tulnp | grep LISTEN).
Использовать Linux-утилиты безопасности (auditd, Sysmon for Linux).
#linux #security
🧑💻 NetworkAdmin