Правила YARA
Правила YARA — второй уровень конвейера обнаружения PRX-SD. В то время как сопоставление хешей обнаруживает точные копии известных вредоносных программ, правила YARA обнаруживают семейства, варианты и поведенческие паттерны вредоносных программ, сопоставляя байтовые последовательности, строки и структурные условия внутри файлов.
PRX-SD поставляется с 38 800+ правилами YARA, агрегированными из 8 источников, и использует движок YARA-X — переписанную на Rust следующего поколения версию YARA, обеспечивающую улучшенную производительность, безопасность и совместимость.
Движок YARA-X
PRX-SD использует YARA-X вместо традиционной C-библиотеки YARA. Ключевые преимущества:
| Возможность | YARA (C) | YARA-X (Rust) |
|---|---|---|
| Язык | C | Rust (безопасная память) |
| Производительность | Хорошая | В 2-5 раз быстрее на больших наборах правил |
| Совместимость правил | Базовая | Полная обратная совместимость + новые возможности |
| Потокобезопасность | Требует тщательной обработки | Безопасна по дизайну |
| Поддержка модулей | Встроенные модули | Модульная, расширяемая |
Источники правил
PRX-SD агрегирует правила из 8 источников:
| Источник | Правил | Содержимое | Платформенное покрытие |
|---|---|---|---|
| Встроенные правила | 64 | Программы-вымогатели, трояны, бэкдоры, руткиты, майнеры, веб-шеллы | Linux + macOS + Windows |
| Yara-Rules/rules (GitHub) | ~12 400 | Emotet, TrickBot, CobaltStrike, Mirai, LockBit | Кросс-платформенно |
| Neo23x0/signature-base | ~8 200 | APT29, Lazarus, крипто-майнинг, веб-шеллы, программы-вымогатели | Кросс-платформенно |
| ReversingLabs YARA | ~9 500 | Трояны, программы-вымогатели, бэкдоры, хакерские инструменты | Windows + Linux |
| ESET IOC | ~3 800 | Turla, Interception, продвинутые постоянные угрозы | Кросс-платформенно |
| InQuest | ~4 836 | Вредоносные документы OLE/DDE, нагрузки макросов | Кросс-платформенно |
| JPCERT/CC | ~500+ | Угрозы, направленные на Азиатско-Тихоокеанский регион | Кросс-платформенно |
| Пользовательские/импортированные | Переменно | Правила, предоставленные пользователем | Любые |
Итого: 38 800+ правил (после дедупликации)
Встроенные правила
64 встроенных правила скомпилированы в бинарный файл PRX-SD и всегда доступны, даже без скачивания внешних наборов правил. Они охватывают наиболее распространённые категории угроз:
| Категория | Правил | Примеры |
|---|---|---|
| Программы-вымогатели | 12 | WannaCry, LockBit, Conti, REvil, BlackCat, Ryuk |
| Трояны | 10 | Emotet, TrickBot, Dridex, QakBot |
| Бэкдоры | 8 | Cobalt Strike Beacon, Metasploit Meterpreter, обратные шеллы |
| Руткиты | 6 | Reptile, Diamorphine, Jynx2 (Linux) |
| Крипто-майнеры | 6 | XMRig, CGMiner, скрытые конфигурации майнинга |
| Веб-шеллы | 8 | China Chopper, WSO, B374K, PHP/ASP/JSP шеллы |
| RAT | 6 | njRAT, DarkComet, AsyncRAT, Quasar |
| Эксплойты | 4 | Нагрузки EternalBlue, PrintNightmare, Log4Shell |
| Тестовые сигнатуры | 4 | Варианты тестового файла EICAR |
Процесс сопоставления правил
Когда файл достигает уровня 2, YARA-X обрабатывает его следующим образом:
- Компиляция правил — При запуске все правила компилируются в оптимизированное внутреннее представление. Это происходит один раз и кешируется в памяти.
- Извлечение атомов — YARA-X извлекает короткие байтовые последовательности (атомы) из паттернов правил для построения поискового индекса. Это обеспечивает быструю предварительную фильтрацию.
- Сканирование — Содержимое файла сканируется по атомному индексу. Полностью оцениваются только правила с совпадающими атомами.
- Оценка условий — Для каждого правила-кандидата оценивается полное условие (булева логика, подсчёт строк, проверки структуры файла).
- Результат — Совпавшие правила собираются, и файл помечается как
MALICIOUSс именами правил в отчёте.
Производительность
| Метрика | Значение |
|---|---|
| Компиляция правил (38 800 правил) | ~2 секунды (один раз при запуске) |
| Время сканирования одного файла | ~0,3 миллисекунды в среднем |
| Использование памяти (скомпилированные правила) | ~150 МБ |
| Пропускная способность | ~3 000 файлов/секунду/поток |
Обновление правил YARA
Правила обновляются вместе с хеш-сигнатурами:
# Обновить всё (хеши + правила YARA)
sd update
# Обновить только правила YARA
sd update --source yaraПроцесс обновления:
- Скачивает архивы правил из каждого источника
- Проверяет синтаксис правил с помощью YARA-X
- Дедуплицирует правила по имени и хешу содержимого
- Компилирует объединённый набор правил
- Атомарно заменяет активный набор правил
Обновления без простоев
Обновления правил являются атомарными. Новый набор правил компилируется и проверяется перед заменой активного. Если компиляция не удаётся (например, из-за синтаксической ошибки в правиле сообщества), существующий набор правил остаётся активным.
Пользовательские правила
Вы можете добавлять собственные правила YARA, помещая файлы .yar или .yara в каталог пользовательских правил:
# Каталог пользовательских правил по умолчанию
~/.config/prx-sd/rules/Пример пользовательского правила:
rule custom_webshell_detector {
meta:
description = "Detects custom PHP webshell variant"
author = "Security Team"
severity = "high"
strings:
$eval = "eval(base64_decode(" ascii
$system = "system($_" ascii
$exec = "exec($_" ascii
condition:
filesize < 100KB and
($eval or $system or $exec)
}После добавления пользовательских правил перезагрузите набор правил:
sd reload-rulesИли перезапустите демон-монитор для автоматического подхвата изменений.
Каталоги правил
| Каталог | Источник | Поведение при обновлении |
|---|---|---|
~/.local/share/prx-sd/rules/builtin/ | Скомпилирован в бинарный файл | Обновляется с выпусками |
~/.local/share/prx-sd/rules/community/ | Скачивается из источников | Обновляется командой sd update |
~/.config/prx-sd/rules/ | Пользовательские правила | Вручную, никогда не перезаписываются |
Проверка правил
Проверьте текущее количество загруженных правил и источники:
sd infoYARA Rules
==========
Built-in: 64
Community: 38,736
Custom: 12
Total compiled: 38,812
Rule sources: 8
Last updated: 2026-03-21 10:00:00 UTCСписок правил, соответствующих конкретному ключевому слову:
sd rules list --filter "ransomware"Следующие шаги
- Эвристический анализ — поведенческое обнаружение файлов, уклоняющихся от сигнатур
- Сопоставление хешей — самый быстрый уровень обнаружения
- Обзор движка обнаружения — как все уровни работают вместе
- Поддерживаемые типы файлов — на какие форматы файлов нацелены правила YARA