원문 노션
Guide 26 · 보안 가이드

엔비디아 스킬스펙터(SkillSpector) — 클로드 스킬 위험 패턴 71개 한글 정리 + 검사 가이드

코드 블록 9 이미지 4 표 3 출처 노션 원문
클로드 스킬은 깔면 클로드가 그 안의 지시와 스크립트를 그대로 믿고 실행해요. 엔비디아가 공개한 스킬스펙터(SkillSpector)는 스킬을 깔기 전에 위험 패턴 71개(17개 분야)를 찾아내고, 스킬마다 0~100점 위험 점수를 매겨 주는 무료 보안 검사 도구예요(깃허브 별 2.4만, Apache-2.0, 2026-11-04 기준).
이 페이지에 설치 명령어, 실제 검사 화면, 위험 패턴 전체 한글 표, 클로드 코드에 바로 붙여 넣는 프롬프트를 정리했어요.
NVIDIA/SkillSpector 저장소
NVIDIA/SkillSpector 저장소

한눈에 보기

항목내용
만든 곳엔비디아(NVIDIA) — 엔비디아가 스킬을 공개하기 전에 검사·평가·서명하는 파이프라인에 쓰는 도구
하는 일스킬 폴더·SKILL.md·깃허브 저장소·zip을 검사해서 위험한 지시·코드·의존성을 찾아요
결과스킬마다 0~100점 위험 점수 + 등급(LOW·MEDIUM·HIGH·CRITICAL) + 고치는 방법
잡아내는 것위험 패턴 71개, 17개 분야 (프롬프트 인젝션, 데이터 유출, 권한 상승, 공급망 등)
비용무료 오픈소스(Apache-2.0). --no-llm 으로 돌리면 API 키·요금 없이 내 컴퓨터에서만 검사
왜 필요한가README 기준, 연구에서 분석한 스킬 31,132개 중 26.1%에서 취약점, 5.2%에서 악의적 의도가 의심됐다고 해요

설치 — 명령어 한 줄 (전역 설치)

먼저 파이썬 도구 관리자 uv가 있어야 해요. 없으면 하나만 실행하세요.

Bash
# 맥 (Homebrew)
brew install uv
# 또는 맥·리눅스 공통
curl -LsSf https://astral.sh/uv/install.sh | sh

그다음 README 공식 명령으로 스킬스펙터를 깔아요. uv tool install 은 전역 설치라 어느 폴더에서든 skillspector 명령을 쓸 수 있어요.

Bash
uv tool install git+https://github.com/NVIDIA/skillspector.git
# 나중에 업데이트
uv tool update skillspector
실제 설치 화면 — 마지막에 Installed 1 executable: skillspector
실제 설치 화면 — 마지막에 Installed 1 executable: skillspector

써 보기 — 내 스킬 폴더 통째로 검사

클로드 코드 스킬은 보통 ~/.claude/skills(전체) 또는 프로젝트의 .claude/skills(그 폴더만)에 있어요. 폴더째 넣고 --recursive 를 붙이면 스킬마다 따로 검사해요.

Bash
skillspector scan ~/.claude/skills --recursive --no-llm -o report.md
실제 실행 결과 — 스킬 10개, 스킬마다 점수·등급·발견 개수
실제 실행 결과 — 스킬 10개, 스킬마다 점수·등급·발견 개수

위 화면은 공개 스킬 10개를 복사한 연습 폴더로 실제로 돌린 결과예요. 스킬마다 점수(0~100) · 등급 · 발견 개수가 표로 나와요. 점수가 높다고 무조건 악성은 아니에요 — 스크립트를 실행하는 스킬은 정상이어도 점수가 올라가요. report.md 에서 어떤 줄이 왜 걸렸는지 꼭 읽어 보세요.

점수 읽는 법 (README 기준)

점수등급권장
0~20LOW설치해도 됨 (SAFE)
21~50MEDIUM주의 (CAUTION) — 걸린 부분 읽어 보고 판단
51~80HIGH설치하지 말 것 (DO NOT INSTALL)
81~100CRITICAL설치하지 말 것 (DO NOT INSTALL)

