Menschen sind schon lange nicht mehr die alleinigen Nutzer des Internets. Beinahe 50 % aller Webseiten-Aufrufe werden von autonomer Software getätigt. Diese auch als Bots bezeichneten Softwares agieren in den Schatten des Netzes. Unbemerkt indexieren sie Webseiten, verbreiten Spam, legen gefälscht Profile an, oder versuchen in Datenbanken einzubrechen.

Hindernisse wie CAPTCHAs oder Honeypots galten bislang als effektive Gegenmittel, allerdings verhilft der rapide Fortschritt im Feld der Künstlichen Intelligenz modernen Bots auch derartige Barrieren zu durchbrechen. Im Bereich E-Mail-Spam findet ein unablässiger Kampf zwischen Spam-Bots und Klassifizierungsalgorithmen statt.

Im ersten Teil dieser Arbeit wird das Verhalten und Vermögen von Software-Agenten untersucht. Schwerpunkte bilden dabei die Themen Spam und Künstliche Intelligenz. Der zweite Teil beschreibt die Anwendung des gewonnenen Wissens in Form der Entwicklung eines eigenen Bots, der autonom durch das World Wide Web navigiert.

Einleitung

Motivation

Das Internet wird ein immer existenziellerer Bestandteil des modernen Lebens. Waren es anfangs nur wenige Standcomputer, die an diesem Netzwerk teilhaben durften, so wird heute die Zahl von Internet-vernetzten Geräten auf 13,4 Milliarden geschätzt; für das Jahr 2020 wird bereits eine Summe von 38,5 Milliarden Geräten prognostiziert.1 Um eine Welt zu verstehen, in der es doppelt so viele miteinander vernetzte Geräte als Menschen gibt, muss man Software-Agenten verstehen. Sie sind die unsichtbaren Arbeiter des Internets. Software-Agenten verknüpfen Webseiten, versenden Spam-Nachrichten, schreiben Wikipedia-Artikel2 und vieles mehr. Ohne Sie hätte das Internet nie die Größe erreicht, die es heute hat. Längst reicht es über Standcomputer hinaus: Smartphones, Konsolen, Armbanduhren, Kühlschränke und Autos, alles Produkte die das Internet of Things miteinander vernetzt. So spielt das Internet eine essenzielle Rolle in der Wirtschaft, in der Politik, bei der Arbeit und in der Freizeit. Wer Software-Agenten versteht, ist besser über genannte Bereiche informiert und kann leichter in deren Zukunft blicken.

Aufbau

Diese Arbeit beginnt mit einem Überblick über den aktuellen Stand zum Thema Software-Agenten im Internet, bei dem die Einsatzgebiete von Bots beschrieben werden. Dabei wird das Thema Spam im Detail erarbeitet, bei welchem Techniken zur E-Mail-Spam-Vermeidung und die Spam-Kommentar Problematik besprochen werden. Anschließend wird der Aufschwung der Künstlichen Intelligenz besprochen und wie dieser das Machtverhältnis zwischen Software-Agenten und Menschen verändert hat und verändern wird. Der zweite Teil der Arbeit wendet sich der Praxis zu und beschreibt das Beobachten fremder Software-Agenten sowie das Erstellen eines eigenen Bots.

Überblick

Software-Agenten

Ein Software-Agent ist eine Computer-Applikation, welche autonom vordefinierte Ziele verfolgt. Alternative Namen umfassen: Bot, autonome Software, oder im Bereich der Künstlichen Intelligenz auch KI oder A.I.

Es gibt verschiedene Arten von Software-Agenten, die verschiedenste Aufgaben übernehmen. Diese Arbeit befasst sich mit Bots, die das Internet als Lebensraum nutzen. Folglich werden die drei wichtigsten Arten beschrieben.

Webcrawler/Spider

Bots, welche Webseiten im World Wide Web indexieren und/oder analysieren. Die bekanntesten Vertreter sind Web Spiders, welche von Suchmaschinen eingesetzt werden, um neue Webseiten zu finden und um den bestehenden Suchindex zu aktualisieren.3 Webcrawler können auch genutzt werden um E-Mail-Adressen aufzuspüren, beispielsweise für den Versand von Spam-Nachrichten.

Spambot

Diese Software-Agenten versenden Spam-Nachrichten. Da ihre Spam-Nachrichten jedoch meist auf sie zurückverfolgt werden können (zum Beispiel mittels Absender-Adresse oder Benutzername) sehen sich Spambots genötigt, massenhaft Accounts anzulegen, um nicht blockiert zu werden. Im Kapitel Künstliche Intelligenz werden verschiedene Methoden vorgestellt, um dies zu vermeiden.

Brute-Force-Bots

Brute-Force (englisch für rohe Gewalt) beschreibt den Akt, bei welchem eine Software sämtliche möglichen Optionen erprobt um in fremde System einzudringen. In der Regel besteht dies darin, Accounts zu entwenden, indem eine Kombination von Benutzernamen und Passwörtern ausprobiert werden. Der Benutzername kann beispielsweise in Form einer E-Mail-Adresse bezogen worden sein, welche ein Webcrawler aufgetrieben hat. Die Passwörter, die erprobt werden, entstammen einer Tabelle von geläufigen Passwörtern.

Das Internet ist inzwischen zu groß, um allein von Menschen kuriert und gepflegt zu werden. So haben sich immer mehr Arten von Bots gebildet, die immer spezifischere Aufgaben übernehmen. Die Einsatzgebiete lassen sich grob in zwei Lager aufteilen: gutartige Bots und bösartige Bots. Gutartige Bots zeichnen sich dadurch aus, dass sie gemeinnützige, konstruktive Arbeiten leisten und sich bei Bedarf auch freiwillig blockieren lassen. Folgende Listen führen die wichtigsten Vertreter auf.

Gutartige Bots

Search Robots

Ein Paradebeispiel für gutartige Bots sind Webcrawler, die sich auf die Indexierung von Webseiten für Suchmaschinen spezialisiert haben. Das W3C, das Standardisierungsgremium für das World Wide Web,4 definiert mehrere Standards, die es Website-Administratoren erlauben, Bots den Zugang zur Webseite vollständig, oder auch nur zu Teilen, zu unterbinden.5 Der am weitesten verbreitete Standard spezifiziert eine Datei namens robots.txt, welche Blockaden für Bots definiert.6 Alle großen Suchmaschinen erklären ihre Konformität zu einem oder mehreren dieser Standards.789

Feed-Crawler

Damit RSS-Clients stets mit den neuesten Inhalten gefüttert werden können, müssen Bots RSS-/Atom-Feeds periodisch anfragen. Diese Feeds werden von Weblogs und anderen Webseiten zumeist exklusive für Feed-Crawler angelegt und bereitgestellt.

Webseite-Monitoring

Um sicherzustellen, dass die eigene Webseite erreichbar ist, lassen sich Software-Agenten einsetzen, welche die Webseite im Minutentakt anfragen und bei einem eventuellen Ausfall Alarm schlagen. Dieser Alarm kann sich beispielsweise in Form einer E-Mail-Nachricht an den Administrator äußern.

Schutzengel

Da viele bösartige Bots Links in sozialen Netzwerken teilen, überprüfen einige Netzwerke die verlinkte Seite, bevor der Link publiziert wird. Der Mikroblogging-Dienst Twitter geht in diesem Bereich beispielhaft voran. Sämtliche auf Twitter publizierten Links werden vom hauseigenen URL-Kürzungsdienst t.co verpackt.10

Bösartige Bots

Bösartige Webcrawler

Konträr zu freundlichen Webcrawlern, wie Search Bots, durchsuchen bösartige Webcrawler das Web nach persönlichen Daten, angreifbaren Anmelde-Seiten oder ungeschützten Formularen. Ironischerweise begutachten diese Bots ebenfalls die robots.txt-Dateien, um eben jene Bereiche ausfindig zu machen, welche vom Administrator als Tabus markiert wurden.

Spam-Bots

