
Kprobes를 사용하여 CVE-2024-1086 힙 이중 해제(double-free) 익스플로잇을 시간적 간격 추적(temporal gap tracking)과 활성 레지스터 무효화(register nullification)를 통해 탐지 및 무력화하며, RAM 오버헤드가 전혀 없는 리눅스 커널 모듈입니다.
저자: Vedant Karande & Kiran Kumari
과정: Network & Systems Security (SIL7165) - Indian Institute of Technology Delhi
KOOBE-Guard는 치명적인 힙 기반 취약점, 특히 CVE-2024-1086 이중 해제(double-free) 취약점[cite: 1]을 능동적으로 완화하기 위해 Linux 로더블 커널 모듈(LKM)로 개발된 동적 침입 방지 시스템(IPS)입니다.
현대 운영체제는 메모리 하위 시스템이 메모리를 완벽하게 할당하고 해제한다고 암묵적으로 신뢰합니다[cite: 1]. Linux 커널의 nf_tables와 같은 복잡한 하위 시스템에 논리 오류가 존재하면 메모리 관리 오류로 이어질 수 있으며, 이를 통해 비권한 공격자가 힙 펭슈이(Heap Feng Shui)와 중첩 할당(overlapping allocation)을 이용해 로컬 권한 상승(LPE)을 달성할 수 있습니다[cite: 1]. KOOBE-Guard는 무겁고 수동적인 섀도 메모리 방어에서 실시간 능동 시간 간격 추적(Active Temporal Gap Tracking)으로 전환함으로써 이를 무력화합니다[cite: 1].
KASAN과 같은 기존 완화 도구는 방대한 섀도 메모리 매핑에 의존하여 200%~300%의 CPU 오버헤드와 치명적인 RAM 비대화를 유발하므로, 프로덕션 환경에서는 사용할 수 없습니다[cite: 1].
KOOBE-Guard는 다음과 같은 방법론을 통해 익스플로잇을 차단합니다.
kfree 할당자 경로에 직접 후킹됩니다[cite: 1]. 모듈은 해제된 메모리 주소의 정확한 나노초 타임스탬프를 기록합니다[cite: 1].regs->di = 0)[cite: 1]. 이로 인해 안전한 kfree(NULL) 연산이 강제되며, SLUB 프리리스트(freelist) 손상이 완전히 방지됩니다[cite: 1].defense_module/: KOOBE-Guard LKM 소스 코드와 Makefile을 포함합니다.evaluation_scripts/: 정량적 QEMU 테스트에 사용되는 Bash 스크립트(benchmark.sh, hit_rate.sh)를 포함합니다.docs/: 포괄적인 프로젝트 보고서와 발표 슬라이드를 포함합니다.proofs/: 시스템 아키텍처 다이어그램, 실행 스크린샷, 벤치마크 그래프를 포함합니다.exploit_poc/: 취약점 상태를 트리거하는 데 사용되는 CVE-2024-1086 무기화 개념 증명(Proof-of-Concept)에 연결되는 서브모듈입니다.이 프레임워크는 커스텀 컴파일된 Linux 6.6.0 커널을 실행하는 완전히 격리된 하드웨어 가속 QEMU 가상 실험실에서 엄격하게 평가되었습니다[cite: 1].
exploit_poc 디렉터리에 서브모듈로 연결되어 있습니다. 원본 저장소는 여기에서 확인하세요: Notselwyn/CVE-2024-1086.이 프로젝트는 GPL-2.0 라이선스에 따라 사용이 허가됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.