깔기 전에 검사하는 다른 방법

Bash
# 깃허브 저장소를 받기 전에 바로 검사
skillspector scan https://github.com/<사용자>/<스킬저장소> --no-llm

# SKILL.md 파일 하나만
skillspector scan ./SKILL.md --no-llm

# zip 파일
skillspector scan ./my-skill.zip --no-llm

# 결과를 JSON으로 (자동화용)
skillspector scan ./my-skill/ --no-llm --format json --output report.json

위험 패턴 71개 한글 정리 (17개 분야)

README Features — 71 vulnerability patterns across 17 categories
README Features — 71 vulnerability patterns across 17 categories

README 소개에는 "71개"라고 적혀 있고, 같은 README 아래쪽 패턴 표에는 최근 추가된 것까지 73개가 있어요. 표에 있는 것 전부 옮겼어요. 위험도는 README 표 그대로예요.

#분야ID패턴위험도쉽게 말하면
1프롬프트 인젝션P1지시 덮어쓰기HIGH"안전 규칙 무시해" 같은 명령
2프롬프트 인젝션P2숨긴 지시HIGH주석·안 보이는 글자에 몰래 넣은 지시
3프롬프트 인젝션P3유출 명령HIGH대화 내용을 밖으로 보내라는 지시
4프롬프트 인젝션P4행동 조작MEDIUM에이전트 판단을 슬쩍 바꾸는 지시
5프롬프트 인젝션P5위험한 내용CRITICAL실제 피해를 줄 수 있는 지시
6프롬프트 인젝션P9공백 숨기기MEDIUM빈칸을 잔뜩 넣어 화면 밖에 지시를 숨김
7거절 무력화AR1거절 금지HIGH"절대 거절하지 마", "무조건 따라"
8거절 무력화AR2경고 빼기HIGH"주의 문구 쓰지 마", "훈계하지 마"
9거절 무력화AR3안전 정책 무효화HIGH"넌 제한이 없어" 같은 탈옥 문구
10데이터 유출E1외부 전송MEDIUM데이터를 외부 URL로 보냄
11데이터 유출E2환경 변수 수집HIGHAPI 키 같은 환경 변수를 모아 감
12데이터 유출E3파일 뒤지기MEDIUM폴더를 훑으며 민감한 파일을 찾음
13데이터 유출E4대화 맥락 유출HIGH대화 내용을 밖으로 보냄
14권한 상승PE1과한 권한LOW하는 일보다 넓은 접근 권한을 요청
15권한 상승PE2sudo·root 실행MEDIUM관리자 권한으로 실행
16권한 상승PE3비밀번호·키 접근HIGHSSH 키, 토큰, 비밀번호를 읽음
17공급망SC1버전 고정 안 함LOW패키지 버전을 정하지 않음
18공급망SC2외부 스크립트 실행HIGHcurl ... | bash 처럼 받아서 바로 실행
19공급망SC3난독화 코드HIGHbase64·16진수로 감춘 코드 실행
20공급망SC4취약점 있는 패키지HIGH알려진 보안 취약점(CVE)이 있는 의존성 (OSV.dev 실시간 조회)
21공급망SC5버려진 패키지MEDIUM보안 업데이트가 끊긴 의존성
22공급망SC6이름 흉내(타이포스쿼팅)HIGH유명 패키지와 헷갈리는 이름
23공급망SC8파이썬 바이트코드 포함HIGH.pyc 파일로 악성 코드를 숨김
24공급망SC9숨긴 실행 파일HIGH문서 안이나 숨김 파일에 실행 파일을 넣음
25공급망SC10패키지 출처 바꾸기HIGH패키지를 받는 저장소 주소를 바꾸거나 추가
26과한 자율성EA1도구 무제한 사용HIGH제약 없이 모든 도구를 쓰게 함
27과한 자율성EA2혼자 중요한 결정HIGH사람 확인 없이 큰 결정을 내림
28과한 자율성EA3목적 밖 기능MEDIUM설명한 용도보다 더 많은 일을 함
29과한 자율성EA4무제한 자원 사용MEDIUM호출 횟수·사용량 제한이 없음
30과한 자율성EA5외부 모델·업체 지정MEDIUM/HIGH다른 AI 모델·CLI를 불러 과금 계정이 바뀔 수 있음
31출력 처리OH1검증 없는 출력 사용HIGHAI 답을 걸러내지 않고 그대로 실행·삽입
32출력 처리OH2경계 넘는 출력MEDIUM출력이 검증 없이 다른 시스템으로 넘어감
33출력 처리OH3출력 무제한MEDIUM출력 크기·속도 제한이 없음
34시스템 프롬프트 유출P6직접 유출HIGH시스템 프롬프트·내부 규칙을 보여 주게 함
35시스템 프롬프트 유출P7우회 추출MEDIUM번역·바꿔 말하기로 몰래 빼냄
36시스템 프롬프트 유출P8도구로 유출HIGH파일 쓰기·네트워크로 시스템 프롬프트를 내보냄
37기억 오염MP1계속 남는 주입HIGH다음 대화까지 남도록 심어 둔 내용
38기억 오염MP2맥락 채워 넣기MEDIUM쓸모없는 글로 안전 규칙을 밀어냄
39기억 오염MP3기억 조작HIGH에이전트 메모리·저장된 상태를 고침
40도구 오용TM1도구 옵션 악용HIGHshell=True, --force 같은 위험한 옵션
41도구 오용TM2도구 연결 악용HIGH도구를 이어 붙여 각각의 안전장치를 피함
42도구 오용TM3위험한 기본값MEDIUMTLS 끄기, 인증 없음 같은 느슨한 설정
43통제 벗어난 에이전트RA1자기 수정CRITICAL실행 중에 자기 코드·설정을 바꿈
44통제 벗어난 에이전트RA2몰래 계속 실행HIGH크론·시작 프로그램에 몰래 등록
45트리거 악용TR1너무 넓은 트리거MEDIUM흔한 단어에도 스킬이 켜짐
46트리거 악용TR2명령 가로채기HIGH기본 명령·다른 스킬 이름을 덮어씀
47트리거 악용TR3키워드 미끼MEDIUM최대한 자주 켜지도록 만든 트리거
48위험 코드(AST)AST1exec() 호출CRITICAL아무 코드나 실행할 수 있음
49위험 코드(AST)AST2eval() 호출HIGH아무 식이나 계산·실행
50위험 코드(AST)AST3동적 importHIGH실행 중에 아무 모듈이나 불러옴
51위험 코드(AST)AST4subprocess 호출HIGH외부 명령 실행
52위험 코드(AST)AST5os.system 류HIGHos 모듈로 셸 명령 실행
53위험 코드(AST)AST6compile() 호출MEDIUM문자열을 코드로 바꿈
54위험 코드(AST)AST7동적 getattr()MEDIUM이름을 계산해서 속성에 접근
55위험 코드(AST)AST8위험한 실행 연결CRITICAL네트워크·암호화된 데이터를 exec/eval로 실행
56위험 코드(AST)AST9getattr 우회 실행HIGHgetattr(os,'system') 처럼 돌려서 실행
57데이터 흐름 추적TT1직접 흐름HIGH입력이 걸러지지 않고 바로 위험한 곳으로 감
58데이터 흐름 추적TT2변수 거친 흐름MEDIUM중간 변수를 거쳐 위험한 곳으로 감
59데이터 흐름 추적TT3비밀 유출 연결CRITICAL환경 변수·비밀 값이 네트워크로 나감
60데이터 흐름 추적TT4파일 → 네트워크HIGH파일 내용이 네트워크로 나감
61데이터 흐름 추적TT5외부 입력 → 실행CRITICAL외부 입력이 exec·subprocess로 실행됨
62YARA 시그니처YR1악성코드 일치CRITICAL알려진 악성코드 패턴과 같음
63YARA 시그니처YR2웹셸 일치CRITICAL서버 원격 조종용 웹셸 패턴
64YARA 시그니처YR3채굴기 일치HIGH암호화폐 몰래 채굴 흔적
65YARA 시그니처YR4해킹 도구 일치HIGH해킹 도구·익스플로잇 코드
66MCP 최소 권한LP1권한 숨김HIGH선언하지 않은 기능을 코드가 씀
67MCP 최소 권한LP2와일드카드 권한MEDIUM권한 목록에 *, all, full 같은 값
68MCP 최소 권한LP3권한 선언 없음MEDIUM권한 항목이 없는데 코드는 기능을 씀
69MCP 최소 권한LP4권한 과다 선언LOW선언만 하고 실제로 안 쓰는 권한
70MCP 도구 오염TP1숨긴 지시HIGH도구 설명에 숨긴 주석·안 보이는 글자·base64
71MCP 도구 오염TP2유니코드 속임수HIGH비슷하게 생긴 글자, 오른쪽→왼쪽 문자로 속임
72MCP 도구 오염TP3매개변수 설명 주입MEDIUM매개변수 설명에 지시를 끼워 넣음
73MCP 도구 오염TP4설명과 동작 불일치MEDIUM도구 설명과 실제 코드 동작이 다름 (AI 분석 필요)

