뒤로가기

11. OpenClaw 보안 설정 모범 사례

보안은 OpenClaw 배포의 핵심 고려사항입니다. DM 페어링 메커니즘, 샌드박스 모드, 권한 제어, 민감 데이터 처리, 네트워크 보안 등 보안 설정을 상세히 소개하여 안전하고 신뢰할 수 있는 AI 어시스턴트 시스템을 구축할 수 있도록 돕습니다.

OpenClaw v2026.2 적용 | 본 문서는 모든 OpenClaw 사용자, 특히 프로덕션 배포 또는 팀 사용을 준비하는 사용자에게 적합합니다.

TL;DR: DM 페어링으로 무단 접근 방지: "dmPolicy": "pairing". 샌드박스로 위험 작업 격리: "sandbox": {"mode": "non-main"}. 민감 데이터 필터링: "security": {"sensitiveData": {"patterns": ["sk-*"]}}. 원격 접근은 Tailscale 사용, 공개망 노출 금지. openclaw doctor --security 실행으로 보안 상태 확인.

보안 위험 개요

주요 위험 유형

위험 유형 설명 잠재적 결과
무단 접근 낯선 사람이 Agent를 사용할 수 있음 리소스 남용, 개인정보 유출
권한 남용 Agent가 예상치 못한 작업 수행 데이터 손상, 시스템 파괴
데이터 유출 민감 정보 부적절 처리 개인정보 유출, 규정 준수 문제
네트워크 공격 외부 공격자가 취약점 악용 시스템 침입, 데이터 탈취
Prompt 인젝션 악성 지시로 보안 제한 우회 무단 작업 수행

보안 모델

flowchart TB
    subgraph outer["네트워크 계층"]
        FW[방화벽]
        TLS[HTTPS/TLS]
    end
    
    subgraph middle["접근 제어"]
        DM[DM 페어링]
        WL[화이트리스트]
        AUTH[인증]
    end
    
    subgraph inner["실행 제어"]
        SBX[샌드박스]
        PERM[권한]
        AUDIT[감사]
    end
    
    subgraph core["Agent"]
        AG[Agent 코어]
    end
    
    outer --> middle --> inner --> core

DM 페어링 메커니즘

DM 페어링이란?

DM(Direct Message) 페어링은 새 사용자가 Agent와 대화하기 전에 먼저 페어링을 완료해야 하는 보호 메커니즘입니다.

페어링 흐름

sequenceDiagram
    participant S as 낯선 사람
    participant B as Bot
    participant G as Gateway
    participant O as 소유자
    
    S->>B: 메시지 전송 "안녕"
    B->>G: 메시지 도착
    G->>G: 페어링 상태 확인
    G-->>B: 미페어링, 페어링 코드 생성
    B-->>S: "페어링 필요: 코드 ABC123"
    S->>O: 소유자에게 페어링 코드 전달
    O->>G: openclaw pairing approve telegram ABC123
    G->>G: 화이트리스트에 추가
    G-->>S: 페어링 성공
    S->>B: 메시지 전송 "안녕"
    B-->>S: 정상 응답

DM 페어링 설정

{
  "channels": {
    "telegram": {
      "botToken": "your_token",
      "dmPolicy": "pairing"
    },
    "whatsapp": {
      "dmPolicy": "pairing"
    },
    "discord": {
      "dmPolicy": "pairing"
    }
  }
}

페어링 모드

모드 설명 보안 수준 적용 시나리오
pairing 페어링 코드 필요 ⭐⭐⭐⭐ 개인 사용(기본값)
open 누구나 사용 가능 공개 서비스
whitelist 화이트리스트 사용자만 ⭐⭐⭐⭐⭐ 높은 보안 요구

페어링 관리

# 대기 중인 페어링 요청 확인
openclaw pairing list

# 출력 예시:
# Channel    Code     User        Created
# telegram   ABC123   @stranger   2026-02-26 10:30:00
# discord    XYZ789   user#1234   2026-02-26 10:35:00

# 페어링 승인
openclaw pairing approve telegram ABC123

# 페어링 거부
openclaw pairing reject telegram ABC123

# 페어링된 사용자 확인
openclaw pairing show telegram

화이트리스트 설정

