계산해 보세요: 저희가 ChatGPT 계정을 탈취한 방법

Do the math: How we took over ChatGPT accounts

parameter.ai ▲ 357 댓글 176 armcat

요약

공유 링크 하나만 열어도 ChatGPT 계정을 탈취당할 수 있는 취약점이 있었고, 지금은 수정됐습니다.

파라미터 연구팀이 ChatGPT의 샌드박스(격리 실행 환경)와 콘텐츠 보안 정책(CSP)을 우회한 과정을 공개했습니다. 오픈AI는 이 문제를 P1 등급으로 올려 10월 26일까지 고쳤고, 포상금 5,000달러를 지급했습니다.

왜 중요한가

  • 피해자가 할 일은 링크를 여는 것뿐이어서, 평범한 대화 공유 기능이 공격 통로가 됐습니다.
  • 공격 코드가 피해자 권한으로 돌아가, 공유한 적 없는 비공개 대화까지 읽고 외부로 빼낼 수 있었습니다.
  • 기능을 따로 보면 문제가 없고 결합할 때만 드러나는 허점이라, 필자는 기능 간 교차 테스트를 강조합니다.

핵심 내용

  • 그래프가 불러오는 수학 입력 라이브러리 MathLive는 발신자를 검증하지 않는 메시지 수신기를 메인 페이지에 설치했습니다.
  • 격리된 HTML Preview가 이 수신기로 메시지를 보내, 공격자의 HTML을 가상 키보드 레이아웃으로 주입했습니다.
  • 주입된 HTML은 sandbox 속성이 없는 iframe을 만들어 chatgpt.com의 권한을 물려받았습니다.
  • 인라인 스크립트는 CSP에 막혔지만, 허용된 유튜브 도메인의 JSONP(콜백을 스크립트로 돌려주는 방식) 주소로 코드를 실행했습니다.
  • 오픈AI는 10월 18일 제보를 재현한 뒤 P2 판정을 P1로 올리고, 두 프런트엔드를 차례로 고쳤습니다.

HN 반응

  • 포상금이 너무 적어 제보가 줄 수 있다는 비판이 많았고, Copilot 계정 탈취를 제보하고 못 받았다는 경험담도 나왔습니다.
  • 일부 이용자는 글이 AI로 쓴 듯 따라가기 어렵고, 공격자가 Preview 내용을 통제한 방법의 설명이 부족하다고 지적했습니다.

댓글

