Mai 032013
 

Forscher der Ruhr-Uni Bochum haben sich mal angeschaut wie man mit Hilfe öffentlichen Informationen aus sozialen Netzwerken die Passwörter von Nutzern schneller erraten kann. Die Ergebnisse wurden dann in Vergleich zu anderen, bereits entwickelten Verfahren gestellt, die Passwörter hauptsächlich nach angenommener Häufigkeit und bestimmter Form (z.B. 6 Zeichen gefolgt von einer Zahl) sortieren und durchprobieren und so die Effizienz der Rateversuche deutlich verbessern. (OMEN, Ordered Markiv ENumerator).

Die Ergebnisse sind weniger deutlich als ich angenommen hätte. Die aufgearbeiteten Datensätze waren 60.000 E-Mail-Adressen mit dazugehörigen Passwörtern, die LulzSec im Juni 2011 veröffentlichte. Für diesen Datensatz wurde als “persönliche Information” nur der Username-Part der Mail herangezogen. Außerdem wurde eine ebenfalls 2011 auf pastebin.com veröffentlichte Liste von Facebook-Profilen überprüft. Die gepostete Liste enthielt nur E-Mails und Passwörter. Weitere Daten wurden von den öffentlich verfügbaren Facebook-Profilen heruntergeladen.

Insgesamt lässt sich festhalten, dass über 80% der überprüfen Passwörter kaum Übereinstimmungen mit den öffentlich verfügbaren Informationen enthalten. Auf der anderen Seite allerdings stimmen c.a. 35% aller Passwörter des Facebook-Datensatzes in mindestens einem Trigramm mit irgendeiner öffentlich verfügbaren Information überein.

Bei 100 Millionen Rateversuchen konnten die Forscher unter Zuhilfenahme öffentlich verfügbarer Informationen die Anzahl der erratenen Passwörter um 5% steigern, bei 1 Milliarde Versuchen um 3%. Diese niedrige Anstieg ist Folge aus der schon im vorherigen Abschnitt genannten niedrigen Zahl an Passwörtern, die überhaupt persönliche Informationen enthalten. Schaut man sich nur Passwörter an, die tatsächlich persönliche Informationen enthalten verbessert sich die Anzahl der erratenen Passwörter um bis zu 30%.  Das Ergebnis ist wenig überraschend: Persönliche Informationen egal welcher Form sind schwächer und haben also nichts in einem Passwort verloren!

Insgesamt hätte ich eine deutliche Verbesserung erwartet. Allerdings ist das wohl bisher die erste wissenschaftliche Ausarbeitung mit dem Ziel persönliche Informationen zum Passwort-Cracken zu nutzen. Da kommen hoffentlich noch weitere interessante Studien, die dieses Modell verbessern. ;)

When Privacy meets Security: Leveraging personal information for password cracking

Apr 212013
 

Kennt ihr CipherCloud? Ich auch nicht, bis heute. Schaut euch am besten kurz das Video hier an, da wird erklärt was sie verkaufen wollen.

Dank einer DMCA-Takedown-Notice ist heute eine StackExchange-Diskussion populär geworden, in der es um die von CipherCloud eingesetzte Verschlüsselung geht. Es gibt keine Details was sie kryptographisch genau tun, deswegen wird in dem Thread viel über Bilder und PR-Videos rekonstruiert. Genau diese Bilder, 2 an der Zahl, sind Gegenstand der Takedown Notice.

Scheinbar verschlüsseln die jedes einzelne Wort was in die Cloud gepostet werden soll einzeln mit AES, allerdings mit gleichem Schlüssel, festem oder keinem Padding und Initialisierungsvektor. Das führt dazu, dass beispielsweise “new” (oder auch “New”) immer zum gleichen Ciphertext verschlüsselt wird und Wörter, die mit “new” beginnen, am Wortanfang ebenfalls mit diesem Ciphertext übereinstimmen:

  • enc(“new”) => aaAZH
  • enc(“New”) => aaAZH
  • enc(“newly”) => aaAZHjk

Der Gedanke dahinter ist wahrscheinlich, dass die Suche in den Daten trotzdem noch funktionieren soll. In diesem Fall macht das aber die komplette Krypto kaputt.  Über statistische Analysen könnte man problemlos oft benutzte Wörter und in einem nächsten Schritt damit unter Umständen den kompletten Inhalt zu rekonstruieren.

