Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ethibench — AI 침투 테스트 에이전트를 위한 평가 프레임워크로, LLM 기반 의미 매칭, 이분 그래프 해결, 실제 대상에 대한 누적 분석을 통해 검증된 취약점 발견을 측정합니다. | Kitploit
도구/GitHubGitHub/jd0965199-oss/ethibench
Penetration Testing FrameworksVulnerability AnalysisPenetration TestingMachine LearningPapers & ResearchLearning & EducationAI Security
GitHubjd0965199-oss/ethibench

ethibench

AI 침투 테스트 에이전트를 위한 평가 프레임워크로, LLM 기반 의미 매칭, 이분 그래프 해결, 실제 대상에 대한 누적 분석을 통해 검증된 취약점 발견을 측정합니다.

저장소 보기
274개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

통제된 환경에서 실제 환경으로: 실제 세계에서의 침투 테스트 에이전트 평가

AI 침투 테스트 에이전트는 공격적 보안 시스템으로서 점점 더 신뢰할 수 있게 되고 있지만, 현재의 벤치마크는 실제 대상에서 어떤 시스템이 가장 잘 수행될지에 대한 제한적인 지침만 제공합니다. 대부분의 기존 평가는 플래그 획득, 원격 코드 실행, 익스플로잇 재현, 궤적 유사성과 같은 사전 정의된 목표에 대해 단순화되거나 좁은 설정에서 평가하고 최적화합니다. 이러한 벤치마크는 제한된 능력을 측정하는 데 유용하지만, 실제 침투 테스트에 필요한 복잡성, 개방형 탐색, 전략적 의사 결정을 적절히 포착하지 못합니다. 우리는 평가를 작업 완료에서 검증된 취약점 발견으로 전환하는 실용적인 평가 프레임워크를 제시하며, 이를 통해 여러 공격 표면과 취약점 클래스를 포괄하는 충분히 복잡한 대상에서 평가할 수 있습니다. 이 프레임워크는 구조화된 정답 데이터와 LLM 기반 의미론적 매칭을 결합하여 취약점을 식별하고, 현실적인 모호성 하에서 결과를 점수화하기 위한 이분 매칭(bipartite matching), 지속적인 정답 데이터 유지, 확률적 에이전트의 반복 및 누적 평가, 효율성 메트릭, 지속 가능한 실험을 위한 축소된 스위트 선택을 포함합니다. 이 방법론은 AI 침투 테스트 에이전트의 보다 현실적이고 운영상 유용한 비교를 가능하게 함으로써 최신 기술 수준을 확장합니다. 재현성을 위해, 제안된 평가 프로토콜에 대한 전문가 주석 정답 데이터와 코드를 추가로 공개합니다.

보안 테스트 도구를 위한 평가 파이프라인. LLM 기반 매칭을 사용하여 도구 결과를 정답 데이터셋과 비교하고 정밀도, 재현율, F1, F0.5 메트릭을 생성합니다.

설치

poetry install

Python 3.11+ 및 Poetry가 설치되어 있어야 합니다.

빠른 시작

# 1. Set your LLM API key
export OPENAI_API_KEY="..."

# 2. Run evaluation
ethibench evaluate ./my_experiment --dataset path/to/dataset.yaml

# 3. View results
cat ./my_experiment/evaluation_outputs/summary.md

CLI 명령어

ethibench evaluate

실험 디렉토리에서 전체 평가 파이프라인을 실행합니다.

ethibench evaluate <experiment_dir> --dataset <dataset.yaml> [options]

# Batch: evaluate all experiments in a folder
ethibench evaluate --parent-dir final_experiments/ --dataset <dataset.yaml>

# Force re-evaluation (ignore cached artifacts)
ethibench evaluate <experiment_dir> --dataset <dataset.yaml> --force

인수:

  • experiment_dir — (선택 사항) 대상 하위 디렉토리(또는 각각 대상 하위 디렉토리를 가진 run_* 하위 디렉토리)가 포함된 디렉토리입니다. --parent-dir 사용 시 생략 가능합니다.