30개 표시 · 전체 176개
  1. yellow_lead HN

    OpenAI는 두 프런트엔드 모두 신고된 메시지를 차단하도록 조치해 문제를 해결했으며, 포상금으로 총 5,000달러를 지급했다고 확인했습니다.

    사용자가 링크를 클릭해야 하는 공격이긴 하지만, 그래도 이 포상금은 너무 적다고 봅니다. 이렇게 적게 주면 다른 사람들은 아예 신고하지 않을 수도 있습니다.

  2. Catloafdev HN

    이 정도 포상금은 "고맙다 이 자식아, 꺼져, 다시는 하지 마" 하는 정중한 값이죠.

    취약점에 사실상 한 푼도 안 준다는 건 이 프로그램을 상대하기 싫다는 뜻이에요.

    기업가치가 수조 달러가 넘는다는 회사가 이런 짓을 하고 있다니 기가 막히네요.

  3. Forgeties79 HN

    솔직히 그만한 가치가 있어선 안 되니까요. 돈만 태우는 사업이고, 음악이 멈추기 전에 챙길 수 있는 건 다 챙기려는 거죠.

  4. andai HN

    활성 사용자가 10억 명입니다.

  5. mossTechnician HN

    그 10억 명이 이익에 기여합니까, 손실에 기여합니까?

  6. somenameforme HN

    그 사용자 구성이 어떤지 정말 궁금합니다. 예를 들어 세계의 비교적 외진 곳에 사는 학생들도 부정행위 하는 데 어디서나 이걸 쓴다는 건 제가 알거든요. 잠깐 검색해 보니 전 세계 학생이 14억 명쯤 됩니다.

    물론 학생만 쓰는 건 아니겠지만, 숫자상으로는 학생만으로도 채울 수 있다는 점이 꽤 웃기고, GPT는 정보에 어두운 사용자들 사이에서 이름값을 독점하고 있으니 활성 사용자가 고작 10억 명이라는 게 오히려 놀랍습니다.

  7. raegis HN

    활성 사용자가 10억 명입니다.

    제가 잘 몰라서 하는 말일 수도 있는데, 이게 가능한가요? 그 GPU를 돌리는 데 드는 전력이 사용자 한 명당 에어컨 한 대를 돌리는 수준일 것 같거든요. 10억 명이 매일 쓴다면 발전소가 과부하에 걸릴 것 같은데요.

  8. elpocko HN

    그 GPU를 돌리는 데 드는 전력이 사용자 한 명당 에어컨 한 대를 돌리는 수준일 것 같거든요.

    사실이 아닙니다. 컴퓨터 게임을 떠올리신 게 아닐까요? 추론은 사용자 세션당 에너지가 평범한 AAA 게임 한 판보다 훨씬 적게 듭니다. 그리고 어느 순간을 잡아도 활성 게이머가 활성 ChatGPT 사용자보다 많습니다.

  9. Forgeties79 HN

    10억 명이 최신 사양 게임을 하는 경우와 LLM 사용을 비교하시네요. 저울에 엄지손가락을 얹으신 느낌인데요. 부하가 낮아도 GPU는 실제로 전력을 많이 먹습니다. 여러 나라에서 벌어지는 대규모 발전 설비 증설이 그 증거고요.

  10. fsckboy HN

    가치가 수조 달러라고 평가받는 회사가 수조 달러를 가지고 있는 건 아닙니다. 그 숫자는 이미 쓴 돈과 앞으로도 계속 써야 할 돈을 바탕으로 한 미래 가치에 대한 기대일 뿐이에요.

    게다가 그 말은 곧 "엄청난 nut*을 짊어지고 있어서, 최대한 빨리 최대한 많은 돈을 벌어낼 방법을 찾으라는 극심한 압박을 받고 있다"는 뜻입니다.

    (*nut은 고리대금업에서 나온 속어인데 (개인 등) 금융업계 사람들이 가져다 쓰게 되었습니다. "매달 갚아야 할 돈이 얼마냐"라는 뜻이고, 예를 들어 창업을 하려는 사람에게 조언자가 "당신의 nut이 얼마고, 스스로 투자할 돈은 얼마나 남았습니까?" 하고 물을 수 있습니다. 월 지출은 한 덩어리로 합칠 수 있으니 대출 전체 규모를 뜻하기도 하는데, 이때 매달 내는 이자를 vig라고 합니다. "nut이 있는 동안은 나한테 vig를 내야지" 하는 식이죠. vig는 vigorish에서 왔는데 이것도 어원을 따로 설명해야 하지만, 제 짐작으로는 vigor(활력)에 쓴 약을 뜻하는 licorice(감초)가 합쳐진 말 같고, nut은 다람쥐가 부지런히 견과(nut)를 나르는 데서 왔을 겁니다.)


    그리고 우리가... 발끈하기 쉬운 분들은 기억해 두세요. "할 수 있다"는 전제를 거부하면 나머지 논증은 사라지니 반박할 필요도 없고, 그냥 "그럴 수 없다, 끝" 하면 됩니다. 여기 사람들은 명제를 다루는 데 자주 어려움을 겪는 것 같아서요.

    그러니 만약 우리가... 여기서 보이신, 시가총액이 높은 기업에 대한 태도를 이곳의 많은 분들이 공유하는 "좌파", "사회주의", "포퓰리즘" 성향과 느슨하게나마 맞는다고 설명할 수 있다면, 이렇게 짚고 싶습니다. 익스플로잇은 비싸니까 포상금을 시장가로 더 높이 쳐줘야 한다고 하는 건, 애초에 1조 달러를 가져본 적도 없는 1조 달러짜리 회사를 만들어낸 바로 그 두려운 자본주의 시장 방식의 해법을 옹호하는 셈이라고요.

  11. ibaikov HN

    저는 Microsoft Copilot에서 사용자 계정을 탈취했는데요(단서가 붙긴 하지만 어쨌든), 익스플로잇을 더 자세히 알려 달라고 하더군요(영상을 원했습니다). 그런데 제가 보내기도 전에 취약점을 고쳐 버렸고 한 푼도 안 줬습니다. 공정한가요? 글쎄요.

  12. pvtmert HN

    전형적인 $MSFT 행태네요. NightmareEclipse(YellowKey 제로데이 익스플로잇)가 패치도 받기 전에 공개된 이유를 알겠습니다.

  13. Biganon HN

    에스크로 같은 (공인된) 제3자가 있어야 합니다. 거기에 신고하면 그쪽이 회사와의 협상을 맡고, 신고자는 그쪽에 신고했으니 잘못한 게 없다고 판사에게 말해 주는 거죠. 그리고 그쪽이 표니 뭐니 써서 이런저런 공격 경로가 회사 매출의 몇 퍼센트만큼의 가치가 있는지 정하는 겁니다. 그랬다면 이 팀은 상당한 금액을 받았을 거고요.

  14. lxgr HN

    아이고. ChatGPT 데스크톱 앱에서 "Work" 채팅을 한 번이라도 시작한 컴퓨터는 파일 시스템(!)에 원격으로 접근할 수 있다는 사실[1]까지 합치면 상당히 심각해 보입니다.

    [1] https://news.ycombinator.com/item?id=50078284

  15. randomblock1 HN

    Work 환경 선택기에서 "클라우드" 항목에 "모든 기기에서 사용 가능하며 사용자의 컴퓨터에 접근할 수 있음"이라고 적혀 있습니다. 제가 보기엔 꽤 분명해요. (표기가 그렇다고 보안 문제가 나아지는 건 아니지만요.)

  16. albert_e HN

    Claude Code 터미널에는 /rc 명령으로 켜는 "원격 제어" 옵션이 있습니다. 세션은 여전히 PC/맥에서 돌아가지만, Claude로 인증한 사용자가 인터넷이나 앱으로 그 세션에 접속할 수 있게 해 준다는 점에서 어느 정도 비슷합니다.

    이 ChatGPT 기능도 Codex에 있는 비슷한 기능이 아닐까 싶네요.

    다만 그쪽은 대화를 /exit 하면 세션 연결이 끊어집니다.

  17. lxgr HN

    비슷하게 들리긴 하는데, 문제는 바로 그런 세션을 끊을 방법이 있는 것 같지 않고, 애초에 내 컴퓨터에 연결돼 있다는 사실을 확인할 방법조차 없는 것 같다는 점이에요. 맥에서 처음 시작할 때 작은 안내문이 뜨는 게 전부입니다.

  18. zahlman HN

    글 쓰는 방식 때문인지 실제로 무슨 일이 있었는지 따라가기가 어렵습니다. 예를 들어 JSONP 부분은 JSONP가 어떻게 동작하고 이런 공격을 우회하려는 시도로 어떻게 설계됐는지를 설명하는 것 같은데, 그 설명이 곧 보호 장치를 어떻게 우회했는지에 대한 설명인 것처럼 넘어갑니다. 그리고 글 전체의 전제가 Preview 콘텐츠를 조작해서 여러 방어 계층을 통과했다는 건데, 애초에 그 콘텐츠를 직접 제어한 방법에 대한 설명은 보이지 않습니다. "평범한 공개 ChatGPT 공유"의 콘텐츠에 대해 우리가 가진 통제권은 프롬프트 텍스트뿐이고, 그 텍스트가 Preview 기능을 쓰는 "작동하는 작은 웹페이지"로 넘어가는 건 모델이 응답으로 그 "HTML 블록"을 생성하기로 하느냐에 달린 일이라고 생각했는데요.

  19. 0c3ca83 HN

    사람이 아니라 봇을 위해 쓴 글이에요. 마케팅용 글이죠. 사람들이 챗봇에 질문했을 때 자기네가 답으로 나오게 하려는 겁니다.

    이제 인터넷 글의 독자층은 당신이 아니에요.

  20. cowlevel HN

    AI가 쓴 글이니까 따라가기 어려운 게 당연하죠.

  21. morgaesis HN

    그 결론은 전제에서 따라 나오지 않습니다.

  22. mediaman HN

    LLM이 대체로 글을 못 쓴다면 따라 나옵니다. 현재 LLM은 실제로 글을 못 쓰는데, 에세이 품질로는 RLVR을 하기가 극도로 어렵기 때문입니다.

  23. krackers HN

    이런 식으로 JSONP를 쓰는 게 허용된다는 것부터 놀랍습니다. 한때 구글은 이런 유형의 공격을 막으려고 일부러 조치를 했거든요.

    https://stackoverflow.com/questions/2669690/why-does-google-prepend-while1-to-their-json-responses

  24. dumberquestions HN

    요즘은 자기 블로그 글을 직접 쓰는 사람이 아무도 없나요?

  25. trungto HN

    제 개인 블로그[0]는 지금도 LLM의 도움 없이 씁니다. 글로 쓰는 주제를 제가 얼마나 이해하는지 시험해 보고, 제 글쓰기 실력도 키우려는 목적이에요.

    [0] https://trung.to

  26. zahlman HN

    저는 제 글을 직접 쓰고, 앞으로도 손으로 쓸 겁니다. LLM이 제 글에 손대게 하는 건 생각해 본 적도 없어요.

    게시 빈도는 또 다른 문제지만요…

  27. armcat HN

    저는 아직도 제 블로그[1]를 직접 씁니다 :sweat_smile:

    vim으로 순수 HTML을 손으로 써요. 프레임워크도 없고 아무것도 없이 스타일시트 하나뿐입니다. 이곳에도 아직 이렇게 하는 분이 몇 명 더 있을 거예요.

    [1] https://armincat.com/

  28. bookofjoe HN
  29. Kuyawa HN

    5,000달러는 농담이죠. 최고 개발자들에게는 수백만 달러를 주면서도 체처럼 구멍이 숭숭 뚫려 있는데, 착한 사람이 플랫폼의 커다란 구멍을 보여 줬더니 어깨 한 번 두드려 주는 게 전부라니요? 최고 개발자들을 해고하고 그 사람을 백만 달러에 스톡옵션까지 얹어 채용했습니까? 수백만 달러를 주고 문제를 점검하게 한 보안 업체를 고소라도 했습니까?

    힌덴부르크호처럼 해킹당해서 불길에 휩싸여 추락하길 진심으로 바랍니다.

  30. cbsks HN

    버그를 찾는 비용 구조가 새로 바뀌었으니, 이제는 버그를 찾는 데 토큰이 얼마나 들었을지 자기들이 계산한 만큼만 주는 건 아닐까 싶네요.

Hacker News에서 보기 ↗