본문으로 건너뛰기

© 2026 Molayo

GH Trending릴리즈2026. 06. 10. 14:03

NVIDIA/SkillSpector

요약

NVIDIA에서 출시한 SkillSpector는 AI 에이전트 스킬의 보안 취약점과 악성 패턴을 탐지하는 보안 스캐너입니다. 정적 분석과 LLM 의미론적 평가를 결합하여 프롬프트 인젝션 및 데이터 유출 등 64가지 보안 위험을 식별합니다.

핵심 포인트

  • AI 에이전트 스킬의 보안 취약점 및 악성 의도 탐지
  • 정적 분석과 LLM 기반 의미론적 평가의 2단계 분석 방식
  • 프롬프트 인젝션, 데이터 유출 등 16개 카테고리 64개 패턴 지원
  • 실시간 CVE 데이터 조회 및 위험 점수(0-100) 산정 기능

AI 에이전트 스킬을 위한 보안 스캐너. 에이전트 스킬을 설치하기 전에 취약점(vulnerabilities), 악성 패턴 및 보안 위험을 탐지합니다.

License: Apache 2.0

AI 에이전트 스킬(Claude Code, Codex CLI, Gemini CLI 등에서 사용)은 암묵적인 신뢰와 최소한의 검증만으로 실행됩니다. 연구에 따르면 스킬의 26.1%에 취약점이 포함되어 있으며, 5.2%는 악성 의도가 있을 가능성이 있는 것으로 나타났습니다.

SkillSpector는 다음과 같은 질문에 답할 수 있도록 도와줍니다: "이 스킬을 설치해도 안전한가?"

개발 가이드 — 아키텍처(Architecture), 패키지 레이아웃(package layout), 그리고 분석 파이프라인(analyzer pipeline)을 확장하는 방법.

다중 형식 입력: Git 저장소(repos), URL, zip 파일, 디렉토리 또는 단일 파일을 스캔할 수 있습니다.
16개 카테고리에 걸친 64가지 취약점 패턴: 프롬프트 인젝션(prompt injection), 데이터 유출(data exfiltration), 권한 상승(privilege escalation), 공급망(supply chain), 과도한 에이전시(excessive agency), 출력 처리(output handling), 시스템 프롬프트 유출(system prompt leakage), 메모리 포이즈닝(memory poisoning), 도구 오용(tool misuse), 로그 에이전트(rogue agent), 트리거 남용(trigger abuse), 위험한 코드(AST), 테인트 트래킹(taint tracking), YARA 시그니처(YARA signatures), MCP 최소 권한(MCP least privilege), MCP 도구 포이즈닝(MCP tool poisoning)
2단계 분석: 빠른 정적 분석(static analysis) + 선택적 LLM 의미론적 평가(semantic evaluation)
실시간 취약점 조회: SC4가 OSV.dev를 쿼리하여 실시간 CVE 데이터를 조회하며, 자동 오프라인 폴백(fallback) 기능을 제공합니다.
다양한 출력 형식: 터미널(Terminal), JSON, Markdown 및 SARIF 보고서
위험 점수 산정(Risk scoring): 심각도 라벨과 명확한 권장 사항이 포함된 0-100 점수

먼저 가상 환경(virtual environment)을 생성하고 활성화하세요 (모든 make 타겟은 venv가 활성화되어 있다고 가정합니다). uv 또는 pip를 사용하세요. Makefile은 사용 가능한 경우 uv를 사용하고, 그렇지 않으면 pip를 사용합니다.

저장소 복제

git clone https://github.com/NVIDIA/skillspector.git
cd skillspector

가상 환경 생성 및 활성화

uv venv .venv && source .venv/bin/activate

또는: python3 -m venv .venv && source .venv/bin/activate

프로덕션용 설치

make install

또는 개발 의존성(development dependencies)과 함께 설치

make install-dev

로컬 스킬 디렉터리 스캔

skillspector scan ./my-skill/