Diese Bots versenden Spam an Adressen, die Webcrawler aufgetrieben haben. Dabei muss es sich nicht zwangsweise um E-Mail-Spam handeln; auch Kommentarsysteme, Online-Foren, soziale Netzwerke11 und Instant-Messaging-Dienste wie WhatsApp12 sind betroffen.

Statistiken-Verfälschung

Mit der Kommerzialisierung des Internets wurden Statistiken immer wichtiger. Werbetreibende zahlen pro Ad Impression,13 also pro Aufruf. Botnets, also Zusammenschlüsse vieler Bots, können genutzt werden, zusätzlichen Verkehr auf diese Werbeanzeigen zu leiten. Da Bots oft weniger kosten als die Werbeanzeigen einbringen, wird diese Praxis nicht selten auch in der Realität umgesetzt.14

Rating-Bots

Eine weitere Folge des steigenden Konsums im Internet ist die Wichtigkeit von positiven Bewertungen. Seien es Güter oder Dienstleistungen, die online angeboten werden: eine bedeutende Anzahl an 5-von-5-Sterne-Bewertungen verwandelt potenzielle in zahlende Kunden wie kaum ein anderes Gütesiegel.15

DDoS-Bots

Die Überlastung eines oder mehrerer Server durch ein Botnetz wird als Distributed Denial of Service, kurz DDoS, bezeichnet. Die Software-Agenten, die für die Überlastung der Server-Infrastruktur verantwortlich sind, müssen dabei nicht zwangsweise auf den Rechnern der Angreifer laufen. Nicht selten werden diese Bots in Form von Schadware auf persönlichen Computern installiert und beteiligen sich an den Angriffen ohne die Kenntnisnahme des Besitzers.

Forschung

Methoden

Die in dieser Arbeit vorgebrachten Informationen über Bots im Internet stützen sich zu großen Teilen auf eigene Forschung, die im Rahmen dieser Arbeit betrieben wurde. Dafür wurden zwei unabhängige, wenn auch zueinander kompatible, Softwares entwickelt. Die erste, Great-Attractor (Kapitel Die Software-Agenten Suite), ist ein Bot-Beobachtungs-System, das in eine Webseite eingebunden werden kann. Teil der Great-Attractor-Software ist der GA-Analyzer, welcher das Auswerten der von Great-Attractor gesammelten Daten in einer interaktiven Shell erlaubt. Die zweite Software ist WWWEB (Kapitel WWWEB), ein Software-Agent, der auf den Beobachtungen der Kapitel Beobachten und Verstehen und Auswertung der Great-Attractor-Daten basiert.

Great-Attractor, GA-Analyzer, WWWEB und andere Programme, die im Rahmen dieser Arbeit entstanden sind, finden sich online unter github.com/SoftwareAgenten. Sie wurden unter der MIT Lizenz veröffentlicht und können daher für andere, persönliche und kommerzielle Arbeiten eingesetzt werden.16 Entsprechende Dokumentation wurde in Form von README.md Dateien bereitgestellt, welche die Funktionsweise der einzelnen Programme erläutern.

Rahmenbedingungen

Um die Verwendung der Software-Agenten im Internet-Softwares zu erleichtern, wurden sie in Programmiersprachen verfasst, die nicht an eine Plattform gebunden sind.

  • Great-Attractor wurde in PHP verfasst, eine verhältnismäßig alte Programmiersprache, die nahezu von jedem Webhosting-Dienst unterstützt wird. PHP wird für Microsoft Windows, macOS, Linux und andere Betriebsysteme angeboten.

  • GA-Analyzer und WWWEB wurden für die Node.js-Umgebung programmiert und lassen sich so ebenfalls unter Microsoft Windows, macOS und Linux ausführen. Während Great-Attractor in den meisten Fällen auf einem externen Hoster installiert wird, können diese Programme nur auf dem eigenen Computer ausgeführt werden. Daher wird Node.js in der derzeit aktuellsten Version, 6, vorausgesetzt.

  • process_mailbox, eine Spezialsoftware, die IMAP-Postfächer in das JSON-Datei-Format konvertiert, wurde in der Programmiersprache Go geschrieben. Go ist eine kompilierbare Sprache, was die Ausführung deutlich beschleunigt. Go ist für Microsoft Windows, macOS, Linux und andere Betriebsysteme verfügbar.

Des Weiteren wurden alle gewonnen Daten in für Computer einfach zu parsende17 Formate geschrieben und online im GA-Archive veröffentlicht.18 Zu diesen Formaten zählen JSON, TOML, XML und CSV. Das erlaubt es anderen Programmen, diese Daten zu importieren und zu verarbeiten.

Beobachten und Verstehen

Spam

Unerwünschte Nachrichten im Internet, größtenteils Werbeangebote, Phishing-Attacken oder Übermittler von Schadsoftware, werden als Spam bezeichnet. Spam-Nachrichten stellen per definitionem eine leidige Kommunikationsform dar. Die gewöhnlichste Art, namhaft durch ihre Omnipräsenz im Leben mit dem Internet, stellt der E-Mail-Spam dar.

Der Begriff fand noch vor dem Erscheinen des World Wide Web Anklang, beschrieb damals jedoch eine Flut an unerwünschten Nachrichten.19 Erste Aufkommen des Phänomens wurden im ARPANET und im USENET beobachtet.20

Der Name Spam entspringt dem gleichnamigen Dosenfleisch, welches im Zweiten Weltkrieg in großen Mengen an Soldaten verteilt wurde.21 Der Markenname Spam® (kurz für Spiced Ham) setzte sich auf diese Weise rasch im Vereinigten Königreich als Deonym für Frühstücksfleisch durch. Die britische Comedy-Gruppe Monty Python griff im Sketch Spam22 der BBC Serie Monty Python’s Flying Circus die Allgegenwärtigkeit des Fleischprodukts auf, weshalb dieses bis heute als Symbol für einen unerwünschten Überschuss fungiert.

Mit dem Begriff Spam werden heutzutage diverse Arten von Nachrichten bezeichnet. Werbenachrichten sind das klassische Beispiel einer Spam-Nachricht. Sie bieten zumeist dubiose Produkte oder Dienstleistungen an.

E-Mail-Spam vermeiden

Das Problem, Werbung und andere unerwünschte Nachrichten zu erhalten, ist nicht neu; Papier-Post belästigt Hausbesitzer seit Generationen. Gegenmaßnahmen wie ›Bitte keine Werbung einwerfen‹-Kleber für das Postfach sind etablierte Präventivmaßnahmen, die in einigen Staaten gesetzlich verankert sind.23 Digitale Spam-Nachrichten dagegen sind ein relativ neues Phänomen und viele E-Mail-Nutzer fühlen sich durch eine Flut von Spam-Nachrichten überlastet. Die folgenden Ratschläge empfehlen sich, um E-Mail-Postfächer vor Spam zu schützen.

Spam-Filter

Spam-Filter identifizieren und markieren Spam-Mails. Sie können direkt auf einem Mail-Server oder in einem E-Mail-Client installiert werden. Als Spam markierte Mails werden dabei in ein eigenes Postfach bewegt; sollten wichtige E-Mails nicht im Posteingang erscheinen, kann man das Spam-Postfach auf die erwarteten Nachrichten untersuchen. Viele E-Mail-Clients erlauben das manuelle Markieren von Spam-Mails, sollte eine E-Mail den Spam-Filter überlisten. Diese Aktion ist dem einfachen Löschen der Nachricht insofern überlegen, als dass der Client die markierte E-Mail auf Spam-Indikatoren untersucht um diese in seinen Spam-Filter-Algorithmus zu integrieren.

Bilder unterbinden

Eine drastische, wenn auch effiziente Maßnahme, ist das vollständige Blockieren aller Bilder. Dadurch, dass Bilder erst beim Darstellen einer E-Mail geladen werden, können Spammer herausfinden, ob eine E-Mail-Adresse in aktiver Benutzung ist oder nicht – sprich, ob es sich lohnt weite Spam-Nachrichten zu senden. Damit diese Maßnahme nicht alle E-Mails betrifft, verfügen viele E-Mail-Clients über eine Favoriten-/VIP-Kontakte-Liste, welche die Darstellung von Bildern bei ausgezeichneten Absendern erlaubt. Alternativ bieten einige Clients einen Vorschau-Modus an, der E-Mails ohne Bilder oder andere Anhänge darstellt.

