
이틀. 공격자가 티빙에 들어와 3,954만 계정을 빼내기까지 걸린 시간입니다. 출발점은 개발자의 개발환경 접속키 하나였습니다. 그 키는 소스코드에 노출돼 있거나 평문으로 저장돼 있었습니다. 그리고 이 약점은 2024년 모의해킹에서 이미 지적받은 것이었습니다.
사고 원인: 코드 속 시크릿 + 지적사항 방치. 쿠팡(03편)과 같은 "코드 속 시크릿" 패턴이 반년 만에 다시 나왔습니다. 시크릿은 비밀번호·API 키·서명키·인증키처럼 코드와 로그 밖에 숨겨야 하는 값입니다.
| 항목 | 내용 |
|---|---|
| 침투·유출 | 2026-05-29 침투, 05-31 약 24GB 유출(이틀) |
| 규모 | 3,954만 697개 계정. 중복 제거 시 약 1,953만 명(회사 추정) |
| 항목 | 20개 항목 70종(ID·이름·생년월일·연락처·CI·환불계좌·단방향 암호화 비밀번호 등) |
| 소스코드 | 개발 프로젝트 361건(30.35GB) |
| 제재 | 개인정보위 과징금 미결정(9월 중순 기준), 과기정통부 신고 지연 과태료 예정(상한 3,000만 원) |
| 현재 상태 | 집단소송 누적 15만 명 이상. 2026년 10월 말 기준 진행 중 |
계정 내역은 활성 2,206만, 휴면 850만, 탈퇴 887만, 테스트 11만 개입니다. 탈퇴한 사람의 계정까지 들어 있었습니다. CI는 본인확인기관이 사람마다 하나씩 부여하는 연계정보입니다.

경로는 원리 수준까지만 봅니다. 공격자는 접속키 하나로 개발환경을 거쳐 운영 DB까지 닿았습니다. 첫 시도가 과부하로 멈추자 다음 날 가상서버를 새로 만들었고, 데이터는 그 서버를 거쳐 밖으로 나갔습니다. 키를 어떻게 탈취했는지는 발표되지 않았습니다.
민관합동조사단이 밝힌 원인입니다.
여기에 보안 전담인력이 임직원 265명 중 4명이었습니다. 서비스가 크는 속도를 보안 인력이 따라가지 못한 셈입니다.
03편 쿠팡과 비교하면 모양이 닮았습니다. 쿠팡은 코드에 박힌 서명키를, 티빙은 코드에 노출된 접속키를 바꾸거나 치우지 않았습니다. 두 회사 모두 이전 모의해킹에서 지적을 받았고, 그 지적이 사고 경로로 남았습니다.
같은 실수를 일반 웹 서비스 코드로 옮겨 봅니다. 사고 회사의 코드가 아니라 같은 실수를 보여 주는 일반 예시입니다. 값은 모두 가짜입니다.
# 위험한 모양 · 일반 예시
# config.py (git에 커밋됨)
CLOUD_KEY_ID = "FAKE-AKID-0000"
CLOUD_SECRET = "FAKE-cloud-secret-0000"
DATA_KEY = "FAKE-data-key-0000"
def save_phone(db, user, phone):
enc = encrypt(phone, DATA_KEY)
db.insert(user, enc)
# 파일을 지워도 git 이력에 남는다
설정 파일에 클라우드 접속키가 그대로 적혀 있고, 이 파일이 저장소에 커밋됐습니다. 나중에 파일에서 키를 지워도 git 이력에는 그대로 남아서, 저장소를 받은 사람은 누구나 볼 수 있습니다. 아래 함수는 전화번호를 암호화하지만 암호화키가 같은 파일에 있습니다. 저장소를 가져간 쪽은 키도 함께 가져갑니다.
# 고친 모양 · 일반 예시
# 코드에 키 없음 · SSO로 단기 토큰
creds = sso.session(
role="dev-readonly", ttl_min=60)
def save_phone(db, kms, user, phone):
dek = kms.data_key("pii-key")
enc = encrypt(phone, dek.plain)
db.insert(user, enc, dek.wrapped)
# 마스터 키는 KMS 밖으로 안 나감
# 커밋 전·CI: git 이력 전체 시크릿 스캔
# (gitleaks 등) → 찾은 키는 교체
고친 모양은 세 군데가 다릅니다.
위 흐름도의 그린 표시와 같은 번호입니다.
1번은 들어오는 길을, 2번은 들어온 뒤 닿는 범위를, 3번은 가져간 데이터의 쓸모를, 4번은 빠져나가는 시간을 줄입니다.
한 가지를 더하면, 모의해킹에서 한 곳의 취약점이 나오면 전사에서 같은 패턴을 찾아 함께 조치합니다.
2026년 10월 말 기준 제재는 아직 진행 중입니다.
과징금이 결정되면 이 절을 고칩니다. 위 내용은 공개 보도·발표를 정리한 것이며 법률 자문이 아닙니다.
인프런 「백엔드 개발자를 위한 서버 보안 실무」 수업
짝이 되는 편: 쿠팡 3,367만 건 유출: 서명키 하나와 바꾸지 않은 키. 같은 "코드 속 시크릿" 패턴을 서명키 쪽에서 봅니다.
오늘 본 사고의 원인은 대부분 서버와 코드의 기본기에서 막을 수 있는 것들이었습니다. 직접 손으로 막아 보고 싶다면 이런 강의도 있습니다.
백엔드 개발자를 위한 서버 보안 실무: 해킹 방어부터 정보유출 방지까지
수치는 2026년 10월 말 기준 공개 보도·발표입니다. 진행 중인 사건은 바뀔 수 있고, 이 글은 법률 자문이 아닙니다.
이전 글 쿠팡 3,367만 건 유출: 서명키 하나와 바꾸지 않은 키
다음 글 롯데카드 297만 명: 8년 된 취약점과 잊혀진 결제 서버
시리즈 전체 목록 해킹 사고 해부 전체 목록