Welche Informationen die Firmenwebsite bereit hält und ob man sie einem Betreiber, und vielleicht auch einem Entwickler zuordnen kann, ist Inhalt dieses Artikels. Abseits der Informationen, die eine Organisation offensichtlich publiziert sind noch weitere Informationen verfügbar. Dazu werden Metainformationen, die relevanten Merkmale einer Website, extrahiert und daraus kann ein vermutlich eindeutiges Profil erzeugt werden. Dieses Profil kann mit anderen Seiten verglichen werden – daraus lassen sich auch mögliche Zuordnungen ableiten.
Motivation und Anlass
Aus der Fragestellung, ob andere auch so arbeiten ist die Idee zum Profiling von Webseiten entstanden. Als ich wieder einmal eine neue Website erstellt habe. Dazu habe ich von verschiedenen Projekten und Umgebungen Dateien und Einstellungen kopiert. Getreu dem Motto, think once, use many, verwende ich zahlreiche „Dinge“ immer wieder.
Allgemein ist die Verwendung von Code-Schnipsel üblich, so dass sogar Sicherheitslücken kopiert werden. Das betrifft fremden, wiederverwendeten Code, wie auch den eigenen. Auf Github ist das aktuell ein Thema und Repositories werden auch danach untersucht.
Aus der Fragestellung habe ich nun die These aufgestellt, dass Webseiten durch frei verfügbare Informationen einem Entwickler zugeordnet werden können. Also wer hat es wirklich gemacht.
Daraus habe ich die Theorie entwickelt, dass verschiedene Websites durch die Erstellung eines technischen „Fingerabdrucks“ ein und demselben Entwickler zugeordnet werden können. Diese vage Annahme ist nur eine Annahme und in keiner Weise verbindlich und eindeutig. Aber die Richtung stimmt zumindest.
Analyse der Websites
Im ersten Schritt wird die Website untersucht. 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 Verzeichnisse von Unterseiten nach dem Zufallsprinzip generieren, eine große Herausforderung dar, da diese eingegrenzt werden müssen, um nicht die eigentliche sinngebende Information zu verwässern. Wichtig ist, dass auch dynamisch nachgeladene Inhalte per AJAX mit beachtet werden (können) 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. Extrahieren als eine Art der Verdichtung von Information, um Muster, Informationsgehalt und Klassifizierung zu erkennen.
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.
Aus meiner Erfahrung sind es vor allem adaptierte Fehlermeldungen – angepasstes Verhalten bei Fehlermeldungen, wie eigene 404 Seite zum Beispiel- und HTTP Header, die gerne mitgenommen, kopiert werden, zwischen verschiedenen Mandanten und Servern.
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, mit welchen Kompressionsalgorithmen sie gespeichert wurden und mit welcher Kompressionsstufe sie komprimiert wurden. Vielleicht sind noch Meta-Daten des verwendeten Programms vorhanden oder irgendwelche Standardgrafiken, oder Verzeichnisse mit Inhalten 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, grobe, Idee. Eine empirische Studie, ob und wie groß die Wahrscheinlichkeit einer Deanonymisierung ist, gibt es (noch) nicht. Grundsätzlich ist dies davon abhängig, wie viele eindeutige Merkmale nicht nur existieren sondern ob man diese auch erkennen und erfassen kann. Auch 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. (Anm.: Es ist möglich bei wordpress.com eigenen Code zu verwenden, dazu ist aber ein bestimmtes Kundenkonto – ab Premium – Voraussetzung.)
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.