Новий технічний документ: Варіанти BPFDoor Маскуються на Видному Місці
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Rapid7 Labs виявила сім нових варіантів BPFDoor, що зловживають фільтрами Berkeley Packet Filters на рівні ядра для підтримки прихованого доступу через бекдор у телекомунікаційних середовищах. Нові родини, httpShell та icmpShell, використовують безстанні тунелі ICMP та HTTP із “магічними” форматами пакетів і прихованими IP-полями для встановлення командно-контрольного зв’язку з мінімальною помітністю. Звіт пояснює, як імпланти намагаються залишатися практично невидимими за допомогою маскування процесів, очищення файлів-дескрипторів, підробки міток часу та зашифрованої комунікації ICMP.
Розслідування
Дослідники проаналізували майже 300 зразків та виявили нові ознаки байткоду BPF, нові маркери “магічних байтів” та імена процесів, специфічні для варіантів, як-от hpasmlited та cmathreshd. Валідація в лабораторії в Docker відтворила тунелювання PTY на основі ICMP, обмін зашифрованими RC4 корисними навантаженнями та маршрутизаційна поведінка, де прапор –1 повертає трафік до адреси джерела пакета. Команда також виявила інфраструктуру підтримки, включаючи домени, що прикидаються NTP-over-SSL сервісами, використаними для змішування трафіку постановки та контролю.
Пом’якшення
Пріоритетно відстежуйте телеметрію, що виявляє зловживання, яке близько до ядра: моніторинг створення сокетів AF_PACKET, виявлення прикріплення фільтра BPF і пошук аномалій протоколу, пов’язаних із цими варіантами, включаючи послідовність ICMP 1234 та недійсний код ICMP 1. Попереджайте про підозрілі демони з відсутніми шляхами до виконуваних файлів, підробленими іменами сервісів або характеристиками виконання, які несумісні з легітимними системними процесами. Rapid7 рекомендує запускати триажний скрипт rapid7_bpfdoor_check.sh та оновлювати YARA/Suricata виявлення новими задокументованими підписами магічних байтів.
Відповідь
Якщо ознаки будуть виявлені, ізолюйте систему, зупиніть підозрілий імплант-процес і заблокуйте пов’язані домени та діапазони IP-адрес. Захопіть пам’ять та артефакти диска, щоб зберегти стан BPF і доказів виконання, потім використовуйте rapid7_bpfdoor_check.sh для ідентифікації активних фільтрів BPF та пов’язаних нульових байт артефактів-мьютексу. Нарешті, оновіть виявлення за допомогою опублікованих підписів і продовжуйте моніторинг повторної появи тих самих маркерів пакетів, імен процесів та поведінки фільтра-прикріплення.
Потік Атаки
Виявлення
Можливий контакт із динамічним сервісом DNS (через dns)
Переглянути
ІОЦ (HashSha256) для виявлення: Нова Біла книга: Приховані варіанти BPFDoor – це голка, яка виглядає як сіно
Переглянути
Виявлення варіантів BPFDoor через аномалії процесів [Створення процесів Linux]
Переглянути
Виявлення магічного пакета BPFDoor та інцидентів ICMP [Міжмережевий екран]
Переглянути
Виконання Симуляції
Передумова: Проведення попередньої перевірки телеметрії та базового рівня має бути успішним.
Історія Атаки та Команди
-
Створіть шкідливий Bash-скрипт у рідко моніторованому шляху
/var/run/user/0. - Зробіть скрипт виконуваним а потім видаліть файл залишаючи його відкритим, що призводить до видаленого іноду який ядро записує як частину командного рядка, коли процес продовжує працювати.
- Виконайте файл-дескриптор, що залишився відкритим, що змушує процес працювати з видаленого іноду і генерує саме ту телеметрію, на яку орієнтується правило Sigma.
-
Перевірте що командний рядок процесу в журналах аудиту містить рядок “видалений інод”, що задовольняє
вибір3. -
Уникайте виключених маскувальних рядків (
hpasmlited,cmathreshd) щоб забезпечити спрацювання правила.
Скрипт тесту регресії
#!/usr/bin/env bash
# -------------------------------------------------
# Перевірка виконання BPFDoor зі видаленого іноду
# -------------------------------------------------
# 1. Підготуйте шкідливе (безпечне) корисне навантаження
PAYLOAD="/var/run/user/0/malicious.sh"
echo -e "#!/usr/bin/env bashnsleep 60" > "$PAYLOAD"
chmod +x "$PAYLOAD"
# 2. Відкрийте файл дескриптора (залиште файл відкритим)
exec 3<"$PAYLOAD"
# 3. Видаліть файл із файлової системи – інод залишається відкритим через FD 3
rm -f "$PAYLOAD"
# 4. Виконайте скрипт через його невідкріплений файловий дескриптор.
# /proc/self/fd/3 вказує на тепер видалений інод.
bash /proc/self/fd/3 &
# 5. Дайте процесу час на запуск та реєстрацію
sleep 5
# 6. Очищення: закрийте файловий дескриптор
exec 3<&−
echo "Симуляція завершена – перевірте SIEM на наявність попереджень."
Команди Очищення
#!/usr/bin/env bash
# -------------------------------------------------
# Очищення після симуляції BPFDoor
# -------------------------------------------------
# Закрийте будь-які "виснуть" процеси сну, запущені скриптом
pkill -f "sleep 60"
# Переконайтеся, що в цільовій директорії не залишилися файли
rm -f /var/run/user/0/malicious.sh
echo "Очищення завершено."
Кінець Звіту