Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Правила 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)
ЯзыкCRust (безопасная память)
ПроизводительностьХорошаяВ 2-5 раз быстрее на больших наборах правил
Совместимость правилБазоваяПолная обратная совместимость + новые возможности
ПотокобезопасностьТребует тщательной обработкиБезопасна по дизайну
Поддержка модулейВстроенные модулиМодульная, расширяемая

Источники правил

PRX-SD агрегирует правила из 8 источников:

ИсточникПравилСодержимоеПлатформенное покрытие
Встроенные правила64Программы-вымогатели, трояны, бэкдоры, руткиты, майнеры, веб-шеллыLinux + macOS + Windows
Yara-Rules/rules (GitHub)~12 400Emotet, TrickBot, CobaltStrike, Mirai, LockBitКросс-платформенно
Neo23x0/signature-base~8 200APT29, Lazarus, крипто-майнинг, веб-шеллы, программы-вымогателиКросс-платформенно
ReversingLabs YARA~9 500Трояны, программы-вымогатели, бэкдоры, хакерские инструментыWindows + Linux
ESET IOC~3 800Turla, Interception, продвинутые постоянные угрозыКросс-платформенно
InQuest~4 836Вредоносные документы OLE/DDE, нагрузки макросовКросс-платформенно
JPCERT/CC~500+Угрозы, направленные на Азиатско-Тихоокеанский регионКросс-платформенно
Пользовательские/импортированныеПеременноПравила, предоставленные пользователемЛюбые

Итого: 38 800+ правил (после дедупликации)

Встроенные правила

64 встроенных правила скомпилированы в бинарный файл PRX-SD и всегда доступны, даже без скачивания внешних наборов правил. Они охватывают наиболее распространённые категории угроз:

КатегорияПравилПримеры
Программы-вымогатели12WannaCry, LockBit, Conti, REvil, BlackCat, Ryuk
Трояны10Emotet, TrickBot, Dridex, QakBot
Бэкдоры8Cobalt Strike Beacon, Metasploit Meterpreter, обратные шеллы
Руткиты6Reptile, Diamorphine, Jynx2 (Linux)
Крипто-майнеры6XMRig, CGMiner, скрытые конфигурации майнинга
Веб-шеллы8China Chopper, WSO, B374K, PHP/ASP/JSP шеллы
RAT6njRAT, DarkComet, AsyncRAT, Quasar
Эксплойты4Нагрузки EternalBlue, PrintNightmare, Log4Shell
Тестовые сигнатуры4Варианты тестового файла EICAR

Процесс сопоставления правил

Когда файл достигает уровня 2, YARA-X обрабатывает его следующим образом:

  1. Компиляция правил — При запуске все правила компилируются в оптимизированное внутреннее представление. Это происходит один раз и кешируется в памяти.
  2. Извлечение атомов — YARA-X извлекает короткие байтовые последовательности (атомы) из паттернов правил для построения поискового индекса. Это обеспечивает быструю предварительную фильтрацию.
  3. Сканирование — Содержимое файла сканируется по атомному индексу. Полностью оцениваются только правила с совпадающими атомами.
  4. Оценка условий — Для каждого правила-кандидата оценивается полное условие (булева логика, подсчёт строк, проверки структуры файла).
  5. Результат — Совпавшие правила собираются, и файл помечается как MALICIOUS с именами правил в отчёте.

Производительность

МетрикаЗначение
Компиляция правил (38 800 правил)~2 секунды (один раз при запуске)
Время сканирования одного файла~0,3 миллисекунды в среднем
Использование памяти (скомпилированные правила)~150 МБ
Пропускная способность~3 000 файлов/секунду/поток

Обновление правил YARA

Правила обновляются вместе с хеш-сигнатурами:

bash
# Обновить всё (хеши + правила YARA)
sd update

# Обновить только правила YARA
sd update --source yara

Процесс обновления:

  1. Скачивает архивы правил из каждого источника
  2. Проверяет синтаксис правил с помощью YARA-X
  3. Дедуплицирует правила по имени и хешу содержимого
  4. Компилирует объединённый набор правил
  5. Атомарно заменяет активный набор правил

Обновления без простоев

Обновления правил являются атомарными. Новый набор правил компилируется и проверяется перед заменой активного. Если компиляция не удаётся (например, из-за синтаксической ошибки в правиле сообщества), существующий набор правил остаётся активным.

Пользовательские правила

Вы можете добавлять собственные правила YARA, помещая файлы .yar или .yara в каталог пользовательских правил:

bash
# Каталог пользовательских правил по умолчанию
~/.config/prx-sd/rules/

Пример пользовательского правила:

yara
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)
}

После добавления пользовательских правил перезагрузите набор правил:

bash
sd reload-rules

Или перезапустите демон-монитор для автоматического подхвата изменений.

Каталоги правил

КаталогИсточникПоведение при обновлении
~/.local/share/prx-sd/rules/builtin/Скомпилирован в бинарный файлОбновляется с выпусками
~/.local/share/prx-sd/rules/community/Скачивается из источниковОбновляется командой sd update
~/.config/prx-sd/rules/Пользовательские правилаВручную, никогда не перезаписываются

Проверка правил

Проверьте текущее количество загруженных правил и источники:

bash
sd info
YARA 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

Список правил, соответствующих конкретному ключевому слову:

bash
sd rules list --filter "ransomware"

Следующие шаги

Released under the Apache-2.0 License.