
통제되고 승인된 대상을 위한 증거 기반 자동 웹 보안 테스트. 재현 가능한 실습 환경, 감사 추적, 보고서 및 XBEN 벤치마킹 포함.
Ravage는 귀하가 소유하거나 명시적으로 테스트 권한을 부여받은 실행 중인 웹 애플리케이션을 평가하기 위한 증거 우선(evidence-first) CLI입니다. 결정론적 정찰 및 검증과 선택적 모델 기반 공격 루프를 결합하면서, 범위, 인증, 트래픽 회계, 증거를 코드 소유 경계 내에 유지합니다.
Ravage는 1.0 이전의 연구용 알파 버전입니다. 일회용 환경과 서면 규칙(rule of engagement)을 사용하세요. 보안 테스트는 애플리케이션 상태를 변경할 수 있습니다. Ravage는 발견 사항을 수정하거나 패치를 배포하지 않습니다.
5분 로컬 퀵스타트 · 인증 · 결과 · 기능 · 문서
일반적인 첫 스캔에는 모델 키, 브라우저, Docker 데몬 또는 외부 스캐너가 필요하지 않습니다.
git clone https://github.com/duriantaco/ravage.git
cd ravage
scripts/bootstrap.sh
source .venv/bin/activate
ravage doctor
부트스트랩은 .venv를 생성하고 작업 공간을 설치합니다. 개발 종속성에는 scripts/bootstrap.sh --dev, 브라우저 지원에는 --browser, Chromium도 함께 설치하려면 --install-browser를 사용하세요.
먼저 애플리케이션을 시작하세요. 이 예제는 http://127.0.0.1:3000에서 수신 대기 중이라고 가정합니다.
범위가 지정된 평가 브리프와 비공개 환경 파일을 생성합니다:
ravage init http://127.0.0.1:3000 \
--brief ravage-brief.yaml \
--env-file .env.ravage \
--description "Authorized assessment of my local development app."
ravage-brief.yaml을 검토합니다. 대상, 범위 내 경로, 제외 항목, 요청 예산, 속도 제한, 목표 및 성공 기준을 확인하세요.
모델 없는 표면 스캔을 실행합니다:
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는 이 파일을 직접 읽습니다. 셸 소싱하지 마세요.
ravage doctor --workflow attack --brief ravage-brief.yaml
ravage attack ravage-brief.yaml --allow-paid-models --report
--allow-paid-models는 실행 시 공급업체 비용이 발생할 수 있음을 명시적으로 인정하는 것입니다. 모델 선택, 로컬 공급업체 및 재현 가능한 프로필은 모델 공급업체에 문서화되어 있습니다.
브리프에 전용 테스트 ID를 추가합니다:
ravage auth add ravage-brief.yaml \
--identity user \
--type form \
--login /login \
--health /account \
--marker Logout \
--env-file .env.ravage
생성된 비밀 참조를 채우고 세션을 확인한 다음 선택한 ID로 공격합니다:
ravage auth check ravage-brief.yaml --identity user
ravage attack ravage-brief.yaml \
--identity user \
--allow-paid-models \
--report
폼 로그인, 베어러 토큰 및 고정 정적 헤더가 지원됩니다. 관리 자격 증명은 인증된 HTTP 소유자 내부에 유지됩니다. ID가 선택되면 프로세스, Python 및 명령 채널이 차단됩니다. 설정 및 제한 사항은 인증을 참조하세요.
원격 실행은 기본적으로 차단(fail-closed)되며 명시적 플래그가 필요합니다. 영향이 낮은 표면 스캔부터 시작하세요:
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만 사용, 1RPS 미만 페이싱, 물리적 요청 상한, 보수적인 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 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를 참조하세요.
| 기능 | 진입점 | 참고 |
|---|
| 결정론적 정찰 및 프로브 | ravage scan | 모델 불필요 |
| 모델 기반 평가 | ravage attack | 증거 게이트 및 범위 지정 |
| 관리형 인증 | ravage auth | 폼, 베어러, 정적 헤더 |
| 트래픽 검사 및 재생 | ravage traffic | 범위 지정 아티팩트 |
| 지식 스킬 | ravage skills, ravage code-bug | 자문용 |
| 수동 SATCOM 검사 | ravage satcom inspect | 송신 없음 |
| XBEN 평가 | ravage xben | Docker 기반 연구 하네스 |
| 개선 연구소 | scripts/improvement_lab.py | 격리된 아카이브 |