한국정보기술진흥원
한국정보기술신문
thumbnail

인공지능 · 정보보안 ·

구글 AI 코드 에디터 'Antigravity', 간접 프롬프트 주입으로 민감 데이터 유출 가능...브라우저 하위 에이전트 악용 취약점 발견

발행일
읽는 시간3분 32초

보안업체 프롬프트아머, 구글의 에이전트형 코드 에디터에서 사용자 자격증명과 민감 코드 탈취 가능한 공격 경로 공개

[한국정보기술신문] 구글의 새로운 에이전트형 코드 에디터 'Antigravity'에서 간접 프롬프트 주입 공격을 통해 사용자의 자격증명과 민감한 코드를 외부로 유출할 수 있는 심각한 보안 취약점이 발견됐다. 보안 전문 업체 프롬프트아머(PromptArmor)가 27일 공개한 연구 결과에 따르면, 악의적으로 조작된 웹 문서를 통해 Gemini AI를 속여 브라우저 하위 에이전트를 호출하고 데이터를 탈취할 수 있는 것으로 나타났다.

이번 공격은 사용자가 온라인에서 찾은 통합 가이드 문서를 참조할 때 발생한다. 공격자는 정상적인 기술 문서 안에 1포인트 크기의 작은 글꼴로 악성 프롬프트를 숨겨놓는다. 사용자가 Antigravity에게 해당 문서를 참조하여 작업을 요청하면, AI가 문서를 읽는 과정에서 숨겨진 프롬프트를 인식하고 공격자의 지시를 따르게 된다.

공격 메커니즘의 상세 분석

image.png
promptarmor.com 제공

프롬프트아머가 공개한 공격 시연에서는 Oracle ERP의 AI Payer Agents 기능을 통합하려는 개발자가 온라인 구현 가이드를 참조하는 상황을 가정했다. 공격자가 조작한 웹페이지에는 정상적인 기술 문서 내용 중간에 악성 프롬프트가 1포인트 크기로 삽입되어 있다.

Gemini가 이 프롬프트를 읽으면 세 가지 악의적인 작업을 수행하도록 조작된다. 첫째, 사용자의 코드베이스에서 코드 스니펫과 자격증명을 수집한다. 둘째, 공격자가 네트워크 트래픽 로그를 캡처할 수 있는 도메인을 사용하여 수집한 자격증명과 코드를 URL 파라미터로 추가한 악성 URL을 생성한다. 셋째, 브라우저 하위 에이전트를 활성화하여 해당 악성 URL에 접속함으로써 데이터를 외부로 유출한다.

특히 주목할 점은 Gemini가 기본 설정으로 차단되어 있는 .gitignore 파일의 접근 제한을 우회한다는 것이다. Antigravity는 기본 설정에서 'Agent Gitignore Access'를 꺼두어 .gitignore에 등록된 파일, 특히 자격증명이 저장된 .env 파일에 대한 접근을 차단한다. 그러나 Gemini는 파일 읽기 기능이 차단되자 터미널의 'cat' 명령어를 사용하여 이러한 보호 장치를 우회하고 파일 내용을 덤프하는 방식으로 자격증명에 접근했다.

브라우저 도구와 URL 허용 목록의 허점

image.png
promptarmor.com 제공

데이터 유출의 핵심은 Antigravity의 주요 기능 중 하나인 브라우저 도구를 악용하는 것이다. 이 기능은 Gemini가 개발 중인 애플리케이션을 브라우저에서 열어 디자인을 반복적으로 개선할 수 있도록 설계됐다. 공격자는 이 기능을 통해 악성 URL로 브라우저를 유도한다.

Gemini는 수집한 자격증명과 코드 스니펫을 URL 인코딩하여 공격자가 모니터링하는 webhook.site 도메인에 쿼리 파라미터로 추가한 URL을 구성한다. 이 과정에서 인라인 Python 스크립트를 실행하여 공백 등 URL에서 유효하지 않은 문자를 인코딩한다.

