YARA Rule Skill

Скилл для агента: пишет, проверяет и ускоряет правила YARA по стилю YARA-Forge и yaraQA, компилируя каждое правило перед выдачей.

  • 60 ★ репозитория
  • Последний коммит
Скилл

Расширенный доступ

Почему такой уровень

  • Скилл запускает скрипты проверки и требует установки пакетов Python.
Все причины и проверки

yarahq/yara-rule-skill

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/yara-rule-skill

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Скилл запускает скрипты проверки и требует установки пакетов Python.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

YARA Rule Skill кладет в контекст агента практики YARA-Forge и yaraQA. Скилл пишет правила по образцам или строкам, которые вы дали, проверяет готовые правила и выдает таблицу замечаний с идентификаторами, серьезностью и исправлением, а также диагностирует медленные правила и ошибки «слишком много совпадений». Каждое выданное правило он компилирует в YARA-X и YARA 4.x, поэтому результат всегда собирается. Строки группируются по назначению: `$x*` для точных признаков, `$s*` для слабых по отдельности, `$a*` для выбора типа файла и `$fp*` для фильтров ложных срабатываний. Для выпуска в YARA-Forge он готовит правило без предупреждений компиляции, с явным score и чистыми метаданными.

Для кого. Аналитикам вредоносного ПО и охотникам за угрозами, которые пишут детектирующие правила YARA и хотят единого стиля и быстрых правил.

Подходит, если

  • Из образца и набора строк нужно собрать правило с понятным именем и метаданными.
  • Найденное в сети правило надо оценить: логика, скорость, вероятность ложных срабатываний.
  • Правило тормозит из-за коротких атомов или неопорного регулярного выражения.
  • Перед отправкой в YARA-Forge нужно убрать предупреждения компиляции и задать score.

Не подходит, если

  • Нужен готовый набор сигнатур: скилл учит писать правила, а базы он не содержит.
  • Не установлены зависимости валидатора: без них проверка компиляцией не пройдет.
  • Требуются Sigma или другие форматы детектирования: скилл работает только с YARA.

Пример запроса к агенту

Проверь это правило YARA, покажи замечания по yaraQA и верни исправленный вариант, который компилируется.

Ограничения

Скилл только помогает писать и проверять правила, поэтому качество детекта зависит от ваших образцов и знания предмета. Для проверки компиляцией нужны пакеты из `scripts/requirements.txt`, их ставят командой `pip install -r`. Это Community Edition: проверки опираются на материалы YARA Style Guide, Performance Guidelines, yaraQA и YARA-Forge, на их версии на момент выпуска скилла. Скилл срабатывает при разговоре о правилах YARA, а для других агентов нужна поддержка формата `SKILL.md`.

Как отключить. Удалите папку `yara-rule-skill` из `~/.claude/skills/` или `.claude/skills/`. Склонированный репозиторий и пакеты, поставленные для валидатора, можно убрать отдельно.

Частые вопросы

Как установить скилл в Claude Code?

Клонируйте репозиторий и скопируйте папку `yara-rule-skill` в `~/.claude/skills/` для личного использования или в `.claude/skills/` для проекта. Затем поставьте зависимости валидатора.

Что значат префиксы строк `$x*`, `$s*`, `$a*`, `$fp*`?

`$x*` задают точные признаки, одного совпадения хватает. `$s*` слабы поодиночке, `$a*` отбирают тип файла, `$fp*` отсекают ложные срабатывания.

Чем проверяются правила?

Каждое выданное правило компилируется в YARA-X и YARA 4.x. Замечания приходят с идентификаторами из yaraQA и руководств по стилю и скорости.

Можно ли использовать скилл вне Claude Code?

Да, в любом агенте с поддержкой `SKILL.md`. README называет OpenClaw и папку `~/.openclaw/skills/`, а упаковка в файл `.skill` делается скриптом `installer/package_skill.py`.

Что делать с правилом, которое дает слишком много совпадений?

Попросите проверить его на производительность. Скилл пройдет по чек-листу: квантификаторы regex, короткие или однородные атомы, альтернации, циклы и модули.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Сканер безопасности для скиллов агентов: ищет промпт-инъекции, утечку данных и вредоносный код перед установкой

CLIРасширенный доступ2,7 тыс.Звезды репозитория

