SkillSpector

nvidia파일 391개

★ 19,772주당 +763조회 4

무엇인가

SkillSpector는 AI 에이전트 스킬을 설치 전에 검사해 취약점·악성 패턴·보안 위험을 판정하는 보안 스캐너이다. 스킬은 Claude Code·Codex CLI·Gemini CLI 등에서 암묵적 신뢰로 실행되며 사전 검증 절차가 거의 없다. NVIDIA가 분석한 31,132개 스킬 부분집합에서 26.1%가 취약점을 포함했고 5.2%가 악성 의도를 보였다. 이 스킬은 "이 스킬을 설치해도 안전한가"라는 질문에 답하는 절차를 에이전트 작업 흐름에 넣는다. NVIDIA Verified Skills 파이프라인의 일부로, 게시 전 스킬을 스캔·평가·서명하는 단계에서도 쓰인다.

어떻게 동작하나

입력은 Git 저장소, URL, zip 파일, 디렉터리, 단일 파일을 모두 받는다. 17개 범주에 걸친 71개 취약점 패턴을 적용한다: 프롬프트 인젝션, 데이터 유출, 권한 상승, 공급망, 과잉 행위 능력, 출력 처리, 시스템 프롬프트 유출, 메모리 오염, 도구 오용, 로그 에이전트, 반거부, 트리거 남용, 위험 코드(AST), 테인트 추적, YARA 시그니처, MCP 최소 권한, MCP 도구 오염. 분석은 빠른 정적 분석과 선택적 LLM 의미 평가의 2단계로 진행되며, SC4가 OSV.dev에 실시간 CVE를 조회하고 실패 시 오프라인 폴백으로 전환한다. 출력은 터미널·JSON·Markdown·SARIF 네 가지 형식이고 0~100 위험 점수와 심각도 라벨, 권고가 함께 나온다. baseline 파일을 두면 이미 검토한 발견을 억제해 재스캔 시 새 이슈만 보고·채점한다.

무엇과 다른가

CLAUDE.md·AGENTS.md 같은 규칙 파일이 에이전트의 행동을 문장으로 규율하는 것과 달리, SkillSpector는 검사 대상 아티팩트 자체를 분석하는 실행 파이프라인이다. 프롬프트에 "보안 검사해줘"라고 지시하는 방식과도 다르다. AST 분석, 테인트 추적, YARA 시그니처 매칭, CVE 조회를 고정된 규칙 집합으로 수행하고 결과를 점수와 리포트로 산출한다. MCP 서버, Pi 확장, OpenCode 확장으로 설치하면 에이전트 세션 안에서 스캔을 호출할 수 있다.

어떻게 쓰나

설치는 uv 기준으로 `uv tool install git+https://github.com/NVIDIA/skillspector.git` 한 줄이며, `skillspector mcp`를 쓸 계획이면 `uv tool install 'skillspector[mcp] @ git+https://github.com/NVIDIA/skillspector.git'`로 extra를 함께 넣는다. 소스에서 빌드할 때는 저장소를 클론한 뒤 `uv venv .venv && source .venv/bin/activate`로 가상환경을 만들고 `make install`(개발용은 `make install-dev`)을 실행한다. Python 없이 쓰려면 `make docker-build`로 이미지를 만든 뒤 `docker run --rm -v "$PWD:/scan" skillspector scan ./my-skill/ --no-llm`으로 현재 디렉터리를 마운트해 스캔한다. 첫 사용은 `skillspector scan ./my-skill/ --no-llm`이고, 오탐 억제는 `skillspector baseline ./my-skill/ -o .skillspector-baseline.yaml`로 baseline을 만든 뒤 `--baseline`으로 재스캔하며 `--show-suppressed`로 억제 항목을 확인한다.

전제와 한계

전제 조건은 Python 3.12 가상환경이며 모든 make 타깃은 venv 활성 상태를 가정한다. uv가 없으면 pip로 대체된다. LLM 의미 분석을 쓰려면 OpenAI 호환 엔드포인트 자격 증명이 필요하고, 기본 설정은 DeepSeek을 향한다. README는 DeepSeek-Chat의 sunset 예정과 로컬 모델 테스트 하드웨어 부재를 명시하며, 구조화 출력을 지원하지 않는 provider 때문에 수동 JSON 파싱 패치가 필요했다고 밝힌다. MCP 명령은 설치 시 extra를 요구한다. baseline은 지문 기반일 때 스캔 소스나 SkillSpector 버전이 바뀌면 해당 발견이 다시 활성화되며, baseline 파일을 스킬 디렉터리 안에 두면 그 파일만 내용 분석에서 제외되고 형제 파일은 정상 스캔 범위에 남는다.

관련 논문 2

유사 스킬