[OpenClaw] 운영에서의 보안상 유의사항

반응형

1. 들어가며

OpenClaw는 대화형 AI가 가졌던 기존의 한계—즉, 말만 하고 직접 수행하지 못했던 영역—를 넘어 설 실제 명령 실행, 파일 접근, 브라우저 제어까지 가능하게 하는 기술이다. 이는 AI 에이전트의 활용 범위를 크게 확장하는 동시에, 많은 권한을 한 시스템에 부여한다는 뜻이기도 하다.

이 글은 OpenClaw 운영 시 고려해야 할 보안상 유의사항과, 공식 문서에서 제공하는 보안 점검 방법을 정리한 것이다.


2. 권한과 파급력

OpenClaw 에이전트는 다음과 같은 능력을 가질 수 있다.

  • 셸 명령 실행 (exec, process)
  • 파일 읽기/쓰기 (read, write, apply_patch)
  • 브라우저 제어, 웹 검색
  • Anthropic, OpenAI, Telegram, Slack, Discord 등 API/토큰 사용
  • 채널을 통한 메시지 송수신

따라서 토큰, OAuth 인증 정보, 세션 로그 같은 민감 정보가 유출될 경우 파급력이 매우 크다. 실제로 2026년 1월을 전후로 여러 보안 연구 결과가 공개되었다.

2.1 외부 노출 현황

조사 결과, 1,000건 이상의 OpenClaw(Clawdbot) 접속 지점이 인터넷에 노출되어 있는 것으로 보고되었다.

출처 내용
toclawdbot.com/security/port-exposure Shodan, Censys 스캔으로 1,000건 이상의 게이트웨이 포트(기본 18789)가 공개 노출된 사례 보고
breached.company SOCRadar가 1,100건 이상의 노출된 Clawdbot 게이트웨이 및 컨트롤 인스턴스 식별
Towards AI 수백 개의 인스턴스가 잘못된 바인딩 설정으로 외부에 노출된 사례 분석
Cisco Blogs 개인용 AI 에이전트의 보안 리스크에 대한 논의

공통적인 원인은 gateway.bind"loopback" 대신 "0.0.0.0" 또는 "all"로 설정해, 인증 없이 외부에서 접근 가능하게 된 경우이다. 일부 사례에서는 API 키 유출로 수억 개의 Anthropic 토큰이 무단 소비되는 피해도 보고되었다.


3. 보안 점검과 책임

OpenClaw는 보안성을 점검할 수 있는 옵션을 제공한다. 노출 범위 관리와 설정 선택에 대한 책임은 이용자에게 있다.

3.1 openclaw security audit 사용

공식 문서(docs.clawd.bot/security)에 따르면 다음 명령으로 보안 점검을 수행할 수 있다.

# 기본 점검
openclaw security audit

# 상세 점검 (라이브 게이트웨이 프로브 포함)
openclaw security audit --deep

# 안전한 가드레일 자동 적용 (groupPolicy, redactSensitive, 파일 권한 등)
openclaw security audit --fix

설정 변경이나 네트워크 노출 범위 변경 후에는 주기적으로 재실행하는 것이 권장된다.


4. 필자의 운영 환경

필자는 메인 서버가 있으나, OpenClaw를 별도 컨테이너 환경에서 구성한다. 이때 다음을 유의하고자 한다.

  • 루트 경로(/)나 시스템 전역 디렉터리를 워크스페이스로 사용하지 않음
  • 가능한 한 비 root 사용자로 실행
  • gateway.bindloopback으로 고정하고, 원격 접근은 Tailscale 등의 터널링으로 제한
  • 민감 자격증명은 ~/.openclaw/credentials/ 등 제한된 경로에 두고, 해당 디렉터리 권한을 700 수준으로 유지

5. 취약하게 설정될 수 있는 지점 3가지

공식 보안 문서를 바탕으로, 취약하게 설정될 수 있는 대표적인 지점 3가지를 선정하고, 각각의 위협과 권장 설정을 정리한다.

