🟡 🛡️ 보안 게시일: · 4 분 읽기 ·

Agent Data Injection: AI 에이전트 방어를 우회하는 새로운 공격 클래스

편집 일러스트: AI 에이전트에 대한 데이터 인젝션 공격 및 Claude Code 취약성

서울대학교, 인디애나대학교, 위스콘신대학교 연구자들이 Agent Data Injection(ADI)을 소개합니다. ADI는 에이전트의 신뢰할 수 있는 데이터 구조에 악성 데이터를 삽입하는 새로운 유형의 공격으로, Claude Code, Codex, Gemini CLI에 대한 임의 클릭 공격 및 원격 코드 실행을 달성하며 기존 방어를 우회합니다.

🤖

이 기사는 AI가 1차 출처를 기반으로 생성했습니다.

AI 에이전트의 보안 연구는 지금까지 한 가지 공격 클래스에 주로 초점을 맞췄습니다: 명령어 인젝션. 여기서 공격자는 에이전트가 처리하는 신뢰할 수 없는 데이터에 가짜 명령을 삽입하여 에이전트가 이를 합법적인 사용자 지시로 처리하도록 유도합니다. 커뮤니티는 그러한 시도를 감지하고 차단하도록 설계된 여러 방어를 개발했습니다. 그러나 서울대학교, 인디애나대학교, 위스콘신대학교 연구자들이 2026년 7월 6일 발표한 논문에서 그 방어를 문자 그대로 우회하는 공격 클래스를 문서화합니다 — 완전히 다른 원리에 기반하여 작동합니다.

Agent Data Injection이란 무엇이며 왜 지금까지 보이지 않았나요?

Agent Data Injection(ADI)은 프롬프트를 표적으로 삼지 않습니다. 대신 악성 콘텐츠는 에이전트가 신뢰할 수 있는 데이터로 처리하는 구조에 삽입됩니다 — 리소스 식별자 및 데이터 소스와 같은 메타데이터, 또는 도구 응답과 도구 호출 구조에 사용되는 형식. 에이전트는 이러한 구조를 신뢰할 수 없는 텍스트를 대하는 회의적인 방식으로 검사하지 않습니다.

차이는 근본적입니다. 명령어 인젝션은 자연어로 공격을 위장하려 합니다 — 공격자가 합법적인 명령처럼 보이는 텍스트를 작성합니다. ADI는 그렇게 하지 않습니다: 공격은 에이전트가 정상적인 작업 프로토콜의 일부라고 가정하는 구조화된 데이터에 인코딩됩니다. 기존 방어는 있어서는 안 되는 곳에서 명령어 내용을 찾았습니다. ADI는 그 형태와 위치를 바꿉니다.

임의 클릭에서 공급망 침해까지 세 가지 공격 클래스

연구자들은 각각 다른 목표와 메커니즘을 가진 세 가지 별도의 ADI 공격 클래스를 식별합니다:

임의 클릭 공격은 사용자를 대신하여 자율적으로 사용자 인터페이스를 탐색하고 작업을 실행하는 웹 에이전트를 표적으로 합니다. 웹 콘텐츠에 내장된 악성 메타데이터 — 가짜 요소 식별자 또는 조작된 브라우저 API 응답 — 가 에이전트를 승인되지 않은 요소를 클릭하도록 유도하여 잠재적으로 구매를 활성화하거나, 거래를 확인하거나, 민감한 데이터를 노출시킵니다.

원격 코드 실행(RCE) 공격은 코드를 작성, 분석하고 실행하는 코딩 에이전트를 표적으로 합니다. ADI는 에이전트가 파일 시스템이나 디버거와 같은 도구로부터 다시 받는 정보인 도구 호출 응답 형식을 조작하여 에이전트가 사용자 환경에서 공격자의 코드를 실행하도록 합니다.

공급망 공격은 동일한 메커니즘을 사용하여 개발 프로세스를 손상시킵니다: 공격자가 코딩 에이전트가 다운로드하고 통합하는 패키지, 라이브러리, 개발 의존성에 대한 합법적인 데이터처럼 보이는 것에 악성 코드를 삽입합니다.

