국내 해킹 사고 6건 — 어떻게 뚫렸고 무엇을 했어야 했나

Published:

2025~2026년에 터진 국내 해킹 사고 여섯 건을 한 번에 정리한다. 기업마다 어떻게 뚫렸는지, 그리고 무엇을 했어야 했는지를 나란히 두면 공통점이 보인다.

대부분은 관리 안 된 자격 증명(평문 비밀번호, 코드에 박힌 키)이나 방치된 입구(잃어버린 기지국 장비, 검증이 약한 API)에서 시작됐다. 그리고 절반 넘게, 사고 뒤의 대응(늦은 신고, 감염 미신고, 조사 전 서버 재설치·폐기)이 피해를 키웠다.

강남언니는 아직 조사 중이고, 예스24는 침투 경로가 공개되지 않았다.

1. SKT — 유심 정보 2,696만 건 유출 (2025년 4월 발견)

어떻게 뚫렸나

  • 2021년 8월, 공격자가 인터넷에 노출된 서버로 들어왔다.
  • 그 서버에 평문으로 저장된 계정 정보를 찾아 내부 서버와 핵심망으로 옮겨 갔다.
  • 가입자 인증 서버(HSS) 관리 계정까지 탈취해 리눅스 백도어 악성코드 ‘BPFDoor’를 심었다.
  • 서버 28대가 감염됐고 악성코드 33종이 나왔다. 유심 정보 25종, 약 2,696만 건(9.82GB)이 빠져나갔다.
  • BPFDoor는 국가 배후 해킹 조직이 오래 숨어 있으면서 정보를 빼 갈 때 주로 쓰는 도구라, 조직적인 공격으로 추정된다.
  • 정부는 계정 정보 평문 저장, 유심 정보 등 중요 정보 미암호화, 2022년 악성코드 감염 미신고, 신고 지연, 포렌식 방해, 로그 보관 부족을 과실로 지적했다.

어떻게 했어야 했나

  • 계정 정보는 금고형 저장소에 보관하고 주기적으로 바꾸고, 관리자 접속에는 다중 인증(MFA)을 걸어야 했다.
  • 인터넷에 노출된 영역과 핵심망을 떼어 놓고, 망 안에서도 서버 사이 접근을 최소한으로만 허용했어야 한다.
  • 유심 인증키 같은 핵심 데이터는 암호화하고, 할 수 있다면 HSM(하드웨어 보안 모듈)에 넣어야 했다.
  • 리눅스 서버에도 EDR(엔드포인트 탐지·대응)을 깔고, BPFDoor 같은 은닉형 백도어를 정기적으로 찾아야 했다.
  • 2022년 감염 때 신고하고 전수 조사를 했다면 3년 넘게 들키지 않는 일은 막을 수 있었다. 추적이 가능하도록 로그도 충분히 오래 보관했어야 한다.

2. KT — 불법 초소형 기지국 무단 소액결제와 감염 미신고 (2025년 8~9월)

어떻게 뚫렸나

  • 공격자가 KT의 초소형 기지국(펨토셀) 장비를 손에 넣어 관리자 권한을 얻었다.
  • 소형 컴퓨터와 LTE 에그, 배터리를 붙여 들고 다닐 수 있는 가짜 기지국으로 개조했다.
  • 근처 휴대폰의 문자와 통화 신호를 가로채 인증 문자를 받아 내고, 피해자 명의로 소액결제를 했다.
  • 불법 기지국 ID는 20개, 피해자는 368명, 피해 건수는 777건, 피해액은 319만 원이다.
  • 근본 원인은 장비 관리 부실이다.
    • 기지국 인증 유효기간이 10년이라 사실상 방치 상태였다.
    • 2014~2015년에 들여온 기지국 약 3,000대의 행방을 모른다.
  • 조사 과정에서, KT가 2024년 3~7월에 BPFDoor 등에 감염된 서버 43대를 발견하고도 정부에 신고하지 않고 자체 처리한 사실이 드러났다. 일부 서버에는 고객 이름, 전화번호, 이메일, 단말기 고유번호(IMEI)가 있었다.

