체크포인트, 챗GPT 락다운 모드 뚫었다…팝업 허점 하나로 대화·파일 빼낼 수 있었다

작성일

체크포인트, 챗GPT 락다운 모드 우회 취약점 공개…팝업 허점으로 대화 전체 유출
오픈AI는 9월 18일(현지시각) 패치했고 클래식 앱에선 제로클릭 공격이 가능했다

거실에서 후드티 차림의 인물이 노트북을 조작하는 모습 — 이해를 돕는 AI 자료 이미지
거실에서 후드티 차림의 인물이 노트북을 조작하는 모습 — 이해를 돕는 AI 자료 이미지

보안업체 체크포인트(Check Point) 연구진이 오픈AI 챗GPT의 고급 보안 설정인 ‘락다운 모드(Lockdown Mode)’를 우회하는 취약점의 세부 내용을 공개했다. 이미 패치된 결함이다. 코드 블록 HTML 미리보기의 팝업 처리 허점을 파고들면 대화 내용 전체와 업로드 파일을 공격자 서버로 빼낼 수 있었다.

오픈AI는 9월 18일(현지시각) 수정을 마쳤고 체크포인트는 11월 5일 보고서를 냈다. 데스크톱 앱 ‘챗GPT 클래식’에서는 사용자가 아무 조작을 하지 않아도 대화만으로 유출이 일어나는 제로클릭(사용자 동작이 필요 없는 공격) 시나리오가 가능했다고 연구진은 밝혔다.

프롬프트 인젝션 막으려던 ‘잠금’ 설정

락다운 모드는 프롬프트 인젝션(AI가 분석할 콘텐츠 속에 숨긴 명령으로 AI를 조종하는 공격)에 따른 데이터 유출을 줄이려는 선택형 설정이다. 테크레이더(TechRadar)는 피싱 메일에 ‘모든 연락처 정보를 빼내라’는 명령을 숨겨 두면 사용자가 AI 에이전트에게 읽지 않은 메일 정리를 시킬 때 민감 정보가 공격자에게 넘어갈 수 있다고 예를 들었다. 대화창에는 아무 이상이 없어 보이는 것이 특징이다.

사이버시큐리티뉴스(Cybersecurity News)에 따르면 오픈AI는 이 기능을 2월 13일 기업용 요금제에 먼저 내놓았다. 개인 계정에는 6월 4일 적용됐고 설정 > 보안 메뉴에서 켠다. 오픈AI는 경영진이나 보안팀처럼 위험도가 높은 이용자를 위한 기능이라고 설명했으며 대부분의 사람에게는 필요하지 않다는 입장이다.

켜면 웹 접근은 캐시된 콘텐츠로 제한된다. 인터넷 이미지 표시가 막히고 캔버스(Canvas)가 생성한 코드의 네트워크 요청도 꺼진다. 딥 리서치, 에이전트 모드, 실시간 커넥터, 파일 다운로드는 아예 비활성화된다. 체크포인트 보고서는 공격자가 AI를 속여 attacker.example/collect?data=<비공개 데이터> 같은 주소를 불러오게 하는 수법을 대표 사례로 들었다. 비공개 정보가 공격자 서버 로그에 남는 방식으로, 락다운 모드는 이런 유출 통로를 차단하도록 설계됐다.

노트북 자판을 입력하는 손과 화면 앞에 놓인 자물쇠 — 내용 이해를 돕는 AI 이미지
노트북 자판을 입력하는 손과 화면 앞에 놓인 자물쇠 — 내용 이해를 돕는 AI 이미지

팝업 처리 허점이 샌드박스를 열었다

문제는 챗GPT 코드 블록에 붙은 HTML 페이지 미리보기였다. 체크포인트 보고서에 따르면 오픈AI는 올해 2월 이 기능을 추가했다. 사용자가 입력한 HTML과 자바스크립트를 그대로 실행하면 위험하므로 미리보기 페이지는 중첩된 iframe(웹페이지 안에 작은 웹페이지를 넣는 구조) 두 겹으로 된 샌드박스(격리 실행 환경)에 담겼다. 이 안에서는 챗GPT 쿠키나 로컬 저장소에 접근할 수 없다. 외부 전송과 외부 링크 열기는 사용자 승인을 거치게 했다.

허점은 팝업이었다. 바깥쪽 iframe에는 팝업을 허용하는 allow-popups와 팝업이 샌드박스를 벗어나게 하는 allow-popups-to-escape-sandbox 권한이 켜져 있었다. 대신 오픈AI는 window.open 함수를 덮어써 사용자 승인 없이는 팝업이 열리지 않게 했다. 주소가 비었거나 about:blank인 호출은 알림 없이 null만 돌려줬다.

