국내외 보안동향

BPF 필터를 악용하는 BPFDoor 리눅스 악성코드 주의!

알약4 2025. 4. 29. 15:49

 

 

BPFDoor은 리눅스 시스템을  공격 타깃으로 하는 백도어(Backdoor) 악성코드로, 2021 PWC사의 보고서를 통해 최초 발견되었습니다. 

  

BPFDoor은 중동 및 아시아 전역의 통신업체, 정부, 교육 등의 분야를 공격 타깃으로 삼고 있으며, 공격 타깃에는 대한민국도 포함되어 있습니다.

최근 한국 인터넷진흥원(KISA)에서는 "최근 해킹공격에 악용된 악성코드·IP 등 위협 정보 공유 및 주의 안내'" 공지를 공개하기도 했습니다. 

 

[그림 1] KISA 보안공지 화면

 

BPFDoor은 root권한으로 BPF 소켓을 생성하여 특정 조건에 맞는 패킷을 감지할 준비를 하며, 조건을 만족하는 패킷(매직 넘버)이 감지되면 패킷을 열어 다음과 같은 공격자의 명령을 실행합니다.  

  • Reverse Shell 실행
  • 새로운 접속을 특정 포트의 셸로 연결 
  • 백도어가 활성 되었는지 확인

이때 공격자가 전송하는 패킷이 방화벽에 탐지가 되지 않는데, BPF는 운영체제의 커널 레벨에서 동작하는 패킷 필터링 메커니즘으로, 방화벽보다 먼저 패킷을 수신하기 때문입니다. 그렇기 때문에 사용자가 미리 정의해 둔 방화벽 네트워크 정책이 적용되지 않을 뿐만 아니라, 방화벽에 의해 차단이 되어도 공격자가 원하는 명령어를 성공적으로 실행할 수 있습니다.

 

BPF

유저 모드 프로그램이 커널 레벨에서 네트워크 패킷을 빠르게 캡처하고 필터링할 수 있게 하는 기술

 

BPFDoor악성코드는 이 필터링 기능을 악용해 네트워크 패킷을 모니터링 하고 특정 패턴의 패킷이 들어오면 동작되는 방식입니다.

 

BPFDoor2021년 처음 발견된 이후 지금까지 지속적으로 고도화 되고 있으며 다양한 기능과 명령어가 추가되고 있습니다. 이는 BPFDoor를 활용한 공격이 지속되고 성공률이 높아지고 있다는 반증으로도 볼 수 있어 기업 보안 담당자 여러분들의 각별한 주의가 필요합니다.

 

 

[대응 방안]

 

1) 파일 및 프로세스 모니터링

  • /dev/shm/kdmtmpflush,  /dev/shm/kdumpflush,  /dev/shm/kerneldump,  /var/run/haldrund.pid 등의 비정상 파일을 감시합니다.
  • find /proc -lname '* (deleted)' 2>/dev/null 명령어로 삭제된 실행 파일을 가진 프로세스를 식별합니다.  ls -alR /proc/*/exe 2> /dev/null | grep deleted  명령어로 삭제된 프로세스를 식별합니다.
  • /dev/shm 에서 실행 중인 프로세스나 환경 변수가 없는 프로세스를 확인하며, ps auxe 또는 /proc/PID/environ 을 통해 환경 변수 유무를 점검합니다.

 

2) 네트워크 활동 감시

  • BPFDoor iptables 규칙을 조작해 42391~43390 포트로 트래픽을 리디렉션하므로, 정기적으로 방화벽 설정을 점검하고 BPFDoor가 주로 사용하는 포트의 비정상 트래픽을 분석합니다.
  • BPFDoor는 매직 바이트 (: 0x5293, 0x7255)가 포함된 패킷을 수신하면 활성화되므로, 네트워크 IDS/ IPS에 시그니처 룰을 등록해 매직 패킷을 탐지하거나, 명령어를 통해 패킷 내 매직 바이트 검색합니다.
    (명령어 예시) ss -0pb | grep -EB1 --color "$((0x7255))|$((0x5293))|$((0x39393939))"

 

3) 시스템 및 운영 환경 강화

  • BPF 관련 권한(CAP_BPF, CAP_NET_ADMIN) SELinux 또는 AppArmor로 최소화하며, 불필요한 서비스와 포트는 ss 또는 netstat 으로 주기적으로 점검해 비활성화합니다.

 

알약에서 해당 악성코드에 대해 Backdoor.Linux.BPFDoor 로 탐지중에 있으며, 추가 변종  대한 모니터링과 신속한 대응을 진행하고 있습니다.

 

Ioc

MD5 진단명 엔진버전
a47d96ffe446a431a46a3ea3d1ab4d6e Backdoor.Linux.BPFDoor  2025042419
227fa46cf2a4517aa1870a011c79eb54 Backdoor.Linux.BPFDoor  2025042419
f4ae0f1204e25a17b2adbbab838097bd Backdoor.Linux.BPFDoor  2025042419
714165b06a462c9ed3d145bc56054566 Backdoor.Linux.BPFDoor  2025042419

 

 

참고:

https://www.trendmicro.com/en_us/research/25/d/bpfdoor-hidden-controller.html

https://www.trendmicro.com/en_us/research/23/g/detecting-bpfdoor-backdoor-variants-abusing-bpf-filters.html