Почему патчи grsecurity не включены в ядро ​​Vanilla?

22

По каким причинам grsecurityпатчи (или функции безопасности, которые они приносят) не включены в ядро ​​по умолчанию. При взгляде на преимущества для безопасности кажется, что ванильное ядро ​​совершенно небезопасно.

Если это компромисс (в некоторых приложениях, где вы хотите избежать мер безопасности), то, кажется, это grsecurityможно было бы включить в ядре vanilla.

С таким большим количеством вещей в основном ванильном ядре мне трудно понять причины, по которым сообщество не хочет их включать grsecurity.

humanityANDpeace
источник
Кажется, это политическая проблема. Похоже, Торвальдс думает, что некоторые из их патчей - мусор. Также см. Рекомендации по безопасности Qualys - уязвимости Stack Clash и другие CONFIG_VMAP_STACK, refcount_t UAF и игнорируемый метод обхода / руткита Secure Boot в списке рассылки OSS-Security.
Из прошлых предложений по спискам крипто-рассылки ядра, я и другие были помещены в ярлык Торвальдса как «безумный». Так что не только люди, отвечающие за безопасность, сталкиваются с проблемой. Также смотрите случайное: молчание предупреждений компилятора и исправление гонки . В этой теме обсуждается вопрос о предоставлении dmesg для драйверов, которые используют {u} random до того, как будут готовы. (Возможно, вы не знаете, но некоторые драйверы используют устройства до того, как они будут правильно посеены. См. Systemd читает из urandom перед инициализацией )

Ответы:

23

(Я разработчик grsecurity.)

Ответ jsbillings основан на сообщении электронной почты, рассмотренном в статье LWN .

Важным контекстом здесь является то, что ни grsecurity, ни разработчики PaX не участвовали в обсуждении этого списка рассылки. Комментарий PaX Team к статье LWN проясняет это. Мы никогда не отправляли патчи для включения в магистраль. Одна из простых причин заключается в том, что мы те, у кого есть идеи и реализации, которые не решит апстриминг. Кроме того, мы должны были бы заняться утомительными аргументами в списке рассылки с группой разработчиков, которые очень сильно заинтересованы в защите (см. Мою презентацию H2HC 2012 года)для дальнейшего обсуждения этого). У нас ограничено время и ресурсы, поэтому мы решили потратить их наиболее эффективным способом: создать технологию безопасности завтрашнего дня и сделать ее доступной для всех бесплатно. Как отмечает PaX Team в своем комментарии, у нас есть особое всеобъемлющее представление о безопасности, и, следовательно, мы не считаем, что есть много достоинств в разделении и расширении отдельных функций.

Брэд Шпенглер
источник
Мне понравилась ссылка на интересную статью LWN. Спасибо. Я все еще в замешательстве, чтобы прочитать мнение о том, что группа разработчиков ядра будет "очень сильно защищена". Я, конечно, не обладаю какой-либо проницательностью, но это, кажется, вызывает беспокойство :(. Путаница заключается в том, что я считаю безопасность одним из «сильнейших аргументов» для OpenSource и Linux. В настоящее время я чувствую себя довольно угрожающе в моей системе на основе Ubuntu. Оставайтесь немного позади с тем, что было бы «больше глаз может смотреть» - безопасность ОС, если бы мы были в неведении? Мне все равно нравится безопасность, спасибо за это.
humanityANDpeace
10

Похоже, в прошлом у разработчиков grsecurity были проблемы с тем, чтобы убедить Линуса принять изменения в ядре. Проблемы, похоже, следующие:

  1. Отправка гигантского куска кода, а не разбиение его на куски
  2. Линус считает многие изменения "безумными", что, вероятно, является способом сказать Линусу, что это не работает с его планами на будущее развитие.
jsbillings
источник
Это довольно интересные моменты. Все еще учусь - я даже не знал о BLOB (это двоичные данные, верно, я полагаю, что-то не открытое). Ну, информация хорошая. Если указанные причины верны, это все равно позор. Мне нравится идея улучшения безопасности, связанная с набором патчей grsecurity.
человечествоANDpeace
1
@humanityANDpeace «blob» может означать «большой двоичный объект» (обычно в смысле базы данных, но иногда и в других местах), или это может быть сленг «большой кусок чего угодно». В данном случае, я так понимаю, jsbillings имел в виду последнее: большой кусок исходного кода, который не подразделяется дальше. Будучи самим программистом, я точно знаю, с каким разочарованием можно работать, не говоря уже о проверке.
CVn