In diesem Abschnitt werden die wichtigsten Begriffe vorgestellt und kurz erläutert, die die Grundlage dieses Kurses bilden. Das Verständnis dieser Begriffe ist wichtig, da sie in den Modulen, Abschnitten und Übungen immer wieder vorkommen. Lesen Sie sie sorgfältig durch, damit Sie den Stoff klar und sicher verstehen können.
Dieser Abschnitt umfasst die folgenden Themen:
- Normale Websites und normale Browser
- Tor-Website und Tor-Browser
- I2P-Website und I2P-Browser
- LLMs und KI
- Web-Scraping
- Headless-Browser
- Proxys
- Programmierkonzepte
- Ratenbegrenzung
- Captcha
- Kontosperrung
- Docker
- IDE (VSCode)
- Linux
- Browser-Erweiterung
- Datenbanken
- APIs
Normale Websites und normale Browser
Eine normale Website ist eine Website, die über das Internet öffentlich zugänglich ist, ohne dass spezielle Software oder Netzwerkkonfigurationen erforderlich sind. Beispiele hierfür sind google.com, wikipedia.org und Nachrichten-Websites. Diese Websites werden im Clearnet gehostet, dem Teil des Internets, der von Suchmaschinen indexiert wird. Zum Besuch dieser Websites werden normale Browser wie Chrome, Firefox, Edge und Safari verwendet. Sie unterstützen moderne Webstandards (HTML, CSS, JavaScript) und bieten grafische Oberflächen zum Surfen. Für den Zugriff auf normale Websites ist keine spezielle Einrichtung erforderlich, sodass sie für die meisten Menschen die primäre Möglichkeit darstellen, mit dem Internet zu interagieren.
Tor-Website & Tor-Browser
Eine Tor-Website ist eine Website, die innerhalb des Tor-Netzwerks gehostet wird und in der Regel durch eine .onion-Domain gekennzeichnet ist. Diese Websites sind mit normalen Browsern nicht zugänglich. Sie benötigen den Tor-Browser, der Ihre Verbindung über mehrere verschlüsselte Knoten leitet, um Ihre Identität und Ihren Standort zu verbergen. Tor-Seiten werden oft als Teil des „Dark Web“ bezeichnet, da sie vor Suchmaschinen verborgen sind und einen speziellen Zugang erfordern. Viele Tor-Seiten legen Wert auf Datenschutz, während andere illegale oder kontroverse Inhalte hosten. Tor wird sowohl von legitimen Nutzern als auch von Kriminellen zur Anonymisierung verwendet.
I2P-Website & I2P-Browser
Eine I2P-Website ist ein Dienst, der im Netzwerk Invisible Internet Project (I2P) gehostet wird. Wie Tor bietet I2P Anonymität, funktioniert jedoch anders, indem es Peer-to-Peer-Tunnel zwischen Benutzern erstellt. I2P-Websites haben oft .i2p-Domains und können nur über einen I2P-fähigen Browser oder eine Proxy-Einrichtung aufgerufen werden. I2P wird hauptsächlich für sichere interne Dienste und nicht für den Zugriff auf das normale Internet verwendet. In diesem Kurs werden wir nicht mit I2P arbeiten, aber es ist wichtig zu wissen, dass I2P als weiteres datenschutzorientiertes Netzwerk existiert, das sowohl von legitimen Nutzern als auch von Kriminellen genutzt wird.
LLMs & KI
Large Language Models (LLMs) sind fortschrittliche KI-Systeme, die auf riesigen Textdatensätzen trainiert wurden. Beispiele hierfür sind GPT, LLaMA und Claude. Diese Modelle generieren menschenähnliche Texte, beantworten Fragen, übersetzen Sprachen und führen Schlussfolgerungen durch. LLMs sind in der Cyber-Bedrohungsanalyse nützlich, um große Mengen unstrukturierter Daten zu analysieren, Muster zu erkennen oder Berichte zu erstellen. KI bezieht sich auf umfassendere Technologien, die es Maschinen ermöglichen, intelligentes Verhalten zu simulieren. In diesem Kurs werden Sie KI für Aufgaben wie das Erkennen von IAB-Beiträgen, das Analysieren von Forendaten und das Verwalten von Bedrohungslisten verwenden.
Web-Scraping-Bibliotheken
python-requests
Eine einfache Python-Bibliothek zum Senden von HTTP-Anfragen. Damit können Sie Webseiten und API-Antworten auf kontrollierte Weise herunterladen, was nützlich ist, um Daten von Websites zu scrapen, die nicht stark auf JavaScript basieren.
BeautifulSoup
Eine Python-Bibliothek zum Parsen von HTML- oder XML-Dokumenten. Sie hilft beim Extrahieren von Daten, indem sie die Struktur des Dokuments navigiert, z. B. um bestimmte Tags, Attribute oder Text auf einer Webseite zu finden.
Headless Browsers
Browser, die ohne grafische Oberfläche laufen. Sie laden Webseiten wie normale Browser und interagieren mit ihnen, werden jedoch durch Code gesteuert. Nützlich für groß angelegtes oder automatisiertes Scraping.
Headless Browsers
Ein Headless Browser ist ein Webbrowser, der ohne sichtbare grafische Oberfläche läuft. Er verhält sich wie ein normaler Browser, indem er JavaScript verarbeitet, CSS lädt, Seiten rendert und Cookies verarbeitet, aber all dies geschieht im Hintergrund. Headless Browser werden über Code gesteuert, sodass Entwickler Interaktionen mit Websites für Zwecke wie Scraping, Testen oder Überwachen automatisieren können. Sie sind unverzichtbar bei der Arbeit mit JavaScript-lastigen oder dynamischen Websites, bei denen einfache HTTP-Anfragen nicht ausreichen. Headless Browser können das Verhalten echter Benutzer nachahmen, wodurch einige Anti-Bot-Schutzmaßnahmen umgangen werden können.
Puppeteer
Puppeteer ist eine Node.js-Bibliothek, die eine hochentwickelte API zur Steuerung von Chrome oder Chromium im Headless- oder Vollmodus bereitstellt. Damit können Sie Seiten laden, auf Schaltflächen klicken, Formulare ausfüllen, Screenshots machen und Inhalte extrahieren. Puppeteer ist beliebt wegen seiner Geschwindigkeit, Stabilität und tiefen Integration in den Browser. Es kann Geräteeinstellungen, Netzwerkbedingungen und Viewport-Größen emulieren, was es leistungsstark für das Scraping moderner Websites oder das Testen des Verhaltens von Seiten unter verschiedenen Szenarien macht. Link: https://github.com/puppeteer/puppeteer
Playwright
Playwright ist ein modernes Automatisierungstool, das Chromium-, Firefox- und WebKit-Browser unterstützt. Wie Puppeteer kann es im Headless- oder Head-Modus ausgeführt werden. Playwright ist bekannt für die Bewältigung komplexer Aufgaben wie die Interaktion mit mehrseitigen Abläufen, die Verwaltung mehrerer Browserkontexte und die Umgehung von Anti-Bot-Schutzmaßnahmen. Es bietet erweiterte Funktionen wie das Abfangen von Netzwerkanfragen, die Simulation von Benutzereingaben mit realistischen Verzögerungen und die Erfassung von Konsolenprotokollen. Playwright wird häufig für browserübergreifende Tests und das Scraping in Umgebungen bevorzugt, in denen verschiedene Browser unterstützt werden müssen.
Link: https://github.com/microsoft/playwright
Selenium
Selenium ist eines der ältesten und am weitesten verbreiteten Frameworks für die Browser-Automatisierung. Es unterstützt viele Programmiersprachen, darunter Python, Java und C#. Selenium kann headless Versionen von Chrome, Firefox und anderen Browsern steuern. Es wird häufig für Tests verwendet, eignet sich aber auch zum Scraping dynamischer Websites, die Benutzerinteraktionen erfordern. Die Flexibilität von Selenium ermöglicht die Integration in Test-Frameworks, aber aufgrund seiner älteren Architektur kann es bei umfangreichen Scraping-Aufgaben langsamer sein als Puppeteer oder Playwright.
Link: https://github.com/SeleniumHQ/selenium
Undetected Chrome Driver
Selenium und Playwright können aufgrund ihrer zugrunde liegenden Technologie Anti-Bot-Systeme auslösen. Als Lösung, die die Erkennung minimiert, sollten Sie Undetected ChromeDriver in Betracht ziehen, eine modifizierte Version von Seleniums ChromeDriver, die entwickelt wurde, um Anti-Bot-Mechanismen wie Cloudflare, DataDome, Imperva und Distil Networks zu umgehen. Dies wird erreicht, indem die ChromeDriver-Binärdatei gepatcht wird, um Automatisierungsfingerabdrücke wie User Agents und JavaScript-Variablen zu verschleiern und ein menschenähnliches Browserverhalten nachzuahmen.
Link: https://github.com/UltrafunkAmsterdam/undetected-chromedriver
Proxies: HTTP, HTTPS, Tor, SOCKS5
Proxies leiten Ihren Internetverkehr über einen anderen Server um, um Ihre echte IP-Adresse zu verbergen oder Einschränkungen zu umgehen.
- HTTP/HTTPS-Proxies sind für den normalen Webverkehr gedacht.
- SOCKS5-Proxys arbeiten auf einer niedrigeren Netzwerkebene und unterstützen alle Arten von Datenverkehr.
- Tor-Proxys leiten den Datenverkehr über das Tor-Netzwerk um, um Anonymität zu gewährleisten.
Proxys sind beim Scraping unerlässlich, um Sperren zu vermeiden, die Last zu verteilen oder auf regional gesperrte Inhalte zuzugreifen.
Programmierkonzepte
Python und JavaScript sind die wichtigsten Sprachen für das Scraping und die Automatisierung.
-
Bibliotheken/Pakete: Wiederverwendbare Codesätze zur Ausführung bestimmter Aufgaben.
-
Frontend-Frameworks: Tools wie Bootstrap, Daisyui, TailwindCSS, React oder Vue zum Erstellen von Webschnittstellen.
-
Backend-Frameworks: Tools wie Django, Flask, Laravel oder Express zum Erstellen von serverseitiger Logik.
-
Datenbanken: Tools wie PostgreSQL, MySQL, Firebase zum Speichern von Daten.
-
IDE (Integrated Development Environment): Software wie VSCode, PyCharm, Visual Studio zum Schreiben und Verwalten von Code.
-
Compiler: Programme, die Code in ausführbare Anweisungen umwandeln.
-
Virtuelle Umgebung: Eine virtuelle Umgebung oder venv wird verwendet, um eine isolierte Umgebung zu schaffen, in der mehrere Bibliotheken/Pakete installiert werden können, ohne eine systemweite Installation durchzuführen. Sie werden viel mit der virtuellen Python-Umgebung arbeiten.
Ratenbegrenzung
Die Ratenbegrenzung ist eine Sicherheitsmaßnahme, die die Anzahl der Anfragen begrenzt, die Sie in einem bestimmten Zeitraum an einen Server senden können. Beispielsweise kann eine Website nur 10 Anfragen pro Minute von einer IP-Adresse zulassen. Dies verhindert Missbrauch, Spam oder Überlastung. Scraping-Tools müssen Ratenbegrenzungen einhalten oder umgehen, indem sie Anfragen verlangsamen, Proxys verwenden oder die Last auf mehrere Konten verteilen, um eine Erkennung und Sperrung zu vermeiden.
Captcha
Captcha ist ein Challenge-Response-System, mit dem überprüft wird, ob ein Benutzer ein Mensch ist. Es verhindert, dass automatisierte Bots Aktionen wie das Erstellen von Konten oder das Scraping von Daten ausführen. Gängige Captchas umfassen die Auswahl von Bildern, die Eingabe von verzerrtem Text oder das Aktivieren von Kontrollkästchen. Für Scraper sind Captchas ein erhebliches Hindernis, und ihre Lösung erfordert oft fortgeschrittene Techniken wie KI-basierte optische Zeichenerkennung (OCR) oder Lösungsdienste von Drittanbietern.
Kontosperrung
Die Kontosperrung ist eine Sicherheitsfunktion, die ein Konto nach einer bestimmten Anzahl fehlgeschlagener Anmeldeversuche oder verdächtiger Aktivitäten deaktiviert. Dies schützt vor Brute-Force-Angriffen und unbefugtem Zugriff. Wenn Sie Websites scrapen oder mit Websites interagieren, die eine Anmeldung erfordern, müssen Sie mit Anmeldedaten vorsichtig umgehen, Aktionen auf mehrere Konten verteilen oder die Sitzungsverwaltung verwenden, um eine Sperrung zu vermeiden.
Docker
Docker ist ein Tool, mit dem Sie Anwendungen und deren Umgebungen in isolierten Containern verpacken können. Dadurch wird sichergestellt, dass Software überall gleich läuft, unabhängig vom System, auf dem sie ausgeführt wird. In diesem Kurs wird Docker verwendet, um simulierte Websites (sowohl Clearnet als auch Tor) einzurichten, damit Sie das Scraping und die Analyse üben können, ohne mit der realen kriminellen Infrastruktur in Kontakt zu kommen. Dadurch wird die Umgebung portabel, reproduzierbar und einfach zu verwalten.
Um Docker zu installieren, folgen Sie dieser Anleitung: https://docs.docker.com/engine/install/
IDE: VSCode
Eine integrierte Entwicklungsumgebung (IDE) ist eine Software zum Schreiben, Bearbeiten und Verwalten von Code. VSCode ist eine beliebte IDE, die mehrere Programmiersprachen unterstützt, Debugging-Tools bietet, in die Versionskontrolle (wie Git) integriert ist und Erweiterungen für die Arbeit mit Python, JavaScript, Docker und mehr enthält. In diesem Kurs verwenden Sie VSCode zum Erstellen, Testen und Verwalten Ihres Codes.
Linux
Linux ist ein Open-Source-Betriebssystem, das häufig in den Bereichen Cybersicherheit, Entwicklung und Serverumgebungen eingesetzt wird. Es bietet leistungsstarke Befehlszeilentools, hohe Stabilität und Flexibilität für Automatisierung und Skripterstellung. In diesem Kurs verwenden Sie Linux als Teil Ihrer Laborumgebung, um Scraper auszuführen, Docker-Container zu verwalten und Datenverarbeitungsaufgaben zu erledigen. Ubuntu ist die bevorzugte Linux-Distribution für diesen Kurs.
Sie können mehrere Linux-Distributionen wie Ubuntu Desktop oder xUbuntu herunterladen.
Browser-Erweiterung
Eine Browser-Erweiterung ist ein kleines Softwaremodul, das einem Webbrowser zusätzliche Funktionen hinzufügt. Erweiterungen können Seiteninhalte ändern, Aufgaben automatisieren oder mit APIs interagieren. Beim Scraping und bei der Automatisierung können benutzerdefinierte Erweiterungen bei der Datenextraktion, der Umgehung von Einschränkungen oder der Verwaltung von Sitzungen helfen.
Datenbanken
Datenbanken speichern, organisieren und verwalten Daten, um den Zugriff und die Analyse zu vereinfachen.
- MongoDB ist eine NoSQL-Datenbank, die Daten in flexiblen, JSON-ähnlichen Dokumenten speichert und sich ideal für unstrukturierte oder halbstrukturierte Daten wie gescrapte Beiträge eignet.
- PostgreSQL ist eine relationale Datenbank, die Daten in strukturierten Tabellen mit strengen Schemata speichert und sich für komplexe Abfragen und Beziehungen eignet.
APIs
Eine Anwendungsprogrammierschnittstelle (API) ermöglicht die Kommunikation zwischen verschiedenen Softwareprogrammen. Beim Scraping und bei der Automatisierung bieten APIs eine strukturierte Möglichkeit, Daten anzufordern und zu empfangen, ohne HTML zu parsen. Viele Websites bieten öffentliche oder private APIs für den Datenzugriff an. Wenn Sie wissen, wie Sie mit diesen APIs umgehen, können Sie Daten schneller und zuverlässiger erfassen.