Некорректная обработка TCP-пакетов позволяет злоумышленникам отправлять на целевые системы специально сконфигурированные пакеты, вызывая у систем на базе Linux и FreeBSD состояние kernel panic.
Паника-паника
В операционных системах Linux и FreeBSD выявлены существенные уязвимости, связанные с тем как на уровне ядра обрабатываются запросы TCP-пакеты. На практическом уровне эти «баги» позволяют удалённо выводить из строя систему, вызывая «панику ядра».
Три уязвимости выявлены в ядре Linux: по данным эксперта подразделения информационной безопасности Netflix Джонатана Луни (Jonathan Looney), две из этих уязвимостей относятся к «функциям минимального размера сегмента (MSS) и выборочного подтверждения TCP (SACK)». Вторая уязвимость SACK Panic может приводить к падению и перезагрузке системы.
Для Red Hat Linux эта уязвимость получила индекс CVE-2019-11477, её степень угрозы оценили в 7,5 баллов по шкале CVSS3 («серьёзный» уровень). Две другие уязвимости CVE-2019-11478 и CVE-2019-11479 оценены как средние.
Red Hat, однако, далеко не единственный дистрибутив Linux, для которого характерна эта уязвимость: та же проблема присутствует в Debian, Ubuntu, Suse и AWS, построенных на основе ядра Linux версии 2.6.29 и более поздних.
Для эксплуатации злоумышленнику будет достаточно «отправить через TCP-соединение специально подобранную последовательность сегментов SACK с малым значением TCP MSS», что вызовет переполнение целочисленного значения в ядре.
И чем помочь?
Для исправления проблемы в более новых версиях ядра выпущен патч PATCH_net_1_4.patch; тем, кто пользуется версиями Linux до 4.14 включительно потребуется ещё один патч PATCH_net_1a.patch.
В качестве промежуточной меры предлагается также отключить обработку SACK в системе (выставив значение /proc/sys/net/ipv4/tcp_sack на 0) или заблокировать соединения с малыми значениями MSS с помощью инструментов, выпущенных Netflix Information Security. Но это сработает только при отключённом TCP-зондировании.
Эксплуатация двух других, менее серьёзных, уязвимостей CVE-2019-11478 и CVE-2019-11479, соответственно, также потребует от злоумышленника создать специально сконфигурированные последовательности TCP-пакетов. В первом случае произойдёт фрагментация последовательности перенаправления TCP, во втором «избыточное потребление ресурсов».
Вариация уязвимости CVE-2019-11478 существует и для FreeBSD двенадцатой версии (ей присвоен индекс CVE-2019-5599).
Для исправления этого «бага» под Linux потребуется установить обновление PATCH_net_2_4.patch, а для CVE-2019-11479 PATCH_net_3_4.patch и PATCH_net_4_4.patch.
Netflix Information Security также выпустил фильтры, позволяющие блокировать входящие соединения с низкими значениями MSS. Пользователи FreeBSD также могут отключить стэк RACK TCP в качестве промежуточной защитной меры.
«Учитывая количество затронутых уязвимостями версий ядра Linux, можно предположить, что эти «баги» присутствовали в системе довольно продолжительное время, но оставались незамеченными, считает Дмитрий Залманов, эксперт по информационной безопасности компании SEC Consult Services. Одна из уязвимостей вообще затрагивает все версии Linux. Но, к счастью, аудитом безопасности открытого ПО занимается огромное количество организаций и частных исследователей, и большое количество найденных уязвимостей это свидетельство активному исправлению допущенных ошибок».
Подробная информация об уязвимостях и средствах борьбы с ними доступна здесь. В Netflix отмечают, что правильные настройки приложений такие, как, например, ограничение размеров буферов записи, мониторинг потребления трафика и агрессивное блокирование подозрительных соединений, позволяет ограничить степень угрозы от перечисленных уязвимостей.
Вернуться в раздел: Новости