일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- tensorflow
- visualizing
- keras
- Method
- 애자일
- pandas
- algorithm
- AWS
- Crawling
- Scrum
- 프로젝트
- analyzing
- ECS
- webcrawling
- 자바스크립트
- adaptive life cycle
- data
- DANAWA
- data analyze
- Agile
- angular
- Project
- 다나와
- opencv
- matplotlib
- TypeScript
- python
- javascript
- instance
- 크롤링
- Today
- Total
LiJell's 성장기
BPFDoor란? SKT 해킹 사건에 사용된 리눅스 BPF 백도어 분석 본문
BPFDoor 분석: 은밀한 리눅스 백도어의 동작 원리와 탐지·대응 전략
최근 2024~2025년 대한민국에서 발생한 SK텔레콤 해킹 사건을 계기로, 보안 업계에서 다시 주목받고 있는 리눅스 백도어가 있다.
바로 BPFDoor다. 이 백도어는 수년 전부터 특정 APT 그룹에 의해 사용되어 왔으며, 일반적인 탐지 방식으로는 쉽게 발견되지 않는 고도화된 은폐 기술을 사용한다.
이 글에서는 BPFDoor의 전반적인 특성과 내부 동작, 실제 공격 사례, 탐지 방법, 그리고 대응 전략까지 한눈에 정리한다.
참고
BPFdoor Opensource Link
https://github.com/gwillgues/BPFDoor/blob/main/bpfdoor.c
BPFDoor란?
BPFDoor는 리눅스 시스템을 대상으로 작동하는 백도어 악성코드로, 중국계 APT 조직으로 알려진 Earth Bluecrow (Red Menshen)이 사용해온 도구다.
이 악성코드는 포트를 열지 않고도 외부 명령을 수신할 수 있도록 BPF(Berkeley Packet Filter)를 활용하며, 일반적인 네트워크 기반 보안 솔루션으로는 쉽게 탐지되지 않는다.
주요 특징
- 리스닝 포트 없음: 외부에 노출되는 포트 없이 통신
- 파일리스(Fileless) 실행: 디스크에 흔적을 남기지 않음
- BPF 기반 패킷 필터링: 커널 수준에서 특정 패킷만 수신
- RC4 암호화 통신
- iptables 규칙 조작으로 포트 리디렉션
- 시스템 데몬 이름으로 프로세스 위장
내부 동작 원리
1. 설치 및 은폐
- 루트 권한 획득 후
/dev/shm
경로에 자신을 복사하고 실행 - 원본 바이너리는 즉시 삭제
- 프로세스 이름은
systemd
,dbus-daemon
,hald-runner
등으로 위장 /var/run/haldrund.pid
파일을 생성하여 중복 실행 방지- 파일 타임스탬프를 2008년 등 과거로 설정 (timestomping)
2. 패킷 필터링 및 대기
- 커널에 BPF 필터를 등록해 특정 "매직 패킷"만 수신
PF_PACKET
소켓을 통해 raw 패킷을 캡처- 매직 패킷 식별자:
- TCP: 0x5293
- UDP/ICMP: 0x7255
3. 명령 처리 로직
- 매직 패킷 내에는 암호, 명령 코드, 포트 등이 포함됨
- 명령 유형:
0
: reverse shell (공격자 IP로 연결)1
: bind shell + iptables 리디렉션2
: 감염 여부 확인 (응답으로 "1" 전송)
4. RC4 암호화
- 모든 명령과 셸 세션은 RC4 알고리즘으로 암호화
- 키는 매직 패킷 내 암호값으로 초기화됨
5. iptables 조작
- 공격자 접속을 위해 임시로 PREROUTING 및 INPUT 체인에 규칙 추가
- 세션 종료 후 자동으로 규칙 제거
실제 침투 사례
SKT 해킹 사건 (2024~2025)
- SK텔레콤의 기간망 HSS 서버에 BPFDoor가 심겨 있었던 정황이 포렌식 조사에서 발견됨
- 공격자는 내부 백도어를 통해 장기간 은밀히 접근, 수백만 건의 USIM 관련 정보가 유출
- 리눅스 시스템의 방화벽 우회 및 장기적인 잠복을 위해 사용된 것으로 분석됨
기타 국가 사례
- 중동, 동남아, 아프리카, 한국 등에서 유사한 형태의 침투 사례가 확인됨
- 공격자는 동일한 BPFDoor 백도어를 다수 시스템에 배포 후 중앙에서 통제
탐지 기법
1. 호스트 기반 탐지
/dev/shm
경로에서 실행 중인 바이너리 확인/proc/<pid>/exe
링크가deleted
상태이거나 환경변수가 비어 있는 경우ss -af packet
또는lsof
를 이용한 패킷 소켓 탐지/proc/<pid>/stack
에서packet_recvmsg
등 커널 함수 확인- 메모리에서
justforfun
,socket
,haldrund.pid
등의 문자열 검색
2. 네트워크 기반 탐지
- 매직 패킷을 보냈을 때 "1" 응답 받는지 여부로 감염 테스트
- 비정상적인 1바이트 UDP 응답 트래픽
- 특정 IP에서만 접속 가능한 포트 리디렉션 패턴
- SNORT/Suricata로 커스텀 룰 작성 가능
3. 기타 아티팩트
/var/run/haldrund.pid
파일 존재 여부iptables -t nat -L -n
출력에 공격자 IP 기반의 리디렉션 규칙- audit 로그에서
/dev/shm
경로 실행,unlink
,execve
,prctl
호출 추적
대응 및 방어 전략
1. 사전 차단
- 커널 설정:
kernel.unprivileged_bpf_disabled=1
- SELinux/AppArmor로 raw socket,
bpf
호출 제한 - seccomp profile로
setsockopt
,socket
제한
2. 시스템 하드닝
- 불필요한 BPF 사용 차단
- auditd 활성화 및
/dev/shm
,iptables
조작 syscall 기록 /etc/rc.local
, systemd 등에서 자동 실행 설정 여부 점검
3. EDR/XDR 솔루션 활용
- AhnLab, Qualys 등의 EDR에서 관련 행위 탐지 룰 제공
- EDR에서
/dev/shm
경로 실행 및 iptables 삽입 시 경고 설정
마무리
BPFDoor는 단순한 백도어가 아니다. 커널 수준의 BPF 기능을 이용하여 흔적 없이 외부 명령을 수신하고, 감염된 시스템에 장기간 숨어서 공격자의 통제를 받는 정교한 침투 도구다.
특히 이번 SKT 해킹 사건을 계기로, 한국 내 보안 담당자들도 BPFDoor와 같은 파일리스, 포트리스, 암호화 기반 백도어에 대한 경각심을 높여야 할 시점이다.
탐지 우회 기법이 점점 고도화되는 지금, 공격자보다 먼저 움직이는 능동적인 위협 헌팅과 사전 대응 체계가 반드시 필요하다.