Eunho's Blog
← Back to blog
블로그/기술문서

KT 무단 소액결제 해킹 사태

내가 쓰는 KT, 소액 결제 당해보기

#보안사고#KT#펨토셀#소액결제#통신보안

들어가며

솔직히 말하면 이 사건을 처음 들여다본 계기는 좀 단순하다. 내가 KT를 쓰고 있는데, 어느 날 갑자기 6개월 동안 매달 100GB 데이터를 공짜로 준다는 보상 안내를 받았기 때문이다. 데이터 부족에 시달리던 입장에서 "오 개꿀" 하고 넘어갈 뻔했는데 대형 보안 사고에 대한 사과·보상이었다.

무슨 일이 있었나

2025년 하반기, KT 일부 가입자들이 자기도 모르는 사이에 소액결제가 빠져나가는 피해를 입었다. 게임 아이템, 콘텐츠 결제 같은 게 본인 동의 없이 결제된 것이다. 자고 일어났더니 모르는 결제 문자가 와 있거나, 요금 청구서에 처음 보는 항목이 찍혀 있는 식이었다.

처음에는 "내 폰이 해킹당했나?" 싶어 개인 문제로 여겨졌다. 그런데 비슷한 신고가 경기 광명, 서울 금천 같은 특정 지역에서 동시다발로 쏟아지면서, 이게 개인이 아니라 통신망 차원의 사고라는 게 드러났다. 피해자들의 공통점은 단 하나, 같은 동네에서 KT를 쓰고 있었다는 것뿐이었다.

대략적인 사건 흐름은 이렇다.

  • 2025년 8월 중순 — 광명·금천 등에서 피해 신고가 처음 나오기 시작
  • 9월 1일 — 경찰이 KT에 사실 통보
  • 9월 5일 — KT가 비정상 소액결제 차단 조치
  • 9월 24일 — 국회 청문회 개최, 사건이 전국적 이슈로

조사 결과 드러난 숫자는 대략 이렇다.

  • 확인된 불법 펨토셀(가짜 기지국) 약 20개
  • 이 장비에 접속했던 가입자 약 2만 2,227명의 정보(IMSI·IMEI·전화번호)가 유출
  • 그중 368명이 총 2억 4,319만 원의 무단 소액결제 피해
  • 이후 조사가 진행되며 유출·피해 규모는 계속 늘어 발표됨

숫자가 처음 발표보다 계속 커졌다는 점도 불안을 키웠다. "확인된 게 이만큼"이라는 건, 바꿔 말하면 아직 확인 안 된 게 더 있을 수 있다는 뜻이기도 했으니까. 게다가 처음엔 ARS 인증을 통한 피해만 집계됐고, 문자-나 PASS 앱 인증을 통한 피해는 한참 뒤에야 파악에 들어갔다.

처음엔 "KT 펨토셀이 문제였나?" 했는데, 조사가 진행되면서 KT 정품 펨토셀이 아니라 공격자가 가져다 둔 불법 중국산 장비였다는 게 밝혀지면서 논란이 더 커졌다. 즉 "KT 장비가 고장 난" 게 아니라, 공격자가 가짜 장비를 KT 망에 몰래 끼워 넣는 데 성공했다는 훨씬 심각한 이야기였다.

펨토셀이란?

나도 이번에 처음 알았다. **펨토셀[femtocell]* 은 쉽게 말하면 **아주 작은 미니 기지국**이다. 집이나 사무실처럼 신호가 약한 곳에 두면, 인터넷 회선에 연결돼서 그 주변에 휴대폰 신호를 쏴주는 장치다. 즉 내 폰은 큰 기지국 대신 이 작은 펨토셀에 붙어서 통신하게 된다.

문제는 여기다. 내 폰이 어떤 기지국에 붙는지 사용자는 모른다. 신호 좋은 쪽에 자동으로 붙을 뿐이다. 그래서 공격자가 가짜 펨토셀을 설치해두면, 근처 사람들의 폰이 자기도 모르게 그 가짜 기지국에 붙어버린다. 통신의 "통로" 자체를 공격자가 쥐게 되는 셈이다.

