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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
seclab-taskflows-fuzzing — GitHub Security Lab Taskflow Agent로 구동되는 LLM 기반 퍼징 파이프라인 | Kitploit
도구/GitHubGitHub/githubsecuritylab/seclab-taskflows-fuzzing
Static AnalysisVulnerability ScannersDynamic Analysis (Sandboxing)Vulnerability AnalysisCode AnalysisScripting & AutomationFuzzingMalware AnalysisUtilities & Frameworks
AI Security
GitHubgithubsecuritylab/seclab-taskflows-fuzzing

seclab-taskflows-fuzzing

GitHub Security Lab Taskflow Agent로 구동되는 LLM 기반 퍼징 파이프라인

저장소 보기
276731일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Seclab Taskflows Fuzzing

네이티브 C/C++ 프로젝트를 위한 LLM 기반의 OSS-Fuzz 스타일 퍼징 파이프라인. 실행에는 AFL++, 커버리지에는 clang+lcov, 하네스 작성, 커버리지 피드백 결정, 트리아지, 리포팅에는 LLM 에이전트를 사용합니다.

  • 완전 자율: GitHub 저장소를 제공하면 대상 식별부터 취약점 보고까지 모든 것을 처리합니다.
  • OSS-Fuzz 스타일 기법: 포맷별 뮤테이터/딕셔너리, 구조 인식 토큰 스플라이싱, 커버리지 기반 하네스 개선.
  • 익스플로잇 가능성 판정과 제안 패치가 포함된 기계 판독 가능한 크래시 보고서를 생성합니다.
  • 실시간 캠페인 모니터링을 위한 라이브 HTML 대시보드.
  • Python(taskflows/toolboxes/configs)으로 작성되었으며 AFL++용 C 하네스 생성을 포함합니다.
  • 상태: 활발한 개발 중.

배경

이 저장소는 GitHub Security Lab Taskflow Agent의 퍼징 태스크플로우를 포함합니다. 몇 가지 공유 빌딩 블록 (fetch_source_code 태스크플로우, local_file_viewer / gh_file_viewer 툴박스, 기본 model_config)을 위해 seclab-taskflows 동반 저장소에 의존합니다 — 이들은 Python 의존성으로 자동 설치됩니다.

기여를 환영합니다! 가이드라인은 CONTRIBUTING.md를 참조하세요.

요구 사항

  • Python 3.11+
  • apt에 접근할 수 있는 Linux 환경(또는 Codespace)
  • AFL++, clang, lcov, ctags, cscope, graphviz(누락 시 파이프라인이 자동 설치)
  • Git 및 GitHub CLI(gh)

설치

pip install git+https://github.com/GitHubSecurityLab/seclab-taskflows-fuzzing

이것은 seclab-taskflow-agent와 seclab-taskflows(상위)를 전이적으로 가져오므로, 다음과 같은 형태의 모든 점 표기 참조 seclab_taskflows.taskflows.audit.*, seclab_taskflows.toolboxes.local_file_viewer, seclab_taskflows.toolboxes.gh_file_viewer, 그리고 seclab_taskflows.configs.model_config는 런타임에 상위 배포판에서 해석됩니다.


목차

  1. 이것은 무엇인가
  2. 빠른 시작
  3. 아키텍처
  4. 파이프라인, 단계별
  5. 커버리지 피드백 루프
  6. 구조 인식 퍼징
  7. 반복 및 캠페인 전반에 걸친 영구 코퍼스
  8. 트리아지 및 취약점 보고서
  9. 라이브 대시보드
  10. 출력 파일
  11. 데이터베이스 스키마
  12. MCP 도구 (에이전트의 어휘)
  13. 조정 가능한 노브 (환경 변수)
  14. 파이프라인 확장
  15. 벤치마크 프로젝트 및 결과
  16. 제한 사항 및 주의 사항
  17. 보안 경고
  18. 개발: 테스트, 린팅, 기여
  19. 용어집

이것은 무엇인가

