Привет, Хабр!
Я, Алексей, исследователь‑аналитик киберугроз в компании R‑Vision. Сегодня мы с вами поговорим об уязвимости DirtyPipe CVE-2022-0847 и рассмотрим возможные способы обнаружения эксплуатации данной уязвимости.
Критичные уязвимости Linux ядра выходят не так часто, но при этом несут особую опасность, так как затрагивают сразу множество дистрибутивов, работающие на уязвимой версии ядра. Зачастую данные уязвимости могут быть проэксплуатированы даже из "ограниченных" сред контейнеров, если на хостах не настроены дополнительные политики безопасности (hardening). Для их устранения обычно требуется обновить само ядро, что может быть нести порой большие риски для промышленных систем. Одна из таких - DirtyPipe.
Данная уязвимость публично была раскрыта в марте 2022 и затронула версии Linux ядра начиная с версии 5.8, и была исправлена в версиях 5.16.11, 5.15.25, and 5.10.102. Данные версии ядра популярны во многих известных дистрибутивах, включая тот же Android. И хоть с момента выхода патчей прошло достаточно времени, далеко не во всех компаниях они установлены.
В статье мы рассмотрим основные способы анализа и возможные способы детектирования с использованием auditd и модулей eBPF, которые в целом можно будет также применять и к другим уязвимостям.
Уязвимость позволяет непривилегированному (non-root) пользователю вносить изменения в файл, который доступен только для чтения, то есть файл имеет права read для текущего пользователя. По сути это позволяет получить root'a разными способами. При построении возможно детектирования мы не будем заострять внимание на пост эксплуатационных шагах, а рассмотрим, как можно мониторить обращения к ядру, чтобы распознать попытки эксплуатации.