
Модуль ядра Linux, использующий Kprobes для обнаружения и нейтрализации эксплойтов уязвимости CVE-2024-1086, эксплуатирующих двойное освобождение памяти в куче (double-free), с помощью отслеживания временных промежутков и активного обнуления регистров при нулевых накладных расходах на ОЗУ.
Авторы: Vedant Karande и Kiran Kumari
Курс: Network & Systems Security (SIL7165) — Индийский технологический институт Дели
KOOBE-Guard — это динамическая система предотвращения вторжений (IPS), реализованная в виде загружаемого модуля ядра Linux (LKM) для активного смягчения критических уязвимостей, связанных с кучей, в частности нацеленная на уязвимость двойного освобождения памяти CVE-2024-1086[cite: 1].
Современные операционные системы неявно полагают, что подсистемы памяти безупречно выделяют и освобождают память[cite: 1].
Когда сложные подсистемы, такие как nf_tables ядра Linux, содержат логические ошибки, это может привести к неправильному управлению памятью, позволяя непривилегированному злоумышленнику добиться локального повышения привилегий (LPE) с помощью Heap Feng Shui и перекрывающихся выделений[cite: 1].
KOOBE-Guard нейтрализует эту угрозу, переходя от тяжёлых пассивных защит на основе теневой памяти к активному отслеживанию временных разрывов в реальном времени[cite: 1].
Традиционные средства смягчения, такие как KASAN, полагаются на огромное отображение теневой памяти, внося 200–300% накладных расходов на процессор и катастрофическое раздувание оперативной памяти, что делает их непригодными для производственных сред[cite: 1].
KOOBE-Guard перехватывает эксплойт, используя следующую методологию:
kfree[cite: 1]. Модуль записывает точную временную метку в наносекундах для освобождённых адресов памяти[cite: 1].regs->di = 0), обнуляя их[cite: 1]. Это обеспечивает безопасную операцию kfree(NULL), полностью предотвращая повреждение списка свободных объектов SLUB[cite: 1].defense_module/: Содержит исходный код LKM KOOBE-Guard и файлы Makefile.evaluation_scripts/: Bash-скрипты (benchmark.sh, hit_rate.sh), используемые для количественного тестирования в QEMU.docs/: Подробные отчёты по проекту и слайды презентаций.proofs/: Диаграммы системной архитектуры, скриншоты выполнения и графики бенчмарков.exploit_poc/: Субмодуль со ссылкой на боевой Proof-of-Concept для CVE-2024-1086, используемый для приведения системы в уязвимое состояние.Платформа прошла строгую оценку в глубоко изолированной аппаратно-ускоренной виртуальной лаборатории QEMU под управлением специально собранного ядра Linux 6.6.0[cite: 1].
exploit_poc. Оригинальный репозиторий доступен здесь: Notselwyn/CVE-2024-1086.Этот проект распространяется под лицензией GPL-2.0. Подробности см. в файле LICENSE.