팀에 새로운 AI agent skill을 설치하려고 한다. README는 꽤 충실하고, GitHub stars도 적지 않아 보인다. 스캐너는 빨간불을 켜지 않았고, 데모 영상은 마침 이번 주 팀이 막혀 있던 워크플로를 해결해 주는 것처럼 보인다.
이때 가장 쉽게 생기는 착각은 이것이다. 스캐너가 막지 않았으니 설치해도 되겠지.
하지만 AI agent skill의 위험은 설치 순간에만 숨어 있는 경우가 아니다. 실제로 영향을 만들 수 있는 지점은 agent가 그것을 호출한 뒤다. 파일을 읽을 수 있는가? 네트워크에 연결할 수 있는가? token을 받을 수 있는가? 결과를 프로젝트에 다시 쓸 수 있는가? 우리가 보지 못하는 단계에서 데이터를 밖으로 가져갈 수 있는가?
최근 SkillCloak 관련 연구는 한 가지를 상기시킨다. 설치 전 정적 스캔만으로는 실행 중에야 펼쳐지는 일부 행동을 보지 못할 수 있다는 점이다. 연구에서 언급한 self-extracting packing, 특정 디렉터리 건너뛰기, 실행 중 payload 복원 같은 기법에서 중요한 것은 특정 논문이 얼마나 놀라운가가 아니다. 더 오래된 문제를 더 선명하게 보여준다는 점이다. 서드파티 skill은 “스캐너를 통과했는가”만 물어서는 안 되고, “실행될 때 무엇을 만질 수 있도록 허용되는가”도 물어야 한다.
이 미니 레슨이 다루는 병목은 바로 이것이다. AI agent skill을 설치하기 전에, 팀은 스캐너가 보지 못하는 위험을 어떻게 점검해야 할까?
In this lesson
- 스캔을 통과해도 바로 설치하면 안 되는 이유
- AI agent skill 설치 전 go/no-go 표
- 격리 dry-run으로 runtime 관찰을 보완하는 방법
- 팀이 내일부터 추가할 수 있는 최소 승인 단계
- AI에게 정리를 맡길 수 있는 handoff prompt
먼저 skill을 “agent가 나 대신 실행할 외부 동료”로 보자
agent는 먼저 “몇 단계의 작업을 스스로 이어서 수행하는 AI 어시스턴트”로 이해하면 된다. skill은 이 어시스턴트가 임시로 배울 수 있는 도구, 명령, 또는 워크플로 묶음에 가깝다.
문제는 많은 팀이 서드파티 skill을 검토할 때 여전히 일반 패키지를 검토하던 습관에 머문다는 것이다.
- repo 출처가 신뢰할 만한지 본다.
- scanner를 한 번 돌린다.
- README가 합리적인지 본다.
- 설치 명령에 눈에 띄게 수상한 내용이 없는지 확인한다.
이 모두는 해야 한다. 하지만 충분하지 않다.
일반 패키지의 위험은 대체로 설치, build, import, 특정 함수 실행에 집중된다. AI agent skill에는 한 층이 더 있다. agent가 “다음 단계에 이 skill이 필요하다”고 판단할 때 비로소 호출될 수 있고, 그 호출에는 작업 맥락, 파일, 도구 권한, 사용자 의도가 함께 실릴 수 있다. 다시 말해 skill은 단순한 코드 조각이 아니다. 그것은 워크플로, 즉 고정된 인수인계 단계들의 흐름 안으로 들어간다.
아직 agent의 권한 경계를 나누어 보지 않았다면 먼저 이 글을 참고해도 좋다. AI agent 권한 부여 4문항 표: 신원, 권한, 이유, 결과. 그 글은 agent가 행동하기 전에 무엇을 물어야 하는지를 다룬다. 이 글은 skill 설치 전에 그것을 환경에 들여보내도 되는지 어떻게 판단할지에 초점을 둔다.
스캐너는 단서를 찾고, 승인 절차는 위험을 감당할 수 있는지 결정한다
스캐너는 중요하다. prompt injection, 데이터 유출, 권한 상승, 도구 오용, MCP 위험 같은 흔한 문제를 찾는 데 도움을 준다. MCP는 먼저 “AI 도구가 같은 방식으로 데이터와 도구에 연결되도록 하는 프로토콜”로 이해하면 된다.
하지만 스캐너는 보통 이런 질문에 더 잘 답한다.
- repo 안에 수상한 문자열이 있는가?
- 파일 구조 안에 흔한 악성 패턴이 있는가?
- prompt가 원래 지시를 덮어쓰려 하는가?
- 민감 파일을 읽거나 데이터를 외부로 보내라고 명시적으로 요구하는가?
반면 다음 질문은 스캐너 혼자 답하기 어렵다.
- 이 skill은 우리 프로젝트 맥락에서 실제로 어떤 데이터를 받게 되는가?
- agent가 이 skill을 세 단계 연속 호출하면 새로운 위험이 조합되지 않는가?
- 쓰기 권한이 꼭 필요한가, 아니면 읽기만으로 충분한가?
- 네트워크 연결 목적지를 제한할 수 있는가?
- 문제가 생겼을 때 누가 멈추고, token을 회수하고, 임시 데이터를 지우는가?
그래서 “스캐너 통과”는 진입 조건으로는 적절하지만 최종 승인으로 쓰기에는 적절하지 않다. 비슷하게, 보안 스캐너가 문제를 지적했다고 해서 도구가 production 설정을 자동으로 마구 고치게 해서는 안 된다. 이 글도 함께 볼 수 있다. AI 보안 스캐너가 수정하라고 말해도, 먼저 사람이 고쳐도 되는지 결정해야 한다. 같은 논리를 skill 설치 전에 적용하면 이렇게 된다. 스캐너는 힌트를 줄 수 있지만, 결정은 사람이 책임져야 한다.
AI agent skill 설치 전 go/no-go 표
아래 표의 사용법은 단순하다. 각 행마다 “지금 격리 dry-run에 들어가도 충분한가”에 답해야 한다. 한 행이라도 no-go에 걸리면 일상 작업 환경에 설치하지 않는다. conditional go라면 먼저 제한을 추가한 뒤 sandbox에서 dry-run을 한다.
| 점검 항목 | Go: 격리 dry-run 가능 | Conditional go: 제한을 보완한 뒤 dry-run | No-go: 오늘은 설치하지 않음 |
|---|---|---|---|
| 출처와 유지보수 상태 | 출처 repo, 게시자, 버전 기록을 추적할 수 있고, 최근 업데이트와 issue 응답을 보면 유지보수자가 남아 있다 | 출처는 신뢰할 만하지만 유지보수 신호가 약하다. 먼저 commit hash를 고정하고 floating version은 쓰지 않는다 | 압축 파일만 있거나, 익명 출처이거나, 버전을 추적할 수 없거나, README와 실제 파일 차이가 뚜렷하다 |
| 권한 요구 | skill 설명이 읽어야 할 디렉터리와 사용할 도구를 명확히 나열하며, 최소 권한으로 작업을 끝낼 수 있다 | 권한 요구가 크지만 읽기 전용 디렉터리, 단일 테스트 repo, 일회성 token으로 줄일 수 있다 | 처음부터 전체 프로젝트 쓰기 권한, 시스템 수준 shell, 로그인된 브라우저 상태, 장기 token을 요구하면서 합리적인 이유가 없다 |
| 민감 데이터 경계 | dry-run 데이터는 비식별화할 수 있고, .env, key, 고객 원문, 내부 계약서를 읽을 필요가 없다 | 일부 실제 데이터가 필요하다. 먼저 20건 이하의 마스킹된 샘플을 만들고 secret 디렉터리 읽기를 금지한다 | production secret, 고객 전체 데이터, 마스킹되지 않은 credential을 직접 읽어야만 동작한다 |
| 네트워크 행동 | 예상 목적지가 3개 미만이고 allowlist로 제어할 수 있다. 오프라인 모드에서도 핵심 기능을 수행할 수 있다 | 외부 API 연결이 필요하다. 먼저 도메인을 제한하고 request metadata를 기록하며 payload 전문은 전송하지 않는다 | 알 수 없는 endpoint에 연결하거나, 실행할 내용을 동적으로 다운로드하거나, 데이터가 어디로 가는지 설명하기를 거부한다 |
| 실행 샌드박스 | container, 임시 작업 디렉터리, 테스트 VM에서 실행할 수 있고, dry-run이 끝나면 파일과 token을 완전히 지울 수 있다 | 로컬에서만 실행할 수 있다. 먼저 새 사용자, 읽기 전용 mount, 지속 credential이 없는 환경을 만든다 | 엔지니어의 주 작업기, 로그인된 브라우저, production workspace에서만 실행할 수 있다 |
| 관측 가능성 | 파일 읽기/쓰기, 네트워크 연결, 도구 호출, 출력 요약을 기록할 수 있고, log에 민감한 전문이 없다 | 일부 이벤트만 기록할 수 있다. 먼저 wrapper나 proxy layer를 보완해 최소한 시간, 도구, 대상 경로, 목적 도메인을 기록한다 | 실행 후 최종 답만 보이고, 무엇을 읽었는지, 어디에 연결했는지, 무엇을 바꿨는지 알 수 없다 |
| 실패 처리 | 명확한 owner가 있다. dry-run 이상 시 15분 안에 token 철회, 작업 디렉터리 삭제, 영향 범위 보고가 가능하다 | owner는 지정됐지만 철회 절차를 연습하지 않았다. 먼저 dry-run을 한 번 수행해 rollback 경로를 확인한다 | 마무리를 책임질 사람이 없거나, 문제가 생기면 “다들 다시 쓰지 말자고 기억하기”에 의존해야 한다 |
이 표는 의도적으로 “스캔 결과”를 표 밖에 둔다. 이유는 이렇다. 스캐너는 먼저 돌려야 하고, 통과하지 못하면 표에 들어올 필요도 없다. 하지만 표에 들어온 뒤의 결정 포인트는 “깨끗해 보이더라도 실행 중 무엇을 만지게 되는지 우리가 알고 있는가”로 바뀐다.
30분 동안 격리 dry-run을 한 번 해보기
dry-run은 “먼저 시험 실행하되 실제 데이터 변경이나 배포는 하지 않는 것”이다. 서드파티 skill에서 dry-run은 그것이 작업을 완료할 수 있는지만 보는 과정이 아니다. 그것이 작업을 어떻게 완료하는지도 관찰하는 과정이다.
다시 말해 이 절은 추가 테스트가 아니다. 스캐너만으로는 보이지 않는 runtime 경계를 보완하는 절이다. skill이 실제로 실행될 때 무엇을 읽고, 어디에 연결하고, 어떤 도구를 쓰며, 데이터가 최종적으로 어떤 출력으로 나가는지를 보는 것이다.
아래 순서로 작은 점검을 한 번 실행할 수 있다.
1. 가짜지만 진짜 같은 작업을 준비한다
첫 테스트 대상으로 production 프로젝트를 쓰지 말자. 더 나은 방법은 작은 fixture를 준비하는 것이다.
- 실제 repo 구조를 흉내 낸 파일 10~20개.
- 의도적으로 넣어 둔 경계 사례 2~3개. 예: 가짜
.env, 가짜 고객 데이터, 가짜 API key. - 명확한 작업 1개. 예: “changelog를 정리해 줘” 또는 “설정 파일의 불일치를 찾아줘”.
- 명확한 금지 사항 1개. 예: “
secrets/디렉터리는 읽지 말 것”.
이렇게 하면 skill이 작업을 끝냈는지만 보는 것이 아니라, 만지면 안 되는 곳을 건드렸는지도 볼 수 있다.
2. 권한을 세 단계로 나누고 처음부터 모두 열지 않는다
첫 dry-run에서는 다음 순서로 권한을 여는 것을 권한다.
- 1단계: 읽기 전용 파일 권한, 네트워크 없음.
- 2단계: 읽기 전용 파일 권한, 제한된 도메인 연결.
- 3단계: 필요할 때만 쓰기 권한 추가. 단,
output/또는 임시 디렉터리에만 쓰도록 허용.
skill이 1단계에서 핵심 작업을 끝낼 수 있다면 3단계까지 올리지 않는다. 권한 상승에는 이유가 있어야 한다. 설치 가이드에 “full access 권장”이라고 적혀 있다는 이유만으로 그대로 따라 하지 말자.
3. 네 가지 runtime 신호를 기록한다
runtime은 먼저 “프로그램이 실제로 실행되는 시간”으로 이해하면 된다. 격리 dry-run에서는 최소한 다음 네 가지 신호를 기록해야 한다.
- 파일: 어떤 경로를 읽었는가? 어떤 경로에 썼는가? forbidden directory를 건드렸는가?
- 네트워크: 어떤 도메인에 연결했는가? request 크기가 비정상적인가? 실행 내용을 동적으로 다운로드했는가?
- 도구: 어떤 shell, 브라우저, API, MCP tool을 호출했는가? 순서는 합리적인가?
- 출력: 최종 답이 알아서는 안 되는 데이터를 인용했는가? 내부 내용을 외부 서비스에 붙여 넣었는가?
처음부터 무거운 보안 플랫폼을 만들 필요는 없다. 작은 팀은 container log, proxy log, 파일 시스템 audit, agent tool-call log를 엮어 첫 번째 관찰 버전을 만들 수 있다. 핵심은 dry-run이 나중에 되돌아볼 수 있는 흔적을 남기게 하는 것이다.
4. 결과를 “쓸 만해 보임”이 아니라 go/no-go로 쓴다
dry-run이 끝난 뒤 Slack에 “괜찮아 보임” 한 줄만 남기지 말자. 결과를 세 가지 상태로 수렴시킨다.
- go: 제한된 워크플로에 설치 가능. 같은 권한 제한과 모니터링을 유지한다.
- conditional go: 특정 owner, 특정 repo, 특정 작업에만 사용 가능하며 2주 안에 재검토한다.
- no-go: 설치하지 않는다. 이유를 남겨 다음에 다른 동료가 같은 길을 다시 밟지 않게 한다.
conditional go가 너무 많다면 이 skill은 아직 팀 공용 도구가 되기에 적합하지 않다는 뜻이다. 개인 실험 환경에는 남겨 둘 수 있을지 몰라도 공식 워크플로에는 넣지 않는 편이 좋다.
흔한 실수: skill 충돌을 설치 후에야 처리할 문제로 보는 것
많은 skill 위험은 단일 skill 자체가 아니라 기존 도구와 조합된 뒤에 나타난다.
예를 들어보자.
- 어떤 skill은 issue 정리만 담당하므로 읽기 권한만 필요해 보인다.
- 다른 skill은 issue를 바탕으로 자동으로 PR을 만든다.
- agent가 같은 워크플로 안에서 둘을 연속 호출하면 읽기, 판단, 쓰기가 하나로 이어진다.
이때 위험은 단일 기능이 아니라 출처 설계와 권한 인수인계에 있다. runtime 경계 관점에서는 “이 skill 하나가 스스로 선을 넘는가”만 문제가 아니다. “agent가 여러 skill을 연속 호출한 뒤 읽기, 판단, 쓰기, 네트워크 접근이 새로운 경로로 이어지는가”도 문제다. 팀이 이미 여러 skill을 쌓기 시작했다면 이 글도 이어서 볼 수 있다. 충돌의 근본 해법은 중재가 아니라 출처 설계에 있다. 설치 전 점검은 “이 skill 하나가 안전한가”만 보는 일이 아니다. “이 skill이 기존 agent 생태계에 들어왔을 때 다른 능력과 결합해 새로운 경로를 만들지 않는가”를 보는 일이기도 하다.
내일부터 먼저 추가할 수 있는 최소 단계 하나
아직 완전한 절차가 없다면 보안 플랫폼이 완성될 때까지 기다릴 필요는 없다. 내일부터 이 단계 하나를 먼저 추가하자.
누군가 서드파티 AI agent skill을 설치하려 할 때마다 6줄짜리 설치 신청 카드를 붙이게 한다.
- 출처 버전: skill 출처 URL, 버전 또는 commit hash.
- 단일 작업: 이 skill이 해결할 단일 작업.
- 데이터 권한: 이 skill이 읽어야 하는 디렉터리와 도구.
- 네트워크 필요: 네트워크가 필요한지 여부. 필요하다면 예상 도메인 목록.
- 시험 데이터: 첫 dry-run에 사용할 가짜 데이터셋.
- 이상 시 정리: 이상이 있을 때 owner가 누구인지, token을 어떻게 철회하거나 비활성화할지.
owner는 “마지막 판단과 마무리를 책임지는 사람”이다. 이 카드는 예쁠 필요는 없지만, 다음 사람이 이해할 수 있어야 한다. 왜 설치하려는지, 무엇을 허용하려는지, 그것이 선을 넘으면 누가 처리할지 말이다.
이 카드가 있으면 스캐너는 승인 절차를 대체하는 것이 아니라 승인 절차의 한 부분이 된다.
생활 4컷 만화