E-Mail-Adresse privat halten

Spam-Bots können keinen Spam an Adressen senden, die sie nicht kennen. Für ein öffentliches Auftreten im Internet, insbesondere im Web, empfiehlt es sich daher eine zweite, öffentliche E-Mail-Adresse zu nutzen. Diese sollte immer dann verwendet werden, wenn die Adresse öffentlich auf einer Webseite oder in einer App aufscheint. Da E-Mail-Adressen ein einfaches Muster aufweisen, können sie gut von Software-Agenten aufgestöbert werden. Nach diesem System besitzt man eine private E-Mail-Adresse für Familie, Freunde und Arbeit und eine öffentliche Adresse für den Rest der Welt. Da wichtige Nachrichten mit höherer Wahrscheinlichkeit bei der privaten Adresse eingehen, kann der Spam-Filter für die öffentliche Adresse aggressiver eingestellt werden. In Kapitel E-Mail-Adressen Verschleierung wird außerdem beschrieben, wie öffentliche E-Mail-Adressen besser vor Bots beschützt werden können.

Keine Interaktionen

E-Mails, die als Spam markiert oder von fremden Absendern versendet wurden, sollten mit Vorsicht behandelt werden. Antwortet man auf eine Spam-Nachricht, erfährt der Spammer, dass die E-Mail-Adresse aktiv ist. Öffnet man einen Anhang, könnte sich darin Schadsoftware befinden. Das Klicken auf einen Link kann zu einem der beiden vorherigen Szenarien führen. Nachrichten, die auf eine dieser Aktionen drängen, sollten gelöscht werden.

Beispiele
  • ›Ihr Account steht kurz vor der Löschung, klicken Sie hier um dies zu verhindern.‹

  • ›Sie haben neulich eine Überweisung von 300 Euro vorgenommen, klicken Sie hier um dies rückgängig zu machen.‹

  • ›Wie gewünscht finden sie anbei das Dokument über unser Gespräch.‹

E-Mail-Adressen Verschleierung

Manchmal müssen E-Mail-Adressen auf Webseiten aufscheinen. Sei es auf der Kontakt-Seite, in den Lizenzvereinbarungen oder im Impressum. Über die Jahre haben sich verschiedenste Techniken entwickelt, E-Mail-Adressen auf Webseiten zu verschleiern. Im Folgenden werden drei Methoden beschrieben, die E-Mail-Adressen für Menschen lesbar und für Software-Agenten unlesbar machen.

Interpunktion verschleiern

Das Umschreiben einer Adresse vom Format ›name@example.org‹ in das Format ›name [at] example [dot] org‹ verändert das Muster, nach dem Software-Agenten suchen müssen. Zusätzlich lassen sich viele weitere Variationen desselben Tricks erdenken: ›name-AT-example-DOT-org‹. Obwohl es für Bots nicht unmöglich ist, diese Verschleierung zu durchschauen, ist sie immer noch weitaus besser, als die E-Mail-Adresse ohne Verschleierung zu veröffentlichen.24

CSS/JavaScript

Beinahe alle Bots lesen lediglich HTML-Dokumente und ignorieren dabei externe Ressourcen wie CSS und JavaScript.25 Der zusätzliche Aufwand, diese externen Ressourcen anzufragen, das HTML-Dokument in ein logisches Modell (DOM) umzuwandeln und folglich den CSS- und JavaScript-Code auf dieses Modell anzuwenden, ist verhältnismäßig groß und raubt Zeit, die für die Suche anderer Adressen genutzt werden könnte. Ein mit CSS verstecktes HTML Element, das inmitten einer E-Mail-Adresse platziert wird, ist eine nahezu perfekte Verschleierungs-Technik.24

<style>
[data-block~=bots] { display: none }
</style>
<p>name@<span data-block="bots">nil</span>example.org</p>

Mit JavaScript lassen sich E-Mail-Adressen durch eine Codierung oder Verschlüsslung vor Bots verbergen. Diese Methoden bieten einen für Bots praktisch unknackbaren Schutz. Während CSS bei so gut wie 100 % aller menschlichen Benutzer aktiviert ist,26 ist JavaScript nur bei 98 % aktiviert.27 JavaScript basierte Verschleierungen grenzen damit 2 % aller Benutzer aus, erlauben jedoch eine beliebige Verschlüsslung der Adresse, darunter zum Beispiel ROT13.28

HTML-Codierung

HTML unterstützt selbst eine Reihe von Codierungen, die auf E-Mail-Adressen angewandt werden kann.29

URL-Codierung

Bei einer URL Codierung werden einzelne Zeichen durch ein Prozentzeichen gefolgt von zwei alphanumerischen Zeichen ersetzt. Die Kombination der beiden alphanumerischen Zeichen lässt sich in standardisierten Tabellen nachschlagen.30

<a href="mailto:%6e%61%6d%65%40%65%78%61%6d%70%6c%65%2e%6f%72%67">
  name@example.org
</a>
HTML-Entitäten-Referenzen

Eine Zeichen-Entität-Referenz beschreibt ein Zeichen, indem der Code-Point link von &# oder &#x und rechts von ; umgeben wird. Der Code-Point beschreibt die numerische Position, an welcher das Zeichen im Unicode-Standard geführt wird. Beginnt eine Entitäten-Referenz mit &#x, muss der Code-Point in Hexadezimalzahlen, anstelle von Dezimalzahlen, angegeben werden.

<a href="mailto:&#110;&#97;&#109;&#101;&#64;&#101;&#120;…">
  name@example.org
</a>
URL-Codierung + HTML-Entitäten-Referenzen

URL-Codierung kann auch mit HTML-Entitäten-Referenzen kombiniert werden.

<a href="mailto:%6e%61m&#101;&#64;&#101;&#120;&#97;&#109;…">
  name@example.org
</a>

Kommentare

Neben E-Mails stellen online-Kommentare ein weiteres Medium für Spam-Nachrichten dar. Um Kommentare vor Bots zu schützen, lassen sich verschiedene Techniken zum Einsatz bringen. Dazu zählen CAPTCHAs, Honeypots, die Pflicht, sich beim Kommentarsystem anzumelden und Zwei-Schritt-Absenden-Verfahren.

Im Folgenden wird eine Spam-Attacke beschrieben, die auf ein Kommentarsystem vom 6. Mai 2015 (20:57 Uhr) bis zum 7. Mai 2015 (06:21 Uhr) durchgeführt wurde. Das Kommentarsystem befand sich unter der Adresse *.blogfill.de/weblog/funktionsweise-von-easing-funktionen und setzte als einzige Anti-Spam-Technik eine Kommentarvorschau ein, die vor dem Absenden eines Kommentars durchgeführt werden musste. Das alleine bot bereits einen guten Schutz gegen Spam,31 verhinderte jedoch nicht, dass im genannten Zeitraum 719 Spam-Kommentare eingereicht wurden.32

Bei den 719 Kommentaren wurde der Name ›Walter‹ siebenmal und damit am häufigsten gewählt. Es wurden insgesamt 71 Links publiziert, dabei handelt es sich um 35 voneinander unterschiedliche Exemplare. Die drei häufigsten Links wurden jeweils viermal publiziert, einer davon verwendete HTTPS im Gegensatz zu HTTP. Aus den 35 unterschiedlichen Links verwendeten nur zwei HTTPS, beide mit demselben Hostname: ummgc.org. Die Verwendung von HTTPS ist insofern interessant, als dass HTTPS ein Zertifikat verlangt, welches von einer zumeist externen Zertifizierungsstelle ausgestellt werden muss. Spammer können so leicht rückverfolgt werden.

