개발자가 ClawHub(AI Skill 마켓플레이스)에서 유용한 Skill(AI 에이전트의 기능을 확장하는 도구)을 발견하고 설치 명령어를 입력한다. 스캐너는 마크다운 지침서를 훑고 프롬프트 인젝션(AI에게 악의적인 지시를 내려 제어권을 뺏는 공격) 여부를 확인한다. 모든 검사 결과는 초록색 통과 표시로 뜬다. 하지만 스캐너가 무시한 폴더 속 .test.ts 파일이 실행되는 순간 시스템의 SSH 키와 환경 변수가 외부로 전송된다.

.test.ts 파일에 숨은 실행 경로와 13.4%의 오염도

Gecko Security(보안 연구 기업)의 Jeevan Jutla 연구원은 npx(노드 패키지 실행 도구)를 통해 Skill을 추가할 때 발생하는 취약점을 증명했다. 설치 프로그램은 Skill 저장소의 전체 디렉토리를 로컬 저장소로 복사한다. 이때 포함된 *.test.ts 파일은 Jest(자바스크립트 테스트 프레임워크)나 Vitest(빠른 속도의 자바스크립트 테스트 도구) 같은 도구에 의해 자동으로 발견된다. 이 도구들은 재귀적 탐색 패턴을 사용해 .agents 폴더 내부의 테스트 파일까지 찾아내 실행한다. 악성 페이로드는 테스트의 실제 검증 단계가 시작되기 전인 beforeAll 블록에서 즉시 작동한다.

SkillScan(AI Skill 보안 연구 프로젝트) 연구팀은 1월 15일 두 개의 주요 마켓플레이스에서 수집한 31,132개의 고유 Skill을 분석했다. 전체의 26.1%가 14가지 패턴의 취약점을 포함하고 있었다. 데이터 유출 관련 취약점은 13.3%, 권한 상승 취약점은 11.8%로 나타났다. 특히 실행 가능한 스크립트를 포함한 Skill은 지침만 있는 Skill보다 취약점을 가질 확률이 2.12배 높았다.

Snyk(보안 취약점 분석 플랫폼)은 2월 5일 기준으로 3,984개의 Skill을 전수 조사한 ToxicSkills 보고서를 발표했다. 전체 Skill의 13.4%에서 심각한 수준의 보안 문제가 발견됐다. 자동 스캔과 전문가 검토를 통해 총 76개의 악성 페이로드가 확인됐다. 이 중 8개는 보고서 발표 당시에도 ClawHub에서 여전히 다운로드 가능한 상태였다.

Cisco는 4월 21일 VS Code(마이크로소프트의 코드 편집기), Cursor(AI 기반 코드 편집기), Windsurf(AI 에이전트 통합 IDE)에 통합되는 AI Agent Security Scanner를 출시했다. 이 도구는 에이전트 상호작용 계층의 위협을 탐지하는 데 집중한다. 하지만 이 역시 번들로 포함된 테스트 파일은 검사 대상에서 제외한다.

에이전트 실행면과 개발자 실행면의 괴리

기존의 보안 스캐너들은 에이전트가 실제로 작동하는 지점인 실행면(Execution Surface)에만 집중했다. Snyk Agent Scan이나 VirusTotal Code Insight(파일 및 URL 분석 보안 서비스)는 프롬프트 인젝션이나 셸 명령어 실행을 잡아내는 데 능숙하다. 하지만 이번 공격은 에이전트가 아니라 개발자의 도구 체인(Toolchain)을 공략한다. 스캐너가 SKILL.md 파일의 안전성을 검증하는 동안, 테스트 러너는 그 옆에 놓인 .test.ts 파일을 실행해 로컬 권한을 획득한다.

공격 방식이 바뀐 지점은 신뢰의 전이 과정이다. 공격자는 깨끗한 SKILL.md 파일을 배치해 스캐너를 속인다. 실제 공격 코드는 tests/reviewer.test.ts 같은 파일에 숨겨 process.env(프로세스 환경 변수)나 ~/.ssh/ 폴더의 개인 키, ~/.aws/credentials 파일을 읽어 외부 서버로 전송한다. 테스트 결과가 성공하든 실패하든 상관없이 설정 단계에서 이미 데이터 유출이 완료된다.

개발자가 체감하는 위험은 협업 과정에서 증폭된다. .agents/skills/ 디렉토리는 팀원 간 공유를 위해 Git 저장소에 커밋되도록 설계되었다. GitHub의 기본 .gitignore(Git 추적 제외 설정 파일) 템플릿에는 .agents/ 폴더가 포함되어 있지 않다. 한 명의 개발자가 악성 Skill을 추가해 커밋하면, 해당 저장소를 클론하는 모든 팀원의 PC와 CI(지속적 통합 시스템) 파이프라인에서 악성 코드가 실행된다.

파이썬 환경에서도 유사한 노출 경로가 존재한다. pytest(파이썬 테스트 프레임워크)는 테스트 수집 단계에서 conftest.py(pytest의 설정 파일)를 자동으로 실행한다. 이를 차단하려면 pyproject.toml(파이썬 프로젝트 설정 파일)의 testpaths 제외 항목에 .agents를 명시적으로 추가해야 한다.

AI 에이전트의 보안 경계가 모델의 출력물을 넘어 개발자의 로컬 환경 전체로 확장되었다.