어떻게 했어야 했나

  • 기지국 장비는 등록·회수·폐기까지 전 과정을 추적하고, 인증서는 짧게 발급하고, 잃어버린 장비는 즉시 차단했어야 한다.
  • 망에 붙는 기지국은 기기 인증을 강하게 하고, 등록되지 않은 기지국이 붙거나 위치가 이상하면 잡아내야 했다.
  • 결제 인증을 문자 하나에만 맡기지 말고 이상 거래 탐지를 더했어야 한다.
  • 감염 사실은 곧바로 신고하고 공개해야 했다. 신고하지 않은 대가는 신뢰 붕괴와 정부의 위약금 면제 검토로 돌아왔다.

3. LG유플러스 — 통합 계정 관리 서버(APPM) 정보 유출 (2025년 7~8월)

어떻게 뚫렸나

  • 해킹 잡지 Phrack에 실린 북한 해킹 조직 분석 보고서(“APT Down: The North Korea Files”)로 처음 알려졌다.
  • 서버 접근 권한과 비밀번호를 한곳에서 관리하는 시스템(APPM)이 뚫렸다.
  • 그 결과 소스코드와 DB, 서버 8,938대 정보, 계정 4만 2,526개, 임직원·협력사 직원 167명의 실명과 ID가 빠져나갔다.
  • 개인정보위 조사가 시작되기 직전인 2025년 8월에 관련 서버의 운영체제를 다시 깔고 일부는 폐기했다.
  • 그래서 유출 경로와 추가 피해를 밝히지 못했고, 개인정보위는 공무집행방해 혐의로 경찰에 수사를 의뢰했다.

어떻게 했어야 했나

  • APPM처럼 모든 권한을 쥔 시스템은 가장 강하게 지켜야 하는 자산이다.
    • 따로 떨어진 망에 두고, 다중 인증을 걸고, 누가 무엇을 조회했는지 모두 감사해야 했다.
    • 계정은 필요할 때만 잠깐 권한을 주고(JIT), 쓰고 나면 비밀번호를 바꾸는 방식으로 운영했어야 한다.
  • 정황을 통보받은 순간 증거부터 보존했어야 한다.
    • 디스크 이미지를 뜨고 로그를 백업했다면 원인도 밝히고 의혹도 피할 수 있었다.
    • 서버 재설치와 폐기는 포렌식이 끝난 뒤에 해야 했다.

4. 예스24 — 랜섬웨어 두 번 (2025년 6월, 8월)

어떻게 뚫렸나

  • 2025년 6월 9일 랜섬웨어에 감염돼 5일 동안 서비스가 멈췄고, 8월 11일에 다시 감염돼 약 7시간 멈췄다.
  • 침투 경로는 공개되지 않았다. 과기정통부와 개인정보위가 공개 범위를 두고 조율하지 못해 조사가 길어졌다.
  • KISA는 가장 큰 문제로 주요 데이터를 다른 곳에 두는 백업(오프사이트 백업)이 없었다는 점을 꼽았다.
  • 공식 발표는 없지만, 업계에서는 해커와 협상해 수십억 원대 비트코인을 지급한 것으로 알려졌다. 2분기 잡손실 48억 원도 대부분 해킹 관련 비용으로 추정된다.
  • 전문가들은 두 가지를 재공격 원인으로 꼽았다.
    • 몸값을 낸 전례가 알려지면 다시 표적이 되기 쉽다.
    • 처음 뚫린 경로를 완전히 막지 않은 채 서비스를 재개하면 재침투가 가능하다.
  • 처음에는 개인정보 유출이 없다고 했지만, 조사에서 회원 정보에 대한 비정상 접근 흔적이 나왔다.

어떻게 했어야 했나

  • 백업을 3-2-1 원칙으로 두어야 했다.
    • 사본 3개, 매체 2종, 그중 1개는 다른 장소에 둔다.
    • 그중 하나는 오프라인이나 수정 불가능한 저장소에 넣어, 몸값 없이도 복구할 수 있게 해야 한다.
  • 복구 전에 처음 뚫린 경로와 심어진 백도어를 먼저 찾아 없애고, 비밀번호를 전부 바꿔야 했다.
  • 몸값은 내지 않아야 했다. 내는 순간 “돈 내는 곳”으로 소문이 난다.
  • 유출 여부는 조사가 끝나기 전에 단정하지 말고, 확인된 사실만 공지했어야 한다.

5. 티빙 — 3,954만 계정 유출 (2026년 5월 말, 9월 3일 정부 발표)