체크포인트의 알렉세이 북테예프(Alexey Bukhteyev) 연구원은 이 보호 장치가 최상위 페이지에만 적용된다는 점을 짚었다. 페이지 안에 iframe을 하나 더 만들어 그 iframe의 contentWindow.open을 부르면 원래 함수가 호출된다. 팝업은 승인 창 없이 열렸고, 샌드박스 탈출 권한이 켜져 있어 팝업 안의 코드는 격리 밖에서 실행됐다. 락다운 모드도 이 경로에서는 작동하지 않았다.

체크포인트 연구 책임자 엘리 스마자는 The Hacker News에 공유한 보고서에서 “락다운 모드는 잠재적으로 악의적인 외부 요청을 통해 대화 밖으로 데이터가 나가는 가능성을 줄이려는 것이었지만 다른 애플리케이션 기능의 약점이 그 보안 경계를 우회하는 길을 제공했다”고 설명했다.

피싱·악성코드·제로클릭 유출

공격은 악성 프롬프트, 악성 GPT, 공유 대화 중 하나로 시작할 수 있었다. 첫 번째 위험은 가짜 업데이트 창이다. 팝업은 챗GPT 아이콘을 그대로 유지하고 제목은 공격자가 정한다. 이용자는 앱 안에 있다고 믿은 채 악성코드를 ‘챗GPT 업데이트’로 착각해 내려받을 수 있다. 브라우저는 다운로드를 막지 않아 공유 대화 링크만으로 충분했고 피해자의 계정도 필요 없었다. 데스크톱 앱에서는 이용자가 다운로드 링크를 직접 눌러야 했다.

가장 심각한 것은 일렉트론 기반 챗GPT 클래식 앱이었다. 이 앱에서는 window.open이 사용자 클릭 없이 작동했다. 악성 프롬프트나 악성 맞춤형 GPT, 공유 대화가 대화 전체와 업로드 파일을 공격자 서버로 조용히 보낼 수 있었다고 사이버시큐리티뉴스는 전했다.

연구진은 메인 챗GPT 창을 새로 불러와 이용자를 강제 로그아웃시키는 데도 성공했다. 다시 로그인할 때 가짜 로그인 페이지가 비밀번호를 가로챌 수 있다는 의미다. 스마자는 이 결함이 “일렉트론 기반 데스크톱 환경에 국한되지 않는다”고 밝혔다. 모델 밖 약점이 AI 보안 통제를 무너뜨릴 수 있다는 지적이다.

패치 이후 남은 숙제

체크포인트가 취약점을 제보하자 오픈AI는 9월 18일 바깥 미리보기 iframe에서 두 팝업 권한을 모두 제거했다고 밝혔다. 체크포인트는 재시험으로 우회가 더 이상 통하지 않음을 확인했다. 테크레이더는 오픈AI가 서버 측에서 패치했다고 전했다. 사이버시큐리티뉴스는 이 결함에 대해 이용자가 따로 할 조치는 없다고 적었다.

비슷한 시기에 챗GPT 미리보기 기능을 겨냥한 다른 연구도 나왔다. The Hacker News에 따르면 Parameter Labs는 앞서 공유 대화 링크로 계정을 탈취하는 방법을 공개했다. 체크포인트는 두 결함이 같은 구성 요소의 서로 다른 취약점이라고 The Hacker News에 밝혔다. 회사는 “새 기능마다 취약점이 생길 기회가 된다”는 입장을 냈다.

체크포인트는 올해 앞서 코드 실행 환경의 DNS 터널링(DNS 요청에 데이터를 숨겨 내보내는 기법)으로 대화가 새는 결함을 공개했다. 9월에는 피해자의 챗GPT 세션을 이용해 숨겨진 작업을 돌리는 계정 간 은밀한 명령 채널도 시연했다. The Hacker News는 AI 코딩 보조 도구 5종(커서, 깃허브 코파일럿, 오픈AI 코덱스, 마이크로소프트 비주얼 스튜디오 코드, 앤트로픽 클로드 데스크톱)의 내장 브라우저 취약점도 최근 보고됐다고 전했다.

체크포인트는 기업에 AI 사용 가시성을 높이고 민감 데이터 노출을 통제하라고 권고했다. 모델 보안을 넘어 애플리케이션과 런타임, 커넥터 같은 주변 구성 요소까지 AI 공격 표면으로 봐야 한다는 취지다. 스마자는 “AI 보안 통제는 그 주변 애플리케이션 환경만큼만 강하다”고 말했다. 사이버시큐리티뉴스는 공유 대화 안의 버튼과 미리보기, 업데이트 안내를 누르지 말고 데스크톱 앱을 최신 상태로 유지하라고 조언했다.