단일 SKILL.md 파일 스캔

skillspector scan ./SKILL.md

Git 리포지토리 (Git repository) 스캔

skillspector scan https://github.com/user/my-skill

zip 파일 스캔

skillspector scan ./my-skill.zip

터미널 출력 (기본값) - 보기 좋게 포맷팅됨

skillspector scan ./my-skill/

JSON 출력 - 기계 판독 가능 (machine readable)

skillspector scan ./my-skill/ --format json --output report.json

Markdown 출력 - 문서화용

skillspector scan ./my-skill/ --format markdown --output report.md

SARIF 출력 - CI/CD 통합 및 IDE 도구용

skillspector scan ./my-skill/ --format sarif --output report.sarif

최상의 결과를 얻으려면 의미론적 분석 (semantic analysis)을 위해 OpenAI 호환 LLM 엔드포인트 (endpoint)를 구성하십시오. SKILLSPECTOR_PROVIDER를 사용하여 제공업체를 선택하십시오.

각 제공업체는 자체적인 번들 기본 모델을 제공합니다. SkillSpector는 로컬 OpenAI 호환 서버 (Ollama, vLLM, llama.cpp) 및 관리형 추론 게이트웨이 (managed inference gateways)와도 작동합니다.

제공업체 (SKILLSPECTOR_PROVIDER)인증 환경 변수 (Credential env var)엔드포인트 (Endpoint)기본 모델 (Default model)
openaiOPENAI_API_KEY (+ 선택 사항 OPENAI_BASE_URL)api.openai.com (또는 기타 OpenAI 호환 URL)gpt-5.4
anthropicANTHROPIC_API_KEYapi.anthropic.comclaude-opus-4-6
nv_buildNVIDIA_INFERENCE_KEYbuild.nvidia.comdeepseek-ai/deepseek-v4-flash

OpenAI 사용

export SKILLSPECTOR_PROVIDER=openai
export OPENAI_API_KEY=sk-...
skillspector scan ./my-skill/

Anthropic 사용

export SKILLSPECTOR_PROVIDER=anthropic
export ANTHROPIC_API_KEY=sk-ant-...
skillspector scan ./my-skill/

NVIDIA build.nvidia.com 사용

export SKILLSPECTOR_PROVIDER=nv_build
export NVIDIA_INFERENCE_KEY=nvapi-...
skillspector scan ./my-skill/

로컬 Ollama 또는 모든 OpenAI 호환 엔드포인트 사용

export SKILLSPECTOR_PROVIDER=openai
export OPENAI_API_KEY=ollama
export OPENAI_BASE_URL=http://localhost:11434/v1
export SKILLSPECTOR_MODEL=llama3.1:8b
skillspector scan ./my-skill/

제공업체의 기본 모델을 재정의

export SKILLSPECTOR_MODEL=gpt-5.2
skillspector scan ./my-skill/

LLM 분석 건너뛰기 (더 빠름, 정적 분석만)

skillspector scan ./my-skill/ --no-llm

SkillSpector는 16개 카테고리에 걸쳐 64가지 취약점 패턴을 감지합니다:

프롬프트 인젝션 (Prompt Injection) (5가지 패턴)

IDPatternSeverityDescription
P1Instruction OverrideHIGH안전 제약을 무시하는 명령어
P2Hidden InstructionsHIGH주석/보이지 않는 텍스트에 포함된 악의적인 지침
P3Exfiltration CommandsHIGH컨텍스트를 외부로 전송하도록 하는 지침
P4Behavior ManipulationMEDIUM에이전트 결정을 변경하는 미묘한 지침
P5Harmful ContentCRITICAL신체적 해를 입힐 수 있는 내용을 유발하는 지침

데이터 유출 (Data Exfiltration) (4가지 패턴)

