검사 결과
SkillSpector는 플러그인·스킬 폴더를 설치 전에 훑어보는 1차 보안검사로 쓸 만했다. 정적 검사만 돌렸는데도 정상 예제는 0점, 설명과 다른 동작이 포함된 예제는 71점, 악성 예제는 93점으로 갈렸다. 다만 0점이 안전 보증서는 아니다. 검사 보고서를 읽고 권한과 실제 코드를 다시 확인해야 한다.
유튜브나 인스타에서 “이 플러그인은 꼭 설치해 보라”는 영상을 보면 설치 명령부터 복사하기 쉽다. 문제는 AI 스킬이 문서 한 장으로 끝나지 않는다는 점이다. 함께 들어 있는 스크립트가 파일과 환경변수를 읽고 외부 서버에 요청을 보낼 수도 있다. 설치 후에 알아차리기보다 폴더를 받은 직후 한 번 걸러내는 편이 낫다.
이 글을 준비하면서 NVIDIA의 오픈소스 검사기 SkillSpector 2.11.0을 별도 Python 환경에 설치했다. 검사 대상은 프로젝트가 제공하는 정상·위장·악성 예제와, 현재 쓰는 AI 빌더 블로그 스킬이었다. 검사 대상 코드는 실행하지 않았고, LLM 분석을 끈 정적 검사만 사용했다.
정상·위장·악성 예제의 검사 점수는 0점·71점·93점이었다
| 검사 대상 | 점수·판정 | 보고서에서 잡힌 것 |
|---|---|---|
| 정상 인사 예제 | 0점 · SAFE | 경고 없음 |
| 설명과 다른 코드 | 71점 · DO_NOT_INSTALL | 환경변수 수집, 외부 POST, 문서에 없는 네트워크 동작 |
| 악성 예제 | 93점 · DO_NOT_INSTALL | 유해 지시, 환경변수 수집, 외부 전송 |
| AI 빌더 블로그 스킬 | 7점 · SAFE | allowed-tools 선언이 없다는 최소 권한 경고 1건 |

