🚨 BPFDoor: 리눅스 기반 스텔스 백도어의 실체와 SKT 유심 유출 사건 연관성 분석


📌 사건 개요

2025년 4월 19일 밤, SK텔레콤의 핵심 서버인 홈가입자서버(HSS)가 악성코드에 감염되어 일부 가입자의 유심 관련 정보가 유출된 정황이 포착되었습니다. 이 서버는 가입자의 전화번호, 유심 고유식별번호, 인증 키 등 통신 서비스 제공에 필수적인 정보를 관리하는 중앙 시스템입니다 .​

SK텔레콤은 4월 22일, 해당 사건을 한국인터넷진흥원(KISA)과 개인정보보호위원회에 자진 신고하였으며, 이후 과학기술정보통신부와 함께 민관합동조사단을 구성하여 조사를 진행 중입니다 .​


🔍 유출된 정보 및 위험성

정부 조사에 따르면, 유출된 정보는 다음과 같습니다

  • 가입자 전화번호
  • 가입자식별키(IMSI) 등 유심 복제에 활용될 수 있는 정보 4종
  • SK텔레콤의 관리용 정보 21종​

다행히 단말기 고유식별번호(IMEI)는 유출되지 않았습니다. 이에 따라, 유심보호서비스에 가입하면 유심 복제 범죄인 ‘심스와핑(SIM Swapping)’을 방지할 수 있다는 정부의 설명이 있습니다.


🧬 BPFDoor란 무엇인가?

BPFDoor는 2021년 중반부터 존재가 확인된 중국계 APT 그룹 Red Menshen(aka Red Dev 18, APT27)의 소행으로 추정되는 고도화된 리눅스 기반 백도어 악성코드입니다.
**Berkeley Packet Filter (BPF)**를 활용하여 방화벽을 우회하고 원격에서 명령을 실행할 수 있습니다.

이 악성코드는 Red Menshen으로 알려진 중국계 APT 그룹과 연관되어 있으며, 최소 5년 이상 탐지되지 않고 활동해왔습니다 .

  • 주요 특징:
    • 커널 수준의 BPF(Berkeley Packet Filter) 사용
    • 포트리스닝 없이 트래픽 필터링 수행
    • 역방향 쉘 리버스 기능
    • 루트킷과 결합 가능성

🔗 참고: bpfd-door-analysis – Sandfly Security


⚙️ 작동 원리 및 탐지 회피 기법

1. BPF 필터를 통한 패킷 감시

BPFDoor는 BPF 필터를 사용하여 네트워크 인터페이스에서 특정 패킷을 감시합니다. 이 필터는 TCP, UDP, ICMP 프로토콜을 대상으로 하며, 특정 “매직 넘버”를 포함한 패킷을 감지하여 악성 행위를 시작합니다.

bash

예시: BPFDoor의 BPF 필터 조건
if (Protocol == UDP && data[0:2] == 0x7255) return true;
if (Protocol == ICMP && data[0:2] == 0x7255 && ICMP Type == Echo Request) return true;
if (Protocol == TCP && data[0:2] == 0x5293) return true;

2. 포트리스닝 없이 명령 수신

BPFDoor는 포트를 열지 않고도 명령을 수신할 수 있습니다. 이는 로컬 방화벽 규칙을 우회하여 비정상적인 포트 리스닝 없이 원격 명령을 실행할 수 있게 합니다 .

3. 리버스 셸 및 바인드 셸 생성

감염된 시스템은 공격자로부터의 명령을 수신하면 리버스 셸 또는 바인드 셸을 생성하여 원격 명령 실행을 가능하게 합니다. 이 과정에서 iptables 규칙을 일시적으로 변경하여 트래픽을 리디렉션합니다.


📌 SKT 유심 유출 사건과의 연관성

2025년 4월 발생한 SK텔레콤의 홈가입자서버(HSS) 해킹 사건에서는 해당 서버가 BPFDoor에 감염된 정황이 포착되었습니다.

  • 감염 경로: 초기 진입 벡터는 명확하지 않으나, 내부 시스템 내 포트리스닝 없는 C2 트래픽이 감지되었으며 이는 BPFDoor의 특징과 일치
  • 유출된 정보:
    • 가입자 IMSI, 유심 고유번호, 인증 키 등
  • 탐지 실패 원인: 로그 회피 및 일반 보안 솔루션 우회 기능 탑재

🧪 탐지 및 분석 기법

1. 프로세스 및 네트워크 소켓 확인

BPFDoor는 일반적인 시스템 프로세스처럼 위장하여 실행됩니다. 다음 명령어를 사용하여 수상한 프로세스를 확인할 수 있습니다:

bash

ps aux | grep -E 'udevd|mingetty|console-kit-daemon'

또한, ss 명령어를 사용하여 BPF 필터가 적용된 소켓을 확인할 수 있습니다:

bash

ss -lnp | grep 'SO_ATTACH_FILTER'

2. BPF 필터 코드 분석

BPFDoor의 BPF 필터 코드는 특정 매직 넘버를 감지하도록 설계되어 있습니다. 이를 분석하여 악성 활동을 탐지할 수 있습니다 .

감염된 시스템은 공격자로부터의 명령을 수신하면 리버스 셸 또는 바인드 셸을 생성하여 원격 명령 실행을 가능하게 합니다. 이 과정에서 iptables 규칙을 일시적으로 변경하여 트래픽을 리디렉션합니다.


.

🔐 대응 및 방어 전략

BPFDoor는 고도로 은닉화된 백도어로 일반적인 SIEM 솔루션만으로는 탐지가 어렵습니다.

✅ 탐지 및 제거 팁

  1. ebpftrace 또는 tcpdump 활용한 패킷 분석
  2. ps, netstat, ss 명령어 활용해 수상한 프로세스/소켓 점검
  3. Immutable 설정 파일 체크
  4. 기록되지 않는 스케줄링 작업(.bashrc, crontab 외 사용자 정의 경로 확인)

🧱 보안 권장 사항

  • eBPF 기반 행위 분석 솔루션 도입 (EDR 등)
  • FIM(File Integrity Monitoring) 활용해 설정 파일 변경 추적
  • 정기적인 커널 모듈 검사 및 동적 트래픽 필터링
  • SKT 이용자라면 유심 교체 및 유심보호서비스 등록 필수

📚 참고 자료

5 thoughts on “🚨 BPFDoor: 리눅스 기반 스텔스 백도어의 실체와 SKT 유심 유출 사건 연관성 분석”

댓글 남기기