10월 28일 Parameter Labs가 발표한 기술 공개에 따르면, 보안 연구팀은 피해자가 공유 대화 링크를 열도록 함으로써 간단히 ChatGPT 계정을 탈취할 수 있는 방법을 찾았습니다. 이 회사는 OpenAI가 10월 26일에 취약점을 수정했으며 보고서를 가장 높은 심각도 등급인 P1으로 분류했다고 보고했습니다.
이번 발견은 주류 AI 플랫폼에 대한 드문 엔드투엔드 계정 탈취였으며, 최신 AI 개발을 통해 사람들이 현재 채팅 애플리케이션 내에 얼마나 많은 민감한 자료를 보관하고 있는지 계속해서 보여주고 있습니다. Parameter Labs는 이 공격에는 앱 설치, 개발자 도구, 공격자가 공유한 ChatGPT URL을 여는 것 이상의 상호 작용이 필요하지 않다고 밝혔습니다.
공격 체인의 작동 방식
체인은 별개로 보면 무해해 보이는 두 가지 일반 ChatGPT 기능, 즉 대화형 그래프와 HTML 미리보기 샌드박스를 남용했습니다. ChatGPT의 미리보기 기능은 별도의 웹 주소에 있는 제한된 프레임에서 생성된 HTML을 실행하므로 주변의 로그인된 chatgpt.com 페이지를 건드릴 수 없습니다.
획기적인 발전은 MathLive라는 수학 라이브러리를 로드한 그래프에서 나왔습니다. 해당 라이브러리는 온스크린 키보드용 기본 ChatGPT 페이지에 메시지 리스너를 설치했지만 Parameter Labs는 리스너가 보낸 사람을 확인하지 않고 모든 원본에서 메시지를 수락하는 것을 발견했습니다. 허용되는 메시지 유형 중 하나는 가상 키보드 레이아웃을 공격자가 제어하는 HTML로 대체할 수 있으며, MathLive는 이를 innerHTML을 통해 실제 ChatGPT 페이지에 삽입합니다.
그런 식으로 삽입된 스크립트는 정상적으로 실행되지 않으므로 연구원들은 srcdoc 속성을 사용하여 페이로드를 iframe에 래핑했습니다. 기본 ChatGPT 페이지가 샌드박스 없이 해당 프레임을 생성했기 때문에 브라우저는 내부 코드를 상위 페이지에 액세스할 수 있는 실제 chatgpt.com 콘텐츠로 처리했습니다.
콘텐츠 보안 정책 탈출
ChatGPT의 콘텐츠 보안 정책은 여전히 인라인 스크립트를 차단했지만 Parameter Labs는 격차를 발견했습니다. 정책은 YouTube의 스크립트를 허용했습니다. 연구원들은 YouTube의 oEmbed 엔드포인트가 유효성 검사 전에 잘못된 JSONP 콜백 매개변수를 오류 응답에 반영하여 브라우저가 스크립트로 로드할 응답 앞에 실행 가능한 JavaScript를 추가할 수 있다는 사실을 발견했습니다.
그 시점에 팀은 피해자의 로그인 세션 내에서 chatgpt.com의 ID로 임의의 JavaScript를 실행하고 있었습니다. Parameter Labs는 이것이 실제로 의미하는 바를 명시적으로 밝혔습니다. 페이로드는 페이지 수정이나 경고 표시에만 국한되지 않고 피해자로서 ChatGPT의 인증된 API를 직접 호출할 수 있었습니다. 테스트에서 페이로드는 피해자의 대화 목록을 열거하고, 공격자와 결코 공유되지 않은 비공개 대화 내용을 검색하고, 해당 데이터를 외부 서버로 보낼 수 있었습니다. 브라우저는 모든 작업이 chatgpt.com 자체에서 발생하는 것으로 식별하여 피해자에게 문제가 있다는 가시적 신호를 제공하지 않았습니다.
링크 하나로 충분했습니다
연구용 버그를 실용화한 무기로 바꾼 것은 바로 전달이었다. 연구원들은 그래프와 미리 볼 수 있는 HTML 블록을 하나의 일반적인 대화에 넣고 이를 ChatGPT의 일반 공유 기능으로 게시한 다음 누구나 사용하는 것과 동일한 경로(이메일, 채팅, 지원 티켓 또는 소셜 게시물)를 통해 결과 /share/ 링크를 보냈습니다.
가장 안정적인 재현에서는 피해자가 링크를 연 후 ChatGPT의 미리보기 버튼을 한 번 클릭해야 했습니다. 이후 버전에서는 HTML 블록을 미리보기 가능으로 표시했기 때문에 ChatGPT는 이를 자동으로 열었으며 피해자에게 필요한 유일한 조치는 URL을 방문하는 것이었습니다. 팀은 페이지가 로드된 후 약 4.5초 후에 페이로드가 실행되는 하드 새로 고침 이후를 포함하여 별도의 계정에서 완전 자동 경로를 3번 재현했습니다.
그래프와 미리보기가 독립적으로 로드되었기 때문에 MathLive가 준비되기 전에 페이로드가 실행되는 경우가 있었습니다. 최종 버전은 해당 경쟁 조건을 처리하기 위해 제한된 기간 동안 메시지를 다시 시도했습니다.
공개 및 수정
Parameter Labs는 이 문제를 OpenAI에 보고했으며, OpenAI는 10월 26일에 수정 사항을 제공하고 보고서를 P1으로 평가했습니다. 이번 공개는 AI 플랫폼 보안 연구가 더욱 광범위하게 진행되는 가운데 이루어졌습니다. 이번 주 초 The Register는 5개의 AI 개발자 도구에서 버그를 보고했는데, 일부는 아직 게시 시점에 패치가 적용되지 않았습니다.
이 수업은 하나의 라이브러리 이상으로 일반화됩니다. 최신 채팅 애플리케이션은 인증된 단일 페이지에 타사 구성 요소, 샌드박스 미리 보기 및 허용된 메시지 채널을 구성하며 확인되지 않은 postMessage 수신자는 이들 사이의 다리가 될 수 있습니다. 사용자의 경우 실용적인 지침은 기존 웹 보안과 동일합니다. 공유 AI 대화에 대한 링크는 원치 않는 다른 링크를 처리하는 방식으로 처리합니다. 플랫폼에서는 더 이상 링크를 여는 것이 무해하다고 약속할 수 없기 때문입니다.
OpenAI의 P1 분류와 빠른 처리 속도는 회사가 chatgpt.com에 대한 브라우저 기반 세션 공격을 1차 위협으로 취급한다는 점을 시사합니다. 이 사건은 또한 사용자가 작업 문서, 의료 질문 및 개인 프로젝트를 채팅 기록에 저장하고 있기 때문에 이러한 계정에 얼마나 많은 가치가 집중되어 있는지를 상기시켜 줍니다. 이는 바로 Parameter Labs가 공격자가 추출할 수 있음을 입증한 콘텐츠입니다.
---
AI보다 앞서 나가세요최신 AI 뉴스, 분석, 획기적인 소식을 모두 한 곳에서 받아보세요.
AI 뉴스 자세히 보기 →