← 목록으로

eBPF 기반 지속성(Persistence) 기법

[Pwn] Pwnable · 작성: 2026-07-20 03:10:34 · 수정: 2026-07-20 03:11:15 · 조회 8

eBPF(extended Berkeley Packet Filter)는 커널을 재컴파일하지 않고도 커널 내부에서 샌드박스된 프로그램을 실행할 수 있게 해주는 리눅스 기능이다. 원래는 네트워킹/트레이싱/모니터링 목적(Wazuh 같은 도구도 이걸 활용한다)이지만, 공격자 입장에서는 커널 레벨에서 프로세스·파일·네트워크를 몰래 조작할 수 있는 강력한 지속성 수단이 된다. BPFDoor 같은 실제 악성코드가 이 방식을 쓴다.

왜 강력한가

어떻게 지속성을 얻는가

최소 예시 (정상적인 관찰·트레이싱 용도)

# execve 호출을 커널 레벨에서 실시간 관찰
bpftrace -e 'tracepoint:syscalls:sys_enter_execve { printf("%s %s\n", comm, str(args->filename)); }'

실제 공격에 쓰이는 eBPF 프로그램은 이 관찰 능력을 반대로 이용해서, 특정 조건에서 자기 자신의 흔적(프로세스, 소켓, 파일)을 결과에서 제외시키는 방식으로 은폐한다.

탐지와 방어

Pwnable 카테고리의 글 (12/14)

  1. 메모리 구조 기초: 스택, 힙, 레지스터부터 이해하기
  2. 스택 버퍼 오버플로우: 가장 기본적인 메모리 손상 공격
  3. Format String 취약점: printf가 위험해지는 순간
  4. Stack Canary: 원리와 우회 방법
  5. NX/DEP 우회와 Return-to-libc
  6. ASLR과 정보 유출(Leak)
  7. ROP (Return-Oriented Programming) 완전 정복
  8. 힙 익스플로잇 기초: Use-After-Free와 Double Free
  9. pwntools 실전 활용법
  10. UDF(User-Defined Function) 기반 DB 권한 상승: 원리부터 실전까지
  11. Pass-the-Hash / Pass-the-Ticket: 원리와 실전
  12. eBPF 기반 지속성(Persistence) 기법
  13. Full RELRO 환경에서의 GOT Overwrite와 우회
  14. ret2dlresolve: 심볼 정보 없이 임의 함수 호출하기
← Pass-the-Hash / Pass-the-Ticket: 원리와 실전 Full RELRO 환경에서의 GOT Overwrite와 우회 →