Обнаружена дыра в безопасности брандмауэра Linux netfilter
Почти за всеми инструментами брандмауэров Linux, такими как iptables, его более новая версия, nftables, firewalld и ufw, стоит netfilter, который управляет доступом к сетевому стеку Linux. Это важнейшая программа безопасности Linux, поэтому обнаруженная дыра в безопасности имеет большое значение.
Ник Грегори, исследователь угроз Sophos, недавно обнаружил эту дыру, проверяя netfilter на предмет возможных проблем с безопасностью. Он очень подробно объясняет свою методику поиска ошибок, которая может быть вам полезна, если вас интересует поиск ошибок. А в данном случае дело обстоит вот как.
Ошибка серьезная. В частности, это проблема записи за пределы ядра netfilter. Г-н Грегори сказал, что ее «можно использовать для выполнения кода ядра (через ROP [программирование, ориентированное на возврат]), предоставляя полную локальную эскалацию привилегий, экранирование контейнера, все, что вы хотите».
Эта проблема существует из-за того, что netfilter неправильно выполняет свою функцию разгрузки оборудования. Локальный, непривилегированный злоумышленник может использовать это, чтобы вызвать отказ в обслуживании (DOS), выполнить произвольный код и вызвать общий хаос. В добавок, это работает, даже если атакуемое оборудование не имеет функции разгрузки! Грегори написал: «несмотря на то, что проблема находится в коде, связанном с разгрузкой оборудования, это достижимо при нацеливании на сетевые устройства, которые не имеют функции разгрузки (например, lo), поскольку ошибка срабатывает до сбоя создания правила».
Данная уязвимость присутствует в версиях ядра Linux с 5.4 по 5.6.10. Она указана как CVE-2022-25636, и с рейтингом CVSS, равном 7,8, это настоящая проблема.
Насколько всё плохо? В своих рекомендациях компания Red Hat написала: «Этот недостаток позволяет локальному злоумышленнику с учетной записью пользователя в системе получить доступ к памяти, что может привести к сбою системы или угрозе эскалации привилегий». Так что, да, это плохо.
Что еще хуже, эта уязвимость влияет на последние основные выпуски дистрибутивов, такие как Red Hat Enterprise Linux (RHEL) 8.x; Debian Bullseye; Ubuntu Linux и SUSE Linux Enterprise 15.3. Несмотря на то, что исправление netfilter было выпущено, оно еще не доступно во всех выпусках дистрибутива.
Если у вас еще нет исправления, вы можете «смягчить» проблему в семействе RHEL с помощью команд:
# echo 0 > /proc/sys/user/max_user_namespaces
# sudo sysctl --system
И в семействе Debian/Ubuntu с помощью команды:
$ sudo sysctl kernel.unprivileged_userns_clone=0
Но опять же, это может сработать только в половине случаев. Если вы не хотите, чтобы ваши серверы Linux были украдены или просто отключены от сети, пришло время либо исправить вашу систему, либо заблокировать ее, чтобы избежать неприятностей.
Источник: zdnet.com