매일 아침, 어제의 AI를 한 통으로 정리해 보내드립니다메일로 받아보기

METAL LAB

그록, 암호문에 숨긴 명령만으로 대화·위치정보 유출

보안사 Adversa, 평문 지시는 막던 그록이 암호화된 명령은 그대로 따른다는 취약점 공개

스마트폰 화면에 Grok 로고가 표시되어 있다

이미지: Ars Technica

요약

  • 보안업체 Adversa가 웹페이지 속 암호문으로 그록(Grok)의 안전장치를 우회해 사용자 이름·위치·대화 기록을 빼내는 방법을 공개했다
  • 6월 xAI에 신고했지만 기사 게재 시점인 8월 20일까지도 그록은 같은 방식의 공격에 계속 데이터를 넘겨줬다
  • 같은 기법을 구글 제미나이에도 적용해 안전 필터를 우회하는 데 성공했으며, 최근 들어서만 저항력이 높아진 것으로 알려졌다
발견자
Rony Utevsky, 보안업체 Adversa 연구원
공격 명칭
Cryptographic Context Injection (암호문 맥락 주입)
대상 모델·상태
xAI 그록, 6월 신고 후 8월 20일 기사 게재 시점까지 미패치
탈취 정보
사용자 이름, 위치, 대화 기록
암호화 방식
PBKDF2 + AES-256-GCM
유사 실험
구글 제미나이에도 같은 방식으로 안전 필터 우회 성공
관련 사건
같은 주 마이크로소프트 365 코파일럿 데이터 유출 공격 별도 발견

암호문 한 줄이면 그록의 안전장치가 뚫린다

웹페이지에 악성 지시를 그대로 적어 넣으면 그록(Grok)은 거부한다. 그런데 같은 지시를 암호화해서 올려두고, 페이지 안에 복호화 방법과 키를 함께 적어두면 얘기가 달라진다. 사용자가 그록에게 "이 페이지 요약해줘"라고만 시켜도, 그록은 스스로 암호를 풀고 그 안에 담긴 명령을 실행한다. 경고도, 확인 절차도 없다.

보안업체 Adversa의 연구원 로니 우테프스키(Rony Utevsky)가 발견한 이 우회법의 핵심은 간단하다. 복호화된 지시는 그록에게 겉보기엔 '복호화 키'처럼 보이는 값을 만들라고 시키는데, 실제 그 값의 정체는 사용자의 이름과 위치, 대화 기록이다. 그록은 이 값을 공격자 서버로 향하는 URL의 파라미터에 끼워 넣고, 링크를 여는 순간 데이터는 공격자의 서버 로그에 고스란히 남는다. Adversa는 이 공격이 지난 6월 xAI에 신고됐지만, 기사가 나간 8월 20일까지도 같은 수법이 그대로 통했다고 전했다.

이번 주에만 벌써 두 번째

이번 사고는 처음이 아니다. 같은 주 초, 별도의 연구팀이 코파일럿, 대화 캐묻자 자기 우회 비밀번호 스스로 실토에서 다룬 마이크로소프트 365 코파일럿 취약점도 대화를 캐물어 비공개 파라미터를 알아낸 뒤 사용자 편지함의 비밀번호를 빼내는 방식이었다. 대상 제품도, 공격 방식도 다르지만 결론은 같다. 대형 언어 모델이 신뢰할 수 없는 입력과 사용자의 지시를 구분하지 못한다는 문제, 이른바 프롬프트 인젝션은 여전히 근본적으로 해결되지 않았다.

그록을 만든 엑스에이아이(xAI)는 일론 머스크가 2023년 세운 회사이며, 지금은 스페이스X 산하 AI 부문으로 편입돼 독립 회사가 아니다. 이번 취약점은 그 그록 자체를 겨냥한 것으로, X(옛 트위터) 안에서 곧바로 쓸 수 있다는 그록의 특성상 페이지 요약 요청 한 번만으로 공격이 완성된다는 점이 특히 문제로 지적된다.

가짜 복호화 키에 담긴 진짜 정보

Adversa가 사용한 암호화 방식은 PBKDF2와 AES-256-GCM이다. 둘 다 실제 보안 시스템에서 널리 쓰이는 표준 암호화 도구다. 공격자는 이 암호문과 함께 복호화 절차, 그리고 키까지 페이지에 나란히 올려둔다. 그록의 안전장치는 이 페이지를 읽지만, 암호문 자체는 의미 없는 문자열로만 인식하고 통과시킨다. 문제는 그다음이다. 그록이 스스로 코드를 실행해 암호를 풀고 나면, 그 결과물은 더 이상 '외부 콘텐츠'가 아니라 그록 자신의 '도구 출력'으로 취급된다. 안전장치가 원래 걸러야 할 지점을 이미 지나쳐 버린 뒤인 것이다.

