2026년 6월 22일, 보안 회사 AIR가 발표한 실험 결과는 AI 에이전트 생태계의 구조적 취약점을 정면으로 드러냈다. AI 에이전트는 외부에서 제작한 스킬(Skill) 을 설치해 특정 기능을 수행한다. AIR는 Instagram 광고 하나로 가짜 스킬을 배포했고, 이 스킬은 Cisco·Nvidia·skills.sh 스캐너 3종을 전부 통과한 뒤 약 2만 6천 개 에이전트에 설치됐다. 실험 페이로드는 이메일 주소 수집에 그쳤지만, AIR는 동일한 경로를 실제 공격에 활용했다면 파일 탈취부터 내부 시스템 접근까지 가능했다고 밝혔다.
이보다 3주 앞선 6월 3일, Trail of Bits는 별도 연구에서 1시간 이내에 ClawHub·Cisco·skills.sh 스캐너 전부를 우회하는 기법 4가지를 시연했다. Orca Security와 Straiker도 독립적으로 유사한 취약점을 확인했다. 세 연구는 각자 다른 마켓플레이스를 대상으로 했으나 같은 결론에 도달했다. AI 에이전트 스킬 공급망은 현재 어떤 스캐너도 안전하게 지키지 못하고 있다.
AI 에이전트 스킬 생태계가 어떻게 작동하는가
AI 에이전트는 단독으로 작동하지 않는다. 이메일 초안 작성, 코드 생성, 파일 요약처럼 특정 기능을 수행하기 위해 외부에서 제작한 스킬(Skill) 을 설치해 연동한다. 스킬은 브라우저 확장이나 스마트폰 앱과 개념이 비슷하다.
결정적 차이는 스킬이 에이전트의 지시를 받아 사용자 권한으로 코드를 직접 실행한다는 점이다. 사용자가 접근 가능한 파일, 이메일, 내부 시스템이 스킬의 실행 범위 안에 들어온다.
현재 주요 스킬 배포 채널로는 GitHub 기반의 agents 리포지터리(별 3만 6천 개, 등재 스킬 156개), OpenClaw, skills.sh 등이 있다. 이들 플랫폼은 제출된 스킬을 자체 보안 스캐너로 검토한 뒤 승인한다. 문제는 이 스캔이 제출 시점에 단 한 번만 이뤄진다는 점이다. 승인 이후 스킬이 참조하는 외부 자원이 바뀌어도 재스캔 트리거가 존재하지 않는다.
AIR 실험 전말: 인스타그램 광고 하나로 2만 6천 개 도달
AIR는 brand-landingpage라는 이름의 스킬을 제작했다. 마케터와 디자이너를 위한 랜딩 페이지 생성 도구로 설명을 달았다. 스킬 내부에는 stitch-design.ai라는 도메인을 참조하는 코드가 담겼다. 외형상 Google의 디자인 도구 stitch.withgoogle.com과 혼동하기 쉬운 이름이다.
제출 당시 이 도메인은 실제 Google 문서로 리다이렉트되도록 설정됐다. 스캐너는 목적지가 합법적 사이트이므로 안전하다고 판정했다. 스킬이 Cisco·Nvidia·skills.sh 스캐너 3종을 통과해 마켓플레이스에 올라간 뒤, AIR는 Instagram 광고를 집행했다. 타겟 광고는 마케터·영업·디자이너를 향했다.
Instagram 광고가 충분히 노출된 뒤, AIR는 stitch-design.ai가 가리키는 목적지를 이메일 주소 수집 스크립트로 교체했다. 이미 제출 시점에 승인을 마친 스캐너는 이 변경을 알아채지 못했다. 결과적으로 약 2만 6천 개 에이전트가 이 스킬을 설치했다. AIR에 따르면 기업 계정 에이전트도 포함됐다.
AIR는 연구 목적으로 페이로드를 이메일 수집에만 제한했다. 동일한 경로를 실제 공격에 활용했다면 에이전트가 접근 가능한 파일 읽기, 데이터 이동, 내부 시스템 접근 모두 가능했다.
보안 스캐너가 왜 못 잡는가
AIR 실험에서 스캐너가 실패한 이유는 단순 구현 부족이 아니라 설계 구조의 한계 때문이다.
첫째, 스캔은 제출 시점 1회뿐이다. 스킬이 마켓플레이스에 올라간 뒤 참조 도메인의 콘텐츠가 바뀌어도 재검증 트리거가 없다. Orca Security는 이를 독립적으로 확인했다. "스캔이 스킬 생성 시와 인기도 임계값 초과 시 두 번 실행되는데, 그 사이에 악성 수정이 이뤄질 수 있다."
둘째, 공격자는 무한히 반복 시도할 수 있다. 스캐너는 고정된 알고리즘으로 1회 판정한다. 공격자는 결과가 '탐지'이면 페이로드를 조금씩 바꿔 재제출하면 그만이다. 비대칭 구조다. 방어자는 한 번에 통과시켜야 하고, 공격자는 통과할 때까지 반복할 수 있다.
셋째, 컨텍스트 윈도우 한계로 파일 전체를 읽지 못한다. Trail of Bits가 ClawHub 스캐너에 시험한 결과가 이를 보여준다. 악성 코드 앞에 10만 줄 빈 줄을 삽입하자 스캐너가 파일을 잘라(truncation) 분석하다 끝부분의 악성 코드를 놓쳤다.
넷째, 설치 수 자체도 조작 가능하다. Orca Security는 설치 횟수 표시가 인증 없는 GET 요청으로 임의 조작될 수 있다고 밝혔다. 1만 번 설치된 인기 스킬처럼 보이게 만들어 사용자 신뢰를 높이는 조작이 가능하다.
Trail of Bits가 시연한 4가지 우회 기법
Trail of Bits는 2026년 6월 3일 발행한 보고서에서 4가지 기법으로 ClawHub·Cisco·skills.sh 스캐너를 모두 통과했다고 밝혔다. 3가지는 1시간 이내에 구현했고, 프롬프트 인젝션만 수 시간의 반복 시도가 필요했다.
개행 패딩은 앞서 설명한 컨텍스트 윈도우 한계를 직접 겨냥한다. 악성 코드 앞에 빈 줄 10만 줄을 삽입해 스캐너가 파일 끝을 읽기 전에 분석을 중단하게 만든다. 아카이브 난독화는 .docx 형식이 실제로는 ZIP 파일이라는 점을 이용해 압축 내부의 악성 스크립트를 스캐너가 열어보지 않는 구조를 활용한다.
바이트코드 오염은 파이썬 .pyc 파일을 오염시켜 환경 변수를 탈취하는 방식으로, 소스가 아닌 컴파일 결과물만 스캔하는 스캐너를 겨냥한다. 프롬프트 인젝션은 LLM 기반 가드 모델이 악성 코드를 포함한 스킬을 안전하다고 판정하도록 설명 텍스트를 조작하는 기법이다.
주목할 점이 하나 있다. Trail of Bits는 정상 스킬도 탐지 회피처럼 보이는 코드를 포함한다고 밝혔다. Anthropic의 공식 MS Office 스킬이 LD_PRELOAD 기법을 사용하는데, 스캐너가 이를 LOW-severity로 분류했다. 합법 코드와 악성 코드의 경계가 스캐너 수준에서는 명확하지 않다.
에이전트 권한이 공격자 권한이 된다
이 위협이 기존 소프트웨어 공급망 공격과 다른 점은 에이전트의 권한 범위 때문이다. 에이전트는 사용자를 대신해 파일, 이메일, 내부 시스템에 접근하도록 설계됐다. 악성 스킬이 설치되면 이 권한 전체가 공격자에게 넘어간다.
Straiker가 분석한 Bob-P2P 캠페인은 이 원리를 실제 공격으로 구현했다. Clawhub에서 71개의 악성 Claude 스킬을 배포해 에이전트들이 솔라나 지갑 개인 키를 평문으로 저장하고 공격자 인프라로 결제를 우회하도록 유도했다. 악성 스킬은 에이전트-에이전트 신뢰 관계를 이용해 인간 개입 없이 자동으로 측면 이동했다.
기업 내부 문서 검색 에이전트라면 문서 전체가, 코드 생성 에이전트라면 소스 코드 저장소가 같은 방식으로 노출될 수 있다. SecurityWeek가 인용한 연구자 Dan Regalado의 분석처럼 "공격 방법론은 무한히 반복 가능하고 다양한 시나리오로 확장된다."
MITRE ATT&CK 프레임워크 관점에서 이 공격 유형은 T1195.001(소프트웨어 의존성 공급망 침해), T1199(신뢰 관계 악용), T1566.002(스피어피싱 링크)에 매핑된다.
한국 실무 환경에 주는 함의
국내에서도 Microsoft Copilot, Cursor, 자체 구축 AI 에이전트의 도입이 빠르게 확산되고 있다. 이들 환경에서 스킬이나 플러그인은 에이전트를 통해 기업 내부 데이터에 직접 접근한다. 앞서 살펴본 것처럼 이 접근 권한이 그대로 공격자에게 넘어간다는 점이 핵심 위협이다.
AIR 실험이 드러낸 구조적 취약점은 특정 마켓플레이스만의 문제가 아니라 스킬 배포 모델 전체의 설계 결함이다. 2만 6천 개 에이전트에 단 하나의 광고로 악성 스킬이 배포됐다는 사실은, 국내 기업이 외부 스킬을 도입할 때 스캐너 통과 여부보다 스킬의 출처·권한 범위·외부 도메인 참조를 별도로 검토해야 하는 이유를 보여준다.
참고 자료
관련 글 더 보기
안내 및 법적 고지
AI 활용 안내
이 글은 AI(Claude)의 도움을 받아 작성되었습니다.
인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항
본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다.
언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라
처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.