IDPatternSeverityDescription
E1External TransmissionMEDIUM외부 URL로 데이터를 전송하는 행위
E2Env Variable HarvestingHIGHAPI 키 및 비밀 정보를 수집하는 행위
E3File System EnumerationMEDIUM민감한 파일을 찾기 위해 디렉토리를 스캔하는 행위
E4Context LeakageHIGH대화 컨텍스트를 외부로 전송하는 행위

권한 상승 (Privilege Escalation) (3가지 패턴)

ID패턴 (Pattern)심각도 (Severity)설명 (Description)
PE1과도한 권한 (Excessive Permissions)LOW명시된 기능 범위를 벗어난 액세스 요청
PE2Sudo/Root 실행 (Sudo/Root Execution)MEDIUM승격된 시스템 권한 (elevated system privileges) 호출
PE3자격 증명 접근 (Credential Access)HIGHSSH 키, 토큰, 비밀번호 읽기

공급망 (Supply Chain) (6가지 패턴)

ID패턴 (Pattern)심각도 (Severity)설명 (Description)
SC1고정되지 않은 의존성 (Unpinned Dependencies)LOW패키지에 대한 버전 제약 조건 없음
SC2외부 스크립트 가져오기 (External Script Fetching)HIGHcurl
SC3난독화된 코드 (Obfuscated Code)HIGHBase64/hex 인코딩된 실행
SC4알려진 취약한 의존성 (Known Vulnerable Dependencies)HIGH알려진 CVE가 있는 의존성 (실시간 OSV.dev 조회)
SC5방치된 의존성 (Abandoned Dependencies)MEDIUM보안 업데이트가 없는 관리되지 않는 패키지
SC6타이포스쿼팅 (Typosquatting)HIGH인기 있는 패키지와 유사한 패키지 이름

과도한 대리권 (Excessive Agency) (4가지 패턴)

ID패턴 (Pattern)심각도 (Severity)설명 (Description)
EA1제한 없는 도구 접근 (Unrestricted Tool Access)HIGH제약 없는 자유로운 도구 접근
EA2자율적 의사 결정 (Autonomous Decision Making)HIGH인간 참여 (human-in-the-loop) 없는 고영향 결정
EA3범위 확장 (Scope Creep)MEDIUM명시된 목적을 벗어나는 기능 확장
EA4무제한 리소스 접근 (Unbounded Resource Access)MEDIUM리소스 소비에 대한 속도 제한 (rate limits) 또는 할당량(quotas) 없음

출력 처리 (Output Handling) (3가지 패턴)

ID패턴 (Pattern)심각도 (Severity)설명 (Description)
OH1검증되지 않은 출력 주입 (Unvalidated Output Injection)HIGH정화(sanitization) 과정 없이 모델 출력을 사용함
OH2교차 컨텍스트 출력 (Cross-Context Output)MEDIUM검증 없이 신뢰 경계(trust boundaries)를 넘어 출력 흐름이 발생함
OH3무제한 출력 (Unbounded Output)MEDIUM출력 크기 또는 생성 속도에 대한 제한 없음

시스템 프롬프트 유출 (System Prompt Leakage) (3가지 패턴)

ID패턴 (Pattern)심각도 (Severity)설명 (Description)
P6직접 유출 (Direct Leakage)HIGH시스템 프롬프트나 내부 규칙을 노출하는 지침
P7간접 추출 (Indirect Extraction)MEDIUM재구문(rephrasing), 번역 또는 사이드 채널(side-channels)을 통한 추출
P8도구 기반 유출 (Tool-Based Exfiltration)HIGH파일 쓰기 또는 네트워크 요청을 통해 시스템 프롬프트가 유출됨

메모리 오염 (Memory Poisoning) (3가지 패턴)