이 태스크플로우는 완전 자율 퍼징 파이프라인입니다. 네이티브 C/C++ 프로젝트의 GitHub 저장소가 주어지면 다음을 수행합니다:

  1. 누락된 경우 AFL++ + clang/llvm/lcov + ctags/cscope/graphviz를 설치하고,
  2. 소스를 가져오고,
  3. 후보 퍼즈 대상(파서, 디코더, 검증기 등)을 식별하고,
  4. 빌드 시스템을 분석하고 대상 라이브러리를 세 번 빌드합니다: AFL++ 엣지 커버리지 계측 및 새니타이저, AFL++ CMPLOG 계측, 그리고 clang 소스 기반 커버리지 계측으로,
  5. 대상당 하나 이상의 하네스 후보를 작성하고, 각각을 AFL++ 계측된 .afl 바이너리, AFL++ CMPLOG 계측된 .cmplog 바이너리, clang 커버리지 계측된 .cov 바이너리로 빌드하고,
  6. (선택적으로) 60초 커버리지로 후보를 검증하고 최적의 것을 유지하고,
  7. 시간 예산을 두 배로 늘리며 퍼즈/커버리지/개선 루프를 실행하고,
  8. 모든 크래시를 트리아지하고, 이전에 알려진 크래시가 여전히 재현되는지 확인하고, 판정, 익스플로잇 가능성, 제안 패치, 회귀 테스트 스케치가 포함된 크래시별 마크다운 취약점 보고서를 작성하고,
  9. 다음 캠페인을 위한 Fuzz-Introspector 스타일 호출 그래프 + 미터치 API 보고서를 작성하고,
  10. 모든 것을 라이브 HTML 대시보드에 게시합니다.

이 파이프라인은 정신적으로 OSS-Fuzz 스타일입니다: 동일한 기법(형식별 뮤테이터 및 사전, 구조 인식 토큰 스플라이싱, 커버리지 기반 하네스 개선, 기계 판독 가능 보고서, 중복 제거된 스택 해시 크래시)을 많이 사용하지만 훨씬 작고 자체 포함적입니다.


빠른 시작

# Inside the codespace (or a host with python + git available):
./scripts/fuzzing/run_fuzzing.sh tukaani-project/xz

이것이 전체 인터페이스입니다. 스크립트는 자율적으로 동작하며, 첫 실행 시 AFL++을 설치한 다음 나머지 작업 흐름을 진행합니다. 출력 파일은 ~/.local/share/seclab-taskflow-agent/seclab-taskflows/에 기록됩니다.

대시보드는 백그라운드에서 자동으로 시작됩니다. Codespace에서는 포트 8765가 자동으로 포워딩되며, 아무 브라우저에서나 열어 진행 상황을 실시간으로 확인할 수 있습니다.

빠른 스모크 테스트를 위해서는 작은 타깃을 사용하세요:

./scripts/fuzzing/run_fuzzing.sh DaveGamble/cJSON

아키텍처

세 개의 계층, 위에서 아래로:

┌────────────────────────────────────────────────────────────────────┐
│  scripts/fuzzing/run_fuzzing.sh                                    │
│      shell driver; chains the taskflow stages with `set +e`        │
└────────────────────┬───────────────────────────────────────────────┘
                     │
                     ▼
