서버 자체를 점검해야 하는 이유
웹사이트 스캔은 서버가 외부에 보여주는 것, 즉 헤더, 노출된 파일, TLS만 볼 수 있습니다. 세 단계 아래의 Composer 패키지, 빌드에 쓰이는 npm 의존성, 백그라운드 워커의 Python 라이브러리에 공개된 CVE가 있는지는 알 수 없습니다. 그리고 익스플로잇이 공개되자마자 공격자가 스캔하는 대상이 바로 이것들입니다.
확실한 방법은 실제로 설치된 것을 나열하고 취약점 데이터베이스와 비교하는 것뿐입니다. 이 점검은 OSV와 실제 악용된 취약점 목록인 CISA KEV를 기준으로 바로 그 작업을 수행합니다.
점검 대상
서버를 아래에서 위로 쌓인 스택으로 읽습니다:
- 운영체제: 배포판과 커널.
- 시스템 라이브러리와 설치된 소프트웨어: openssl, nginx, docker, redis…
- 언어와 프레임워크: PHP와 Laravel, JavaScript와 Vue, Python…
- 언어 라이브러리: 각 애플리케이션의 Composer, npm, PyPI 패키지(직접 및 전이 의존성).
--docker를 지정하면 실행 중인 모든 컨테이너도 이미지를 내보내지 않고 그 자리에서 읽습니다.
점검 방법
wpsbom은 Linux와 macOS용 단일 오픈 소스 바이너리입니다. 파일을 읽기만 하며, 요청하지 않는 한 아무것도 전송하지 않습니다.
curl -fsSL https://raw.githubusercontent.com/ice-s/wpsbom/main/install.sh | sh코드가 어디에 있는지 추측할 수 없으므로, 각 애플리케이션 디렉터리를 --path로 필요한 만큼 지정하세요:
sudo wpsbom scan / --path /srv/shop --path /srv/worker --docker \
--out-dir scans/ -o cyclonedx-json몇 초 후 scans/에 서버용 파일 하나와 컨테이너 이미지별 파일이 하나씩 생성됩니다. 그런 다음 로그인하여 계정 메뉴에서 내 서버를 열고, 프로젝트 이름을 입력한 뒤 서버를 선택하고 파일을 끌어다 놓으세요:

- OS 패키지 없이 애플리케이션 라이브러리만:
--no-os. - 단일 이미지:
wpsbom scan --image acme/shop:1.4 -o cyclonedx-json=shop.cdx.json. - syft, Trivy, cdxgen으로 만든 파일(CycloneDX 또는 SPDX JSON)도 사용할 수 있습니다.
결과 읽는 법
소프트웨어 스택은 서버를 한눈에 요약합니다. 각 블록에는 패키지와 심각도별 미해결 취약점이 표시되고, 블록의 왼쪽 테두리는 가장 심각한 취약점의 색을 띱니다. 블록을 클릭하면 해당 부분만 볼 수 있습니다.

취약점 목록도 같은 방식으로 계층화되어 있습니다. 위치는 패키지가 어느 애플리케이션에 속하는지, 직접 의존성인지 전이 의존성인지를 알려주고, 수정 버전은 버전과 복사할 수 있는 명령을 제공합니다.

무엇부터 수정할까
- 악용됨(KEV)과 심각(Critical): 실제 서버를 대상으로 사용되고 있으므로 오늘 업그레이드하세요.
- 애플리케이션의 직접 의존성: 이를 업그레이드하면 보통 전이 의존성도 수정된 버전으로 함께 업데이트됩니다.
- dev 패키지(빌드 도구)는 프로덕션 서버에서 빌드를 실행하지 않는 한 덜 중요합니다.
업그레이드 후 다시 스캔하고 업로드하면 남은 항목이 표시됩니다. 수동 작업 없이 최신 상태를 유지하려면 통합에서 API 토큰을 생성하고, 예를 들어 매일 실행되는 cron 작업에서 wpsbom이 스캔을 전송하도록 하세요:
export WPSBOM_TOKEN=wp_…
sudo -E wpsbom push / --project demo-web-01 \
--path /srv/shop --path /srv/worker --docker자주 묻는 질문
Watchpost가 제 서버에 접속하나요? 아니요. 스캔은 사용자가 실행하며, 업로드한 파일만 읽습니다.
무엇이 전송되나요? 패키지 이름, 버전, 잠금 파일 경로입니다. 소스 코드, 설정, 비밀 정보는 전송되지 않습니다. 호스트 이름은 해시로 대체되고, 업로드한 파일 자체는 보관되지 않으며, 프로젝트는 본인 계정에서만 볼 수 있습니다.
어떤 시스템을 지원하나요? wpsbom은 Debian, Ubuntu, Alpine 패키지와 Composer, npm / yarn, PyPI, Go, RubyGems 라이브러리를 읽습니다. 다른 도구로 만든 파일이라면 Maven과 NuGet 라이브러리도 매칭됩니다. OS 패키지는 목록에 표시되지만 아직 취약점과 매칭되지 않습니다.
Kubernetes는요? wpsbom k8s가 클러스터에서 실행되어 각 워크로드를 해당 이미지의 스캔과 연결합니다.
이 점검 도구는 한 가지 질문에만 답합니다. 무료 스캔은 누구나 볼 수 있는 50가지 이상의 항목(노출된 파일, 유출된 키, TLS, 헤더, DNS)을 점검하며, 도메인을 인증하면 200가지 이상의 심층 점검을 이용할 수 있습니다.
전체 스캔 실행