qTox - Forensische Analyse

10 Minuten
qTox - Forensische Analyse

Tox ist ein freies Peer-to-Peer-Instant-Messaging- und Videotelefonie-Netzwerkprotokoll, das verschlüsselten Datenaustausch ermöglicht. Aufgrund der mitunter brisanten Inhalte, die über diesen Messenger verbreitet werden ist eine forensische Aufarbeitung des Messengers interessant. Im Folgenden lege ich die Möglichkeiten der forensischen Analyse des verbreiteten qTox-Clients dar.

qTox ist für Windows, OS X, FreeBSD und Linux verfügbar. Die folgenden Erkenntnisse beziehen sich auf die Windows-Version v1.16.3.

Sicherstellung

Die Programm- und User-Dateien können in einem Festplatten-Abbild oder in einem Live-System an folgenden Orten sichergestellt werden:

  • Windows: %APPDATA%\Roaming\tox\     
    (Beachte: der alternative Client uTox legt das Verzeichnis als „Tox“ mit „T“ als Großbuchstabe an)
  •  Linux: $HOME/.config/tox/

Darin enthalten sind standardmäßig folgende Dateien:

  • [username].db
  • [username].ini
  • [username].tox
  • qtox.ini
  • qtox.log
  • /avatars/

Forensische Analyse

Die Datei [username].db ist eine SQLite-Datenbank die (bei Verwendung eines Tox-Client Passwortes) verschlüsselt ist. Die Datei hat denselben Namen, wie der jeweils verwendete Benutzername und enthält die eigentlichen Chat-Nachrichten. Sie ist SQLCipher verschlüsselt und kann bei bekanntem Passwort entschlüsselt werden, z.B. indem sie in das o.g. Programm-Verzeichnis einer anderen Instanz von qTox verschoben wird. Dies muss auf einer virtuellen Maschine oder auf einem Rechner passieren, der nicht mit dem Internet verbunden ist! In den qTox Einstellungen kann das Passwort entfernt werden, die Datenbank ist dann unverschlüsselt. Diese Vorgehensweise hat den Vorteil, dass die Datenbank im Anschluss in einem SQLite-Viewer vollständig analysiert werden kann. Einzelne Konversationen können zwar per Rechtsklick über die Benutzeroberfläche von qTox exportiert werden, allerdings nur auszugsweise.

Metadaten

Die Dateien [username].ini und [username].tox enthalten vermutlich gesonderte Einstellungen und diverse andere Daten des Benutzers.

qtox.ini enthält Informationen über für das Programm gesetzte Einstellungen wie:

currentProfile

Zuletzt verwendeter Benutzername

translation

Sprache der Benutzeroberfläche

globalAutoAcceptDir

Standard-Ordner für Dateiempfang

qtox.log enthält ua. Informationen darüber welcher Benutzer wann wie agiert hat. Beispielsweise weisen folgende Zeilen auf gesendete Dateien hin:

  • [10:47:21.720 UTC] core/corefile.cpp:132 : Debug: "sendFile: Created file sender 1 with friend 0"
  • [10:48:42.333 UTC] core/corefile.cpp:367 : Debug: onFileControlCallback: Received resume for file  0 : 1

Auch passive Aktivitäten finden sich hier, folgende Zeilen weisen z.B. auf empfangene Dateien hin:

  • [10:50:01.489 UTC] core/corefile.cpp:331 : Debug: "filename already clean"
  • [10:50:01.489 UTC] core/corefile.cpp:333 : Debug: "Received file request 0:131072 kind 0"

Das Unterverzeichnis /avatars/ beinhaltet Avatare von jenen Benutzern mit denen kommuniziert wurde. Die Bilddateien sind nach den Tox-IDs der jeweiligen Benutzer benannt und können somit den jeweils kontaktierten Benutzern zugeordnet werden. 

Medien-Dateien

Medien-Dateien werden standardmäßig im Ordner C:\Users\%USERNAME%\ (Windows)  abgespeichert. Folgende Voraussetzungen gelten für die Dateiübertragung:

  • Für die tatsächliche Dateiübertragung müssen beide Benutzer gleichzeitig online sein.
  • Der Empfänger der Datei muss dem Dateiempfang explizit zustimmen. Der Empfänger sieht den Dateiinhalt (Bildvorschau) nicht bevor die Datei komplett übertragen wurde. Allerdings sind der Dateiname und die Dateigröße zu sehen.
  • Der Versender der Datei sieht, dass der Empfänger die Datei angenommen hat, nachdem die Datei vollständig übertragen wurde.
  • Versendete Dateien werden beim Absender nicht gesondert abgespeichert.
  • Der Empfänger wird immer gefragt an welchem Speicherort eine empfangene Datei gespeichert werden soll.
  • Es gibt keine Hinweise auf die genauen Speicherorte oder Namen von Medien-Dateien in den Logs oder den Benutzer-Dateien (Datenbanken).
  • Wird qTox nach der Übertragung einer Datei (Sendung oder Empfang) neu gestartet, gibt es in der Benutzeroberfläche keine Hinweise mehr auf die vorangegangene Dateiübertragung. Lediglich die Datei qtox.log gibt Hinweise auf Zeitpunkte von Versand und Empfang unbestimmter Dateien.

Zusammenfassung

Zahlreiche Metadaten können ohne weiteres aus einer qTox-Installation gewonnen werden. Für den Zugriff auf die tatsächlichen Konversationen ist das Benutzer-Passwort notwendig, sofern eines für das betreffende Konto gesetzt wurde. Die entschlüsselte Datenbank kann schließlich in handelsüblichen SQLite-Viewern analysiert werden. Der tatsächliche Versand oder Empfang von Medien-Dateien ist schwierig nachzuweisen, da qTox antiforensische Maßnahmen trifft. Auch hier schafft eine Metadaten-Analyse eine gewisse Beweislage.

Der vorliegende Artikel versteht sich als unverbindlich und hat rein informativen Charakter. Er kann eine Begutachtung, die auf eine bestimmte und explizite Situation bezogen ist, niemals ersetzen.