Vigil — 오픈소스 의존성 취약점 스캐너

발행: (2026년 2월 11일 오후 04:46 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

Vigil — 오픈 소스 의존성 취약점 스캐너 표지 이미지

현대 소프트웨어는 오픈‑소스 패키지에 크게 의존합니다. 이는 개발 속도를 높여 주지만, 의존성에 존재하는 취약점을 놓치면 공급망 위험이 발생합니다.

Vigil은 가볍고 오픈‑소스인 CLI 도구로, OSV 데이터베이스를 사용해 의존성 파일을 스캔하고 HTML 및 JSON 형식의 증거‑준비 보고서를 생성합니다.

GitHub:

왜 Vigil인가?

많은 기존 스캐너들:

  • 유료 구독 필요
  • 독점적인 취약점 피드 사용
  • 구현 세부 사항 숨김
  • 보관하거나 감시하기 어려운 보고서 생성

Vigil은 다음에 초점을 맞춥니다:

  • 오픈 취약점 데이터 (OSV.dev)
  • 투명한 구현
  • 로컬 우선 설계
  • 자체 포함 HTML 보고서
  • 기계가 읽을 수 있는 JSON 출력
  • CI/CD 호환성
  • SaaS 의존성이나 독점 데이터베이스 없음

지원되는 생태계

파이썬

  • requirements.txt
  • pyproject.toml ([project.dependencies])
  • pip freeze input (--from-freeze)

Node.js

  • package.json
  • package-lock.json
  • yarn.lock
  • pnpm-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.html
  • scan-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.

0 조회
Back to Blog

관련 글

더 보기 »