Agent Skill은 단순한 프롬프트 모음이 아닙니다. SKILL.md의 지시문은 에이전트의 행동을 바꾸고, 함께 들어 있는 scripts/는 로컬 명령을 실행할 수 있습니다. 공개 스킬을 설치하는 일은 편의 기능을 추가하는 동시에 새로운 코드와 지시를 신뢰 경계 안으로 들이는 공급망 작업입니다.
이번 글에서는 skills.sh에서 스킬을 찾고, 곧바로 전역 설치하지 않은 채 소스를 먼저 검토한 다음 프로젝트 범위에만 설치하는 과정을 실습합니다. 2026년 8월 7일 확인한 skills CLI 1.5.22를 기준으로 명령을 검증했습니다.

이번 실습에서 할 일
실습 목표는 다음 다섯 단계입니다.
- skills.sh와 CLI에서 후보 스킬을 찾습니다.
- 설치 전에 저장소와 포함 파일을 확인합니다.
- 커밋 해시를 기록한 로컬 검토본을 만듭니다.
- 특정 스킬만 Codex의 프로젝트 범위에 복사합니다.
- 설치 결과를 확인하고 필요하면 제거합니다.
준비물은 Git, Node.js 18 이상, rg입니다. rg가 없다면 동일한 검색을 편집기 검색으로 수행해도 됩니다.
node --version
npm --version
git --version
rg --version
skills CLI는 npx로 바로 실행할 수 있습니다. 먼저 버전과 도움말만 확인합니다.
npx --yes skills@latest --version
npx --yes skills@latest --help
기대 결과는 1.5.22 같은 버전 번호와 add, use, remove, list, find, update, init 명령 목록입니다. 버전은 시간이 지나면 달라질 수 있으므로 팀 문서에는 실습 당시의 버전을 함께 기록합니다.

