CVE(Common Vulnerabilities and Exposures) 분석 방법론, 의존성 취약점 스캔 도구 활용, CVSS 점수 해석, 취약점 우선순위 결정 가이드. 'CVE', '취약점 분석', '의존성 취약점', 'CVSS', 'npm audit', 'Snyk', 'Trivy', 'CVE 데이터베이스', '취약점 우선순위' 등 CVE 기반 취약점 분석 시 이 스킬을 사용한다. vulnerability-scanner의 스캐닝 역량을 강화한다. 단, 실제 침투 테스트 실행이나 코드 수정은 이 스킬의 범위가 아니다.
Scanned 5/29/2026
Install via CLI
openskills install revfactory/harness-100---
name: cve-analysis
description: "CVE(Common Vulnerabilities and Exposures) 분석 방법론, 의존성 취약점 스캔 도구 활용, CVSS 점수 해석, 취약점 우선순위 결정 가이드. 'CVE', '취약점 분석', '의존성 취약점', 'CVSS', 'npm audit', 'Snyk', 'Trivy', 'CVE 데이터베이스', '취약점 우선순위' 등 CVE 기반 취약점 분석 시 이 스킬을 사용한다. vulnerability-scanner의 스캐닝 역량을 강화한다. 단, 실제 침투 테스트 실행이나 코드 수정은 이 스킬의 범위가 아니다."
---
# CVE Analysis — CVE 분석 및 의존성 취약점 관리 가이드
CVE 기반 취약점을 효율적으로 탐지, 분석, 우선순위화하는 방법론.
## CVSS v3.1 점수 체계
### Base Score 벡터
```
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H → 9.8 (Critical)
AV (Attack Vector): N(Network) > A(Adjacent) > L(Local) > P(Physical)
AC (Attack Complexity): L(Low) > H(High)
PR (Privileges Required): N(None) > L(Low) > H(High)
UI (User Interaction): N(None) > R(Required)
S (Scope): C(Changed) > U(Unchanged)
C (Confidentiality): H(High) > L(Low) > N(None)
I (Integrity): H(High) > L(Low) > N(None)
A (Availability): H(High) > L(Low) > N(None)
```
### 실무 우선순위 결정
```
CVSS만으로 부족 — 맥락 고려 필수:
우선순위 = CVSS Base × 환경 보정 × 악용 가능성
환경 보정:
├── 인터넷 노출: ×1.5 (외부 접근 가능)
├── 내부 전용: ×0.5 (VPN 뒤)
├── 중요 데이터 처리: ×1.3 (PII, 금융)
└── 개발 환경 전용: ×0.3
악용 가능성:
├── PoC 공개: ×2.0 (즉시 대응)
├── 활발한 공격: ×3.0 (최우선)
├── 이론적 가능: ×0.5
└── 해당 코드 경로 미사용: ×0.1
```
## 의존성 스캔 도구
### Node.js
```bash
# npm 내장
npm audit --json
npm audit fix
# Snyk
snyk test --json
snyk monitor # 지속 모니터링
# 결과 해석
{
"vulnerabilities": {
"info": 0, "low": 2, "moderate": 5,
"high": 3, "critical": 1
}
}
```
### Python
```bash
# pip-audit
pip-audit --format=json
# Safety
safety check --json
# Bandit (SAST)
bandit -r src/ -f json
```
### Java/Kotlin
```bash
# OWASP Dependency-Check
mvn org.owasp:dependency-check-maven:check
# Gradle
./gradlew dependencyCheckAnalyze
```
### 컨테이너
```bash
# Trivy
trivy image myapp:latest --severity CRITICAL,HIGH
trivy fs --security-checks vuln,config .
# Grype
grype myapp:latest
```
## 취약점 분류 프레임워크
### CWE 카테고리별 대응
| CWE 카테고리 | 대표 CVE 패턴 | 1차 대응 |
|-------------|-------------|---------|
| CWE-79 (XSS) | 프론트엔드 라이브러리 | 라이브러리 업데이트 + CSP 적용 |
| CWE-89 (SQLi) | ORM/DB 드라이버 | 패치 + 파라미터화 쿼리 확인 |
| CWE-502 (Deserialization) | Jackson, pickle | 패치 + 역직렬화 화이트리스트 |
| CWE-918 (SSRF) | HTTP 클라이언트 | 패치 + URL 화이트리스트 |
| CWE-1035 (Components) | 프레임워크 자체 | 마이너 버전 업그레이드 |
### 취약점 대응 의사결정
```
CVE 발견
├── CVSS ≥ 9.0 (Critical)
│ ├── 패치 가능 → 즉시 패치 (24h 내)
│ └── 패치 불가 → WAF 규칙 + 임시 우회
├── CVSS 7.0~8.9 (High)
│ ├── 인터넷 노출 → 1주 내 패치
│ └── 내부 전용 → 2주 내 패치
├── CVSS 4.0~6.9 (Medium)
│ └── 다음 릴리스에 포함
└── CVSS < 4.0 (Low)
└── 백로그에 등록
```
## 시크릿 탐지
### 검출 패턴
```regex
# AWS
AKIA[0-9A-Z]{16}
# GitHub Token
ghp_[a-zA-Z0-9]{36}
# Generic API Key
(?i)(api[_-]?key|apikey|secret)['":\s]*[=:]\s*['"]?[a-zA-Z0-9/+]{20,}
# JWT
eyJ[a-zA-Z0-9_-]*\.eyJ[a-zA-Z0-9_-]*\.[a-zA-Z0-9_-]*
# Private Key
-----BEGIN (RSA |EC |DSA )?PRIVATE KEY-----
```
### 도구
```bash
# gitleaks (Git 히스토리 포함)
gitleaks detect --source=. --report-format=json
# trufflehog
trufflehog git file://. --json
# detect-secrets
detect-secrets scan --all-files
```
## 보고서 템플릿
```markdown
# CVE 분석 보고서
## 요약
| 심각도 | 건수 | 즉시 대응 |
|--------|------|----------|
| Critical | N | N |
| High | N | N |
| Medium | N | |
| Low | N | |
## Critical/High 상세
| CVE ID | CVSS | 패키지 | 영향 | 대응 |
|--------|------|--------|------|------|
## 시크릿 탐지 결과
| 유형 | 파일 | 라인 | 상태 |
## 권고사항
1. [즉시] CVE-XXXX-XXXXX 패치
2. [1주] 의존성 N개 업그레이드
3. [운영] CI에 자동 스캔 추가
```
No comments yet. Be the first to comment!