Auch interessant ist es, dass von insgesamt 376.165 Zeichen 0,053 % Steuerzeichen sind, also nicht normale Zeichen, die am Bildschirm dargestellt werden, sondern die Darstellung anderer Zeichen beeinflussen. Solche seltene Zeichen könnten eingesetzt werden, um in primitiven Systemen, die nicht mit solcherlei Zeichen rechnen, einen Fehler zu verursachen. 0,27 % aller Zeichen machen Währungszeichen aus, davon 914 Euro-, 91 Dollar- und 22 Pfund-Zeichen.

Phishing

Das Bestreben, persönliche Daten im Internet durch ein gezielt verfälschtes Auftreten abzugreifen wird als Phishing (aus dem Englischen fishing, für fischen oder angeln) bezeichnet. In der Regel handelt es sich dabei um E-Mail-Nachrichten oder Webseiten, welche Informationen wie Name, Adresse, Benutzername/Passwort oder Kreditkarten-Daten anfordern. Dem Empfänger wird dargelegt, sein Account auf einer Webseite würde in Gefahr sein, sollten die geforderten Informationen nicht rasch übergeben werden. Dieses künstliches Drängen soll den Adressaten der Phishing-Nachricht davon abhalten, seinen Verstand zu benutzen und stattdessen eine panische, reflexartige Handlung auslösen. Diese Handlung wird vom Betrüger geschickt dirigiert: dem Opfer wird ein großer Button oder ein einfach erreichbarer Link präsentiert, der auf die Webseite des Betrügers führt. Diese Webseite imitiert das Aussehen des Originals, leitet jedoch die vom Benutzer eingetragenen Daten an den Sender der Phishing-Nachricht weiter.

Eine Phishing-E-Mail, die das Aussehen einer E-Mail der Firma Apple Inc. imitiert.

Phishing ist eine besonders elegante Art des Spams, da die Opfer häufig nicht mitbekommen, dass ihre Daten von Dritten abgegriffen werden. Nachdem man die geforderten Daten eingegeben und abgesendet hat, leitet die Webseite des Betrügers das Opfer auf die tatsächliche Webseite weiter.

Der Link > Click here to validate your account information in der obigen Abbildung führt nicht auf die Domäne apple.com. Der Quellcode der abgebildeten E-Mail und Bildschirmfotos der verlinkten Webseite finden sich auf GitHub.com.

Künstliche Intelligenz

Die ersten Software-Bots waren noch weit entfernt vom selbstständigen Verhalten der heutigen Software-Agenten. Jeder Bot wurde für eine einzige Aufgabe programmiert,33 beispielsweise Spam-Emails an eine vordefinierte Liste von Empfängern zu senden. Diese Verfahrensweise skaliert nicht in die Dimensionen, die das Internet inzwischen angenommen hat. Gleichzeitig mit dem Internet sind Computer immer schneller, komplexer und leistungsfähiger geworden. So lassen sich heute autonome Anwendungen realisieren, die selbst auf der Suche nach E-Mail-Adressen das WWW durchstöbern, zur Situation passende Texte verfassen, diese versenden und auf Antworten warten.

Das Motto eines voll-autonomen Software-Agenten ist es, den menschlichen Faktor bei der Beschaffung von Daten zu eliminieren. Wie oben beschrieben, sind Bots besonders dazu geeignet, Listen von Daten anzulegen und diese abzuarbeiten. Manchmal wird das von Benutzern des Internets geduldet – wie bei der Indexierung von öffentlichen Webseiten – und manchmal nicht – wie bei der Aufspürung von privaten Daten.

Um Bots von gewissen Orten im Internet auszusperren, wurden verschiedene Techniken entwickelt, darunter CAPTCHAs, Honeypots, und der Zwang zur Beglaubigung als Mensch. Beim Zwang zur Beglaubigung als Mensch, handelt es sich um das Vorweisen von persönlichen Daten, die den Benutzer als Menschen authentifizieren. Dazu zählen:

  • Ein Nachrichten-Dienst, der seine Nachrichten über das Internet versendet, aber dennoch die Handynummer bei der Registrierung eines neuen Accounts verlangt. Die Handynummer dient in diesem Beispiel als rares Gut, das ein Bot nicht beliebig beschaffen kann.

  • Ein Online-Shop, der bereits vor der ersten Abbuchung nach Kreditkarteninformationen fragt.

  • Eine Online-Gemeinschaft, die beim Beitritt eines neuen Mitglieds eine digitale Kopie des Personalausweises verlangt.

CAPTCHA

Eine aktive Software-Bot Blockade wird als CAPTCHA (für Completely Automated Public Turing Test To Tell Computers and Humans Apart34, zu Deutsch: Vollständig automatisierter, öffentlicher Turing-Test zur Unterscheidung von Computern und Menschen) bezeichnet. Exemplarische Einsatzgebiete sind die Reduzierung von Spam-Nachrichten durch ein Online-Kontaktformular und der Ausschluss von Bots bezüglich der Registrierung bei einem sozialen Netzwerk.

Verbreitete Ausführungen der CAPTCHA-Methode umfassen:

Verzerrter Text

Der Benutzer muss eine verzerrte Abbildung einer Zeichenfolge in ein Textfeld eingeben. Die Verzerrung ist stark genug, so dass sie im Idealfall nicht von Software ausgemacht werden kann und dabei dennoch für Menschen lesbar bleibt.

Objekt-Klassifikation

Dem Benutzer wird eine Gruppe von Bildern präsentiert, von welchen jene markiert werden müssen, die zu einer bereitgestellten Beschreibung passen.

Akustisches Diktat

Verschiedene Stimmen diktieren dem Benutzer einen alphanumerischen Code der in ein Textfeld eingegeben werden muss. Diese Methode ergänzt zumeist andere Ausführungen der CAPTCHA-Methode um Rücksicht auf visuell eingeschränkte Benutzer zu nehmen.

Honeypot

Als Honeypot (zu Deutsch Honigtopf) wird in der Informatik eine Falle bezeichnet, die sich als begehrenswertes Objekt tarnt.

Ein exemplarischer Einsatz ist das von Ordnungshütern durchgeführte Veröffentlichen von scheinbar illegalen Dateien im Internet. Nutzer, welche auf diese Dateien zugreifen, werden vom Honeypot registriert und können daraufhin strafrechtlich verfolgt werden.

Dieselbe Methodik lässt sich bei der Unterscheidung zwischen Bots und Menschen zum Einsatz bringen. Eine geläufige Praxis ist es, Onlineformulare (zum Beispiel ein Kommentar-Formular) mit einem zusätzlichen Textfeld zu bestücken und dieses visuell zu verbergen. Ein menschlicher Benutzer kann dieses Feld weder erreichen noch wahrnehmen; konträr stoßen Software-Agenten auf das Textfeld – sie nehmen schließlich nur den Programmcode des Formulars und nicht die visuelle Aufmachung wahr – und füllen es aus. Beim Absenden des Formulars kann die Formular-Software überprüfen, ob das Honeypot-Feld ausgefüllt wurde oder nicht; im ersten Falle würde diese Software das Absenden unterbinden.

Prognose

Die Anzahl an Bots, die das Internet durchstreifen, wird auch in den nächsten Jahren zunehmen. Dabei wird sich die Kluft zwischen einfach gestrickten Agenten und Künstlicher Intelligenz immer weiter vergrößern. Einfache Bots, beispielsweise Beschaffer von E-Mail-Adressen, versuchen so große Teile des Internets so gut wie möglich zu durchsuchen. Dabei muss der Algorithmus leistungsstark, energiesparend und effizient sein. Daher werden diese Bots auch in 50 Jahren noch auf Honeypots hereinfallen, dafür aber immer mehr Webseiten durchsuchen, um diese Schwäche wettzumachen. Am anderen Ende des Spektrums finden sich Agenten, die von einer Künstlichen Intelligenz angetrieben werden. KI gesteuerte Bots werden immer wichtigere Aufgaben übernehmen. Dies trifft sowohl für gut- als auch bösartige Bots zu. Damit CAPTCHAs in einigen Jahren noch gegen KIs standhalten können, müssten sie derart kompliziert werden, dass auch die meisten Menschen nichts mehr damit anzufangen wüssten. Dieser Trend ist bereits heute zu beobachten und führt zum Zwang zur Beglaubigung als Mensch. Immer mehr Online-Plattformen verlangen nach einer Telefonnummer um sich Bots vom Leibe zu halten. Anderseits wandern immer mehr persönliche Daten vom Web in Apps; gerade soziale Netzwerke lösen sich vom WWW zugunsten mobiler Applikationen.35 Diese Fragmentierung lukrativer Daten macht sie für Bots schwieriger zugänglich.