{
  "channels": {
    "telegram": {
      "dmPolicy": "open",
      "allowFrom": [
        123456789,
        987654321
      ]
    },
    "whatsapp": {
      "dmPolicy": "open",
      "allowFrom": [
        "+8613800138000",
        "+8613800138001"
      ]
    }
  }
}

사용자 ID 확인

# Telegram: @userinfobot에 메시지 전송
# Discord: 채널에서 /id 명령 또는 사용자 프로필 확인
# WhatsApp: 연락처 정보에서 확인

샌드박스 모드

샌드박스란?

샌드박스는 Agent의 작업 범위를 제한하여 의도치 않거나 악의적인 시스템 수정을 방지하는 격리 메커니즘입니다.

샌드박스 모드

모드 설명 적용 시나리오
off 샌드박스 없음, 완전 신뢰 메인 세션, 신뢰 환경
non-main 비메인 세션에 샌드박스 활성화 다중 사용자, 팀 공유
always 항상 샌드박스 활성화 비신뢰 환경, 공개 서비스

샌드박스 설정

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main",
        "allowlist": ["read", "write", "edit", "bash"],
        "denylist": ["browser", "canvas", "nodes"],
        "container": {
          "image": "openclaw/sandbox:latest",
          "timeout": 30000,
          "memory": "512m",
          "cpu": "0.5"
        }
      }
    }
  }
}

도구 권한 제어

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main",
        "allowlist": [
          "read",
          "write",
          "edit",
          "bash",
          "web_search",
          "sessions_list",
          "sessions_history",
          "sessions_send"
        ],
        "denylist": [
          "browser",
          "canvas",
          "nodes",
          "cron",
          "discord",
          "gateway"
        ]
      }
    }
  }
}

파일 시스템 권한

{
  "agents": {
    "defaults": {
      "permissions": {
        "filesystem": {
          "read": ["~/workspace", "~/documents"],
          "write": ["~/workspace/output"],
          "deny": ["~/.ssh", "~/.gnupg", "~/.openclaw/credentials"]
        }
      }
    }
  }
}

네트워크 권한

{
  "agents": {
    "defaults": {
      "permissions": {
        "network": {
          "outbound": {
            "allow": [
              "api.anthropic.com",
              "api.openai.com",
              "github.com"
            ],
            "deny": ["*"]
          }
        }
      }
    }
  }
}

Elevated 권한

Elevated 권한이란?

Elevated 권한은 더 높은 권한이 필요한 작업을 위한 임시 권한 상승 메커니즘입니다.

Elevated 권한 설정

{
  "agents": {
    "defaults": {
      "elevatedAccess": {
        "enabled": true,
        "allowlist": [123456789, 987654321],
        "requireConfirmation": true,
        "timeout": 300000
      }
    }
  }
}

Elevated 권한 사용

# 채팅에서 권한 상승 요청
/elevated on

# 권한 상승이 필요한 작업 수행
# ...

# 권한 상승 해제
/elevated off

민감 데이터 처리

민감 정보 유형

유형 예시 처리 방식
API Keys sk-ant-xxx, sk-xxx 기록/출력 금지
비밀번호 로그인 비밀번호, DB 비밀번호 저장/전송 금지
Token OAuth token, Session token 암호화 저장
개인정보 주민등록번호, 카드번호 기록 금지, 익명화

민감 정보 필터링 설정

{
  "security": {
    "sensitiveData": {
      "patterns": [
        "sk-[a-zA-Z0-9]{20,}",
        "xox[baprs]-[a-zA-Z0-9-]+",
        "[0-9]{15,19}",
        "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}"
      ],
      "redact": true,
      "log": false
    }
  }
}

자격 증명 저장

# 자격 증명 저장 위치
~/.openclaw/credentials/

# 암호화 저장
# OpenClaw는 시스템 키체인으로 민감 자격 증명을 암호화 저장합니다

자격 증명 관리

# 저장된 자격 증명 확인
openclaw credentials list

# 출력 예시:
# Name           Type        Created
# telegram-bot   api_key     2026-02-20
# gmail-oauth    oauth       2026-02-21

# 자격 증명 삭제
openclaw credentials delete telegram-bot

# 자격 증명 내보내기(암호화)
openclaw credentials export --output credentials.enc

# 자격 증명 가져오기
openclaw credentials import --input credentials.enc

네트워크 보안

바인딩 설정