┌────────────────────────────────────────────────────────────────────┐
│  src/seclab_taskflows/taskflows/fuzzing/*.yaml                     │
│      LLM agent prompts; one YAML per pipeline stage                │
└────────────────────┬───────────────────────────────────────────────┘
                     │  (calls MCP tools)
                     ▼
┌────────────────────────────────────────────────────────────────────┐
│  src/seclab_taskflows/mcp_servers/                                 │
│   ├ fuzz_context.py    persistence (SQLite via SQLAlchemy)         │
│   └ fuzz_runner.py     subprocess wrappers (AFL, clang, lcov, ...) │
│                                                                    │
│  scripts/fuzzing/dashboard.py                                      │
│   read-only HTML view of fuzz_context.db                           │
└────────────────────────────────────────────────────────────────────┘

핵심 설계 규칙:

  • MCP 도구에 전역 상태 없음. 모든 도구 함수는 명시적 인자를 받으며, 영구 상태는 fuzz_context.db에 저장된다.
  • LLM 에이전트가 결정을 내리고, MCP 도구가 실행을 담당한다. 에이전트는 무엇을 퍼징할지, 어떤 하네스를 작성할지, 어떤 갭을 다음에 추적할지 결정하고, MCP 도구는 run_afl_for, compile_harness, store_crash 등을 노출할 뿐이다.
  • 가능한 곳에서는 멱등성. 동일한 저장소에 대해 파이프라인을 다시 실행하면 대상/하네스/실행을 중복 생성하지 않고 upsert한다. 이것이 영구 코퍼스와 캠페인 간 이월이 작동하게 만드는 원동력이다.
  • 하네스당 세 개의 바이너리. AFL의 엣지 계측은 사람이 읽을 수 있는 커버리지 보고서에 적합하지 않으므로, 각 하네스는 afl-clang-lto++ -fsanitize=address,undefined(즉 .afl 바이너리)와 clang++ -fprofile-instr-generate -fcoverage-mapping(즉 .cov 바이너리)으로 빌드된다. .afl 바이너리는 퍼징을 수행하고, .cov 바이너리는 AFL 큐를 재생하여 실제 소스 라인/함수/분기 커버리지를 생성한다. 세 번째로, 새니타이저가 없는 .cmplog 바이너리 (AFL_LLVM_CMPLOG=1을 사용하는 afl-clang-lto++)가 afl-fuzz -c에 전달되어 AFL++의 CMPLOG/RedQueen 단계가 매직 값과 체크섬을 해결할 수 있게 한다. 세 가지 빌드 모두 필수이다. CMPLOG 빌드가 실패하면 하네스 빌드가 실패하고, run_afl_for는 .cmplog 바이너리 없이는 실행을 거부한다. afl-clang-lto++가 설치되어 있지 않으면 AFL++ 빌드는 대신 afl-clang-fast++를 사용하고 compile_harness는 경고를 반환한다. C++ 드라이버는 C++ 표준 라이브러리를 링크하므로 C 및 C++ 하네스와 라이브러리 모두 작동한다. .c 파일은 여전히 C로 컴파일된다(-x c).

파이프라인, 단계별로

#단계Taskflow YAML
1AFL++ + 도구 설치scripts/fuzzing/install_afl.sh
2소스 가져오기seclab_taskflows.taskflows.audit.fetch_source_code
3퍼즈 대상 식별seclab_taskflows_fuzzing.taskflows.fuzzing.identify_fuzz_targets
4빌드 시스템 분석seclab_taskflows_fuzzing.taskflows.fuzzing.analyze_build_system
5a초기 하네스 작성 (요청 시 ×N 후보)seclab_taskflows_fuzzing.taskflows.fuzzing.write_initial_harnesses
5b하네스 빌드 (AFL++ 엣지 + AFL++ CMPLOG + clang 커버리지)seclab_taskflows_fuzzing.taskflows.fuzzing.build_harnesses
5c후보 검증 (HARNESS_CANDIDATES > 1일 때)seclab_taskflows_fuzzing.taskflows.fuzzing.qualify_harnesses
6퍼징/커버리지/개선 루프 (×N 반복)seclab_taskflows_fuzzing.taskflows.fuzzing.fuzz_iteration
7크래시 분류seclab_taskflows_fuzzing.taskflows.fuzzing.triage_crashes
8이전에 알려진 크래시가 여전히 재현되는지 확인seclab_taskflows_fuzzing.taskflows.fuzzing.confirm_fixed_crashes
9호출 그래프 + 미접촉 API 보고서 작성seclab_taskflows_fuzzing.taskflows.fuzzing.analyze_call_graph
10크래시별 취약점 보고서 작성seclab_taskflows_fuzzing.taskflows.fuzzing.write_vuln_reports
11캠페인 보고서 작성seclab_taskflows_fuzzing.taskflows.fuzzing.write_report

각 단계는 에이전트가 처음부터 끝까지 실행하는 자체 완결형 taskflow YAML이다. 단계들은 fuzz_context.db의 SQLite 데이터베이스를 통해서만 통신한다 — 인메모리 핸드오프는 없다.


커버리지 피드백 루프

이것이 파이프라인의 핵심이다. 시간 예산은 매 반복마다 두 배가 된다:

30s → 60s → 120s → 240s → 480s → 960s    (≈ 32 min/target)

반복마다, 하네스마다 에이전트는 다음을 수행합니다:

도구 다운로드