옵션:

  • --dataset, -d — (필수) 데이터셋 YAML 파일 경로.
  • --gt-dir, -g — 정답 데이터 디렉토리. 기본값은 데이터셋 YAML 옆의 gt/입니다.
  • --output-dir, -o — 출력 디렉토리. 기본값은 실험 디렉토리 내의 evaluation_outputs/입니다. 배치 모드에서는 무시됩니다.
  • --replicates, -n — LLM 매칭 복제 횟수(기본값: 1).
  • --force, -f — 캐시된 아티팩트를 무시하고 모든 단계를 다시 실행합니다. 기본적으로 기존 중간 결과(원시 매칭, 이분 매칭, 메트릭)가 재사용됩니다.
  • --parent-dir, -p — 여러 실험 디렉토리를 배치로 평가할 상위 폴더. 모든 직계 하위 디렉토리가 실험으로 처리됩니다.

기능:

  1. 결과 수집 — 대상 하위 디렉토리(폴더 이름 = target_id)를 스캔하고 각 findings.jsonl을 로드한 후 데이터셋 YAML에서 subset_name을 할당합니다.
  2. 원시 LLM 매칭 — LLM을 사용하여 모든 결과를 모든 정답 항목과 비교합니다.
  3. 이분 매칭 — 최적의 1:1 할당을 위한 헝가리안 알고리즘.
  4. 메트릭 — 하위 집합별 TP, FP, FN, 중복, 정밀도, 재현율, F1, F0.5, 심각도 점수를 계산합니다.
  5. 집계 — 복제 및 실행 간 평균을 내고 가중/비가중 전체를 계산합니다.
  6. 비용 메트릭 — 각 대상의 metrics.json이 있는 경우 로드하여 비용/토큰/기간을 집계합니다.
  7. 그래프 — evaluation_outputs/plots/에 PNG 차트를 생성합니다.
  8. 요약 — evaluation_outputs/summary.md를 작성합니다.

ethibench analyze

기존 평가 출력에 대한 분석 도구를 실행합니다.

ethibench analyze <experiment_dir> --dataset <dataset.yaml> [options]

# Batch: analyze all experiments and produce aggregated results
ethibench analyze --parent-dir final_experiments/ --dataset <dataset.yaml>

인수:

  • experiment_dir — (선택 사항) 분석할 실험 디렉토리. --parent-dir 사용 시 생략 가능합니다.

옵션:

  • --dataset, -d — (필수) 데이터셋 YAML 파일 경로.
  • --gt-dir, -g — 정답 데이터 디렉토리. 기본값은 데이터셋 YAML 옆의 gt/입니다.
  • --output-dir, -o — 평가 출력 디렉토리. 기본값은 실험 디렉토리 내의 evaluation_outputs/입니다.
  • --parent-dir, -p — 배치로 분석할 여러 실험 디렉토리가 포함된 상위 폴더. 실험별 분석과 집계 결과를 생성합니다.

실험별 출력 (evaluation_outputs/analysis/):

  • duplicates.json — 원시 매칭에서 일치했지만 이분 최적화로 제거된 결과.
  • unmatched.json — 정답 데이터와 일치하지 않는 결과(거짓 양성).
  • statistics.json — GT 적용 범위 통계, 결과별 GT 분포.

집계 출력 (--parent-dir 사용 시에만, <parent-dir>/aggregated_analysis/에 위치):

  • all_duplicates.jsonl — 모든 실험의 모든 중복 결과(JSONL, experiment 필드가 포함된 전체 결과 객체).
  • all_false_positives.jsonl — 모든 실험의 모든 일치하지 않는/거짓 양성 결과(JSONL 형식).
  • gt_statistics_avg.json — 하위 집합별 평균 GT 적용 범위 및 실험별 적용 범위 요약.

ethibench compare

여러 실험 간의 평가 결과를 비교하여 나란히 놓인 그래프와 요약 보고서를 생성합니다. 각 실험에는 이미 평가 출력이 있어야 합니다(먼저 ethibench evaluate 실행). 레이블은 항상 디렉토리 이름입니다.

# Explicit experiment directories
ethibench compare exp-gpt4o/ exp-claude/ --output-dir comparison/

# Auto-discover all experiments under a parent folder
ethibench compare --parent-dir all-experiments/ --output-dir comparison/

