Назад к обновлениям
New releaseAug 20, 2026

ravage v0.5.0

Первое автономное тестирование веб-безопасности на основе доказательств для контролируемых, авторизованных целей. С воспроизводимыми лабораториями, аудиторскими следами, отчетами и эталонным тестированием XBEN.

Поделиться

Ravage logo

Ravage

Ravage — это CLI-инструмент, ориентированный на доказательства, для оценки работающего веб-приложения, которое принадлежит вам или на тестирование которого у вас есть явное разрешение. Он сочетает детерминированную разведку и валидацию с опциональным модельно-управляемым циклом атаки, сохраняя границы области действия, аутентификации, учёта трафика и доказательств в рамках, контролируемых кодом.

Ravage — это исследовательская альфа-версия до 1.0. Используйте изолированные среды и письменные правила взаимодействия. Тестирование безопасности может изменить состояние приложения; Ravage не устраняет найденные проблемы и не разворачивает исправления.

Быстрый старт · Аутентификация · Результаты · Возможности · Документация

Требования

  • Python 3.12
  • Git
  • macOS, Linux или WSL
  • Docker только для контейнеризированных инструментов, XBEN и интеграционных тестов
  • Ключ API провайдера только для модельно-управляемых команд

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

Установка из исходного кода

git clone https://github.com/duriantaco/ravage.git
cd ravage
scripts/bootstrap.sh
source .venv/bin/activate
ravage doctor

Bootstrap создаёт .venv и устанавливает рабочее пространство. Используйте scripts/bootstrap.sh --dev для зависимостей разработки, --browser для поддержки браузера или --install-browser для установки Chromium.

Пятиминутный локальный быстрый старт

Сначала запустите ваше приложение. В этом примере предполагается, что оно прослушивает http://127.0.0.1:3000.

  1. Создайте ограниченный бриф взаимодействия и приватный файл окружения:

    ravage init http://127.0.0.1:3000 \
      --brief ravage-brief.yaml \
      --env-file .env.ravage \
      --description "Authorized assessment of my local development app."
    
  2. Просмотрите ravage-brief.yaml. Проверьте цель, маршруты в области действия, исключения, бюджет запросов, ограничение скорости, цели и критерии успеха.

  3. Запустите поверхностное сканирование без модели:

    ravage doctor --workflow scan --brief ravage-brief.yaml
    ravage scan ravage-brief.yaml --probe surface_map --report
    

Команда выводит каталог запуска. Скопируйте этот путь и используйте его как RUN_DIR в командах проверки ниже.

Запуск модельно-управляемого агента

Добавьте ключ поддерживаемого провайдера, например OPENAI_API_KEY, в .env.ravage. Ravage читает этот файл напрямую; не подключайте его через shell.

ravage doctor --workflow attack --brief ravage-brief.yaml
ravage attack ravage-brief.yaml --allow-paid-models --report

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

Аутентифицированное тестирование

Добавьте выделенную тестовую учётную запись в бриф:

ravage auth add ravage-brief.yaml \
  --identity user \
  --type form \
  --login /login \
  --health /account \
  --marker Logout \
  --env-file .env.ravage

Заполните сгенерированные ссылки на секреты, проверьте сеанс, затем атакуйте с выбранной учётной записью:

ravage auth check ravage-brief.yaml --identity user
ravage attack ravage-brief.yaml \
  --identity user \
  --allow-paid-models \
  --report

Поддерживаются вход через форму, токены bearer и фиксированные статические заголовки. Управляемые учётные данные остаются внутри аутентифицированного HTTP-владельца; каналы процесса, Python и команд блокируются при выборе учётной записи. См. Аутентификация для настройки и ограничений.

Авторизованные удалённые цели

Удалённое выполнение закрыто по умолчанию и требует явного флага. Начните с низкорискового поверхностного сканирования:

