824개의 악성 스킬이 ClawHub에서 발견된 후, OpenClaw 스킬용 6-pass 보안 스캐너를 만들었습니다
Source: Dev.to
개요
2026년 2월, 보안 연구원들은 ClawHub—OpenClaw AI‑에이전트 플러그인 마켓플레이스—에 있는 스킬 중 약 20 %가 악성임을 발견했습니다. “ClawHavoc” 캠페인은 생산성 도구로 위장한 인포스틸러를 조용히 배포하고 있었습니다. 캘린더 관리를 주장하는 스킬은 실제로 API 키, SSH 자격 증명, 브라우저 데이터를 C2 서버로 유출하고 있었습니다.
clawvet 소개
clawvet는 OpenClaw SKILL.md 파일을 설치하기 전에 여섯 개의 독립적인 분석 단계를 실행하는 CLI 도구입니다. 대부분의 기존 스캐너가 단일 정규식 매칭 단계만 수행하는 반면, clawvet는 정적, 시맨틱, 메타데이터 검사를 결합해 보다 넓은 범위의 위협을 포착합니다.
6가지 검사
| 검사 | 수행 내용 |
|---|---|
| 스킬 파서 | YAML 프론트‑머터, 코드 블록, URL, IP, 도메인 추출 |
| 정적 분석 | 12개 카테고리(원격 코드 실행, 자격 증명 탈취, 리버스 쉘, DNS 유출, 난독화, 프롬프트 인젝션 등)에서 54개의 정규식 패턴 적용 |
| 메타데이터 검증기 | 선언되지 않은 바이너리, 환경 변수, 누락된 설명, 잘못된 semver 표시 |
| 의존성 검사기 | npx -y 자동 설치, 전역 npm 설치, 위험 패키지 탐지 |
| 타이포스쿼트 탐지기 | 인기 스킬과의 레벤슈타인 거리 계산으로 이름 사칭 감지 |
| 시맨틱 분석 (옵션) | Claude AI가 지시문을 분석해 사회공학 및 숨겨진 기능을 탐지 |
사용법
# Scan a local skill
npx clawvet scan ./suspicious-skill/
# JSON output for CI/CD pipelines
npx clawvet scan ./my-skill --format json --fail-on high
예시 스캔 보고서
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ClawVet Scan Report
Skill: productivity-boost
Version: 1.0.0
Risk Score: 100/100 Grade: F
[CRITICAL] Curl piped to shell
curl -sL https://...setup.sh | bash
[HIGH] Known malicious IP
91.92.242.15
[HIGH] API key exfiltration
ANTHROPIC_API_KEY → webhook.site
Recommendation: BLOCK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
왜 6단계 접근 방식이 효과적인가
ClawHavoc 스킬은 다음과 같은 방법으로 기본 정규식 검사를 회피했습니다:
- 악성 명령을 여러 코드 블록에 분산
- base64 또는 hex‑인코딩된 페이로드 사용
- YAML 메타데이터 필드에 C2 IP 숨김
- 이름을 사칭하는 타이포스쿼팅(
todoistt대신todoist-cli) - 프롬프트 인젝션을 삽입해 AI 에이전트가 의도하지 않은 명령을 실행하도록 함
단일 분석 기법으로는 이러한 모든 기법을 포착할 수 없습니다. 여섯 개의 서로 다른 단계를 겹쳐 적용함으로써, 어느 하나의 방법만으로는 놓칠 수 있는 위협을 잡아냅니다.
- 54 정적 탐지 패턴
- 61 테스트(유닛, 통합, 정규식 안전성, CLI 엔드‑투‑엔드)
- 12 위협 카테고리
- 6 테스트 픽스처(무해부터 완전 악성까지)
- 모든 정규식 패턴에 대한 재귀 백트래킹 방지
CI 통합 (GitHub Actions)
- name: Vet skill before merge
run: npx clawvet scan ./my-skill --format json --fail-on high
시작하기
- Source code:
- Install globally:
npm install -g clawvet
OpenClaw를 사용하고 있다면 clawvet를 한 번 써보고, 사용 후 의견을 저자에게 알려 주세요. 이슈와 풀 리퀘스트를 언제든 환영합니다.