Skip to content

Commit 7a4acef

Browse files
haksungjangclaude
andcommitted
docs(tools): add new SBOM tool pages — cdxgen, Syft, Dependency-Track
- tools/5-cdxgen: OWASP CycloneDX generator (20+ ecosystems, CI/CD integration) - tools/6-syft: Anchore SBOM generator (SPDX/CycloneDX, Grype integration) - tools/7-dependency-track: OWASP continuous SBOM monitoring platform All pages follow the established tools/ page structure with: introduction, key features, installation, basic usage, CI/CD examples, references. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent b263db9 commit 7a4acef

4 files changed

Lines changed: 286 additions & 3 deletions

File tree

content/ko/guide/TODO.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ draft: true
3636
- [x] #25 4-tool에 FOSSLight tools/ 링크 추가
3737

3838
### [tools/ 신규 작성] SBOM 도구 3종
39-
- [ ] #33 cdxgen tools/ 페이지 신규 작성 (tools/5-cdxgen/_index.md)
40-
- [ ] #34 Syft tools/ 페이지 신규 작성 (tools/6-syft/_index.md)
41-
- [ ] #35 Dependency-Track tools/ 페이지 신규 작성 (tools/7-dependency-track/_index.md)
39+
- [x] #33 cdxgen tools/ 페이지 신규 작성 (tools/5-cdxgen/_index.md)
40+
- [x] #34 Syft tools/ 페이지 신규 작성 (tools/6-syft/_index.md)
41+
- [x] #35 Dependency-Track tools/ 페이지 신규 작성 (tools/7-dependency-track/_index.md)
4242