{
  "gateway": {
    "bind": "loopback",  // 로컬 접근만
    "port": 18789,
    "tls": {
      "enabled": false
    }
  }
}
바인딩 옵션 설명 보안 수준
loopback 로컬 접근만 ⭐⭐⭐⭐⭐
private 사설망 접근 ⭐⭐⭐⭐
all 모든 인터페이스 접근

Tailscale 설정

{
  "gateway": {
    "tailscale": {
      "mode": "serve",  // serve 또는 funnel
      "resetOnExit": true
    },
    "auth": {
      "mode": "password",
      "allowTailscale": true
    }
  }
}

인증 설정

{
  "gateway": {
    "auth": {
      "mode": "password",
      "password": "your-secure-password",
      "sessionTimeout": 3600000
    }
  }
}

감사 및 로그

작업 로그

{
  "logging": {
    "level": "info",
    "audit": {
      "enabled": true,
      "events": [
        "tool.invoke",
        "session.create",
        "session.reset",
        "pairing.approve",
        "pairing.reject",
        "elevated.enable",
        "elevated.disable"
      ],
      "retention": 30
    }
  }
}

감사 로그 확인

# 감사 로그 확인
openclaw logs --type audit

# 출력 예시:
# [2026-02-26 10:30:00] INFO  tool.invoke session=main tool=bash command="ls -la"
# [2026-02-26 10:30:05] INFO  pairing.approve channel=telegram code=ABC123 user=123456789
# [2026-02-26 10:31:00] INFO  elevated.enable session=telegram:user:123456789

# 특정 이벤트 필터링
openclaw logs --type audit --filter "tool.invoke"

# 시간 범위 지정
openclaw logs --type audit --from 2026-02-01 --to 2026-02-28

사용량 모니터링

# 사용량 확인
openclaw usage --today

# 출력 예시:
# Date: 2026-02-26
# Requests: 128
# Tokens In: 125,000
# Tokens Out: 45,000
# Cost: $2.10
# Top Tools: bash(45), read(32), write(18)

# 이상 탐지
openclaw usage --alerts

# 출력 예시:
# ⚠️  높은 사용량 감지: 1시간 내 1000+ 요청
# ⚠️  비정상 도구 패턴: 민감 디렉토리에 bash 명령

보안 점검 목록

기본 보안

  • DM 페어링 또는 화이트리스트 활성화
  • 샌드박스 모드 설정
  • 적절한 도구 권한 설정
  • 작업 감사 로그 활성화
  • API Key 정기 교체

고급 보안

  • 파일 시스템 권한 제한 설정
  • 네트워크 아웃바운드 화이트리스트 설정
  • 민감 정보 필터링 활성화
  • Elevated 권한 확인 설정
  • 페어링 사용자 정기 검토

엔터프라이즈 보안

  • Docker 샌드박스 격리 사용
  • Tailscale 사설망 설정
  • HTTPS/TLS 활성화
  • 사용량 알림 설정
  • 정기 보안 감사

보안 진단

# 보안 진단 실행
openclaw doctor --security

# 출력 예시:
# ✅ DM Pairing: Enabled
# ✅ Sandbox Mode: non-main
# ⚠️  File Permissions: 일부 디렉토리 제한 없음
# ✅ Network Outbound: 화이트리스트로 제한됨
# ⚠️  Elevated Access: 확인 필요 없음
# ✅ Audit Logging: Enabled
# ✅ Credentials: Encrypted

# 권장사항:
# - 파일 접근을 ~/workspace로만 제한
# - Elevated 접근 확인 활성화

요약

보안 설정은 OpenClaw 배포의 중요한 부분입니다:

  • DM 페어링: 무단 접근 방지
  • 샌드박스 모드: 작업 범위 제한
  • 권한 제어: 세밀한 도구 및 파일 권한
  • 민감 데이터: 민감 정보 필터링 및 보호
  • 네트워크 보안: 바인딩 및 인증 설정
  • 감사 로그: 작업 추적 및 모니터링

본문 요약:

  • 주요 보안 위험과 방어 메커니즘 이해
  • DM 페어링 및 화이트리스트 설정 숙지
  • 샌드박스 모드와 권한 제어 학습
  • 민감 데이터 처리 및 네트워크 설정 파악
  • 감사 로그 및 보안 점검 목록 숙지

업데이트 기록:

  • 2026-02-26: 초판 발행, OpenClaw v2026.2 기반

시리즈 네비게이션: