News Linux: USB-Subsystem des Kernels hat 79 Schwachstellen

Dabei seit
Apr. 2008
Beiträge
932
#2
Gibt es definierte Regeln über den Umfang durchzuführender Tests von Code, bevor er in den Kernel aufgenommen wird?
 

Schnitz

Rear Admiral
Dabei seit
Nov. 2005
Beiträge
6.018
#3
Schön wenn andere den Quelltext lesen dürfen und Fehler finden so dass man sie beheben kann. So wird der Kernel immer wieder sicher und noch sicherer :)

Aber es sind wieder nur relativ ungefährliche Schwachstellen - relativ ungefährlich weil man physischen Zugang zum System braucht :daumen:
 
Zuletzt bearbeitet:

Computerfuchs

Lt. Junior Grade
Dabei seit
Juni 2009
Beiträge
383
#4
So lange man mit einem präparierten Stick einfach eine Tastatur emulieren kann, kann man sich auch einfach über die Konsole Zugriff verschaffen. Weitere Sicherheitslücken sind ärgerlich, aber machen jetzt nicht wirklich was aus, so lange das Scheunentor der Tastatureingabe so oder so offen steht. Oder übersehe ich grade etwas?
 

0x8100

Lt. Junior Grade
Dabei seit
Okt. 2015
Beiträge
407
#5
normalerweise ist man als unprivilegierter user unterwegs. wenn man dann ein usb device anschliesst, dass sich als tastatur ausgibt, dann kann die tastatur auch nur im kontext des users was machen. das ist schon ein unterschied zum ausnutzen einer sicherheitslücke im usb-treiber des kernels, womit man gleich was mit root rechten machen kann.
 
Dabei seit
Okt. 2013
Beiträge
2.187
#6
Dabei seit
Apr. 2006
Beiträge
1.997
#7
So lange man mit einem präparierten Stick einfach eine Tastatur emulieren kann, kann man sich auch einfach über die Konsole Zugriff verschaffen. Weitere Sicherheitslücken sind ärgerlich, aber machen jetzt nicht wirklich was aus, so lange das Scheunentor der Tastatureingabe so oder so offen steht. Oder übersehe ich grade etwas?
Use-after-free- und Buffer-Overflow-Bugs können einem Angreifer vollen Zugriff auf das System verschaffen, z. B.:
https://groups.google.com/forum/?_e...ller/0HJQqTm0G_g#!topic/syzkaller/0HJQqTm0G_g


Äh? Also werden jetzt weitere Lücken in 4.14 geschlossen oder ist das schon in 4.13.8 geschehen?
4.13 und 4.14 sind unterschiedliche Versionen im Sinne von Features. 4.13 schon seit dem 3. September stabil und im Wartungsmodus, die Nachfolgeversion 4.14 ist gerade in Entwicklung. 4.13.8 ist ein Bugfix-Updates, welches einige dieser Lücken schließt, 4.14 erhält diese Bugfixes im Rahmen der Release Candidates, welche es vor jedem Release gibt und in die natürlich während dieser Zeit gefundene Fehlerkorrekturen einfließen.

Einen Fuzzer POTUS zu nennen kann man auch als Humor betrachten -> https://en.wikipedia.org/wiki/POTUS
 
Zuletzt bearbeitet:
Dabei seit
Mai 2011
Beiträge
3.972
#8
Das klingt erstmal viel, aber die Lücken wurden nur mit einrm neuen Werkzeug gefunden und die veröffentlichten sind schon behoben, weitere werden folgen.

In closed source werden Lücken dieser Art wohl noch vorhanden sein.
 
Dabei seit
Juli 2006
Beiträge
748
#10
Ich frage mich wie man solche Lücken findet, ich kann mir irgendwie nicht vorstellen, dass sich da jemand, mit dem Ziel eine Lücke zu finden, da hinsetzt. Und testet und versucht und testet und versucht testet und versucht.. Und wenn er nicht gestorben ist testet und versucht er immernoch.
 

Termy

