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: 저장소 수준의 취약점 탐지를 위한 계층적 에이전트 기반 프레임워크

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

中文 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": []
    }
    

    파일 용도 설명 (파일별)

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

    파일용도
    .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)

    파일용도
    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으로 나누기, 인가 누락 등).

    테스트 파일 (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 샌드박스 실행 체인: 작업 계획, 제한된 실행, 타임아웃 제어, 구조화된 결과 기록
    • 데이터셋 평가 및 소거: 데이터 로더, 지표 모듈, 실험 및 소거 스크립트
    도구 다운로드
    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 스위치).