Die Software-Agenten Suite

Die Daten über das Browse-Verhalten von Software-Agenten wurden von einer eigens für diese Arbeit erstellten Software-Suite gesammelt. Die Suite wurde unter dem Namen Great-Attractor36 im Internet unter der MIT-Lizenz37 auf der Open-Source Code Plattform GitHub.com veröffentlicht.38

Die MIT-Lizenz erlaubt die Vervielfältigung, Veränderung und Unterlizenzierung der Great-Attractor Softwares sowohl für den privaten als auch den kommerziellen Gebrauch. Dabei muss die Lizenzangabe samt Copyright Anmerkung unverändert beibehalten werden.39 Zufolge der Open Source Initiative ist die MIT-Lizenz der Open Source Definition konform.16 Open Source bedeutet in diesem Kontext: der Quellcode der Great-Attractor Softwares kann frei eingesehen werden und in anderen Software-Projekten zum Einsatz kommen.

GitHub.com wurde zugrunde der folgenden Argumente als Open-Source Code Plattform gewählt.

  1. GitHub.com ist zur Zeit dieses Schreibens die populärste Open-Source Code Plattform und erfreut sich demgemäß einer großen Anzahl an aktiven Nutzern.40

  2. GitHub setzt auf der Git Versionsverwaltungssoftware auf, welche sowohl bei den Great-Attractor-Softwares zum Einsatz kommt, als auch bei der Erstellung der Software-Agenten im Internet Arbeit verwendet wird.

Architektur und Philosophie

Great-Attractor (GA) besteht aus zwei Kernkomponenten: GA-Archive, ein öffentliches Archiv aller im Rahmen dieser Arbeit gesammelten Daten41 und eine Reihe an Applikationen, die Datensätze für GA-Archive sammeln.42

Das GA-System erfüllt folgende Anforderungen.

  • Portabilität der Daten. Sämtliche durch GA gesammelte Daten werden im JSON-Format auf dem Dateisystem gesichert. Dies erleichtert es Sicherungskopien der Datensätze anzufertigen und diese folglich zu veröffentlichen bzw. auf anderen Wegen zu vervielfältigen.

  • Portabilität des Systems. GA wurde in der Programmiersprache PHP verfasst, welche auf allen gängigen Computer-Betriebsystemen43 genutzt werden kann. Außerdem ist das JSON-Datenaustauschformat, in welchem Daten gesichert werden, einfach für Menschen zu lesen und für Maschinen einfach zu parsen.44 Dies erlaubt es nicht-GA-Systemen auf die gewonnenen Daten zurückzugreifen und ergänzende Operationen auszuführen.

Funktionsweise der GA-Softwares

Das GA-System sammelt Daten über das Verhalten von Webseiten-Besuchern. Um diese Daten zu erheben, muss es in eine bestehende Webseite eingebunden werden, die folglich als Wirt dient. Sämtliche Logik und Konfiguration einer GA-Software findet sich in einer einzigen PHP-Datei: system.php. Dies erleichtert es, die GA-Software in eine Webseite einzubinden. Die Datei befindet sich in einem Verzeichnis namens great-attractor, welches als Namensraum dient. Aufgezeichnete Daten werden in ein Verzeichnis namens data als JSON-Dateien geschrieben.

Installation

Es empfiehlt sich, das great-attractor Verzeichnis im Root-Verzeichnis der Wirt-Webseite zu platzieren. Dies erleichtert die Installation der Software. Sollte die Wirt-Webseite ebenso PHP als Skript-Sprache nutzen, so lässt sich das GA-System wie folgt einbinden.

<?php

# GA

include_once("great-attractor/system.php");

ga_init("tracking-name");
ga_register_visit();
ga_register_request();

if (!empty($_POST)) {
  ga_register_form_data($_POST);
}

# END GA

?>

Obiger PHP-Code bindet das System ein (include_once), legt den Namen der Webseite fest (ga_init), registriert den Besuch (ga_register_visit), registriert die HTTP-Anfrage (ga_register_request) und, sollte ein Formular mit HTTP-POST-Daten abgesendet worden sein, registriert das POST Objekt (ga_register_form_data).

Falls das Webseite-System nicht PHP nutzt, muss manuell eine Software-Brücke zum GA-System gebaut werden, worüber die oben genannten Funktionen aufgerufen werden.

Konfiguration

Innerhalb der Datei system.php findet sich die $paths Variable. Sie listet sämtliche Verzeichnisse, die für das GA-System notwendig sind. Verzeichnisse, die in $paths aufgeführt werden, nicht aber Bestandteil des Dateisystems sind, werden bei der ersten Ausführung der GA-Software automatisch angelegt.

Verhalten

Das GA-System kann drei verschiedene Arten von Daten erheben: Die Anzahl der Besuche (wobei eine Sitzung als ein Besuch gezählt wird), der HTTP-Header einer Anfrage und die Einzelheiten einer HTTP-POST-Anfrage (die Daten eines abgesendeten Web-Formulars).

Besuche-Zähler

Die Funktion void ga_register_visit() erhöht den Besuche-Zähler für eine gegebene Webseite. Der Name der Webseite wird durch voidga_init($page_name) festgelegt. Wiederholte Aufrufe derselben Sitzung werden nicht als weitere Besuche gezählt.

Ist der HTTP-GET-Parameter thisisanadmin auf 1 gesetzt wird der Besuch, sowie Folgebesuche derselben Sitzung, nicht von der Software erfasst.

HTTP-Header

Mit der Funktion void ga_register_request() sichert GA den HTTP-Request-Header und weitere Kenndaten der Anfrage. Darunter finden sich:

  • Name der Webseite (pageName)
  • aktuelle Uhrzeit samt Zeitzone (time, timezone)
  • vollständige URL (url)
  • Referenz auf die Quelle der Anfrage (reference)
  • IP-Adresse des Besuchers (ipAddress)
  • eindeutige ID, die der Sitzung zugewiesen wurde (userId)
  • eindeutige ID, die die Anfrage beschreibt (id)
  • eine Liste aller vorhergehenden Anfrage-IDs der Sitzung (previousRequestIds)
  • diverse Informationen über die Geoposition des Besuchers, darunter: Stadt, Region und Ländercode (geo)
POST-Daten

Die Funktion void ga_register_form_data($post) nimmt ein PHP-POST Objekt (für gewöhnlich $_POST) entgegen und sichert es als JSON-Datei. Weiters hinzugefügt werden: die Zeit (time), die Zeitzone (timezone), der Namen der Webseite (pageName), die ID der Sitzung (userId), die ID der Anfrage (requestId) und der Dateiname der Anfrage (requestFilename).

Einsatz

Nachdem eine GA-Software in eine Wirt-Webseite eingebunden wurde, muss diese online veröffentlicht werden. Die bloße Existenz einer Webseite garantiert nicht für Besuche von Software-Agenten. Es empfiehlt sich daher Links zur Webseite auf diversen Online-Plattformen zu publizieren. Damit die einzelnen Plattformen, also die Quellen der Aufrufe, von der GA-Software zuverlässig identifiziert werden können, muss der Link auf die Webseite den GET-Parameter r bei sich führen, der die Quelle beschreibt.

Beispiel: die Wirt-Webseite befindet sich unter www.example.org und ein Link dorthin soll auf der Plattform www.twitter.com publiziert werden. Demnach könnte der auf www.twitter.com publizierte Link wie folgt gestaltet werden: www.example.org/?r=tw.