ID패턴 (Pattern)심각도 (Severity)설명 (Description)
MP1지속적 컨텍스트 주입 (Persistent Context Injection)HIGH상호작용 전반에 걸쳐 지속되도록 설계된 콘텐츠
MP2컨텍스트 윈도우 채우기 (Context Window Stuffing)MEDIUM안전 제약 사항을 밀어내는 채우기용 콘텐츠
MP3메모리 조작 (Memory Manipulation)HIGH에이전트 메모리 또는 저장된 상태(Stored State)를 변조
ID패턴 (Pattern)심각도 (Severity)설명 (Description)
TM1도구 파라미터 남용 (Tool Parameter Abuse)HIGH의도하지 않은 동작을 유도하기 위해 정교하게 제작된 파라미터 (shell=True, --force)
TM2체이닝 남용 (Chaining Abuse)HIGH개별 안전 점검을 우회하는 도구 체인 (Tool Chains)
TM3안전하지 않은 기본값 (Unsafe Defaults)MEDIUM과도하게 허용적인 기본값 (TLS 비활성화, 인증 없음)
ID패턴 (Pattern)심각도 (Severity)설명 (Description)
RA1자기 수정 (Self-Modification)CRITICAL런타임(Runtime) 중에 자신의 코드 또는 설정을 수정
RA2세션 지속성 (Session Persistence)HIGHcron 작업 또는 시작 스크립트를 통한 무단 지속성 유지

트리거 남용 (Trigger Abuse) (3가지 패턴)

ID패턴 (Pattern)심각도 (Severity)설명 (Description)
TR1과도하게 광범위한 트리거 (Overly Broad Trigger)MEDIUM일반적인 단어와 일치하는 트리거 패턴
TR2섀도우 커맨드 트리거 (Shadow Command Trigger)HIGH내장 명령어나 다른 기술(Skills)을 가리는 트리거
TR3키워드 미끼 트리거 (Keyword Baiting Trigger)MEDIUM활성화를 극대화하기 위해 설계된 일반적인 트리거

행동 AST (Behavioral AST) (8가지 패턴)

ID패턴 (Pattern)심각도 (Severity)설명 (Description)
AST1exec() 호출 (exec() Call)CRITICAL임의 코드 실행(Arbitrary Code Execution)을 가능하게 하는 직접적인 exec() 호출
AST2eval() 호출 (eval() Call)HIGH임의의 표현식을 평가하는 직접적인 eval() 호출
AST3동적 임포트 (Dynamic Import)HIGH런타임 중에 임의의 모듈을 로드하는 import()
AST4subprocess 호출 (subprocess Call)HIGHsubprocess를 통한 외부 명령 실행
AST5os.system / exec 계열 (os.system / exec-family)HIGHos 모듈을 통한 셸(Shell) 명령
AST6compile() 호출 (compile() Call)MEDIUM문자열로부터 코드 객체(Code Object) 생성
AST7동적 getattr() (Dynamic getattr())MEDIUM리터럴이 아닌 이름을 사용한 임의의 속성 접근
AST8위험한 실행 체인 (Dangerous Execution Chain)CRITICAL동적 소스(네트워크, 인코딩된 데이터)와 결합된 exec/eval

오염 추적 (Taint Tracking) (5가지 패턴)

| ID | 패턴 (Pattern) | 심각도 (Severity) | 설명 (Description) |
| TT1 | 직접 오염 흐름 (Direct Taint Flow) | 높음 (HIGH) | 데이터가 정화 (Sanitization) 과정 없이 소스 (Source)에서 싱크 (Sink)로 직접 흐름 |
| TT2 | 변수 매개 오염 흐름 (Variable-Mediated Taint Flow) | 중간 (MEDIUM) | 데이터가 중간 변수를 거쳐 소스에서 싱크로 흐름 |
| TT3 | 자격 증명 유출 체인 (Credential Exfiltration Chain) | 치명적 (CRITICAL) | 자격 증명 (환경 변수, 비밀 값 등)이 네트워크 출력 싱크로 흐름 |
| TT4 | 파일 읽기에서 네트워크 유출로 (File Read to Network Exfiltration) | 높음 (HIGH) | 파일 내용이 네트워크 출력 싱크로 흐름 |
| TT5 | 외부 입력에서 코드 실행으로 (External Input to Code Execution) | 치명적 (CRITICAL) | 네트워크 또는 사용자 입력이 exec/eval/subprocess 싱크로 흐름 |

