Ошибки в ядре операционных систем Linux не исправляют годами

Результаты показывают, что в среднем на обнаружение ошибки уходит 2,1 года. А самая долгоживущая ошибка - переполнение буфера в сетевом коде - оставалась незамеченной почти 21 год.
- 30% ошибок были исправлены теми же разработчиками, что и внесли ошибки;
- 56,9% ошибок устранили в течение года;
- 13,5% ошибок оставались незамеченными более 5 лет (если рассматривать только ошибки, исправленные в 2025 году, - 19,4%).
Для своего исследования Ку разработала инструмент фильтрации изменений ядра Linux и использовала его для поиска всех исправлений, выпущенных с 2005 года.
Открытый исходный код Linux долгое время рассматривался, и справедливо, как преимущество в плане надежности и безопасности. На практике это означает, что при достаточном количестве наблюдателей за кодом количество ошибок должно быть минимальным. В действительности же проблема сложнее. Хотя новые ошибки исправляются быстрее, чем те, что появились десять лет назад, ядро по-прежнему хранит множество старых уязвимостей. С точки зрения злоумышленника долгоживущие ошибки ядра представляют собой опасный вектор атаки. Они способны затронуть огромное количество систем, поскольку разные дистрибутивы используют общий код ядра.
Современные злоумышленники не полагаются исключительно на недавно обнаруженные уязвимости. Поиск старых ошибок тоже может дать результат, так как некоторые старые проблемы могут ускользнуть от внимания сотрудников кибербезопасности.
Российская газета опросила разработчиков ПО и специалистов в области кибербезопасности, чтобы выяснить, насколько эти ошибки критичны, не угрожают ли они работе информационных систем, работающих на Linux, и не создают ли уязвимости для хакеров.
По мнению технического директора компании "Адвилабс-рус" (разработчика операционной системы Uncom OS) Максима Андрианова, ошибкам несоответствия кода и спецификации подвержено абсолютно все ПО, но если программа (или ОС) имеет закрытый код, то найти их и перепроверить могут только авторы, а всем остальным остается только довериться. "У открытого ПО, в том числе Linux, код открыт, и его может посмотреть любой желающий и проверить на ошибки. Такой подход значительно повышает безопасность и дает контроль над ПО всему человечеству, а не замыкает на одном производителе. Доказательством эффективности такого подхода и служит упомянутое исследование, где проанализировали проект с открытым кодом. Увы, но текст программ с закрытым кодом они бы посмотреть не смогли, а соответственно, не смогли бы и дать оценку по наличию там древних ошибок и их количеству", - считает Андрианов.
Согласен с такой точкой зрения и директор компании Ideco Дмитрий Хомутов: "Ошибки в больших проектах могут существовать очень долго. Важно отметить, что это касается не только OpenSource. В закрытых программных продуктах такие ошибки часто существуют значительно дольше, так как нет "тысячи глаз", которые занимаются кодом".
При этом он подчеркивает, что, несмотря на то что эксплуатация большинства потенциальных уязвимостей в коде может быть сильно затруднена, всегда остается небольшая часть опасных, но еще не обнаруженных уязвимостей, которые и представляют основную угрозу атак нулевого дня. "Защита от них - задача наложенных средств защиты: межсетевых экранов, антивирусного и иного ПО", - поясняет Хомутов.
Специалисты отмечают, что в Linux, как и в любой сложной универсальной системе, огромное количество кода, подсистем и сценариев использования. Однако с точки зрения безопасности важно, что не каждая ошибка является уязвимостью и не каждую из них могут использовать злоумышленники. В исследовании показательно, что из более чем 125 тысяч багов лишь около 150 имеют привязку к международной базе данных уязвимостей (CVE).
"Сейчас фиксируется рост атак и адаптация вредоносного ПО под Linux. В таких условиях старые ошибки могут внезапно перейти из "теоретических" в практические, если для них будет найден устойчивый сценарий эксплуатации. Дело в том, что в монолитной архитектуре любая успешная эксплуатация уязвимости в ядре автоматически означает получение максимальных привилегий. Именно поэтому эффективны альтернативные подходы, такие как микроядерная архитектура. Так, например, в KasperskyOS критические сервисы вынесены из ядра в пользовательское пространство, а система проектируется по принципу кибериммунитета. Даже успешный взлом отдельного компонента не дает злоумышленнику контроля над всей системой и не влияет на выполнение критических функций", - рассказал "РГ" старший архитектор отдела развития архитектуры KasperskyOS Андрей Наенко.