Außerdem empfiehlt es sich eine Liste zu führen, auf der das Datum und die Zeit der Publizierung auf den einzelnen Plattformen verzeichnet wird. So lassen sich bessere Rückschlüsse über das Verhalten der Besucher ziehen.

Auswertung der Great-Attractor-Daten

Aufbau des Honeypots

Die Great-Attractor Software wurde im Rahmen dieser Arbeit unter der Domäne motionfill.com installiert. Als Wirt-Webseite diente ein frisch installiertes WordPress-CMS in der Version 4.5.2. Die Domäne motionfill.com wurde verwendet, da sie zum Zeitpunkt der GA-Installation bereits vier Jahre und sechs Monate alt war. Damit stand die Chance gut, dass die Domäne bereits in einer Liste von Domänen aufgeführt ist, die bösartige Software-Agenten abarbeiten würden. Weiters war die Domäne bereits seit zwei Jahren inaktiv. Die Wahrscheinlichkeit, dass ein menschlicher Besucher die Domäne aufsuchen würde, war dementsprechend gering.

Am 23. Mai 2016 um 21:06 Uhr (CET) wurde, kurz nach der WordPress-Installation, der Link http://motionfill.com/?r=tw auf dem sozialen Netzwerk Twitter veröffentlicht.45 Der verwendete Twitter-Account hatte zu diesem Zeitpunk keine Twitter-Follower und war damit praktisch nur für Bots erreichbar. Um 21:19 Uhr wurde die HTTP-404-Fehlerseite von https://blogfill.de so umgestellt, dass sie alle Anfragen auf http://motionfill.com/?r=bf umleitete.

Folglich wurden eine Reihe an Einstellungen am WordPress-CMS vorgenommen, um die Sicherheit des Systems bewusst zu verringern. Das sollte Bots aggressivere Attacken erlauben.46

UhrzeitEinstellungenAktion
21:25General Settings → MembershipAnyone can register auf wahr setzen
21:27General Settings → NewUserDefaultRoleauf Contributor setzen
21:30Discussion Settings → OthercommentsettingsComment author must fill out name and email auf falsch setzen
21:31Discussion Settings → BeforeacommentappearsComment author must have a previously approved comment auf falsch setzen
21:33Discussion Settings → CommentModerationHold a comment in the queue if it contains ??? or more links. auf 256 setzen
Die Einstellungen, die am WordPess-CMS vorgenommen wurden

Zudem wurde um 21:36 Uhr ein Artikel aus reinem Blindtext veröffentlicht,47 der keine weitere Funktion erfüllen sollte, als für künstliche Aktivitäten zu sorgen, die für Bots anziehend wirken könnte.

Am 31. Mai 2016 wurde das Experiment um 19:22 Uhr beendet. In dieser Zeitspanne sammelte das Great-Attractor-System 7.482 einzelne Zugriffe. 3.601 dieser Zugriffe enthielten HTTP-POST-Daten, mit welchen sich die Bots48 versuchten an der Webseite anzumelden.

Analyse der gewonnenen Daten

PasswortAnzahl
ginger10
angela10
adidas10
babydoll10
darkness10
elizabeth10
8765432110
12345543219
natalia9
motorola9
1w2q3r4e9
gold9
5555559
1231239
david9
alex9
1234659
monkey19
fatima9
catherine9
hunter9
123zxc9
blahblah9
ricardo9
a1s2d39
123qwe9
1236549
oooooo9
ghbdtn9
sarah9
Die 30 am häufigsten probierten Passwörter

Ein Großteil der Passwörter in dieser Tabelle machen kurze englische Wörter und einfache Muster einer QWERTY-Tastatur49 aus.

BenutzernamePasswortAnzahl
admin12345672
adminpass2
admin1234567892
admin123456782
adminpassword2
admin1231232
admin12342
Die meist verwendeten Benutzername-Passwort-Kombinationen

Obige Tabelle zeigt alle Anmeldeversuche, die zwei mal durchgeführt wurden. Alle anderen Kombinationen von Benutzername und Passwort wurden nur einmal probiert. Angesichts der Tatsache, dass von den 3.601 Anmeldeversuchen 3.587 von einer einzigen IP-Adresse ausgingen, die sich auf Russland zurückverfolgen lässt, ergibt das viel Sinn.

BenutzernameAnzahl
admin334
support334
tester334
test332
{host}331
{hostname}328
adm324
administrator322
user2322
Administrator319
user319
kristleguiffretgo1
florian1
Die am häufigsten probierten Benutzernamen

Im Vergleich zu der Anzahl aller unterschiedlichen probierten Passwörter (insgesamt 616), wirkt die Anzahl der unterschiedlichen probierten Benutzernamen (13) sehr klein. Die vorangehende Tabelle zeigt dabei die vollständige Liste an Benutzernamen samt Anzahl an. Bemerkenswert ist hierbei der einmalig probierte Benutzername florian, der in Kombination mit dem Passwort florian an das Login-System von WordPress gesendet wurde. Interessant daran ist, dass der tatsächliche Benutzername für die WordPress-Installation florian war, wenn auch mit einem anderen Passwort. Florian ist zudem der Vorname des Besitzers der Domäne motionfill.com. Wie der Bot, der seine Anfrage aus dem chinesischen Festland versendet hatte, genau auf diese Information gestoßen ist, bleibt unklar. Der Name Florian taucht beispielsweise nicht in den WHOIS-Informationen der Domäne motionfill.com auf.

User-Agent#
3624
jetmon/1.0 (Jetpack Site Uptime Monitor by WordPress.com)2276
Mozilla/5.0 (compatible; MJ12bot/v1.4.5; http://www.majestic12.co.uk/bot.php?+)588
Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)116
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)110
Java/1.4.1_04106
Mozilla/5.0 (Windows NT 6.0; rv:16.0) Firefox/12.074
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)59
Mozilla/5.0 (Windows NT 6.1; rv:34.0) Gecko/20100101 Firefox/34.048
Java/1.8.0_9136
Mozilla/5.0 (Windows NT 6.0; rv:14.0) Gecko/20100101 Firefox/14.0.130
Mozilla/5.0 (Windows NT 6.2; WOW64)26
Die zwölf am meisten verwendeten User-Agents

Wie die obige Tabelle erkenntlich, war für die Mehrheit der Anfragen kein User-Agent-HTTP-Header gesetzt. Auf Platz zwei findet sich der WordPress-eigene Laufzeit-Monitoring-Dienst Jetpack. In der Tabelle finden sich zudem zwei Suchmaschinen-User-Agenten: bingbot/2.0 und Googlebot/2.1. Diese Daten sind mit Vorsicht zu genießen, jeder Bot kann den eigenen User-Agent frei wählen und daher auch den anderer Bots angeben.

Der vollständige Datenbestand lässt sich online unter github.com/SoftwareAgenten/GA-Archive/…/Great-Attractor einsehen. Diese Daten wurden mit dem GA-Analyzer50 ausgewertet, eine Spezialsoftware, die eigens für das Untersuchen von Great-Attractor-Datenbeständen entwickelt wurde.

Eigener Software-Agent

WWWEB

Dieses Kapitel beschreibt anhand eines konkreten Beispiels, wie ein Software-Agent aufgebaut ist und wie er funktioniert. Eigens für diese Arbeit wurde ein Webcrawler namens WWWEB (kurz für World Wide Web Exploring Bot, englisch für Weltweites Netz erkundender Roboter) programmiert.51 WWWEB startet an einer vordefinierten Domäne, zum Beispiel bei example.org und durchsucht die dazugehörige Webseite auf Port 80 nach allen Links, die auf andere Domänen zeigen, beispielsweise other.org und another-one.org. Wurden diese Domänen gefunden, macht WWWEB eine Anfrage an http://example.org/robots.txt. Diese Datei wird folglich analysiert und in einem abstrakten Datenmodell festgehalten.