참고로 KT가 전국에 운영하는 펨토셀이 약 15만 대에 달한다고 한다. 그만큼 흔하게 쓰이는 장비인데, 이 중에 가짜가 섞여 들어가는 걸 제대로 못 걸렀다는 게 이번 사건의 출발점이다.

가장 센 신호

조금 더 깊이 들어가보면, 휴대폰에는 "가장 신호가 강한 기지국에 붙어라" 는 아주 단순한 규칙이 박혀 있다. 원래는 통화 끊김을 막으려고 만든 친절한 기능이다. 그런데 이게 보안 관점에서는 약점이 된다. 공격자가 내 옆에 강한 가짜 기지국을 두면, 폰은 "오 여기 신호 좋네" 하고 의심 없이 갈아탄다. 폰 입장에선 그게 진짜인지 가짜인지 확인할 마땅한 방법이 없다.

그래서 이런 가짜 기지국 공격은 예전부터 있었다. 대표적인 게 IMSI 캐처 라는 장비다. IMSI는 유심에 들어 있는 가입자 고유 식별번호인데, 가짜 기지국을 세워 주변 폰들이 보내오는 이 IMSI를 쓸어 담는 장비다. 원래는 수천만 원대에 부피도 큰 전문 장비여서 아무나 못 썼는데, 이번에 악용된 펨토셀은 해외 쇼핑몰에서 비교적 싸고 쉽게 구할 수 있다는 점이 문제였다. 진입 장벽이 확 낮아진 것이다.

이번 KT 사건의 불법 펨토셀은 거기서 한 발 더 나갔다. 단순히 번호만 수집한 게 아니라, 실제 통신망에 정식 장비인 척 연결되는 데 성공해서 그 안을 오가는 인증 문자까지 가로챘다. 신원 수집을 넘어 결제까지 건드린 셈이라 피해가 훨씬 컸다.

가짜 펨토셀이 가로채는 과정

정리하면 공격은 대략 이런 흐름이었다.

  1. 공격자가 불법 펨토셀을 특정 지역에 설치한다.
  2. 주변 KT 가입자들의 폰이 신호가 센 이 가짜 기지국에 자동으로 붙는다.
  3. 이 펨토셀이 KT 망에 정상 장비인 척 연결되면서, 통과하는 통신을 들여다볼 수 있게 된다.
  4. 공격자가 피해자 명의로 소액결제를 시도하면, 결제 인증을 위한 ARS·SMS 인증번호가 그 폰으로 날아온다.
  5. 그런데 그 통신이 가짜 펨토셀을 거치고 있으니, 공격자가 인증번호를 중간에서 가로챈다.
  6. 가로챈 인증번호로 결제를 승인 → 피해자는 아무것도 안 했는데 결제가 완료된다.

핵심은 피해자가 할 수 있는 게 없었다는 점이다. 이상한 링크를 누른 것도, 비밀번호를 알려준 것도 아닌데 당했다. 그냥 그 동네에서 폰을 켜고 있었을 뿐이다. 이게 이 사건이 무서운 진짜 이유다. 전문가들은 더 나아가 "IMSI가 유출되면 유심 복제(심 스와핑) 로 통화·문자까지 통째로 빼돌릴 수 있다"고 경고했는데, 그렇게 되면 소액결제는 시작에 불과한 셈이다.

근본 원인

기사들을 종합하면 원인이 한 가지가 아니라 여러 개가 겹쳤다.

1. 허술한 펨토셀 인증 관리

이게 핵심으로 지적된다. KT는 모든 펨토셀 기기에 동일한 10년짜리 인증서를 쓰고 있었다고 한다. 인증서는 "이 장비가 진짜 우리 장비가 맞다"를 증명하는 신분증 같은 건데, 이게 10년 동안 유효하고 모든 기기가 같은 걸 공유했다는 거다.

비교해보면 차이가 확 느껴진다.

통신사인증 관리
KT10년짜리 동일 인증서
LG U+인증 2년, 30일 미작동 시 차단
SKT7일 이상 미사용 시 자동 차단

신분증을 10년간 안 바꾸고, 게다가 다 같은 걸 돌려 쓴 셈이라 한 번 털리면 막을 방법이 없었다.

