myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Talk > News
Seite neu laden

[Software] Dropbox-Client entschlüsselt

Willkommen

myGully

Links

Forum

 
 
 
Themen-Optionen Ansicht
Prev Vorheriger Beitrag   Nächster Beitrag Next
Ungelesen 29.08.13, 14:52   #1
spartan-b292
Echter Freak
 
Benutzerbild von spartan-b292
 
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.856
Bedankt: 1.701
spartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punkte
Standard Dropbox-Client entschlüsselt

Zitat:
Sicherheitsforscher haben den in Python geschriebenen Dropbox-Client entschlüsselt und ihre Ergebnisse veröffentlicht. Damit offenbaren sie potentielle Sicherheitslücken - auch für andere Software.

Den Sicherheitsexperten Dhiru Kholia und Przemyslaw Wegrzyn ist es gelungen, den verschlüsselten Python-Code des Dropbox-Clients zu entschlüsseln und zu analysieren. Dabei entdeckten sie auch, wie die zweifache Authentifizierung des Filehosters zu umgehen ist und wie fremde Dropbox-Konten übernommen werden können, sofern ein Angreifer die entsprechenden Zugangsdaten von einem Rechner erbeuten kann. Das ist allerdings ziemlich aufwendig.

Die beiden Forscher erwähnen aber auch, dass mit jeder neuen Version des Dropbox-Clients die Sicherheit erhöht wird. Bisherige Schwachstellen seien schnell beseitigt worden, nachdem die beiden Forscher das Unternehmen darauf aufmerksam gemacht hätten. Dropbox hatte in der Vergangenheit mehrfach mit Schwachstellen zu kämpfen.

Datenbank entschlüsselt

Die beiden Forscher untersuchten die Authentifizierung, die über die sogenannte host_id und die host_int erfolgt. Bis Version 1.2.48 wurde host_id unverschlüsselt in der als Datei abgelegten SQLite-Datenbank Config.db gespeichert. Dieser Wert wird einmalig bei der Installation generiert und wird auch später dann nicht geändert, etwa wenn das Passwort neu gesetzt wird.

Seit Version 1.2.48 wird die Datenbankdatei verschlüsselt. Die für die Verschlüsselung verwendeten "Secrets" lägen aber den Installationsdateien bei. Ohne diese würde der Dropbox-Client nicht funktionieren. Die Datei Keystore_linux.py in der Linux-Version des Dropbox-Clients enthält die entsprechenden Befehle für die Verschlüsselung. Dort lässt sich die Datei Config.dbx, die die host_id enthält, mit der Anwendung Dbx-keygen-linux auslesen.

Sicherer unter Windows

Unter Windows wird die SQLite-Datenbank mit der Windows-eigenen Verschlüsselungsschnittstelle Data Protection API (DPAPI) verschlüsselt. Daher mussten die Forscher einen anderen Weg suchen, um dessen Wert zu ermitteln. Im Debug-Modus schreibt der Dropbox-Client Logfiles im Klartext. Dort wird auch die host_id eingetragen. Der Debug-Modus war in älteren Dropbox-Versionen nur durch eine partielle Md5-Summe geschützt. Seit Version 2.0 wird der vollständige SHA-265-Hash benötigt.

Um an die host_id unter Windows zu kommen, haben die Hacker versucht, eine Man-in-the-Middle-Attacke auf den verschlüsselten Datenverkehr zwischen Client und Server zu fahren. Dabei fanden sie heraus, dass herkömmliche Hackerwerkzeuge nicht in der Lage sind, die SSL-Verbindung abzuhören. Die SSL-Zertifikate sind hart kodiert und die verwendete SSL-Bibliothek ist mit der ausführbaren Binärdatei statisch verlinkt. Daher ist das Patchen der Datei zwar möglich, aber äußerst zeitaufwendig.

Code-Injection per Monkey Patching

Die beiden Forscher haben stattdessen per Monkey Patching die entsprechenden SSL-Objekte verändert. Dabei nutzen sie Reflective DLL Injection unter Windows und LD-PRELOAD unter Linux, um Zugriff auf die relevanten Objekte im Speicher zu erhalten. Danach konnten sie die versendeten Daten einsehen, bevor und nachdem sie verschlüsselt wurden. Diese Technik lässt sich allerdings nicht nur mit dem Python-Code des Dropbox-Clients anwenden, sondern auch mit weiteren dynamischen Skriptsprachen wie Ruby, Perl oder Javas*****.

