Файловые индикаторы компрометации (File-based Indicators of Compromise, IOC) — это критические артефакты, используемые для выявления вредоносной активности в инфраструктуре. В отличие от сетевых IOC (IP-адреса, домены), файловые индикаторы включают хеши, названия, пути размещения и сигнатуры исполняемых файлов, скриптов и документов.
В этой статье разбираем:
- Типы файловых IOC и их значение в расследовании инцидентов.
- Методы сбора и валидации IOC.
- Инструменты для работы с файловыми индикаторами.
- Практические рекомендации.
- Типы файловых индикаторов компрометации
- Хеши файлов (Cryptographic Hashes)
- Сигнатуры (YARA Rules)
- Метаданные файлов
- Источники файловых IOC
- Открытые базы данных
- Закрытые источники
- Локальный сбор IOC
- Инструменты для работы с файловыми IOC
- Анализ хешей
- Генерация YARA-правил
- Сэндбоксинг
- Рекомендации по использованию IOC
- Для SOC-аналитиков
- Для Threat Hunting
- Для IR-команд
- Заключение
Типы файловых индикаторов компрометации
Хеши файлов (Cryptographic Hashes)
Основные алгоритмы:
- MD5 (устаревший, но всё ещё используется для быстрой проверки).
- SHA-1/SHA-256 (стандарт для отчетов и баз IOC).
Пример:
1 2 3 | malware.exe: MD5 = d41d8cd98f00b204e9800998ecf8427e SHA-256 = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
Проблемы:
- Хеши легко изменить через мутацию кода (полиморфные вирусы).
- Ложные срабатывания на легитимных файлах (например, обновлениях ПО).
Сигнатуры (YARA Rules)
YARA — язык для описания шаблонов в файлах (строки, HEX-паттерны).
Пример правила для обнаружения Mimikatz:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | rule mimikatz : FILE { meta: description = "mimikatz" author = "Benjamin DELPY (gentilkiwi)" tool_author = "Benjamin DELPY (gentilkiwi)" modified = "2022-11-16" id = "840a5b8c-a311-50bc-a099-6b8ab1492e12" strings: $exe_x86_1 = { 89 71 04 89 [0-3] 30 8d 04 bd } $exe_x86_2 = { 8b 4d e? 8b 45 f4 89 75 e? 89 01 85 ff 74 } $exe_x64_1 = { 33 ff 4? 89 37 4? 8b f3 45 85 c? 74} $exe_x64_2 = { 4c 8b df 49 [0-3] c1 e3 04 48 [0-3] 8b cb 4c 03 [0-3] d8 } $sys_x86 = { a0 00 00 00 24 02 00 00 40 00 00 00 [0-4] b8 00 00 00 6c 02 00 00 40 00 00 00 } $sys_x64 = { 88 01 00 00 3c 04 00 00 40 00 00 00 [0-4] e8 02 00 00 f8 02 00 00 40 00 00 00 } condition: (all of ($exe_x86_*)) or (all of ($exe_x64_*)) or (any of ($sys_*)) } rule HKTL_mimikatz_icon { meta: description = "Detects mimikatz icon in PE file" license = "Detection Rule License 1.1 https://github.com/SigmaHQ/Detection-Rule-License" author = "Arnim Rupp" reference = "https://blog.gentilkiwi.com/mimikatz" date = "2023-02-18" score = 60 hash1 = "61c0810a23580cf492a6ba4f7654566108331e7a4134c968c2d6a05261b2d8a1" hash2 = "1c3f584164ef595a37837701739a11e17e46f9982fdcee020cf5e23bad1a0925" hash3 = "c6bb98b24206228a54493274ff9757ce7e0cbb4ab2968af978811cc4a98fde85" hash4 = "721d3476cdc655305902d682651fffbe72e54a97cd7e91f44d1a47606bae47ab" hash5 = "c0f3523151fa307248b2c64bdaac5f167b19be6fccff9eba92ac363f6d5d2595" id = "2a5ea476-a30d-5eac-b57a-3fb49386c046" strings: $ico = {79 e1 d7 ff 7e e5 db ff 7f e8 dc ff 85 eb dd ff ba ff f1 ff 66 a0 b6 ff 01 38 61 ff 22 50 75 c3} condition: uint16(0) == 0x5A4D and $ico and filesize < 10MB } |
Метаданные файлов
- Время создания/модификации (аномалии в датах).
- Цифровые подписи (поддельные сертификаты).
- Пути размещения (например: C:\Windows\Temp\winsvc.exe).
Источники файловых IOC
Открытые базы данных
- VirusTotal (https://virustotal.com) — агрегатор хешей и сигнатур.
- MISP (https://www.misp-project.org) — платформа для обмена IOC.
- AlienVault OTX (https://otx.alienvault.com) — сообщество Threat Intelligence.
Полезное: Лучшие информационные потоки о киберугрозах (Threat Intelligence Feeds)
Закрытые источники
- Коммерческие Threat Feeds (Recorded Future, FireEye, Kaspersky).
- Анализ образцов малвари (сэндбоксы ANY.RUN, Hybrid Analysis).
- Регуляторы (ФинЦЕРТ, ГосСОПКА, ФСТЭК).
Локальный сбор IOC
- Логи антивирусов (ESET, Kaspersky, Trend Micro).
- Поиск через SIEM (поиск аномальных файлов в логах).
Инструменты для работы с файловыми IOC
Анализ хешей
- VirusTotal
- HashCheck - проверка файлов против VirusTotal API.
- PyWhat (https://github.com/bee-san/pyWhat) - автоматическая классификация хешей.
Генерация YARA-правил
- YARA Generator
- Loki — сканер на основе IOC.
Сэндбоксинг
- VirusTotal
- ANY.RUN (http://any.run) - интерактивный анализ подозрительных файлов.
- Hybrid Analysis (https://www.hybrid-analysis.com/)
Рекомендации по использованию IOC
Для SOC-аналитиков
- Регулярно обновляйте базы IOC (раз в 24 часа).
- Настройте автоматические алерты в SIEM при совпадении хешей.
Для Threat Hunting
- Ищите скрытые файлы, к примеру в C:\Windows\Temp\ и реестре.
- Анализируйте временные метки (например, создание в 3:00 AM).
Для IR-команд
- Включайте файловые IOC в отчеты об инцидентах.
- Используйте память (RAM) для поиска неустойчивых артефактов.
Полезное: Извлечение криминалистических артефактов из swap (файла подкачки) Linux
Заключение
Файловые IOC — ключевой элемент современной киберзащиты, но требуют комплексного подхода:
- Комбинация хешей, YARA и метаданных.
- Интеграция с Threat Intelligence.
- Постоянная верификация для минимизации ложных срабатываний.
Готовы ли ваши системы к детектированию сложных файловых IOC? Делитесь кейсами в комментариях!