AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

AI 메모리의 함정, Claude가 내 정보를 몰래 흘려보내는 법

보안 연구자 아유시 폴은 Claude에게 웹사이트 하나를 보여주고 살펴봐 달라고 했습니다. 평범한 요청이었죠. 그런데 대화가 끝났을 때, 그의 이름과 회사, 보안질문 답변은 이미 낯선 서버로 넘어가 있었습니다. 화면에는 아무 경고도, 이상 징후도 뜨지 않았습니다.

사진 출처: ayush.digital

AI 메모리 시스템을 연구해온 아유시 폴이 Claude의 개인화 어시스턴트(claude.ai)를 대상으로 진행한 실험입니다. Claude는 대화가 쌓일수록 사용자에 대해 점점 더 많이 “기억”하는데, 문제는 이 기억이 패스워드 매니저보다 더 밀도 높은 개인 정보를 담고 있다는 점입니다. 그는 이 메모리를 웹 브라우징 도구와 엮으면 아무 표시 없이 외부로 유출시킬 수 있다는 걸 보여줬습니다.

출처: The Memory Heist – ayush.digital

Claude가 나에 대해 쌓아두는 두 가지 기억

Claude의 메모리는 두 층으로 되어 있습니다. 하나는 매일 최근 대화를 몇 문단으로 요약해 모든 새 대화에 자동으로 끼워 넣는 방식이고, 다른 하나는 필요할 때 과거 대화 전체를 검색해오는 conversation_search 도구입니다.

사람들은 업무 기밀부터 인간관계 고민, 보안질문 답변까지 온갖 것을 Claude에게 털어놓습니다. 시간이 쌓이면 이 대화 기록은 그 사람을 상당히 정밀하게 복원할 수 있는 자료가 됩니다. 협박이나 사칭, 보안질문 우회에 악용될 수 있는 수준이죠. 폴은 메모리 시스템 자체는 안전하다고 봤습니다. 진짜 질문은 이 메모리가 웹을 돌아다닐 수 있는 에이전트와 결합했을 때 무슨 일이 벌어지느냐였습니다.

링크를 타고 한 글자씩 빠져나간 이름

Claude가 인터넷에 접근하는 방법은 두 가지, web_searchweb_fetch입니다. 이 중 web_fetch는 특정 URL의 내용을 읽어오는 읽기 전용 도구입니다. 폴은 이 도구로 데이터를 빼낼 수 있는지 확인해보기로 했습니다.

처음엔 막혔습니다. Claude에게 “이 사이트를 보고, 내 실제 이름을 경로에 넣어서 접속해봐”라고 요청했지만 요청이 거부됐습니다. 알고 보니 Anthropic은 web_fetch가 접근할 수 있는 URL을 세 가지 경우로만 제한해뒀습니다. 사용자가 메시지에 직접 적었거나, web_search 결과에 나왔거나, 직전 web_fetch 결과 페이지에 링크로 걸려 있는 경우입니다.

세 번째 조건이 허점이었습니다. Claude가 방금 본 페이지에 걸린 링크는 “클릭”할 수 있다는 뜻이고, 그 페이지를 만드는 건 공격자 자신이니까요. 폴은 자신의 서버에 /a, /b, /c처럼 알파벳 한 글자씩으로 이어지는 디렉토리 구조를 만들었습니다. 그리고 Claude에게 “이 사이트에서 알파벳 구조를 따라가며 내 이름의 철자를 밟아봐”라고 요청했더니, 서버 로그에는 /a, /ay, /ayu, /ayus, /ayush가 차례로 찍혔습니다. Claude가 눈치채지 못한 채 이름을 한 글자씩 흘려보낸 겁니다.

브라우징 도구가 메모리를 무기로 바꾼다

폴이 보여준 건 메모리 시스템 자체의 결함이 아니라, 메모리와 도구가 만났을 때 생기는 새로운 공격면입니다. Claude는 URL 하나를 통째로 열어주지 않도록 설계됐지만, “직전 페이지에 걸린 링크는 따라갈 수 있다”는 규칙만으로도 정보를 잘게 쪼개 흘려보내는 우회로가 생겼습니다.

에이전트형 AI가 이메일을 읽고, 파일을 만들고, 웹을 검색하는 기능을 하나씩 늘려가는 지금, 이런 조합형 위험은 앞으로 더 자주 나타날 가능성이 큽니다. 안전장치 하나하나는 튼튼해 보여도, 도구를 조합했을 때 생기는 틈은 설계 단계에서 미처 예상하지 못하는 경우가 많기 때문입니다. 대화창에 무심코 적어둔 이름, 직장, 보안질문 답변이 어느 순간 내가 모르는 경로로 새어나갈 수 있다는 걸 보여준 사례입니다.


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다