[정보 보안] BPFDoor : 최근 떠오르는 보안 이슈, 고도화된 백도어

Cookie·2025년 7월 14일
0

정보보안

목록 보기
35/40
post-thumbnail

25년 가장 핫한 보안 이슈 🔥

2025년 4월 19일 경 대한민국에서 가장 큰 이동통신 서비스 업체인 SK텔레콤에서 가입자 인증 서버인 HSS (Home Subscriber Server)가 해킹당하는 침해 사고가 발생하였으며 이번 사고로 인하여 USIM 고유 식별 번호 등 USIM 복제에 악용될 수 있는 약 9.8 GB (약 2,695만 명분) 가입자 핵심 정보가 유출된 정황이 드러났음.

보안 뉴스: [SKT 해킹 사태] SKT 해킹에 쓰인 ‘BPF도어’ 악성코드는 무엇?


해당 사고는 단순한 정보 유출에 그치지 않고

  • 유심 재고 부족 ,
  • 가입자 불안 확대 ,
  • 주가 급락 ,
  • 정부의 긴급 조사 및 민관합동 대응 ,
  • 집단 소송 제기

등의 사회적 파장으로 번짐



사고의 원인 : BPFDoor 악성코드 ❗

이번 침해사고는 BPFDoor 계열의 악성코드로 인해 발생한 것으로 확인되었음.
조사에 따르면 총 25종의 악성코드 (BPFDoor 계열 24종 + 웹쉘 1종) 가 확인되었으며, 최소 23대의 서버를 감염시킨 것으로 밝혀짐_


이 악성코드는 BPF 필터링을 악용하여 네트워크 패킷을 은밀히 수신하며, 로그를 남기지 않는 고도화된 백도어 기능을 갖추고 있음



이번 글의 목적 ✍️

따라서 이번 글에서는 최근 가낭 주목받은 보안 이슈인 BPFDoor 기반 침해 사고를 중심으로 관련 기술인 BPF | eBPF | BPFDoor의 개념과 원리를 정리하고, 실제 사고와 관련된 대응 방법 및 점검 가이드를 다뤄보고자 함






BPFDoor 핵심 개념 정리 ℹ️


1️⃣ BPF (Berkeley Packet Filter)

1992년, 네트워크 패킷 분석 효율을 높이기 위해 리눅스/유닉스 커널에 도입된 저수준 필터링 메커니즘

필터 대상 : TCP, UDP, ICMP 프로토콜

📕 개념

  • 커널에서 네트워크 인터페이스로 유입되는 패킷을 감시하고, 사용자가 정의한 조건에 따른 필요한 패킷만 필터링하여 사용자 공간으로 전달하는 기능 제공
    커널 수준에서 필터 로직을 수행함으로써 성능 손실 없이 대용향 패킷을 처리할 수 있음

⚙️ 작동 방식

  • 사용자가 작성한 필터규칙(BPF프로그램)을 커널에 로드
  • 커널은 각 패킷마다 필터 조건을 평가
  • 조건을 만족하는 경우, 패킷을 사용자 애플리케이션으로 전달

📨 활용 예시

  • tcpdump, wireshark 등의 패킷 분석 툴
  • iptables, firewalld의 내부 작동에도 사용



2️⃣ eBPF(Extended BPF)

2014년, 리눅스 커널 3.15 버전에 도입된 BPF의 확장판, BPF를 단순 필터링을 넘어 커널 내에서 복잡한 로직을 실행할 수 있도록 만든 기술

📕 개념

  • 커널 내부에서 안전하게 실행 가능한 미니 프로그램을 작성해 실행할 수 있도록 하는 일종의 가상 머신 구조
  • C언어 기반으로 작성 → LLVM등을 통해 바이트코드로 컴파일 → 커널에 로드되어 특정 이벤트에 후킹되어 실행

↔️ 기능 확장

네트워크 패킷 분석을 넘어, 커널 전반의 다양한 동작에 관여

  • 네트워크 모니터링 / 필터링
  • 시스템 콜 감시
  • 파일 시스템 접근 추적
  • 보안 이벤트 후킹(XDP, Cilium 등)

