Warum sind die Grsecurity-Patches nicht im Vanilla Kernel enthalten?

22

Aus welchen Gründen sind grsecurityPatches (oder die damit verbundenen Sicherheitsfunktionen) standardmäßig nicht im Kernel enthalten ? Wenn man die Vorteile für die Sicherheit betrachtet, scheint es, dass der Vanille-Kernel so ziemlich unsicher ist.

Wenn dies ein Kompromiss ist (einige Anwendungen, bei denen Sie die Sicherheitsmaßnahmen vermeiden möchten), grsecuritykönnte dies eine Option sein, die im Vanillekern aktiviert werden kann.

Bei so vielen Dingen im Mainstream-Vanillekern fällt es mir schwer, die Gründe zu verstehen, warum die Community dies nicht einbeziehen möchte grsecurity.

Mensch und Frieden
quelle
Es scheint ein politisches Problem zu sein. Es scheint, dass Torvalds denkt, dass einige ihrer Flecken Müll sind. Siehe auch Qualys Security Advisory - Die Sicherheitslücken in Stack Clash and More CONFIG_VMAP_STACK, refcount_t UAF und eine ignorierte Secure Boot Bypass / Rootkit-Methode in der OSS-Security-Mailingliste.
Aus früheren Vorschlägen auf den Kernel-Crypto-Mailinglisten wurden ich und andere in den Eimer mit den Torvalds-Labels "Insane" gestellt. Es sind also nicht nur die Gresecurity-Leute, die mit dem Problem konfrontiert sind. Siehe auch Zufall: Compiler-Warnungen aussetzen und Rennen korrigieren . Der Thread ist eine Diskussion über das Bereitstellen eines Dmesg für Treiber, die {u} random verwenden, bevor es fertig ist. (Möglicherweise wissen Sie es nicht, aber eine Reihe von Treibern verwenden die Geräte, bevor sie ordnungsgemäß geimpft werden. Vgl. Systemd liest vor der Initialisierung aus urandom. )

Antworten:

23

(Ich bin ein Sicherheitsentwickler.)

Die Antwort von jsbillings basiert auf einem E-Mail-Beitrag, der in einem LWN-Artikel besprochen wird .

Der wichtige Kontext hierbei ist, dass weder grsecurity noch PaX-Entwickler an dieser Mailinglistendiskussion beteiligt waren. Der Kommentar des PaX-Teams zum LWN-Artikel macht dies deutlich. Wir haben die Patches noch nie für die Mainline-Aufnahme eingereicht. Ein einfacher Grund ist, dass wir die Ideen und Umsetzungen haben, die das Upstreaming nicht lösen würde. Darüber hinaus müssten wir uns mit einer Gruppe von Entwicklern, die sich stark gegen die Sicherheit auskennen, auf lästige Mailinglisten-Argumente einlassen (siehe meine 2012er H2HC-Präsentation)für mehr Diskussion darüber). Wir haben nur begrenzte Zeit und Ressourcen und setzen sie so effektiv wie möglich ein: Wir entwickeln die Sicherheitstechnologie von morgen und stellen sie allen kostenlos zur Verfügung. Wie das PaX-Team in seinem Kommentar erwähnt, haben wir ein besonderes umfassendes Sicherheitsverständnis und glauben daher auch nicht, dass das Abspalten und Upstreaming einzelner Funktionen von großem Nutzen ist.

Brad Spengler
quelle
Mir hat der Link zu dem interessanten Artikel von LWN gefallen. Vielen Dank. Ich bin immer noch verwirrt, als ich die Meinung las, dass eine Gruppe von Kernel-Entwicklern "sehr sicherheitsfeindlich" wäre. Ich habe natürlich keine Einsicht, aber das scheint mir beunruhigend :(. Die Verwirrung ist, dass ich die Sicherheit als eines der "stärksten Argumente" für OpenSource und Linux ansehe. Im Moment fühle ich mich auf meinem Ubuntu-basierten System ziemlich bedroht. Bleiben Sie ein wenig zurück, was wäre "mehr Augen können aussehen" -Sicherheit des Betriebssystems, wenn wir unwissend wären? Ich mag Sicherheit trotzdem, danke dafür.
humanityANDpeace
10

Es scheint, dass die Entwickler von grsecurity in der Vergangenheit Probleme hatten , Linus davon zu überzeugen, Änderungen im Kernel zu akzeptieren. Die Probleme scheinen zu sein:

  1. Senden eines riesigen Code-Blobs, ohne ihn in Teile zu zerlegen
  2. Linus hält viele der Änderungen für "verrückt", was wahrscheinlich Linus 'Behauptung ist, dass es mit seinen Plänen für die zukünftige Entwicklung nicht funktioniert.
jsbillings
quelle
Dies sind einige interessante Punkte. Ich lerne noch - ich war mir des BLOB nicht einmal bewusst (das ist eine Sache mit binären Daten, richtig, etwas, das ich nicht als Open Source bezeichne). Naja die Info ist gut. Wenn die angegebenen Gründe zutreffen, ist es immer noch eine Schande. Ich mag die Idee der Sicherheitsverbesserung im Zusammenhang mit dem grsecurity-Patchset.
humanityANDpeace
1
@humanityANDpeace "blob" kann "binäres großes Objekt" bedeuten (normalerweise im Sinne einer Datenbank, manchmal aber auch anderswo), oder es kann für "großes Stück von was auch immer" umgangssprachlich sein. In diesem Fall nehme ich an, dass Jsbillings es als Letzteres bezeichnete: einen großen Teil des Quellcodes, der nicht weiter unterteilt ist. Da ich selbst Programmierer bin, weiß ich genau, wie frustrierend es sein kann, mit diesen zu arbeiten, geschweige denn zu rezensieren.
ein Lebenslauf vom