Die zusätzlich benötigte host_int wird beim Start des Dropbox-Clients vom Server übermittelt und ändert sich dann nicht mehr. Sie lässt sich beispielsweise durch eine Anfrage mit der host_id beim Dropbox-Server ermitteln. Hat ein Angreifer beide Werte, kann er jederzeit auf die Dropbox-Daten eines Opfers zugreifen, etwa indem er einen Weblink generiert.

Diese zweifache Authentifizierung werde nur für den Zugriff auf die Dropbox-Webseite benötigt, schreiben die Forscher. Der Dropbox-Client selbst verwendet sie nicht. Damit werde impliziert, dass weiterhin nur der Wert der host_id benötigt wird, um an die Daten eine Opfers zu gelangen.

Bytecode wird Open Source

Um den Dropbox-Client zu analysieren, mussten die beiden Forscher zunächst dessen Python-Bytecode entschlüsseln. Statt jedoch die von Dropbox verwendete Verschlüsselungstechnik zu knacken, extrahierten sie kurzerhand die dafür verantwortliche und von Dropbox angepasste Python27.dll mit Hilfe des PE-Explorers. Zunächst ermittelten sie, wie Dropbox mit Magic Numbers umgeht, und nutzten dann die angepasste Funktion r_object, um mit Hilfe der extrahierten DLL-Datei den Code per Dump zu speichern.

Allerdings funktioniert dieser Hack nicht unter Linux und ist auch unter Windows nur sehr mühsam, also suchten die beiden Hacker nach einem anderen Weg. Sie entdeckten, dass die Python-C-API-Funktion PyRun_SimpleString funktioniert. Damit konnten sie beliebigen Code im Kontext des Dropbox-Clients ausführen, unter anderem die Funktion PyMarshal_ReadLastObjectFromFile(), mit der die Hacker bereits entschlüsselte Code-Objekte in den Speicher laden konnten. Von dort aus deserialisierten sie den Code mit Hilfe von PyPys _marshal.py. Mit dieser Technik lassen sich ähnlich programmierte Clients wie der für Google Drive ebenfalls entschlüsseln und analysieren.

Dropbox dekompiliert

Dropbox verwendet aber weitere Techniken, um den Python-Code vor Reverse-Engineering zu schützen, etwa Opcode-Remapping. Dazu verwendeten Kholia und Wegrzyn eine Mapping-Tabelle, die zuvor unter anderem mit Hilfe des Debuggers Pyretic erstellt wurde. Die Tabelle habe sich seit Version 1.6.0 des Clients nicht verändert, schreiben die Forscher. Schließlich konnten sie den erbeuteten Python-Bytecode mit dem Decompiler Uncompyle2 in den ursprünglichen Quellcode zurückverwandeln.

Künftig wollen Kholia und Wegrzyn versuchen einen Open-Source-Client für Dropbox zu entwickeln. Zunächst möchten sie herausfinden, ob er sich aus den von ihnen zurückverwandelte Quellcode zusammenbauen lässt. Außerdem wollen sie noch weiteren Schwachstellen im Dropbox-Client suchen.

Dropbox bedankt sich

Ein PDF beschreibt die Ergebnisse ihrer Forschung im Detail. Außerdem haben die beiden Forscher die Folien ihrer Präsentation auf der Konferenz Woot 2013 online gestellt. Ein Video von der Präsentation gibt es ebenfalls.

Auf Anfrage von Golem.de teilte Dropbox mit, dass die Ergebnisse der beiden Forscher keine relevanten Sicherheitslücken im Dropbox-Client offenbart hätten. In dem geschilderten Fall müssten Angreifer sich Zugang zum Rechner eines Opfers verschaffen. Damit wären dann nicht nur dessen Dateien in der Dropbox kompromittiert, sondern sämtliche Daten auf dessen Rechner. Dropbox sei aber dankbar für alle Beiträge, die dazu dienen, Dropbox sicher zu machen.
Quelle: [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
spartan-b292 ist offline   Mit Zitat antworten
 


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.


Sitemap

().