 Wie cool aus? Hallo, ich bin Nick. Ich bin der führende Sicherheitsingenieur bei Cloudflare. Ich erzähle heute etwas über Hardbleed. Deswegen schon lang weit. In besonderer red ich immer meine persönlichen Erfahrungen bei Cloudflare mit dem, was passiert ist, während Hardbleed, als es gerade rauskam. Und was danach noch passiert ist. Hat jemand bereits diesen Artikel gelesen? Das ist ein Ausschnitt aus The Verge. Das ist ein semi-authentisches Stück über das, was mit Hardbleed passiert ist. Ich will das kurz zusammenfassen. Benutzt sie DTLS? Nein, ich benutze es nicht. Benutzt sie irgendjemand? Wie sieht es denn aus mit TLS Hardbleeds? Was ist denn ein TLS Hardbleed? Zu diesem Zeitpunkt wusste niemand, was das war. Es war ein sehr selten genutztes Feature. Die Antwort war, okay, sie sind dämlich und es ist ein Bug. Man sollte es einfach ausschalten. Ich kompiliere einfach OpenSSL ohne Hardbleed neu. Ein paar Stunden später war Hardbleed ausgeschaltet und wir haben es ausgerollt. Wir sollten die Öffentlichkeit informieren gegen den 9. April. Dann haben die Leute gefragt, warum sollte man Cloudflare sagen? Lassen Sie kurz erklären, was Cloudflare macht. Wir sind ein Reverse-Proxy. Das heißt, wenn Sie eine Webseite haben und trosten, dann sitzen wir davor. Wir schicken dann gekaschten Inhalte an den User. Aber das verringert den Load auf Ihrer Seite. Unser Server muss näher an Ihrem Host sein als der Benutzer. Wir sind näher an den Benutzern als der normalen Server. Das sind ungefähr eine Million von Seiten auf Cloudflare, zum Beispiel Banken und große Klinikauszarsysteme. Reddit zum Beispiel oder die Internet-Tagforsen. Mehr und mehr. Viele Seiten. Und was Cloudflare macht, ist sehr einfach. Wir haben drei Services. Domain-Name-Server, HTTPS und HTTPS, was bei OpenSSL gemacht wird. Und EngineX. Die Architektur ist sehr einfach. Jede verschiedene, die wir haben, kann jede Seite ausliefern. Das heißt, wenn man ein HardBit zurückdenkt, ist das hier ein wirklich, wirklich großes Problem, wenn man ein HardBit uns trifft. Wie dem auch sei. Das ist sehr früh passiert. April 7, um 10.27 Uhr, OpenSSL veröffentlicht diesen Advisory. Und wir wurden rüstenkurz davor. Eine halbe Stunde war, wusste jeder. Eine Stunde später haben wir gesagt, dass wir, sagen, unsere Kundenseiten sind gepatcht. Es war etwas. Es war ein Bug. Es wurde größer. Es wurde ungefähr eine Stunde nachdem es groß wurde. Es kam ein Tweet von Goodnomicon. Und jeder weiß, was es ist. Was ist der nächste Tag? Es wurde HardBit itself. Es wurde auf einmal eine Marke. Und es kam in die Massenmedien. Es wurde ein wirklich großes Problem. HardBit.com hatte ein Logo. Es wurde bei der großen Nachrichten-Seiten. HardBit-Virus haben wir gesagt. Dann haben wir gesagt, es ist ein HardBit-Virus da draußen. Ich wusste, dass es wirklich schlimm wurde, als meine Mutter mich angerufen hat und gefragt hat, hey, was läuft denn hier? Also, es war eine relativ große Sache. Und wir waren fertig, damit diese ganzen Fehler zu beheben. Also, haben wir Probleme und hätten genug Zeit. Wir wussten, wir haben beschlossen, drei Sachen zu machen. Also, zuallererst haben wir versucht, diesen Scanner, den Philippo hat, Fahr von Quatern zu machen. Zudem haben wir unser ganzes Netzwerk, ein Honigennetzwerk umgewandelt, dass wir sehen, was angriffen wurde. Dann haben wir beschlossen, was wir über unsere Zertifikate machen. Und viele der Seiten, die wir machen, sind Zertifikate. Und wir hatten ungefähr viele Zertifikate. Und am Tag danach war es noch nicht wirklich klar, dass man die Zertifikate zurückrufen musste. Okay, reden wir ein bisschen über den HardBit-Scanner, den Philippo gemacht hat, der in CloudFair und Geneva, das ist den Go-Man, setzt den Benutzernamen, den Netzwerk-Namen rein und schaut, ob schlechte HTTPS-HardBit-Sachen sind. Es sollte keine wirklichen Informationen veröffentlichen. Wir haben es auf Amazon gemacht und wir haben es hinter CloudFair gemacht. Und wir haben vielen... Das ist wie Philippo Server aussah. Apple-Aids haben wir bis zu 120.000 Hits pro Minute gehabt. Das ist so gut wie nicht. Das ist die nächsten zwei Wochen. 2.000 ist das ganz unten. Bis zu zehnmal zu viel. 10.000 bis 20.000 Hits am Tag. 10.000 Scans pro Minute für die nächsten Woche. Und wir hatten 200 Millionen Tests innerhalb der ersten zwei Wochen. Wir hatten dann den Scanner laufen. Und danke an Philippo, er ist glaube ich hier im Raum irgendwo. Bitte steht doch mal kurz auf. Vielen Dank für das Tool. Jedenfalls, das ist was wir dabei gefunden haben. In Anzahl der Domains, die betroffen waren, war es ziemlich übel. Das ist kurz danach. Ein, zwei Tage danach waren es bis zu 30% aller Seiten, die wir gescannt haben, war anverwundbar. Viele Leute haben das bei ihren automatischen Tests verwendet. Wir sind trotzdem relativ schnell runtergekommen auf eine sehr niedrige Zahl. Bei Cloudflare haben wir dann entschlossen, was wir denn machen. Wir können im Prinzip jeden Hard-Bleed-Angriff versuchen zu locken, der eine falsche Größe hat. Das sind unsere Logs vom April 9. 69% aller Pakete hatten eine Größe von 16.384. Das werden sie als eine Potenz von zwei wiedererkennen. Man erkennt es auch als eine Zahl, die in dem Tool SSL-Test.py hardcoded war. Deswegen kann man davon ausgehen, dass es von diesem Tool generiert wurde. Viele der Pakete, die wir gefunden haben, haben das Null-Längen-Paket benutzt. Eine Woche später war es ungefähr dasselbe. Es gab viele Leute, die das in großem Stil als Angriff gegen verschiedene Webseiten ausgenutzt haben. 20% waren immer noch Philippos-Tests. Viele Leute waren einfach nur interessiert daran, die gleichen Tests auszuführen wie Philippo. Nur 1% der Scans von Philippo war gegen Cloudflare gegangen. Hier haben wir eine IP-Landkarte. Man sieht hier merkwürdige Spitzen, die man auf Island sieht. Da sollte man nicht zu viel reinlegen. Ich halte nicht so viel von solchen IP-Karten. Warum ist das jetzt so gefährlich? Warum war hardbleed so schlecht für uns? Es geht hier um einen Ebenen-6-Problem im OZ-Layer. Man lockt normalerweise nicht Handshakes. Wenn man jetzt 64K weit vom Speicher eines Servers abgreifen kann, dann hat man möglicherweise TLS-Privatschlüssel mit erhalten. Wenn man sich dieses Diagramm anschaut, das ist eine Heatmap. Alles, was oberhalb von dem Heap ist, konnte man theoretisch abgreifen unter anderem Passwörter, Cookies. Die Frage ist, was war da wirklich drin? Also haben wir uns den Code angesehen von OpenST. Was sagt der Code? Der Code sagt, das kann eigentlich gar nicht passieren, zumindest nicht in Engine X. Der Schlüssel wird gleich geladen und müsste deswegen auf dem niedrigsten Level des Stacks liegen. Das heißt, jedes Mal, wenn ein neuer Request reinkommt, müsste der Speicher dafür weiter oben im Stack liegen. Jetzt ist Engine X Single-Freaded. Das heißt, es kann nicht passieren, dass ein anderer Fret zwischendrin irgendwie in den Speicher reingreift und es dann trotzdem ausliest. SSL ist ein benutzt viel Speicher und die ganzen kryptografischen Spei werden von SSL sofort überschrieben, wenn es nicht mehr benötigt wird. Also das haben wir zumindest gedacht. Wir waren nichts anderes sicher als bei CloudFair. Ich habe nur ein bisschen kurz geschaut, warum haben wir diese CloudFair-Heartbeat-Challenge gestartet? Wir haben geschaut, ob man eine Antwort davon hat. Wir hatten einen Standard Engine X außerhalb eines CloudFair mit einem problematischen SSL-Version. Und wir haben sie alle gebeten, versucht es zu finden. Schaut, was wir gemacht haben. Dem Beweis zeigen uns eine Nachricht, die mit diesem privaten Schlüssel signiert wurde. Also das haben wir gefunden. Die in ersten Stunden war traurig. Und sie sich vielleicht schon vorstellen, wenn irgendwie anscheinend das gemacht haben hier. Hauptsächlich irgendetwas, was auf der Seite war, wurde in die Speicher geladen. Und Leute haben private Schlüssel gepostet und Sachen, die so aussehen, wie zum Beispiel mein Name oder ein Passwort-Datei. Also jeder war sehr durcheinander. Ey, da ist ein privater Schlüssel. Aber es war nicht der wirkliche Schlüssel, bis wir das hier gesehen haben, diesen Tweet. Und wir haben nachgeschaut, das ist unser Büro und wir schauen auf den Bildschirm. Und ja, er hat das gelöst. Also er hat sich einen Glückwunsch zu federn. Er war nicht der Einzige. Das hier waren die, die es in ungefähr den ersten 24 Stunden geschaut haben. In den ersten 48 Stunden haben es 12 Leute gefunden und haben ein Beweis zu uns gesendet. Okay. Immer noch kann man als private Schlüssel machen? Ja. Wir haben es innerhalb von zehn Stunden. Wir wissen, dass private Schlüssel absolut sicher war. Wir haben geschaut, wo in Memory die Sachen gespeichert sind und schon schaut, wo die private Schlüssel am Anfang gespeichert sind. Aber die waren nirgends wo in derselben Position. Wie wurde das jetzt wirklich gemacht? Es war ein zweiter Fehler in OpenSSL. Es hat sich herausgestellt, es ist gerade noch einen zweiten Fehler in dem Code. Wie hätte man sich das nur denken können, wenn man sich den Code anschaut? Wenn man sich den Speicher ansieht von so einem Request, dann sieht man, all die Stellen, die rot markiert sind, sind mögliche Private Schlüssel. Das ist der Code, den wir verwenden, den Müll hinterher auch wieder aufzuräumen. In verschiedenen Fällen in der Montgomery-Multiplikation wurden einfach nicht die Zwischenergebnisse wieder gelöscht danach. Deswegen lassen wir kurz erklären, wie es funktioniert in RSA. Also man hat verschiedene Dinge. Unter anderem ein Privatschlüssel, das nennt man den. Das ist der private Exponent D. Dazu gibt es noch die öffentlichen Schlüssel. Das ist PQ, das ist mit dem öffentlichen Exponent E. Wenn man Teile davon kriegt, hat man schon den ganzen Schlüssel. Das heißt, die Leute haben jetzt einfach jeden 128-byte Block genommen, den sie gefunden haben, und haben ihn durch den RSA-Modul geteilt. Wenn es sich teilen ließ, dann hat man den Faktor gefunden. Von den zehn Leuten, die uns eine Lösung geschickt haben, haben neun Leute es auf diese Art und Weise gelöst. Wenn man eine größtens Anzahl an Request-Schicks bis zu 10.000, dann hat man gelegentlich einfach Glück. Dann gab es noch eine Lösung von Rubing-Zu, der hat die Koppersmith-Attacke gefahren. Dazu muss der öffentliche Schlüssel klein sein. Man braucht aber nur 60 Prozent des öffentlichen Schlüssel P oder Q. Das funktioniert aber wirklich nur, wenn der öffentliche Exponent klein ist. Und der öffentliche Exponent bei RSA ist immer klein, und er hat es innerhalb von 50 Anfragen gelöst. Das war richtig interessant. Okay, private Schlüssel sind weg, sind veröffentlicht. Okay, was bedeutet das? Revocation-Time, Zeugrufzeit. Okay, das Internet wurde dafür gebaut, um etwas zu machen, die diesen öffentlichen Schlüssel, und dann werden Leute in ihrer Schlüssel die ganze Zeit zurückrufen und so designen wir das System. Okay, das waren hauptsächlich wir. Aber hauptsächlich war das Cloud-Fair, das was das ganze Netzwerk zurückrufen hat. Unten sind die zurückrufenden Zertifikate, und das ist April 7. Das war, als alle ihren Schlüssel zurückrufen haben. Das ist der grüne Spitz, das es als Cloud-Fair ihre Schlüssel zurückgerufen hat. Und sie die ganzen Zertifikate zurückgerufen haben, aber war erst gestellt, dass es nicht wirklich viel bedeutet. Die selben Zertifikate wurden weiterhin von den Browsern akzeptiert. Die können kurz nochmal reinschauen. Es gibt drei Methoden, wie man das Schlüssel zurückruft, diese zurückrufen von Schlüsseln, und von diesen drei Methoden gemacht. Okay, zuerst ist es ein Zertifikats-Zerückrufungsliste. Das ist der Teil mit einer Reihe von Zertifikaten, die zurückgerufen werden. 100.000 Zertifikate zurückzurufen zerstört diese Liste. Diese Liste von Global CLR wuchs von 22 Kilobytes zu 4,7 Megabytes. Und 30 Gigabits pro Sekunde und 100 Gigabits pro Sekunde, das war sehr problematisch. Wirklicherweise für Global Signing war CloudFair vor ihren Servern, aber ja, sonst wären sie in die Knie gegangen. Wir können damit umgehen. Alle drei Stunden waren diese Wellen, und das ist darüber, wie CLRs auf anderen Seiten abgedatet wurden und wie Intellexplorer die runterleiten. Das ist zwar ziemlich stark. CLRL ist kaputt. CLRL ist die Online-Zertifikatsstatus-Protokoll. Es ist Frage, Antwort. Ist diese Zertifikate zurückgezogen? Ja oder nein? Es ist ziemlich kaputt. CLRL weiß das schon seit einer Weile, und überprüft es nicht. Und wenn man wirkliches Problem hat, dann kann man spezielle Probleme nicht machen. Wenn man nur ein leicht kleines Problem hat, kann man einfach auf dem Weg diesen Zertifikat fallen lassen, diese Überprüfung fallen lassen. Darum hat es nicht wirklich funktioniert über der Reino CSP. Und wie war das jetzt mit CLRLS Sets? Das ist das, die Version von Google. Google sammelt alle Zertifikat-Listen und macht sie alles zusammen und steckt sie in den Browser. Das heißt, man kriegt neue Updates mit dem Browser. Okay, nicht alle Listen, aber spezifische Zertifikate. Und das ist, was wir herausgefunden haben. Sie machen nur manche. Sie fragen nur manche. Und wenn der Browser keinen Update bekommt, dann kriegt man auch keine neue Liste. Und das ist auch ziemlich problematisch. Also CloudFair hat die ganzen Zirch gerufen. Und das war kein EV-Zertifikat, aber Chrome hat es auch trotzdem zurückgezogen. Aber keins, der 100.000 plus CloudFair-Zertifikaten waren in dieser Liste. Also war im Endeffekt nur ein Hack, dass dieser eine Seite zurückgerufen wurde. Das waren die effektivsten 4-Zeilen von Zertifikaten in Chrome. Das ist ein Hack, das kann man nicht so anbinden. Aber das ist, wie es gemacht werden sollte, weil es keine möglichen Wege gab, die zurückgerufen durchzuführen. Das Zurückgerufsystem ist kaputt. Also, was können wir machen? Okay, es gibt kürzere Zeit, die Zertifikate gültig sind, machen kann. Dass wir nicht die alten Zertifikate sehr lange speichern in diesen Listen von zurückgerufenen Zertifikaten. Es gibt auch die Möglichkeit, dass der Server dieser OCSP-Zertifikat Listen weiter senden muss. Das könnte dieses auch lösen, aber wir sind alle nicht weiter angewendet und werden nicht häufig benutzt. Okay, also zusammenfassend kann man sagen, dass wir drei Sachen gemacht haben nach Hartbleed. Wir haben dafür gesorgt, dass der Scanner läuft. Wir haben unsere Seite in einen Hornipot verwandelt. Und wir haben festgestellt, dass man Zertifikate auf jeden Fall zurückrufen muss. Es gibt keine Ausrede, das nicht zu tun. Es gibt mehrere Sachen, die man noch darüber lernen kann. Ich will nicht derjenige sein, der allen Leuten erklärt, was man tun sollte. Aber bei Open Source ist Veröffentlichung relativ schwierig. Das war das erste in diesem Jahr, wo wir festgestellt haben, dass noch viele weitere kommen sollten. Andere Sachen, die offensichtlich sein sollten, aber offensichtlich nicht waren, und niemand der Open SSL10 installiert hatte, wollte Hartbleed. Von daher sollte es als Schlussfolgerung sein, dass man Features, die man nicht unbedingt brauchstandardmäßig deaktiviert, dann natürlich erwartet, dass es unerwartete, dass es zwar immer war in der Computersicherheit, das sollte man immer erwarten, aber es kam trotzdem wieder mal als Schock. Viele der Angriffe, die wir gesehen haben, und wir haben viele gesehen, waren eigentlich nur Scans, die sehen wollten, ob die Seiten funktionieren und ob sie verwundbar waren. Crowdsourcing war effektiv. Das ist ein sehr beruhigendes Zeichen. Ist jemand hier in der Runde, vielleicht jemand, der die Cloudflare Challenge gewonnen hat? Wenn ja, dann bitte jetzt den Armin. Okay, ich sehe niemand. Ich habe leider keine Brille dabei. Wenn, dann viel Glückwunsch, auf jeden Fall. Und das Letzte ist natürlich, Rückruf braucht eine Lösung. Was jetzt daraus lernen, ist, dass wir Open SSL unterstützen müssen. Ich muss den Mikrofon hier festhalten. Vielen Dank. Nein, wirklich. Das ist ein Teil von der kritischen Infrastruktur der ganzen Welt. Nicht nur der Webseiten, sondern auch von anderen Sachen, wie zum Beispiel eingebettetem Gerät. Und diese Leute brauchen Unterstützung. Also bitte unterstützt Open SSL. Und damit bin ich fertig. Okay, quick announcement before we start the Q&A. If you are going to leave the room, please get up now. Go out quietly without talking so we can do this. Wenn Sie den Raum noch verlassen wollen, machen Sie es bitte leise. Moment, können Sie einfach den Raum nur verlassen. Wenn Sie irgendwelche Fragen haben, bitte kommen Sie zu den Mikrofonen. Wir fangen an mit dem Mikrofon Nummer 1. Okay, nicht wirklich eine Frage. Vielen Dank für die Präsentation. Wir haben diese Fragen, über das Papier, das Sie vorher veröffentlicht haben. Es fehlen irgendwie noch ein paar Informationen. Zuerst Angriff innerhalb der ersten 24 Stunden nach dem Sclosure waren wir. Wir haben nicht wirklich Angriffen. Wir haben den Scanner angefangen zu arbeiten innerhalb von 24 Stunden. Und wir haben diese Regionen gezeigt. Wir haben diese Regionen gezeigt. Wir haben verschiedene Methoden ausprobiert. Und wir haben während viel gearbeitet haben, dass möglicherweise Firewalls veröffentlicht werden innerhalb von denen, oder die manche Pakete stoppen. Das heißt, wir haben verschiedene Pakete in jedem Anfrage gemacht. Also das war auch ein der Scanners, die Sie da entdeckt haben. Noch eine kurze Unterbrechung. Wenn Sie gehen auf der Brasse, bitte benutzen Sie nur die vorn links und vorn rechts die Tür. Wenn Sie da oben sind, können Sie irgendeine Tür benutzen. Aber wenn Sie hier unten sind, bitte benutzen Sie nur die Tür vorn rechts und vorn links. Vielen Dank für den Kommentar. Ich kann leider nicht sagen, ob ich das speziell gesehen habe. Aber das ist eine von den Sachen, wo es sehr schwer ist zu sagen, ob es jetzt ein böseartiger Angriff ist oder ob es sich einfach nur um den Scanner handelt. Wir haben einfach nur den Host gesehen und da hat uns unter Umständen die Informationen gefehlt, was dir zu diesem Video gefällt. Das war ein Video, das war ein Video, das war ein Video, das wir uns vorhin mal gesehen haben. Und da hat uns unter Umständen die Informationen gefehlt, was dir hintergrund davon war. Ich hoffe, zwei Bitte. Hallo, ich habe eine Zweige über Cloudflare. Könnten Sie bitte aufhören, Torusal zu benutzen? Also blockieren? Sie machen die Seiten zentraler jeden Tag und diese Arbeit ist so kein kleines Problem. Sie können das so einfach machen, aber sie blockieren alle Tore benutzen. Danke, wir denken darüber nach. Wir denken darüber nach, ob wir eine Lösung dafür finden können, wie wir mit Tor umgehen. Das Hauptproblem ist, dass Tor einfach ein unglaubliches BAM-Quelle ist für Webseiten und es ist sehr schwierig durchzusuchen, was davon gut und was davon schlecht ist. Warten Sie ab. Dieses Jahr werden wir noch etwas präsentieren, was Torius an umgehen wollen. Nächste Frage von unserem Signal Angel über Internet Relay Chat. Weil die maximale TLS der enge 16 Kilobytes ist, wie konnte man 64 Kilobytes zurückbekommen? Man kann ein Hardbleed-Request über mehrere Pakete aufspannen. Ich bin zimusiert, dass es so funktioniert hat. Was ist Ihre Meinung über Libre-SSL? Sag du. Ich bin nicht sicher, ob ich die qualifizierteste Person bin, um darüber zu reden, aber ich glaube, es ist wirklich gute Absichten dahinter. Ich glaube, die Gemeinschaft hat erkannt, dass da große Probleme vor allem bei der Maintenability sind bei OpenSSL, aber ich bin nicht sicher, ob der Ansatz da richtig ist. Ich denke, es funktioniert dahingehend, dass Sie Ihr Ziel erreichen werden, das Sie haben. Es gibt inzwischen eine öffentlich übertragbare Version für andere Betriebssysteme außer auf dem BSD. Und es ist deutlich sauberer Quellcode. Und OpenSSL versucht immer noch viel zu viel der alte Systeme, wie Windows 16-Bit Systeme zu unterstützen. Und Vertreubarkeit wird noch für eine Weile dabei bleiben. Ich stimme Ihnen zu, dass OpenSSL eine wirklich große Anzahl an Plattformen unterstützt. Aber die große Zahl an neuen SSL-Bibliotheken, die rausgekommen sind, Patches untereinander austauschen, insofern muss man das in der Gesamtssicht sehen. Hallo, vielen Dank für Ihre Gespräche. Sie haben beide Zahlen, die kleiner werden und später wieder größer werden. Wollen Sie das erklären? Ich glaube, es gab einfach kleine Spikes, dass Leute kamen und ging. Es glaubt nicht, dass Seiten wirklich neuer Ding, also nachträglich verwundbar wurden. Ich glaub eher, dass das Artefakte von der Messung sind. Ich glaube nicht, dass es wirklich große Sprünge gab. Aus den Daten, die ich vorhin gezeigt habe, aus Philippus Scanner, es war nicht so, dass immer die gleichen Domains an jedem Tag gescannt wurden. Insofern kann es schon sein, dass wir immer einen anderen Subset hatten. Vielen Dank.