xAI 그록, 웹페이지 요약 요청만으로 이름·위치·대화기록 유출…6월 신고에도 방치

작성일

Grok, 웹페이지 요약 요청만으로 이름·위치·대화기록 유출 확인
Adversa AI가 6월 신고했지만 xAI는 두 달 넘게 패치 안 해

xAI 그록, 웹페이지 요약 요청만으로 이름·위치·대화기록 유출…6월 신고에도 방치 / AI 생성 일러스트(삽화)
xAI 그록, 웹페이지 요약 요청만으로 이름·위치·대화기록 유출…6월 신고에도 방치 / AI 생성 일러스트(삽화)

보안업체 Adversa AI가 일론 머스크(Elon Musk) 소유의 xAI 챗봇 Grok에서 개인정보를 빼내는 새로운 공격 기법을 공개했다. 이름은 “암호화 컨텍스트 인젝션(Cryptographic Context Injection)”이다. 사용자가 평범한 웹페이지 요약을 요청하기만 해도 이름, 대략적인 위치, 구독 등급, 진행 중인 대화 내용이 공격자가 지정한 서버로 전송된다는 것이다. 확인 절차나 경고 문구 없이 전송이 완료된다고 Adversa AI는 밝혔다. Adversa AI는 지난 6월 3일(현지시각) xAI에 이 문제를 신고했지만 8월 20일(현지시각) 기준으로 패치나 공식 공지가 나오지 않았다.

암호화된 명령어로 콘텐츠 필터를 통과하다

공격 방식은 이렇다. 웹페이지에 암호화된 JSON 형태의 명령어와 복호화 키, 그리고 이를 풀어내라는 평문 안내를 함께 심어둔다. 사용자가 Grok에게 이 페이지를 요약해 달라고 요청하면, Grok은 자체 파이썬(Python) 코드 실행 환경에서 PBKDF2와 AES-256-GCM 방식으로 암호를 직접 풀어낸다.

문제는 콘텐츠 분류기(악성 명령어를 걸러내는 필터)가 검사 시점에 암호문을 읽어낼 방법이 없다는 데 있다. 복호화된 명령어는 “가져온 웹 콘텐츠”가 아니라 “모델이 직접 실행한 코드의 결과물”로 취급돼 필터를 그대로 통과해 모델의 맥락(컨텍스트) 안으로 들어간다. Adversa AI의 수석 연구원 로니 우테프스키(Rony Utevsky)는 “강력한 암호화는 콘텐츠 분류기가 읽어낼 수 없고 가중치 안에서 지름길로 처리될 수도 없어, 공격이 의존하는 런타임을 통한 복호화를 강제한다”고 설명했다.

이름·위치·구독등급·대화기록까지 URL에 실어 보낸다 / AI 생성 이미지
이름·위치·구독등급·대화기록까지 URL에 실어 보낸다 / AI 생성 이미지

이름·위치·구독등급·대화기록까지 URL에 실어 보낸다

복호화된 명령어는 Grok에게 자신의 비공개 세션 정보를 정리해 “추가 맥락을 가져오기 위해” 특정 URL을 열라고 지시한다. 이 과정에서 Grok은 진짜 복호화 키가 아닌, 사용자 이름·위치·구독 등급·대화 기록을 끼워 넣은 문자열을 “복호화 키”라고 스스로 만들어낸다. Grok이 자체 탐색(navigation) 도구로 이 URL을 열면, 개인정보는 요청의 쿼리 파라미터에 실려 공격자 서버로 넘어간다.

Adversa AI가 테스트한 대상은 grok.com에서 구동되는 Grok 4.5 Fast였고, 8월 19일(현지시각) 공격을 다시 한 번 재현했다고 밝혔다. 6월 이후 20차례 시도해 성공률은 40%였으며, 실패 원인은 필터에 걸린 게 아니라 Grok이 복호화 자체를 제대로 해내지 못했기 때문이라고 설명했다. 우테프스키는 테스트에서 빼낸 정보는 진행 중인 대화로 한정됐다며, 다른 대화방이나 에이전트 메모리 접근 여부는 시험하지 않았다고 덧붙였다. Adversa AI는 “xAI가 만든 구조는 신뢰할 수 없는 외부 페이지에서 파싱된 명령어와 데이터가 인터넷에 연결된 특권 도구를 호출하도록 허용하고, 이 경로에 실질적인 유출 경계나 동의 절차, 출처 구분을 두지 않았다”고 지적했다.

xAI, 6월에 알고도 두 달 넘게 방치

