Debian\Ubuntu\etc.: New openssl packages fix predictable random number generator

ich eröffne zu selten neue threads, man sehe es mir nach.
ausserdem ist diese meldung von solch großer sicherheitstechnischer relevanz, daß sie auch mal groß hier oben stehen darf :D
 
Original von sw33tlull4by
steht in der verlinkten Mailliste drin.

Ich hab es auch nur nochmal reingeschrieben, weil der erste Satz von xeno auch falsch verstanden werden könnte und manche denken das nur Debian selber betroffen ist. Der eine oder andere Ubuntu-User weiß vielleicht auch nicht, dass Ubuntu auf Debian basiert und erspart sich deshalb einen Text zu lesen der ihn nicht betrifft.
 
Macht man bei Ubuntu ein Update von OpenSSL, wird man auf diese Lücke von apt/adept-updater hingewiesen und es wird automatisch überprüft ob die vorhandenen Keys sicher sind. Sind sie es nicht, werden automatisch neue generiert. Wenn also ein Ubuntu-User den adept-updater nicht deaktiviert hat, bekommt er es also eh mit.
 
Naja, wäre sowas in Windows aufgetaucht, hätten alle gleich 'Verschwörung!', 'NSA steckt dahinter!', 'Beabsichtigte Hintertür!', 'MS mal wieder inkompetent!' geschrien.
Freut mich wenn sowas auch in der Linux-Welt passiert ;)


Wobei:
This is caused by an incorrect
Debian-specific change to the openssl package
[...]
The first vulnerable version, 0.9.8c-1, was uploaded to the unstable
distribution on 2006-09-17
Wieso spielt man auch an solch sicherheitskritischen Sachen rum und vorallem, warum hält sich das fast zwei Jahre?
 
ich stelle den vergleich recht gerne an:

nach dem erscheinen des artikel auf heise.de kamen massenhaft kommentare nach dem schema "opensource ist schlecht, scheiss linux, alles kappes,...".
später am gleichen tag kam die meldung zum ms patchday, wo 6! lücken geschlossen wurde. aber kaum ein abwertender kommentar gegen microsoft ;)

seltsam, seltsam...
 
Hallo,
Original von xeno
später am gleichen tag kam die meldung zum ms patchday, wo 6! lücken geschlossen wurde. aber kaum ein abwertender kommentar gegen microsoft ;)
Man muss immer differenzieren wie schwerwiegend eine Lücke ist. Nur weil 6 Lücken geschlossen wurden, muss dies nichts heißen.

Solch eine Schwäche ist aber schon katastrophal, da OpenSSL eine sehr weiter Verbreitung genießt:
Auf OpenSSL basiert die Verbindungssicherheit vieler wichtiger Netzwerkdienste, beispielsweise des Webservers Apache, des Log-in-Dienstes SSH, des OpenVPN-Dienstes, des Nameservers Bind, der E-Mail-Verschlüsselung S/MIME sowie die Vertrauenswürdigkeit digitaler Signaturen.
Ich weiß nicht wie katastrophal die Lücke ist, aber anscheinden schon erheblich. Sofern es wirklich leicht sein sollte, die Zufallsdaten zu erraten, dann heißt das im Klartext, dass alle SSL Zertifikate die unter Debian+OpenSSL erstellt wurden, unsicher sind.
Wenn man sein Zert. von einer CA unterschieben lassen hat, ist es nun Wertlos und man darf mehrere hundert Dollar für ein neues ausgeben.
Aber das ist nicht das schlimmste: Alte aufgezeichte Verbindungen können unter Umständen geknackt werden. Man möge sich mal vorstellen, welche Auswirkungen das haben kann.
Auch aufgezeichnte Verbindungen über SSH wären dann nicht mehr sicher, sprich, würde man solch eine Verbindung knacken, könnte man evt. an die Root-Logindaten gelangen.
Und es fließen maßenhaft streng geheime Unternehmensdaten täglich per VPN durchs netzt, wenn diese alle nicht mehr sicher sind (also alte Verbindungen)...

