SkillSpector
무엇인가
SkillSpector는 설치하려는 에이전트 스킬 번들을 읽어 악성 의도와 보안 결함을 판정하는 검사기다. 규율 대상은 스킬 파일의 형식이 아니라 스킬이 에이전트에게 부여하는 행위, 즉 프롬프트 인젝션, 데이터 유출, 권한 상승, 공급망 개입, 과잉 행위, 출력 처리, 시스템 프롬프트 유출, 메모리 오염, 도구 오용, 로그 에이전트, 반거부, 트리거 남용, 위험 코드, MCP 최소 권한, MCP 도구 오염 같은 범주다. 설치 여부를 정하기 전에 "이 스킬이 안전한가"를 답하는 것이 목적이다.
어떻게 동작하나
CLI `skillspector scan`이 Git 저장소, URL, zip 파일, 디렉터리, 단일 파일을 입력으로 받는다. 1단계는 빠른 정적 분석으로 AST 기반 위험 코드 탐지, 테인트 추적, YARA 시그니처, 패턴 매칭을 적용하고, 2단계는 선택적인 LLM 의미 평가로 지시문의 의도를 판정한다. 결과는 터미널, JSON, Markdown, SARIF로 출력되며 0~100 위험 점수와 심각도 라벨, 권고가 붙는다. SC4 조회는 OSV.dev에서 실시간 CVE 데이터를 가져오고 오프라인일 때 자동 폴백한다.
무엇과 다른가
CLAUDE.md·AGENTS.md 같은 규칙 파일이 에이전트의 작업 방식을 사후에 교정하는 것과 달리, SkillSpector는 설치 시점에 걸리는 게이트다. 사람이 프롬프트를 직접 읽고 판단하는 방식과 달리 패턴 매칭·AST·테인트 추적·LLM 평가를 파이프라인으로 조합하고, 결과를 SARIF로 내보내 CI에 연결할 수 있다. MCP 서버 모드와 Pi 확장을 통해 에이전트 세션 안에서 스킬을 스캔하는 경로도 제공한다.
어떻게 쓰나
`uv tool install git+https://github.com/NVIDIA/skillspector.git`로 CLI를 설치한다. `skillspector mcp`를 쓸 경우 MCP extra를 포함해 설치한다. Dockerfile로 이미지를 빌드하면 Python 없이 실행할 수 있고, 현재 디렉터리를 /scan에 마운트해 `docker run --rm -v "$PWD:/scan" skillspector scan ./my-skill/ --no-llm`으로 검사한다. 첫 사용은 `skillspector baseline ./my-skill/ -o .skillspector-baseline.yaml`로 기존 발견을 기준선에 넣고, 이후 스캔에서 새 발견만 보고받는 흐름이다.
전제와 한계
Python 3.12 환경과 uv 또는 pip가 필요하다. LLM 의미 평가를 쓰려면 OpenAI 호환 엔드포인트가 있어야 하며 기본 설정은 DeepSeek를 향하고, 구조화 출력 미지원 때문에 수동 JSON 파싱 패치가 들어가 있다. `--no-llm`으로 정적 분석만 돌릴 수 있다. 기준선은 지문 기반일 때 스캔 대상 소스나 SkillSpector 버전이 바뀌면 무효화되어 재검토가 필요하다. 검사 대상은 배포된 파일 내용이며 스킬의 실행 시점 행위는 아니다.
관련 논문 4
유사 도구
- agentic-awesome-skills에이전트가 프로젝트를 직접 검사해 로컬 카탈로그에서 스킬 ID를 고르고, compose_stack으로 선택을 검증해 aas-stack.json과 불변 계획으로 남기게 규율하는 Claude Code 플러그인이다.
- agnixCLAUDE.md·AGENTS.md·SKILL.md·훅·MCP 설정을 456개 규칙으로 검사해 잘못된 필드와 무시되는 지시를 잡아내고 자동 수정까지 하는 린터 플러그인이다.
- CowAgent작업 계획·도구 호출·스킬 실행·장기 기억 절차를 스킬 매니페스트와 MCP 설정으로 주입하는 Claude Code용 스킬 팩이다.