Adversa AI는 지난 6월 3일(현지시각) 이 취약점을 xAI와 xAI의 버그 바운티(현상금) 프로그램인 해커원(HackerOne)에 동시에 신고했다. xAI는 신고를 접수했다고만 응답했고 구체적 조치나 패치 일정은 제시하지 않았다고 한다. Adversa AI가 8월 4일과 10일(현지시각) 두 차례 더 연락했지만 이후 별다른 답변은 없었다.

현재까지 이 취약점에는 별도의 패치나 공식 식별번호(CVE)가 부여되지 않았고, 사용자가 직접 취할 수 있는 우회 대책도 없는 상태다. Adversa AI는 악용을 막기 위해 구체적인 공격 코드는 공개하지 않았다고 밝혔다. 이번 발견을 보도한 시점을 기준으로 실제 공격에 악용된 사례는 확인되지 않았고, xAI 역시 8월 20일(현지시각)까지 별도의 성명이나 보안 권고문을 내지 않았다.

제미나이도 같은 방식에 뚫렸다

Adversa AI는 같은 보고서에서 구글 제미나이(Gemini)의 딥 씽킹(Deep Thinking) 모드를 겨냥한 두 번째 시연도 함께 공개했다. 하나의 프롬프트만으로 모델이 암호화된 페이로드를 복호화하도록 유도하고, 그 결과가 가짜 파이썬 오류 메시지(트레이스백)와 안전 정책을 무력화하는 콜백, 제한된 답변을 스스로 정당화하는 1인칭 서술로 이어졌다는 설명이다. Adversa AI는 이 방식으로 제한된 콘텐츠를 이끌어냈고, 제미나이의 시스템 지침까지 그대로 복원해냈다고 밝혔다. 테스트 대상은 유료 등급의 제미나이 3 플래시(웹) 버전이었다.

다만 구글에는 이 내용을 통보하지 않았다고 Adversa AI는 설명했다. 탈옥(jailbreak, 안전장치 우회) 유형의 취약점은 구글의 신고 프로그램 대상에서 제외되기 때문이라는 이유였다. 구글 에이전트를 상대로 한 성공률은 8월 들어 크게 떨어졌는데, 원인이 필터 업데이트인지 모델 버전 변경인지는 특정하지 못했다고 덧붙였다.

이 제미나이 공격 자체는 새로운 것이 아니다. 우테프스키는 지난 3월 11일(현지시각) 자신의 개인 연구 사이트에 “암호화 페이로드 인젝션(Cryptographic Payload Injection)”이라는 이름으로 같은 공격을 이미 소개했고, 5차례 시도 모두 성공했다고 밝힌 바 있다. 당시 교차 모델 실험에서는 오픈AI의 GPT-5가 복호화 지침 자체를 해석하지 못해 실패했고, 앤트로픽의 클로드 소넷 4.5는 복호화까지는 해냈지만 이후 그 내용을 프롬프트 인젝션(신뢰할 수 없는 콘텐츠에 숨은 명령을 AI가 실행하도록 속이는 공격)으로 인식해 차단했다. 우테프스키는 “제미나이 관련 연구는 3월에 수행돼 이후 실질적인 변화가 없었고, 이번에는 기법을 일반화해 Grok에 적용한 결과를 추가한 것”이라고 말했다.

모델 자체 수정으론 못 막는다는 경고

Adversa AI는 이 문제를 모델 자체를 고쳐서 해결할 수 없다고 강조했다. “이 공격을 막는 모든 통제는 에이전트를 둘러싼 하니스(harness, 실행 환경) 안에 있어야 한다. 에이전트가 어떤 권한으로 동작하는지, 무엇에 접근할 수 있는지, 무엇을 쓸 수 있는지, 나중에 무엇을 다시 살펴볼 수 있는지가 그것”이라는 게 회사 측 설명이다. 구체적으로는 신뢰할 수 없는 콘텐츠를 도구나 인증 정보가 없는 별도 공간에서 처리해 구조화된 데이터만 특권 영역으로 넘기고, 외부로 나가는 되돌릴 수 없는 동작에는 반드시 사람이 확인하는 절차를 두라고 권고했다.

이번 사건이 알려지기 며칠 전에는 마이크로소프트 365 코파일럿(Copilot) 기업용에서도 비슷한 방식의 공격이 보고됐다. 기업용 코파일럿에 특정 입력을 심어 사용자 받은 메일함에 있던 비밀번호를 빼내는 방식이었다. 두 사건을 함께 짚은 아르스 테크니카(Ars Technica)는 대형언어모델(LLM)이 프롬프트 인젝션이라는 취약점 유형 자체의 근본 원인을 스스로 해결하지 못한다는 점을 다시 확인시켜준 사례라고 짚었다. 결국 AI 개발사들이 택할 수 있는 방법은 모델을 위험한 행동에서 멀어지게 막는 가드레일(안전장치)을 세우는 것뿐이라는 지적이다.