YARA 시그니처 (YARA Signatures) (4가지 패턴)

| ID | 패턴 (Pattern) | 심각도 (Severity) | 설명 (Description) |
| YR1 | 악성코드 일치 (Malware Match) | 치명적 (CRITICAL) | 알려진 악성코드 시그니처에 대한 YARA 규칙 일치 |
| YR2 | 웹쉘 일치 (Webshell Match) | 치명적 (CRITICAL) | 웹쉘 (Webshell) 패턴에 대한 YARA 규칙 일치 |
| YR3 | 암호화폐 채굴기 일치 (Cryptominer Match) | 높음 (HIGH) | 암호화폐 채굴 지표에 대한 YARA 규칙 일치 |
| YR4 | 해킹 도구 / 익스플로잇 일치 (Hack Tool / Exploit Match) | 높음 (HIGH) | 해킹 도구 또는 익스플로잇 (Exploit) 코드에 대한 YARA 규칙 일치 |

MCP 최소 권한 (MCP Least Privilege) (4가지 패턴)

| ID | 패턴 (Pattern) | 심각도 (Severity) | 설명 (Description) |
| LP1 | 권한 과소 선언 (Underdeclared Capability) | 높음 (HIGH) | 코드가 선언된 권한에 나열되지 않은 기능 (Capability)을 사용함 |
| LP2 | 와일드카드 권한 (Wildcard Permission) | 중간 (MEDIUM) | 권한 목록에 와일드카드 (*, all, full, any)가 포함됨 |
| LP3 | 권한 선언 누락 (Missing Permission Declaration) | 중간 (MEDIUM) | 권한 필드는 없으나 코드에서 탐지 가능한 기능이 존재함 |
| LP4 | 권한 과다 선언 (Overdeclared Permission) | 낮음 (LOW) | 권한은 선언되어 있으나 그에 상응하는 코드 기능이 발견되지 않음 |

MCP 도구 오염 (MCP Tool Poisoning) (4가지 패턴)

ID패턴 (Pattern)심각도 (Severity)설명 (Description)
TP1숨겨진 지침 (Hidden Instructions)높음 (HIGH)메타데이터 내 숨겨진 지시 사항 (HTML 주석, 제로 너비 문자 (zero-width chars), base64, 데이터 URI (data URIs))
TP2유니코드 기만 (Unicode Deception)높음 (HIGH)도구 메타데이터 내의 호모글리프 (Homoglyphs), RTL 오버라이드 (RTL overrides), 혼합 스크립트 식별자 (mixed-script identifiers)
TP3파라미터 설명 주입 (Parameter Description Injection)중간 (MEDIUM)파라미터 정의 내 주입 패턴 (오버라이드 (overrides), 시스템 토큰 (system tokens), 악성 기본값 (malicious defaults))
TP4설명-동작 불일치 (Description-Behavior Mismatch)중간 (MEDIUM)선언된 도구 설명이 실제 코드 동작과 일치하지 않음 (LLM 기반)

감지된 모든 패턴은 위의 표에 나열되어 있습니다.

심각한 (CRITICAL) 문제: +50점
높음 (HIGH) 문제: +25점
중간 (MEDIUM) 문제: +10점
낮음 (LOW) 문제: +5점
실행 가능한 스크립트 (Executable scripts): 1.3배 배율

점수 (Score)심각도 (Severity)권장 사항 (Recommendation)
0-20낮음 (LOW)안전 (SAFE)
21-50중간 (MEDIUM)주의 (CAUTION)
51-80높음 (HIGH)설치 금지 (DO NOT INSTALL)
81-100심각함 (CRITICAL)설치 금지 (DO NOT INSTALL)
SkillSpector 보안 보고서 (Security Report) v2.0.0
Skill: suspicious-skill
Source: ./suspicious-skill/
...

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0