Аналіз шкідливого ПЗ 101: дослідження шкідливих файлів
Аналітики безпеки аналізують зловмисне ПЗ, щоб зрозуміти поведінку. Дізнайтеся про налаштування пісочниці, статичний і динамічний аналіз від фахівців.
Зміст
- Навіщо аналізувати шкідливе ПЗ?
- Налаштування безпечного середовища аналізу
- Статичний аналіз: дослідження без виконання
- Ідентифікація файлу та хешування
- Витягнення рядків
- Аналіз заголовка PE
- Динамічний аналіз: спостереження за роботою шкідливого ПЗ
- Автоматизовані пісочниці
- Витягнення індикаторів компрометації
Навіщо аналізувати шкідливе ПЗ?
Аналіз шкідливого ПЗ — це процес розбирання зловмисного програмного забезпечення, щоб зрозуміти, що воно робить, як поширюється, з чим взаємодіє та яку шкоду може завдати. Ця інформація безпосередньо використовується у реагуванні на інциденти (які системи постраждали?), розвідці загроз (чи це відомий актор?) та інженерії виявлення (як написати сигнатуру для виявлення цього в майбутньому?).
Вам не потрібно зворотньо розробляти кожен байт, щоб провести цінний аналіз. Вміння безпечно запустити зразок, спостерігати за його поведінкою та витягти індикатори компрометації (IOC) — домени, IP-адреси, хеші файлів, ключі реєстру — є практичним навичком, який можуть розвинути не-спеціалісти.
Налаштування безпечного середовища аналізу
Це найважливіший крок. Ніколи не аналізуйте шкідливе ПЗ на основній машині або виробничій мережі. Правильне налаштування ізоляції вимагає:
- Виділеної віртуальної машини (VMware або VirtualBox) з увімкненими знімками стану. Завжди повертайтеся до чистого знімка після кожного сеансу аналізу.
- Мережевого адаптера ВМ, налаштованого в режим "лише хост" або ізольованої мережі. Ніколи не підключайте його до реальної локальної мережі (LAN).
- Окремої ОС для аналізу — Windows 10/11 є ідеальним варіантом, оскільки більшість шкідливого ПЗ орієнтована на Windows. Використовуйте ліцензовану копію спеціально для аналізу.
- Вимкніть спільні папки та спільний буфер обміну між хостом та гостем — деяке шкідливе ПЗ активно шукає ці канали для виходу за межі ВМ.
- Розгляньте можливість використання виділеної фізично ізольованої машини для аналізу, якщо Ви працюєте з особливо складними зразками.
Такі інструменти, як REMnux (дистрибутив Linux для аналізу) та FLARE VM (середовище аналізу Windows від Mandiant), поставляються з попередньо встановленими інструментами аналізу та є найшвидшим способом розпочати роботу.
Статичний аналіз: дослідження без виконання
Статичний аналіз досліджує файл шкідливого ПЗ без його запуску. Починайте саме з нього — він безпечний і часто розкриває багато інформації.
Ідентифікація файлу та хешування
Перш за все обчисліть хеш файлу:
sha256sum suspicious_file.exe
Пошукайте хеш на VirusTotal, Malware Bazaar або Hybrid Analysis. Якщо це відомий зразок, Ви одразу отримаєте назву сімейства, звіти про поведінку та попередній аналіз. Хеш також слугує Вашим основним IOC для правил виявлення.
Використовуйте file в Linux або PEiD/Detect-It-Easy у Windows для визначення типу файлу. Шкідливе ПЗ часто використовує оманливі розширення — .pdf може насправді бути PE-виконуваним файлом.
Витягнення рядків
Запуск strings проти бінарного файлу витягує всі послідовності друкованих символів. Ви часто знайдете:
- Закодовані доменні імена та IP-адреси (інфраструктура C2)
- Шляхи до файлів та ключі реєстру, з якими взаємодіє шкідливе ПЗ
- Повідомлення про помилки, що розкривають мову/середовище розробника
- Ключі шифрування або дані конфігурації
strings -n 8 malware.exe | grep -Ei 'http|cmd|reg|powershell'
Аналіз заголовка PE
Для виконуваних файлів Windows такі інструменти, як PE-bear, CFF Explorer або бібліотека Python pefile, розкривають таблицю імпорту (які функції Windows API викликає бінарний файл), назви секцій та ентропію (висока ентропія свідчить про пакування/шифрування), мітки часу компіляції та вбудовані ресурси. Бінарний файл, що імпортує CreateRemoteThread, VirtualAllocEx та WriteProcessMemory, майже напевно виконує ін'єкцію процесу.
Динамічний аналіз: спостереження за роботою шкідливого ПЗ
Динамічний аналіз виконує зразок у Вашій ізольованій ВМ, одночасно відстежуючи його поведінку. Налаштуйте монітори перед запуском зразка:
- Process Monitor (Procmon): реєструє кожну подію файлу, реєстру та мережі за процесами
- Wireshark: захоплює весь мережевий трафік
- Process Hacker: показує запущені процеси, ін'єктовані потоки, завантажені модулі
- Regshot: робить знімки реєстру до та після виконання для порівняння різниці
Запустіть зразок, зачекайте 2–5 хвилин, потім перегляньте зібрані дані. Ключові питання:
- Які процеси він створив або в які здійснив ін'єкцію?
- Які файли він створив, змінив або видалив?
- Які ключі реєстру він встановив (механізми закріплення)?
- Які мережеві з'єднання він намагався встановити — домени, IP-адреси, порти, протоколи?
- Чи намагався він вимкнути інструменти безпеки або змінити брандмауер Windows?
Автоматизовані пісочниці
Для швидкого сортування надішліть зразок до автоматизованої пісочниці:
- Any.run (інтерактивна, на основі браузера)
- Hybrid Analysis (безкоштовна, на базі CrowdStrike Falcon Sandbox)
- Joe Sandbox (детальні звіти)
- Cuckoo Sandbox (самостійно розгортається, з відкритим кодом)
Пісочниці автоматизують робочий процес динамічного аналізу та створюють структуровані звіти з IOC, картографуванням MITRE ATT&CK та захопленнями мережевого трафіку — часто за лічені хвилини. Їхнє обмеження полягає в тому, що складне шкідливе ПЗ активно виявляє середовища пісочниць (перевіряючи незвичні імена користувачів, мінімальний час роботи, артефакти ВМ) та залишається в режимі очікування, щоб уникнути виявлення.
Витягнення індикаторів компрометації
Практичним результатом аналізу шкідливого ПЗ є набір IOC для виявлення та блокування:
- Хеші файлів (MD5, SHA-256) для сигнатур AV/EDR
- Доменні імена та IP-адреси для DNS-синкхолів та блокувань брандмауера
- URL-адреси для блокування веб-проксі
- Ключі реєстру для правил виявлення
- Назви м'ютексів (шкідливе ПЗ часто створює м'ютекси, щоб уникнути подвійного зараження — вони є чудовими IOC)
- Правила YARA для виявлення на основі шаблонів у колекціях файлів
Документуйте все в структурованому форматі (STIX/TAXII при поширенні в спільноті) та діліться результатами на таких платформах, як MISP або OpenCTI, щоб принести користь ширшій спільноті безпеки.