
🦞 Clawdbot/Moltbot용 보안 강화 패치입니다. 노출된 게이트웨이를 자동으로 감지하고 수정합니다.
Clawdbot/Moltbot 설치의 보안 강화. 노출된 게이트웨이를 탐지하고 수정합니다.
노출된 Clawdbot/Moltbot 게이트웨이를 탐지하고 수정합니다
문제 • 기능 • 빠른 시작 • Docker • CLI • 수정되는 항목 • 개발
900개 이상의 Clawdbot/Moltbot 인스턴스가 현재 인터넷에 노출되어 있습니다 (Shodan에서 포트 18789로 확인 가능). 인증 없이 누구나 다음을 수행할 수 있습니다:
이 문제는 버그가 아니라 잘못된 설정입니다. 사용자가 gateway.bind를 0.0.0.0으로 변경하거나 Docker에서 -p 18789:18789를 사용하면서 적절한 인증을 설정하지 않으면 완전히 노출됩니다.
ClawdGuard가 이 문제를 해결합니다.
cargo install clawdguard
# 실행
clawdguard
# 저장소 클론
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# 빌드 (처음 약 2분 소요)
cargo build --release
# 실행
./target/release/clawdguard
# 저장소 클론
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# 이미지 빌드 (처음 약 3~5분 소요)
docker build --no-cache -t clawdguard .
# 실행 (설정 디렉토리 마운트)
docker run -v ~/.moltbot:/root/.moltbot clawdguard
# 또는 이전 Clawdbot의 경우:
docker run -v ~/.clawdbot:/root/.clawdbot clawdguard
clawdguard
끝입니다! ClawdGuard가 다음을 수행합니다:
ClawdGuard가 보안 토큰을 생성합니다. 저장하세요!
╭────────────────────────────────────────────────────────────────────╮
│ ⚠️ 중요: 새 게이트웨이 토큰을 저장하세요! │
│ │
│ clwd_a8f2k9x3m1p7v4q2b6n8... │
│ │
│ Control UI 또는 CLI에서 연결하려면 이 토큰이 필요합니다. │
╰────────────────────────────────────────────────────────────────────╯
Rust가 설치되지 않은 사용자를 위한 전체 Docker 문서입니다.
# 1. 저장소 클론
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# 2. 이미지 빌드 (처음 약 3~5분 소요)
docker build --no-cache -t clawdguard .
# 3. 스캔 실행 (설정 디렉토리 마운트)
# Moltbot (최신)의 경우:
docker run -v ~/.moltbot:/root/.moltbot clawdguard
# Clawdbot (기존)의 경우:
docker run -v ~/.clawdbot:/root/.clawdbot clawdguard
# 상세 모드 사용
docker run -v ~/.moltbot:/root/.moltbot clawdguard --verbose
# 스캔만 (수정하지 않음)
docker run -v ~/.moltbot:/root/.moltbot clawdguard --scan-only
# 자동 모드 (확인 없음)
docker run -v ~/.moltbot:/root/.moltbot clawdguard --auto
# 도움말 표시
docker run clawdguard --help
docker-compose를 사용한 간단한 구문:
# docker-compose로 실행
docker-compose run clawdguard
# 상세 모드
docker-compose run clawdguard --verbose
# 스캔만
docker-compose run clawdguard --scan-only
# 자동 모드
docker-compose run clawdguard --auto
| 마운트 | 목적 |
|---|---|
~/.moltbot:/root/.moltbot | Moltbot 설정 디렉토리 (최신) |
~/.clawdbot:/root/.clawdbot | Clawdbot 설정 디렉토리 (기존) |
./results:/app/results | 결과를 로컬에 저장 |
# 더 쉬운 사용을 위한 별칭 생성 (자신의 설정 디렉토리 사용)
alias clawdguard='docker run -v ~/.moltbot:/root/.moltbot clawdguard'
# 또는 이전 Clawdbot의 경우:
alias clawdguard='docker run -v ~/.clawdbot:/root/.clawdbot clawdguard'
# 그런 다음 실행:
clawdguard
clawdguard --scan-only
clawdguard --verbose
clawdguard [OPTIONS]
OPTIONS:
--scan-only 문제만 스캔, 수정 적용 안 함
--auto 확인 없이 모든 수정 적용
--backup-dir <DIR> 백업 파일 사용자 지정 디렉토리
--skip-firewall 방화벽 규칙 추가 생략
--skip-restart 게이트웨이 서비스 재시작 생략
--token <TOKEN> 생성 대신 특정 토큰 사용
-v, --verbose 상세 출력 표시
--json 결과를 JSON으로 출력 (스크립트용)
-h, --help 도움말 출력
-V, --version 버전 출력
# 기본 사용법 - 스캔, 수정, 확인
clawdguard
# 스캔만 (수정 없음)
clawdguard --scan-only
# 모든 항목 자동 수정 (확인 없음)
clawdguard --auto
# 자신의 토큰 사용
clawdguard --token "my-secure-token-here"
# 문제 해결을 위한 상세 출력
clawdguard --verbose
# 스크립트용 JSON 출력
clawdguard --json
# 옵션 조합
clawdguard --auto --skip-firewall --verbose
# 사용자 지정 백업 디렉토리
clawdguard --backup-dir /tmp/backups
ClawdGuard는 0~10 사이의 위험 점수를 계산합니다:
| 점수 | 수준 | 의미 |
|---|---|---|
| 0-3 | 🟢 낮음 | 사소한 문제 또는 이미 안전함 |
| 4-6 | 🟡 중간 | 일부 보안 문제 |
| 7-10 | 🔴 심각 | 인터넷에 노출됨, 즉시 수정 필요 |
위험 점수 계산:
🦞 ClawdGuard
Clawdbot/Moltbot 보안 강화
v1.0.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ℹ 언제든지 Ctrl+C를 눌러 취소할 수 있습니다
[1/4] 🔍 설치 탐지 중...
✓ 설정: ~/.clawdbot/clawdbot.json
✓ 서비스: bot.molt.gateway (실행 중, PID 1234)
✓ 포트 18789 활성 상태
[2/4] ⚠️ 보안 위험 분석 중...
╭──────────────────┬─────────────────────────┬──────────╮
│ 문제 │ 현재 값 │ 심각도 │
├──────────────────┼─────────────────────────┼──────────┤
│ 게이트웨이 바인드 │ 0.0.0.0 │ 심각 │
│ 인증 │ none │ 심각 │
│ mDNS 브로드캐스트 │ full │ 중간 │
╰──────────────────┴─────────────────────────┴──────────╯
위험 점수: 9/10 🔴 심각
⚠ 이 작업은 보안 문제를 수정하기 위해 설정을 수정합니다.
ℹ 변경 전에 백업이 생성됩니다.
수정을 진행하시겠습니까? [y/N]: y
[3/4] 🔧 수정 적용 중...
✓ 백업: ~/.clawdbot/clawdbot.json.backup.20260128_143022
✓ gateway.bind = "loopback" 설정 (이전: "0.0.0.0")
✓ gateway.auth.mode = "token" 설정 (이전: "none")
✓ gateway.auth.token = <생성됨>
✓ 파일 권한 수정 (600)
생성된 토큰: clwd_a8f2k9x3m1p7v4q2b6n8...
[4/4] ✅ 수정 확인 중...
✓ 게이트웨이 서비스 재시작됨
✓ 포트 18789가 더 이상 외부에서 접근 불가능
✓ 게이트웨이가 로컬 호스트에서 응답 중
✓ 이제 인증이 필요함
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
╭────────────────────────────────────────────────────────────────────╮
│ │
│ 🎉 성공! Clawdbot/Moltbot이 이제 안전합니다. │
│ │
╰────────────────────────────────────────────────────────────────────╯
clawdguard --json
{"status": "fixed", "token": "clwd_a8f2k9x3m1p7v4q2b6n8...", "backup": "~/.clawdbot/clawdbot.json.backup.20260128_143022"}
스캔 중 언제든지 Ctrl+C를 눌러 안전하게 중지할 수 있습니다.
[2/4] ⚠️ 보안 위험 분석 중...
^C
⚠ 중단됨! 종료 중...
확인하기 전까지는 변경 사항이 적용되지 않으므로 중단은 항상 안전합니다.
# 셸 프로필에 추가 (~/.bashrc, ~/.zshrc 등)
export CLAWDBOT_GATEWAY_TOKEN="clwd_your_token_here"
원격 접근이 필요한 경우 다음 안전한 방법 중 하나를 사용하세요:
| 방법 | 명령어 |
|---|---|
| Tailscale (권장) | tailscale serve --bg 18789 |
| SSH 터널 | ssh -L 18789:localhost:18789 your-server |
| Cloudflare 터널 | cloudflared tunnel --url http://localhost:18789 |
절대 gateway.bind를 다시 0.0.0.0으로 변경하거나 포트를 직접 노출하지 마세요.
다음 사항을 확인하세요:
~/.moltbot/ 또는 ~/.clawdbot/ 디렉토리 생성)~/.moltbot/moltbot.json 또는 ~/.clawdbot/clawdbot.json에 존재하는지수동으로 시도하세요:
clawdbot gateway restart
# 또는
moltbot gateway restart
clwd_ 접두사 포함)설정 디렉토리가 읽기 가능한지 확인하세요:
# Moltbot (최신)의 경우
chmod 755 ~/.moltbot
chmod 644 ~/.moltbot/moltbot.json
# Clawdbot (기존)의 경우
chmod 755 ~/.clawdbot
chmod 644 ~/.clawdbot/clawdbot.json
| 플랫폼 | 상태 | 서비스 관리자 |
|---|---|---|
| macOS | ✅ 완벽 지원 | launchd |
| Linux | ✅ 완벽 지원 | systemd (사용자) |
| Windows | ⚠️ WSL2 | WSL2 내에서 실행 |
┌─────────────────────────────────────────────────────────────────┐
│ ClawdGuard v1.0 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 탐지 │ → │ 분석 │ → │ 패치 │ → │ 확인 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ 설정 찾기 위험 확인 설정 수정 안전 확인 │
│ 서비스 찾기 위험 점수 매기기 토큰 생성 포트 테스트 │
│ 프로세스 찾기 문제 나열 권한 수정 서비스 재시작 │
│ │
└─────────────────────────────────────────────────────────────────┘
clawdguard/
├── Cargo.toml # 종속성
├── Dockerfile # Docker 빌드
├── docker-compose.yml # Docker compose
├── .dockerignore
├── README.md
├── LICENSE
├── .gitignore
├── assets/
│ └── screenshot.png # README용 스크린샷
├── src/
│ ├── main.rs # CLI 진입점
│ ├── lib.rs # 라이브러리 루트
│ ├── detect/ # 설치 탐지
│ │ ├── mod.rs
│ │ ├── config.rs # 설정 파일 탐지
│ │ ├── process.rs # 프로세스 탐지
│ │ └── service.rs # 서비스 탐지 (launchd/systemd)
│ ├── analyze/ # 보안 분석
│ │ ├── mod.rs
│ │ ├── config_risk.rs
│ │ ├── network.rs # 포트 노출 확인
│ │ └── permissions.rs
│ ├── patch/ # 설정 패치
│ │ ├── mod.rs
│ │ ├── config.rs
│ │ ├── firewall.rs
│ │ └── token.rs # 보안 토큰 생성
│ ├── verify/ # 수정 확인
│ │ ├── mod.rs
│ │ ├── port_check.rs
│ │ └── service.rs
│ └── output/
│ ├── mod.rs
│ └── printer.rs # 색상 CLI 출력
└── tests/
└── integration.rs
옵션 A: 네이티브 (Rust)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh)옵션 B: Docker
네이티브:
# 저장소 클론
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# 디버그 빌드 (더 빠른 컴파일)
cargo build
# 릴리스 빌드 (최적화)
cargo build --release
Docker:
# 저장소 클론
git clone https://github.com/fadidevv/clawdguard.git
cd clawdguard
# 이미지 빌드
docker build --no-cache -t clawdguard .
# 모든 테스트 실행
cargo test
# 출력과 함께 실행
cargo test -- --nocapture
# 코드 포맷
cargo fmt
# 린터 실행
cargo clippy
# 빌드 없이 확인
cargo check
기여를 환영합니다! 다음 단계를 따라주세요:
git checkout -b feature/improvement)cargo test)cargo clippy)cargo fmt)git commit -m 'Add improvement')git push origin feature/improvement)기여 아이디어:
이 도구는 보안 목적으로만 사용하세요.
저자는 이 도구의 오용에 대해 책임을 지지 않습니다.
MIT 라이선스 - 자세한 내용은 LICENSE 파일을 참조하세요.
안전하게 지내세요! 🦞🔐
| 위험 | 영향 |
|---|
| API 키 접근 | OpenAI, Anthropic 및 기타 자격 증명 도용 |
| 명령 실행 | 시스템에서 임의의 셸 명령 실행 |
| 브라우저 제어 | 브라우징 세션 탈취 |
| 이메일 읽기 | Gmail, 캘린더, 연락처 접근 |
| 채팅 읽기 | 모든 대화 기록 확인 |
| 봇 탈취 | 사용자 대신 메시지 전송 |
| 명령어 | 설명 |
|---|
docker build --no-cache -t clawdguard . | 이미지 빌드 |
docker run clawdguard --help | 도움말 표시 |
docker run -v ... clawdguard | 스캔 실행 |
docker run -v ... clawdguard --scan-only | 스캔만 |
docker run -v ... clawdguard --auto | 자동 수정 |
docker run -v ... clawdguard --verbose | 상세 모드 |
docker-compose run clawdguard | compose로 실행 |
| 설정 | 이전 (안전하지 않음) | 이후 (안전함) |
|---|
gateway.bind | "0.0.0.0" / "lan" / "all" | "loopback" |
gateway.auth.mode | "none" / 없음 | "token" |
gateway.auth.token | 없음 | 생성된 보안 토큰 |
discovery.mdns.mode | "full" | "minimal" |
| 파일 권한 | 644 / 755 | 600 |