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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
VulnReach — 런타임 인식 SCA — 설치된 것뿐만 아니라 실제로 도달 가능한 CVE를 증명합니다. | Kitploit
도구/GitHubGitHub/owasp/vulnreach
Static AnalysisVulnerability ScannersDynamic Analysis (Sandboxing)Vulnerability AnalysisCode AnalysisWeb SecurityDevSecOpsSupply Chain Security
GitHubowasp/vulnreach

VulnReach

런타임 인식 SCA — 설치된 것뿐만 아니라 실제로 도달 가능한 CVE를 증명합니다.

저장소 보기
818417일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
웹사이트
공유

VulnReach

런타임 인식 SCA — 단순히 설치된 것이 아니라 실제로 도달 가능한 CVE를 입증합니다.

OWASP Project License Python

VulnReach는 이제 공식 OWASP Project입니다. 🎉

데모

VulnReach Demo

1단계 — SCA가 의존성 전반에서 74개의 CVE를 표면화

Trivy SCA output — 74 vulnerabilities detected

2단계 — VulnReach가 실제로 도달 가능한 것을 입증

Fix Plan — 7 packages, 50 confirmed reachable CVEs with upgrade targets


발견 사항 — CVE별 증거 체인

Dynamically reachable findings with full evidence chain

대시보드 — 9개 저장소에서 42개가 도달 가능한 것으로 확인됨

VulnReach Dashboard

언어 지원: Python은 완전히 프로덕션 준비 완료되었습니다 (taint, AST, route, runtime). Java와 JavaScript는 기능적인 호출 그래프 분석을 갖추고 있으며 실험적입니다. Go, C#, PHP는 로드맵에 있습니다. 자세한 내용은 ROADMAP.md를 참조하세요.

VulnReach는 표준 SCA 출력에 도달 가능성 컨텍스트를 추가하여 구축됩니다 — 정적 분석, taint 추적, 라이브 런타임 커버리지를 통해 감지된 CVE 중 실제로 애플리케이션에서 도달 가능한 것을 입증합니다.


프로젝트 상태

최신 개발 (출시됨)

  • 더 빠른 스캔을 위한 의존성 인식 병렬 러너 파이프라인
  • Python 도달 가능성 — 프로덕션 준비 완료 (taint, AST, route, runtime 계층 모두 기능)
  • Java 도달 가능성 — Maven/Gradle 의존성 파싱을 갖춘 기능적 호출 그래프 (실험적)
  • JavaScript 도달 가능성 — 라우트 진입점 감지를 갖춘 기능적 호출 그래프 (실험적)
  • 스캔 취소 — POST /scan/{id}/cancel이 진행 중인 스캔을 중지
  • 안정적인 스캔 응답 계약: GET /scan/{id}에서 summary + 분류된 버킷
  • API와 패키지 로컬 모드 간 공유 스캔 응답 정규화 (동등성)
  • 기본적으로 안전한 런타임 경계:
    • 기본 compose는 Docker 소켓 마운트 없이 실행
    • 동적 스캔은 VULNREACH_ALLOW_DOCKER_DAEMON=true를 통한 명시적 옵트인이 필요
    • 런타임 프로필은 제한된 docker-socket-proxy를 사용
  • CI에서 Java/JavaScript/Go에 대한 결정론적 픽스처 품질 게이트
  • 공식 OWASP Project로 승인됨 — owasp.community/projects/vulnreach
  • AI 다음 단계 엔드포인트 — POST /findings/{id}/next-steps는 결정론적 발견 사항에 대해 분석가 대상 교정 지침 (즉각 조치, 검증 프로브, 업그레이드 경로, 모니터링)을 생성합니다. 지연 / 온디맨드: 스캔은 절대 LLM을 호출하지 않으며, LLM 실패는 우아하게 저하됩니다. 결정론적 판정은 읽기 전용입니다. docs/api.md를 참조하세요.

실험적

  • scan.runtime.ebpf 추적 모드 (Linux 중심, 명시적 옵트인)
  • AI 지원 OpenAPI 생성 및 Intelligent DAST 흐름

참조:

  • docs/incubator-readiness.md
  • docs/threat-model.md

작동 방식

각 CVE는 5계층 증거 체인을 통해 분류됩니다:

1. SCA (Trivy)              → is the package installed and vulnerable?
2. Taint analysis (tainter) → does user input flow to the vulnerable sink?
3. AST analysis             → is the vulnerable function in your call graph?
4. Route exposure           → is the call path reachable from an HTTP endpoint?
5. Runtime coverage         → was the vulnerable code actually executed?

결과는 4개 계층으로 구성된 우선순위 발견 사항 목록입니다:

계층의미
DYNAMICALLY_REACHABLE런타임 커버리지가 실행을 확인 — 즉시 수정
STATICALLY_REACHABLEAST/taint를 통해 코드 경로 입증 — 높은 우선순위
UNCERTAIN약한 신호만 있음 — 조사 필요
NOT_REACHABLE증거 없음 — 경보 큐에서 억제

