Поглиблений аналіз Pay2Key: Технічний аналіз варіанта Linux-вимагальника
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Pay2Key — це операція з програмою-вимагачем, що приписується Ірану, яка впровадила варіант для Linux наприкінці серпня 2025 року. Програма запускається з привілеями root, вимикає захист безпеки та шифрує файли за допомогою ChaCha20. Її поведінка керується конфігураційним файлом і підтримує режими повного та часткового шифрування файлів. Аналіз підкреслює техніки оператора і зростаючу потребу в захистах від програм-вимагачів, орієнтованих на Linux.
Розслідування
Лабораторії загроз Morphisec провели аналіз зворотної інженерії зразка Linux Pay2Key. Дослідники задокументували перевірку привілеїв, розбір конфігурації JSON, розвідку файлової системи через /proc/mounts, завершення роботи сервісу, відключення SELinux і AppArmor, стійкість на основі cron і шифрування ChaCha20 з ключами на файл, що зберігаються всередині замаскованого блоку метаданих. Зразок не виявив слідів мережевого трафіку C2 або викрадення даних.
Захист
Звіт радить впроваджувати інструменти протидії програмам-вимагачам, орієнтовані на Linux, які можуть зупинити виконання до початку шифрування, підтримують захист рухомої цілі та зберігають цілісність захисту в режимі виконання. Також рекомендовано зменшити площу атаки, відключивши непотрібні сервіси та посиливши політики SELinux/AppArmor. Захист кінцевих точок, що відслідковує аномальну діяльність процесів з привілеями, може ще більше покращити стійкість.
Реагування
Якщо виявлено Pay2Key, ізолюйте систему, зупиніть шкідливий процес та видаліть запис стійкості cron. Підтвердіть, що права доступу до файлів не змінені, та відновіть зашифровані дані з резервних копій. Потім слід провести судову експертизу, щоб зафіксувати відповідні IOCs і перевірити ширше середовище на наявність пов’язаної активності.
"graph TB %% Class definitions classDef technique fill:#ffcc99 classDef operator fill:#ff9900 %% Nodes representing each ATT&CK technique persistence_cron["<b>Техніка</b> – <b>T1053.003 Розкладений завдання/робота: Cron</b><br/>Створює або змінює завдання cron для забезпечення виконання після перезавантаження системи"] class persistence_cron technique defense_impair["<b>Техніка</b> – <b>T1562 Погіршення захисту</b><br/>Вимикає SELinux і AppArmor для ослаблення механізмів захисту хоста"] class defense_impair technique indicator_removal["<b>Техніка</b> – <b>T1027.005 Видалення індикатора з інструментів</b><br/>Видаляє індикатори інструментів захисту для уникнення виявлення"] class indicator_removal technique discovery_mounts["<b>Техніка</b> – <b>T1083 Виявлення файлів і каталогів</b><br/>Зчитує /proc/mounts, відфільтровує псевдо-файлові системи та класифікує примонтовування для вибору цілей"] class discovery_mounts technique obfuscation_storage["<b>Техніка</b> – <b>T1027 Замасковані файли або інформація</b><br/>Зберігає метадані шифрування за допомогою вбудованого рядка та маскує корисне навантаження"] class obfuscation_storage technique deobfuscate["<b>Техніка</b> – <b>T1140 Демаскування/декодування файлів або інформації</b><br/>Декодує замасковане корисне навантаження під час обробки"] class deobfuscate technique impact_encryption["<b>Техніка</b> – <b>T1486 Дані зашифровані для впливу</b><br/>Генерує ключі ChaCha20 для кожного файлового об’єкта та шифрує дані, створюючи файли з вимогами викупу"] class impact_encryption technique %% Flow connections persistence_cron –>|призводить до| defense_impair defense_impair –>|призводить до| indicator_removal indicator_removal –>|призводить до| discovery_mounts discovery_mounts –>|призводить до| obfuscation_storage obfuscation_storage –>|призводить до| deobfuscate deobfuscate –>|призводить до| impact_encryption "
Поточний потік атаки
Виконання симуляції
Передумова: Тест на телеметрію та базову лінію повинен бути пройденим.
Обґрунтування: У цьому розділі викладено точне виконання техніки суперника (TTP), розроблені для запуску правила виявлення. Команди й розповідь МАЮТЬ безпосередньо відображати виявлені TTPs і бути спрямованими на генерацію точної телеметрії, яку очікує логіка виявлення.
-
Опис атаки та команди:
Симульований нападник вже отримав опору на хості Linux і бажає підготувати середовище для розгортання програм з вимаганням. Спочатку вони перевіряють, що працюють із привілеями root, потім навмисно вимикають засоби безпеки й зупиняють критичні сервіси, щоб уникнути перешкод під час шифрування. Нападник уникає створення запису cron на цьому етапі, щоб задовольнити пункт про заперечення правила.
- Перевірка привілеїв – Нападник запускає
id -uта перевіряє UID 0, який відображається в командному рядку як «root». - Переривання сервісу – Використовуючи
systemctl stopнападник зупиняєsshсервіс, щоб уникнути віддалених втручань. - Переривання процесу – Нападник припиняє низькопріоритетний фоновий процес (
sleep 300 &) для ілюстраціїkillшаблону. - Вимкнення захисту – SELinux встановлено на дозволяючий (
setenforce 0) та AppArmor відключено (aa-disable).
Ці кроки продукують
execveподії, що задовольняютьselection1(містить «root») таselection2/selection3(містить команди зупинки/знищення або відключення) при цьомуcrontabопускаються, тим самим спрацьовує правило Sigma. - Перевірка привілеїв – Нападник запускає
-
Скрипт регресійного тестування:
#!/usr/bin/env bash set -e echo "[*] Крок 1 – Перевірте привілеї root (містить 'root')" id -u | grep ^0 && echo "підтвердження привілеїв root" echo "[*] Крок 2 – Зупинити сервіс (systemctl stop sshd)" sudo systemctl stop sshd || true echo "[*] Крок 3 – Запустити та знищити демонстраційний процес" sleep 300 & DUMMY_PID=$! sudo kill -9 $DUMMY_PID || true echo "[*] Крок 4 – Вимкніть SELinux та AppArmor" sudo setenforce 0 || true sudo aa-disable || true echo "[+] Симуляція завершена – детекція мала спрацювати." -
Команди очищення:
#!/usr/bin/env bash set -e echo "[*] Відновлення сервісів" sudo systemctl start sshd || true echo "[*] Повторне вмикання SELinux (enforcing) та AppArmor" sudo setenforce 1 || true sudo aa-enable || true echo "[*] Забезпечення відсутності сторонніх процесів" pkill -f "sleep 300" || true echo "[+] Очищення завершено."