Claude 웹 검색 기능으로 개인 메모리 유출시킨 공격, Anthropic 바운티 없이 조용히 패치
- 연구자 Ayush Paul이 Claude의
web_fetch도구를 악용해 사용자의 이름, 직장, 보안 질문 답변을 외부 서버로 유출시키는 공격을 시연함 - 공격자가 만든 사이트
evil.com에 알파벳별 링크(/a, /b, /c...)를 트리 형태로 심어두면, Claude가 이전web_fetch결과에 있던 링크를 따라가는 규칙을 이용해 사용자 이름의 글자를 한 글자씩 인코딩하여 접속하게 만들 수 있었음 - Claude의
web_fetch는 URL이 사용자 메시지에 직접 있거나web_search결과 또는 이전web_fetch결과의 링크일 때만 접근 가능한데, 세 번째 조건(이전 결과의 링크 따라가기)이 취약점의 핵심이었음 - HackerOne 버그바운티로 책임 공개했지만 Anthropic은 내부적으로 이미 인지하고 있었다며 바운티를 지급하지 않았고, 이후
web_fetch가 외부 페이지의 링크를 따라가지 못하게 막는 방식으로 문제를 완화함 - Claude의 메모리 시스템은 일별 대화 요약과
conversation_search검색 도구로 구성되는데, 이 데이터가 웹 브라우징 기능과 결합되면서 유출 경로가 생긴 것으로 지적됨
Hacker News opinions
다들 AI 에이전트를 시스템 관리자 권한으로 그냥 돌리는거 보면 놀랍지도 않음. 컴퓨터 보안 50년 역사를 하룻밤에 까먹은 느낌이야
npm/pip 같은 대형 의존성 트리도 브라우저랑 같은 계정에서 매일 설치하잖아. 이거랑 크게 다를 것도 없음
샌드박싱이 진짜 어려운 일이야. cco 써도 홈 폴더는 노출되는데, 가짜 홈이랑 네트워크 화이트리스트 없이는 프롬프트 한 줄에 브라우저 비밀번호가 curl로 새어나갈 수 있음
Anthropic이 이런 신박한 우회 방법 찾아줬으면 최소 바운티는 줘야 하는거 아님?
글쓴이가 HackerOne으로 책임감있게 신고했는데 Anthropic은 내부적으로 이미 알고 있었다면서 바운티 안 줬대. web_fetch가 외부 페이지 링크 따라가는 기능만 나중에 막았다더라
'내부적으로 이미 알고 있었다'는 핑계 진짜 못 믿겠음. 그냥 돈 안 주려고 둘러대는 느낌이야, 이러면 신고할 동기가 사라지지
나는 메모리 기능 자체를 꺼놓음. 지금 메모리 시스템은 쓸만할 정도로 정교하지도 않은데 위험만 크잖아
내 경험상 메모리 기능이 도움보다는 방해가 될 때가 많음. 별 의미도 없는 걸 기억해내서 티내는 느낌이라 결국 꺼버림
이건 소셜 엔지니어링이라기보다 LLM을 익스플로잇한거라 새 단어가 필요할듯, prompt injection도 아니잖아. Claudejacking 어때
데이터 유출 작업은 사용자 메모리 전체에 접근 못하는 서브에이전트가 하도록 만들면 더 안전할듯
어차피 서브에이전트로 이미 처리되고 있을거임, 안그러면 컨텍스트 윈도우가 긴 응답으로 꽉 찼을듯. 근데 이 경우엔 공격자가 통제하는 인증이 필요하다고 서브에이전트가 알아챘어야지
이 공격 하는데 AI가 토큰을 엄청 많이 썼다는게 더 웃긴 포인트임
글로벌 메모리를 켜놓은 사람이 몇 퍼센트나 될지 궁금함, 저런 메모리가 결국엔 출력 품질에도 안 좋은 영향 줄 것 같음. 사람이 직접 쓴 좋은 글이라 재밌게 읽었음
기능들을 하나씩 보면 다 말이 되는데 합쳐놓으면 예상 못한 취약점이 생기는게 항상 이런식이야
저런 게 AGI라는 착각을 깨주는 사례임
사람도 소셜 엔지니어링에 그정도로 쉽게 낚이니까 딱히 AGI 얘기랑은 상관없다고 봄