Бесплатно Экспресс-аудит сайта:

06.08.2021

ИБ-эксперт Google указал на множественные проблемы в подходе к разработке кода ядра Linux

Команда исследователей в области кибербезопасности компании Google сообщила о проблемах в коде ядра Linux, которым уделяется недостаточно внимания. Каждую неделю новые версии ядра получают около 100 новых исправлений, а для работы над ними необходимо как минимум 100 инженеров.

По словам программиста Киса Кука (Kees Cook), каждый стабильный выпуск ядра содержит около 100 новых исправлений в неделю. Это оказывает давление на Linux-поставщиков, включая тех, кто поддерживает бесчисленное количество продуктов под управлением Linux. Компаниям приходится «игнорировать все исправления, выбирать только самые важные или сталкиваться с непростой задачей по применению всех патчей».

Кук частично винит язык программирования C, как причину огромного количества проблем в Linux. Исследователь полагает, что база данных MITRE CVE (Common Vulnerabilities and Exposures), используемая ИБ-экспертами для оценки опасности уязвимостей, не подходит для этой задачи, поскольку «не всем уязвимостям присваиваются CVE, и они не назначаются своевременно».

Единственным решением является постоянное обновление до последней используемой стабильной версии, но по словам Кука, «выполнение непрерывных обновлений ядра сталкивается с огромным сопротивлением внутри организации из-за страха сломать продукт».

По словам Кука, с помощью инструмента фаззинга Syzkaller в настоящее время можно обнаружить почти 1 тыс. потенциальных проблем в ядре Linux. Эксперты исправляют почти 400 проблем в год, но постоянно обнаруживаются новые уязвимости.

В качестве вариантов решения данной проблемы Кук предлагает отказаться от рабочего процесса, основанного только на электронной почте, который используется для разработки Linux, внедрить автоматизированное тестирование и фаззинг, непрерывную интеграцию и другие решения для повышения эффективности процесса разработки. По его словам, в настоящее время после выпуска новой версии ядра происходит слишком много процессов тестирования.

Кук также предложил улучшить набор инструментов Linux, отметив, что «Linux может быть написано на безопасных для памяти языках, таких как Rust».