클로드 코드에 바로 쓰는 프롬프트

스킬스펙터를 설치했다면 클로드 코드에게 그대로 붙여 넣으세요.

JavaScript
내 ~/.claude/skills 폴더를 skillspector로 검사해 줘. 명령은 skillspector scan ~/.claude/skills --recursive --no-llm -o report.md 로 돌리고, 점수 51점 이상인 스킬만 골라서 왜 걸렸는지 한국어로 쉽게 설명해 줘
JavaScript
이 스킬 깔기 전에 검사해 줘: https://github.com/<사용자>/<스킬저장소> . skillspector scan 으로 --no-llm 검사하고, 설치해도 되는지 / 걸린 부분을 고쳐야 하는지 / 깔면 안 되는지 셋 중 하나로 판단해 줘
JavaScript
report.md 를 읽고 HIGH·CRITICAL 항목을 표로 정리해 줘. 칸은 스킬 이름, 패턴 ID, 파일:줄, 실제로 위험한지(오탐 가능성), 고치는 방법
JavaScript
내가 만든 스킬 폴더 ./my-skill 을 skillspector로 검사하고, 걸린 항목을 하나씩 고쳐서 다시 검사해 줘. 점수가 20점 이하(LOW)가 될 때까지 반복해 줘
JavaScript
앞으로 새 스킬을 설치하기 전에는 항상 skillspector scan <경로> --no-llm 을 먼저 돌리고 결과를 보여 준 다음에 설치해 줘. 이 규칙을 CLAUDE.md 에 적어 둬

이렇게 쓰면 좋아요

  1. 새 스킬을 받을 때마다 저장소 주소로 먼저 검사하세요. 내려받기 전에 검사할 수 있어요.
  2. 이미 깔린 스킬은 한 달에 한 번 폴더째 검사하세요. 스킬이 업데이트되며 바뀔 수 있어요.
  3. 점수만 보지 말고 report.md 의 이유를 읽으세요. 정상적인 설치 스크립트도 점수가 올라갈 수 있어요(오탐).
  4. 직접 만든 스킬을 남에게 공유하기 전에 검사해서 LOW로 만든 뒤 올리면 믿고 쓰기 좋아요.
  5. 더 꼼꼼히 보고 싶으면 --no-llm 을 빼고 AI 분석을 켜세요(API 키 필요, 요금 발생). SKILLSPECTOR_PROVIDER=claude_cli 로 클로드 코드 로그인을 그대로 쓸 수도 있어요.

자주 묻는 질문

링크

담PD가 노션에 공개한 자료를 이미지·글 그대로 옮겨 온 아카이브입니다. 최신 내용과 업데이트는 원문에서 확인하세요.

노션 원문에서 보기 →