Damit hat WWWEB example.org abgearbeitet. Die Domäne wird in eine Liste eingetragen, um nicht erneut analysiert zu werden. Im Folgenden durchläuft WWWEB dieselbe Prozedur auf einer der zuvor gefundenen Domänen. Da die meisten Startseiten zu mehr als einer anderen Domäne verlinken, füllt sich die Liste schneller an, als sie entleert wird.

Periodisch werden Berichte im JSON-Dateiformat angelegt, um beim Beenden des WWWEB Programmes möglichst wenige Daten zu verlieren. Ursachen für ein solches Beenden können sein:

  • WWWEB wurde vom Betriebssystem beendet, um Ressourcen frei zu machen.

  • Der Host, auf welchem WWWEB läuft, hat eine begrenzte Laufzeit für Node.js-Prozesse52 festgelegt.

  • Der Computer wurde von der Stromversorgung getrennt.

Architektur

Das Programm läuft großteils in einer Haupt-Routine, die kontinuierlich von der crawl-Funktion aufgerufen wird. crawl verwaltet einen Stapelspeicher (Stack), auf welchen gefundene Domänen gelegt und auch wieder heruntergenommen werden können. Die Domänen werden deshalb nach dem Last Come, First Served (zuletzt herein – zuerst hinaus) Prinzip behandelt. Die Summe aller untersuchen Domänen wird als Bericht (Report) bezeichnet.

Ein Bericht besteht aus einer Startzeit, der Startdomäne und einem Protokoll. Ein Protokoll wiederum besteht aus einer Reihe von Aufzeichnungen (Records). Diese Aufzeichnungen setzen sich aus einem Zeitpunkt und einer Domäne-Konfiguration (DomainSettings) zusammen, welche eine Domäne mit einem Satz an Regeln (RuleSet) verknüpfen. Ein RuleSet beschreibt den Zusammenhang eines User-Agents und den dafür definierten Regeln (Rules).

WWWEBs Netzwerkanfragen setzen auf Promises auf, eine Technik, bei welcher ein Teil des Programms ein Versprechen äußert, gewisse Daten bereitzustellen. So lässt sich ein asynchroner Programmierstil mit iterativen Charakteristiken umsetzen.

Der Speichervorgang, welcher den aktuellen Bericht in einen JSON-String umwandelt und in das Dateisystem schreibt, wird periodisch von der Event-Schleife der Node.js-Umgebung aufgerufen und ist damit unabhängig vom Kontrollfluss des restlichen Programms.

Installation

WWWEB setzt die Node.js-Umgebung in der Version 6.0.0 oder höher voraus und lässt sich über den Package-Manager npm installieren.53 Sowohl Node.js als auch npm sind für Microsoft Windows, macOS und Linux verfügbar.

Sind Node.js und npm, jeweils in der erforderten Version, vorhanden, so genügt der folgende Befehl, um WWWEB auf einem Computer zu installieren.

$ npm install -g wwweb

Einsatz

Bei WWWEB handelt es sich um ein Kommandozeilen-Tool. Es verlangt zwei Parameter: die Startdomäne und das Ausgabeverzeichnis, in welches die Berichte geschrieben werden. Weitere Parameter können mit wwweb --help eingesehen werden.

Der folgende Befehl startet WWWEB bei example.org, schreibt alle zwei Minuten einen Bericht in das Verzeichnis ~/reports und wartet höchstens neun Sekunden auf das Laden von Dateien.

$ wwweb -d example.org -s 120 -o ~/reports --timeout 9000

Für einen besseren Einblick in die Funktionsweise des Programms bietet WWWEB einen zweistufigen Verbose-Modus54 an. Mit -v werden Warnmitteilungen und unwichtige Informationen ausgegeben. Ist der Parameter doppelt vorhanden (-vv) werden ebenfalls Debugging-Informationen ausgegeben.

Auswertung der WWWEB-Daten

Am 4. Juni 2016 sammelte WWWEB Daten von 2.190 verschiedenen Internet-Domänen über die Zeitspanne von 18:43:25 Uhr bis um 21:43:19 Uhr. Das entspricht zwölf Domänen pro Minute. Als Startdomäne wurde addpixel.net gewählt. WWWEB navigierte mit dem Standard User-Agent von axios/0.12.0.

Aus den dabei gescannten robots.txt-Dateien können verschiedenste Informationen gewonnen werden.55 Zur Analyse des Berichts wurde die GA-Analyzer Software50 eingesetzt, da sie sich in eine interaktive Node.js-Umgebung laden lässt und dort dedizierte Funktionen für das Untersuchen von JSON-Strukturen bereitstellt.

Nicht zugelassene Verzeichnisse

PfadAnzahl
/462
/wp-admin/256
 201
/search/189
/admin/188
/includes/163
/modules/158
/scripts/158
Die acht am häufigsten verbotenen Pfade und deren Anzahl

Diese Tabelle zeigt unter anderem die Dominanz von WordPress gegenüber anderen Content-Management-Systemen; der Pfad /wp-admin/ beschreibt die Lage der Administratoren-Oberfläche von WordPress. Auf Platz eins und drei finden sich zwei gleichbedeutende Ausdrücke, beide verbieten einem User-Agent sämtliche Unterverzeichnisse sowie das Wurzelverzeichnis anzufragen. Auf Platz vier findet sich ein typischer Pfad zu einer Suchseite. Dieser wird oft von Software-Agenten verborgen, um eine bessere Platzierung bei Suchmaschinen zu erreichen.56

/includes/, /modules/ und /scripts/ hingegen sind typische Verzeichnisse, in welchen Bausteine einer Webseite platziert werden. Diese Bausteine alleine bieten weder Bots noch Menschen einen Mehrwert und werden daher als verboten markiert. Die vollständige Liste aller von WWWEB indexierten Verzeichnisse findet sich im WWWEB-Archiv unter https://github.com/SoftwareAgenten/GA-Archive/tree/master/WWWEB.

User-Agents

User-AgentAnzahl
*2501
Googlebot124
Slurb110
008109
AhrefsBot83
Die fünf meist gelisteten User-Agenten und deren Anzahl

Es zeigt sich, dass der am häufigsten gelistete User-Agent * (Asterisk) ist. Dieser Asterisk wird als Wildcard bezeichnet und steht dabei für sämtliche User-Agents. Auf den Plätzen zwei und drei finden sich Googlebot und Slurb, zwei Webspider die jeweils der Google-Suche und der Yahoo!-Suche zugehörig sind. 008 ist der User-Agent des 80legs-Webcrawlers, welcher als kommerzielle Dienstleistung angeboten wird. AhrefBot scannt das Web nach Backlinks und anderen Informationen und stellt diese Daten in Form einer kommerzielle Dienstleistung bereit. Die vollständige Tabelle aller User-Agents und deren Anzahl findet sich ebenfalls im WWWEB-Archiv.57

Zusammenfassung

Software-Agenten sind maßgeblich an der Entwicklung des Internets beteiligt. Die großen Mengen an Informationen, die sich durch das Internet bewegen, sind lange schon viel zu groß, um alleinig von Menschen verarbeitet zu werden. Immer schnellere und intelligentere Bots übernehmen inzwischen ein breites Spektrum an Aufgaben. Diese Aufgaben können Schaden verursachen, wie Spam- oder DDoS-Bots, oder auch versuchen, diesen zu unterbinden, wie Webcrawler, die das Web auf Phishing-Seiten untersuchen.

Durch den rapiden Fortschritt im Bereich der Künstlichen Intelligenz werden Technologien wie CAPTCHAs und Honeypots immer unzuverlässiger. Neue Ansätze, Bots aus gewissen Bereichen des Internets auszusperren, wie der Zwang zur Beglaubigung als Mensch, sind umständlich und verlangen die Übergabe persönlicher Daten an Dritte.

