~/swagasecurityizanagi
SWAGA SECURITY // СКАНЕР БЕЗОПАСНОСТИ

Izanagi

Сканер уязвимостей контроля доступа. Берёт описание API и две учётки, строит цепочки атак и по каждой находке показывает данные жертвы в ответе. IDOR, BOLA, broken access control - пункт №1 в OWASP API Top-10, который обычные сканеры пропускают.

7
продуктов и стендов проверено
2 CVE
воспроизведены на боевых продуктах
IDOR/BOLA/BAC
классы логики доступа
read-only
режим по умолчанию
// обзор фич
Разведка спеки

Парсит OpenAPI, оценивает качество от 0 до 100 и достраивает недостающие ответы: шлёт к живому API безопасные пробы и подмешивает реальные формы данных. Порядок обхода - от GET без параметров к POST, запись только с явным разрешением.

Методология атак

В промпт зашиты классы: IDOR в пути, query, теле и на статике; проба метода при 401 и 403; вызов админских ручек низкими правами; mass assignment через привилегированные поля. Внешние ключи не выдумываются - сначала GET списка за реальным значением.

Исполнение цепочек

Единственный модуль, который ходит в целевой API. Подставляет переменные, хранит состояние между шагами и умеет фильтры в экстракторах, чтобы для IDOR выбрать конкретную жертву, а не угадывать позицию в списке.

Вердикт

Каждый результат уходит модели на приговор: уязвимо, чисто или чинить. Ветка починки переписывает сломанную цепочку до нескольких раз. Заключение делается по фактическим данным в ответе, а не по догадке.

Классификация находок

Каждая находка сверяется с историей проекта: новая или уже известная, с датой первой встречи. То, что было раньше и пропало, уходит в раздел «больше не находится». Расход токенов считается по скану.

// документация · первый скан
quick start
$ # поднять стек в контейнерах
$ cp .env.example .env   # ключ и адрес вашей модели
$ docker compose up -d --build

  UI              http://localhost:3000
  API             http://localhost:8081
  chain-processor http://localhost:8080

Всё собирается и запускается в контейнерах, локальный Go или Node не нужен. Модель подключается любая: облачная по API или локальная - ключ и адрес задаются в .env. Целью по умолчанию поднимается VAmPI, специально уязвимый API, чтобы прогнать весь поток из коробки.

  1. 01Заводим проектЦель, базовый адрес, описание, стек. При желании - кастомный промпт с ролями и контекстом домена.
  2. 02Настраиваем входСкрипт печатает пары ключ-значение для каждой учётки: tokenA, tokenB. Две личности - атакующий и жертва.
  3. 03Грузим OpenAPI и разведкуЗагружаем спеку и запускаем разведку из вкладки SPEC. Она обогатит описание реальными ответами и поднимет качество цепочек.
  4. 04Стартуем сканОтмечаем классы уязвимостей, число цепочек, при желании - глубокий анализ с починкой. Дальше движок работает сам.
  5. 05Смотрим находкиВкладки цепочек, уязвимостей и лога. По каждой уязвимости - бейдж «новое» или «известное» и доказательство: данные жертвы в ответе.
// подтверждённые находки
[CRITICAL]Firefly III

GET /users/{id} не проверяет владельца (CVE-2023-0298): в ответе email и данные чужого аккаунта.

[HIGH]Grafana

DELETE /snapshots/{key} не проверяет организацию (CVE-2024-1313): контрольный GET жертвы отдаёт 404.

[CRITICAL]MedClinic

GET /api/records/1 отдаёт медицинскую карту чужого пациента (учебный стенд).

[HIGH]OWASP crAPI

Админ-функции и локация чужого авто на учебном маркетплейсе.

[MEDIUM]VAmPI

Чужая книга и чужой профиль на учебном API.

На боевых продуктах - точное воспроизведение известных CVE и находки на своей платформе. Учебные стенды насыщены уязвимостями специально, поэтому находок там закономерно больше.

// бэклог и роадмап
[ГОТОВИМ] в работе[ГОТОВО] в проде
[ГОТОВИМ]Интеграция с Jira

Находка сама заводит тикет: со ссылкой на цепочку, severity и доказательством в ответе. Статус синхронизируется обратно.

[ГОТОВИМ]Экспорт в SARIF

Выгрузка находок в стандартный формат SARIF, чтобы их подхватывали GitHub Code Scanning, GitLab и другие системы.

[ГОТОВИМ]Упаковка в Kubernetes

Helm-чарт и манифесты: весь стек разворачивается в кластере заказчика одной командой, без ручной сборки контейнеров.

[ГОТОВИМ]Дашборды

Сводка по сканам в одном окне: находки по severity, динамика между прогонами, расход токенов и доля кэша.

[ГОТОВО]Ядро сканера

Генерация цепочек, вердикт и починка на tool-use агенте, кэш промптов, любая модель по API. Готово и в проде.

Попробовать Izanagi на своём API
Демо на примерах, доступ к облачному сканеру или пилот в вашем контуре.
Запросить демо