Und wenn man gerade seine Mitarbeiter mit digitalen Zertifikaten ausgerüstet hat, wirst du viel Spaß bekommen, wenn du für zig hundert Mitarbeitern ein neues Zertifikat erstellen und verteilen musst. Und dann muss noch jeder Geschäftspartner darüber in Kenntniss gesetzt werden, dass das alte Zertifikat ungültig ist.


Wenn man erst einmal sein Windows Betriebssystem gepatched hat, sollte man sicher vor den Lücken sein und hat damit keine weiteren Probleme.
Diese Lücke könnte aber für eine Firma sehr kostspielig werden und viele 'Nachwehen' verursachen, mal davon abzusehen, dass sich ein Administrator freuen wird, wenn er diverse Zertifikate zurückrufen und neu ausstellen darf.

Aber naja, dies hängt von der schwere der Schwachstelle im Zufallsgenerator ab, aber dazu gibts lauf heise.de noch keine genauren Infos.


nach dem erscheinen des artikel auf heise.de kamen massenhaft kommentare nach dem schema "opensource ist schlecht, scheiss linux, alles kappes,...".
Heise Foren sind ja fürs trollen bekannt, wobei ich mich sowas nicht anschließen möchte.
Ich wollte einfach nur mal die Leute wachrütteln die wehemt meinen, dass Close Source mist ist und solche Lücken in Open Source unmöglich sind, da ja jeder den Code seinsehen kann.
Da weder Debian unbekannt ist noch fast 2 Jahre ein kurzer Zeitraum ist, kann sowas sehr wohl in open source Projekten passieren. Evt. hilft dies einigen ihren Meinungshorizont zu erweitern ;)


PS: Bitte jetzt keine Diskussion darüber, dass sowas in Close Source nie entdeckt werden würde und somit Hintertüren beliebig lange ausnutzbar seien etc....
Aber ich finde mit Pauschalisierungen wie Close Source = Unsicher, schlecht, Open Source = sicher, super, fährt man generell schlecht und sollte diese lieber schnell ablegen.
Es gibt durchaus einige Bereichen indenen unter verschlussgehaltene Designkriterien die Sicherheit erhöhen. Man muss da differenzieren.
 
Es würde mich wirklich mal interessieren, wie lange es im Durchschnitt bei Open Source Software dauert bis eine Sicherheitslücke entdeckt und dann gefixt wird.

Anscheinend hat man besonders bei komplexen Thematiken doch nicht den so hoch gelobten Vorteil, Sicherheitslücken würden von der Community schnell entdeckt, weil ja jeder den Code einsehen kann.
 
Original von Elderan
Wieso spielt man auch an solch sicherheitskritischen Sachen rum und vorallem, warum hält sich das fast zwei Jahre?

Das ist noch das Schlimmste an der Sache: Der Patch wurde nur aufgrund von valgrind-Warnungen geschrieben, da valgrind sich über die Nutzung von uninitialisiertem Speicher beschwert hatte, was in diesem Fall jedoch kein Fehler war, sondern zur Entropiegewinnung genutzt wurde.

Das ganze ist eigentlich ein gutes Beispiel, warum man solche Sachen lieber upstream lösen und nicht als Distributor selber daran rumpfuschen sollte(speziell bei Krypographie-Software).
Es gab zwar eine ansatzweise Erwähnung des Vorhabens in einer openssl-Mailingliste von einem Debian-Entwickler, doch der eigentliche Patch wurde nicht eingeschickt, zumal der Patch auch noch _vor_ dem Kontaktieren der Mailingliste ins Paket gewandert ist.

Es würde mich wirklich mal interessieren, wie lange es im Durchschnitt bei Open Source Software dauert bis eine Sicherheitslücke entdeckt und dann gefixt wird.

Anscheinend hat man besonders bei komplexen Thematiken doch nicht den so hoch gelobten Vorteil, Sicherheitslücken würden von der Community schnell entdeckt, weil ja jeder den Code einsehen kann.

Das Problem war hier, dass die Lücke nicht in der eigentlichen Software, sondern in einem distri-spezifischen Patch lag, der den eigentlichen Entwicklern nicht bekannt war, denen dies wahrscheinlich früher aufgefallen wäre.
 
