OpenAI, 3월 20일 ChatGPT 장애 원인 규명: 오픈소스 버그로 데이터 유출
OpenAI가 ChatGPT 서비스 중단 원인을 공개했다. 오픈소스 라이브러리 redis-py의 캐시 버그로 인해 타인의 대화 제목과 9시간 동안 접속한 Plus 회원의 약 1.2%의 이름, 이메일, 신용카드 뒷자리 4개가 노출되었다. 현재 패치 배포가 완료되어 서비스가 정상화되었다.

어제 나누던 대화를 이어가려고 ChatGPT를 열었는데, 왼쪽 사이드바에 전혀 모르는 다른 사람의 대화 제목이 떠 있고 내 결제 관리 화면에 낯선 이름이 적혀 있다면 어떨까요.
OpenAI는 지난 3월 20일 발생한 ChatGPT 서비스 중단 사태에 대한 상세 기술 분석 보고서를 발표하고 사용자 데이터 유출 정황을 투명하게 공개했습니다.
보고서에 따르면 오픈소스 라이브러리의 버그로 인해 특정 사용자가 다른 활성 사용자의 대화 기록 제목을 보거나, 비슷한 시간대에 생성된 새 대화의 첫 번째 메시지를 들여다볼 수 있는 상황이 발생했습니다.
9시간의 공백과 1.2%의 유료 구독자
사태는 단순한 대화 목록 노출에 그치지 않았습니다. 추가 조사 결과 태평양 표준시 기준 3월 20일 오전 1시부터 오전 10시까지 9시간 동안 활성 상태였던 ChatGPT Plus 구독자 중 약 1.2%의 결제 관련 정보가 타인에게 노출되었을 가능성이 확인되었습니다.
노출 가능성이 있던 정보는 이름과 성, 이메일 주소, 청구지 주소, 신용카드 종류, 카드 유효기간, 그리고 신용카드 마지막 4자리 숫자였습니다. OpenAI는 전체 카드 번호가 노출된 적은 결코 없었다고 강조했습니다.
실제로 타인의 정보를 열람한 사용자 수는 극히 적을 것으로 추정됩니다. 해당 시간대에 시스템 오류로 잘못 발송된 구독 확인 이메일을 열어보았거나, 계정 설정에서 구독 관리를 직접 클릭한 경우에만 발생할 수 있었기 때문입니다.
OpenAI는 영향을 받은 사용자들에게 개별 통보를 진행했으며, 현재는 데이터 위험이 완전히 해결되었다고 밝혔습니다.
오픈소스 연결 풀이 일으킨 엉뚱한 배달
이번 사고의 근본 원인은 인공지능 자체의 취약점이 아니라 파이썬 오픈소스 라이브러리인 redis-py의 비동기 연결 처리 버그였습니다.
OpenAI는 데이터베이스 부하를 줄이기 위해 Redis를 캐시로 사용하며, Asyncio 환경에서 연결 풀을 공유해 요청을 처리하고 있었습니다.
요청이 대기열에 들어간 뒤 응답을 꺼내기 전에 취소되면 연결이 오염되었습니다. 그 직후 풀에서 해당 연결을 재사용한 다른 무관한 요청이 이전 요청의 잔여 응답 데이터를 그대로 수신해 버린 것입니다.
설상가상으로 3월 20일 오전 1시에 적용된 서버 설정 변경으로 인해 Redis 요청 취소가 급증하면서 숨어 있던 버그가 대규모로 터져 나왔습니다.
OpenAI는 Redis 관리팀과 협력해 패치를 배포했으며, 캐시 데이터와 요청자가 일치하는지 대조하는 이중 검증 장치를 시스템에 추가했습니다.
왜 중요한가
우리는 이번 사건이 급격한 성장 가도를 달리던 생성형 AI 업계에 가장 뼈아픈 현실을 일깨워주었다고 봅니다. 많은 이들이 탈옥이나 프롬프트 주입 같은 최신 AI 보안 위협에만 집중하는 사이, 실제 사고는 지극히 고전적인 백엔드 인프라 엔지니어링의 빈틈에서 터졌습니다.
업무 기밀이나 소스 코드, 개인적인 고민을 매일 AI에 털어놓는 사용자들에게 데이터 격리 실패는 치명적입니다. 카드 번호 전체가 유출되지 않았더라도 대화 제목과 결제 정보 일부가 섞여 들어간 순간 서비스에 대한 신뢰는 크게 흔들릴 수밖에 없습니다.
OpenAI가 기술적 원인을 숨기지 않고 상세히 공개하며 오픈소스 생태계와 함께 문제를 신속히 바로잡은 태도는 분명 긍정적입니다. 하지만 전 세계 트래픽이 몰리는 초거대 서비스에서 평범한 일상 업데이트 하나가 얼마나 위험한 나비효과를 부르는지도 함께 증명되었습니다.
결국 엔터프라이즈 시장을 설득해야 하는 AI 기업들에게는 모델 성능만큼이나 철저한 멀티테넌트 데이터 분리와 지루할 정도로 탄탄한 기본 인프라 운영 능력이 가장 강력한 경쟁력이 될 것으로 보입니다.
출처 (1)
- openai.com(새 탭에서 열림)원문openai.com