보고서의 장점은 문서와 코드가 어긋난 위치를 구체적으로 보여준다는 점이었다. 위장 예제는 단순한 인사 기능이라고 설명했지만, 실제 코드는 환경변수를 모아 외부로 보내려 했다. 보고서에는 선언하지 않은 환경 접근과 네트워크 전송이 따로 표시됐다. 이 정보가 있으면 설치를 중단하거나 추가 확인해야 할 이유를 분명히 설명할 수 있다.
현재 쓰는 블로그 스킬은 7점이었다. 실행 도구를 명시적으로 제한하지 않았다는 경고는 확인할 필요가 있지만, 그 경고 하나만으로 악성이라고 판단할 수는 없다. 도구를 설치할 때는 경고 개수보다 요청한 권한이 실제 기능에 필요한지 확인해야 한다.
AI 플러그인을 설치하기 전 확인할 5단계
- 먼저 내려받기만 한다. 설치기나 setup 스크립트는 아직 실행하지 않는다.
- 스킬 폴더를 검사한다. 보고서를 JSON으로 남기면 수정 전후를 비교하기 쉽다.
- 환경변수·네트워크·셸 실행을 먼저 본다. 설명에 없는 동작이면 설치를 멈춘다.
- 필요한 권한만 허용한다. 홈 폴더 전체나 모든 명령 권한이 정말 필요한지 따진다.
- 격리된 폴더에서 시험한다. 운영 파일과 계정 정보가 없는 상태에서 결과를 확인한다.
정적 검사 명령은 단순하다. 아래에서 PATH_TO_SKILL만 내려받은 폴더로 바꾸면 된다. 출력 파일에는 점수뿐 아니라 발견 항목과 검사 모드가 함께 남는다.
skillspector scan PATH_TO_SKILL --no-llm --format json --output report.json
SkillSpector 자체를 설치할 때도 같은 원칙이 필요하다. 공식 저장소 주소인지 확인하고, 가능하면 전용 환경에 설치한다. 프로젝트 README는 uv tool install과 Docker 방식을 함께 안내한다. 회사 PC라면 새 도구 설치 정책과 네트워크 사용 규정도 먼저 확인하는 편이 안전하다.
검사 보고서에서는 환경 접근·외부 통신·명령 실행을 먼저 확인한다
| 확인할 항목 | 판단 질문 |
|---|---|
| 환경·파일 접근 | 기능 설명에 없는 비밀번호, 토큰, 홈 폴더를 읽는가? |
| 외부 통신 | 어느 주소로 무엇을 보내며, 사용자가 예상할 수 있는가? |
| 명령 실행 | 삭제·설치·설정 변경 범위가 필요한 수준으로 제한됐는가? |
웹페이지 제목을 요약하는 스킬이라면 인터넷 접근이 필요할 수 있다. 반면 문장을 다듬는 스킬이 환경변수 전체를 읽어 낯선 서버로 보낸다면 기능에 비해 권한이 지나치게 넓다. 보고서의 권한 경고는 해당 기능에 꼭 필요한 동작인지 함께 확인해야 한다.
오탐을 줄이는 baseline 기능도 있지만, 처음 본 경고를 바로 숨기는 용도로 쓰면 곤란하다. 코드를 확인하고 받아들이기로 한 항목만 지문으로 남긴 뒤, 다음 검사에서 새 경고가 생겼는지 보는 데 쓰는 편이 맞다.
정적 검사만으로는 설치 후 동작과 과도한 권한을 모두 찾을 수 없다
이번 검사는 --no-llm 옵션으로 실행해 의미를 해석하는 분석기를 사용하지 않았다. 표현을 교묘하게 바꾼 지시문이나 문맥상 위험한 요구는 정적 패턴만으로 놓칠 수 있다. 따라서 검사 결과가 0점이어도 바로 설치하기보다 코드와 권한을 한 번 더 확인해야 한다.
- 설치 뒤 추가 파일을 내려받는 동작
- 정상 기능처럼 보이지만 필요 이상으로 넓은 권한
- 검사 시점과 실제 설치 시점 사이에 바뀐 원격 저장소
- 업무 데이터에 연결했을 때만 드러나는 위험
SkillSpector는 설치 전에 위험 신호를 빠르게 찾는 1차 검사로 적합하다. 다만 검사 통과가 코드 검토와 권한 확인을 대신하지는 않는다. 소셜에서 추천받은 스킬일수록 추천자 수와 별 개수만 보지 말고, 내려받은 파일의 정확한 버전을 저장해 검사한 뒤 허용할 권한을 결정해야 한다.
지금 설치해도 될지 결정하는 기준
| 상황 | 권장 판단 |
|---|---|
| 설명과 코드가 맞고, 필요한 권한만 쓰며, 경고가 없음 | 격리 환경에서 한 번 더 실행한 뒤 검토 |
| 설명에 없는 외부 전송이나 환경변수 수집이 있음 | 설치 중단 |
| 이유를 알 수 없는 셸 실행·설정 변경이 있음 | 유지관리자 설명과 코드를 확인할 때까지 보류 |
| 검사기는 통과했지만 저장소가 방금 바뀜 | 설치할 커밋을 고정하고 다시 검사 |
AI 도구를 자주 설치한다면 “발견 → 내려받기 → 검사 → 권한 확인 → 격리 실행” 다섯 단계를 체크리스트로 남겨두는 것이 실용적이다. 설치 전에 이 절차를 거치면 낯선 스크립트가 업무 파일이나 계정 토큰에 접근한 뒤에 문제를 발견하는 일을 줄일 수 있다.
검증 기록: 2026-09-07, Windows, SkillSpector 2.11.0. 공식 테스트 저장소의 통제된 예제 3개와 AI 빌더 블로그 스킬 1개를 --no-llm으로 검사했다. 점수는 전체 스킬 생태계의 평균이 아니다. 작성: 노트지기.

답글 남기기