eBPF Guard
Building a Mini EDR with eBPF
주니어 eBPF 보안 엔지니어 포트폴리오를 목표로, Linux endpoint에서 발생하는 행위를 관찰하고 의심 이벤트를 JSON Lines 로그로 남기는 미니 EDR을 만들었다.
이 프로젝트는 거대한 EDR을 흉내 내기보다, execve, openat, connect syscall을 중심으로 이벤트 수집, 유저랜드 룰 처리, 로그 출력까지 이어지는 작은 보안 파이프라인을 끝까지 구현하는 데 집중했다.
글 목록
-
Building a Mini EDR with eBPF 1: MVP Design
execve,openat,connect를 tracepoint로 수집하고, BPF ring buffer를 통해 유저랜드 룰 엔진과 JSONL writer로 넘기는 MVP 구조를 정리했다. 커널은 이벤트 수집에 집중하고, 판단과 출력은 유저랜드에서 처리하는 방향으로 설계했다. -
Building a Mini EDR with eBPF 2: Improving File Access Detection
1편의
openat탐지가 syscall 진입 시점만 봐서 실제 성공 여부를 알 수 없다는 한계를 개선했다.sys_enter_openat과sys_exit_openat을 연결해/etc/shadow접근 시도와 성공을 구분하고,SHADOW_OPEN_ATTEMPT,SHADOW_OPEN_SUCCESS룰로 나눴다. -
Building a Mini EDR with eBPF 3: Reducing False Positives in SUSPICIOUS_CONNECT
connect이벤트를 더 조심스럽게 해석하기 위해 유저랜드에서 command line을 보강하고, 목적지 IP 분류와 allowlist, suppression 처리를 추가했다. 단순히 public IP 연결을 잡는 것보다, 조사할 가치가 있는 로그를 남기는 방향으로 탐지 품질을 개선했다.