Spam-Nachrichten sind immer noch effektiv genug, um ein lukratives Geschäft zu sein. Wie ein biologisches Virus verändern sie ihre Form, um Spam-Filtern zu entwischen. Der beste Schutz gegen Spam ist daher, die eigene Adresse nicht öffentlich zugänglich zu machen. Brute-Force-Bots versuchen Zugriff auf Webseiten zu erlangen, indem sie Listen von häufigen Benutzernamen und Passwörtern über Tage hinweg ausprobieren. Starke Passwörter sind ein Muss, um im Internet sicher zu bleiben.

Projekte wie WWWEB beweisen, dass sich mit 250 Zeilen Code bereits mächtige Software-Agenten programmieren lassen, die das Web nach Informationen durchstöbern. Ein einzelner Laptop konnte so in drei Stunden 2.190 unterschiedliche Webseiten analysieren. Skaliert man diese Zahlen auf Tausende von Hochleistungscomputer, bekommt man eine Vorstellung, wozu moderne Software-Agenten in der Lage sind.

Fußnoten & Quellen
  1. Juniper Research – ‘Internet of Things’ Connected Devices to Almost Triple to Over 38 Billion Units by 2020, (2016-06-08)

  2. Ellen Emmerentze Jervell – For This Author, 10,000 Wikipedia Articles Is a Good Day’s Work, (2016-06-08)

  3. Scott Spetka – The TkWWW Robot: Beyond Browsing, (2016-06-08)

  4. W3C – Standards - W3C, (2016-06-08)

  5. W3C – Search robots – Appendix B: Performance, Implementation, and Design Notes, (2016-06-08)

  6. W3C – The robots.txt file – Appendix B: Performance, Implementation, and Design Notes, (2016-06-08)

  7. Google Developers – Spezifikationen für Robots-Meta-Tags und X-Robots-Tag-HTTP-Header, (2016-06-08)

  8. Yandex – Using robots.txt, (2016-06-08)

  9. DuckDuckGo – DuckDuckGo-Suchroboter, (2016-06-08)

  10. Lorenzo Franceschi-Bicchierai – Facebook Fan Pages Spam Is a $200 Million Business, (2016-06-08)

  11. Steve Haak – Whatsapp richtet Spam-Sperre ein, (2016-06-08)

  12. Wikipedia – Ad Impression – Wikipedia, Die freie Enzyklopädie, (2016-06-08)

  13. Ryan Holiday – Fake Traffic Means Real Paydays, (2016-06-08)

  14. Dan Hinckley – New Study: Data Reveals 67 % of Consumers are Influenced by Online Reviews, (2016-06-08)

  15. Open Source Initiative – The MIT License (MIT), (2016-06-08) 2

  16. Parsen beschreibt das Umwandeln von Text in ein für Computer verständliches, logisches Modell.

  17. https://github.com/SoftwareAgenten/GA-Archive

  18. Brad Templeton – Origin of the term “spam” to mean net abuse, (2016-06-08)

  19. Jon Postel – On the Junk Mail Problem, (2016-06-08)

  20. Norman Longmate – How We Lived Then: A History of Everyday Life During the Second World War, in: Random House UK, 1971, S. 142, 159

  21. Monty Python – Spam - Monty Python’s The Flying Circus, (2016-06-08)

  22. Focus Online – Unerwünschte Reklame im Briefkasten ist illegal, (2016-06-08)

  23. Silvan Mühlemann – Nine ways to obfuscate e-mail addresses compared, (2016-06-08) 2

  24. Amit Agarwal – How to Hide your Email Address on Web Pages, (2016-06-08)

  25. CSS ist für die Gestaltung von Webseiten zuständig und bietet daher nicht eine Vielzahl an Sicherheitslücken, für welche einige Nutzer JavaScript deaktivieren. Die Anzahl an Webseiten-Benutzern, welche CSS deaktiviert haben, ist derart gering, dass sich zu diesem Thema keine fundierten Statistiken finden lassen.

  26. Nicholas C. Zakas – How many users have JavaScript disabled?, (2016-06-08)

  27. Christopher Swenson – Modern Cryptanalysis: Techniques for Advanced Code Breaking, ISBN: 9780470135938, in: John Wiley & Sons., 2008, S. 5

  28. Ein Generator für codierte E-Mail-Adressen findet sich unter http://rumkin.com/tools/mailto_encoder/custom.php

  29. The Internet Society – Uniform Resource Identifier (URI): Generic Syntax, (2016-06-08)

  30. Team Textpattern – How do I skip the comment preview? – Frequently Asked Questions – Textpattern CMS, (2016-06-08)

  31. Ein vollständiger Report aller Daten und eine Beschreibung, wie sie gewonnen wurden, findet sich online unter https://github.com/SoftwareAgenten/GA-Archive/tree/master/Comments.

  32. Stunt Pope – filter.plx -a context/keyword based spam filter, (2016-06-08)

  33. Carnegie Mellon University – CAPTCHA: Telling Humans and Computers Apart Automatically, (2016-06-08)

  34. Sarah Perez – Consumers Spend 85 % Of Time On Smartphones In Apps, But Only 5 Apps See Heavy Use, (2016-06-08)

  35. Der Name wurde in Anlehnung an das kosmische Filament, im deutschsprachigen Raum auch als Großer Attraktor bekannt, gewählt.

  36. Eine Kopie der Lizenz ist unter https://legal.addpixel.net/licenses/MIT/ zu finden.

  37. GitHub.com Projektseite: https://github.com/SoftwareAgenten/Great-Attractor

  38. Hierbei handelt es sich lediglich um eine kurze Zusammenfassung die keinerlei Anspruch auf Vollständigkeit oder Rechtsgültigkeit ausübt. Eine vollständige Kopie der Lizenz findet sich unter https://legal.addpixel.net/licenses/MIT/.

  39. Cade Metz – How GitHub Conquered Google, Microsoft, and Everyone Else, (2016-06-08)

  40. vollständig einsichtbar unter https://github.com/SoftwareAgenten/GA-Archive

  41. Eine Liste alle Applikation kann unter https://github.com/SoftwareAgenten/GA-Archive/#data-collectors eingesehen werden.

  42. Darunter: Linux, FreeBSD, Unix, Windows und Darwin

  43. Ecma International – Einführung in JSON, (2016-06-08)

  44. Permalink zum Tweet: https://twitter.com/SoftwareAgenten/status/734824609590202368

  45. Selbstverständlich wurde bei der Installation ein besonders sicheres Password für den Administratoren-Account gewählt.

  46. Adresse: http://motionfill.com/2016/05/23/catch-all/

  47. Die Tatsache, dass die meisten Anmeldeanfragen direkt an den Server gesendet wurden, also ohne zuvor die Webseite oder die Anmeldeseite zu besuchen, lässt darauf schließen, dass es sich in diesem Fall um Bots handelt. Das liegt daran, dass Bots die Domäne als aktiv eingestuft hatten und daraufhin direkte HTTP-POST-Anfragen an den Server sendeten, ein Verhalten, das in in einem handelsüblichen Webbrowser wie ihn Menschen benutzen nicht möglich ist.

  48. Das QWERTY-Tastaturlayout ist im englischen Sprachraum das am meisten verbreitete Tastaturlayout und ähnelt anderen Layouts wie dem deutschen QWERTZ- oder dem französischen AZERTY-Layout.

  49. GA-Analyzer Projektseite: https://github.com/SoftwareAgenten/GA-Analyzer 2

  50. Der Quellcode für WWWEB findet sich unter https://github.com/SoftwareAgenten/WWWEB

  51. WWWEB wurde für die Software-Plattform Node.js programmiert.

  52. Die Projektseite für das npm-Packet findet sich unter https://www.npmjs.com/package/wwweb

  53. Wikipedia – Verbose – Wikipedia, Die freie Enzyklopädie, (2016-06-08)

  54. Der vollständige Bericht findet sich unter https://github.com/SoftwareAgenten/GA-Archive/blob/master/WWWEB/wwweb-report_2016-06-04_18-43-25.json

  55. Matt Cutts – Search results in search results, (2016-06-08)

  56. Zu finden unter: https://github.com/SoftwareAgenten/GA-Archive/tree/master/WWWEB