Positiv ist, dass durch die DMCA der Thread und das Problem weit in die Öffentlichkeit getragen wurde. Auf der anderen Seite stellt sich natürlich die Frage ob die genutzten Bilder nicht im Bereich des “Fair-Use” lagen und die Takedown Notice nur unliebsame Berichterstattung verhindern sollte.

Apr 162013
 

Wer im Keller ein Blockheizkraftwerk vom Typ “ecoPower 1.0″ von Vaillant stehen hat, sollte dieses so schnell wie Möglich vom Internet trennen, meldet heise und “bhkw-infothek.de“. Scheinbar wurden in diesen Modellen, die über das Internet erreibar und wartbar sind,  2 schwere Sicherheitslücken gefunden. Eine dieser Lücken erlaubt es über eine URL einfach alle Passwörter des Geräts (Nutzer, Techniker, Entwickler) im Klartext anzuzeigen.

Der Zugriff auf die Geräte findet wohl über ein Java-Applet statt. Der Nutzer besucht also eine Seite und der Browser lädt das Java-Applet von der Heizung. Der Zugriff darauf wird über die gerade genannten Passwörter geschützt. Neben der fehlenden Verschlüsselung der übertragenen Daten zwischen Client und Heizung ist das Java-Applet nur teilweise signiert. Außerdem ist die Signatur schon abgelaufen.

Also: Es gibt keine Verschlüsselung zwischen Client und Heizung, d.h. jeder kann die Passwörter zum Login mitlesen. Falls er das nicht kann, kann er Sie einfach über eine bestimmte URL direkt bei der Heizung abfragen. Achja um die wirklich alles falsch zu machen nutzen wir Java und machen die Signatur falsch.

Vaillant fährt jetzt wohl raus und installiert ne neue Firmware. Zudem wollen sie ihre Heizungen jetzt hinter ein VPN hängen. D.h. die Heizung wird an eine “VPN-Box” angeschlossen, die Box stellt eine Verbindung zu Vaillant her. Der Sprecher meint in dem verlinkten Video, dass ihre Recherchen zeigen, dass eine “hochsicherer Betrieb” nur mit dieser VPN-Box möglich ist.

Im übrigen würde mich nicht wundern, wenn die zweite Quelle “bhkw-infothek.de” von Vaillant gesponsort oder betrieben wird. Dort wird die Heizung als “hocheffizient” und die Reaktion von Vaillant als “vorbildlich” beschrieben. Vorbildlich wäre gewesen dieses Produkt vorher zu testen! Das sind so massive Schwachstellen, die hätten problemlos erkannt werden können.

Feb 242013
 

Ab Version 22 akzeptiert Firefox keine Cookies von Drittanbietern. Das ist eine gute Entscheidung. Die Regeln sollen wie bei Safari sein: Beim Besuch einer Webseite wird dieser erlaubt Cookies zu setzen – wie bisher. Versucht ein Drittanbieter beim Laden der Seite ein Cookie zu setzen, wird dieses nur erlaubt, wenn der Nutzer mit diesem geladenen Element interagiert hat. Konkret bedeutet das: Wenn ihr einen Facebook-Teilen-Button drückt, darf Facebook ein Cookie setzen. Sonst nicht.

Interessant wird die Reaktion von Google. Wir erinnern uns: Vor ziemlich genau einem Jahr hat das Wall Street Journal veröffentlicht, dass Google über einen Trick bei Safari doch Tracking-Cookies gesetzt hat. Dazu hat Google im Hintergrund ein unsichtbares Formular abgeschickt, was Safari dazu veranlasst eine “gewollte” Interaktion anzunehmen und deswegen Google das Setzen von Cookies erlaubte. Die FTC hat eine Rekordstrafe von 22.5 Millionen Dollar gegen Google verhängt. Was macht Google jetzt mit Chrome? Bietet Google seinen Chrome-Nutzern ein wenig Schutz vor ungewolltem Tracking oder erlaubt es weiterhin alle Cookies?

Feb 162013
 

Hacker konnten bei Facebook eindringen. Das sieht danach aus als hätten einige Entwickler das Java-Plugin in ihren Browsern installiert und wurden dann durch den Besuch einer infizierten Webseite selbst infiziert.