was ich gehört habe war das die debian leutz ne sicherheitslücke in openssl gefunden haben die vermeindlich geschlossen haben aber wegen dem patch zur schließung der lücke insecure keys entstanden sind.
 
Original von xeno
das stimmt nicht, der patch wurde mit upstream besprochen. quelle: intern.

Tolle Quelle. Ich habe folgende Äußerung eines OpenSSL-Devs gefunden:
http://www.links.org/?p=327
What can we learn from this? Firstly, vendors should not be fixing problems (or, really, anything) in open source packages by patching them locally - they should contribute their patches upstream to the package maintainers. Had Debian done this in this case, we (the OpenSSL Team) would have fallen about laughing, and once we had got our breath back, told them what a terrible idea this was. But no, it seems that every vendor wants to ?add value? by getting in between the user of the software and its author.
Hier ist der Thread indem die Sache so halb besprochen wurde:
http://marc.info/?t=114651088900003&r=1&w=2
Der eigentliche Patch scheint jedoch nicht eingeschickt worden zu sein. Wobei jedoch auch den Leuten in der Liste nicht aufgefallen ist, dass nur eine der beiden Zeilen, die auskommentiert wurden, damit zu tun hatte und das Auskommentieren der anderen den Bug verursachte.
Der Entwickler antwortete, dass es sich dabei wohl um die falsche Liste gehandelt habe:
* It seems that the Debian maintainer did, indeed, mention his plan on openssl-dev. Openssl-dev is a list for people developing OpenSSL based software, not a list for discussing the development of OpenSSL itself. I don?t have the bandwidth to read it myself. If you want to communicate with the OpenSSL developers you need to use openssl-team@openssl.org. At no time, as people have suggested, was a patch offered to OpenSSL, and the discussion on openssl-dev was misleading.

Wobei man jedoch sagen muss, dass diese Listenstruktur sehr verwirrend ist. Jedoch ist nach dieser Aussage der Patch an sich nie eingesendet worden.
Jedoch liegt die Schuld nicht allein an Debian sondern auch an diesen Kommunikationsproblemen.
 
Hallo,
also auf Heise gibts dazu einen Nachtrag:
Doch anstatt die konkreten Funktionsaufrufe für den unbelegten Speicherbereich zu entfernen, nahm der "Bugfix" laut Laurie der untergeordneten Funktion ssleay_rand_add() jede Möglichkeit, Daten in den Entropie-Pool zu übernehmen. Unbelegter Arbeitsspeicher ist dafür allerdings nur eine von mehreren möglichen Quellen.

Die Folge war, dass das Debian-OpenSSL nur noch die unter Linux 16 Bit lange Linux Prozess-ID für Zufallszahlen heranzog. Dies macht damit erstellte SSH- und SSL/TLS-Schlüssel mit einem einfachen Brute-Force-Angriff erratbar.
[..]
Bei den X.509-Zertifikaten für SSL und TLS ist die Situation hingegen noch unklar.

Da kommt ja freude auf, wenn man nur 2^16 Prozessids testen muss, um den private key herauszufinden.
Da sind die oben beschriebenen möglichen Auswirkungen wirklich katastrophal, einen 4096 Bit Key auf effektiv 16 Bit zu reduzieren schaffen nicht mal die Leute bei der NSA ;)
Und da dies SSH keys, SSL keys und OpenVPN keys einschließt, auf dessen Kanäle extrem sensible Daten gesendet werden, ist dies schon eine Katastrophe. Der normale Mensch hat jetzt nicht soviele super sensible Daten, wenn aber irgendwelche Patientendaten per OpenVPN übermittelt wurden...


