Виявлення руткітів для Linux: Інструменти та методи
10 хв читання - 16 травня 2026 р.

Як виявляти та запобігати появі руткітів Linux за допомогою chkrootkit, rkhunter, Auditd, AIDE та поведінкового моніторингу на ваших серверах.
Виявлення руткітів для Linux: Інструменти та методи для захисту серверів
Руткіти надають зловмисникам постійний, прихований доступ до систем Linux. Вони маніпулюють операціями ядра, приховують файли і процеси та обходять стандартні засоби захисту. Деякі з них залишаються непоміченими роками. Їх виявлення вимагає багаторівневого підходу, оскільки жоден інструмент не здатен виявити все.
У цій статті ви дізнаєтеся про основні типи руткітів для Linux, способи їх пошуку, а також про вдосконалені методи моніторингу, які виявляють те, що пропускають базові сканери.
Типи руткітів для Linux
Руткіти працюють на різних рівнях привілеїв, і чим глибше вони вбудовуються, тим важче їх знайти.
Руткіти користувацького режиму працюють на рівні додатків (кільце 3). Вони перехоплюють динамічні посилання за допомогою LD_PRELOAD, щоб впровадити шкідливі бібліотеки, які перехоплюють стандартні функції бібліотеки C, такі як readdir або fopen, приховуючи файли та процеси від користувацьких інструментів.
Руткіти в режимі ядра запускаються в кільці 0, завантажуючись як завантажувані модулі ядра (Loadable Kernel Modules, LKM). Вони перехоплюють системні виклики, маніпулюють пам'яттю ядра та приховують свою присутність. Оскільки вони прив'язані до певних версій ядра, неправильно сконфігурований модуль може спричинити паніку ядра, що за іронією долі викриває його.
руткіти на основі eBPF використовують підсистему Extended Berkeley Packet Filter для роботи в просторі ядра, не завантажуючи традиційний модуль. Вони приєднуються до гачків системного виклику, точок трасування або подій LSM. Стандартні сканери LKM їх не побачать. Boopkit є відомим прикладом, який створює прихований C2-канал, використовуючи цей підхід.
руткіти на основі io_uring - найновіший варіант. Вони використовують інтерфейс асинхронного вводу/виводу io_uring для пакетних операцій, генеруючи менше помітних подій системного виклику. RingReaper, експериментальний руткіт, продемонстрував, як він може непомітно замінити такі виклики, як читання, запис і з' єднання, уникаючи при цьому інструментів EDR.
| Тип руткіту | Рівень привілеїв | Метод перехоплення | Складність виявлення |
|---|---|---|---|
| Режим користувача | Кільце 3 (Користувач) | LD_PRELOAD, перехоплення бібліотеки | Помірна |
| Режим ядра | Кільце 0 (Kernel) | Таблиця системних викликів, LKM, вбудовані хуки | Високий |
| на основі eBPF | Ring 0 (Kernel) | вкладення програми eBPF | Дуже висока |
| io_uring-based | Користувач/ядро | Асинхронне пакетування вводу/виводу | Дуже висока |
Сканування за допомогою chkrootkit та rkhunter
Два інструменти формують базову лінію для виявлення руткітів на серверах Linux: chkrootkit для швидкого сканування і rkhunter для більш глибокої перевірки.
chkrootkit
chkrootkit - це скрипт командного інтерпретатора, який перевіряє критичні системні двійкові файли(ls, ps, netstat, sshd, ifconfig) на наявність ознак втручання. Він також виявляє нерозбірливі мережеві інтерфейси і видалені журнали. Станом на версію 0.59 (січень 2026 року) він може ідентифікувати понад 75 руткітів, черв'яків і LKM, включно з новими загрозами, такими як Linux BPFDoor, Syslogk і XZ Backdoor.
Запускайте його після будь-якої підозрілої активності. Звертайте увагу на попередження від компонента ifpromisc і сповіщення про видалені файли lastlog або wtmp.
rkhunter
rkhunter йде далі. Він порівнює SHA-1 хеші системних двійкових файлів з відомими значеннями, відстежує дозволи на файли і приховані файли, перевіряє конфігурацію запуску, а також виконує аналіз ядра і мережі.
Налаштуйте його правильно з самого початку:
# Establish a baseline after a clean install or update
rkhunter --propupd
# Update rootkit definitions
rkhunter --update
# Run a full scan (use --novl on production servers to reduce I/O)
rkhunter --check --enable all
Для автоматичного щоденного сканування встановіть CRON_DAILY_RUN="true" у файлі /etc/rkhunter.conf і використовуйте --skip-keypress і --report-warnings-only для чистого виводу. Перегляньте журнали в /var/log/rkhunter.log і білий список підтверджених хибних спрацьовувань.
Виявлення руткітів LKM
LKM-руткіти є особливо небезпечними, оскільки вони працюють як розширення ядра, перехоплюючи системні виклики і приховуючи процеси на рівні ядра. Стандартні інструменти, такі як lsmod, їх не побачать, але існують способи їх виявлення.
Порівняйте вивід lsmod зі списками /sys/module/. Перевірте системні журнали на наявність підозрілих повідомлень ядра:
# Look for out-of-tree module warnings
sudo dmesg | grep "loading out-of-tree module taints kernel"
# Check for module verification failures
grep "module verification failed" /var/log/syslog
# Run chkrootkit's LKM-specific check
sudo chkrootkit lkm
Навіть руткіти, які ховаються від lsmod і /proc/modules (наприклад, Diamorphine), можна знайти, перевіривши /sys/module/diamorphine/coresize або переглянувши попередження системного журналу.
Розширене виявлення: Моніторинг поведінки та перевірка цілісності
Статичні сканери мають фундаментальний недолік. В експерименті 2026 року додавання одного нульового байта до двійкового файлу руткіту - зміна, яка не впливає на функціональність, - різко знизило рівень виявлення. Виявлення Diamorphine знизилося з 33/66 до 8/64 лише за рахунок видалення таблиць символів. Покладатися лише на сигнатури недостатньо.
Аналіз поведінки
Замість того, щоб запитувати "чи відповідає цей файл відомому руткіту?", поведінковий аналіз запитує "чи робить цей процес щось незвичне?" Відстежуйте ці сигнали:
- Використовуйте Auditd для спостереження за системними викликами
init_module() іfinit_module(), які завантажують модулі ядра незалежно від методу. - Відстежуйте виклики
kill()з сигналами вище 31, які можуть вказувати на прихований зв'язок з руткітом. - Перевіряйте
/proc/sys/kernel/taintedна наявність несанкціонованої активності модулів ядра. - Слідкуйте за появою несподіваних
.so-файліву/tmpабо/dev/shm. - Відстежуйте активність eBPF, зокрема виклики
bpf_probe_write_user. Такі інструменти, як BCC, можуть відстежувати операції io_uring через такі точки трасування, якsys_enter_io_uring_enter.
Для руткітів eBPF та io_uring, зокрема, інструменти моніторингу виконання, такі як Tetragon, Falco та Tracee, можуть спостерігати за активністю в ядрі в реальному часі.
Моніторинг цілісності файлів
AIDE (Advanced Intrusion Detection Environment - розширене середовище виявлення вторгнень) створює базову лінію довірених системних файлів і перевіряє їх на наявність змін. Ініціалізуйте за допомогою aide --init, а потім заплануйте aide --check через cron. Програма відстежує контрольні суми, дозволи, права власності та мітки часу у критично важливих двійкових файлах, таких як /bin/login і /usr/bin/sshd.
Для перевірки на рівні пакунків цілісність системних файлів можна підтвердити за допомогою debsums (Debian/Ubuntu) або rpm -Va (RHEL/CentOS). Для отримання найбільш надійних результатів завантажуйтеся з надійного завантажувального носія і перевіряйте файлову систему в автономному режимі, оскільки руткіти можуть втручатися у звітність працюючого ядра.
Також слідкуйте за механізмами збереження даних. Руткіти часто модифікують файл /etc/ld.so.preload, щоб впровадити спільні об'єкти, або змінюють файли .bashrc і .profile. Легітимні зміни в цих файлах трапляються рідко, тому сповіщення тут мають високе співвідношення сигнал/шум.
Автоматизований моніторинг за допомогою Auditd
Додайте ці правила до файлу /etc/audit/rules.d/rootkit.rules для виявлення підозрілої активності ядра в режимі реального часу:
# Detect unauthorized kernel module loading
-a always,exit -F arch=b64 -S finit_module -S init_module
# Catch unusual high-range kill signals
-a always,exit -F arch=b64 -S kill -F a1>=32
Поєднайте їх з автоматичними оновленнями rkhunter. Встановіть UPDATE_MIRRORS=1 і MIRRORS_MODE=0 у конфігурації і запускайте rkhunter --propupd після легітимних оновлень системи, щоб оновити базову лінію.
Захист вашого сервера від руткітів
Виявлення має значення, але краще запобігти зараженню. Більшість руткітів вимагають підвищених привілеїв для встановлення, тому зменшення поверхні атаки має велике значення.
Оновлюйте ядро та пакунки. Зловмисники використовують невиправлені вразливості для підвищення привілеїв і розгортання руткітів на основі LKM або eBPF. Після встановлення виправлення оновіть бази виявлення за допомогою rkhunter --propupd.
Застосовуйте найменші привілеї. Не надавайте користувачам або процесам більше доступу, ніж їм потрібно. Використовуйте SELinux або AppArmor для обов'язкового контролю доступу, який блокує несанкціоновані дії, навіть якщо процес скомпрометовано.
Вимкніть завантаження модулів ядра після завантаження. На виділених серверах ви можете повністю запобігти LKM-руткітам, заблокувавши завантаження модулів після запуску системи. На віртуальному хостингу це неможливо, і саме тому виділені або VPS-середовища пропонують більш надійні засоби захисту.
Сегментуйте свою мережу. Ізоляція частин вашої інфраструктури обмежує бічний рух, якщо один з комп'ютерів скомпрометований.
Регулярно проводьте аудит. Такі інструменти, як Lynis, можуть виявляти помилки в дозволах і неправильні конфігурації до того, як ними скористаються зловмисники.
Висновок
Руткіти створені так, щоб ховатися у всіх на виду. До моменту появи симптомів, система може бути вже скомпрометована і не підлягати відновленню. Жоден сканер не здатен виявити все, а базове виявлення на основі сигнатур легко обійти.
Практичний захист поєднує в собі кілька рівнів:
- Регулярне сканування за допомогою chkrootkit та rkhunter на наявність відомих загроз
- Правила Auditd та моніторинг поведінки для виявлення підозрілої активності ядра
- Моніторинг цілісності файлів за допомогою AIDE для виявлення несанкціонованих змін
- Інструменти виконання, такі як Tetragon або Falco для загроз eBPF та io_uring
- Посилений контроль доступу, виправлення та сегментація мережі для зменшення поверхні атаки
Автоматизуйте те, що ви можете, підтримуйте актуальні базові показники та почніть з чистої інсталяції ОС, якій ви довіряєте.
FDC Servers пропонує виділений та VPS-хостинг з повним root-доступом і конфігурацією ядра, що налаштовується. Ознайомтеся з опціями виділеного сервера, щоб створити захищене середовище Linux.

Втомилися від повільного розгортання або обмежень пропускної здатності? FDC Servers пропонує миттєве виділення потужності, глобальне охоплення та гнучкі плани, створені для будь-якого масштабу.
Оновити зараз
Контрольний список для зміцнення сервера Linux
Покроковий контрольний список для захисту Linux-сервера. Охоплює SSH, брандмауери, виправлення, дозволи на файли, SELinux/AppArmor та ведення журналів аудиту
15 хв читання - 8 травня 2026 р.
iperf3 Підручник: Вимірювання швидкості мережі в Linux та Windows
10 хв читання - 7 травня 2026 р.

Маєте запитання або потребуєте індивідуального рішення?
Гнучкі варіанти
Глобальне охоплення
Миттєве розгортання
Гнучкі варіанти
Глобальне охоплення
Миттєве розгортання