click-to-play in FirefoxWenn man Java nicht komplett deinstallieren kann, sollte man es zumindest die mitgelieferten Browser-Plugins entfernen. Das macht man im Firefox unter “Tools” => “AddOns” => “Plugins”. Es ist sehr empfehlenswert alle ungenutzten Plugins zu deaktivieren, also nicht nur Java. So gut wie alle Seiten funktionieren problemlos ohne Java. Bei Flash sieht das leider schon schlechter aus. Dafür hat Firefox seit Version 14 click-to-play eingeführt. Aktiviert man diese Option muss man gewünschte Flash-Inhalte (und alle anderen Inhalte, die über Plugins geladen werden) explizit anklicken. Entsprechend sollte man dann nicht alles wild anklicken.

Ich wiederhole es nochmal: Deaktiviert Java! Oracle musste in den letzten Monaten nicht nur einmal Notfallupdates herausbringen.

Facbook hat im übrigen keine Anzeichen gefunden, dass Userdaten kompromittiert wurden.

Feb 142013
 

Es gibt einen ersten erfolgreichen Cold-Boot-Angriff auf die Vollverschlüsselung, die seit Andoid 4.0 vorhanden ist. Cold-Boot-Angriffe sind im Prinzip schon länger gegen Rechner bekannt. Dabei wird der Arbeitsspeicher nach Ausschalten des Rechners ausgelesen und – mit etwas Glück – der Schlüssel erfolgreich extrahiert. Kühlt man den RAM vorher herunter, erhöht man seine Chancen. Diesen Angriff gibt es jetzt für Android, durchgeführt von Tilo Müller und Michael Spreitzenbarth von der Uni Erlangen. Tilo Müller war schon (mindestens) 2 mal auf dem Chaos Communication Congress mit thematisch ähnlichen Angriffen. (28c3, 29c3) Einen Angriff auf TRESOR, was als Cold-Boot-Gegenmaßnahme vorgestellt wurde, habe ich vor einiger Zeit schon erwähnt.

CC BY-NC-SA 3.0 DE, Tilo Müller, Michael Spreitzenbarth, Uni Erlangen https://www1.informatik.uni-erlangen.de/frost

Der Angriff auf die Android-Vollverschlüsselung erfordert einen freigeschaltenen Bootloader (den man mit den aktuellen Google-Geräten mittels “adb fastboot oem unlock” freischalten kann). Bei diesem Vorgang wird das komplette Device gelöscht. Aber selbst bei gesperrtem Bootloader kann man wichtige Informationen mittels Cold-Boot aus dem RAM extrahieren, beispielsweise Kontakte, Fotos oder andere sensible Daten.

Ein Video zum Cold-Boot-Angriff auf einen Laptop:

Feb 012013
 

Schonmal folgende Aussage getroffen: “Da sage ich eh nichts privates.” oder “Falls ich war privates klären will benutze ich doch kein $sozialesNetzwerk”? So oder so ähnlich versuchen Menschen ihre Kommunikationsinfrastruktur, die in diesen Fällen immer Facebook oder WhatsApp ist, zu verteidigen.

Die Menschen sammeln sich bei einem sozialen Netzwerk, verbringen dort mehrere Stunden ihres Tages. Der Haupteinsatzzweck dieses Netzwerks ist Kommunkation zwischen Freunden (im Sinne Facebooks) zu erleichtern. Es scheint also als ob sich diese Menschen (ich behaupte das ist ein Großteil der Nutzer) bewusst sind, dass privates bei Facebook trotz möglicher Datenschutzeinstellungen nicht privat ist. Daraus folgt doch, dass die Hauptkommunikationsinfrastruktur der Menschen völlig unnütz ist. Was bringt mir $sozialesNetzwerk wenn ich mit meinen nächsten Freuden (im klassischen Sinn) nicht mehr private Gespräche führen kann? Wie sinnvoll ist eine Kommunikationsplattform,  die den Schutz meiner privaten Gespräche nicht garantiert? Warum alle Freunde auf einer solchen Plattform sammeln, Zeit investieren um eine Kommunkationsinfrastruktur aufzubauen die man nicht in jeder Situation nutzen kann?

Die Menschen bauen sich Kommunkationsmöglichkeiten und am Ende müssen sie, um ein privates Gespräch zu führen, doch wieder zum Telefon greifen. Ist das nicht völlig paradox?

Einige Stellen dieses Beitrag sind natürlich stark verkürzt, aber ich bin hiermit schon bei dem 100-fachen der maximalen Twitteraufmerksamkeitsspanne. Hauptsache der Gedanke ist klar.

