Линус Торвальдс раскритиковал меры по усилению защиты ядра Linux

Линус Торвальдс раскритиковал меры по усилению защиты ядра Linux

Линус Торвальдс раскритиковал меры по усилению защиты ядра Linux

Линус Торвальдс не стесняясь в выражениях отверг заявку Кеса Кука (Kees Cook), предложившего включить в состав ядра 4.15 механизм защиты, блокирующий использование вызова usercopy при проведении некоторых видов атак.

Суть предложенного метода в запрете применения usercopy для прямого копирования между пространством пользователя и некоторыми областями ядра с введением белого списка допустимых для использования областей памяти. Так как подобный подход потенциально может нарушить работу приложений, использующих usercopy, предусмотрен fallback-режим для kvm и sctp (ipv6).

Линус в целом не отказался принять патч, но заявил, что не станет это делать в рамках цикла разработки 4.15, так как у него есть сомнения, что предложенные патчи хорошо протестированы и учтены все нюансы их влияние на работу существующих приложений. Предложенное изменение затрагивает некоторые ключевые подсистемы ядра, а у него сейчас нет времени анализировать появление возможных регрессивных изменений. Также указывается, что неправильно пытаться переложить решение возможных несовместимостей на пользователей и уже по факту отлавливать всплывающие в приложениях проблемы, пишет opennet.ru.

После попыток уговорить Линуса изменить своё решение, он в очередной раз попытался довести до разработчиков, что сохранение совместимости является ключевым условием разработки ядра Linux и ограничительные меры требуют большого внимания и предварительной подготовки. Линус считает недопустимыми методы усиления безопасности, связанные с введением на ходу новых правил, нарушение которых приводит к блокировке выполнения ранее работающих приложений. Более четверти века ядро обходилось без подобных правил и нельзя внезапно пытаться что-то запретить и обрушить на пользователей изменения, после которых отдельные приложения перестанут работать.

Если такие изменения необходимы, то они должны внедряться постепенно с предварительным информированием пользователей и проведением подготовительной работы по выявлению возможных проблем и адаптации изменения для обхода этих проблем. Линус не отделяет уязвимости от других видов ошибок, и считает, что ради их устранения недопустимо вносить изменения, которые могут нарушитькорректную работу пользовательских приложений.

Предложения сразу ввести блокировку приложений или останавливать работу системы при выявлении опасного поведения отмечаются как в корне неверные - по мнению Линуса, перед началом блокировки достаточно долгое время ограничительные средства усиления безопасности должны работать в режиме информирования - например, около года только выводить в лог сведения о наличии проблемы, и лишь затем можно применять более радикальные меры.