BPFDoor: 서술형 대비 작성 가이드
아래 템플릿은 “개념-위협-동작원리-침투/확산-탐지/헌팅-대응/완화-사고대응-거버넌스/운영” 순으로 구조화되어 있습니다. 각 절은 키워드 중심으로 간결히 쓰되, 기술적 근거와 실무 액션 아이템을 함께 제시하면 점수를 확보하기 좋습니다.
1) 정의와 위협 개요
- 정의: BPFDoor는 리눅스에서 BPF(Berkeley Packet Filter)를 악용하여, “열린 포트 없이” 특정 매직 패킷을 트리거로 C2를 여는 스텔스형 백도어다.
- 위협성: 커널 레벨 패킷 선별로 방화벽/포트스캔을 회피하고, TCP/UDP/ICMP 등 다양한 경로로 명령 실행·파일 유출·터널링이 가능해 장기 잠복과 내부 확산 위험이 높다.
2) 동작 원리(핵심 메커니즘)
- BPF 악용: root 권한 등으로 BPF 소켓/프로그램을 설치해 네트워크 인터페이스를 지나는 패킷을 선별 감시한다. 방화벽보다 먼저 패킷을 받아 트리거를 식별한다.
- 트리거: 하드코딩된 매직 시퀀스/비밀번호/포트 등 조건이 만족될 때만 활성화되어 C2 채널을 연다(리버스 셸, 리디렉션 등).
- 은폐/지속성: 정상 프로세스명 위장, 로그 최소화, 임시경로 활용 등의 기법으로 탐지를 회피한다.
포인트 문장 예시: “BPFDoor는 커널 레벨 패킷 선별로 트리거를 감지하고, 평시 리슨 포트 없이 대기하다 매직 패킷에만 반응해 원격 제어를 수행한다”.
3) 침투 벡터와 확산 시나리오
- 초기 침투: 외부 노출 서비스 취약점/RCE, 약한 자격증명, 공급망/관리 계정 탈취 등 일반 경로로 유입 후 설치.
- 내부 확산: 포트 리디렉션·터널링을 통해 East-West로 확장하며 정보 수집과 추가 페이로드 배포를 수행한다.
4) 탐지/헌팅 관점의 지표와 절차
호스트 기반
- BPF 흔적: bpftool prog/map 목록, /proc/net/bpf, /sys/fs/bpf, 프로세스의 SO_ATTACH_FILTER/bpf() 호출 모니터링(EDR/auditd).
- 프로세스·파일: 리스닝 포트 없이 네트워크 이벤트에 반응하는 위장 프로세스, /tmp·/dev/shm 실행 파일, “삭제된(inode deleted) exe 핸들” 확인.
- 지속성: systemd unit/timer, crontab, rc.local, 셸 프로파일 변조 탐지.
네트워크 기반
- 매직 패킷 후보 탐지: 변종별 시퀀스/비밀번호/포트 룰 업데이트, ICMP/UDP의 비정상 페이로드 패턴 탐지.
- 트래픽 패턴: 포트 개방 없이 외부 반응, 희소 목적지로 간헐적 소량 트래픽, 정상 포트의 비정상 프로토콜 사용.
운영·관제
- IOC 적용: 해시, C2 IP/도메인, 매직 바이트/패스워드 기반 룰을 EDR/NIDS/SIEM에 반영.
- 정기 스냅샷: bpftool 출력 및 /proc 스캔 결과의 주기적 비교로 드리프트 감지.
5) 대응/완화 전략(정책·기술·운영)
정책/권한
- 최소권한: CAP_BPF, CAP_SYS_ADMIN, CAP_NET_ADMIN 등 능력 최소화, unprivileged_bpf_disabled=1 검토(업무 영향 평가 필수).
- 접근통제: SELinux/AppArmor로 BPF 로드·bpftool 사용 제한.
네트워크
- 제로트러스트: ingress/egress allowlist, 동서 트래픽 가시성(NDR)과 TLS 핑거프린트(JA3/SNI) 기반 이상 탐지 적용.
- 채널 제한: ICMP 데이터 채널 차단·검사, 비표준 통신 탐지 룰 강화.
탐지 강화
- EDR 룰: SO_ATTACH_FILTER/bpf() 호출, bpftool 실행, 파일 드롭 후 즉시 삭제, 메모리 상 실행 지표 모니터링.
- 시그니처 관리: 변종별 매직 시퀀스/비밀번호/해시 지속 업데이트(위협 인텔 연동).
6) 사고 대응 Runbook(현장 절차)
1) 즉시 격리: 네트워크 분리 및 스위치단 ACL 차단.[5]
2) 증거 보존: 메모리 덤프, 디스크 이미징, bpftool로 로드된 BPF 프로그램/맵 덤프.
3) 분석: 타임라인, 프로세스 트리, 네트워크 세션, 지속성 항목, 자격증명 남용 여부.
4) 차단/소거: C2 차단, IOC 전사 스윕, 변조 정책 원복, 계정·키 전면 교체.
5) 복구: 핵심 시스템은 청정 이미지로 재빌드, 패치/하드닝 적용 후 재가동.
시험 팁: “격리→보존→분석→소거→복구” 순서를 명시하고, 각 단계의 핵심 산출물(메모리 덤프, BPF 목록, IOC 차단 목록, 재빌드 체크리스트)을 써주면 가점 요소가 됩니다.
7) 거버넌스/운영 측면(평가 포인트)
- 구성관리: BPF 관련 권한·정책의 베이스라인 정의 및 변경관리 연계.
- 보안 아키텍처: East-West 가시성 체계(NDR+EDR+SIEM), 네트워크 세분화, 중요 자산의 ICMP 정책 설계.[5]
- 위협 인텔: KISA·보안사 IOC 수신 및 룰 자동 동기화 파이프라인 구축.
- 교육/모의훈련: 운영·개발·관제 대상 BPF 악용 위협 교육과 침해훈련 수행.
8) 답안 예시(요약 문단 샘플)
“BPFDoor는 리눅스에서 BPF를 악용해 커널 레벨에서 매직 패킷을 감지, 평시 리스닝 포트 없이 잠복하다 트리거 수신 시 C2를 여는 스텔스 백도어다. 탐지 회피와 장기 잠복이 특징이며 TCP/UDP/ICMP 등으로 명령 실행·터널링·정보유출을 수행한다. 대응으로는 CAP_BPF 등 최소권한과 unprivileged_bpf_disabled=1, SELinux/AppArmor로 BPF 로드 통제, 제로트러스트 세분화와 NDR로 동서 트래픽 가시성 확보, ICMP 데이터 채널 제한을 권고한다. 헌팅은 bpftool을 통한 BPF 객체 점검, SO_ATTACH_FILTER/bpf() 호출 모니터링, 임시경로 실행 파일·삭제된 exe 핸들, 포트 개방 없는 외부 반응·비정상 ICMP/UDP 패턴 탐지를 병행한다. 사고 시에는 즉시 격리-증거보존-타임라인/지속성 분석-C2 차단·IOC 스윕-청정 재빌드 순으로 수행한다”.
9) 체크리스트(키워드 스니펫)
- 개념: “포트리스닝 없음·커널 BPF·매직 패킷 트리거·C2”[2][1]
- 탐지: “bpftool 목록·SO_ATTACH_FILTER 이벤트·임시폴더 실행·삭제된 exe 핸들·비정상 ICMP/UDP”
- 완화: “CAP_BPF 최소화·unprivileged_bpf_disabled=1·SELinux/AppArmor·제로트러스트·NDR”
- 대응: “격리→보존→분석→소거→재빌드”