Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
RAGE — Вендор-нейтральный формат графа атак NDJSON с таксономией узлов и рёбер, маппингами AWS/GCP/Azure, правилами вывода и базой данных экспозиций для инструментов наступательной безопасности. | Kitploit
Инструменты/GitHubGitHub/trustedsec/rage
Оборонительные ИнструментыАнализ уязвимостейСкриптинг и автоматизацияАудит конфигурацииСбор информацииТестирование на ПроникновениеБезопасность облачных средУтилиты и фреймворкиРазведка угрозRed Teaming
GitHubtrustedsec/rage
6131 день назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

RAGE

Вендор-нейтральный формат графа атак NDJSON с таксономией узлов и рёбер, маппингами AWS/GCP/Azure, правилами вывода и базой данных экспозиций для инструментов наступательной безопасности.

Репозиторий
Поделиться

RAGE - Relational Attack Graph Exchange

Граф атак, который действительно можно передать кому-то другому.

Каждый продукт безопасности на основе графов хранит ваш граф атак внутри проприетарного хранилища. Вы не можете его экспортировать, сравнить два сканирования, поместить его в систему контроля версий или запросить его чем-либо, кроме собственного UI вендора. Когда проект заканчивается, граф уходит вместе с ним.

RAGE — это вендор-нейтральный формат файлов для графов наступательной безопасности, плюс открытый корпус, который придаёт ему смысл: таксономия узлов и рёбер, маппинги AWS/GCP/Azure и рецепты сбора, а также правила вывода рёбер. Один файл. Любой язык. Взял и пошёл.

Статус: ранний черновик (spec_version: 0.1). Пока не стабилен; отзывы и pull request'ы приветствуются.

Весь формат на одном дыхании

Граф RAGE — это один файл NDJSON (один JSON-объект на строку). Строка 1 — это манифест; каждая другая строка — это запись с тегом kind.

root@kitploit:~
{"kind":"manifest","spec_version":"0.1"}
{"kind":"node","node_id":"gcp|proj-a|gcp:iam:service-account|sa-deploy","node_type":"ServiceAccount"}
{"kind":"node","node_id":"gcp|proj-a|gcp:iam:service-account|sa-admin","node_type":"ServiceAccount"}
{"kind":"node","node_id":"gcp|proj-a|gcp:storage:bucket|bucket-crown","node_type":"ObjectStorage"}
{"kind":"edge","type":"CanImpersonate","source":"gcp|proj-a|…|sa-deploy","target":"gcp|proj-a|…|sa-admin"}
{"kind":"edge","type":"CanReadData","source":"gcp|proj-a|…|sa-admin","target":"gcp|proj-a|…|bucket-crown"}
{"kind":"finding","resource_id":"gcp|proj-a|…|bucket-crown","severity":"critical"}

Цепочка из двух переходов, соблюдающая таксономию: sa-deploy может имперсонировать sa-admin (ребро идентичность-к-идентичности), который может читать бакет с главными ценностями (идентичность-к-хранилищу).

Прочитайте это в три строки на любом языке:

root@kitploit:~
for line in open("graph.rage.ndjson"): rec = json.loads(line)   # switch on rec["kind"]
root@kitploit:~
jq 'select(.kind=="edge" and .type=="CanImpersonate")' graph.rage.ndjson

Виды записей

kindобязательные поляназначение
manifestspec_versionстрока 1: версия + опциональные счётчики/область/производитель
nodenode_id, node_typeресурс или идентичность
edgesource, target, typeвозможность или связь
factfact_idнормализованное наблюдение, на основе которого построен граф
evidenceevidence_id, content_hashзащищённая от подделки квитанция (операция API/сбора)
findingresource_id, severityэкспозиция
surface / path-опциональные виды расширений

Цепочка происхождения — это evidence (API), затем fact, затем edge/finding, связанные идентификаторами. node_type и type рёбер берутся из открытых реестров в vocab/. Всё остальное — опциональное обогащение. См. spec/format.md.

Корпус

Формат — это лишь половина RAGE. Другая половина — это общий корпус, который придаёт типам смысл, чтобы два независимых инструмента соглашались в том, что такое CanImpersonate и где может утечь учётные данные:

  • Таксономия (vocab/): 105 типов узлов в 10 классах, 80 типов рёбер в 9 категориях.
  • Маппинги и рецепты сбора (providers/): 219 нативных типов ресурсов в AWS, GCP и Azure, каждый сопоставлен с обобщённым типом узла вместе с вызовами, которые его перечисляют.
  • Правила вывода (rules/): контракт в rules/derivation.json плюс 2 400+ исполняемых правил match/where/emit для того, как выводятся рёбра.
  • База экспозиций (exposure-db/): 1 049 сопоставленных мест утечки учётных данных, каждое привязано к ребру RAGE, которое оно порождает, и к рецепту, который его читает.

Весь корпус, в удобочитаемом виде, находится в TAXONOMY.md.

Реализации

RAGE спроектирован так, чтобы любой мог его создавать или потреблять. Формат — это контракт; инструменты взаимозаменяемы, а список открыт.

RAGE — это формат, Thunderstorm его создаёт, Blaze его исследует.

реализациярольгде
Thunderstormпроизводитель: облачный коллектор только для чтения + движок выводаgithub.com/ustayready/thunderstorm
ваш инструмент здесьпроизводитель или потребительсоздавайте или читайте .rage.ndjson — и он будет взаимодействовать

Всё, что читает или записывает формат, говорит на RAGE. Соответствующие производители и движки соответствуют реестрам в этом репозитории; RAGE не зависит ни от одного из них. См. COMPATIBILITY.md о том, как реализации привязываются к spec_version.

Что здесь есть

  • spec/format.md - проводной формат (записи, грамматика node_id, .rage.zip, область).
  • spec/edges.md - семантика рёбер: направление/обход, state, weight/walkable, канонизация.
  • spec/rules.md - семантика вычисления правил: неподвижная точка, слияние состояний, каталог функций.
  • schemas/ - JSON Schema для всех 8 видов записей.
  • vocab/ - node-types.json + edge-types.json + conditions.json.
  • rules/derivation.json - контракт вывода рёбер (для каждого ребра: условия + разрешения/триггеры для каждого облака).
  • rules/{derived,explicit}/** - исполняемый корпус из 2 400+ правил match/where/emit.
  • providers/{aws,gcp,azure}.json - маппинги нативных типов в обобщённые + рецепты узлов + рецепты фактов.
  • exposure-db/{aws,gcp,azure}.json + vocabulary.json - База экспозиций (1 049 мест утечки).
  • TAXONOMY.md - весь корпус, в удобочитаемом виде (сгенерирован из реестров выше).
  • tools/rage_engine.py - эталонный движок правил: прогоняет корпус выведенных правил по графу до неподвижной точки.
  • validate/ - валидаторы записей (полная JSON Schema), реестров, строк разрешений и корпуса правил.
  • examples/ - минимальный валидный граф, задействующий все 8 видов записей.

Валидация

root@kitploit:~
python3 -m venv .venv && ./.venv/bin/pip install -r requirements.txt
./.venv/bin/python validate/rage_validate.py examples/minimal.rage.ndjson   # full JSON Schema + refs
./.venv/bin/python validate/check_registries.py    # registry integrity
./.venv/bin/python validate/check_rules.py         # rule corpus vs vocab

CI запускает всё вышеперечисленное плюс гейт отсутствия дрейфа gen_taxonomy.

Лицензия

Apache-2.0 (см. LICENSE).

Скачать инструмент