GCC macht's jetzt besser
Zufällig war der Zufall gerade erst Ende September 2011 bei GCC ein Thema, als Andi Kleen ein Patch [6] für den Compiler vorschlug, das das Seeding des GCC-Zufallszahlengenerators verbessert. Denn der initialisiert sich bis heute mit einer Mischung aus Prozess-ID und Systemzeit. Kleen fiel dieses Problem auf, als er in einer massiv parallelen Umgebung eine unzureichende Zufallszahlenqualität diagnostizierte.
Er schlägt als Verbesserung vor, »/dev/urandom«
– sofern verfügbar – als Quelle für den Seed zu verwenden. Dabei bleibt jedoch ein kleines Zufalls-Restrisiko: Während »/dev/random«
nur Zahlen liefert, solange sein Vorrat an durch Systemereignisse gefütterten Zufallsdaten ausreicht, emittiert »/dev/urandom«
immer Zahlen. Deshalb könnte »/dev/random«
blockieren und so den zugehörigen Prozess zum Stillstand bringen, bis wieder zufällige Ereignisse anfallen. Das ist für viele Anwendungen nicht tolerierbar, weshalb sich ein Ausweichen auf »/dev/urandom«
empfiehlt. Damit sinkt zwar geringfügig die Zufälligkeit, allerdings ist das Eintreten des Effekts für den Angreifer nicht vorhersagbar.
Bind und Open SSL binnen eines Jahres im Visier
Ein Pseudozufallszahlen-Generator erwies sich 2008 auch als Ursache für DNS-Poisoning-Angriffe auf verschiedene BSD-Unixe, darunter Open BSD und Mac OS X [7]. Seit 1997 war bekannt, dass vorhersagbare, aufsteigende DNS-Anfragen-IDs ein Sicherheitsrisiko darstellen. Open BSD hatte darum damals schon einen Zufallszahlengenerator in seine Bind-Variante integriert, dabei aber – neben einem statischen UDP-Port – übersehen, wie stark der LCG-Algorithmus vom Startwert abhängt und wie wenig er sich für sichere Anwendungen eignet. Es gibt wesentlich bessere, kryptographisch sichere Zufallszahlengeneratoren.
Ebenfalls 2008 erwischte es die Open-SSL-Implementierung von Debian mit einer auf Zufallszahlen zurückzuführende Sicherheitslücke [8]. Durch ein Patch reduzierte sich der Startwert des Zufallszahlengenerators auf die Prozess-ID. Die maximal 16 Bit große Nummer vergab Debian aufsteigend. Ab dann war es leicht, zum Beispiel alle möglichen SSH-Keys einer Maschine vorauszuberechnen. Die dafür notwendigen Tools demonstriert [9].
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 6 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