어떻게 뚫렸나

  • 개발자 접속키가 소스코드에 그대로 박혀 있었다(하드코딩).
  • 해커는 이 키로 개발 환경에 들어가 소스코드를 포함한 프로젝트 361건(30.35GB)을 가져갔다.
  • 5월 30일 DB에서 첫 유출을 시도했다가 차단됐지만, 31일에는 내부에 가상 서버를 직접 만들어 이용자 정보 24GB를 밖으로 빼냈다.
  • 휴대폰 번호와 이메일을 암호화한 키도 함께 새어 나가, 암호화가 사실상 무력해졌다.
  • 유출 계정 수는 다음과 같다.

    구분계정 수
    활성2,206만
    휴면·탈퇴1,737만
    테스트11만
  • 사고를 알고도 24시간이 지난 뒤 신고해 과태료 대상이 됐다.
  • 모의해킹에서 나온 취약점을 방치했다는 의혹도 있다.

어떻게 했어야 했나

  • 접속키 같은 비밀 값은 코드가 아니라 전용 저장소(Vault, KMS 등)에 두고, 짧게 쓰고 자주 바꿔야 했다.
  • 코드 저장소에 비밀 값이 올라가면 걸러 내는 도구(secret scanning)를 돌렸어야 한다.
  • 암호화키는 데이터와 다른 곳에 둬야 한다. 키가 데이터와 같이 털리면 암호화는 의미가 없다.
  • 개발 환경과 운영 DB를 분리하고, 권한이 없는 가상 서버가 새로 생기거나 데이터가 대량으로 나가면 경보가 울리게 했어야 한다.
  • 휴면·탈퇴 계정 1,700만 개는 진작 파기하거나 분리 보관했어야 한다. 그랬다면 피해가 절반 가까이 줄었다.
  • 모의해킹에서 나온 취약점은 기한을 정해 고쳐야 했고, 사고는 24시간 안에 신고했어야 한다.

6. 강남언니 — 22만 명 유출, 시술·상담 정보 포함 (2026년 9월 4일)

어떻게 뚫렸나 (조사 중)

  • 웹과 앱에서 상담 내역을 조회하는 API에 비정상적인 접근이 들어왔다.
  • 초기 대응을 하는 동안에도 다른 연동 경로로 다시 들어오려고 했다.
  • 피해자는 국내 약 16만 명, 일본 4만 8,000명 등 모두 22만 명이다.
  • 유출 항목은 다음과 같다.
    • 기본 정보: 이름, 연락처, 이메일, 생년월일
    • 민감 정보: 시술·병원·의사명, 상담 동기, 상담에 올린 사진, 결제 정보
  • 구체적인 결함(권한 검증 누락 등)은 아직 공개되지 않았다.
  • 회사는 KISA에 자진 신고했고, 경찰에 수사를 의뢰했다.

어떻게 했어야 했나 (API 대량 유출에 공통으로 쓰는 대책 기준)

  • API가 요청을 받을 때마다 “이 사용자가 이 상담 건을 볼 권한이 있는가”를 서버에서 확인해야 한다(객체 단위 권한 검증).
    • 이게 빠진 경우(BOLA, Broken Object Level Authorization)가 API 유출의 가장 흔한 원인이다.
  • 짧은 시간에 많은 건을 조회하는 요청은 rate limit으로 막고, 이상 조회는 탐지해 자동 차단해야 한다.
  • 상담 사진이나 시술 내역처럼 민감한 정보는 목록 API에 싣지 말아야 한다.
    • 꼭 필요한 화면에서만, 가려서 보여 주고, 별도로 암호화한다.
  • 연동 경로가 하나 막혀도 다른 경로로 들어오는 일이 없도록, 대응할 때는 연동 API 전체를 한꺼번에 점검했어야 한다.

공통 교훈

  1. 자격 증명을 제대로 관리하지 않았다. SKT의 평문 계정 정보, 티빙의 하드코딩 키, LG유플러스의 APPM이 모두 여기에 해당한다.
  2. 방치된 입구가 있었다. KT의 잃어버린 기지국, 강남언니의 API, SKT의 인터넷 노출 서버다.
  3. 복구할 수단이 없었다. 예스24는 다른 곳에 둔 백업이 없었다.
  4. 사고 뒤 대응이 피해를 키웠다.
    • 감염을 신고하지 않은 곳: SKT(2022년), KT(2024년)
    • 늦게 신고한 곳: 티빙
    • 조사 전에 관련 서버를 재설치·폐기한 곳: LG유플러스

    사고 자체보다 이런 대응이 제재와 신뢰 하락을 더 크게 만들었다.

출처