오픈 생태계 스킬 신뢰 평가 (Agent Skill Ecosystem Trust)
오픈 스킬 마켓플레이스(ClawhHub, npm, pip 등)에는 “공식 인증” 제도가 없다. 직접 3단계 기준(자동 스캔·커뮤니티·코드 동작 방식)으로 판단해야 한다. 핵심 원칙: 많이 설치 ≠ 더 안전. “역할이 다른 것을 적확하게 골라 설치하기.”
오픈 생태계의 현실
ClawhHub(OpenClaw 스킬 마켓플레이스), npm, pip, VS Code Extension — 모두 동일한 구조다:
- 커뮤니티 개발자가 만들어 올림
- “이건 무조건 안전합니다”라고 보증하는 공식 인증 없음
- “공식 스킬로 바꾸고 싶다” → 바꿀 대상이 없는 상황
직접 기준을 세워 판단해야 한다. (출처: bbojjak-openclaw-skill-ecosystem-lesson18)
많이 설치 ≠ 더 안전
메이커 에반의 Claude Code 실전 큐레이션도 같은 결론을 보강한다. 그는 GitHub Star가 높은 프로젝트라도 실제 품질이 낮을 수 있고, README/설치 스크립트에 에이전트가 Star를 누르도록 유도하는 프롬프트 인젝션이 들어갈 수 있다고 경고한다. 따라서 Claude Code 생태계에서는 “별 수치”보다 실제 업무에서 반복 검증된 작은 세트를 선별하는 능력이 중요하다. (출처: yt-BZPaZzjLIOY-Claude-Code-핵심도구6개)
보안 스킬이 하는 일:
- 패턴 매칭 — 알려진 공격 문구 감지
- 규칙 주입 — 시스템 프롬프트에 규칙 추가
문제: 스킬을 10개 설치하면 SKILL.md 10개가 시스템 프롬프트에 포함된다:
스킬 10개 → 시스템 프롬프트 10배 팽창
→ 토큰 비용 증가 (5위 소비처 악화)
→ 중요 규칙이 긴 컨텍스트에 묻힘
→ 스킬 간 규칙 충돌 가능성
agent-token-optimization의 “시스템 프롬프트 다이어트” 원칙과 직접 충돌한다.
비유: 갑옷 위에 갑옷을 세 겹 입으면 더 안전한 게 아니라 움직이지를 못한다.
보안 스킬 선택 3단계 기준
1단계: 자동 스캔 결과 확인
ClawhHub는 스킬 등록 시 2단계 스캔을 자동 실행한다:
| 스캔 | 내용 | 한계 |
|---|---|---|
| VirusTotal | 악성코드 자동 탐지 | 최소 요건. “안전함” 보증 아님 |
| OpenClaw AI | 코드 의도 ↔ 실제 동작 일치 여부 | Benign/Suspicious/high/medium confidence |
Benign high confidence = 코드가 설명과 일관됨 ✅ Suspicious = 코드가 설명과 다른 행동을 할 수 있다는 경고 ⚠️
Tip
VirusTotal이 “Benign”이어도 OpenClaw AI가 “Suspicious”일 수 있다. 악성코드는 아니지만 코드 의도가 불명확하다는 의미.
2단계: 커뮤니티 검증
- 별점(★) 많을수록, 다운로드 수 많을수록 → 많은 사람이 검증한 스킬
- 주의: 인기 있는 악성 패키지도 존재한다. 커뮤니티 검증만으로 충분하지 않음
3단계: 코드 동작 방식
| 동작 방식 | 위험도 | 설명 |
|---|---|---|
| 오프라인 동작 | ✅ 낮음 | 외부 API 호출 없음. 내 데이터가 외부로 나가지 않음 |
| 외부 API 호출 | ⚠️ 확인 필요 | 내 데이터가 어디로 가는지 확인 필요 |
이 3단계는 ClawhHub뿐 아니라 모든 오픈 생태계에 적용 가능: npm, pip, VS Code Extension, Chrome Extension 등.
역할이 다른 스킬을 적확하게 선택
설치 결과 → 2개만 유지:
| 스킬 | 역할 | 선택 이유 |
|---|---|---|
| prompt-guard | 현관문 자물쇠 (직접 공격 차단) | 공식 GitHub 등재·650+ 패턴·100% 오프라인 |
| indirect-prompt-injection | 택배 검수대 (외부 콘텐츠 안의 공격 차단) | ★15 최다·Benign high confidence |
두 스킬은 역할이 다르므로 겹치지 않는다 — 현관문 자물쇠와 택배 검수대는 서로 다른 입구를 지킨다.
구조 > 스킬 원칙
보안 스킬은 “보조 도구”다. 진짜 보안은 “구조”에서 온다.
agent-security-design에서 정의한 3원칙 중 스킬은 “심층 방어”의 한 레이어일 뿐이다:
레이어 1 (구조): 에이전트 분리·도구 제한·파일 권한 ← 핵심
레이어 2 (스킬): prompt-guard·indirect-prompt-injection ← 보조
레이어 3 (학습): learnings/prompt-injection.md ← 진화
구조 없이 스킬만 설치 → 의미 없음. 구조 있으면 스킬 없어도 기본 안전. 둘 다 있으면 → “갑옷(구조) + 방패(스킬) = 풀장비 🛡️”
즉시 학습 (Instant Learning)
방패가 스스로 진화하게 만드는 구조. (출처: bbojjak-openclaw-skill-ecosystem-lesson18)
트리거: 인젝션 공격 감지 동작:
- 방어 답변 전송
learnings/prompt-injection.md§6(사례 로그)에 즉시 append- 새로운 기법이면 §1(패턴 카탈로그)에도 추가
- 다음 세션 시작 시 이 파일 읽기 → 학습된 패턴 반영
모델 가중치는 바뀌지 않지만, 기억 파일에 축적된 경험이 에이전트를 진화시킨다.
이것은 agent-error-learning-loop의 “사고 루프 = 에이전트 강화” 원칙의 보안 특화 버전이다.
SSOT (Single Source of Truth)
규칙을 여러 스킬에 중복 복사하면 수정 시 모든 복사본을 찾아 고쳐야 한다. 중복 제거 패턴:
이전: channeltalk-cs.md 규칙 + community-reply.md 규칙 + AGENTS.md 규칙 (3곳 중복)
이후: learnings/prompt-injection.md (정본 1곳) + 각 스킬에서 참조만
수정 시 정본 1곳만 고치면 전체 반영. agent-skill-design에서 정의한 SKILL.md 원칙(재사용 가능한 단일 파일)과 동일한 SSOT 원칙.
관련 개념
- agent-security-design — 구조>스킬 원칙; 에이전트 분리·권한 제한이 핵심
- agent-error-learning-loop — 즉시 학습 = 인젝션 경험의 에러 학습 루프
- agent-skill-design — SSOT = 단일 정본 + 참조 패턴; 스킬 마켓플레이스 구조
- agent-token-optimization — 보안 스킬 과다 = 시스템 프롬프트 팽창 = 토큰 낭비
- harness-engineering — 오픈 생태계 스킬 생태계 = Claude Code Skills 동일 구조