Adversa는 왜 그록이 평문 지시는 거부하면서 암호화된 지시는 따르는지 확신하지 못한다고 밝혔다. 다만 가장 유력한 설명은 필터가 모델에 들어오고 나가는 텍스트만 검사할 뿐, 모델이 자체적으로 실행한 코드의 결과물은 검사하지 않는다는 것이다. 우테프스키는 블로그에 쓴 글에서 "정적 안전장치는 입력을 텍스트로 분류할 뿐 실행하지 않는다"고 지적했다. 암호문과 키, 지시가 전부 페이지에 드러나 있어도 필터가 이를 실제로 복호화해보지 않는 이상 그 안의 위험을 알아챌 방법이 없다는 뜻이다.

제미나이도 같은 수법에 넘어갔다

Adversa는 같은 기법을 구글 제미나이에도 적용해봤다. 이번엔 암호문이 마치 파이썬 오류 메시지(traceback)처럼 보이도록 위장했고, 복호화된 내용은 "코드가 실패하면 오류 메시지를 읽고 그에 따라 행동하라"는 규칙 하나였다. 이 규칙을 발판 삼아 삽입된 프롬프트는 결국 제미나이의 안전 규칙을 깨뜨렸다. Adversa에 따르면 이 공격은 제미나이의 필터가 평소 차단하는 소이탄 제조법 같은 제한된 콘텐츠를 여러 문단에 걸쳐 만들어냈고, 페이로드를 바꾸자 제미나이의 시스템 지시문(공개 금지 조항 포함)까지 그대로 재현했다.

Adversa는 이 사례를 구글에 별도로 신고하지 않았다고 밝혔다. 탈옥(jailbreak) 유형은 구글의 취약점 신고 프로그램 범위 밖이라는 이유였다. 다만 최근 몇 주 사이 제미나이가 이 공격에 점점 더 저항력을 보이고 있다는 점도 함께 전했다. Adversa는 "필터 업데이트인지 모델 버전 변경인지, 혹은 둘 다인지 원인을 특정할 수 없다"고 설명했다.

최근 프롬프트 인젝션 사고 비교

사건발견 주체우회 지점탈취·유발 결과
그록 (2026-08)Adversa암호화된 지시가 코드 실행 결과로 처리됨사용자 이름·위치·대화 기록
마이크로소프트 365 코파일럿 (2026-08)Varonis비공개 파라미터 ?autorun=1인박스 내 비밀번호 유출
줌 화면공유 (2026-08)A Security주석(annotation) 기능 악용원격 카메라·마이크 활성화, 악성코드 설치

세 사고 모두 방식은 다르지만 공통점이 있다. 모두 AI 어시스턴트가 신뢰할 수 없는 입력(웹페이지, 링크, 화면 콘텐츠)과 사용자의 실제 의도를 구분하지 못한다는 지점을 파고들었다. Adversa는 이런 흐름을 "프롬프트뿐 아니라 도구 출력, 실행 결과, 중간 상태까지 모델이 자기 것으로 취급하는 더 넓은 맥락을 조작하는 공격"으로 규정하며, 이런 공격 표면이 기존에 '모델 입력'으로만 불리던 범위보다 훨씬 넓다고 지적했다.

에디터의 시선

이번 사건이 보여주는 건 결국 방어 쪽이 구조적으로 불리하다는 점이다. 프롬프트 인젝션은 특정 버그가 아니라 대형 언어 모델의 작동 원리 자체에서 나온다. LLM은 훈련 과정에서 최대한 사용자 요청에 순응하도록 만들어졌고, 이 순응성이 웹페이지에 심긴 지시와 실제 사용자의 지시를 구분하지 못하게 만든다. 개발사가 할 수 있는 일은 근본 원인을 없애는 게 아니라 위험한 행동을 걸러내는 가드레일을 하나씩 덧대는 것뿐이고, 공격자는 그 가드레일을 우회할 새로운 틈을 매번 찾아낸다. 도로 설계에 비유하면 급커브 구간의 경사를 바로잡는 대신 난간만 계속 세우는 셈이다.

이번 주에만 코파일럿과 그록, 두 건의 유사한 유출 사고가 겹친 건 우연이 아니다. AI 어시스턴트가 이메일·웹페이지·화면 공유처럼 사용자가 통제하지 못하는 외부 콘텐츠를 점점 더 많이 다루게 되면서, 공격 표면도 그만큼 넓어지고 있다. 실무에서 AI 어시스턴트에 이메일 요약이나 웹페이지 처리를 맡기는 조직이라면, 지금 시점에서는 그 어시스턴트가 외부 콘텐츠에서 읽어들인 내용을 근거로 URL을 열거나 외부로 데이터를 보내는 동작 자체를 차단하는 게 더 현실적인 방어선이다. 필터를 믿고 맡기기엔, 필터가 보지 못하는 지점이 계속 새로 생기고 있다.

다음 순서는 이미 예고돼 있다. Adversa가 말한 '더 넓은 공격 표면'—도구 출력, 실행 결과, 중간 상태—은 아직 대부분의 안전장치가 검사하지 않는 영역이다. 앞으로 몇 주 안에 같은 원리를 이용한 새로운 우회 사례가 다른 모델에서도 보고될 가능성이 크다.

댓글