SkillSpector AI 에이전트 기술(마크다운, 스크립트, 종속성, 도구 정의 및 활성화 규칙을 포함할 수 있는 명령 패키지)을 위한 NVIDIA의 Apache-2.0 보안 스캐너입니다. 로컬 디렉터리, 개별 파일, zip 아카이브, Git 저장소 또는 URL을 허용하고 위험 점수가 0~100인 터미널, JSON, Markdown 또는 SARIF 결과를 생성합니다.
그 가치는 위협 모델입니다. 기술은 단순한 문서가 아닙니다. 에이전트가 이를 따르면 지침에 따라 파일 액세스, 셸 실행, 자격 증명 사용, 네트워크 전송 또는 지속적인 구성 변경이 발생할 수 있습니다. SkillSpector은 프롬프트 주입, 과도한 에이전시, 메모리 중독, 트리거 남용 및 MCP 도구 설명 중독과 같은 기존 소프트웨어 위험과 에이전트 관련 문제를 모두 확인합니다. 깨끗한 보고서는 하나의 사전 설치 분석 계층에서 나온 증거이며 런타임 동작이 안전하다는 보장은 없습니다.

SkillSpector이 신뢰 파이프라인에 적합한 위치
소스 ID + 커밋 핀
|
v
격리된 작업 공간에서 포장 풀기
|
---------+---------.
v v
정적 규칙 종속성 / OSV
AST + 오염 서명 + 메타데이터
'-------+--------'
v
선택적 LLM 의미 검토
|
인간의 성향
수락 / 수정 / 이유 있는 억제 / 거부
|
샌드박스 + 최소 권한 + 런타임 모니터링
이 순서가 중요합니다. 오늘 고정 해제된 URL을 스캔한다고 해서 내일의 다운로드가 동일하다는 것을 증명할 수는 없습니다. 자격 증명을 분리하지 않고 적대적인 지침에 따라 LLM을 실행하면 또 다른 노출이 발생합니다. 차단 정책 없이 SARIF 파일을 업로드하면 가시성이 확보되지만 제어할 수는 없습니다. 스캐너를 재현 가능한 승인 프로세스의 한 단계로 취급하십시오.
2단계 분석기의 기능
| 무대 | 메커니즘 | 힘 | 예상되는 약점 |
|---|---|---|---|
| 정적 패턴 | 기술 파일 전반의 정규식 및 규칙 일치 | 빠르고 결정적이며 설명 가능 | 양성 사례도 일치할 수 있습니다. 새로운 표현은 회피할 수 있다 |
| 행동 AST | Python 실행 기본 요소 및 위험한 호출 체인을 감지합니다. | 키워드 이상의 코드 동작을 찾습니다. | 코드를 실행하지 않습니다. 언어 및 간접 적용 범위는 제한적입니다. |
| 오염 추적 | 입력/비밀/파일에서 실행 또는 네트워크 싱크로의 흐름을 찾습니다. | 소스와 싱크를 의미 있는 경로에 연결합니다. | 동적 디스패치 및 복잡한 프레임워크는 정적 흐름을 무력화할 수 있습니다. |
| OSV 조회 | 선언된 종속성 취약점에 대해 OSV.dev를 쿼리합니다. | 온라인 상태의 현재 취약점 인텔리전스 | 오프라인 모드는 더 작은 대체를 사용합니다. 선언되지 않은/공급업체 코드가 누락될 수 있습니다. |
| YARA 서명 | 알려진 악성코드, 웹쉘, 마이너 및 익스플로잇 패턴과 일치합니다. | 알려진 가족에게 유용함 | 알 수 없거나 압축되거나 수정된 페이로드는 회피할 수 있습니다. |
| 선택적 LLM 검토 | 의도와 맥락을 평가하고 결과를 설명합니다. | 명백한 정적 오탐을 줄일 수 있습니다. | 확률적이고 공급자에 따라 다르며 적대적인 콘텐츠에 노출됨 |
이 프로젝트에서는 정적 분석을 적당한 정밀도의 높은 재현율로 설명하고 선택적 의미론적 검토가 정밀도를 향상시킨다고 말합니다. 자신의 말뭉치에서 재현하지 않고 헤드라인 정밀도 수치를 정책에 복사하지 마십시오. 보안 팀은 하나의 집계 숫자뿐만 아니라 범주별 거짓 부정에 관심을 갖습니다.
운영상의 16가지 위험 범주
| 위험 그룹 | 다루는 예 | 리뷰어가 확인해야 할 사항 |
|---|---|---|
| 명령어 제어 | 프롬프트 주입, 숨겨진 지시어, 시스템 프롬프트 유출 | 지침이 표시되고 범위가 지정되며 호스트 정책에 종속됩니까? |
| 데이터 액세스 | 환경 수집, 파일 시스템 열거, 컨텍스트 추출 | 어떤 데이터 클래스가 어떤 도메인으로 전달될 수 있나요? |
| 권위 | 권한 상승, 과도한 대행사, 도구 오용 | 스킬이 취소 가능한 최소 권한만 요청합니까? |
| 지속성 | 메모리 중독, 자체 수정, 시작 또는 cron 지속성 | 스킬이 향후 세션이나 자체 적용을 수정할 수 있습니까? |
| 소프트웨어 공급망 | 고정 해제된 패키지, 원격 스크립트, CVE, 타이포스쿼팅, 난독화 | 해시, 커밋, 종속성 출처를 재현할 수 있나요? |
| MCP 경계 | 와일드카드 권한, 선언되지 않은 기능, 도구 중독 | 선언된 메타데이터가 코드 및 런타임 트래픽과 일치합니까? |
| 코드 동작 | exec/eval, 하위 프로세스, 동적 가져오기, 오염된 실행 | 위험한 행동이 필수적이고 제한적이며 안전하게 매개변수화되어 있습니까? |
| 출력 및 트리거 | 정리되지 않은 출력, 광범위한 활성화, 섀도우 명령 | 일반 텍스트가 예기치 않게 신뢰 경계를 활성화하거나 넘을 수 있습니까? |
SkillSpector은 현재 이러한 16개 범주에 걸쳐 64개 패턴을 문서화합니다. 이 숫자는 보안 점수 자체가 아닌 버전 관리에 유용합니다. 알려진 정규식의 10가지 변형이 하나의 새로운 공격 체인으로부터 반드시 보호할 수는 없지만 단일 고품질 오염 규칙은 심각한 유출을 방지할 수 있습니다.
위험 점수 이해
문서화된 모델은 중요한 결과에 50점, 높음에 25점, 중간에 10점, 낮음에 5점을 추가하고 실행 가능한 스크립트가 있는 경우 1.3배 승수를 적용하고 결과를 100으로 제한합니다. 게시된 밴드 레이블은 0~20 낮음, 21~50 중간, 51~80 높음, 81~100 중요입니다.
| 점수/밴드 | 기본 권장사항 | 의미하지 않는 것 |
|---|---|---|
| 0~20 / 낮음 | 수동 검토 및 샌드박스 테스트 계속 | "안전"하지 않습니다. 사각지대에는 관찰되지 않은 행동이 포함될 수 있습니다. |
| 21–50 / 중간 | 소유자 처분 및 교정 필요 | 자동으로 악의적인 것은 아닙니다. 합법적인 네트워크나 쉘 사용은 점수를 매길 수 있습니다. |
| 51–80 / 높음 | 보안에서 예외를 허용하지 않는 한 설치 차단 | 점수만으로는 의도를 확립할 수 없습니다. |
| 81~100 / 크리티컬 | 출처/출처 거부 및 조사 | 여러 조사 결과가 하나의 근본 원인을 설명할 수 있습니다. 분류 중 중복 제거 |
점수는 이질적인 증거를 압축합니다. 규칙 ID, 파일 위치, 조각, 신뢰도, 분석기 버전 및 소스 커밋을 보존합니다. 점수가 50점인 두 기술은 근본적으로 다른 위험을 가질 수 있습니다. 즉, 하나의 중요한 코드 실행 경로와 10개의 낮은 심각도 위생 결과입니다.
정적 전용 스캐닝과 LLM 지원 스캐닝 비교
| 모드 | 다음과 같은 경우에 사용하세요. | 데이터 경계 | 정책적 시사점 |
|---|---|---|---|
--no-llm | 빠른 CI, 신뢰할 수 없는 입력, 공백 검토 또는 결정론적 기준선 | 모델 제공자에게 의미 체계 페이로드가 전송되지 않음 | 더 많은 오탐지와 의도 누락이 발생할 것으로 예상됩니다. |
| 관리형 OpenAI/Anthropic/NVIDIA 엔드포인트 | 상황별 분류는 외부 처리의 가치가 있습니다. | 스킬 콘텐츠가 환경을 떠날 수 있음 | 공급자 약관, 보존, 지역 및 자격 증명을 검토합니다. |
| 로컬 OpenAI 호환 엔드포인트 | 민감한 기술 또는 재현 가능한 내부 평가 | 네트워킹이 제어되는 경우 로컬 상태를 유지할 수 있습니다. | 모델 품질과 신속한 주입 견고성은 귀하의 책임입니다 |
스캐너의 의미 모델에 필요한 것보다 더 많은 권한을 부여하지 마십시오. 모델은 텍스트를 분석해야 하며 생산 비밀이나 설치 권한을 소유해서는 안 됩니다. 버전 간에 의미 체계 배치가 변경될 수 있으므로 모든 기술 콘텐츠를 적대적인 입력으로 처리하고 정확한 공급자/모델을 기록합니다.
알려진 사각지대
NVIDIA는 중요한 제한 사항을 명시적으로 나열합니다. 영어가 아닌 언어의 공격은 놓칠 수 있습니다. 이미지에 숨겨진 텍스트는 분석되지 않습니다. 컴파일, 암호화 또는 바이너리 코드가 정적 가시성을 벗어났습니다. 런타임 동작은 실행되지 않습니다. OSV 네트워크를 사용할 수 없으면 적용 범위가 줄어듭니다. 정적 분석은 생성된 코드, 반사, 2단계 다운로드, 환경에 따른 동작 및 원격 서버가 응답을 변경한 후에만 나타나는 남용으로 인해 어려움을 겪을 수도 있습니다.
| 사각지대 | 보상 통제 |
|---|---|
| 이미지 또는 문서 지침 | 별도의 샌드박스에서 OCR/메타데이터 추출 및 미디어 검토 |
| 바이너리 또는 암호화된 아티팩트 | 불투명한 페이로드를 거부하거나 재현 가능한 소스 및 악성 코드 샌드박싱을 요구합니다. |
| 런타임 전용 동작 | 기본적으로 거부된 네트워크/파일 시스템을 사용하여 계측된 컨테이너에서 실행 |
| 영어가 아니거나 난독화된 프롬프트 | 언어 인식 검토, 유니코드 정규화 및 적대적 테스트 사례 사용 |
| 원격 종속성 변경 | 커밋/해시 고정, 종속성 미러링, 서명/SBOM 확인 |
| 스캐너 회피 또는 결함 | 심층 방어, 독립적 검토 및 스캐너 회귀 테스트 사용 |
팀이 시행할 수 있는 CI 허용 정책
- 변경할 수 없는 입력을 해결합니다. 스캔하기 전에 저장소를 기록하고, SHA를 커밋하고, 해시를 보관하고, 작성자 및 라이선스를 보관하세요.
- 실행하지 않고 압축을 푼다. 모든 파일의 목록을 작성하는 동안 후크, 템플릿 및 패키지 설치를 비활성화합니다.
- 먼저 정적 전용을 실행하십시오. JSON 및 SARIF을 SkillSpector 버전으로 저장하고 OSV에 연결할 수 있는지 여부를 저장합니다.
- 명시적 게이트를 적용합니다. 억제되지 않은 중요/높은 결과, 자격 증명-네트워크 오염, 숨겨진 명령 또는 불투명한 실행 파일을 차단합니다.
- 의미론적 검토를 별도로 수행합니다. 승인된 콘텐츠만 격리된 공급자에게 보내고 모델이 기술을 설치하도록 허용하지 마세요.
- 인간의 성향이 필요합니다. 모든 억제에는 소유자, 근거, 범위 및 만료 날짜가 필요합니다.
- 런타임 경계를 테스트합니다. 비밀 없음, 읽기 전용 설비, 도메인 허용 목록 및 일회용 계정으로 시작하세요.
- 업데이트를 다시 검사합니다. 소스 변경, 종속성 잠금 변경, 규칙팩 릴리스 및 새로 공개된 CVE에 대해 트리거합니다.
| 찾기 | 추천 게이트 | 예외 증거 |
|---|---|---|
| 심각/높은 오염 또는 실행 체인 | 하드블록 | 보안 검토 및 코드 수정 영구적인 억압을 피하라 |
| 외부 네트워크 대상 | 허용 목록에 없으면 차단 | 비즈니스 목적, 데이터 분류, 도메인 및 페이로드 증명 |
| 고정되지 않은 종속성 | 블록 해제 | 잠금 파일/해시 및 제어된 업데이트 프로세스 |
| 광범위한 트리거 또는 와일드카드 권한 | 축소 필요 | 입증된 필요성 및 런타임 승인 제어 |
| 심각도가 낮은 위생 문제 | 기한으로 경고 | 소유자 및 교정 티켓 |
감지 품질을 평가하는 방법
조직에서 설치하는 기술과 유사한 라벨이 붙은 말뭉치를 만듭니다. 하위 프로세스 또는 네트워크 API을 합법적으로 사용하는 깨끗한 기술, 모든 관련 규칙 집합에 대한 의도적으로 취약한 설비, 다국어 지침, 인코딩된 텍스트, 이름이 바뀐 도구 및 연결된 동작을 포함합니다. 튜닝 예제가 유일한 테스트 세트가 되지 않도록 코퍼스를 분할합니다.
| 미터법 | 질문에 답변됨 | 왜 중요한가요? |
|---|---|---|
| 심각도/범주별 리콜 | 알려진 위험 사례는 몇 건이나 발견되었나요? | 전체 비율이 높으면 자격 증명 유출에 대한 적용 범위가 0으로 숨겨질 수 있습니다. |
| 정밀도 | 실행 가능한 알림은 몇 개입니까? | 낮은 정밀도로 인해 개발자가 게이트를 우회하도록 교육 |
| 처리 시간 | 인간 분류에는 얼마나 걸리나요? | 실제 운영 비용 측정 |
| 증분 스캔 시간 | 모든 변경 사항에 대해 검사를 실행할 수 있나요? | 느린 게이트는 빈번하지 않은 감사로 마이그레이션됩니다. |
| 의미론적 안정성 | 반복/모델 버전 실행이 일치합니까? | 비결정적 정책 결과 노출 |
| 탈출율 | 통과 후 런타임에 어떤 위험한 동작이 나타납니까? | 스캐너뿐만 아니라 전체 입학 시스템을 테스트합니다. |
SARIF 및 보고
SARIF 출력은 GitHub 코드 스캐닝에 업로드될 수 있으므로 결과가 소스 위치에 표시되고 저장소의 일반적인 보안 워크플로에 참여할 수 있습니다. JSON은 정책 엔진 및 종단적 지표에 더 좋습니다. Markdown은 사람이 검토하는 패킷을 돕습니다. 터미널 출력은 로컬로 편리합니다. 보고서 생성이 빌드에 실패했다고 가정하는 대신 고정된 버전의 종료 코드 동작을 확인하고 게이트를 명시적으로 구현합니다.
보고서 자체에는 민감한 정보 조각, 내부 경로 및 의심스러운 지침이 포함될 수 있습니다. 아티팩트 보존 및 액세스를 제한합니다. 공개 끌어오기 요청에 토큰 또는 익스플로잇 페이로드가 포함된 전체 결과를 게시하지 마세요.
대안 및 보완 컨트롤
| 옵션 | 최고의 사용 | SkillSpector과의 관계 |
|---|---|---|
| Cisco AI Defense 스킬 스캐너 | 또 다른 상담원 기술 중심의 다중 엔진 스캐너 | 적용 범위와 오탐지를 비교합니다. 독립적인 엔진으로 탐지를 다양화할 수 있습니다. |
| Semgrep/CodeQL | 심층적인 언어별 정적 분석 및 사용자 정의 구성 규칙 | 에이전트 지침 및 MCP 관련 검사 보완 |
| OSV-스캐너/Dependabot | 종속성 취약성 및 업데이트 워크플로 | 하나의 내장된 조회보다 더 광범위한 종속성 작업 |
| YARA/안티맬웨어 샌드박스 | 알려진 악성 코드 및 동적 동작 | 마크다운 중심 분석 외부의 페이로드에 유용합니다. |
| 수동 허용 목록 + 서명된 카탈로그 | 승인된 기술이 거의 없는 고도로 통제된 환경 | 공급망 변동성을 줄입니다. 서명된 각 릴리스를 계속 스캔합니다. |
| 런타임 샌드박스/정책 엔진 | 파일, 네트워크, 비밀 및 승인 경계 강화 | 사전 설치 스캐닝으로 모든 것을 관찰할 수 없기 때문에 필수 보상 |
FAQ
점수가 낮다는 것은 기술이 안전하다는 것을 의미합니까?
아니요. 이는 고정된 스캐너 버전이 인식된 결과를 많이 축적하지 않았음을 의미합니다. 맹점, 런타임 동작 및 공급망 대체는 여전히 가능합니다.
SkillSpector이 스킬을 실행합니까?
아니요. 문서화된 제한 사항은 동적 실행이 아닌 정적 분석입니다. 런타임 테스트를 위해 별도의 계측 샌드박스를 사용하세요.
원격 Git 저장소를 스캔할 수 있나요?
예, URL, zip 아카이브, 디렉토리 및 개별 파일도 함께 제공됩니다. 재현성을 위해 변경 가능한 분기 URL보다는 변경 불가능한 커밋이나 해시를 스캔하세요.
LLM 분석이 필요합니까?
아니요. --no-llm 정적 전용으로 실행됩니다. 의미 체계 분석은 선택 사항이며 관리형 공급자 또는 로컬 OpenAI 호환 엔드포인트를 사용할 수 있습니다.
OSV 네트워크 액세스가 없으면 어떻게 되나요?
스캐너는 작은 내장 목록으로 대체되므로 종속성 취약성 적용 범위는 덜 최신이고 포괄적입니다. 보고서에 저하된 상태를 기록합니다.
최종 결정은 누가 소유해야 합니까?
기술의 기능 소유자로부터 입력을 받은 지정된 보안 또는 플랫폼 검토자. 스캐너는 결과를 제공합니다. 설치 권한을 부여해서는 안 됩니다.
출처 및 검증
- 공식 SkillSpector 저장소 및 README
- 공식 보안 정책
- 검증된 기술 및 SkillSpector에 대한 NVIDIA 기술 문서
- NVIDIA 검증 에이전트 기술 카탈로그
- OSV API 문서
- GitHub SARIF 문서 업로드
- LLM 지원 위험에 대한 OWASP 지침
- MITRE ATLAS 적대적 위협 지식 기반
- Cisco AI Defense 스킬 스캐너 비교
2026년 7월 26일에 마지막으로 검토되었습니다. 패턴 수, 공급자, 기본 모델 및 CLI 동작이 변경될 수 있습니다. 게이트를 채택하기 전에 스캐너 버전을 고정하고 현재 저장소를 확인하세요.