# Mix: explicit dirs + auto-discovery
ethibench compare exp-extra/ --parent-dir all-experiments/ --output-dir comparison/

인수:

  • experiment_dirs — (선택 사항) 명시적으로 포함할 하나 이상의 실험 디렉토리.

옵션:

  • --output-dir, -o — (필수) 비교 결과를 위한 출력 디렉토리.
  • --parent-dir, -p — 실험을 자동 검색할 상위 폴더. evaluation_outputs/ 폴더가 포함된 직계 하위 디렉토리가 알파벳 순서로 포함됩니다. 명시적 experiment_dirs와 결합 가능합니다.

출력 (--output-dir 내):

  • comparison.json — 모든 실험의 원시 비교 데이터.
  • plots/ — 나란히 놓인 PNG 차트.
  • comparison.md — 마크다운 요약.
  • pairwise_comparison.md — 쌍별 A/B 통계 비교(F1 기준 상위 4개 실험).
  • pairwise_comparison.tex — 쌍별 테이블의 LaTeX 버전.
  • cumulative-analysis/ — (누적 데이터가 있는 경우) 평균 F1과 누적 F1 간의 델타 분석 및 누적 비교 그래프.

파일 형식

결과 (findings.jsonl)

한 줄에 하나의 JSON 객체. 필수 필드: title, description. 선택 사항: url, cwe, severity, score, steps, evidence, metadata 등.

각 findings.jsonl은 대상 디렉토리 안에 있습니다. 디렉토리 이름이 결과가 속한 대상을 결정합니다.

{"title": "SQL Injection in Login", "description": "User input not sanitized", "cwe": "89"}

정답 데이터 (*_gt.jsonl)

한 줄에 하나의 JSON 객체.

{"id": "gt-001", "name": "SQL Injection", "subset_name": "MyApp", "target_id": "app", "category": "CWE-89", "description": "Database query vulnerability", "cvss": 9.8}

데이터셋 YAML

- subset: "MyApp"
  weight: 1.0
  targets:
    - target_id: "app"

target_id는 각 실행 폴더 아래의 디렉토리 이름과 일치해야 합니다. 평가 시 ethibench는 실행 디렉토리에서 알려진 target_id 값과 일치하는 하위 디렉토리를 스캔하고 findings.jsonl을 로드한 후 해당 하위 집합에 할당합니다. 선택적 gt_file 필드는 사용자 지정 GT 파일 경로를 지정합니다.

구성

모든 구성은 환경 변수를 통해 수행됩니다:

변수기본값설명
ETHIBENCH_LLM_PROVIDERopenaiLLM 제공자: openai, anthropic, ollama, gemini
ETHIBENCH_LLM_MODELgpt-5.4-mini모델 이름
ETHIBENCH_TEMPERATURE0.3샘플링 온도
ETHIBENCH_API_URL—사용자 지정 API 엔드포인트(Ollama 또는 호환 API용)
ETHIBENCH_CONCURRENCY50최대 동시 LLM 호출 수
ETHIBENCH_MAX_RETRIES5LLM 호출당 최대 재시도 횟수
ETHIBENCH_MAX_PARALLEL_RUNS3실험 내에서 병렬로 평가되는 최대 실행 수
ANTHROPIC_API_KEY—Anthropic API 키
OPENAI_API_KEY—OpenAI API 키
GEMINI_API_KEY—Google Gemini API 키

디렉토리 구조

입력

단일 실행:

my_experiment/
├── app.example.com/         # target_id를 디렉토리 이름으로 사용
│   ├── findings.jsonl       # 이 대상의 결과
│   └── metrics.json         # 선택 사항: 비용/토큰 정보
├── api.example.com/
│   ├── findings.jsonl
│   └── metrics.json

여러 실행:

my_experiment/
├── run_001/
│   ├── app.example.com/
│   │   ├── findings.jsonl
│   │   └── metrics.json
│   └── api.example.com/
│       └── findings.jsonl
├── run_002/
│   ├── app.example.com/
│   │   └── findings.jsonl
│   └── api.example.com/
│       └── findings.jsonl

출력

도구 다운로드