- 서드파티 skill은 일상 워크플로에 넣기 전에 검사해야 하는 외부 능력으로 본다.
- 설치 전에 출처, 버전, 권한, 민감 데이터 접근, 네트워크 필요 여부를 확인한다.
- 가짜 데이터와 격리 환경에서 시험 실행하고 파일, 네트워크, 도구 호출, 출력을 관찰한다.
- 결과는 go, conditional go, no-go 중 하나로 정리하고 owner가 비활성화, token 철회, 제한 추가를 책임진다.
AI 정리 카드
이 글의 판단을 내 체크리스트로 바꾸기 이것은 요약 프롬프트가 아니다. 글의 방법을 내 워크플로, 제약, 데이터, 의사결정 목표에 맞춰 되돌리는 지시문이다.
이 BMC 미니 레슨을 내 상황에 적용하고 싶다: AI agent skill이 스캔을 통과했는데도, 설치 전에 왜 실행 경계를 다시 봐야 할까?
이 글이 다루는 구체적인 문제: 서드파티 AI agent skill이 스캔을 통과했다고 해서 실행 중에도 반드시 안전하다는 뜻은 아니다. 이 미니 레슨은 하나의 go/no-go 표로 출처, 권한, 샌드박스, 네트워크, 민감 데이터 경계를 점검한다.
글 URL: https://boosterminiclass.com/ko/posts/ai-agent-skill-install-runtime-risk-checklist/
글을 요약만 하지 말아 달라. 먼저 다음 3가지를 확인하는 질문을 해 달라.
1. 내가 지금 다루는 실제 워크플로 또는 의사결정은 무엇인가.
2. 이 흐름에 어떤 데이터, 권한, 계정, 비용, 외부 실행이 관련되는가.
3. 오늘 필요한 결과가 중단/진행 판단, 시험 도입 체크리스트, 인수인계 템플릿, 위험 등급 중 무엇인가.
그다음 이 글의 프레임워크로 내 상황을 점검해 달라:
다음 형식으로 출력해 달라:
- 지금 바로 진행, 제한적으로 시험, 일단 중단 중 무엇인지 한 문장 판단;
- 프레임워크를 내 상황에 적용한 표: 준비됨 / 근거 부족 / 사람 확인 필요;
- 오늘 할 수 있는 가장 작은 한 단계;
- 담당자, 로그, 되돌리기, 사람 검토가 필요한 지점.
AI가 제약이나 출처를 확인하지 않으면, 결과를 쓰기 전에 추가로 질문한다.
참고 자료
arXiv:Cloak and Detonate: Scanner Evasion and Dynamic Detection of Agent Skill Malware — https://arxiv.org/pdf/2607.02357(2026-07-02)
The Hacker News:SkillCloak Lets Malicious AI Agent Skills Evade Static Scanners with Self-Extracting Packing — https://thehackernews.com/2026/07/new-skillcloak-technique-lets-malicious.html(2026-07-06)
NVIDIA SkillSpector:SkillSpector README — https://github.com/NVIDIA/SkillSpector(2026-07-06)