취약한 상업용 에이전트: Claude Code, Codex, Gemini CLI

연구자들은 실험적 시스템에서만 공격을 시연한 것이 아니라 — 사용자에게 제공되는 실제 상업용 제품을 테스트했습니다:

임의 클릭 공격의 경우: Claude in Chrome, Antigravity, Nanobrowser가 에이전트가 처리하는 웹 콘텐츠에 내장된 악성 메타데이터에 취약성을 보였습니다.

RCE 및 공급망 공격의 경우: 시장의 세 주요 코딩 에이전트인 Claude Code, Codex, Gemini CLI — 가 도구 응답 형식 조작에 취약성을 보였습니다.

영향을 받는 시스템의 폭은 우연이 아닙니다: 저자들이 지적하듯, ADI는 이 모든 에이전트들의 특정 구현 오류가 아니라 공통된 근본적인 설계 결함을 표적으로 합니다.

에이전트 설계의 근본적인 보안 결함

저자들이 식별한 근본 원인은 명확합니다: 현재 에이전트들은 신뢰할 수 있는 데이터와 신뢰할 수 없는 데이터를 격리하지 않습니다. 이것은 구현의 엣지 케이스가 아닙니다 — 현대 에이전트 시스템의 설계에서 일관되게 무시되는 근본적인 보안 원칙입니다.

소프트웨어 엔지니어링과의 비교가 유용합니다: SQL 인젝션 공격은 수십 년간 애플리케이션이 SQL 코드와 사용자 데이터를 분리하지 않는다는 사실을 악용했습니다. 해결책(매개변수화된 쿼리, prepared statements)은 필터링이 아닌 아키텍처 변경이 필요했습니다. 저자들은 ADI에 대해 유사한 사고를 제안합니다: 데이터에서 명령어 내용을 찾는 필터를 추가하는 것만으로는 충분하지 않습니다. 에이전트 런타임 수준에서의 아키텍처 격리가 필요합니다.

ADI는 기존 IPI 방어를 우회합니다. 그 방어들이 공격이 명령 형태로 온다고 가정하기 때문입니다 — 합법적으로 보이는 구조화된 데이터 형태가 아닌. 에이전트가 출처와 무결성 검증 없이 모든 구조화된 데이터를 신뢰하는 한, 그 격차는 열린 채로 남습니다.

논문은 19페이지, 19개 그림, 7개 표를 포함하며 arXiv(2607.05120)에서 이용 가능합니다. 저자는 Woohyuk Choi, Juhee Kim, Taehyun Kang, Jihyeon Jeong, Luyi Xing, Byoungyoung Lee입니다.

자주 묻는 질문

ADI는 알려진 명령어 인젝션 공격과 어떻게 다른가요?
명령어 인젝션은 에이전트가 승인되지 않은 명령을 받도록 자연어 프롬프트를 조작합니다. ADI는 메타데이터, 리소스 식별자, 도구 응답 형식 같은 신뢰할 수 있는 데이터 구조로 위장한 악성 데이터를 삽입하여 프롬프트 자체가 아닌 구조화된 데이터에 대한 에이전트의 신뢰 메커니즘을 이용합니다.
어떤 실제 상업용 에이전트가 ADI 공격에 취약했나요?
연구자들은 Claude in Chrome, Antigravity, Nanobrowser에 대한 임의 클릭 공격, 그리고 Claude Code, Codex, Gemini CLI에 대한 원격 코드 실행 및 공급망 공격을 시연했습니다. 모두 연구 당시 사용자에게 제공된 실제 상업용 제품입니다.
ADI 취약성의 근본 원인은 무엇이며 어떻게 해결하나요?
근본 원인은 에이전트 아키텍처에서 신뢰할 수 있는 데이터와 신뢰할 수 없는 데이터의 격리 부재입니다. 저자들은 이것이 현재 에이전트들이 적용하지 않는 근본적인 보안 원칙이며, 해결에는 단순히 새 필터를 추가하는 것이 아닌 아키텍처 수준의 변경이 필요하다고 강조합니다.