Сканер безопасности скиллов ИИ-агентов: статический анализ, оценка моделью и запуск подозрительных скиллов в Docker-песочнице.

CLIШирокий доступ146Звезды репозитория
Официальный

Три скилла Semgrep: безопасный код по OWASP, защита LLM-приложений и запуск Semgrep со своими правилами в Claude Code и Cursor

СкиллРасширенный доступ342Звезды репозитория

Статический сканер SkillHawk ищет опасные инструкции в SKILL.md, конфигах MCP и AGENTS.md и работает как GitHub Action

CLIМинимальный доступ70Звезды репозитория

Cybersecurity Skills

Cybersecurity Skills for AI Agents

42 скилла по безопасности для Claude Code, Cursor и Codex: аудит кода и облака, пентест с проверкой разрешения, реагирование на инциденты

СкиллШирокий доступ517Звезды репозитория

Открытая библиотека из 65 скиллов по GRC: агент собирает данные и пишет черновики, а решения остаются за человеком.

ПлагинМинимальный доступ58Звезды репозитория

Коротко о README

Скилл собран из четырех источников: руководства по стилю YARA, руководства по производительности, yaraQA с 25 автоматическими проверками и условий публикации YARA-Forge. Пишет, оценивает и оптимизирует правила.

Бейдж для README

Исходный SKILL.md

---
name: yara-rule-skill
description: Writes, reviews, and optimizes YARA rules using the YARA Style Guide, the YARA Performance Guidelines, yaraQA checks, and YARA-Forge quality criteria. Use when the user wants a new YARA rule, a review or quality assessment of an existing rule or rule set, help with a slow, noisy, or non-compiling rule, an explanation of a yaraQA issue ID, or rules that should pass YARA-Forge QA.
---

# YARA Rule Authoring and Review

Version 2.0. This skill turns four sources into working practice:

| Source | Governs | Details |
|--------|---------|---------|
| [YARA Style Guide](https://github.com/Neo23x0/YARA-Style-Guide) | Rule names, metadata, string groups, condition layout | [references/style.md](references/style.md) |
| [YARA Performance Guidelines](https://github.com/Neo23x0/YARA-Performance-Guidelines) (rev. 1.6) | Atoms, regex, condition order, modules | [references/performance.md](references/performance.md) |
| [yaraQA](https://github.com/Neo23x0/yaraQA) | Automated checks with IDs (`PA2`, `SM4`, `CE1`, ...) | [references/yaraqa-checks.md](references/yaraqa-checks.md) |
| [YARA-Forge](https://github.com/YARAHQ/yara-forge) | Compile gates, quality score, package tiers | [references/yara-forge.md](references/yara-forge.md) |

Guideline items that no tool checks have their own IDs in [references/issue-identifiers.md](references/issue-identifiers.md).

## How YARA spends its time

Most guidance below follows from the scan model:

1. **Compile:** YARA extracts **atoms** (substrings of up to 4 bytes) from every string.
2. **Search:** one Aho-Corasick pass looks for all atoms of all rules.
3. **Verify:** each atom hit is expanded to a full string match. Regex runs only here.
4. **Condition:** evaluated left to right, stopping at the first decisive result.

What follows from it:

- String choice is the main cost. A condition cannot stop a string from being searched: `filesize < 200 and $slow_regex` is still slow on every file.
- A string without a good atom (shorter than 4 bytes, uniform like `00 00 00 00`, or a regex with no fixed 4-byte run) slows the **whole rule set**, not just its own rule.
- Short-circuit evaluation helps only with condition work. Put cheap checks (`uint16(0)`, `filesize`) before expensive ones (`math.*`, hashes, loops, module fields).

## Workflow: write a new rule

Copy this checklist into your working notes and complete it in order:

```
- [ ] 1. Scope: target samples, file type, disk or memory, specific family or generic trait
- [ ] 2. Category and rule name
- [ ] 3. Strings: 3-7 diverse strings grouped as $x / $s / $a / $fp
- [ ] 4. Condition: header -> filesize -> other limits -> strings -> FP filters -> expensive checks
- [ ] 5. Metadata: description, author, reference, date, hash, score
- [ ] 6. Validate with scripts/validate_rule.py; fix and repeat until clean
- [ ] 7. Self-review against "Quick checks" below

Сообщить о проблеме