# Exploitability 부식 방법론 ## 개요 ClawSec의 악용성 득점 체계는 AI 대리인 배치 (OpenClaw/NanoClaw)를 위해 특별히 디자인된 상황에 인식 취약성 평가를 제공합니다. 모든 환경을 똑같게 대우하는 일반적인 CVSS 점수와는 달리, 우리의 득점은 AI 대리인의 유일한 공격 표면 및 사용법 본을 고려하여 경고 피로를 감소시키고 행동 가능한 위협을 우선시합니다. ## 득점 수준 | 레벨 | 관능 | 의미 | |---|---|| | `high` | 긴요한/고 | 일반적인 에이전트 배포, 즉각적인 관심 필요 | | `medium` | 중형 | 구성에 따라 활용 가능 | 보증 조사 | | `low` | 저소음 | 에이전트 컨텍스트, 저소득층 | | `unknown` | 알 수없는 | 악용성을 평가하는 충분한 자료 | ## 득점 요인 # # # # # # # # # # # 1. CVSS 기본 점수 (기본값) 분석은 CVSS 기본 점수를 기초로 시작합니다. - **CVSS ≥ 9.0**: 긴 수명 → 초기 점수 `high` - **CVSS 7.0-8.9**: 높은 심각성 → 초기 점수 `high` - **CVSS 4.0-6.9**: 중간 심각성 → 초기 점수 `medium` - **CVSS 1.0-3.9**: 낮은 severity → 초기 점수 `low` - ** CVSS**: → 초기 점수 사이트맵 # # # # # # # # # # # 2. 공격 벡터 분석 (CVSS 미터) 분석가는 CVSS v2, v3.0 및 v3.1 벡터를 구문합니다. ### 네트워크 접근성 - **AV:N** (네트워크): 네트워크에 원격으로 악용 - **AV:A** (Adjacent): 로컬 네트워크 액세스를 요구합니다. - **AV:L** (Local): 로컬 시스템 액세스 필요 - **AV:P** (Physical): 물리적 접근 ** 에이전트에 중요 **: Network-accessible 취약점은 일반적으로 네트워크 서비스로 실행되거나 외부 API 호출을 할 수 있기 때문입니다. #### 인증 요건 - **PR:N / Au:NONE**: 인증 필요 없음 → 점수 상승 - **PR:L / Au:SINGLE**: 낮은 특전 - **PR:H / Au:MULTIPLE**: 요구되는 높은 특권 → 득점 ** 에이전트에 중요 **: Unauthenticated 악용은 공개적으로 노출되는 대리인 APIs를 위해 중요합니다. #### 사용자 상호 작용 - **UI:N**: 사용자 상호 작용이 필요 없음 → 점수 상승 - **UI:R**: 사용자의 상호 작용을 요구 → 점수를 감소 ** 에이전트에 중요 **: 에이전트는 종종 자율적으로 작동하므로 사용자 상호 작용이 덜 중요합니다. #### 공격 Complexity - **AC:L**: 낮은 복잡성 → 점수 상승 - **AC:M / AC:H**: 중간/고단성 → 중립 또는 점수를 감소 ** 에이전트에 중요 **: Low-complexity 악용은 자동화되고 대량 공격에 사용됩니다. # # # # # # # # # # # 3. 취약점 유형 (Deployment Context) ClawSec은 취약점 유형이 AI 에이전트 배포에 영향을 미치는 방법에 따라 점수를 조정합니다. ### 대리인 Context에 있는 높 토크 유형 ** 원격 코드 실행 (RCE)* * 이름 ``` Score: Always HIGH Rationale: RCE is critical in agent deployments ``` AI Agent는 arbitrary 코드를 함수의 일부로 실행합니다. RCE 취약점은 공격자가 납치 에이전트 실행 흐름, exfiltrate credentials, 또는 다른 시스템에 피벗을 수 있습니다. ** 서버 측 요청 위조 (SSRF) * * 이름 ``` Score: Elevated to HIGH if CVSS ≥ 6.0 Rationale: SSRF affects agents making external requests ``` 에이전트는 외부 API, 내부 서비스에 액세스, 그리고 원격 리소스를 호출. SSRF는 공격자를 허용합니다: - 내부 클라우드 메타데이터 서비스 접근 (AWS IMDSv1, GCP 메타데이터) - 내부 네트워크에 Pivot - DNS 터널링을 통한 Exfiltrate 데이터 **Path Traversal / 디렉토리 트레이널 * * 이름 ``` Score: Elevated to HIGH if CVSS ≥ 6.0 Rationale: Path traversal affects agents with file access ``` Agents는 파일을 읽고, 스크립트를 실행하고, codebases를 관리합니다. Path traversal 활성화: - 민감한 구성 파일 읽기 (.env, credentials) - SSH 키, API 토큰 접근 - 긴요한 시스템 파일 **공유 ** ``` Score: Always HIGH Rationale: Command injection is critical in agent deployments ``` RCE와 마찬가지로 에이전트는 종종 시스템과 상호 작용하는 쉘 명령을 실행합니다. 명령 주입은 가득 차있는 체계 타협을 허용합니다. #### 중간 리스크 유형 **Prototype 오염 (Node.js)* * 이름 ``` Score: Elevated from LOW to MEDIUM Rationale: Prototype pollution can escalate in Node.js agents ``` 많은 에이전트 프레임 워크는 Node.js에서 실행됩니다. Prototype 오염은 다음과 같습니다. - 인증 체크 - 특전 에스컬레이션 - 서비스 부인 ** SQL 주입 / NoSQL 주입 ** ``` Score: Elevated to HIGH if network-accessible and unauthenticated Rationale: Injection affects agents with database access ``` 데이터베이스의 대화 기록, 사용자 데이터 또는 도구 결과를 저장하는 에이전트는 주입 공격에 취약합니다. # # # # # # 낮잠 유형 **Cross 사이트 스크립트 (XSS) * * 이름 ``` Score: Reduced to MEDIUM if not network-accessible Rationale: XSS has limited impact in headless agents ``` 일반적으로 브라우저에서 HTML을 렌더링하지 마십시오. XSS 충격을 줄입니다. 그러나 에이전트 관리 UI 또는 채팅 인터페이스의 XSS는 우려가 있습니다. # # # # # # # # # # # 4. 폭발성 `--check-exploits`가 활성화되면 분석자는 공개 악용에 대한 참조 URL을 확인합니다. **Exploit 지표:** - 악용-db.com / 악용-database.com - 패킷stormsecurity.com - github.com/exploit, github.com/poc - metasploit 프레임 워크 모듈 - "/exploit", "/poc", "/proof-of-concept" 포함 URL ** 핵심 고각: ** - `low` → `medium` (유효한) - `medium` → `high` (유효한) - `unknown` → `medium` (유효한 + CVSS > 0) **Rationale**: 공격자에 대한 기술 장벽을 낮추고 자동화 된 악용의 저명한 증가. ## 득점 알고리즘 해석기는 이 결정 나무를 따릅니다: ``` 1. Parse CVSS score → set baseline (high/medium/low/unknown) 2. Parse CVSS vector → analyze attack characteristics 3. Adjust for attack vector: - Network-accessible + no auth + no UI → elevate to HIGH - Local-only access → reduce HIGH to MEDIUM 4. Adjust for vulnerability type: - Check against agent-specific risk categories - Elevate or reduce score based on deployment context 5. Check for public exploits (if enabled): - Elevate score if exploits detected 6. Generate rationale explaining the final score ``` ## 예제 ### 예제 1 : 긴 RCE (높은 폭발성) ```json { "cve_id": "CVE-2024-12345", "cvss_score": 9.8, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "type": "remote_code_execution", "description": "Unauthenticated RCE in Express.js framework" } ``` ** 분석 출력 : ** ```json { "exploitability_score": "high", "exploitability_rationale": "Critical CVSS score (9.8); remotely exploitable without authentication; RCE is critical in agent deployments" } ``` **왜 높은 **: 긴요한 CVSS + 네트워크 접근 가능 + 아니 auth + RCE 유형. ### 예제 2 : 에이전트 API의 SSRF (높은 폭발성) ```json { "cve_id": "CVE-2024-23456", "cvss_score": 7.3, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L", "type": "server_side_request_forgery", "description": "SSRF in webhook handler allows internal network access" } ``` ** 분석 출력 : ** ```json { "exploitability_score": "high", "exploitability_rationale": "High CVSS score (7.3); remotely exploitable without authentication; SSRF affects agents making external requests" } ``` **Why HIGH**: SSRF는 API 호출을 하는 에이전트에 대 한 중요 한 (최대). 인증없이 네트워크 접근 가능 위험. ### 예제 3 : 공공 폭발 (높은 폭발성)을 가진 경로 트레이널 ```json { "cve_id": "CVE-2024-34567", "cvss_score": 6.5, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "type": "path_traversal", "references": [ "https://exploit-db.com/exploits/51234", "https://nvd.nist.gov/vuln/detail/CVE-2024-34567" ] } ``` ** 분석 출력 (-check-exploits 포함) : ** ```json { "exploitability_score": "high", "exploitability_rationale": "Medium CVSS score (6.5); network accessible; path traversal affects agents with file access; public exploit available (1 source)" } ``` **왜 높은 **: 경로 traversal + 에이전트 파일 액세스 + 공공 악용 높은 악용성에 중간 CVSS 상승. ### 예제 4 : 에이전트 UI의 XSS (중간 폭발성) ```json { "cve_id": "CVE-2024-45678", "cvss_score": 7.1, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L", "type": "cross_site_scripting", "description": "Stored XSS in agent management dashboard" } ``` ** 분석 출력 : ** ```json { "exploitability_score": "medium", "exploitability_rationale": "High CVSS score (7.1); network accessible; XSS has limited impact in headless agents" } ``` **왜 MEDIUM**: 높은 CVSS에도 불구하고, XSS는 에이전트 배포에 덜 중요 (헤드리스 작동). 사용자의 상호 작용을 요구합니다. ### 예제 5 : 지역 Privilege 에스컬레이션 (중간 폭발성) ```json { "cve_id": "CVE-2024-56789", "cvss_score": 8.8, "cvss_vector": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H", "type": "privilege_escalation", "description": "Local privilege escalation via symbolic link attack" } ``` ** 분석 출력 : ** ```json { "exploitability_score": "medium", "exploitability_rationale": "High CVSS score (8.8); requires local access" } ``` **왜 MEDIUM **: 높은 CVSS에도 불구하고 로컬 액세스가 필요합니다. 일반적으로 로컬 에스컬레이션이 제한된 영향이 있는 컨테이너/샌드박스 환경에서 실행됩니다. ### 예 6 : Exploit (High Exploitability)의 프로토 타입 오염 ```json { "cve_id": "CVE-2024-67890", "cvss_score": 5.3, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", "type": "prototype_pollution", "description": "Prototype pollution in lodash merge function", "references": [ "https://github.com/exploit/prototype-pollution-poc", "https://snyk.io/vuln/SNYK-JS-LODASH-1234567" ] } ``` ** 분석 출력 (-check-exploits 포함) : ** ```json { "exploitability_score": "high", "exploitability_rationale": "Medium CVSS score (5.3); remotely exploitable without authentication; prototype pollution can escalate in Node.js agents; public exploit available (1 source)" } ``` **왜 HIGH**: Node.js Agent + public exploit + network-accessible에 있는 Prototype 오염은 온건한 CVSS에도 불구하고 auth = 높은 위험이 없습니다. ## ClawSec Workflows의 사용 ## 자동화된 득점 (NVD 급식) `poll-nvd-cves.yml` 워크플로우는 새로운 CVE를 자동적으로 평가합니다. ```bash # Workflow step python utils/analyze_exploitability.py --json --check-exploits < cve-data.json ``` `advisories/feed.json`의 자문은 다음을 포함합니다: ```json { "id": "CVE-2024-12345", "severity": "high", "exploitability_score": "high", "exploitability_rationale": "Critical CVSS score (9.8); remotely exploitable without authentication; RCE is critical in agent deployments", "attack_vector_analysis": { "is_network_accessible": true, "requires_authentication": false, "requires_user_interaction": false, "complexity": "low" } } ``` ## 수동 분석 보안 연구원은 수동으로 CVE를 분석 할 수 있습니다 : ```bash # Basic analysis echo '{"cve_id":"CVE-2024-12345","cvss_score":7.3,"type":"ssrf"}' | \ python utils/analyze_exploitability.py --json # With exploit detection echo '{"cve_id":"CVE-2024-12345","cvss_score":7.3,"references":["https://exploit-db.com/exploits/51234"]}' | \ python utils/analyze_exploitability.py --json --check-exploits ``` ### Exploitability에 의해 필터링 사용자는 악용성 점수에 의해 고문을 필터링 할 수 있습니다: ```bash # Get only high-exploitability advisories curl -s https://clawsec.prompt.security/feed.json | \ jq '.advisories[] | select(.exploitability_score == "high")' # Prioritize by exploitability and severity curl -s https://clawsec.prompt.security/feed.json | \ jq '[.advisories[] | select(.exploitability_score == "high" and .severity == "critical")] | sort_by(.cvss_score) | reverse' ``` ## Backfilling Existing Advisories (역사적 유지보수) 사이트맵 QXZ는 One-off 저장소 유지 보수를 위한 역사적인 유지 보수 유틸리티로 유지됩니다. 정상적인 자문 세대의 기본 경로는 아닙니다. 선호하는 경로: 1. 명세 CI canonical 경로: init/reset과 NVD 워크플로우를 실행하여 NVD의 자문을 재개하고 파이프라인에 있는 Artifacts를 서명합니다. 2. 명세 로컬 개발자 경로: `./scripts/populate-local-feed.sh --force`를 실행하여 지역 피드를 분산시킵니다. 명시적으로 레거시 피드 콘텐츠를 복구 할 때 backfill을 사용합니다. ## 커뮤니티 공헌 커뮤니티 회원은 악용성 평가를 제출할 수 있습니다. 1. 명세 ** GitHub Issue를 통해 등록 **: CVE를 악용성 컨텍스트로 보고하기 위한 자문 템플릿 사용 2. 명세 ** 자동화된 분석**: `community-advisory.yml` 워크플로우는 커뮤니티에 등록한 CVE를 자동으로 평가합니다. 3. 명세 ** 수동 검토 **: 유지자 검토 및 승인 4. 명세 **Feed Update** : 승인 된 자문은 악용성 점수로 피드에 추가됩니다. ## 제한 및 미래 작업 ## 현재 제한 1. 명세 **Static Analysis**: Scoring은 CVE metadata를 기반으로 동적 실행 시간 분석이 아닙니다. 2.**No Version Detection**: 특정 버전이 취약하다면 확인하지 않습니다. 3. 명세 ** 일정 **: 부분적인 mitigation 또는 Defense-in-depth을 고려하지 마십시오. 4. 명세 **Limited Context**: 정확한 에이전트 구성 또는 배포 툴을 알 수 없습니다. ### 미래 향상 1. 명세 **EPSS 통합 **: EPSS (Exploit Prediction Scoring System) 확률 점수 2. 명세 **KEV Matching**: CISA KEV(Known Exploited Vulnerabilities) 카탈로그를 사용한 Cross-reference 3. 명세 **Agent Profiling**: 배포된 에이전트 기능과 노출된 API를 고려 4. 명세 **Mitigation Detection**: WAF 규칙, 샌드박스링, 기타 보상 제어를 확인 5. 명세 **ML 기반 득점 **: 기계 학습을 사용하여 악용성을 예측합니다. ## 참조 - **CVSS v3.1 사양**: [https://www.first.org/cvss/v3.1/specification-document](https://www.first.org/cvss/v3.1/specification-document) - **CVSS v2 가이드**: [https://www.first.org/cvss/v2/guide](https://www.first.org/cvss/v2/guide) - **EPSS**: [https://www.first.org/epss/](https://www.first.org/epss/) - **CISA KEV **: [https://www.cisa.gov/known-exploited-vulnerabilities-catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) - **NVD API**: [https://nvd.nist.gov/developers/vulnerabilities](https://nvd.nist.gov/developers/vulnerabilities) # # # # # # # # # # 관련 기사 악용성 득점 방법론을 개량하기 위하여: 1. 명세 **Submit Test Case**: `utils/analyze_exploitability.py`에 대한 테스트 케이스 추가 2. 명세 **Report False Positives/Negatives**: CVE 예제에서 GitHub 이슈 열기 3. 명세 **Propose Scoring Adjustments**: 합리적이고 예로 PR 제출 4. 명세 **Share Agent Context**: Contribute 에이전트별 취약성 패턴 See [CONTRIBUTING.md](../../CONTRIBUTING.md) for detailed contribution guidelines. --- --- **가입 **: [Prompt Security](https://prompt.security) **라이센스 **: AGPL-3.0-or-later **최근 업데이트 **: 2026-03-01