Jan 222013
 

Ihr habt irgendwo ne Webcam stehen? Baut das Ding ab! Das geht nicht? Wahrscheinlich geht das schon. Also macht es. Falls das wirklich nicht geht: Ist die Firmware aktuell und das Gerät anständig gesichert? Wenn nicht könntet ihr bei den Creepstreams landen. Über die Sicherheitslücke dahinter (in Trendnet Kameras) hatte ich schon am vor fast genau 1 Jahr berichetet.

creeperstreams

Dez 172012
 

Wer letztes Jahr aufmerksam den 28C3 verfolgt hat ist dabei mit Sicherheit über den Vortrag von Tilo Müller gestolpert, der dort TRESOR vorgestellt hat. Keine Ahnung ob das dort seine erste Präsentation zu dem Thema war, jedenfalls aber habe ich dort das erste Mal davon gehört.

Tresor ist ein ein Linux Kernel Patch, der vor allem Cold-Boot-Angriffe verhindern soll. Hintergrund ist folgender: Habt ihr ein vollverschlüsseltes System liegt der Schlüssel irgendwo im RAM. Das bedeutet für Cold-Boot-Angriffe, dass die Schlüssel auch wieder aus dem RAM ausgelesen werden können. Oft sogar nachdem der Rechner ausgeschalten wurde.

Ähnlich sieht das mit Angrifffen per DMA (Direct Memory Access) aus. Verschiedene Busse (z.B. FireWire) bieten direken Zugriff auf den physikalischen RAM, vorbei an der CPU. Toolkits wie Inception nuzten genau das aus und lassen einen Angreifer die Schlüssel direkt aus dem RAM extrahieren. Das System muss nur eingeschaltet sein. EIn Login ist auch nicht nötig.

Tresor verschiebt nun die Verschlüsselung und die Rundenschlüsselgenerierung für AES in die CPU. Einen guten Teil Arbeit machen die AES-NI-Befehle der neueren Intel Core-i Generation, weil sie direkt CPU-Befehle mitbringen, die pro CPU-Zyklus eine Runde AES verschlüsseln können. Die Verschlüsselung mit den AES-NI-Befehlen der Intel CPUs ist natürlich auch ohne Tresor möglich. Tresor legt jetzt aber den Schlüssel in Debug-Register ab und löscht diesen direkt danach aus dem RAM – der Schlüssel kann damit nicht mehr aus dem RAM gelesen werden werden.

Damit Angreifer keinen eigenen Code auf Ring 0, also mit Privilegen des Kernels, ausführen können schaltet Tresor /dev/kmem ab, modiziert ptrace und verbietet alle loadable kernel modules, die alle auf Ring 0 Code ausführen würden. Könnte ein Angreifer eigenen Code in den Kernel laden wäre es ein leichtes die Debug-Register und damit dem Schlüssel auszulesen.

Forscher der Northeastern University haben das Toolkit Inception erweitert und einen DMA-Angriff auf Tresor (und damit auch auf ähnlich arbeitende Systeme) vorgestellt, der es erlaubt den Schlüssel aus den CPU-Registern zu extrahieren. Der Angriff:

  1. Der Angreifer hat physikalischen Zugriff auf das System und dieses hat einen DMA-fähigen Bus. Konkret implementiert wurde der Angriff im Paper mit FireWire.
  2. Das Gerät holt sich den Inhalt des RAMs
  3. Im RAM-Dump werden die Paging Structures und die Interrupt Descriptor Table identiziert.
  4. Das angreifende Gerät bereitet einen Payload vor
  5. Der Payload wird auf das angegriffene System übertragen und im Ring 0-Kontext ausgeführt
  6. Das Gerät holt sich den Schlüssel aus dem RAM

Über DMA hat man Zugriff auf dem RAM. Nur wie führt man Code mit Ring 0-Privilegien auf der CPU aus? Eine offensichtliche Möglichkeit wäre einen Systemcall zu hooken, also die Stelle im RAM suchen, an der der die Funktion liegt, seinen Payload reinschreiben und dann warten bis der Systemcall durch ein Programm ausgerufen wird. In diesem Fall bräuchte man aber Wissen über das installierte Betriebssystem.

