[ProJ] 프로젝트 · 작성: 2026-07-19 19:10:37 · 조회 6
Linux 서버에 BPFDoor 악성코드 감염 흔적이 남아있는지 점검하는 Bash 스크립트를 만들었다. KISA(한국인터넷진흥원)의 BPFDoor 관련 침해사고 대응 가이드를 기준으로, 단일 스크립트(bpfdoorcheck.sh) 실행만으로 9개 항목(BPF-01~BPF-09)을 순서대로 점검하고 리포트 파일을 생성한다.
이 도구는 점검 전용이다. 악성코드를 제거하지 않으며, "강한 의심" 판정이 나오면 망 분리 후 공식 침해사고 대응 절차(보호나라 등)를 따라야 한다.
| 코드 | 항목 |
|---|---|
| PRECHECK | 실행 환경(OS/권한/필수 명령어) 확인 |
| BPF-01 | 뮤텍스/락 파일 점검 |
| BPF-02 | 자동 실행 구문 점검 |
| BPF-03 | BPF 필터에서 매직 시퀀스 탐지 |
| BPF-04 | RAW 소켓 사용 프로세스 점검 |
| BPF-05 | 백도어 쉘 특징적인 환경변수 조합 점검 |
| BPF-06 | BPFDoor 관련 포트 대역 리스닝 여부 |
| BPF-07 | 정상 프로세스로 위장한 흔적 점검 |
| BPF-08 | 문자열 패턴 점검 |
| BPF-09 | YARA 룰 기반 최종 검증 |
각 항목에서 발견한 의심 PID/파일은 공용 큐에 쌓아두고, 뒤쪽 항목(BPF-08, BPF-09)에서 재사용해 정밀 검사한다. 실행 파일이 이미 삭제된((deleted)) 상태라도 프로세스가 살아있으면 /proc/<pid>/exe로 원본 바이너리 내용을 읽어와 검사 대상에 포함시킨다.
BPFDoor는 udevd, abrtd, atd, Postfix의 pickup처럼 실제로 존재하는 정상 프로세스명으로 위장한다. 그래서 이름만 보고 판정하면 오탐이 많이 난다. 대응 방식은 "1차로는 넓게 탐지하되, 독립적인 근거가 있을 때만 등급을 낮추는" 쪽으로 잡았다.
rpm -V/dpkg -V로 패키지 무결성이 확인되면 등급을 낮춘다. 실행 경로가 /dev/shm처럼 이상하면 그대로 강한 의심 유지./tmp·/dev/shm·숨김 파일·삭제된 경로를 가리키면 강한 의심으로 올린다.즉 탐지 범위 자체는 줄이지 않고, 반복되는 오탐 알림만 줄이는 방향으로 설계했다.
chmod +x bpfdoorcheck.sh
./bpfdoorcheck.sh
실행하면 <IP>_<hostname>.txt(전체 리포트)와 <IP>_<hostname>.tar(제출용 압축)가 생성된다. 리포트에는 항목별 판정(양호/정보/중간 의심/강한 의심/위험(탐지)/수동 진단), 근거, 의심 PID/파일 요약, 후속 조치 가이드가 담긴다.
코드: github.com/Martina7Park/BPFDoor-malware-scanner-KISA-guide-aligned-