Lt. Junior Grade
Dabei seit
Mai 2007
Beiträge
484
#11
Ich frage mich wie man solche Lücken findet, ich kann mir irgendwie nicht vorstellen, dass sich da jemand, mit dem Ziel eine Lücke zu finden, da hinsetzt. Und testet und versucht und testet und versucht testet und versucht.. Und wenn er nicht gestorben ist testet und versucht er immernoch.
und was genau denkst du machen "Sicherheitsforscher" sonst? :D (ja, sie machen auch noch anderes, aber was du beschreibst gehört definitiv zum Job - ich denke mal bei großangelegten Penetrationstests wird sowas auch gemacht?)
 

raph

Lt. Junior Grade
Dabei seit
Nov. 2002
Beiträge
449
#13
Idealerweise sind in Firmen alle USB-Anschlüsse deaktiviert.
Am besten nur PS/2 Maus und Tastatur.
Oder gleich PXE Boot ohne Platte.
Port Control Software ist sehr aufwändig,weil jeder Rechner einfach USB braucht um damit arbeiten zu können. Bei der Einrichtung passieren einfach False Positives, weil es eben so viele unterschiedliche Hardware gibt.
Und zu verlangen, dass in einem Unternehmen nur eine Sorte Hardware eingesetzt wird, ist schlicht relitätsfern.

Bzgl. PXE. Toll zum Aufsetzen frischer Rechner, aber erklär mal Deinen Usern, dass Sie nicht mehr mobil arbeiten können.
Keine Meetings mit Notebook
Keine Kundentermine
Kein HomeOffice

Btw. Stell Dir vor, man kauft mal wieder ein kleines Unternehmen. Dort die eigene IT zu implementieren ohne die Arbeitsabläufe dort über den Haufen zu schmeißen dauert. Und wie soll man dann mit eigenen Systemen dort Arbeiten?

Vom grade so heißen Scheiß "BYOD" fang ich erst gar nicht an...
 
Dabei seit
Nov. 2007
Beiträge
6.796
#14
Deshalb bin ich auch der Meinung, dass Vieles Open Source sein müsste, wenn es genügend Menschen nutzen (müssen).
​Entweder man hat die Kräfte und Mittel oder es wird Open Source, um Kräfte und Mittel zu schaffen.


Zitat von ComputerBase:
​Ein Tippfehler, es heisst "Dummheit ausgenutzt".
 
Dabei seit
Sep. 2005
Beiträge
565
#15
Schön wenn andere den Quelltext lesen dürfen und Fehler finden so dass man sie beheben kann. So wird der Kernel immer wieder sicher und noch sicherer :)
Da hat aber niemand den Quellcode gelesen und spezifische Fehler aufgespürt. Da ist einfach nur ein Fuzzer gelaufen, ein Tool das völlig blind Eingaben simuliert - strunzdumm also und Fehler dieser Art sollten eigentlich vor Veröffentlichung ausgebessert sein. Lässt auf miese Codequalität schließen wenn man mit einem Fuzzer derartig viele und schwerwiegende Lücken feststellt.
Wieder ein Indiz, dass Linux letztlich keineswegs sicherer als andere Systeme ist, der einzige Vorteil ist wohl, dass man schnell Patches bekommen wird - hoffentlich sind die von besserer Qualität.

Aber es sind wieder nur relativ ungefährliche Schwachstellen - relativ ungefährlich weil man physischen Zugang zum System braucht :daumen:
Das letzte Mal als jemand zeigte, dass man Windows mit einem präparierten USB-Stick hacken kann, war das ein halber Weltuntergang...
 
Dabei seit
Jan. 2010
Beiträge
1.089
#16
bla bla bla bla....
hab deine angaben nicht geprüft von mir aus mag das alles so sein
properitär muss ja auch garnicht perse schlecht sein, das problem ist eifnach nur niemand absolut niemand kann es wirklich prüfen und beweisen, weil es einfach intransparent ist. bei opensource kann einfach jeder (ich weiß nur theoretisch) nachgucken.
UND wenn nötig kann man es auch einfach besser machen (oder auch schlechter, geht natürlich auch)

properitär hat nur einen zweck und das ist nunmal Geld. Und ja auch ich und jeder Linux benutzer braucht geld......
 
Zuletzt bearbeitet:
Dabei seit
Mai 2015
Beiträge
1.118
#18
mal wieder ein beweis dafür, dass informatik den menschlichen intellekt übersteigt. die das programmiert haben sind bestimmt nicht dumm und trotzdem is es so fehlerhaft. das is mittlerweile bei jeder software so, das alles ist längst viel zu komplex
 
