Что делает
YARA — инструмент для идентификации и классификации вредоносного программного обеспечения по правилам. Правила YARA описывают паттерны (строки, бинарные последовательности, регулярные выражения) в файлах. Широко используется в антивирусах, IDS, threat hunting для поиска малвари.
Установка
sudo apt install yara
Синтаксис
yara [опции] <файл правил> <цель>
Ключевые флаги и опции
|
Флаг |
Описание |
|---|---|
|
|
Рекурсивный обход директорий |
|
|
Показывать совпавшие строки |
|
|
Количество потоков |
|
|
Показать метаданные правил |
|
|
Инвертировать результаты (только несовпадения) |
|
|
Показать теги |
|
|
Лимит строк |
|
|
Определить внешнюю переменную |
|
|
Без предупреждений |
|
|
Быстрый режим |
|
|
Загрузить внешний модуль |
Практические примеры
Пример 1 — поиск малвари по готовым правилам:
# Скачиваем правила (например, из репозитория):git clone https://github.com/Yara-Rules/rules.git /opt/yara-rules# Сканируем подозрительный файл:yara /opt/yara-rules/malware/RAT.yar /tmp/suspicious_file.exe
QUASAR_RAT /tmp/suspicious_file.exeWin32_Trojan_Generic /tmp/suspicious_file.exe
Пример 2 — написание кастомного правила:
cat > detect_webshell.yar << 'EOF'rule WebShell_PHP_Generic { meta: description = "Detect PHP web shells" severity = "critical" strings: $s1 = "eval(" nocase $s2 = "base64_decode(" nocase $s3 = "system(" nocase $s4 = "passthru(" nocase $s5 = "$_REQUEST" nocase $s6 = "$_POST" nocase condition: filesize < 100KB and 3 of ($s*)}EOFyara detect_webshell.yar /var/www/html/ -r -s
WebShell_PHP_Generic /var/www/html/images/thumb.php0x0: $s1: eval(0x15: $s2: base64_decode(0x45: $s5: $_REQUEST
Пример 3 — сканирование памяти процесса:
# Получаем PID подозрительного процесса:ps aux | grep suspicious# Сканируем процесс:yara -p 4 /opt/rules/malware.yar 1234
Cobalt_Strike_Beacon 1234
Частые ошибки
-
“Error: could not open file” — проверьте права доступа к файлу правил.
-
Медленное сканирование директорий — используйте
-p 8для многопоточности.
Заметки OPSEC
-
YARA часто используется защитниками для threat hunting — знание правил помогает их обходить.
-
Создавайте собственные правила для охоты на конкретные угрозы.
Связка с другими инструментами
yara (обнаружение малвари) → ghidra (реверс-инжиниринг найденных образцов)yara + volatility (сканирование дампа памяти)yara → sigma (конвертация правил в SIEM форматы)
ссылка на оригинал статьи https://habr.com/ru/articles/1044952/