Wobei man jedoch sagen muss, dass diese Listenstruktur sehr verwirrend ist. Jedoch ist nach dieser Aussage der Patch an sich nie eingesendet worden.
Jedoch liegt die Schuld nicht allein an Debian sondern auch an diesen Kommunikationsproblemen.
Persönlich sehe ich eher eine geringer Schuld beim OpenSSL Team.
Ich finde man sollte bei extrem sicherheitskritischen Sachen die Finger weglassen und es den Leuten mit dem entsprechenden Know-How überlassen, also den entsprechenden Entwicklern. Wenn jeder in solchen Programmen rumspielt, ist es kein Wunder, dass es irgendwann jemand verschlimmbessert, einfach aufgrund von mangeldem Know How.

What I currently see as best option is to actually comment out
those 2 lines of code [die auf uninitialisierten Speicher zugreifen). But I have no idea what effect this
really has on the RNG. The only effect I see is that the pool
might receive less entropy.
Openssl-dev
Wenn man halbwegs Ahnung von der Materie hat und zusätzlich noch ausreichend Paranoid ist, was jeder sein sollte, der auf dem Gebiet irgendwie arbeitet, der weiß, dass allein schon der letzte Satz ein No-Go für die Änderung gewesen wäre.

Ein gutes Paper über Zufallsgeneratoren ist Cryptanalytic Attacks on Pseudorandom Number Generators.
Wie man dem Entnehmen kann, ist das größte Problem von Zufallsgeneratoren eine gute Seed zu erhalten, also ein möglichst großen (guten) entropy pool.
Wenn man schon ahnt, dass eine Änderung diesen pool beeinträchtigen könnte, sollte man auf alle Fälle die Finger davon lassen. Man kann jede Entropy gebrauchen die man bekommen kann.

Dann finde ich es sehr dumm nur aufgrund einer Warnung von irgend so einem Tool zum Code-Check diese Zeile auszukommentieren.
Wenn man schon weiß, dass der Zugriff auf uninitialisierten Speicher _kein_ Fehler ist sondern gewollt da eingebaut ist, wie kommt man dann bitte auf die Idee, dieses auszukommentieren, nur damit dieses blöde Tool nicht mehr meckert? Besonders wenn man schon ahnt, dass dadurch der entropy pool verkleinert werden könnte...
Das ist in meinen Augen schon grob fahrlässig und da hat evt. jmd. nicht seinen Menschenverstand eingesetzt sonder stumpf nach dem Schema "Hauptsache keine Warnungen mehr erhalten" vorgegangen.
Es sollte jedem bewusst sein, dass Programme/Tools extrem dumm sind und einfach nach vorgegebenen Schema handeln. Die Bewertung jeder einzelnen Meldung muss dennoch weiterhin dem Menschen überlassen bleiben und dieser sollte auch mal die ein oder andere Warnung ignorieren.


Und wenn man sich die Antworten auf der Mailingliste anguckt,sieht man, dass das keine Antwort das Vorhaben wirklich bestätigt.
Die einzige verwertbare Antwort von Ulf Möller:
" If it helps with debugging, I'm in favor of removing them."

Wobei man sagen muss, dass Ulf Möller aus dem development team stammt und nicht aus dem core team, deswegen vermutlich nicht sehr vertraut mit der entsprechenden Passage ist.

Bei Änderungen an höchst sensiblen Stellen sollte man sich schon das Okay von den core entwicklern holen und nicht darauf vertrauen, was irgendwelche Leute sagen, die Anwendungen für OpenSSL schreiben.


Und dass man als Core-Entwickler nicht die Möglichkeit hat, alle Einträge auf der development Liste zu lesen, sollte klar sein. Man rechnet auch nicht damit, dass Änderungen an OpenSSL auf der Development Liste besprochen werden.


PS:
An solch einem Fehler sieht man mal wieder, wie praktisch Systeme mit Perfect Forward/backward Secrecy, wie z.B. Diffie-Hellman, sind.
 
Ja, OTR ist schon was feines.
sachen wie PGP/GPG haben aber die nette Eigenschaft das man in der Regel weiss mit wem man redet.
back2Topic:
Die Fallen jetzt alle darueber her wie die Aasgeier.
Auf Milworm gibt es so wie ich das sehe nun auch schon eine Anleitung dafuer.
eine Anleitung fuer dsa Bruteforcen*rolleseye*
 
Zurück
Oben