ravage init https://staging.example.test \
  --brief ravage-brief.yaml \
  --env-file .env.ravage \
  --description "Authorized assessment of my staging application."

ravage doctor --workflow scan \
  --brief ravage-brief.yaml \
  --authorized-remote-target

ravage scan ravage-brief.yaml \
  --probe surface_map \
  --authorized-remote-target \
  --report

Для модельно-управляемого удалённого запуска:

ravage attack ravage-brief.yaml \
  --authorized-remote-target \
  --allow-paid-models \
  --report

Авторизованные удалённые атаки по умолчанию используют политику низкого шума для всего запуска: только нативный тарифицируемый HTTP, темп ниже 1 RPS, потолок физических запросов, консервативное кэширование и дедупликация GET/HEAD, адаптивная задержка, ограниченные повторные попытки и размыкание цепи. Долговечный журнал сохраняется при возобновлении. Подробности в Архитектура.

Понимание результатов

Ravage различает наблюдения, кандидатные находки и подтверждённые уязвимости. Флаг CTF — это одно из возможных доказательств, а не требование. В обычном приложении запуск может быть полезным и успешным без обнаружения флага; подтверждённые уязвимости всё равно записываются в отчёт.

После начала атаки её канонический приватный машиночитаемый артефакт — это RUN_DIR/report.json, включая незавершённые запуски. --report также записывает RUN_DIR/report.md.

ravage observe RUN_DIR
ravage audit verify RUN_DIR
ravage report RUN_DIR --brief ravage-brief.yaml

Для структурированного HTTP, захваченного графом агента:

ravage traffic list RUN_DIR
ravage traffic show RUN_DIR REQUEST_ID

Отчёт включает ссылки на доказательства, качество учёта запросов, статус завершения и причину остановки незавершённого запуска. Никогда не рассматривайте непроверенное утверждение модели как подтверждённую находку.

Возможности

ВозможностьТочка входаПримечания
Детерминированная разведка и пробыravage scanМодель не требуется
Модельно-управляемая оценкаravage attackОграничено доказательствами и областью действия
Управляемая аутентификацияravage authФорма, bearer, статический заголовок
Проверка и повтор трафикаravage trafficОграниченные артефакты
Навыки знанийravage skills, ravage code-bugКонсультативные
Пассивная проверка SATCOMravage satcom inspectБез передачи
Оценка XBENravage xbenИсследовательский стенд на Docker
Лаборатория улучшенийscripts/improvement_lab.pyИзолированный архив

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

ravage skills list builtin
ravage skills validate builtin

Лаборатория улучшений принимает санитизированную структуру предыдущих запусков, оценивает кандидатные патчи в независимых рабочих пространствах, архивирует принятые и отклонённые версии и требует подтверждения отсутствия регрессий перед продвижением. Это вспомогательный компонент: она не изменяет исходный код и не продвигает себя автоматически.

Пассивные орбитальные и пакетные артефакты можно проверять отдельно:

ravage satcom inspect orbit.tle --format tle --output orbit-report.json
ravage satcom inspect capture.bin \
  --format ccsds-space-packets \
  --direction auto \
  --output packet-report.json

Поддержка SATCOM — это пассивный разбор и анализ, а не радиопередатчик или система управления космическим аппаратом.

Разработка

scripts/bootstrap.sh --dev
source .venv/bin/activate
python -m pytest -m "not integration" -q
python -m ruff check --select E9,F .
python scripts/qa/check_docs.py
python scripts/qa/check_release.py

Интеграционные тесты на Docker и замороженные сравнения XBEN — это отдельные шлюзы выпуска. Прочитайте Бенчмаркинг перед интерпретацией результатов кейсов; один удачный флаг не является доказательством надёжного улучшения.

Документация

Используйте ravage --help и ravage COMMAND --help для точных опций в вашей версии.

Лицензия

Apache License 2.0. См. LICENSE, DISCLAIMER и SECURITY.md.

Категории