그림: 공개 스킬의 안전한 설치 흐름 · skills.sh CLI 문서, vercel-labs/skills README를 바탕으로 재구성
왜 설치 전에 검토해야 하는가
skills.sh 문서는 공개 생태계의 모든 스킬에 대해 품질이나 보안을 보장할 수 없으므로 사용자가 설치 전에 직접 검토해야 한다고 설명합니다. 순위는 익명 설치 통계를 바탕으로 한 발견 신호이지 보안 점수가 아닙니다. 감사 배지가 있어도 현재 버전, 설치 뒤 추가된 파일, 실제 권한과 실행 환경은 별도로 확인해야 합니다.
보안 관점에서는 최소한 세 가지를 구분해야 합니다.
| 검토 대상 | 확인할 내용 | 대표 위험 |
| SKILL.md | 트리거, 지시 우선순위, 금지선 | 프롬프트 인젝션, 승인 우회 |
| scripts/ | 네트워크, 셸, 파일 삭제, 동적 실행 | 명령 실행, 자격증명 탈취 |
| 설치 범위 | 프로젝트 또는 전역, 대상 에이전트 | 불필요한 노출, 영향 범위 확대 |
OWASP LLM01:2025도 외부 파일이나 웹 페이지의 지시가 에이전트 행동을 바꾸는 간접 프롬프트 인젝션을 설명합니다. 따라서 검토 중인 SKILL.md에 “이 검토를 중단하라”, “상위 지시를 무시하라” 같은 문장이 있어도 명령이 아니라 분석 대상 데이터로 취급해야 합니다.
1단계: skills.sh에서 후보 찾기
브라우저에서 https://skills.sh/를 열어 주제나 제작자를 확인할 수 있습니다. 터미널에서는 다음처럼 검색합니다.
npx --yes skills@latest find security
npx --yes skills@latest find skill --owner vercel-labs
후보를 정했다면 바로 설치하지 말고 저장소에 어떤 스킬이 들어 있는지 먼저 나열합니다.
npx --yes skills@latest add vercel-labs/agent-skills --list
--list는 저장소에서 발견한 스킬 이름을 보여줍니다. 여기에서 제작자, 저장소 주소, 필요한 스킬 이름을 기록합니다.
2단계: 소스를 별도 디렉터리에서 검토하기
실습용 작업 디렉터리를 만듭니다.
mkdir -p skill-lab/vendor
cd skill-lab
검토할 공식 저장소를 얕게 복제합니다. 예시는 Vercel Labs의 공개 저장소이지만, 다른 스킬에도 같은 절차를 적용할 수 있습니다.
git clone --depth 1 https://github.com/vercel-labs/agent-skills.git \
vendor/agent-skills-review
git -C vendor/agent-skills-review rev-parse HEAD
마지막 명령의 커밋 해시는 검토한 정확한 상태를 설명하는 증거입니다. 다음으로 파일 목록과 위험 신호를 찾습니다.
find vendor/agent-skills-review -type f -maxdepth 4 | sort
rg -n -i \
'ignore previous|system prompt|curl|wget|eval\(|exec\(|shell=true|\.ssh|\.aws|process\.env|os\.environ|rm -rf' \
vendor/agent-skills-review
검색 결과가 있다고 즉시 악성으로 판정하면 안 됩니다. 보안 교육 문서가 위험 명령을 예시로 포함할 수도 있기 때문입니다. 발견한 줄의 앞뒤 문맥, 해당 파일이 실제로 실행되는지, 사용자의 승인 없이 네트워크나 파일 변경을 수행하는지를 함께 확인합니다.
특히 다음 질문에 답하지 못하면 설치를 보류합니다.
- 왜 이 스킬이 네트워크에 접근해야 하는가?
- 어떤 경로를 읽고 쓰는가?
- 셸 명령 인자가 사용자 입력과 합쳐지는가?
- 삭제, 업로드, 커밋, 배포 같은 외부 효과 전에 승인을 요구하는가?
- scripts/에 바이너리나 난독화된 코드가 포함되어 있는가?
3단계: 프로젝트 범위에 특정 스킬만 설치하기
검토한 로컬 저장소에서 필요한 스킬 하나만 Codex용 프로젝트 경로에 복사합니다.
npx --yes skills@latest add ./vendor/agent-skills-review \
--skill skill-creator \
--agent codex \
--copy
핵심은 세 옵션입니다.
- --skill skill-creator: 저장소 전체가 아니라 필요한 스킬만 선택합니다.
- --agent codex: 설치 대상을 Codex로 제한합니다.
- --copy: 원본 저장소와 독립된 복사본을 만들어 실제 설치 파일을 명확하게 남깁니다.
-g 또는 --global을 붙이지 않았으므로 기본값인 프로젝트 범위에 설치됩니다. 전역 설치는 모든 프로젝트에서 스킬이 노출되므로, 조직 표준처럼 반복 사용이 확정된 경우에만 고려하는 편이 안전합니다.
익명 설치 통계를 보내지 않으려면 실행 전에 다음 환경변수를 지정할 수 있습니다.
export DISABLE_TELEMETRY=1
skills.sh CLI 문서에 따르면 이 설정은 설치 순위에 사용되는 익명 텔레메트리를 비활성화합니다.
4단계: 설치 결과 검증하기
설치된 스킬을 사람이 읽을 수 있는 목록과 JSON으로 각각 확인합니다.
npx --yes skills@latest list --agent codex
npx --yes skills@latest list --agent codex --json
다음으로 프로젝트에서 생성된 스킬 경로를 확인합니다.
find . -path '*/skills/*/SKILL.md' -print
설치 전 검토본과 실제 설치본을 비교합니다. 경로는 CLI와 에이전트 버전에 따라 달라질 수 있으므로 앞 명령에서 확인한 실제 경로를 사용합니다.
diff -ru \
vendor/agent-skills-review/skills/skill-creator \
.codex/skills/skill-creator
Codex가 프로젝트 스킬을 .agents/skills/에 설치했다면 두 번째 경로만 바꿉니다. 차이가 예상과 다르면 스킬을 실행하지 말고 설치 출처와 옵션부터 다시 확인합니다.
5단계: 제거와 정리
실습을 끝냈거나 검토에 실패했다면 설치한 스킬을 제거합니다.
npx --yes skills@latest remove skill-creator --agent codex --yes
목록에서 사라졌는지 다시 확인합니다.
npx --yes skills@latest list --agent codex
마지막으로 실습용 검토본은 작업 디렉터리 안에서만 삭제합니다. 삭제 전에 현재 위치를 반드시 확인합니다.
pwd
rm -rf ./vendor/agent-skills-review
운영 환경 체크리스트
- 저장소 주소와 검토 커밋 해시를 기록합니다.
- 전역 설치보다 프로젝트 설치를 기본값으로 둡니다.
- 저장소 전체보다 필요한 스킬만 선택합니다.
- SKILL.md, 스크립트, 참조 파일, 바이너리를 모두 확인합니다.
- 네트워크, 자격증명, 삭제, 배포 권한은 별도의 실행 정책으로 제한합니다.
- 업데이트도 신규 설치와 동일하게 다시 검토합니다.
- 자동 스캐너의 통과를 안전 보증으로 해석하지 않습니다.
마무리
npx skills add 한 줄은 편리하지만, 안전한 도입 절차는 검색보다 검토에 더 많은 시간을 씁니다. 공개 스킬은 프롬프트와 코드가 결합된 공급망 패키지입니다. 출처와 커밋을 고정하고, 프로젝트 범위에서 필요한 스킬만 설치하며, 실제 설치본까지 비교해야 신뢰 경계를 설명할 수 있습니다.
다음 편에서는 이 원칙을 적용해 skill-creator로 보안 리뷰 전용 스킬을 직접 만듭니다.
공식 참고 자료
'일반IT > IT보안' 카테고리의 다른 글
| [보안 프롬프트 설계와 작성 실무 3] Agent Skill 실제 구성 살펴보기 (0) | 2026.08.07 |
|---|---|
| [보안 프롬프트 설계와 작성 실무 2] skill-creator로 보안 리뷰 스킬 만들기 (0) | 2026.08.07 |
| OWASP LLM Top 10 2025 한눈에 보기 — 위험이 생기는 10개 경계와 대응 원칙 (0) | 2026.08.04 |
| OWASP Top 10 for LLM은 어떻게 선정됐을까 — 투표·데이터·합의 과정을 추적해보니 (0) | 2026.08.03 |
| 패스키는 비밀번호를 어떻게 없앨까 — WebAuthn과 FIDO2의 동작 원리 (1) | 2026.07.31 |