Um den Angriff unabhängig vom Betriebssystem zu machen hooken die Forscher eine Interrupt Service Routine, die dann ihren Payload  ausführt.  Dazu suchen die Forscher die Interrupt Descriptor Table (IDT) im Memorydump und schreiben das Ziel des Interrupts so um, dass der Payload ausgeführt wird. Der Payload extrahiert dann den Schlüssel aus den Registern und kopiert ihn an eine vorher festgelegte Stelle im RAM. Die kann dann vom angreifenden Gerät über DMA ausgelesen werden.

Das Identifizieren der Paging Structures und Interrupt Descriptor Tables basiert auf Heuristiken (warum das so ist und was da passiert lest ihr am besten im Paper nach) . Die Forscher legen dazu einige Eigenschaften fest und suchen im Memorydump dann nach diesen Eigenschaften. Das ist natürlich eine Fehlerquelle, in der Praxis funktioniert das aber:

As a result, while it is certainly possible to falsely identify an IDT or kernel paging structure, we conclude that our heuristics are effective in practice.
Auch zeitlich liegt der Angriff innerhalb von Minuten und damit im praktischen Rahmen und ist sogar Betreibssystemunabhängig. Gegen Cold-Boot-Angriffe schützt Tresor aber  immernoch.
Nov 032012
 

Ein Bericht über den Einbruch bei DigiNotar wurde veröffentlicht. Der Angreifer hat wohl zuerst die Webserver über eine bekannte Lücke in “DotNetNuke” angegriffen. Diese Webserver waren dann seine Austauschplattform für Tools und so. Im nächsten Schritt hat er dann einen Datenbankserver in einem anderen Netzwerkabschnitt eingenommen. Die Zugangsdaten für den MSSQL-User standen wohl auf zumindest einem der Webserver. Ob der schon vorher Admin-Rechte auf dem DB-Server hatte oder ob der Angreifer sich diese zunächst verschaffen musste ist unklar. Jedenfalls hatte der User MSSQLuser Adminrechte. Im letzten Schritt waren dann die 8 CA-Server fällig. Der Angreifer hatte am Ende einen Tunnel in die eigentlich vom Internet getrennten Bereiche mit CA-Servern und netHSM.

Heise schreibt zwar, dass der Einbruch “weitgehend aufgeklärt” ist – ich finde aber dass einige interessante Teile eben noch nicht klar sind. Zum Beispiel: Die privaten Schlüssel wurden auf netHSM gespeichert. Das sind Hardwaremodule die eben z.B. Zertifikate signieren können und besonders sicher sein sollen. Diese netHSM müssen eigentlich mit Smartcard und PIN freigeschalten werden – solange das nicht passiert sind die privaten Schlüssel verschlüsselt auf dem netHSM gespeichert. Ein Angreifer kann damit nichts anfangen. Der Bericht spricht von einen Prozess, der Certificate Revocation Lists automatisch erzeugt hat. Es könnte also sein, dass die netHSM und die privaten Schlüssel einfach nie deaktiviert wurden.

A Certificate Revocation List (CRL) generation process was identified for many Certificate Authorities on several CA servers. The identification of the regular automatic generation of CRLs showed that private keys in the netHSM for a number of Certificate Authorities were active and potentially provided an opportunity for the intruder to abuse these private keys.

In zumindest einem Fall (einem CA-Server) aber soll die Smartcard über den gesamten Zeitraum im Tresor gewesen sein:

No records could be provided by DigiNotar if and when smartcards had been used to activate private keys in the netHSM, except that the smartcard for the CCV Certificate Authority had reportedly been in a vault for the entire period of the intrusion.

Mit dem privaten Schlüssel dieser CA wurden aber auch Zertifikate unterschrieben. Wie hat er das gemacht? Es könnte natürlich sein, dass mit einer Smartcard mehrere private Schlüssel entschlüsselt werden können. Das sollte meinem Verständnis nach auf garkeinen Fall passieren. Logfiles von den netHSM gibt es übrigens nicht.

DigiNotar used nCipher netHSM 500s. The systems have limited logging facilities. It is recommended by the vendor to store the logs on a separate log server, but this was not done at DigiNotar. The logs were stored on the netHSM for a short period of time and were deleted every time the system was turned off. This had already occurred when the investigation was started by Fox-IT.  No useful log files could be retrieved.

Die Logs von den CA-Servern wurden alle lokal auf den Servern vorgehalten. Das ist natürlich ein Unsicherheitsfaktor, weil man sich nicht sicher sein kann was manipuliert wurde und was nicht.