2. 비정상 접속을 안 걸렀다

KT 내부망에서 펨토셀이 접속할 때, 타사 IP나 해외 IP 같은 비정상적인 접속을 차단하지 않았다는 지적이 나왔다. 정상 장비라면 들어올 리 없는 경로로 들어오는데도 통과시켜 준 것이다.

3. 종단 암호화 해제 → 인증정보가 평문

원래 통신은 암호화돼서 중간에서 까봐도 내용을 알 수 없어야 한다. 그런데 공격자가 불법 펨토셀을 장악한 상태에서는 이 종단 암호화를 해제할 수 있었고, 그러면 소액결제 인증에 쓰이는 ARS·SMS 인증번호가 암호화 없이 평문으로 그대로 노출됐다. 결제 인증번호를 공격자가 가로채니, 본인 동의 없는 결제가 가능해진 것이다.

4. BPFDoor

여기가 제일 무섭다. 민관 합동 조사단 발표에 따르면, KT는 2024년 3월부터 7월 사이에 BPFDoor·웹셸 등 악성코드에 감염된 서버 43대를 자체적으로 발견했다. 그런데 이걸 당국에 신고하지 않고 자체적으로 조치했고, 일부 감염 서버에는 가입자의 성명·전화번호·이메일·단말기 식별번호(IMEI)가 저장돼 있었다는 사실까지 드러났다. 즉 사고가 터지기 1년도 더 전에 이미 서버가 뚫려 있었는데, 그걸 외부에 알리지 않았다는 이야기다.

BPFDoor가 왜 위험한지는 이름을 뜯어보면 보인다. BPF는 리눅스에서 네트워크 패킷을 걸러보는 기능(Berkeley Packet Filter)인데, BPFDoor는 이 기능을 악용한다. 보통 백도어는 공격자의 명령을 기다리려고 특정 포트를 열어두는데, 포트가 열려 있으면 보안 장비에 금방 들킨다. 그런데 BPFDoor는 포트를 아예 안 열어둔다. 대신 시스템을 지나가는 모든 패킷을 조용히 엿보다가, 공격자가 보낸 특정 신호(매직 패킷) 가 도착하면 그때서야 깨어나 문을 연다. 평소엔 죽은 척하고 있으니 탐지가 정말 어렵다. 그래서 "은닉성이 강하다"고 하는 거다.

이게 왜 중요하냐면, 펨토셀이 KT 망에 "정상 장비인 척" 붙으려면 기지국 인증 정보가 필요한데, 서버에 이런 백도어가 미리 깔려 있었다면 공격자가 그 인증 정보를 빼내기 훨씬 쉬웠을 거라는 의심 때문이다. 실제로 조사단은 "국가 배후 조직에 의한 KT 인증서 유출 정황" 도 함께 들여다봤다. 즉 "불법 펨토셀 사건"이 사실은 그 1년 전 서버 침해의 연장선일 수 있다는 이야기다. 사고가 한 번에 터진 게 아니라, 오래전부터 KT 내부에 공격자가 들어와 있었을 가능성이 제기된 것이다.

모르는 단어 꼬리물기 공부

사건을 정리하다 보니 모르는 단어가 줄줄이 나왔다. 하나 찾아보면 그 설명 안에 또 모르는 단어가 있어서, 자연스럽게 꼬리에 꼬리를 물고 공부하게 됐다. 그 순서 그대로 남겨본다.

평문이란?

처음 막힌 단어가 평문 이었다. 찾아보니 암호화하지 않은, 사람이 그대로 읽을 수 있는 원본 데이터를 뜻했다. 예를 들어 내 인증번호가 493012라고 하면, 이게 그대로 보이는 상태가 평문이다.

그럼 반대는? 자연스럽게 암호화 로 넘어갔다. 암호화는 이 평문을 정해진 규칙(키)으로 뒤섞어서, 가로채도 못 알아보게 만드는 것이다. 위 인증번호가 x9$kQ2... 같은 알 수 없는 값으로 바뀌는 식이다. 가로챈 사람은 키가 없으면 원래 값을 모른다. 그래서 "통신은 암호화돼 있어야 안전하다"는 말이 나오는 거였다.

