2025년 4월 19일 경 대한민국에서 가장 큰 이동통신 서비스 업체인 SK텔레콤에서 가입자 인증 서버인 HSS (Home Subscriber Server)가 해킹당하는 침해 사고가 발생하였으며 이번 사고로 인하여 USIM 고유 식별 번호 등 USIM 복제에 악용될 수 있는 약 9.8 GB (약 2,695만 명분) 가입자 핵심 정보가 유출된 정황이 드러났음.
해당 사고는 단순한 정보 유출에 그치지 않고
등의 사회적 파장으로 번짐
이번 침해사고는 BPFDoor 계열의 악성코드로 인해 발생한 것으로 확인되었음.
조사에 따르면 총 25종의 악성코드 (BPFDoor 계열 24종 + 웹쉘 1종) 가 확인되었으며, 최소 23대의 서버를 감염시킨 것으로 밝혀짐_
이 악성코드는 BPF 필터링을 악용하여 네트워크 패킷을 은밀히 수신하며, 로그를 남기지 않는 고도화된 백도어 기능을 갖추고 있음
따라서 이번 글에서는 최근 가낭 주목받은 보안 이슈인 BPFDoor 기반 침해 사고를 중심으로 관련 기술인 BPF | eBPF | BPFDoor의 개념과 원리를 정리하고, 실제 사고와 관련된 대응 방법 및 점검 가이드를 다뤄보고자 함
1992년, 네트워크 패킷 분석 효율을 높이기 위해 리눅스/유닉스 커널에 도입된 저수준 필터링 메커니즘
필터 대상 : TCP, UDP, ICMP 프로토콜
tcpdump
, wireshark
등의 패킷 분석 툴iptables
, firewalld
의 내부 작동에도 사용2014년, 리눅스 커널 3.15 버전에 도입된 BPF의 확장판, BPF를 단순 필터링을 넘어 커널 내에서 복잡한 로직을 실행할 수 있도록 만든 기술
가상 머신
구조네트워크 패킷 분석을 넘어, 커널 전반의 다양한 동작에 관여
bcc
, bpftrace
등 성능 분석/시스템 트레이싱 도구Falco
, Cilium
, Tetragon
등 보안 감시/정책 적용 도구XDP
(eXpress Data Path) 고속 패킷 필터링 DDoS 방어BPF 필터를 악용해 포트를 열지 않고도 외부 명령을 수신하는 고은닉성 리눅스 기반 백도어 악성코드
2017년 부터 활동하다 2021년 PwC UK에 의해 공개되어 주목을 받기 시작했으며, 2025년 SKT 침해 사고에 직접 사용되며 재조명되고 있음
아래의 글에서 더욱 상세히 다뤄보겠음
BPFDoor는 리눅스 시스템에서 동작하는 고도화된 스텔스형 백도어로, BPF 메커니즘을 악용하여 포트를 열지 않고도 외부 명령을 수신할 수 있는 "비접속 형" 은닉 통신을 구현함.
이로 인해 일반적인 네트워크 보안 장비나 로그 분석 시스템으로는 탐지하기 매우 어려움
✔️ 기존 보안 체계를 대부분 우회
→ 방화벽, IDS/IPS, 포트 스캐너 무력화
✔️ 다양한 명령 실행 가능
→ 쉘 접근, 파일 업로드/다운로드, 내부망 탐색 등
✔️ APT 공격자들이 장기 침투에 사용
→ 내부 거점 확보 및 지속정 정보 탈취
✔️ 합법적인 시스템 프로세스로 위장
→ udevd
, dbus
, cron
등 정상 프로세스인 척 실행
✔️ 취약점 통해 몰래 설치 + 실행 후 흔적 제거
→ 웹쉘, RCE 등 다양한 방식으로 유입되고, 설치 직후 자가 삭제 또는 파일 은닉 처리
📌 즉, 일반적인 악성코드보다 발견·제거가 훨씬 어렵고, 침해 범위가 크다는 점에서 매우 위협적임
항목 | 설명 |
---|---|
BPF 소켓 감청 | 리스닝 포트 없이도 패킷 감지 |
Fileless 실행 | 디스크에 남지 않고 메모리 기반 실행 |
방화벽 우회 | iptables / firewalld 탐지 우회 |
로그 회피 | syslog, audit log 등 로그 미기록 또는 비활성화 |
프로세스 위장 | 정상 시스템 프로세스 이름으로 실행 |
자가 삭제 기능 | 감염 직후 실행 파일을 지워 흔적 최소화 → ※ 2025년 변종에는 자가 삭제 기능이 제거됨 |
이번에 확인된 BPFDoor는 기본적인 기능은 공개된 소스 코드와 유사하지만 차이점이 존재함
※
IoC
: Indicator of Compromise (침해 지표, 공격의 흔적을 식별할 수 있는 단서)
가장 큰 차이점으로는 비밀번호로, 과거 BPFDoor는 justforfun
과 socket
문자열을 통해 구분되었으나 이번에 공개된 IoC에는 MD5를 기반으로 명령을 구분함
bind shell
과 reverse shell
과 같이 지원하는 명령 등 대부분의 실질적인 기능은 유사
과거 BPFDoor는 실행시
/bin/rm -f /dev/shm/kdmtmpflush; \
/bin/cp [악성코드] /dev/shm/kdmtmpflush && \
/bin/chmod 755 /dev/shm/kdmtmpflush && \
/dev/shm/kdmtmpflush –init kdmtmpflush /bin/rm -f /dev/shm/kdmtmpflush
와 같은 명령을 이용해 /dev/shm
경로에 kdmtmpflush
라는 이름으로 자신을 복사하고 실행한 후 자가 삭제 했으나 이번에 확인된 악성코드들은 해당 기능이 제거됨
과거 BPFDoor는 랜덤으로 선택된 문자열을 사용하여 실행 프로세스의 이름을 정상 프로세스로 보이도록 위장하였음
[2025.04]변종의 경우 아래 표와 같은 이름으로 위장함
과거 BPFDoor (2017 ~ 2021) 악성코드 내부 실행 명령(공개된 소스코드) | 2025 변종 BPFDoor (IoC) 실제 위장된 프로세스 이름 |
---|---|
"/sbin/ udevd -d " | "/usr/sbin/smartd -n -q never " |
"/sbin/ mingetty /dev/tty7 " | "dbus-daemon --system " |
"/usr/sbin/ console-kit-daemon --no-daemon " | "hpasmlited -f /dev/hpilo " |
"hald-addon-acpi : listening on acpi kernel interface /proc/acpi/event " | "/usr/libexec/hald-addon-volume " |
"dbus-daemon --system " | |
"hald-runner " | |
"pickup -l -t fifo -u " | |
"avahi-daemon : chroot helper " | |
"/sbin/ auditd -n " | |
"/usr/lib/systemd/ systemd-journald " |
과거 BPFDoor의 공개된 소스 코드에서는"/var/run/haldrund.pid
경로에 PID 파일을 생성
IoC에서 공개된 악성코드들은 각각 다음과 같은 PID 파일 경로을 가짐
/var/run/hald-smartd.pid
/var/run/system.pid
/var/run/hp-health.pid
/var/run/hald-addon.pid
[KISA 보호나라&KrCERT/CC] BPFDoor 악성코드 점검 가이드
[AhnLab] BPFDoor 악성코드 분석 및 안랩 대응 현황
[AhnLab] BPFDoor 악성코드, 해킹 위협 대응을 위한 2차 보안 가이드