Seit Jahren erwartet, ist endlich Version 4 des Samba-Servers erschienen, der nun als vollwertige Alternative zu Microsofts Active Directory dienen kann. In der ... (mehr)

XML und HTML

Das Beispiel zeigt zwei der nützlichen Funktionen der »LIB_PARSE« . So gibt die Funktion »return_between()« einfach den Inhalt eines XML-Elements zurück, das von zwei Tags eingeschlossen ist. Der Schalter »EXCL« legt fest, dass die Funktion nur den Inhalt zurückgibt, aber nicht die Tags. Zum gegenteiligen Verhalten führt der Schalter »INCL« .

Die andere in Listing 3 verwendete Funktion ist »parse_array()« . Sie erzeugt ein Array aus allen Zeichen, die zwischen zwei Tags stehen. Im Beispiel ist dies die Vehicle Identification Number. Auf normalen Webseiten lässt sich »parse_array()« dazu verwenden, zum Beispiel Tabellen-Zellen, Hyperlinks oder Bildreferenzen zu finden, wie es Listing 4 demonstriert.

Listing 4

HTML parsen

 

Um mit der Verkaufswebsite zu kommunizieren, muss ein Bot auch Formulare auf Webseiten ausfüllen und abschicken können, etwa für den Kauf, die Bezahlung und zur Organisation der Überführung. Prinzipiell gibt es dafür zwei Methoden, je nachdem, welche der Server für das jeweilige Formular vorsieht. Die eine ist ein GET-Request, bei dem die Parameter im Query-String kodiert sind. Meistens verwenden Formulare aber die POST-Methode. Wie ein Bot damit umgeht, ist in Listing 5 zu sehen.

Listing 5

Ein Formular POSTen

 

Ich entwickle Harvester und Server entweder in einer WAMP- oder LAMP-Umgebung (Windows, Apache, MySQL, PHP beziehungsweise Linux, Apache, MySQL, PHP), wobei Ubuntu meine bevorzugte Linux-Distribution ist. Ich habe Bots schon in Perl, Java, Visual Basic und sogar Tcl geschrieben. In den letzten zwölf Jahren habe ich dafür aber ausschließlich PHP verwendet. Die Sprache ist einfach und verfügt über gute Bibliotheken wie der Libcurl5, mit der sich Webseiten herunterladen lassen. Zusätzlich zu den beschriebenen Open-Source-Tools verwende ich nur einen Text-Editor, normalerweise Jedit [3].

Früher lief auf meinen Produktionsservern FreeBSD, aber mittlerweile bin ich zu billigen Linux-Hosting-Angebote gewechselt, mit der Betonung auf "billig". Nach meiner Erfahrung sind solche Server für ein paar Euro im Monat für meine Zwecke mehr als ausreichend. Seit Neuestem verwende ich auch die Amazon-Cloud und nutze dabei die Flexibilität und die Kostenvorteile.

Und die Moral

Ist es fair, ein Botnetz zu programmieren und gegenüber der Konkurrenz einen Vorteil zu erlangen? Im Fall des Autokaufs hätte die Alternative darin bestanden, genauso viele Rechner zu kaufen, sie in einen Raum zu stellen und hinter jeden einen Mitarbeiter zu setzen, der das Gleiche manuell macht, nur vermutlich etwas schlechter.

Mit dem Botnetz hat die Autoverkaufssite die gleichen Verkäufe gemacht wie ohne es. Vermutlich hat mein Kunde sogar mehr Autos gekauft, als er es sonst getan hätte. Vielleicht hat das Botnetz sogar den Verkäufern Zeit und Nerven gespart, denn es macht bei der Bezahlung und dem Aushandeln der Überführung weniger Fehler.

Auch wenn der Betrieb eines solchen Botnetzes legal ist, sollten Botnetz-Entwickler sich nicht in die Karten schauen lassen. Der Grund dafür, sich zu verstecken, liegt darin, dass man eine neue Technologie entwickelt, um ein Problem zu lösen, das andere traditionell lösen. Sich deshalb im Verborgenen zu bewegen, ist die beste Maxime, denn man weiß nie, wer die Server-Logs liest und wer welche Verbindungen zur Konkurrenz besitzt.

Viele Botnetze verwenden Proxies, um sich zu verstecken, aber ich denke, der beste Weg, unerkannt zu bleiben, besteht darin, möglichst gut einen menschlichen Anwender zu simulieren. Methoden dafür sind: zufällige Verzögerungen einbauen, nur mit der Zielwebsite interagieren, mehrere Benutzer-Accounts verwenden und das Botnetz nur zu Stoßzeiten einsetzen.

Mein Leben als Software-Entwickler wurde interessant, als ich anfing, Bots zu schreiben. Mein Einstieg dafür war mein Interesse an Netzwerksicherheit, das schnell dazu führte, dass ich automatisierte Webclients schrieb. Diese Webbots waren mein Ticket für die Flucht aus der Enge meines Cubicle, und es begann ein Lebensabschnitt mit abgewetzten Pässen, Buchverträgen und Vorträgen auf Konferenzen rund um die Welt. Aber die größte Befriedigung besteht vermutlich darin, in die zufriedenen Gesichter meiner Kunden zu sehen, deren Problem ich in einer interessanten und unerwarteten Weise gelöst habe.

Der Autor

Michael Schrenk ist ein Software-Entwickler, Autor und Konferenzsprecher, der sich auf kommerzielle Botnetze spezialisiert hat. Er hat das Buch Webbots, Spiders, and Screen Scrapers (No Starch Press) geschrieben und ist unter http://www.schrenk.com zu erreichen.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Europol macht Botnetz "Ramnit" dicht

In einer von Europol koordinierten Aktion wurde ein Botnetz mit 3,2 Millionen Rechnern außer Betrieb gesetzt.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019