그럼 종단 암호화는?

암호화를 알고 나니 본문의 **종단 암호화, 영어로 end-to-end encryption ** 가 이해됐다. "종단"은 양 끝 을 뜻한다. 즉 출발지에서 잠가서, 최종 목적지에서만 풀 수 있는 암호화다. 중간을 지나는 어떤 장비도 내용을 못 본다.

여기서 이번 사건이 왜 무서운지 딱 와닿았다. 정상이라면 펨토셀을 지나가도 암호가 안 풀려야 하는데, 공격자가 종단 암호화를 해제해버리니 인증번호가 다시 평문으로 노출된 것이다. 앞에서 공부한 평문 → 암호화 → 종단 암호화가 한 줄로 연결됐다.

BPFDoor? → 백도어가 뭔지부터

마지막 관문이 BPFDoor 였다. 이름 뒤에 "백도어 계열 악성코드"라고 적혀 있길래, 먼저 백도어(-- 부터 찾았다.

백도어는 말 그대로 뒷문이다. 정상적인 로그인을 거치지 않고, 공격자가 몰래 드나들 수 있게 만들어 둔 비밀 통로를 말한다. 한 번 심어두면 비밀번호를 바꿔도 계속 들어올 수 있어서 위험하다.

그걸 알고 나서 BPFDoor를 보니 의미가 잡혔다. 이름의 BPF는 리눅스에서 네트워크 패킷을 걸러보는 기능(Berkeley Packet Filter)인데, BPFDoor는 이 기능을 악용해서 자기 존재를 거의 안 드러내고 숨어 있는 백도어다. 평소엔 조용히 잠복해 있다가, 공격자가 보낸 특정 신호(매직 패킷)에만 깨어나 문을 열어준다. 그래서 "은닉성이 강하다", "탐지가 어렵다"고 하는 거였다. 서버에 이런 게 깔려 있었다면, 공격자가 인증 정보를 빼내기 훨씬 쉬웠겠다는 게 납득이 갔다.

꼬리물기 정리: 평문 → 암호화 → 종단 암호화 → (BPFDoor를 이해하려고) 백도어 → BPFDoor. 단어 하나가 다음 단어를 끌고 와서, 결국 사건 전체가 한 줄로 이어졌다.

아직 안 풀린 것들

이 사건을 더 파다 보니, 시간이 꽤 지났는데도 명확하게 안 밝혀진 부분이 많다는 걸 알게 됐다. 언론에서 "3대 미스터리"라고 부른 쟁점들을 내 식대로 정리하면 이렇다.

  1. 왜 KT 가입자만 당했나 — 앞서 본 "10년짜리 인증서" 같은 허술함 때문이라는 게 유력하지만, 공격자가 그 인증 정보를 정확히 어떻게 손에 넣었는지는 아직 딱 떨어지게 규명되지 않았다. 경쟁사는 안 당하고 KT만 당했다는 건 분명한데, 그 마지막 연결고리가 비어 있다.
  2. 실제 피해 규모는 얼마인가 — 처음엔 ARS 인증 피해만 집계됐다. 문자·PASS 인증을 통한 피해는 따로 파악해야 해서, 최종 피해자 수가 더 늘어날 가능성이 계속 제기됐다.
  3. 서버 해킹과 얼마나 연결돼 있나 — 2024년 BPFDoor 서버 감염과 2025년 펨토셀 사건이 같은 공격의 일부인지, 우연히 겹친 별개 사건인지가 핵심이다. 피해 다발 지역과 감염 서버 위치가 지리적으로 가깝다는 정황은 있지만, 확실히 입증되진 않았다.

여기에 더해, "범행 목적이 정말 소액결제였느냐"는 의문도 있다. 이 정도 침투에 들인 노력에 비하면 2.4억 원은 적은 편이라, "진짜 목적은 감청·정보수집이고 소액결제는 곁다리 아니냐"는 시각도 나왔다.

보안 입문자 입장에서 이게 인상 깊었다. "사고가 터졌다 = 원인이 다 밝혀졌다"가 아니구나. 큰 사고일수록 전모를 파악하는 데 오래 걸리고, 어떤 건 끝까지 안 밝혀지기도 한다는 걸 처음 알았다.

처음이 아니다 — 반복되는 KT의 사고

조사하면서 가장 씁쓸했던 부분이다. KT가 대형 보안·통신 사고를 낸 게 이번이 처음이 아니었다.

  • 2012년 — 해킹으로 약 870만 명 가입자 개인정보 유출
  • 2014년 — 홈페이지 해킹으로 약 1,200만 명 정보 유출
  • 2021년 — 전국적인 인터넷 먹통 사태(네트워크 설정 오류로 인한 대규모 장애)
  • 2025년 — 이번 불법 펨토셀 무단 소액결제 사태

물론 회사가 크고 가입자가 많으면 표적이 되기 쉬운 건 사실이다. 하지만 비슷한 유형의 사고가 10년 넘게 반복된다는 건, 그때그때 터진 불만 끄고 근본 체질은 안 바뀌었다는 신호로 읽힌다. 한두 번이면 운이 나빴다고 할 수 있지만, 반복되면 그건 구조의 문제다.

어떻게 대응했나

KT가 내놓은 보상안은 대략 이렇다. (나도 이 중 일부를 받았다. 오예)

  • 소액결제 피해 100% 배상
  • 번호이동 시 위약금 면제
  • 전 고객 대상 6개월간 매달 100GB 데이터 제공
  • 피해 고객에게 15만 원 상당 요금/단말 할인
  • 통신·금융사기 보상 보험 3년 무료
  • OTT 6개월 이용권 등

기술적으로는 펨토셀 인증 체계를 손보고, 불법 장비를 차단하는 조치를 취했다. -> 방법을 더 찾아보려 했는데 공개적으로 배포된 자료가 없더라

보완이 미흡했던 부분

처음 배우는 입장에서 봐도 아쉬운 게 명확하게 보였다.

  1. 사전 예방 실패 — 인증서 10년 공유, 비정상 IP 미차단처럼 기본기에 해당하는 부분이 뚫렸다. 경쟁사들은 다 하고 있던 거였다.
  2. 탐지·신고 실패 — BPFDoor 감염을 알고도 신고하지 않았다는 의혹이 사실이라면, 이건 기술 문제를 넘어 신뢰의 문제다. 빨리 알렸으면 피해를 줄일 수 있었을 거다.
  3. 사후 대응 중심 — 결국 터지고 나서 보상으로 수습하는 모양새가 됐다. 100GB가 좋긴 한데, 내 인증번호가 평문으로 새어나갔다는 사실이 사라지는 건 아니다.

마무리하며 느낀 점

공짜 데이터에 혹해서 들어왔다가, 정작 "내 폰이 어떤 기지국에 붙는지 나는 통제할 수 없다" 는 사실이 제일 오래 남았다. 보안에서 자주 나오는 "신뢰할 수 없는 네트워크"라는 말이 이런 거구나 싶었다. 카페 와이파이를 조심하라는 말은 들어봤어도, 통신사 망 자체가 신뢰할 수 없는 경로가 될 수 있다는 건 상상도 못 했다.

정리하면서 머릿속에 남은 키워드가 몇 개 있다.

  • 기본기 — 인증서 관리, IP 필터링 같은 당연한 걸 안 해서 뚫렸다. 화려한 신기술보다 기본을 지키는 게 보안의 9할이라는 말이 와닿았다.
  • 다층 방어 — 펨토셀 인증이 뚫려도 종단 암호화가 살아 있었다면, 또는 암호화가 풀려도 비정상 결제를 한 번 더 걸렀다면 피해가 작았을 거다. 방어막이 한 겹뿐이면 그 한 겹이 뚫리는 순간 끝난다.
  • 투명성 — 2024년 서버 감염을 알고도 안 알렸다는 게 사실이라면, 기술보다 그게 더 큰 문제다. 보안은 결국 사용자의 신뢰 위에 서 있는데, 그걸 스스로 깎아먹은 셈이니까.

100GB는 6개월 뒤면 끝나지만, 이 사건에서 배운 건 그보다 오래 남을 것 같다. 솔직히 보상받을 땐 좋았는데, 공부하고 나니 마냥 좋아할 일은 아니었구나 싶다.