Netidee Blog Bild
Die ersten Quellen werden angezapft
Extraktion von Tweets und Facebook-Posts (05.01.2018)
Förderjahr 2017 / Stipendien Call #12 / ProjektID: 2180 / Projekt: Automatisierte Generierung von personenbezogenen Passwortlisten

Nachdem die ersten Kapitel der Theorie abgeschlossen waren, musste als Belohnung etwas Praxis her. In diesem Blogpost geht es um die Module, die bereits Tweets und Postings von Twitter und Facebook extrahieren.

Die kleinste Einheit des Tools, das letztendlich automatisiert nach Informationen über eine Person suchen und daraus Passwortlisten erstellen soll, bildet ein Modul. Ein Modul stellt eine Quelle dar, aus der personenbezogene Daten extrahiert werden können. Da jede Quelle anders aufgebaut ist, muss für das dazu passende Modul immer individuell die Durchführbarkeit überprüft und ein Script angefertigt werden.

Nach einer kurzen Planungsphase konnte ich mich bereits in die ersten Scripts stürzen und ich wählte für den Einstieg die Quelle Twitter.

Twitter

Der Kurznachrichtendienst Twitter bietet eine Programmierschnittstelle (kurz API) an, über die Tweets von einer Userin oder von einem User ausgelesen werden können. Im ersten Moment war die Freude groß, bis ich ernüchtert feststellen musste, dass die kostenlose Version der API nur Tweets der letzten 7 Tage herausrückt. Für größere Zeiträume gibt es eine “Enterpriseversion”, deren Preis jedoch nur auf Anfrage an Firmen verraten wird und für mich nicht in Frage kommt.

Es musste also ein anderer Weg her und ich fand diesen mit Selenium und einer simulierten manuellen Extraktion. Dabei wird ein Browser simuliert, der den Feed der Zielperson öffnet und regelmäßig nach unten scrollt, bis alle Tweets geladen wurden. Dies hat den Nachteil, dass für das Scrollen Pausen eingeplant werden müssen und dadurch nur etwa 380 Tweets pro Minute extrahiert werden können. Für durchschnittliche Nutzerinnern und Nutzer von Twitter sollte dies jedoch zu keinen all zu großen Verzögerungen führen.

Facebook

Bei Facebook unterscheiden sich die öffentlichen Profile von Firmen oder berühmten Personen stark im internen Aufbau der Seite von privaten Profilen. Im ersten Schritt wurden nur öffentliche Profile betrachtet. Die Erweiterung auf private Profile sollte aber keine groben Anpassungen benötigen, weshalb mit einer Fertigstellung des Moduls in den kommenden Tagen zu rechnen ist.

Mein Scraper für Facebook nutzt die bereitgestellte Programmierschnittstelle “Graph API” und arbeitet dadurch merklich schneller als das Twittermodul. Die API gibt jedoch auch nur 100 Posts pro Anfrage aus, weshalb auch hier etwas getrickst werden musste, indem der Zeitraum dynamisch so lange angepasst wird, bis alle Posts extrahiert wurden.

Frontend

Für eine einfache Interaktion mit den Scripts wurde außerdem bereits ein einfaches Frontend mit dem Python-Framework Flask erstellt. Darüber kann der Scrapingprozess einfach gestartet werden und in Zukunft sind hier auch weitere Einstellungen zu finden.

 

In den nächsten Wochen werden die bestehenden Module verfeinert und ein bis zwei Quellen hinzugefügt, bevor mit der Weiterverarbeitung der Posts begonnen werden kann. Mehr dazu im Februar! Bis bald :)

Tags:

Social Media Facebook Twitter Passwörter Brute-Forcing Forensik Security python
CAPTCHA
Diese Frage dient der Überprüfung, ob Sie ein menschlicher Besucher sind und um automatisierten SPAM zu verhindern.
    Datenschutzinformation
    Der datenschutzrechtliche Verantwortliche (Internet Privatstiftung Austria - Internet Foundation Austria, Österreich) würde gerne mit folgenden Diensten Ihre personenbezogenen Daten verarbeiten. Zur Personalisierung können Technologien wie Cookies, LocalStorage usw. verwendet werden. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, können Sie Ihre Einwilligung jederzeit via unserer Datenschutzerklärung anpassen oder widerrufen.