Die Idee zum Website Profiling kam mir, als ich eine neue Website erstellt habe und von verschiedenen anderen älteren Projekten Dateien und Einstellungen kopiert habe. Immer wieder gibt es Methoden bzw. Quellcode, die sich als nützlich erwiesen haben und daher immer wieder einsetzt werden. Zum Beispiel habe ich ein eigenes PHP-Script zum Komprimieren von JavaScript-Dateien erstellt. Dieses Script setzte ich in all meinen Web-Projekten ein. Würden nun alle Websites untersucht werden, ob dieses spezielle Script zur Komprimierung eingesetzt wird, könnten all Websites, die ich entwickelt habe, mir zugeordnet werden.
Allgemein ist die Verwendung von Code-Schnipsel sehr verbreitet, so dass sogar Sicherheitslücken kopiert werden. Ein Team von Wissenschaftlern hat auf Github, einer Plattform für die Verwaltung von Quellcodes, Sicherheitslücken in Projekten gesucht und die Verbreitung analysiert. Zum Beispiel fanden sie den Code eins fehlerhaften Tutorials in 117 anderen Projekten wieder. [1] Natürlich wird selbstentwickelter oder bereits getesteter Code noch häufiger von Entwicklern erneut eingesetzt, da dies noch einfacher ist.
Daraus habe ich die Theorie entwickelt, dass verschiedene Websites durch die Erstellung eines technischen „Fingerabdrucks“ ein und demselben Entwickler zugeordnet werden können. Würde diese Methode funktionieren, könnten Ermittler bei der Analyse von Websites im Darknet neue Ansatzpunkte erhalten.
Analyse der Websites
Im ersten Schritt muss die Website untersucht werden. Hier gilt es, zu entscheiden, ob exemplarisch nur eine Seite untersucht wird – z.B. die Startseite – oder möglichst alle Unterseiten. Hier stellen vor allem dynamische Websites, die ganze Unterseiten nach dem Zufallsprinzip generieren, eine große Herausforderung dar, da diese eingegrenzt werden müssen. Wichtig ist, dass auch dynamisch nachgeladene Inhalte per AJAX mit beachtet werden und alle Kommunikationsmöglichkeiten, wie z.B. per Web-Sockets, müssen mit in die Analyse einfließen. Aus den erfassten Daten werden anschließend die Merkmale extrahiert.
Technische Merkmale
Zu den technischen Merkmalen gehört dazu, mit welchen Programmiersprachen die Website erstellt wurde und ob sie auf einem bekannten System (Typo3, WordPress, …) basiert. Außerdem ist relevant, ob das Design selbst erstellt wurde oder ein fertiges Theme verwendet wird. Bei einem Theme ist zum Beispiel interessant, von welchem Anbieter es kommt und ob eine potentiell identifizierte Seite auch ein Theme vom gleichen Anbieter verwendet. Die Kombination aus verwendeten Plugins kann auch eine wichtige Rolle spielen, da Entwickler wahrscheinlich auf eine gewisse Anzahl bereits verwendeter Plugins immer wieder zurückgreifen. Zusätzlich können noch die Fehlerseiten untersucht und allgemein geprüft werden, ob Filterungen im Einsatz sind.
Weiter kann noch untersucht werden, ob Konfigurationen des Webservers gleich vorgenommen und ob zum Beispiel bestimmte HTTP-Header gesetzt wurden.
Inhaltliche Merkmale
Neben den technischen Merkmalen spielen auch die inhaltlichen Merkmale eine relevante Rolle. Hier kann zum Beispiel untersucht werden, wie das URL-Schema aufgebaut ist und ob die Titel der einzelnen Seiten einem bestimmten Schema folgen.
Auch Abbildungen können relevante Informationen enthalten: dargestellte Inhalte, ob sie von freien Datenbanken stammen und die Details der Verarbeitung, also welche Auflösungen sie besitzen und mit welchen Kompressionsalgorithmen sie gespeichert wurden. Vielleicht sind noch Meta-Daten des verwendeten Programms vorhanden oder irgendwelche Standardgrafiken können aufgespürt werden.
Erstellung des Profils
Die gesammelten Merkmale können anschließend mit Hilfe einer Metrik in ein individuelles Profil überführt werden – als digitaler Fingerabdruck der Website. Entweder werden direkt zwei Websites miteinander verglichen, um einen Verdacht zu bestätigen, oder es wird ein Abgleich mit gespeicherten Profilen in einer Datenbank vorgenommen.
Grenzen des Website Profiling
Bisher ist die hier beschriebene Technik nur eine erste Idee und es muss noch evaluiert werden, wie groß die Wahrscheinlichkeit einer Deanonymisierung ist. Grundsätzlich ist dies davon abhängig, wie viele eindeutige Merkmale existieren und ob weitere Websites für einen Vergleich überhaupt verwendbar sind. Zum Beispiel wird es bei einem Blog, der von wordpress.com gehostet wird, so gut wie keine individuellen Merkmale in der Programmierung geben.
Gleichzeitig kann natürlich nur eine Website einer anderen zugeordnet werden. Damit ist noch keine Identifizierung einer spezifischen Person möglich. Ein Besitzer kann nicht enttarnt werden, sondern nur der Ersteller bzw. Programmierer einer Website. Es ist also somit keine Möglichkeit zur Enttarnung eines Betreibers, sondern liefert nur weitere Indizien, die vielleicht am Ende zu einer relevanten Person führen könnten.
Ein weiterer Punkt ist die notwendige Technik zum Umsetzen eines Website Profiling Systems. Natürlich kann auf verschiedene Bibliotheken und Anwendungen zurückgegriffen werden, aber die Schnittstellen zwischen den vorhandenen Lösungen müssten entwickelt werden und auch neue Teile müssten wahrscheinlich implementiert werden. Ist das Ziel, eine Website mit Einträgen aus einem Archiv zu vergleichen, erfordert dies eine deutlich größere Infrastruktur. Genauso müsste der Umgang mit Gegenmaßnahmen, also das gezielte Stören einer Untersuchung, noch weiter analysiert werden.
Zusammenfassung
Mit der Idee des Website Profiling könnte eine Technik entwickelt werden, um vermeintlich anonyme Websites einem Betreiber bzw. Entwickler zuzuordnen. Dazu werden alle Merkmale einer Website extrahiert und somit ein eindeutiges Profil erzeugt. Dieses Profil kann daraufhin mit anderen Seiten verglichen werden und so eine Zuordnung erfolgen. Allerdings funktioniert dieser Ansatz nicht bei allen Websites und führt letztendlich zu einer weiteren Spur, die manuell untersucht werden muss.
Diese Idee möchte ich in Zukunft mit Abschlussarbeiten und Projekten weiter untersuchen, ob sie auch in der Praxis angewendet werden können.
Artikelserie „Deanonymisierung“
Dieser Artikel ist Teil meiner Artikelserie „Deanonymisierung“, die ich als Vorbereitung auf meinen Vortrag auf der Konferenz „Internet Security Days 2017“ begonnen habe. Die Artikelserie umfasst folgende Beiträge:
[1] Leveraging Flawed Tutorials for Seeding Large-Scale Web Vulnerability Discovery, Tommi Unruh, Bhargava Shastry, Malte Skoruppa, Federico Maggi, Konrad Rieck, Jean-Pierre Seifert, and Fabian Yamaguchi, 10.04.2017, https://arxiv.org/pdf/1704.02786.pdf
Diese Deanonymisierung wird wegen der neuen DSGVO Regeln bestimmt noch hilfreichrer.