5.1 네트워크 노출 (gateway.bind)

항목 취약 설정 위협 권장
gateway.bind "lan", "all", 0.0.0.0 게이트웨이 포트(기본 18789)가 외부에 노출되어, 인증 우회·Control UI 무단 접근 가능 "loopback" (127.0.0.1만 수신). 원격 접근은 Tailscale Serve, Cloudflare Tunnel 등으로 제한

위협: 인증되지 않은 공격자가 Control UI에 접근해 설정·토큰·채널 정보를 열람하거나, 에이전트를 통해 명령 실행·파일 접근을 시도할 수 있다.

5.2 DM/그룹 정책 (dmPolicy, groupPolicy)

항목 취약 설정 위협 권장
dmPolicy "open" 누구나 DM으로 봇을 호출 가능 "pairing"(기본) 또는 "allowlist"
groupPolicy "open" + requireMention: false 그룹 채팅에서 멘션 없이도 항상 응답, 프롬프트 인젝션 등 악용 가능 requireMention: true, groupPolicy: "allowlist"

위협: 낯선 사용자가 “지시사항을 무시하고”, “파일 내용을 보여달라”는 식의 메시지로 프롬프트 인젝션을 시도할 수 있다. open 정책일 경우 막기 어렵다.

5.3 파일 권한 및 디스크 내 자격증명

항목 취약 설정 위협 권장
~/.openclaw/ 권한 755 등 그룹/전역 읽기 가능 동일 호스트의 다른 사용자·프로세스가 credentials, 세션 로그 접근 가능 디렉터리 700, 설정/자격증명 파일 600
logging.redactSensitive "off" 로그에 API 키, 토큰, 민감 출력이 평문으로 기록 "tools"(기본) 유지, 필요 시 logging.redactPatterns로 추가 마스킹

위협: ~/.openclaw/credentials/, agents/*/agent/auth-profiles.json, agents/*/sessions/*.jsonl 등에 API 키·OAuth 토큰·대화 내용이 저장된다. 권한이 느슨하면 유출 위험이 크다.


6. 현재 시스템 설정 예시 (마스킹)

아래는 필자 환경에서 openclaw security audit와 설정 파일을 점검한 뒤, 민감 정보를 마스킹한 예시이다. 실제 값은 환경에 따라 다르다.

{
  "gateway": {
    "bind": "loopback",
    "port": 18789,
    "auth": {
      "mode": "token",
      "token": "***REDACTED***"
    }
  },
  "channels": {
    "telegram": {
      "dmPolicy": "pairing",
      "groups": { "*": { "requireMention": true } }
    }
  },
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "all",
        "scope": "agent",
        "workspaceAccess": "none"
      }
    }
  },
  "logging": {
    "redactSensitive": "tools"
  }
}
  • gateway.bind: loopback → 로컬호스트만 수신
  • gateway.auth.mode: token → WebSocket 인증 사용
  • dmPolicy: pairing → DM은 페어링 후에만 허용
  • requireMention: 그룹에서는 멘션 시에만 응답
  • sandbox.mode: all → 도구 실행을 샌드박스에서 수행
  • workspaceAccess: none → 에이전트 워크스페이스 접근 제한

7. 정리

OpenClaw는 대화형 AI의 직접 수행 영역을 넓혀주는 기술이지만, 그만큼 권한과 노출 범위 관리가 중요하다. 1,000건 이상의 노출 사례가 보고된 만큼, gateway.bind를 loopback으로 유지하고, DM/그룹 정책을 강화하며, openclaw security audit를 주기적으로 실행하는 것을 권장한다. 상세한 가이드는 공식 Security 문서를 참고한다.


참고 자료

'Side Project > AI Powered' 카테고리의 다른 글

[OpenClaw] mcporter에 Google Calendar MCP 등록하기  (0) 2026.02.01
OpenClaw 설치 및 리뷰  (0) 2026.01.31