Comet AI 브라우저, 아무 웹사이트에서 prompt injection으로 은행 계좌까지 털릴 수 있다
Comet AI browser can get prompt injected from any site, drain your bank account
TL;DR Highlight
Brave의 AI 브라우저 Comet이 웹페이지 내용을 읽는 과정에서 prompt injection에 취약해, 악성 사이트가 LLM을 조종해 이메일 열람·송금 등 민감한 작업을 수행할 수 있다는 시연이 공개됐다.
Who Should Read
LLM 기반 에이전트를 제품에 통합하려는 개발자, 또는 AI 브라우저·AI 이메일 클라이언트 같은 도구의 보안 아키텍처를 설계하는 엔지니어.
Core Mechanics
- Brave 브라우저의 AI 에이전트 기능 'Comet'이 웹페이지를 요약하거나 작업을 수행할 때, 해당 페이지에 숨겨진 악성 프롬프트를 그대로 실행해버리는 prompt injection 취약점이 발견됐다.
- Comet은 브라우저 탭 간 데이터 접근, 이메일 읽기, 폼 입력 등 광범위한 권한을 가지고 있어서, 공격자가 웹페이지 하나로 사용자의 이메일을 스캔하거나 송금을 시도하는 것이 가능하다.
- Google, OpenAI, Anthropic 같은 대형 업체들은 비슷한 기능을 제공할 때 쿠키 없는 격리된 VM에서 브라우저를 돌리는데, Comet은 사용자의 실제 브라우저 세션 위에서 직접 동작해서 근본적으로 위험하다.
- Brave는 블로그에서 이 취약점을 인정하면서도 '모델 정렬(alignment)로 위험한 작업을 감지하겠다'는 방향을 제시했는데, 커뮤니티에서는 모델이 항상 즉시 jailbreak 되는 현실을 볼 때 이런 접근은 무의미하다는 비판이 나왔다.
- 핵심 개념: LLM이 도구로 외부 데이터를 '읽는' 행위는 사실상 컨텍스트 윈도우에 '쓰기'를 허용하는 것과 같다. 신뢰할 수 없는 소스를 읽을 수 있으면, 그 소스가 LLM의 행동을 조종할 수 있다.
- USENIX Security 학회에서도 multi-turn/에이전트 환경에서의 prompt injection을 근본적으로 막는 방법은 아직 아무도 모른다는 것이 확인됐다. 학계에서도 미해결 문제다.
- 비슷한 취약점이 AI 이메일 클라이언트(Shortwave 등)에서도 발견됐고, 'Month of AI Bugs' 프로젝트에서 유사 사례들이 계속 수집되고 있다.
- 실제 Comet을 써본 사용자가 '아마존에서 기타 사줘'라고만 했더니, 아무런 확인 없이 저가 노브랜드 기타 3개를 장바구니에 담아버렸다는 경험담이 공유됐다. 다행히 결제까지는 안 갔지만, 에이전트의 무분별한 행동이 문제.
Evidence
- Google·OpenAI·Anthropic이 같은 기능을 안 내놓은 데는 이유가 있다는 의견이 많았다. 이들은 웹 브라우징 시 쿠키 없는 격리 VM을 쓰는데, Comet은 사용자 세션을 그대로 노출시킨다는 점에서 '근본적으로 unsafe'라는 공감대가 형성됐다.
- 'LLM이 도구로 읽는 모든 행위는 컨텍스트 윈도우에 대한 쓰기'라는 프레임이 큰 호응을 얻었다. 신뢰할 수 없는 소스를 읽을 수 있는 것 자체가 공격 벡터라는 설명으로, 에이전트 보안의 핵심 원칙으로 자주 인용됐다.
- 에이전트 AI는 git처럼 쉽게 롤백 가능한 작업(코드 작성·수정)에만 써야지, 웹 브라우징·송금·이메일처럼 되돌릴 수 없는 작업에 쓰는 건 미친 짓이라는 의견이 있었다.
- Brave 블로그에서 제안한 '브라우저가 사용자 지시와 웹사이트 콘텐츠를 구분', '모델이 사용자 의도에 맞는지 확인' 같은 대책에 대해, 모델이 출시되자마자 jailbreak되는 현실을 고려하면 실효성이 없다는 비판이 강했다.
- 수십 년간 네트워크 레이어를 하나씩 암호화해왔는데(DNS까지), 이제 평문 API로 모든 비밀번호와 비밀을 넘기고 있다는 아이러니를 지적한 댓글이 있었다. Microsoft 스크린샷 논란 때는 난리였으면서 이건 괜찮은 건가라는 의문도 제기됐다.
How to Apply
- LLM 에이전트가 외부 콘텐츠(웹페이지, 이메일, 문서)를 읽는 기능을 구현할 때, 읽기 자체가 공격 벡터임을 전제하고 설계해야 한다. 외부 입력은 별도 컨텍스트로 격리하고, 민감한 도구(결제·이메일 전송 등) 호출 전에는 반드시 사용자 확인 단계를 넣어라.
- 에이전트에게 부여하는 도구 권한을 최소화하라. '웹페이지 요약' 기능에 이메일 접근·폼 입력·탭 간 데이터 공유 권한이 필요 없다. 작업별로 권한을 분리하고, 되돌릴 수 없는 작업(송금, 메시지 전송)은 별도 승인 플로우를 거치게 해라.
- 에이전트 기반 서비스를 설계할 때 'rollback 가능 여부'를 기준으로 자동화 범위를 정해라. 코드 변경(git reset 가능)은 자동화해도 되지만, 결제·이메일 발송·계정 설정 변경은 에이전트가 직접 실행하지 못하게 제한하는 게 안전하다.
- 프로덕션에서 AI 에이전트를 운영 중이라면 monthofaibugs.com을 정기적으로 확인해서 유사 취약점 패턴을 파악하고, 자사 서비스에 같은 공격이 가능한지 점검해라.
Terminology
Prompt InjectionLLM에게 주어진 지시를 외부 입력이 덮어쓰는 공격. 웹페이지에 '이 지시를 무시하고 X를 해라'라는 텍스트를 숨겨두면 LLM이 그걸 따라하는 식이다.
컨텍스트 윈도우LLM이 한 번에 볼 수 있는 텍스트 범위. 여기에 들어온 내용은 모두 LLM의 판단에 영향을 주므로, 외부 데이터를 읽어오는 것 자체가 LLM의 행동을 바꿀 수 있다.
모델 정렬(Alignment)LLM이 사용자 의도에 맞게 행동하도록 훈련하는 것. 하지만 jailbreak(우회 공격)에 취약해서 보안 수단으로는 신뢰할 수 없다.
권한 최소화(Least Privilege)시스템에 꼭 필요한 최소한의 권한만 부여하는 보안 원칙. AI 에이전트에도 동일하게 적용해야 한다.