4343
---
4444
## 2차 작업 (별도 브랜치 예정 — 지금은 작업하지 않음)
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
title: "cdxgen"
3+
weight: 5
4+
type: docs
5+
categories: ["guide"]
6+
tags: ["cdxgen", "SBOM", "CycloneDX"]
7+
---
8+
9+
cdxgen은 OWASP(Open Web Application Security Project)가 관리하는 오픈소스 SBOM 생성 도구입니다.
10+
소스 코드, 빌드 결과물, 컨테이너 이미지를 분석하여 [CycloneDX](https://cyclonedx.org/) 형식의
11+
SBOM을 자동으로 생성합니다.
12+
13+
- GitHub: <https://github.com/CycloneDX/cdxgen>
14+
- 라이선스: Apache-2.0
15+
16+
## 주요 특징
17+
18+
- **광범위한 언어·생태계 지원**: Java(Maven/Gradle), Node.js, Python, Go, Rust, PHP, Ruby, .NET 등 20개 이상
19+
- **다양한 스캔 대상**: 소스 코드 디렉토리, 컨테이너 이미지, GitHub 저장소
20+
- **CycloneDX 표준 출력**: CycloneDX 1.4/1.5/1.6 JSON 및 XML 형식 지원
21+
- **REPL 모드**: 대화형 인터페이스로 SBOM 탐색 및 조회 가능
22+
- **CI/CD 통합**: GitHub Actions, GitLab CI 등 주요 파이프라인과 쉽게 연동
23+
24+
## 설치 방법
25+
26+
Node.js 18 이상이 설치된 환경에서 아래 명령으로 설치합니다.
27+
28+
```bash
29+
npm install -g @cyclonedx/cdxgen
30+
```
31+
32+
또는 Docker 이미지를 사용할 수 있습니다.
33+
34+
```bash
35+
docker pull ghcr.io/cyclonedx/cdxgen
36+
```
37+
38+
## 기본 사용법
39+
40+
### (1) 소스 코드 디렉토리 스캔
41+
42+
```bash
43+
# 현재 디렉토리 스캔 후 CycloneDX JSON SBOM 생성
44+
cdxgen -o sbom.json .
45+
46+
# 언어 명시 스캔 (자동 감지 실패 시)
47+
cdxgen -t java -o sbom.json /path/to/project
48+
```
49+
50+
### (2) 컨테이너 이미지 스캔
51+
52+
```bash
53+
cdxgen -t docker -o sbom.json ubuntu:22.04
54+
```
55+
56+
### (3) GitHub 저장소 스캔
57+
58+
```bash
59+
cdxgen -t github -o sbom.json https://github.com/org/repo
60+
```
61+
62+
### (4) REPL 모드로 SBOM 탐색
63+
64+
```bash
65+
cdxgen --repl -o sbom.json .
66+
```
67+
68+
## CI/CD 연동 예시
69+
70+
```yaml
71+
# GitHub Actions 예시
72+
- name: Generate SBOM with cdxgen
73+
run: |
74+
npm install -g @cyclonedx/cdxgen
75+
cdxgen -o sbom.json .
76+
- name: Upload SBOM
77+
uses: actions/upload-artifact@v4
78+
with:
79+
name: sbom
80+
path: sbom.json
81+
```
82+
83+
## 참고 자료
84+
85+
- cdxgen GitHub: <https://github.com/CycloneDX/cdxgen>
86+
- CycloneDX 표준: <https://cyclonedx.org/>
87+
- OWASP CycloneDX: <https://owasp.org/www-project-cyclonedx/>
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
---
2+
title: "Syft"
3+
weight: 6
4+
type: docs
5+
categories: ["guide"]
6+
tags: ["Syft", "SBOM", "SPDX", "CycloneDX"]
7+
---
8+
9+
Syft는 Anchore가 개발한 오픈소스 SBOM 생성 CLI 도구입니다.
10+
컨테이너 이미지, 파일시스템, 아카이브를 스캔하여 포함된 패키지를 식별하고
11+
SPDX 또는 CycloneDX 형식의 SBOM을 생성합니다.
12+
13+
- GitHub: <https://github.com/anchore/syft>
14+
- 라이선스: Apache-2.0
15+
16+
## 주요 특징
17+
18+
- **다양한 스캔 대상**: 컨테이너 이미지(Docker, OCI), 로컬 파일시스템, tar 아카이브
19+
- **폭넓은 생태계 지원**: Alpine(apk), Debian/Ubuntu(dpkg), RPM, Python, Java, Go, Node.js, Ruby, Rust 등
20+
- **표준 출력 형식**: SPDX 2.2/2.3 (JSON·tag-value), CycloneDX 1.4/1.5 (JSON·XML), Syft JSON
21+
- **Grype 연동**: Anchore의 취약점 스캐너 Grype와 자연스럽게 연동하여 SBOM 기반 취약점 분석 가능
22+
- **빠른 설치**: 단일 바이너리 배포, 별도 런타임 불필요
23+
24+
## 설치 방법
25+
26+
### 스크립트 설치 (Linux/macOS)
27+
28+
```bash
29+
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
30+
```
31+
32+
### Homebrew (macOS)
33+
34+
```bash
35+
brew install syft
36+
```
37+
38+
### Docker
39+
40+
```bash
41+
docker pull anchore/syft
42+
```
43+
44+
## 기본 사용법
45+
46+
### (1) 컨테이너 이미지 스캔
47+
48+
```bash
49+
# Docker 이미지 스캔 (SPDX JSON 출력)
50+
syft ubuntu:22.04 -o spdx-json=sbom.spdx.json
51+
52+
# CycloneDX JSON 출력
53+
syft ubuntu:22.04 -o cyclonedx-json=sbom.cdx.json
54+
```
55+
56+
### (2) 로컬 디렉토리 스캔
57+
58+
```bash
59+
syft dir:/path/to/project -o spdx-json=sbom.spdx.json
60+
```
61+
62+
### (3) 표준 출력으로 결과 확인
63+
64+
```bash
65+
# 터미널에서 패키지 목록 확인
66+
syft ubuntu:22.04
67+
68+
# JSON 형식으로 표준 출력
69+
syft ubuntu:22.04 -o json
70+
```
71+
72+
### (4) Grype와 연동하여 취약점 스캔
73+
74+
```bash
75+
# Syft로 SBOM 생성 후 Grype로 취약점 분석
76+
syft ubuntu:22.04 -o json | grype
77+
```
78+
79+
## CI/CD 연동 예시
80+
81+
```yaml
82+
# GitHub Actions 예시
83+
- name: Generate SBOM with Syft
84+
uses: anchore/sbom-action@v0
85+
with:
86+
image: myapp:latest
87+
format: spdx-json
88+
output-file: sbom.spdx.json
89+
- name: Upload SBOM
90+
uses: actions/upload-artifact@v4
91+
with:
92+
name: sbom
93+
path: sbom.spdx.json
94+
```
95+
96+
## 참고 자료
97+
98+
- Syft GitHub: <https://github.com/anchore/syft>
99+
- Grype(취약점 스캐너): <https://github.com/anchore/grype>
100+
- SPDX 표준: <https://spdx.dev/>
101+
- CycloneDX 표준: <https://cyclonedx.org/>
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
title: "Dependency-Track"
3+
weight: 7
4+
type: docs
5+
categories: ["guide"]
6+
tags: ["Dependency-Track", "SBOM", "취약점", "CycloneDX"]
7+
---
8+
9+
Dependency-Track은 OWASP가 관리하는 오픈소스 SBOM 관리 및 취약점 분석 플랫폼입니다.
10+
업로드된 SBOM(CycloneDX, SPDX)을 기반으로 컴포넌트별 취약점을 지속적으로 모니터링하고,
11+
정책 위반 여부를 자동으로 평가합니다.
12+
13+
- GitHub: <https://github.com/DependencyTrack/dependency-track>
14+
- 공식 문서: <https://docs.dependencytrack.org/>
15+
- 라이선스: Apache-2.0
16+
17+
## 주요 특징
18+
19+
- **SBOM 기반 지속 모니터링**: SPDX 및 CycloneDX 형식의 SBOM을 업로드하면 컴포넌트별 최신 취약점을 자동으로 추적
20+
- **다양한 취약점 데이터소스 연동**: NVD, OSV, GitHub Advisories, VulnDB 등
21+
- **정책 엔진**: 라이선스 정책, 취약점 심각도 기준, 컴포넌트 사용 가능 여부를 규칙으로 정의하여 자동 평가
22+
- **REST API**: CI/CD 파이프라인과 통합하여 빌드 시 SBOM을 자동 업로드하고 결과를 피드백
23+
- **웹 UI 대시보드**: 프로젝트별 위험 점수, 취약점 현황, 라이선스 분포를 한눈에 파악
24+
- **알림**: Slack, 이메일, Webhook 등 다양한 채널로 신규 취약점 알림 발송
25+
26+
## 설치 방법
27+
28+
Docker Compose를 사용하는 방법이 가장 간편합니다.
29+
30+
```bash
31+
# 공식 Docker Compose 파일 다운로드
32+
curl -LO https://dependencytrack.org/docker-compose.yml
33+
34+
# 실행
35+
docker compose up -d
36+
```
37+
38+
기본적으로 API 서버는 포트 8081, 프론트엔드는 포트 8080에서 실행됩니다.
39+
초기 관리자 계정: `admin` / `admin` (최초 로그인 후 즉시 변경 필요)
40+
41+
## 기본 사용법
42+
43+
### (1) 웹 UI에서 프로젝트 생성 및 SBOM 업로드
44+
45+
1. `http://localhost:8080` 접속
46+
2. **Projects****Create Project** 클릭
47+
3. 프로젝트 이름·버전 입력 후 저장
48+
4. 해당 프로젝트 → **Components** 탭 → **Upload BOM** 클릭
49+
5. SBOM 파일(`.cdx.json` 또는 `.spdx.json`) 업로드
50+
51+
업로드 후 Dependency-Track이 자동으로 취약점 분석을 시작합니다.
52+
53+
### (2) API를 통한 SBOM 업로드 (CI/CD 연동)
54+
55+
```bash
56+
# API Key는 Administration > Access Management > Teams에서 발급
57+
API_KEY="your-api-key"
58+
PROJECT_UUID="your-project-uuid"
59+
60+
curl -X PUT \
61+
"http://localhost:8081/api/v1/bom" \
62+
-H "X-Api-Key: ${API_KEY}" \
63+
-H "Content-Type: multipart/form-data" \
64+
-F "project=${PROJECT_UUID}" \
65+
-F "bom=@sbom.cdx.json"
66+
```
67+
68+
### (3) GitHub Actions 연동 예시
69+
70+
```yaml
71+
- name: Upload SBOM to Dependency-Track
72+
uses: DependencyTrack/gh-upload-sbom@v3
73+
with:
74+
serverhostname: dependency-track.example.com
75+
apikey: ${{ secrets.DT_API_KEY }}
76+
project: ${{ secrets.DT_PROJECT_UUID }}
77+
bomfilename: sbom.cdx.json
78+
```
79+
80+
## cdxgen / Syft와 함께 사용하기
81+
82+
Dependency-Track은 SBOM 생성 도구(cdxgen, Syft)와 함께 사용할 때 가장 효과적입니다.
83+
84+
```
85+
cdxgen 또는 Syft → SBOM 생성 → Dependency-Track 업로드 → 지속 모니터링
86+
```
87+
88+
- SBOM 생성: [cdxgen](../5-cdxgen/) 또는 [Syft](../6-syft/)로 빌드 시 SBOM 생성
89+
- 중앙 관리: Dependency-Track에 업로드하여 전사 프로젝트 취약점 현황 통합 관리
90+
91+
## 참고 자료
92+
93+
- Dependency-Track 공식 문서: <https://docs.dependencytrack.org/>
94+
- Dependency-Track GitHub: <https://github.com/DependencyTrack/dependency-track>
95+
- CycloneDX 표준: <https://cyclonedx.org/>

0 commit comments

Comments
 (0)