Google: команде безопасности ядра Linux не хватает примерно сотни инженеров
Команда безопасности Google заявила, что код ядра Linux недостаточно хорош, так как еженедельно выходит более 100 исправлений, и для работы над ним требуется еще как минимум 100 инженеров.
Кис Кук, инженер-программист Google, работающий с функциями безопасности в ядре Linux, сообщил, что проблемам в ядре уделяется недостаточно внимания.
«Каждый стабильный выпуск ядра («только исправления ошибок») содержит около 100 новых исправлений в неделю», — сказал он. Это оказывает давление на поставщиков, в том числе тех, кто поддерживает продукты, работающие под управлением Linux, и заставляет их «игнорировать все исправления, выбирать только «важные» или пытаться учесть их все.
Кук частично винит язык программирования C: «Linux, написанный на C, по-прежнему будет иметь длинный хвост связанных проблем». Он добавил, что список Mitre CVE (Common Vulnerabilities and Exposures), используемый профессионалами для оценки важности ошибок, не подходит для этой задачи, поскольку «не всем недостаткам безопасности присваиваются CVE, и они не назначаются своевременно». Ранее Линус Торвальдс и Грег Кроа-Хартман уже поделились своими мнениями о том, как они видят работу на Rust в Linux.
Единственное решение — постоянно обновлять используемую стабильную версию, но Кук сказал, что «выполнение непрерывных обновлений ядра… сталкивается с огромным сопротивлением внутри организации из-за страха регресса — не сломает ли обновление продукт?». Другая проблема заключается в том, что многие поставщики используют старые ядра и переносят исправления обратно, что приводит к избыточной работе, поскольку несколько инженеров в разных компаниях исправляют одну и ту же проблему.
Кук ссылается на инструмент фаззинга Google, Syzkaller, который в настоящее время сообщает о почти 1000 возможных проблемах в ядре Linux: около 400 в год исправляются, сказал он, но их число растет на 100 в год по мере обнаружения новых.
У Кука есть ряд предложений, в том числе отказ от рабочего процесса только по электронной почте, внедрение более автоматизированного тестирования и фаззинга, непрерывная интеграция и другие шаги, чтобы сделать процесс разработки «более эффективным». По его словам, в настоящее время после выпуска версии происходит слишком много операций тестирования ядра.
Кук также предложил улучшить цепочку инструментов, убедившись, что «Linux может быть написан на безопасных для памяти языках, таких как Rust». По словам инженера, «по нашим самым консервативным оценкам, ядру Linux и его цепочкам инструментов в настоящее время не хватает минимум 100 человек». Он предложил компаниям перевести штатных инженеров, работающих над кодом ядра и безопасностью, на работу с ядром.
Linux используется во многих самых прибыльных компаниях мира, в том числе и в самой Google. Компания могла бы нанять дополнительно 100 инженеров по безопасности, равно как и Amazon, которая также работает в основном на Linux. В феврале этого года Google заявила, что спонсирует только двух штатных разработчиков для работы над безопасностью ядра.