Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Vlun-Agent-X — VulnAgent-X: 저장소 수준의 취약점 탐지를 위한 계층적 에이전트 기반 프레임워크 | Kitploit
도구/GitHubGitHub/renweimeng/vlun-agent-x
Static AnalysisDynamic Analysis (Sandboxing)Vulnerability AnalysisCode AnalysisMachine LearningPapers & ResearchAI Security
GitHubrenweimeng/vlun-agent-x

Vlun-Agent-X

VulnAgent-X: 저장소 수준의 취약점 탐지를 위한 계층적 에이전트 기반 프레임워크

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

中文 English

VulnAgent-X 연구 프로토타입

VulnAgent-X는 논문 재현을 위한 멀티 에이전트 취약점/결함 탐지 프로토타입입니다. 로컬 저장소 또는 diff를 입력하면 구조화된 findings, 증거 체인, 위치 결과, 신뢰도 및 실험 로그를 출력합니다.

핵심 기능

  • 입력 형식: repo path 또는 unified diff
  • 워크플로우: screening -> context expansion -> scheduler -> router -> experts -> sceptic -> verification(stub) -> evidence fusion
  • 출력 필드:
    • issue_type
    • location(file + line range)
    • evidence_summary
    • confidence
    • severity
    • optional_cwe
    • fix_hint
    • evidence_chain
    • counter_evidence
  • 인터페이스: CLI + FastAPI
  • 재현 가능한 실험: pytest / mypy / ruff + Docker 실행 지원

워크플로우 개요

  1. screening: 의심 영역 빠른 선별 (규칙 + 메타데이터 신호)
  2. context_expansion: "최소 충분 컨텍스트" 가져오기 (의심 위치 기준 창 추출)
  3. scheduler: 신뢰도와 위험에 따른 에스컬레이션 전략 (early_exit / expert_review / verification)
  4. router_agent: 각 의심 영역에 전문가 Agent 선택
  5. semantic/security/logic: 서로 다른 관점에서 구조화된 주장과 증거 제시
  6. sceptic_agent: 반증과 페널티 신호 생성
  7. verification: 선택적 동적 검증 (현재는 안전한 플레이스홀더 구현)
  8. evidence_fusion: 통합 융합 후 최종 findings 출력

설치 및 실행 방법

1) 환경 준비

요구 사항: Python 3.11+ (현재는 더 높은 버전에서도 실행 가능)

root@kitploit:~
cd /Users/xiaolu/Documents/Python_code/vulnAgentX
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'

2) CLI 사용

전체 저장소 분석:

root@kitploit:~
.venv/bin/vulnagentx analyze --repo /path/to/repo --output json

diff 파일 분석:

root@kitploit:~
.venv/bin/vulnagentx analyze --diff-file /path/to/patch.diff --output json

요약 출력:

root@kitploit:~
.venv/bin/vulnagentx analyze --repo /path/to/repo --output summary

3) API 사용

서비스 시작:

root@kitploit:~
.venv/bin/uvicorn vulnagentx.app.api:app --reload

상태 확인:

root@kitploit:~
curl http://127.0.0.1:8000/health

분석 요청:

root@kitploit:~
curl -X POST http://127.0.0.1:8000/analyze \
  -H "Content-Type: application/json" \
  -d '{"repo_path":"/path/to/repo"}'

4) Docker 실행

root@kitploit:~
docker compose -f docker/docker-compose.yml up --build

5) 품질 검사 및 테스트

root@kitploit:~
.venv/bin/ruff check src tests
.venv/bin/mypy src
.venv/bin/pytest

출력 예시

root@kitploit:~
{
  "run_id": "...",
  "findings": [
    {
      "issue_type": "command_injection",
      "location": {"file_path": "app.py", "start_line": 42, "end_line": 42},
      "evidence_summary": "Command execution surface detected...",
      "confidence": 0.87,
      "severity": "critical",
      "optional_cwe": "CWE-78",
      "fix_hint": "Avoid shell command composition...",
      "source_agents": ["security_agent", "semantic_agent"],
      "evidence_chain": [],
      "counter_evidence": []
    }
  ],
  "metrics": {
    "runtime_seconds": 0.07
  },
  "logs": []
}

파일 용도 설명 (파일별)

루트 디렉터리 및 프로젝트 파일

핵심 소스 코드 (src/vulnagentx)

테스트 파일 (tests)

파일용도
tests/test_agents.py단위 테스트: 각 Agent의 구조화된 출력 및 반증 로직.
tests/test_end_to_end.py엔드투엔드 테스트: 입력 저장소에서 최종 findings까지의 메인 흐름.
tests/test_research_modules.py신규 모듈 테스트: Tree-sitter 그래프 구축, verification 실행 체인, 평가 지표.

이번에 구현된 향상 모듈

  • 실제 LLM 어댑터: OpenAI + 로컬 Ollama + 자동 팩토리 전환
  • 실제 Tree-sitter AST 및 코드 그래프: 함수/import/호출 관계 파싱, 이웃 파일 컨텍스트 확장 지원
  • 실제 Semgrep 규칙 세트: 내장 규칙 파일 및 screening 단계 연동
  • verification 샌드박스 실행 체인: 작업 계획, 제한된 실행, 타임아웃 제어, 구조화된 결과 기록
  • 데이터셋 평가 및 소거: 데이터 로더, 지표 모듈, 실험 및 소거 스크립트
