블로그로 돌아가기

오픈클로(OpenClaw) 보안 해부: 개발자가 알아야 할 5가지 위험과 대응책

GitHub 역사상 가장 빠르게 성장한 오픈소스 AI 어시스턴트, 오픈클로(OpenClaw). 하지만 평문 자격증명, 프롬프트 인젝션, 공급망 공격 등 심각한 보안 취약점이 존재한다.

2026년 1월 30일11분 읽기
백호백호

오픈클로(OpenClaw, 구 몰트봇/Moltbot) 보안 해부: 개발자가 알아야 할 5가지 위험과 대응책

"It's incredible. It's terrifying. It's MoltBot." - 1Password 블로그

TL;DR

오픈클로(구 Moltbot/Clawdbot)는 GitHub 역사상 가장 빠르게 성장한 오픈소스 중 하나지만, 심각한 보안 취약점을 가지고 있다.

| 취약점 | 심각도 | 현재 상태 | |--------|--------|-----------| | 평문 자격증명 저장 | Critical | 미해결 | | 노출된 관리 포트 | Critical | PR #4576 대기 | | 프롬프트 인젝션 | High | PR #4542 대기 | | 스킬 중독 (공급망) | High | 미해결 | | 명령 인젝션 | High | PR #4542 대기 |

결론: 프로덕션 사용은 권장하지 않음. 로컬 테스트 전용으로, 보안 체크리스트 필수 적용.


1. 배경

프로젝트 개요

  • 개발자: Peter Steinberger (@steipete) - PSPDFKit 창업자
  • 리브랜딩 히스토리: Clawdbot → Moltbot (2026-01-27) → OpenClaw
  • GitHub Stars: 100,000+ (역대 최고 속도 성장)
  • 핵심 컨셉: "Claude with hands" - 대화만 하는 AI가 아닌, 실제 작업 수행

주요 기능

  • 영구 메모리: 대화, 선호도, 습관 기억
  • 멀티 플랫폼: Discord, Telegram, Slack, iMessage, WhatsApp 등 10개+
  • 풀 시스템 액세스: 터미널, 파일, 브라우저 제어
  • 스킬 시스템: Markdown/TypeScript 기반 플러그인 100개+

2. 5대 보안 취약점 분석

2.1 평문 자격증명 저장 (Critical)

문제점:

~/.clawdbot/
├── config.json          # API 키 평문 저장
├── credentials/
│   └── auth             # OAuth 토큰 평문
└── state/
    └── conversations/   # 대화 기록 (민감 정보 포함 가능)

위험:

  • 인포스틸러 악성코드에 감염되면 모든 자격증명 탈취
  • 같은 사용자의 모든 프로세스에서 읽기 가능 (권한 600 아님)
  • Shodan 검색으로 노출된 인스턴스에서 실제 API 키 발견

대응책:

# 권한 강화
chmod 600 ~/.clawdbot/config.json
chmod -R 600 ~/.clawdbot/credentials/

# 시스템 키체인 사용 (권장)
# macOS: Keychain Access 활용
# Linux: libsecret 또는 gnome-keyring

2.2 노출된 관리 포트 (Critical)

문제점:

  • 웹 인터페이스가 "로컬 전용"이나 실제로 공개 인터넷에 바인딩되는 경우 다수
  • 보안 연구원이 Shodan으로 수백 개 인스턴스 발견
  • 8개 인스턴스는 인증 없이 완전 오픈 - 명령 실행, 설정 조회 가능

실제 사례 (Bitdefender 보고):

검색어: "Clawdbot Control"
결과: API 키, 봇 토큰, OAuth 비밀, 전체 대화 기록 노출

대응책:

# 127.0.0.1만 바인딩 확인
lsof -i :18789

# 외부 노출 차단
# UFW 방화벽
sudo ufw deny 18789

# 또는 iptables
sudo iptables -A INPUT -p tcp --dport 18789 -s 127.0.0.1 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 18789 -j DROP

2.3 프롬프트 인젝션 (High)

문제점:

  • 외부 콘텐츠 (이메일, 웹페이지, 스킬)가 정책 검증 없이 직접 실행
  • 메모리 시스템이 "수주~수개월 전 상호작용"을 기억 → 지연된 공격 가능

공격 데모 (연구자 Matvey Kukuy):

  1. 악성 이메일 전송 (숨겨진 프롬프트 포함)
  2. Moltbot이 이메일 읽음
  3. AI가 명령을 "정상 지시"로 해석
  4. 사용자의 최근 이메일 5개를 공격자 주소로 전송
  5. 소요 시간: 5분

현재 상태:

  • PR #4542: scrubSensitiveEnv() 함수로 환경변수 필터링 제안
  • PR #4542: 사용자 입력을 태그로 격리 + 시스템 프롬프트 강화
  • 상태: 리뷰 0, 머지 대기

대응책:

# 신뢰할 수 없는 콘텐츠 처리 비활성화
email_processing: false
web_browsing: restricted

# 중요 작업은 명시적 승인 요구
require_approval:
  - send_email
  - delete_file
  - execute_command

2.4 스킬 중독 - 공급망 공격 (High)

문제점:

  • 누구나 공개 스킬 라이브러리에 업로드 가능 (심사 프로세스 부재)
  • 다운로드 수 조작으로 신뢰도 위조 가능
  • 스킬 내에서 직접 프롬프트 인젝션 수행 가능

2026년 증명된 공격:

  1. 공격자가 인기 스킬 복사
  2. 다운로드 수 인위적 증가 (4,000+)
  3. 악성 curl 명령 추가 → 사용자 데이터 외부 전송
  4. 7개국 개발자가 중독된 패키지 다운로드

