Vigil — 오픈소스 의존성 취약점 스캐너
Source: Dev.to

현대 소프트웨어는 오픈‑소스 패키지에 크게 의존합니다. 이는 개발 속도를 높여 주지만, 의존성에 존재하는 취약점을 놓치면 공급망 위험이 발생합니다.
Vigil은 가볍고 오픈‑소스인 CLI 도구로, OSV 데이터베이스를 사용해 의존성 파일을 스캔하고 HTML 및 JSON 형식의 증거‑준비 보고서를 생성합니다.
GitHub:
왜 Vigil인가?
많은 기존 스캐너들:
- 유료 구독 필요
- 독점적인 취약점 피드 사용
- 구현 세부 사항 숨김
- 보관하거나 감시하기 어려운 보고서 생성
Vigil은 다음에 초점을 맞춥니다:
- 오픈 취약점 데이터 (OSV.dev)
- 투명한 구현
- 로컬 우선 설계
- 자체 포함 HTML 보고서
- 기계가 읽을 수 있는 JSON 출력
- CI/CD 호환성
- SaaS 의존성이나 독점 데이터베이스 없음
지원되는 생태계
파이썬
requirements.txtpyproject.toml([project.dependencies])pip freezeinput (--from-freeze)
Node.js
package.jsonpackage-lock.jsonyarn.lockpnpm-lock.yaml
가능한 경우 lockfile을 사용하는 것이 정확한 해결된 버전을 보장하기 위해 선호됩니다.
Quick Start
Install directly from GitHub:
pip install "git+https://github.com/0x5A65726F677275/Vigil.git"
Run a scan:
vigil scan requirements.txt
This generates:
- 터미널 출력
scan-report.htmlscan-report.json
구조화된 보고서를 보려면 브라우저에서 HTML 파일을 엽니다.
예시 명령
기본 requirements 파일 스캔
vigil scan
설치된 패키지 스캔
pip freeze | vigil scan - --from-freeze
취약점이 존재하면 CI 실패
vigil scan --fail-on-vuln
최신 OSV 쿼리 강제 실행
vigil scan --no-cache
터미널 전용 모드
vigil scan --report none
출력 설계
터미널 출력
- 색상 요약
- 패키지별 취약점 상세
- CVE / OSV ID
- 간단한 설명
- 해결 방안 힌트
HTML 보고서
- 완전 독립형 (외부 CSS 또는 JS 없음)
- 인쇄 및 PDF 친화적
- 패키지별 구조화
포함 내용:
- 스캔된 전체 패키지 수
- 취약점이 있는 패키지
- 전체 취약점 수
- CVE/OSV ID 및 심각도(가능한 경우)
- 참고 자료 및 해결 가이드
- 생성 타임스탬프 (UTC)
- 스캐너 버전 및 데이터 출처 표시 (OSV)
감사, 규정 준수 문서 및 보안 검토를 위해 설계되었습니다.
JSON 보고서
구조화 대상:
- CI/CD 파이프라인
- 자동화 워크플로우
- 규정 준수 도구
- 맞춤형 대시보드
메타데이터와 패키지별 상세 취약점 항목을 포함합니다.
아키텍처 개요
핵심 구성 요소:
- CLI 인터페이스
- 의존성 파서 (Python + Node)
- OSV API 클라이언트
- 로컬 SQLite 캐시
- 리포터 (터미널 + HTML + JSON)
- Jinja2 기반 HTML 템플릿
이 저장소에는 또한 포함됩니다:
- Pytest 테스트 스위트
- GitHub Actions 워크플로우
- Docker 지원
- 아키텍처 문서
- 기여 가이드라인
- 메트릭 문서
최소한의 의존성, 명확한 구조, 검토가 용이합니다.
CI 및 Docker 지원
GitHub Actions
예시 워크플로:
- 푸시 및 풀 리퀘스트 시 스캔 실행
- HTML + JSON 보고서 생성
- 워크플로 아티팩트로 보고서 업로드
Docker 사용법
docker build -t vigil .
docker run --rm -v "$(pwd):/work" -w /work vigil
보고서는 마운트된 디렉터리에 작성됩니다.
공급망 보안 지침과의 정렬
Vigil은 다음을 참고하여 구축되었습니다:
- 행정명령 14028 (국가 사이버 보안 개선)
- NIST 보안 소프트웨어 개발 프레임워크 (SP 800‑218)
- CISA 소프트웨어 공급망 보안 지침
강조점:
- 의존성 가시성
- 취약점 식별
- 증거‑준비 보고
- 투명한 도구
디자인 철학
- 오픈 데이터만
- 숨겨진 서비스 없음
- 재현 가능한 결과
- 인간이 읽을 수 있고 기계가 읽을 수 있는 출력
- 최소 설정
- 소규모 팀 친화적
Project Status
- Release: 0.2.x
- License: MIT
- 초기 단계 프로젝트이며, 피드백 및 기여를 환영합니다
If you work in DevSecOps, open‑source security, supply‑chain risk management, or compliance engineering, contributions are welcome.
GitHub:
Building resilient software supply chains requires practical, transparent tooling. Vigil is a focused step in that direction.