> ## Documentation Index
> Fetch the complete documentation index at: https://openclawdoc.org/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenClaw Threat Model v1.0

> MITRE ATLAS를 기반으로 OpenClaw와 ClawHub의 신뢰 경계, 공격 경로, 위험도와 완화책을 정리한 위협 모델입니다.

# OpenClaw 위협 모델 v1.0

## MITRE ATLAS 프레임워크

**버전:** 1.0-draft
**최종 업데이트:** 2026-02-04
**방법론:** MITRE ATLAS + 데이터 흐름도
**프레임워크:** [MITRE ATLAS](https://atlas.mitre.org/) (Adversarial Threat Landscape for AI Systems)

### 프레임워크 출처

이 위협 모델은 AI/ML 시스템에 대한 적대적 위협을 문서화하는 업계 표준 프레임워크인 [MITRE ATLAS](https://atlas.mitre.org/)를 기반으로 작성되었습니다. ATLAS는 AI 보안 커뮤니티와 협력하여 [MITRE](https://www.mitre.org/)가 유지 관리합니다.

**주요 ATLAS 자료:**

* [ATLAS Techniques](https://atlas.mitre.org/techniques/)
* [ATLAS Tactics](https://atlas.mitre.org/tactics/)
* [ATLAS Case Studies](https://atlas.mitre.org/studies/)
* [ATLAS GitHub](https://github.com/mitre-atlas/atlas-data)
* [Contributing to ATLAS](https://atlas.mitre.org/resources/contribute)

### 이 위협 모델에 기여하기

이 문서는 OpenClaw 커뮤니티가 유지 관리하는 살아 있는 문서입니다. 기여 가이드는 [CONTRIBUTING-THREAT-MODEL.md](/security/CONTRIBUTING-THREAT-MODEL)를 참고하세요.

* 새로운 위협 보고
* 기존 위협 업데이트
* 공격 체인 제안
* 완화책 제안

***

## 1. 소개

### 1.1 목적

이 위협 모델은 AI/ML 시스템을 위해 특별히 설계된 MITRE ATLAS 프레임워크를 사용하여 OpenClaw AI 에이전트 플랫폼과 ClawHub 스킬 마켓플레이스에 대한 적대적 위협을 문서화합니다.

### 1.2 범위

| 구성요소                   | 포함 여부 | 비고                                           |
| ---------------------- | ----- | -------------------------------------------- |
| OpenClaw Agent Runtime | 예     | 핵심 에이전트 실행, 도구 호출, 세션                        |
| Gateway                | 예     | 인증, 라우팅, 채널 통합                               |
| Channel Integrations   | 예     | WhatsApp, Telegram, Discord, Signal, Slack 등 |
| ClawHub Marketplace    | 예     | 스킬 게시, 검토, 배포                                |
| MCP Servers            | 예     | 외부 도구 제공자                                    |
| User Devices           | 부분    | 모바일 앱, 데스크톱 클라이언트                            |

### 1.3 범위 제외

이 위협 모델에서 명시적으로 범위 밖으로 제외한 항목은 없습니다.

***

## 2. 시스템 아키텍처

### 2.1 신뢰 경계

```
┌─────────────────────────────────────────────────────────────────┐
│                    UNTRUSTED ZONE                                │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐              │
│  │  WhatsApp   │  │  Telegram   │  │   Discord   │  ...         │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘              │
│         │                │                │                      │
└─────────┼────────────────┼────────────────┼──────────────────────┘
          │                │                │
          ▼                ▼                ▼
┌─────────────────────────────────────────────────────────────────┐
│                 TRUST BOUNDARY 1: Channel Access                 │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │                      GATEWAY                              │   │
│  │  • Device Pairing (30s grace period)                      │   │
│  │  • AllowFrom / AllowList validation                       │   │
│  │  • Token/Password/Tailscale auth                          │   │
│  └──────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                 TRUST BOUNDARY 2: Session Isolation              │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │                   AGENT SESSIONS                          │   │
│  │  • Session key = agent:channel:peer                       │   │
│  │  • Tool policies per agent                                │   │
│  │  • Transcript logging                                     │   │
│  └──────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                 TRUST BOUNDARY 3: Tool Execution                 │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │                  EXECUTION SANDBOX                        │   │
│  │  • Docker sandbox OR Host (exec-approvals)                │   │
│  │  • Node remote execution                                  │   │
│  │  • SSRF protection (DNS pinning + IP blocking)            │   │
│  └──────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                 TRUST BOUNDARY 4: External Content               │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │              FETCHED URLs / EMAILS / WEBHOOKS             │   │
│  │  • External content wrapping (XML tags)                   │   │
│  │  • Security notice injection                              │   │
│  └──────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                 TRUST BOUNDARY 5: Supply Chain                   │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │                      CLAWHUB                              │   │
│  │  • Skill publishing (semver, SKILL.md required)           │   │
│  │  • Pattern-based moderation flags                         │   │
│  │  • VirusTotal scanning (coming soon)                      │   │
│  │  • GitHub account age verification                        │   │
│  └──────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘
```

### 2.2 데이터 흐름

| 흐름 | 출발지     | 목적지      | 데이터           | 보호 수단          |
| -- | ------- | -------- | ------------- | -------------- |
| F1 | Channel | Gateway  | 사용자 메시지       | TLS, AllowFrom |
| F2 | Gateway | Agent    | 라우팅된 메시지      | 세션 격리          |
| F3 | Agent   | Tools    | 도구 호출         | 정책 강제          |
| F4 | Agent   | External | web\_fetch 요청 | SSRF 차단        |
| F5 | ClawHub | Agent    | 스킬 코드         | 검토, 스캐닝        |
| F6 | Agent   | Channel  | 응답            | 출력 필터링         |

***

## 3. ATLAS 전술별 위협 분석

### 3.1 정찰 (AML.TA0002)

#### T-RECON-001: 에이전트 엔드포인트 탐지

| 속성             | 값                                            |
| -------------- | -------------------------------------------- |
| **ATLAS ID**   | AML.T0006 - Active Scanning                  |
| **설명**         | 공격자가 노출된 OpenClaw gateway 엔드포인트를 스캔함         |
| **공격 벡터**      | 네트워크 스캐닝, shodan 쿼리, DNS 열거                  |
| **영향 받는 구성요소** | Gateway, 노출된 API 엔드포인트                       |
| **현재 완화책**     | Tailscale 인증 옵션, 기본적으로 loopback에 바인드         |
| **잔여 위험**      | 중간 - 공개 gateway는 탐지 가능함                      |
| **권고사항**       | 안전한 배포 방식을 문서화하고 탐지용 엔드포인트에 rate limiting 추가 |

#### T-RECON-002: 채널 연동 프로빙

| 속성             | 값                                     |
| -------------- | ------------------------------------- |
| **ATLAS ID**   | AML.T0006 - Active Scanning           |
| **설명**         | 공격자가 AI가 관리하는 계정을 식별하기 위해 메시징 채널을 탐색함 |
| **공격 벡터**      | 테스트 메시지 전송, 응답 패턴 관찰                  |
| **영향 받는 구성요소** | 모든 채널 연동                              |
| **현재 완화책**     | 별도 없음                                 |
| **잔여 위험**      | 낮음 - 탐지만으로 얻을 수 있는 가치가 제한적임           |
| **권고사항**       | 응답 타이밍 무작위화 검토                        |

***

### 3.2 초기 접근 (AML.TA0004)

#### T-ACCESS-001: 페어링 코드 가로채기

| 속성             | 값                                         |
| -------------- | ----------------------------------------- |
| **ATLAS ID**   | AML.T0040 - AI Model Inference API Access |
| **설명**         | 공격자가 30초 유예 기간 동안 페어링 코드를 가로챔             |
| **공격 벡터**      | 어깨너머 엿보기, 네트워크 스니핑, 사회공학                  |
| **영향 받는 구성요소** | 디바이스 페어링 시스템                              |
| **현재 완화책**     | 30초 만료, 기존 채널을 통한 코드 전송                   |
| **잔여 위험**      | 중간 - 유예 기간을 악용할 수 있음                      |
| **권고사항**       | 유예 기간 단축, 확인 단계 추가                        |

#### T-ACCESS-002: AllowFrom 스푸핑

| 속성             | 값                                         |
| -------------- | ----------------------------------------- |
| **ATLAS ID**   | AML.T0040 - AI Model Inference API Access |
| **설명**         | 공격자가 채널에서 허용된 발신자 신원을 스푸핑함                |
| **공격 벡터**      | 채널별로 다름 - 전화번호 스푸핑, 사용자명 사칭               |
| **영향 받는 구성요소** | 채널별 AllowFrom 검증                          |
| **현재 완화책**     | 채널별 신원 검증                                 |
| **잔여 위험**      | 중간 - 일부 채널은 스푸핑에 취약함                      |
| **권고사항**       | 채널별 위험을 문서화하고 가능한 경우 암호학적 검증 추가           |

#### T-ACCESS-003: 토큰 탈취

| 속성             | 값                                         |
| -------------- | ----------------------------------------- |
| **ATLAS ID**   | AML.T0040 - AI Model Inference API Access |
| **설명**         | 공격자가 설정 파일에서 인증 토큰을 탈취함                   |
| **공격 벡터**      | 멀웨어, 무단 디바이스 접근, 설정 백업 노출                 |
| **영향 받는 구성요소** | `~/.openclaw/credentials/`, 설정 저장소        |
| **현재 완화책**     | 파일 권한                                     |
| **잔여 위험**      | 높음 - 토큰이 평문으로 저장됨                         |
| **권고사항**       | 저장 시 토큰 암호화 구현, 토큰 회전 추가                  |

***

### 3.3 실행 (AML.TA0005)

#### T-EXEC-001: 직접 프롬프트 인젝션

| 속성             | 값                                            |
| -------------- | -------------------------------------------- |
| **ATLAS ID**   | AML.T0051.000 - LLM Prompt Injection: Direct |
| **설명**         | 공격자가 조작된 프롬프트를 보내 에이전트 동작을 조종함               |
| **공격 벡터**      | 적대적 지시가 포함된 채널 메시지                           |
| **영향 받는 구성요소** | Agent LLM, 모든 입력 표면                          |
| **현재 완화책**     | 패턴 탐지, 외부 콘텐츠 래핑                             |
| **잔여 위험**      | 치명적 - 탐지에만 의존하고 차단이 없으며 정교한 공격은 우회 가능        |
| **권고사항**       | 다계층 방어, 출력 검증, 민감한 작업에 대한 사용자 확인 구현          |

#### T-EXEC-002: 간접 프롬프트 인젝션

| 속성             | 값                                              |
| -------------- | ---------------------------------------------- |
| **ATLAS ID**   | AML.T0051.001 - LLM Prompt Injection: Indirect |
| **설명**         | 공격자가 가져온 콘텐츠 안에 악성 지시를 심어 둠                    |
| **공격 벡터**      | 악성 URL, 오염된 이메일, 침해된 웹훅                        |
| **영향 받는 구성요소** | `web_fetch`, 이메일 수집, 외부 데이터 소스                 |
| **현재 완화책**     | XML 태그와 보안 고지를 활용한 콘텐츠 래핑                      |
| **잔여 위험**      | 높음 - LLM이 래퍼 지시를 무시할 수 있음                      |
| **권고사항**       | 콘텐츠 정제, 분리된 실행 컨텍스트 구현                         |

#### T-EXEC-003: 도구 인자 인젝션

| 속성             | 값                                            |
| -------------- | -------------------------------------------- |
| **ATLAS ID**   | AML.T0051.000 - LLM Prompt Injection: Direct |
| **설명**         | 공격자가 프롬프트 인젝션을 통해 도구 인자를 조작함                 |
| **공격 벡터**      | 도구 파라미터 값에 영향을 주는 조작된 프롬프트                   |
| **영향 받는 구성요소** | 모든 도구 호출                                     |
| **현재 완화책**     | 위험한 명령에 대한 exec 승인                           |
| **잔여 위험**      | 높음 - 사용자 판단에 의존함                             |
| **권고사항**       | 인자 검증, 파라미터화된 도구 호출 구현                       |

#### T-EXEC-004: exec 승인 우회

| 속성             | 값                                  |
| -------------- | ---------------------------------- |
| **ATLAS ID**   | AML.T0043 - Craft Adversarial Data |
| **설명**         | 공격자가 승인 allowlist를 우회하는 명령을 조작해 냄  |
| **공격 벡터**      | 명령 난독화, alias 악용, 경로 조작            |
| **영향 받는 구성요소** | `exec-approvals.ts`, 명령 allowlist  |
| **현재 완화책**     | allowlist + ask 모드                 |
| **잔여 위험**      | 높음 - 명령 정규화가 없음                    |
| **권고사항**       | 명령 정규화 구현, blocklist 확장            |

***

### 3.4 지속성 (AML.TA0006)

#### T-PERSIST-001: 악성 스킬 설치

| 속성             | 값                                                    |
| -------------- | ---------------------------------------------------- |
| **ATLAS ID**   | AML.T0010.001 - Supply Chain Compromise: AI Software |
| **설명**         | 공격자가 ClawHub에 악성 스킬을 게시함                             |
| **공격 벡터**      | 계정 생성, 숨겨진 악성 코드가 포함된 스킬 게시                          |
| **영향 받는 구성요소** | ClawHub, 스킬 로딩, 에이전트 실행                              |
| **현재 완화책**     | GitHub 계정 연령 검증, 패턴 기반 검토 플래그                        |
| **잔여 위험**      | 치명적 - 샌드박싱이 없고 검토가 제한적임                              |
| **권고사항**       | VirusTotal 통합(진행 중), 스킬 샌드박싱, 커뮤니티 검토                |

#### T-PERSIST-002: 스킬 업데이트 오염

| 속성             | 값                                                    |
| -------------- | ---------------------------------------------------- |
| **ATLAS ID**   | AML.T0010.001 - Supply Chain Compromise: AI Software |
| **설명**         | 공격자가 인기 있는 스킬을 침해하고 악성 업데이트를 배포함                     |
| **공격 벡터**      | 계정 탈취, 스킬 소유자 대상 사회공학                                |
| **영향 받는 구성요소** | ClawHub 버전 관리, 자동 업데이트 흐름                            |
| **현재 완화책**     | 버전 지문 검증                                             |
| **잔여 위험**      | 높음 - 자동 업데이트가 악성 버전을 가져올 수 있음                        |
| **권고사항**       | 업데이트 서명, 롤백 기능, 버전 고정 구현                             |

#### T-PERSIST-003: 에이전트 설정 변조

| 속성             | 값                                             |
| -------------- | --------------------------------------------- |
| **ATLAS ID**   | AML.T0010.002 - Supply Chain Compromise: Data |
| **설명**         | 공격자가 접근 권한을 유지하기 위해 에이전트 설정을 수정함              |
| **공격 벡터**      | 설정 파일 수정, 설정 인젝션                              |
| **영향 받는 구성요소** | 에이전트 설정, 도구 정책                                |
| **현재 완화책**     | 파일 권한                                         |
| **잔여 위험**      | 중간 - 로컬 접근이 필요함                               |
| **권고사항**       | 설정 무결성 검증, 설정 변경 감사 로깅                        |

***

### 3.5 방어 회피 (AML.TA0007)

#### T-EVADE-001: 검토 패턴 우회

| 속성             | 값                                            |
| -------------- | -------------------------------------------- |
| **ATLAS ID**   | AML.T0043 - Craft Adversarial Data           |
| **설명**         | 공격자가 검토 패턴을 피하도록 스킬 콘텐츠를 조작함                 |
| **공격 벡터**      | 유니코드 동형 이의 문자, 인코딩 트릭, 동적 로딩                 |
| **영향 받는 구성요소** | ClawHub `moderation.ts`                      |
| **현재 완화책**     | 패턴 기반 `FLAG_RULES`                           |
| **잔여 위험**      | 높음 - 단순 정규식은 쉽게 우회됨                          |
| **권고사항**       | 행위 분석(VirusTotal Code Insight), AST 기반 탐지 추가 |

#### T-EVADE-002: 콘텐츠 래퍼 탈출

| 속성             | 값                                  |
| -------------- | ---------------------------------- |
| **ATLAS ID**   | AML.T0043 - Craft Adversarial Data |
| **설명**         | 공격자가 XML 래퍼 컨텍스트를 벗어나는 콘텐츠를 구성함    |
| **공격 벡터**      | 태그 조작, 컨텍스트 혼란, 지시 덮어쓰기            |
| **영향 받는 구성요소** | 외부 콘텐츠 래핑                          |
| **현재 완화책**     | XML 태그 + 보안 고지                     |
| **잔여 위험**      | 중간 - 새로운 탈출 기법이 정기적으로 발견됨          |
| **권고사항**       | 다중 래퍼 계층, 출력 측 검증                  |

***

### 3.6 탐색 (AML.TA0008)

#### T-DISC-001: 도구 열거

| 속성             | 값                                         |
| -------------- | ----------------------------------------- |
| **ATLAS ID**   | AML.T0040 - AI Model Inference API Access |
| **설명**         | 공격자가 프롬프트를 통해 사용 가능한 도구를 열거함              |
| **공격 벡터**      | "What tools do you have?"류의 질의            |
| **영향 받는 구성요소** | 에이전트 도구 레지스트리                             |
| **현재 완화책**     | 별도 없음                                     |
| **잔여 위험**      | 낮음 - 도구는 일반적으로 문서화되어 있음                   |
| **권고사항**       | 도구 가시성 제어 검토                              |

#### T-DISC-002: 세션 데이터 추출

| 속성             | 값                                         |
| -------------- | ----------------------------------------- |
| **ATLAS ID**   | AML.T0040 - AI Model Inference API Access |
| **설명**         | 공격자가 세션 컨텍스트에서 민감한 데이터를 추출함               |
| **공격 벡터**      | "What did we discuss?" 질의, 컨텍스트 프로빙       |
| **영향 받는 구성요소** | 세션 기록, 컨텍스트 윈도                            |
| **현재 완화책**     | 발신자별 세션 격리                                |
| **잔여 위험**      | 중간 - 같은 세션 내 데이터에는 접근 가능                  |
| **권고사항**       | 컨텍스트 내 민감 정보 마스킹 구현                       |

***

### 3.7 수집 및 유출 (AML.TA0009, AML.TA0010)

#### T-EXFIL-001: `web_fetch`를 통한 데이터 탈취

| 속성             | 값                                     |
| -------------- | ------------------------------------- |
| **ATLAS ID**   | AML.T0009 - Collection                |
| **설명**         | 공격자가 에이전트에 외부 URL로 전송하도록 지시해 데이터를 유출함 |
| **공격 벡터**      | 프롬프트 인젝션으로 에이전트가 공격자 서버에 데이터를 POST함   |
| **영향 받는 구성요소** | `web_fetch` 도구                        |
| **현재 완화책**     | 내부 네트워크 대상 SSRF 차단                    |
| **잔여 위험**      | 높음 - 외부 URL은 허용됨                      |
| **권고사항**       | URL allowlist, 데이터 분류 인식 구현           |

#### T-EXFIL-002: 무단 메시지 전송

| 속성             | 값                                  |
| -------------- | ---------------------------------- |
| **ATLAS ID**   | AML.T0009 - Collection             |
| **설명**         | 공격자가 민감한 데이터가 담긴 메시지를 에이전트가 보내게 만듦 |
| **공격 벡터**      | 프롬프트 인젝션으로 에이전트가 공격자에게 메시지를 전송함    |
| **영향 받는 구성요소** | 메시지 도구, 채널 연동                      |
| **현재 완화책**     | 발신 메시지 게이팅                         |
| **잔여 위험**      | 중간 - 게이팅이 우회될 수 있음                 |
| **권고사항**       | 새로운 수신자에 대해서는 명시적 확인 요구            |

#### T-EXFIL-003: 자격 증명 수집

| 속성             | 값                             |
| -------------- | ----------------------------- |
| **ATLAS ID**   | AML.T0009 - Collection        |
| **설명**         | 악성 스킬이 에이전트 컨텍스트에서 자격 증명을 수집함 |
| **공격 벡터**      | 스킬 코드가 환경 변수와 설정 파일을 읽음       |
| **영향 받는 구성요소** | 스킬 실행 환경                      |
| **현재 완화책**     | 스킬 전용 완화책 없음                  |
| **잔여 위험**      | 치명적 - 스킬이 에이전트 권한으로 실행됨       |
| **권고사항**       | 스킬 샌드박싱, 자격 증명 격리             |

***

### 3.8 영향 (AML.TA0011)

#### T-IMPACT-001: 무단 명령 실행

| 속성             | 값                                    |
| -------------- | ------------------------------------ |
| **ATLAS ID**   | AML.T0031 - Erode AI Model Integrity |
| **설명**         | 공격자가 사용자 시스템에서 임의 명령을 실행함            |
| **공격 벡터**      | 프롬프트 인젝션과 exec 승인 우회 결합              |
| **영향 받는 구성요소** | Bash 도구, 명령 실행                       |
| **현재 완화책**     | exec 승인, Docker 샌드박스 옵션              |
| **잔여 위험**      | 치명적 - 샌드박스 없는 호스트 실행                 |
| **권고사항**       | 기본값을 샌드박스로 설정하고 승인 UX 개선             |

#### T-IMPACT-002: 리소스 고갈 (DoS)

| 속성             | 값                                    |
| -------------- | ------------------------------------ |
| **ATLAS ID**   | AML.T0031 - Erode AI Model Integrity |
| **설명**         | 공격자가 API 크레딧이나 연산 리소스를 고갈시킴          |
| **공격 벡터**      | 자동화된 메시지 폭주, 비용이 큰 도구 호출             |
| **영향 받는 구성요소** | Gateway, 에이전트 세션, API 제공자            |
| **현재 완화책**     | 없음                                   |
| **잔여 위험**      | 높음 - rate limiting이 없음               |
| **권고사항**       | 발신자별 rate limit, 비용 예산 구현            |

#### T-IMPACT-003: 평판 훼손

| 속성             | 값                                    |
| -------------- | ------------------------------------ |
| **ATLAS ID**   | AML.T0031 - Erode AI Model Integrity |
| **설명**         | 공격자가 에이전트가 유해하거나 공격적인 콘텐츠를 보내게 함     |
| **공격 벡터**      | 프롬프트 인젝션으로 부적절한 응답을 유도               |
| **영향 받는 구성요소** | 출력 생성, 채널 메시징                        |
| **현재 완화책**     | LLM 제공자 콘텐츠 정책                       |
| **잔여 위험**      | 중간 - 제공자 필터는 완벽하지 않음                 |
| **권고사항**       | 출력 필터링 계층, 사용자 제어                    |

***

## 4. ClawHub 공급망 분석

### 4.1 현재 보안 통제

| 통제 항목         | 구현                           | 효과성                             |
| ------------- | ---------------------------- | ------------------------------- |
| GitHub 계정 연령  | `requireGitHubAccountAge()`  | 중간 - 신규 공격자의 진입 장벽을 높임          |
| 경로 정제         | `sanitizePath()`             | 높음 - 경로 순회 방지                   |
| 파일 유형 검증      | `isTextFile()`               | 중간 - 텍스트 파일만 허용하지만 여전히 악성일 수 있음 |
| 크기 제한         | 총 번들 50MB                    | 높음 - 리소스 고갈 방지                  |
| 필수 `SKILL.md` | 필수 readme 파일                 | 낮은 보안 가치 - 정보 제공용일 뿐임           |
| 패턴 기반 검토      | `moderation.ts`의 FLAG\_RULES | 낮음 - 쉽게 우회됨                     |
| 검토 상태         | `moderationStatus` 필드        | 중간 - 수동 검토 가능                   |

### 4.2 검토 플래그 패턴

현재 `moderation.ts`의 패턴:

```javascript theme={"theme":{"light":"min-light","dark":"min-dark"}}
// Known-bad identifiers
/(keepcold131\/ClawdAuthenticatorTool|ClawdAuthenticatorTool)/i

// Suspicious keywords
/(malware|stealer|phish|phishing|keylogger)/i
/(api[-_ ]?key|token|password|private key|secret)/i
/(wallet|seed phrase|mnemonic|crypto)/i
/(discord\.gg|webhook|hooks\.slack)/i
/(curl[^\n]+\|\s*(sh|bash))/i
/(bit\.ly|tinyurl\.com|t\.co|goo\.gl|is\.gd)/i
```

**한계:**

* slug, displayName, summary, frontmatter, metadata, 파일 경로만 검사함
* 실제 스킬 코드 내용은 분석하지 않음
* 단순 정규식은 난독화로 쉽게 우회 가능함
* 행위 분석이 없음

### 4.3 계획된 개선 사항

| 개선 사항         | 상태                            | 영향                                                                |
| ------------- | ----------------------------- | ----------------------------------------------------------------- |
| VirusTotal 통합 | 진행 중                          | 높음 - Code Insight 행위 분석                                           |
| 커뮤니티 신고       | 부분 구현 (`skillReports` 테이블 존재) | 중간                                                                |
| 감사 로깅         | 부분 구현 (`auditLogs` 테이블 존재)    | 중간                                                                |
| 배지 시스템        | 구현 완료                         | 중간 - `highlighted`, `official`, `deprecated`, `redactionApproved` |

***

## 5. 위험도 매트릭스

### 5.1 가능성 대 영향

| 위협 ID         | 가능성 | 영향  | 위험도     | 우선순위 |
| ------------- | --- | --- | ------- | ---- |
| T-EXEC-001    | 높음  | 치명적 | **치명적** | P0   |
| T-PERSIST-001 | 높음  | 치명적 | **치명적** | P0   |
| T-EXFIL-003   | 중간  | 치명적 | **치명적** | P0   |
| T-IMPACT-001  | 중간  | 치명적 | **높음**  | P1   |
| T-EXEC-002    | 높음  | 높음  | **높음**  | P1   |
| T-EXEC-004    | 중간  | 높음  | **높음**  | P1   |
| T-ACCESS-003  | 중간  | 높음  | **높음**  | P1   |
| T-EXFIL-001   | 중간  | 높음  | **높음**  | P1   |
| T-IMPACT-002  | 높음  | 중간  | **높음**  | P1   |
| T-EVADE-001   | 높음  | 중간  | **중간**  | P2   |
| T-ACCESS-001  | 낮음  | 높음  | **중간**  | P2   |
| T-ACCESS-002  | 낮음  | 높음  | **중간**  | P2   |
| T-PERSIST-002 | 낮음  | 높음  | **중간**  | P2   |

### 5.2 핵심 공격 체인

**공격 체인 1: 스킬 기반 데이터 탈취**

```
T-PERSIST-001 → T-EVADE-001 → T-EXFIL-003
(악성 스킬 게시) → (검토 우회) → (자격 증명 수집)
```

**공격 체인 2: 프롬프트 인젝션에서 RCE로**

```
T-EXEC-001 → T-EXEC-004 → T-IMPACT-001
(프롬프트 주입) → (exec 승인 우회) → (명령 실행)
```

**공격 체인 3: 가져온 콘텐츠를 통한 간접 인젝션**

```
T-EXEC-002 → T-EXFIL-001 → 외부 유출
(URL 콘텐츠 오염) → (에이전트가 가져와 지시를 따름) → (데이터가 공격자에게 전송됨)
```

***

## 6. 권고사항 요약

### 6.1 즉시 (P0)

| ID    | 권고사항                | 대응 대상                      |
| ----- | ------------------- | -------------------------- |
| R-001 | VirusTotal 통합 완료    | T-PERSIST-001, T-EVADE-001 |
| R-002 | 스킬 샌드박싱 구현          | T-PERSIST-001, T-EXFIL-003 |
| R-003 | 민감한 작업에 대한 출력 검증 추가 | T-EXEC-001, T-EXEC-002     |

### 6.2 단기 (P1)

| ID    | 권고사항                          | 대응 대상        |
| ----- | ----------------------------- | ------------ |
| R-004 | rate limiting 구현              | T-IMPACT-002 |
| R-005 | 저장 시 토큰 암호화 추가                | T-ACCESS-003 |
| R-006 | exec 승인 UX 및 검증 개선            | T-EXEC-004   |
| R-007 | `web_fetch`용 URL allowlist 구현 | T-EXFIL-001  |

### 6.3 중기 (P2)

| ID    | 권고사항               | 대응 대상         |
| ----- | ------------------ | ------------- |
| R-008 | 가능한 채널에 암호학적 검증 추가 | T-ACCESS-002  |
| R-009 | 설정 무결성 검증 구현       | T-PERSIST-003 |
| R-010 | 업데이트 서명 및 버전 고정 추가 | T-PERSIST-002 |

***

## 7. 부록

### 7.1 ATLAS 기법 매핑

| ATLAS ID      | 기법 이름                          | OpenClaw 위협                                                      |
| ------------- | ------------------------------ | ---------------------------------------------------------------- |
| AML.T0006     | Active Scanning                | T-RECON-001, T-RECON-002                                         |
| AML.T0009     | Collection                     | T-EXFIL-001, T-EXFIL-002, T-EXFIL-003                            |
| AML.T0010.001 | Supply Chain: AI Software      | T-PERSIST-001, T-PERSIST-002                                     |
| AML.T0010.002 | Supply Chain: Data             | T-PERSIST-003                                                    |
| AML.T0031     | Erode AI Model Integrity       | T-IMPACT-001, T-IMPACT-002, T-IMPACT-003                         |
| AML.T0040     | AI Model Inference API Access  | T-ACCESS-001, T-ACCESS-002, T-ACCESS-003, T-DISC-001, T-DISC-002 |
| AML.T0043     | Craft Adversarial Data         | T-EXEC-004, T-EVADE-001, T-EVADE-002                             |
| AML.T0051.000 | LLM Prompt Injection: Direct   | T-EXEC-001, T-EXEC-003                                           |
| AML.T0051.001 | LLM Prompt Injection: Indirect | T-EXEC-002                                                       |

### 7.2 주요 보안 파일

| 경로                                  | 용도          | 위험도     |
| ----------------------------------- | ----------- | ------- |
| `src/infra/exec-approvals.ts`       | 명령 승인 로직    | **치명적** |
| `src/gateway/auth.ts`               | Gateway 인증  | **치명적** |
| `src/web/inbound/access-control.ts` | 채널 접근 제어    | **치명적** |
| `src/infra/net/ssrf.ts`             | SSRF 보호     | **치명적** |
| `src/security/external-content.ts`  | 프롬프트 인젝션 완화 | **치명적** |
| `src/agents/sandbox/tool-policy.ts` | 도구 정책 강제    | **치명적** |
| `convex/lib/moderation.ts`          | ClawHub 검토  | **높음**  |
| `convex/lib/skillPublish.ts`        | 스킬 게시 흐름    | **높음**  |
| `src/routing/resolve-route.ts`      | 세션 격리       | **중간**  |

### 7.3 용어집

| 용어                   | 정의                                             |
| -------------------- | ---------------------------------------------- |
| **ATLAS**            | AI 시스템을 위한 MITRE의 Adversarial Threat Landscape |
| **ClawHub**          | OpenClaw의 스킬 마켓플레이스                            |
| **Gateway**          | OpenClaw의 메시지 라우팅 및 인증 계층                      |
| **MCP**              | Model Context Protocol - 도구 제공자 인터페이스          |
| **Prompt Injection** | 입력에 악성 지시가 심어지는 공격                             |
| **Skill**            | OpenClaw 에이전트를 위한 다운로드 가능한 확장                  |
| **SSRF**             | Server-Side Request Forgery                    |

***

*이 위협 모델은 살아 있는 문서입니다. 보안 이슈는 [security@openclaw.ai](mailto:security@openclaw.ai) 로 신고해 주세요.*