Dabei seit
Jan. 2008
Beiträge
3.370
#19
Ich frage mich wie man solche Lücken findet, ich kann mir irgendwie nicht vorstellen, dass sich da jemand, mit dem Ziel eine Lücke zu finden, da hinsetzt. Und testet und versucht und testet und versucht testet und versucht.
Er nimmt einen Computer zu Hilfe. Dann geht sowas schneller. :) Fuzzer sind Programme, die ein zu testendes Programm immer wieder mit anderen "zufälligen" Eingaben malträtieren und auswerten, wie der Proband reagiert, also ob er die erwartete Ausgabe liefert oder eine falsche Ausgabe oder gar abstürzt.

Dabei kommt es auf schlaues Vorgehen an, um nicht alle möglichen Eingaben zu testen sondern nur interessante Fälle. Alles testen würde bedeuten, für x Bytes Eingabe 2^(x*8) Durchläufe testen zu müssen, was schon für kurze Eingaben unschaffbar viel Aufwand bedeuten würde. Also analysiert man und stellt z.B. Beispiel fest, dass der Proband nur weitermacht, wenn die Eingabe mit 1234 startet. Das könnte ein konstanter Header eines Protokolls sein, den das Programm am Anfang überprüft. Also schickt man immer 1234 am Anfang und testet sich dann weiter. Auf diese Weise versucht man nach und nach in "alle Ecken" des Programms vorzudringen, also alle möglichen Ausführungswege abzuklappern und diese wieder mit "zufälligen" Eingaben zu fluten und Bugs zu finden.

Je mehr man über den Probanden weiß, desto schlauer kann der Fuzzer vorgehen. Es hilft enorm, den Quellcode zu haben und zu wissen, wofür der Proband eigentlich gedacht ist. Mit Quellcode kann man den Proband vorm Test so ändern, dass er schneller/besseres Feedback gibt.

Da ist einfach nur ein Fuzzer gelaufen, ein Tool das völlig blind Eingaben simuliert - strunzdumm also
Nein, es war kein derart "strunzdummer Fuzzer" mit "völlig blinden Eingaben". Damit käme man nicht weit genug. Siehe Anfang meines 2. Abschnitts oben. Bischen Mühe muss man sich schon geben, um solche Bugs zu finden.


BTW:
Für Rechner, bei denen die Chance besteht, dass ein Bösewicht einen manipulierten USB-Stick reinsteckt, sollte man einen an den eigenen Gerätepark angepassten Kernel verwenden, keinen Distro-Kernel mit Treibern für 10000000000 exotische USB-Geräte. Dann wäre nur ein winziger Bruchteil der genannten USB-Bugs ausnutzbar.
Das Absichern gegen Angreifer mit physischen Zugriff wird trotzdem immer Baustelle bleiben. Da gibts IMHO keine zufriedenstellende Endlösung.
Ergänzung ()

is es so fehlerhaft. das is mittlerweile bei jeder software so
Nicht ganz. Es gibt auch nachweisbar korrekte Software, allerdings nur sehr wenig. An dem Thema wird munter geforscht. Software, die Fehler in anderer Software findet oder ausschließen kann, wird auch besser.
Es ist falsch, von "Sämtliche Software ist Müll" auszugehen, weil man schon viele, schlechte Erfahrungen gemacht hat. Software mit akzeptabler Qualität ist kein Ding der Unmöglichkeit, wird nur leider selten nachgefragt. Die meisten geben sich mit Müll zufrieden, wenn man ihnen oft genug sagt: "Das geht nicht anders!!1" - also bekommen sie Müll.
 
Zuletzt bearbeitet:

nervenjere

Cadet 4th Year
Dabei seit
Sep. 2016
Beiträge
86
#20
mal wieder ein beweis dafür, dass informatik den menschlichen intellekt übersteigt. die das programmiert haben sind bestimmt nicht dumm und trotzdem is es so fehlerhaft. das is mittlerweile bei jeder software so, das alles ist längst viel zu komplex
Hast du schon mal eine zeile code geschrieben?
Falls nein rate ich dir es zu lernen, dann siehst du die dinge realistischer
 
Top