대응책:

# Cisco Skill Scanner 사용 (오픈소스)
skill-scanner analyze ./my-skill/

# 스킬 설치 전 코드 검토
cat skill.md | grep -E "(curl|wget|fetch|http|eval|exec)"

# 승인된 스킬만 사용
allowlist:
  - official/calendar
  - official/email
  - verified/github

2.5 명령 인젝션 (High)

문제점:

  • 사용자 입력이 셸 명령으로 직접 전달
  • 이스케이핑 불충분

예시:

// 취약한 코드
exec(`git commit -m "${userMessage}"`);

// 공격 입력
userMessage = '"; rm -rf / #'

// 결과
exec(`git commit -m ""; rm -rf / #"`)

현재 상태:

  • PR #4542: escapeShellCommand() 함수 제안
  • 상태: 리뷰 0, 머지 대기

대응책:

# Docker 샌드박스 사용
docker run \
  --read-only \
  --cap-drop=ALL \
  --network=none \
  moltbot/moltbot:latest

# 또는 최소 권한 사용자
sudo useradd -r -s /bin/false moltbot
sudo -u moltbot openclaw gateway

3. 현재 PR 상태 분석 (2026-01-30)

머지된 보안 PR (최근)

| PR | 제목 | 날짜 | |----|------|------| | #3700 | fix: security hardening media attachments | 01-29 | | #3687 | Harden zip extraction path validation | 01-28 | | #3282 | Fix path traversal in zip/tar extraction | 01-27 | | #2544 | Fix XSS vulnerability in Canvas Host | 01-27 | | #2000 | Apply Agents Council Security Recommendations | 01-26 |

오픈된 보안 PR (리뷰 대기)

| PR | 제목 | 리뷰 | 중요도 | |----|------|------|--------| | #4570 | Comprehensive Security Shield | 0 | Critical | | #4542 | Prompt/Credential/Command Injection 수정 | 0 | Critical | | #4576 | Gateway public IP binding 경고 | 2 | High | | #4334 | Security wrap CLI | 0 | Medium |

문제점: 리뷰어 병목

| 기여자 | 기여 수 | 비율 | |--------|---------|------| | steipete | 6,911 | ~97% | | 기타 49명 | ~200 | ~3% |

steipete 혼자 거의 모든 코드 작성 → 보안 PR이 리뷰 없이 대기 중


4. Claude Code와 비교: 왜 다른가?

| 기능 | Moltbot | Claude Code | |------|---------|-------------| | 기본 권한 | 전체 시스템 액세스 | 읽기 전용 (승인 필요) | | 자격증명 | 평문 저장 | 암호화 저장 | | 샌드박싱 | 선택 (미사용 다수) | 기본 제공 | | 프롬프트 인젝션 방어 | 약함 | 8개 메커니즘 | | 네트워크 격리 | 없음 | 도메인 화이트리스트 | | 명령 실행 | 자동 | 명시적 승인 |

Claude Code의 보안 설계

# Claude Code 기본 동작
permissions:
  file_read: allow        # 읽기는 허용
  file_write: require     # 쓰기는 승인 필요
  bash: require           # 명령 실행은 승인 필요
  network: deny           # 네트워크는 기본 차단

sandbox:
  enabled: true
  allowedDomains: []      # 명시적 허용만

왜 Moltbot은 다른가?

  1. 설계 철학: "편의성 우선" vs "보안 우선"
  2. 대상 사용자: 파워 유저 vs 일반 개발자
  3. 신뢰 모델: "사용자가 알아서" vs "기본값 안전"

5. 사용한다면: 필수 보안 체크리스트

설치 전

  • [ ] Node.js 22.12.0+ 설치 (CVE 대응)
  • [ ] 전용 사용자 계정 생성
  • [ ] 격리된 환경 준비 (VM/Docker)

설정 시

  • [ ] ~/.clawdbot/ 권한 600으로 변경
  • [ ] gateway.auth 강력한 토큰 설정
  • [ ] 웹 인터페이스 127.0.0.1만 바인딩
  • [ ] 방화벽으로 포트 차단

스킬 설치

  • [ ] 공식/검증된 스킬만 사용
  • [ ] 설치 전 코드 검토
  • [ ] Skill Scanner로 분석

운영 중

  • [ ] openclaw doctor 정기 실행
  • [ ] 자격증명 주 1회 로테이션
  • [ ] 네트워크 트래픽 모니터링
  • [ ] 비정상 동작 감시

권장하지 않는 것

  • [ ] 메인 개발 머신에서 실행
  • [ ] 공개 인터넷 노출
  • [ ] 검증되지 않은 스킬 설치
  • [ ] 프로덕션 환경 사용

6. 결론

오픈클로(OpenClaw)는 혁신적인 개인 AI 어시스턴트이지만, 현재 상태로는 보안 위험이 높다.

사용해도 되는 경우

  • 로컬 테스트/실험 목적
  • 격리된 VM/Docker 환경
  • 보안 체크리스트 100% 적용

사용하면 안 되는 경우

  • 프로덕션 환경
  • 민감한 데이터 처리
  • 엔터프라이즈 배포

대안

  • Claude Code: 보안 중심 설계, 엔터프라이즈 지원
  • GitHub Copilot: IDE 통합, 제한된 범위

"There is no 'perfectly secure' setup." - Moltbot 공식 FAQ

이 말이 맞다. 하지만 기본값이 안전해야 한다.


Sources