빠른 시작

Docker Compose 사용 (권장)

보안 공지 — 시작하기 전에 .env.example을 .env.local로 복사하고 모든 CHANGE_ME 값을 강력한 무작위 시크릿으로 교체하세요.
실제 자격 증명을 설정하고 CORS_ORIGINS를 구성하지 않은 채로 VulnReach를 공용 네트워크에 노출하지 마세요.

git clone https://github.com/ihrishikesh0896/vulnreach.git
cd vulnreach

# 1. Create your local config
cp .env.example .env.local

# 2. Fill in every CHANGE_ME — generate secrets with: openssl rand -hex 32
$EDITOR .env.local

# 3. Start the stack
docker compose up --build

# Optional: enable dynamic runtime scans (Docker daemon access via restricted socket proxy)
# docker compose -f docker-compose.yml -f docker-compose.runtime.yml up --build

스캔 실행

인증 옵션:

  • 단기 JWT: POST /login
  • 장기 API 토큰 (API 키): UI Settings -> API Keys에서 생성한 후 Authorization: Bearer <API_KEY>로 사용
# Get a token (replace with the credentials you set in .env.local)
TOKEN=$(curl -s -X POST http://localhost:8000/login \
  -H "Content-Type: application/json" \
  -d '{"username":"<your-admin-user>","password":"<your-admin-password>"}' | jq -r .access_token)

# Start scan from a GitHub repo
curl -X POST http://localhost:8000/scan \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"repo_url":"https://github.com/yourorg/yourapp"}'

# Poll for results
curl http://localhost:8000/scan/<scan_id> \
  -H "Authorization: Bearer $TOKEN" | jq .summary

기능

  • 도달 가능성 필터링 SCA — CVSS 점수뿐 아니라 증거 강도로 각 CVE를 분류
  • 런타임 확인 — coverage.py를 통한 Docker 기반 커버리지 수집
  • Taint 추적 — 사용자 입력 → 취약한 싱크 (SQL, subprocess, YAML, pickle) 추적
  • LLM 조종 DAST — Claude/OpenAI/Ollama가 익스플로잇 페이로드를 생성하고 검증 (선택 사항)
  • CI/CD 게이트 — policy.block_if가 확인된 심각한 발견 사항에서 빌드를 실패시킴; curl을 통해 트리거 및 게이트 — docs/ci-cd-gating.md 참조
  • JWT 인증 — 다중 사용자, 역할 기반 접근 (admin / analyst)
  • API 토큰 (API 키) — curl/CI용 장기 머신 인증 (Authorization: Bearer <API_KEY>)
  • PDF 내보내기 — GET /scan/{id}/export/pdf
  • 벤더 종속 없음 — LLM 기능은 기본적으로 provider: none; 오프라인 사용을 위해 Ollama 지원

실제 사례

스캔 대상: multi-tier-dvpa — 11개 패키지에 걸쳐 72개의 원시 CVE를 가진 의도적으로 취약한 Python/Django 애플리케이션.

계층결과
원시 CVE (Trivy)72
분류된 발견 사항 (VulnReach)90
DYNAMICALLY_REACHABLE — 지금 수정49
STATICALLY_REACHABLE — 이번 스프린트에 수정23
UNCERTAIN — 조사 필요18
NOT_REACHABLE — 억제0
CI 파이프라인 게이트BLOCKED

발견 사항의 46%가 구분 없는 "모두 수정" 큐에서 우선순위가 지정된 조치 목록으로 이동했습니다. 일반적인 프로덕션 서비스 (많은 전이적 의존성이 호출되지 않는 경우)에서는 이 수치가 70–90%로 상승합니다.

전체 방법론, 증거 체인 세부 사항, 패키지 수준 분석: docs/benchmark.md


문서

사용법

  • USAGE_PACKAGE.md — pip install / Docker 서버 설치 및 라이프사이클 (start/stop/reload); 스캔은 CLI가 아닌 UI 또는 curl을 통해 수행
  • USAGE_UI.md — UI/서버 설치, 의존성, 시작, 사용법
  • docs/ci-cd-gating.md — curl을 통해 CI 파이프라인에서 스캔 트리거 및 게이트

운영자 / 배포자

  • docs/deployment.md — Docker Compose 설정, 환경 변수, 프로덕션 노트
  • docs/configuration.md — 전체 scan.yml 구성 참조
  • docs/api.md — REST 엔드포인트 및 스키마

아키텍처 / 보안

  • docs/architecture.md — 파이프라인 설계 및 실행 모델
  • docs/threat-model.md — 신뢰 경계, STRIDE, 악용 사례
  • docs/incubator-readiness.md — OSS/OWASP 준비 상태
  • docs/DAST.md — DAST 개념 및 흐름

기여자

도구 다운로드