Pourquoi les correctifs de sécurité ne sont-ils pas inclus dans le noyau vanille?

22

Quelles sont les raisons pour lesquelles les grsecuritycorrectifs (ou les fonctions de sécurité qu'il apporte) ne sont pas inclus par défaut dans le noyau. En regardant les avantages pour la sécurité, il semble que le noyau vanilla soit assez peu sûr.

S'il s'agit d'un compromis (certaines applications où vous souhaitez éviter les mesures de sécurité), il semble que cela grsecuritypourrait être une option à activer dans le noyau vanilla.

Avec tant de choses dans le noyau vanilla traditionnel, j'ai du mal à comprendre les raisons pour lesquelles la communauté ne veut pas l'inclure grsecurity.

humanANDpeace
la source
Cela semble être un problème politique. Il semble que Torvalds pense que certains de leurs correctifs sont des ordures. Voir également Qualys Security Advisory - The Stack Clash and More CONFIG_VMAP_STACK vulnérabilités, refcount_t UAF, et une méthode ignorée Secure Boot bypass / rootkit sur la liste de diffusion OSS-Security.
D'après les suggestions passées sur les listes de diffusion de la cryptographie du noyau, moi-même et d'autres avons été placés dans le seau Torvalds étiquetés "insensés". Ce n'est donc pas seulement les gens de gresecurity qui sont confrontés au problème. Voir également les avertissements du compilateur random: silence et fix race . Le thread est une discussion sur la fourniture d'un dmesg pour les pilotes qui utilisent {u} random avant qu'il ne soit prêt. (Vous ne le savez peut-être pas, mais un certain nombre de pilotes utilisent les périphériques avant de les

Réponses:

23

(Je suis développeur grsecurity.)

La réponse de jsbillings est basée sur un message électronique discuté dans un article LWN .

Le contexte important ici est que ni les développeurs de grsecurity ni ceux de PaX n'ont été impliqués dans cette discussion sur la liste de diffusion. Le commentaire de l'équipe PaX sur l'article LWN clarifie ce point. Nous n'avons jamais soumis les correctifs pour inclusion sur la ligne principale. Une raison simple est que nous sommes ceux qui ont les idées et les implémentations, que l'amont ne résoudrait pas. De plus, il nous faudrait engager des discussions fastidieuses sur la liste de diffusion avec un groupe de développeurs très anti-sécuritaires (voir ma présentation H2HC 2012pour plus de discussion à ce sujet). Nous avons un temps et des ressources limités, nous choisissons donc de les dépenser de la manière la plus efficace possible: créer la technologie de sécurité de demain et la mettre gratuitement à la disposition de tous. Comme le mentionne l'équipe PaX dans son commentaire, nous avons une vision globale de la sécurité et nous ne pensons donc pas qu'il y ait beaucoup de mérite à séparer et à intégrer les fonctionnalités individuelles.

Brad Spengler
la source
J'ai aimé le lien vers l'intéressant article LWN. Merci. Je suis toujours dans un état de confusion pour lire l'opinion qu'un groupe de développeurs du noyau serait "très anti-sécurité". Je n'ai bien sûr aucune idée, mais cela semble inquiétant :(. La confusion est que je suppose que la sécurité est l'un des "arguments les plus forts" pour OpenSource et Linux. Pour le moment, je me sens très menacé sur mon système basé sur Ubuntu. Restez un peu à l'écart avec, ce qui serait "plus d'yeux peuvent regarder" -sécurité de l'OS si nous étions ignorants? J'aime la sécurité de toute façon, merci pour cela.
humanitypeace
10

Il semble que les développeurs de grsecurity aient eu des problèmes dans le passé pour convaincre Linus d'accepter des modifications dans le noyau. Les problèmes semblent être:

  1. Soumettre un gros morceau de code et ne pas le décomposer
  2. Linus considère que beaucoup de changements sont "fous", ce qui est probablement la façon dont Linus de dire que cela ne fonctionne pas avec ses plans de développement futur.
jsbillings
la source
Ce sont là quelques points intéressants. J'apprends encore - je n'étais même pas au courant du BLOB (c'est une chose de données binaires, à droite, quelque chose qui n'est pas open source je suppose). Eh bien, l'info est bonne. Si les raisons invoquées sont vraies, c'est quand même une honte. J'aime l'idée de l'amélioration de la sécurité liée au patchset grsecurity.
humanityANDpeace
1
@humanityANDpeace "blob" peut signifier "grand objet binaire" (généralement dans le sens de la base de données, mais parfois aussi ailleurs), ou il peut être l'argot pour "gros morceau de n'importe quoi". Dans ce cas, je suppose que jsbillings le désignait comme ce dernier: un gros morceau de code source qui n'est pas subdivisé davantage. Étant moi-même programmeur, je sais exactement à quel point il peut être frustrant de travailler avec, sans parler de réviser.
un CVn