도구 다운로드
파일용도
.env.example환경 변수 템플릿 (로그 레벨 등 선택적 설정).
pyproject.toml프로젝트 빌드, 의존성, 스크립트 진입점, pytest/ruff/mypy 설정.
README.md메인 README (언어 전환 버튼 포함, 기본 중국어).
README.zh.md중국어 전체 버전 문서.
README.en.md영어 전체 버전 문서.
docker/DockerfileAPI 서비스 컨테이너 이미지 빌드 파일.
docker/docker-compose.yml로컬에서 한 번에 컨테이너 서비스 실행.
rules/semgrep/vulnagentx-rules.yml내장 Semgrep 규칙 세트 (명령 주입/SQL 주입/역직렬화/안전하지 않은 C API).
scripts/run_experiment.py데이터셋 배치 실험 실행 스크립트, 예측 JSONL 출력.
scripts/evaluate.py실험 출력을 읽고 탐지/위치/효율 지표 계산.
scripts/run_ablation.py소거(ablation) 실험 스크립트 (no_semgrep/no_treesitter/no_sceptic/no_verification).
파일용도
src/vulnagentx/__init__.py패키지 버전 및 패키지 내보내기 정의.
src/vulnagentx/app/__init__.pyapp 하위 패키지 초기화.
src/vulnagentx/app/cli.pyCLI 진입점 (vulnagentx analyze).
src/vulnagentx/app/api.pyFastAPI 서비스 진입점 (/health, /analyze).
src/vulnagentx/app/schemas.pyAPI 요청/응답 Pydantic 스키마.
src/vulnagentx/core/__init__.pycore 하위 패키지 초기화.
src/vulnagentx/core/state.py전역 상태 모델: 영역, 증거, Agent 출력, Finding, 로그, 지표.
src/vulnagentx/core/screening.py1단계 빠른 선별, 의심 영역 추출.
src/vulnagentx/core/context_expansion.py컨텍스트 확장: 위치 기준 최소 코드 창 추출.
src/vulnagentx/core/scheduler.py신뢰도 인지 에스컬레이션 전략 (early_exit/expert_review/verification).
src/vulnagentx/core/verification.py선택적 동적 검증 모듈 (현재는 안전한 플레이스홀더 버전).
src/vulnagentx/core/evidence_fusion.py다중 Agent 증거 융합, 최종 findings 출력.
src/vulnagentx/core/workflow.py엔드투엔드 오케스트레이션 진입점 VulnAgentWorkflow.
src/vulnagentx/agents/__init__.pyAgent 내보내기 집계.
src/vulnagentx/agents/base.pyAgent 추상 기본 클래스 및 컨텍스트 획득 도구.
src/vulnagentx/agents/router_agent.py라우팅 Agent: 각 의심 영역에 전문가 Agent 할당.
src/vulnagentx/agents/semantic_agent.py시맨틱 Agent: 의미론적 계층 위험 (예: 널 포인터, 역직렬화, 예외 삼킴).
src/vulnagentx/agents/security_agent.py보안 Agent: 보안 취약점 규칙 (명령 주입, SQL 주입, 경계 초과 등).
src/vulnagentx/agents/logic_bug_agent.py로직 Agent: 비즈니스/제어 흐름 결함 (경계, 0으로 나누기, 인가 누락 등).
src/vulnagentx/agents/sceptic_agent.py회의론자 Agent: 반증 생성, 충돌 페널티, 신뢰도 하향.
src/vulnagentx/adapters/__init__.py어댑터 하위 패키지 초기화.
src/vulnagentx/adapters/sandbox_adapter.py제한된 서브프로세스 샌드박스 실행기 (타임아웃, 셸 없음)로 verification에 사용.
src/vulnagentx/adapters/semgrep_adapter.pySemgrep CLI 어댑터 (선택적 활성화).
src/vulnagentx/adapters/treesitter_adapter.py실제 Tree-sitter 어댑터 (사용 가능 시 AST와 호출/import 관계 파싱, 불가능 시 폴백).
src/vulnagentx/adapters/llm/__init__.pyLLM 어댑터 내보내기 집계.
src/vulnagentx/adapters/llm/base.pyLLM 어댑터 프로토콜 인터페이스.
src/vulnagentx/adapters/llm/mock_adapter.py오프라인 테스트 가능한 Mock LLM.
src/vulnagentx/adapters/llm/openai_adapter.pyOpenAI 공식 SDK 어댑터.
src/vulnagentx/adapters/llm/local_adapter.py로컬 모델 어댑터 (Ollama HTTP API).
src/vulnagentx/adapters/llm/factory.py설정에 따라 LLM 어댑터 자동 선택, 최후 수단으로 Mock 폴백.
src/vulnagentx/retrieval/repo_graph.py코드 그래프 인덱스 및 이웃 파일 검색 (AST 기호 중첩 기반).
src/vulnagentx/datasets/base.py공용 데이터셋 샘플 구조 및 JSONL/CSV 읽기.
src/vulnagentx/datasets/devign.pyDevign 데이터 로드 진입점.
src/vulnagentx/datasets/bigvul.pyBig-Vul 데이터 로드 진입점.
src/vulnagentx/datasets/primevul.pyPrimeVul 데이터 로드 진입점.
src/vulnagentx/datasets/jit.pyJIT 데이터 로드 진입점.
src/vulnagentx/eval/detection_metrics.py탐지 지표 (Precision/Recall/F1/Accuracy).
src/vulnagentx/eval/localization_metrics.py위치 확인 지표 (Top-1/Top-3/MRR).
src/vulnagentx/eval/efficiency_metrics.py효율 지표 (평균 소요 시간, P95, 평균 findings).
src/vulnagentx/eval/ablations.py소거 실험 실행 로직.
src/vulnagentx/utils/config.py워크플로우 설정 센터 (env/CLI/API 스위치).