📨 활용 예시

  • bcc, bpftrace 등 성능 분석/시스템 트레이싱 도구
  • Falco, Cilium, Tetragon 등 보안 감시/정책 적용 도구
  • XDP (eXpress Data Path) 고속 패킷 필터링 DDoS 방어



3️⃣ BPFDoor

BPF 필터를 악용해 포트를 열지 않고도 외부 명령을 수신하는 고은닉성 리눅스 기반 백도어 악성코드
2017년 부터 활동하다 2021년 PwC UK에 의해 공개되어 주목을 받기 시작했으며, 2025년 SKT 침해 사고에 직접 사용되며 재조명되고 있음

아래의 글에서 더욱 상세히 다뤄보겠음






BPFDoor의 구성과 주요 기능 🐛


주요 특징 🔍

BPFDoor는 리눅스 시스템에서 동작하는 고도화된 스텔스형 백도어로, BPF 메커니즘을 악용하여 포트를 열지 않고도 외부 명령을 수신할 수 있는 "비접속 형" 은닉 통신을 구현함.
이로 인해 일반적인 네트워크 보안 장비나 로그 분석 시스템으로는 탐지하기 매우 어려움


⚙️ 작동 방식

  1. 감염된 서버는 리스닝 포트를 열지 않고 대기
  2. 대신 커널의 BPF 소켓 기능을 통해 모든 네트워크 패킷을 감청
  3. 공격자가 특정 시그니처(트리거 패킷)를 포함한 패킷을 보내면, BPFDoor는 이를 감지하여 내부 명령 실행 루틴을 활성화 함
  4. 이때 통신 흔적은 로그에 기록되지 않으며, 방화벽에서도 탐지되지 않음

🚨 위험한 이유

✔️ 기존 보안 체계를 대부분 우회
   → 방화벽, IDS/IPS, 포트 스캐너 무력화

✔️ 다양한 명령 실행 가능
   → 쉘 접근, 파일 업로드/다운로드, 내부망 탐색 등

✔️ APT 공격자들이 장기 침투에 사용
   → 내부 거점 확보 및 지속정 정보 탈취

✔️ 합법적인 시스템 프로세스로 위장
   → udevd, dbus, cron등 정상 프로세스인 척 실행

✔️ 취약점 통해 몰래 설치 + 실행 후 흔적 제거
   → 웹쉘, RCE 등 다양한 방식으로 유입되고, 설치 직후 자가 삭제 또는 파일 은닉 처리

📌 즉, 일반적인 악성코드보다 발견·제거가 훨씬 어렵고, 침해 범위가 크다는 점에서 매우 위협적임


👤 탐지 회피 기법

항목설명
BPF 소켓 감청리스닝 포트 없이도 패킷 감지
Fileless 실행디스크에 남지 않고 메모리 기반 실행
방화벽 우회iptables / firewalld 탐지 우회
로그 회피syslog, audit log 등 로그 미기록 또는 비활성화
프로세스 위장정상 시스템 프로세스 이름으로 실행
자가 삭제 기능감염 직후 실행 파일을 지워 흔적 최소화
→ ※ 2025년 변종에는 자가 삭제 기능이 제거됨



과거 BPFDoor vs 2025년 변종 비교 🔁

이번에 확인된 BPFDoor는 기본적인 기능은 공개된 소스 코드와 유사하지만 차이점이 존재함

IoC: Indicator of Compromise (침해 지표, 공격의 흔적을 식별할 수 있는 단서)

  • 가장 큰 차이점으로는 비밀번호로, 과거 BPFDoor는 justforfunsocket 문자열을 통해 구분되었으나 이번에 공개된 IoC에는 MD5를 기반으로 명령을 구분함

  • bind shellreverse shell과 같이 지원하는 명령 등 대부분의 실질적인 기능은 유사


1️⃣ 자가 삭제 기능

과거 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라는 이름으로 자신을 복사하고 실행한 후 자가 삭제 했으나 이번에 확인된 악성코드들은 해당 기능이 제거됨


2️⃣ 프로세스 이름 위장

과거 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"

3️⃣ PID 파일

과거 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차 보안 가이드

profile
나만의 공부 일지... [임시 休]

0개의 댓글