BPFDoor 악성코드 분석 및 안랩 대응 현황
2025년 4월, 국내에서 발생한 초대형 해킹 사고는 사이버 위협이 한층 정교해지고 은밀해졌음을 보여주고 있다. 특히, 공격에 사용된 것으로 파악된 BPFDoor 계열 리눅스 악성코드 변종은 보안 장비를 우회해 직접 명령을 수행하는 특성을 갖고 있어, 기업 보안 환경 전반에 대한 경계가 필요하다.
본 보고서는 이러한 위협을 조기에 탐지하고 대응한 AhnLab의 분석 결과와 방어 전략을 공유함으로써, 기업 보안 실무자에게 실질적인 대응 인사이트를 제공하고자 한다.

1. 개요
2025년 4월 발생한 해킹 사고와 관련하여, 공격에 사용된 악성코드 정보가 한국인터넷진흥원(KISA)의 보안 공지를 통해 4월 25일 공식 발표되었다.
해당 공지에는 리눅스 기반 시스템을 겨냥한 BPFDoor 계열 악성코드 4종의 해시값과 위협 지표(IoC)가 포함되어 있으며, 이들 악성코드는 고도화된 침투 및 명령 실행 기능을 갖춘 것으로 분석된다.
안랩은 해당 악성코드에 대해 이미 사전 탐지 및 대응 체계를 확보하고 있었으며, AhnLab EDR을 통해서 탐지가 가능하다.
본 보고서는 KISA가 공개한 위협 지표를 중심으로 BPFDoor 악성코드의 기술적 특징, 기존 사례와의 차이점, 그리고 안랩의 대응 전략을 종합적으로 정리한다.
2. 공개된 위협 정보 (KISA 보안 공지 기준)
KISA는 “최근 해킹공격에 악용된 악성코드, IP 등 위협정보 공유 및 주의 안내”라는 제목의 보안 공지(2025.04.25)를 통해 다음과 같은 IoC를 공개했다.
|
공격 IP |
악성코드 해시 (MD5) |
이름 |
|
165.232.174[.]130 |
N/A |
N/A |
|
N/A |
a47d96ffe446a431a46a3ea3d1ab4d6e |
hpasmmld |
|
N/A |
227fa46cf2a4517aa1870a011c79eb54 |
smartadm |
|
N/A |
f4ae0f1204e25a17b2adbbab838097bd |
hald-addon-volume |
|
N/A |
714165b06a462c9ed3d145bc56054566 |
dbus-srv-bin.txt |
[표 1] KISA에서 공개한 공격자 IP 및 악성 해시
3. 악성코드 분석
3.1. BPF(Berkeley Packet Filter)란?
BPF(Berkeley Packet Filter)는 네트워크 패킷 필터링을 위해 개발된 메커니즘이다. 커널 영역에 설치되어 외부로부터 전달받은 패킷을 사용자 영역으로 넘길 것인지 결정할 수 있다.
BPF는 1992년경에 개발되었으며 2014년에는 eBPF(extended BPF)가 리눅스 커널에 도입되었다. eBPF는 기존의 BPF보다 성능과 유연성이 향상되어 네트워크 패킷 필터링뿐만 아니라 성능, 보안성 및 안정성이 강화되었다. 참고로 과거 버전의 BPF는 이와 구분하기 위해 cBPF(classic BPF)라고도 불린다.
여기서 BPFDoor는 cBPF의 패킷 필터링 기능을 악용한 공격이다. 그렇다면 BPFDoor란 무엇이며 어떤 방식으로 공격을 하는지 알아보자.
3.2. BPFDoor란?
BPFDoor는 앞서 설명한 BPF, 그 중 과거 버전의 cBPF 기술을 악용하는 리눅스 백도어 악성코드다. BPFDoor는 패킷 필터링 규칙을 추가하여 매직 패킷이라 불리는 공격을 위해 조작된 특정 패킷이 수신되었는지 검사한 후에 상응하는 행위를 수행한다.
BPFDoor는 서버 방화벽과 보안 시스템을 우회하며, 외부 공격자가 직접 시스템에 명령을 전달할 수 있는 리버스 쉘, 바인드 쉘 등의 기능을 제공한다. 2021년 PwC 보고서를 통해 처음 공개되었으며, 중국 기반 APT 그룹인 Red Menshen(Earth Bluecrow)이 사용하는 것으로 알려져 있다.
3.3. 기존과의 주요 차이점
ASEC(AhnLab SEcurity intelligence Center)은 과거 "AhnLab EDR을 활용한 BPFDoor 리눅스 악성코드 탐지" 블로그를 통해 BPFDoor 악성코드에 대한 정보를 공개한 바 있다. 해당 사례에서는 공개된 소스 코드를 기반으로 악성코드의 기능 및 동작을 설명하였다. 이번에 확인된 BPFDoor는 기본적인 기능은 공개된 소스 코드와 유사하지만 차이점도 존재한다.
|
분석 항목 |
기존 BPFDoor |
공개된 변종 (2025.04) |
|
자가 복제 경로 |
/dev/shm/kdmtmpflush로 복사 및 실행 |
복제 및 자가 삭제 기능 제거됨 |
|
실행 위장 이름 |
udevd, mingetty 등 |
smartd, dbus-daemon, hald-addon 등 |
|
PID 저장 경로 |
/var/run/haldrund.pid |
/var/run/hald-smartd.pid /var/run/system.pid /var/run/hp-health.pid /var/run/hald-addon.pid |
|
명령 인증 방식 |
단순 문자열 기반 ("justforfun") |
MD5("I5*AYbs@LdaWbsO" + "패킷 일부") 계산 방식 |
[표 2] 기존 BFFDoor vs. 공개된 변종의 차이점
과거 기준 BPFDoor는 실행 시 다음과 같은 명령을 이용해 “/dev/shm” 경로에 “kdmtmpflush” 라는 이름으로 자신을 복사하고 실행한 후 자가 삭제하였다. 하지만 이번에 확인된 악성코드들은 해당 기능이 제거된 것이 특징이다.
/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
다음으로 실행 프로세스의 이름을 변경하는 기능이다. 과거 사례에서는 다수의 문자열들 중에서 랜덤으로 선택하여 실행 프로세스의 이름을 정상 프로세스로 보이도록 위장하였다. 공개된 IoC에서는 악성코드들이 각각 다음과 같은 프로세스 이름을 위장한 것이 특징이다.
|
프로세스 이름 (공개된 소스 코드) |
프로세스 이름 (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 파일이다. 공개된 소스 코드에서는 "/var/run/haldrund.pid" 경로에 PID 파일을 생성하는데 이는 BPFDoor가 정상적으로 실행 중인지를 판단하는데 사용될 수 있다. IoC에서 공개된 악성코드들은 각각 다음과 같은 PID 파일 경로를 갖는다.
|
PID 파일 경로 |
|
/var/run/hald-smartd.pid |
|
/var/run/system.pid |
|
/var/run/hp-health.pid |
|
/var/run/hald-addon.pid |
[표 4] PID 파일 경로 (IoC)
이러한 부가적인 행위를 제외하고 가장 대표적인 차이점이라고 한다면 비밀번호 부분이다. BPFDoor는 리버스 쉘과 바인드 쉘 등의 명령을 지원하는데 해당 명령들은 각각 매직 패킷에 포함되는 비밀번호인 "justforfun"과 "socket" 문자열을 통해 구분되었다. 하지만 공개된 IoC에서는 MD5를 기반으로 명령을 구분하는 것이 특징이다. BPFDoor는 매직 패킷을 통해 전달받은 문자열과 "I5*AYbs@LdaWbsO" 문자열을 더한 후 MD5를 계산하고 이를 통해 명령을 구분하였다. 이러한 점을 제외하면 바인드 쉘과 리버스 쉘과 같이 지원하는 명령 등 대부분의 실질적인 기능은 유사하다.
4. AhnLab 대응 현황
안랩은 BPFDoor 유형의 악성코드들을 이미 수개월 전부터 모니터링 하고 있었으며, 이에 대응하는 탐지 시그니처를 V3 Net for Linux Server 및 AhnLab EDR 제품군에 적용해 왔다. 따라서 다음과 같은 탐지 및 분석 내역을 기반으로 차단이 가능하다.
4.1. 탐지 대응 내역
• 진단 제품: AhnLab V3 Net for Linux Server, AhnLab EDR
• 진단명 및 엔진 버전: V3 대응 현황 및 EDR 대응 현황
예를 들어, PID 파일 생성 감시는 공개된 IoC의 BPFDoor는 악성코드에 따라 각각 "/var/run/hald-smartd.pid", "/var/run/system.pid", "/var/run/hp-health.pid", "/var/run/hald-addon.pid" 경로에 PID 파일을 생성한다. 해당 경로에 파일이 존재할 경우 BPFDoor 감염을 의심할 수 있다.
또한, Iptables 명령 이력 탐지의 경우, BPFDoor는 바인드 쉘 명령 시 다음과 같은 Iptables 명령들을 실행해 특정 포트로 트래픽을 리다이렉션한다. 이렇게 생성된 규칙은 다시 제거되지만 이러한 명령이 확인될 경우 BPFDoor 감염을 의심할 수 있다.
|
# /sbin/iptables -I INPUT -p tcp -s [공격자 IP] -j ACCEPT |
4.2. 내부 분석자료 및 공개 블로그
안랩 ASEC은 과거 블로그에서 BPFDoor 분석 정보를 이미 공개한 바 있으며, 이번 변종 역시 분석 패턴과 유사성을 근거로 즉시 식별 및 대응할 수 있었다. 특히 공개된 소스 기반 코드와의 차이점 식별 능력을 바탕으로 신·변종 대응에도 지속적인 모니터링 체계를 유지 중이다.
5. 권고 사항
1) /var/run 경로에 비정상적인 PID 파일 존재 여부 확인
2) iptables 명령 이력 점검 및 리다이렉션 포트 탐지
3) 시스템 내 위장 프로세스 이름 탐색 (예: smartadm, hpasmlited)
4) V3 및 EDR 진단 로그 점검을 통한 사전 탐지
6. 결론
최근 발생한 해킹 사고에서 사용된 것으로 추정되는 BPFDoor 변종 악성코드에 대해 안랩은 기술적 분석을 바탕으로 선제적인 대응을 완료했다. 향후에도 공개된 소스 기반 악성코드의 변형 가능성이 높은 만큼, 지속적인 행위 기반 탐지와 보안 로그 모니터링이 필수적이다.
# 관련 정보
l 안랩 ASEC 블로그: AhnLab EDR을 활용한 BPFDoor 리눅스 악성코드 탐지
l 안랩 ASK 공지사항: BPFDoor 리눅스 악성코드 백신 대응 안내
l KISA 보호나라 보안공지: 최근 해킹공격에 악용된 악성코드, IP 등 위협정보 공유 및 주의 안내
- AhnLab콘텐츠마케팅팀