본문으로 건너뛰기
>_ITDITD웹 보안 플랫폼

의존성 취약점 스캐너

package.json, package-lock.json 또는 pnpm-lock.yaml을 붙여넣기만 하면 됩니다. 각 npm 패키지를 OSV.dev(Google이 운영하는 오픈 취약점 데이터베이스)와 대조하여, 알려진 CVE와 심각도, 수정 버전을 함께 보여줍니다.

모든 분석은 브라우저 내에서 이루어집니다. 붙여넣은 의존성 목록은 이 사이트의 서버를 전혀 거치지 않고, 사용자의 브라우저에서 OSV.dev로 직접 전송됩니다(CORS). 이 사이트는 저장·기록·중계하지 않습니다.

의존성 파일을 붙여넣고 ‘스캔’을 누르면 여기에 결과가 표시됩니다. 처음이신가요? 위의 ‘예제 사용해 보기’를 누르세요.

사용 방법

  1. 1

    프로젝트의 package.json, 또는 package-lock.json / pnpm-lock.yaml의 내용을 붙여넣습니다.

  2. 2

    ‘스캔’을 누르면 각 패키지를 OSV.dev와 대조합니다(lockfile이면 실제로 고정된 버전을, package.json이면 선언된 범위에서 추정합니다).

  3. 3

    발견된 취약점은 심각도순으로 표시됩니다. 수정 버전으로 업그레이드하고, 아래 AI 프롬프트로 안전하게 올리는 절차를 생성할 수 있습니다.

왜 중요한가

의존성은 직접 작성하지 않았지만 책임은 자신에게 있는 코드입니다. Log4Shell도 XZ도 모두 단 하나의 의존성을 통해 들어왔습니다. OSV.dev는 GitHub Advisory와 각 생태계의 권고를 모은 오픈 취약점 데이터베이스로, npm 패키지 이름과 버전으로 알려진 CVE를 조회할 수 있습니다. 정확도는 입력에 따라 결정됩니다 — lockfile(실제 설치 버전이 고정됨)이 가장 정확하고, package.json은 선언된 범위에서 추정하는 것입니다. 이 도구는 ‘지금 이 순간의 일회성 점검’을 위한 것입니다. 지속적인 방어는 CI에 자동 의존성 감사(GitHub Dependabot / `pnpm audit` / osv-scanner)를 통합하는 것입니다. 이 사이트 자체도 모든 배포 전에 의존성 감사를 실행하여 알려진 권고를 항상 0으로 유지합니다.

자주 묻는 질문

Q붙여넣은 의존성 목록은 어딘가로 전송되나요?
A

이 사이트로는 전송되지 않습니다. 분석은 브라우저 내에서 이루어지며, 대조는 사용자의 브라우저에서 OSV.dev(api.osv.dev)로 HTTPS를 통해 직접 수행됩니다. 이 사이트는 저장·기록·중계를 일절 하지 않습니다.

Qpackage.json과 lockfile 중 어느 것을 붙여넣어야 하나요?
A

정확도를 원한다면 lockfile(package-lock.json 또는 pnpm-lock.yaml)을 사용하세요. 전이 의존성을 포함한 실제 설치 버전을 반영하기 때문입니다. package.json은 선언된 범위(^1.2.3 등)에서 추정하는 것이므로 간단한 참고용으로 유용합니다.

Q취약점이 0으로 나오면 안전한가요?
A

아니요. 아직 OSV에 등록되지 않은 취약점, 설정 오류, 직접 작성한 코드의 결함은 탐지할 수 없습니다. 이는 알려진 CVE에 대한 일차 점검입니다. 지속적인 보호는 CI의 자동 감사(Dependabot / pnpm audit / osv-scanner)에서 나옵니다.

Q어떤 형식을 지원하나요?
A

현재는 npm 생태계(package.json / package-lock.json / pnpm-lock.yaml)를 지원합니다. yarn.lock과 기타 생태계(PyPI, Go 등)는 아직 지원하지 않습니다 — OSV.dev 자체는 다중 생태계를 지원하므로 향후 확장 후보입니다.

관련 페이지