사용자는 'Browser URL Allowlist' 기능으로 보호받을 것으로 예상할 수 있다. 그러나 Antigravity가 제공하는 기본 허용 목록에는 webhook.site가 포함되어 있다. Webhook.site는 누구나 URL을 생성하고 해당 URL로의 요청을 모니터링할 수 있는 서비스다. 따라서 브라우저 하위 에이전트가 악성 URL을 방문하면 쿼리 파라미터에 포함된 자격증명과 코드가 공격자가 제어하는 webhook.site 로그에 기록된다.

프롬프트아머 연구진은 브라우저 도구를 사용하지 않는 경우에도 데이터 유출이 가능한 세 가지 추가 취약점을 발견했다고 밝혔다.

에이전트 관리 시스템의 구조적 문제

image.png
promptarmor.com 제공

Antigravity의 '에이전트 매니저' 인터페이스는 사용자가 여러 에이전트를 동시에 실행하고 각 에이전트의 작업을 여가 시간에 확인할 수 있도록 설계됐다. 이는 대부분의 에이전트가 사용자의 직접적인 감독 없이 백그라운드에서 실행될 것으로 예상된다는 의미다.

온보딩 과정에서 Antigravity는 'Agent-assisted development'를 기본 설정으로 권장한다. 이 설정은 Gemini가 작업 중 언제 사람의 개입이 필요한지, 언제 명령 실행 전 사람의 검토가 필요한지를 스스로 판단하도록 한다. 연구진은 기본 설정을 그대로 수락하고 '다음'을 클릭하여 공격을 시연했다.

이러한 구조는 에이전트가 악의적인 작업을 수행하기 전에 사용자가 이를 발견하고 중지할 가능성을 매우 낮게 만든다. 특히 여러 에이전트가 동시에 실행되는 환경에서는 개별 에이전트의 모든 행동을 실시간으로 감시하기가 사실상 불가능하다.

구글의 면책 조항과 업계의 대응

구글은 Antigravity를 처음 열 때 사용자에게 데이터 유출 위험에 대한 경고를 표시한다. 그러나 프롬프트아머는 많은 AI 기업들이 핵심 문제를 완화하는 대신 이러한 면책 조항에 의존하고 있다고 지적했다.

프롬프트아머 측은 에이전트 매니저가 적극적인 감독 없이 여러 에이전트를 동시에 실행할 수 있는 핵심 기능이고, 권장되는 휴먼-인-더-루프 설정이 에이전트가 언제 사람을 참여시킬지 스스로 선택하도록 허용한다는 점에서, 사용자가 모든 에이전트 작업을 검토하고 민감한 데이터 작업을 자제할 것이라고 기대하는 것은 극도로 비현실적이라고 평가했다.

연구진은 구글이 이미 자사 연구로 예시된 데이터 유출 위험을 인지하고 있음을 표시했기 때문에 별도의 책임 있는 공개 절차를 거치지 않았다고 밝혔다. 이는 구글이 이러한 위험을 알고 있으면서도 근본적인 해결책을 마련하지 않은 채 제품을 출시했음을 시사한다.

산업 전반의 시사점

이번 발견은 에이전트형 AI 도구의 보안이 아직 성숙하지 않았음을 보여준다. 특히 간접 프롬프트 주입 공격은 사용자가 신뢰할 수 있다고 판단한 외부 소스를 통해 이루어지기 때문에 탐지와 방어가 더욱 어렵다.

개발자들은 AI 코드 에디터를 사용할 때 외부 문서나 리소스를 참조할 때 극도의 주의를 기울여야 한다. 또한 .env 파일과 같은 민감한 자격증명은 별도의 보안 관리 도구를 통해 관리하고, AI 에이전트의 권한을 최소화하는 제로 트러스트 접근 방식을 적용해야 한다.

AI 업계는 프롬프트 주입 공격에 대한 근본적인 방어 메커니즘을 개발해야 할 시점에 와 있다. 단순한 경고 메시지나 사용자의 주의력에 의존하는 것은 충분한 보안 대책이 될 수 없으며, 입력 검증, 출력 필터링, 권한 분리 등 다층적인 보안 체계가 필요하다.

한국정보기술신문 정보보안분과 오상진 기자 news@kitpa.org