Аудит сетевого стека NetBSD выявил уязвимости в BSD-системах
29 мая 2018 года
Организация The NetBSD Foundation оплатила проведение аудита безопасности сетевого стека, работа по выполнению которого после пяти месяцев работы находится на заключительном этапе. В кодовую базу NetBSD внесены сотни исправлений, направленных на улучшение качества кода и устранение выявленных в ходе аудита проблем, в том числе удалённо эксплуатируемых уязвимостей. Опубликован первый отчёт о выявленных уязвимостях, большинство из которых не специфичны для NetBSD и проявляются в других BSD-системах.
Например, в реализациях IPsec из NetBSD, FreeBSD и OpenBSD выявлено несколько уязвимостей (CVE-2018-6916, CVE-2018-6918), позволяющих инициировать переполнение буфера при обработке специально отправленных сетевых пакетов и вызвать крах ядра. Переполнение буфера также выявлено в стеке IPv6 NetBSD и других BSD-систем - через отправку специально оформленного пакета IPv6 можно вызвать перезапись 1 байта за пределом буфера, но манипулируя вложенными фрагментами теоретически можно добиться перезаписи целых областей.
В реализации IPv6 Multicast из NetBSD и FreeBSD выявлена возможность создания ситуации обращения к уже освобождённым блокам памяти (use-after-free) при обработке определённых пакетов (обработчик Pim6 при некоторых условиях возвращал флаг IPPROTO_NONE вместо IPPROTO_DONE, что приводило к двойному освобождению буфера). Проблема позволяет удалённо вызвать крах ядра, в случае сборки с поддержкой Multicast. Идентичная ошибка найдена в обработчике EtherIP из OpenBSD, который доступен в конфигурации по умолчанию. .
Из специфичных для NetBSD проблем отмечаются уязвимости в пакетных фильтрах PF и NPF, вызванные целочисленным переполнением в обработчике TCP-SYN и коде для разбора пакетов IPv6 с опциями большого размера. Уязвимости могут быть использованы для инициирования отказа в обслуживании через отправку определённых сетевых пакетов.
Из не связанных с уязвимостями изменений, внесённых в кодовую базу NetBSD в ходе аудита, отмечается проведение работы по усилению защищённости mbuf API, добавлению дополнительных проверок KASSERT, упрощению кода обработки пакетов, проверке соответствия логики работы требованиям RFC, чистке кода IPsec (удалено более 1000 строк, повышена производительность и надёжность).
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.