BLACK HAT USA Konferenz. Botnet von einer Million Browsern. Teil 1Matt Johansson: Jetzt zeige ich Ihnen, wie Sie diesen Code eingeben. Es gibt viele Werbenetzwerke, aber wir haben uns für dieses entschieden, weil wir damit tun können, was wir wollen.

Sie können ein ausreichend großes Bannerbild auswählen, hier einfügen und eine URL zuweisen, damit der Benutzer nach dem Klicken auf das Banner zur gewünschten Site wechselt. Die Besitzer dieses Werbenetzwerks bieten die HTML-JavaScript-Option an, es klingt sehr gut.
Wir begannen mit dem, was oben auf der Folie gezeigt wird, und mussten den gesamten Genehmigungsprozess durchlaufen, der wahrscheinlich der schwierigste in unserer Studie war. Dies geschah nicht aus den Gründen, über die Sie nachgedacht haben, sondern weil sie JavaScript nicht sehr gut darstellen und sich nicht wirklich darum kümmern. Tatsächlich haben sie dafür gesorgt, dass die Anzeige schön aussieht und wie eine Werbung funktioniert, sodass ich unseren unsichtbaren Pfad nicht weiter verfolgen und einfach unseren mystischen JavaScript-Code irgendwo im Hintergrund markieren kann.
Wir haben das von Jeremy entwickelte Code-Ausführungsskript eingefügt. Sie sehen es im Textfeld im unteren Fenster und es wurde von Werbetreibenden ohne Probleme genehmigt. Wir wollten es jedoch jederzeit neu konfigurieren können, um unsere Forschung zu diversifizieren, da sich Dinge wie URLs häufig ändern. Aber wenn wir etwas Neues ausprobieren wollten, müssten wir den Genehmigungsprozess erneut erleben. Es dauert nicht lange, aber es ist nur ärgerlich, weil sie es manchmal genehmigten und manchmal etwas daran nicht mochten und wir Änderungen vornehmen mussten.

Wenn beispielsweise eine E-Mail-Anwendung Skript-Tags geöffnet hat, ist der gesamte JavaScript-Code verschwunden, und ich musste ihn verschieben. Ich musste ihnen erklären, warum es notwendig ist, hier weniger als 1 Zeichen zu setzen, und es gibt 1 Zeichen mehr, wonach sie sagten, dass die Anzeigen nicht richtig geschaltet wurden, im Allgemeinen hat es Spaß gemacht.
Daher haben wir den Code direkt in das Werbebanner eingefügt und nur das Quellenskript eingegeben, in dem sich unsere Datei befand. Dieses können wir jederzeit ohne Genehmigung der Eigentümer des Werbenetzwerks ändern. Auf diese Weise könnten wir unsere Datei einfach in ein völlig harmloses JavaScript ändern, selbst wenn sie Leute einstellen würden, die sich mit statischer Analyse von JavaScript-Code auskennen. Daher wäre es sehr schwierig, unseren Betrug mit dieser Methode zur Einführung von Schadcode aufzudecken.
Die folgende Folie zeigt unser Werbebanner.

Sie genehmigten eine dieser Entwurfsoptionen. Ich war zu faul, um nach anderen Bildern zu suchen, deshalb habe ich diese Idee einfach von der WhiteHat-Unternehmenswebsite übernommen. Der Text ist sehr einfach: "Holen Sie sich eine kostenlose 30-Tage-Testversion, fordern Sie sie jetzt an!". Klicken Sie also auf das Banner, es ist völlig kostenlos!
Jeremy Grossman: Im Bannercode befand sich ein Skript-Tag für den Speicherort unserer Datei
category.js unter :
ec2-23-20-141-160.compute-1.amazonaws.com/campaign.js , das folgendermaßen aussah:
for (var i = 0; i < 10000; i++) { var img = new Image(); var url = 'http:
Wir können es jederzeit und jederzeit ohne Genehmigung ändern. Wir wussten nicht, wie lange diese Browser unsere Anzeigen in diesem bestimmten Werbenetzwerk anzeigen mussten. Statt 100, 200 oder 300 Aufrufe stoppten wir sofort bei 10.000 und hofften auf das Beste.
Matt Johansson: Als wir klein anfingen, wollten wir sehen, ob wir Benutzer dazu bringen können, uns zu kontaktieren. Wir konnten dies an unserem Ende des Netzwerks sehen, wir sahen alle Personen, die unserem Link folgten, weil die Anfragen von ihren Browsern kamen und wir ihre IP-Adressen bestimmen konnten. Zuerst wollten wir sehen, wie wir dieses Ding bereitgestellt haben und wie der Code funktioniert, da es nicht der Dienst war, bei dem Sie für Klicks bezahlen, sondern die garantierte Anzeigezeit.
Jeremy Grossman: Hier ist ein weiterer Screenshot. Dies ist eine „einfache“ Demonstration, die wir speziell für BlackHat vorbereitet haben.

Unten links sehen Sie den Amazon AWS-Server, der derzeit noch funktioniert. Die anfängliche Metrik ist unten dargestellt: Die Arbeitszeit des Servers im Werbenetzwerk von Matt beträgt 8 Minuten, die Gesamtzahl der Zugriffe beträgt 4130, dies ist nicht die Anzahl der eindeutigen Besucher der Website, sondern die tatsächlichen Webanfragen mit einem Gesamtverkehrsvolumen von 1,9 MB, die Anzahl der gleichzeitigen Anfragen beträgt 5. Wir sehen das Protokoll zum Registrieren von Metriken, Webserver-Protokollen sowie die Anzahl der Echtzeit-Minuten für Besuche auf der von uns bezahlten Site.
Matt Johanson: Wenn Sie sich die nächste Folie ansehen, sehen Sie einen Sprung zwischen 8 und 10 Minuten - die Gesamtzahl der Zugriffe stieg auf 15.000.

All dies kann nur durch 1 Anzeige im Werbenetzwerk erfolgen. Wenn Sie dem Werbenetzwerk einfach mehr Geld hinzufügen können, sieht es aus wie ein "Gipfel im Tal". Ich möchte sagen, dass all dies dank der gekauften Minuten des Browsers möglich wurde und innerhalb von 10 Minuten, nachdem der Server mit dem Werbenetzwerk zusammengearbeitet hat, ungefähr 15.000 Anfragen eingegangen sind.
Dann haben wir eine interessante Sache bemerkt. Ich möchte Sie daran erinnern, dass wir kein traditionelles Werbenetzwerk hatten. Wir haben die Browser-Minuten bezahlt. Das heißt, jemand hat uns seinen Browser zur Verfügung gestellt, um Teil dieses magischen Netzwerks zu werden. Tatsächlich haben sie uns die Zeit ihres Browsers und die Zeit ihres Prozessors verkauft. Wir haben uns entschlossen zu sehen, was im Hintergrund dieses Netzwerks passiert, welche Browser dort verwendet werden, wir wollten ein wenig mit Firefox und dergleichen spielen.
Und dann haben wir festgestellt, dass eine ganze Reihe von Anrufen von PhantomJS in unser Netzwerk kommen. Wer kennt PhantomJS? Ich sehe nur wenige Leute.

PhantomJS ist ein kopfloser Browser, dh ein Browser, der auf Geräten ohne Bildschirm ausgeführt werden kann, z. B. auf einem Server. Das heißt, dies ist nicht jemand, der im Internet sitzt und auf die Browser-Registerkarten auf seinem Desktop klickt, sondern ein Roboter. Es kann für Komponententests verwendet werden und wird über die Befehlszeile gestartet. Das heißt, jemand hat sein Spiel in unserem System geführt und versucht, Minuten zu bekommen. Andere Leute missbrauchen es auf verschiedene Weise und es hat Spaß gemacht, es zu sehen. Wir haben sichergestellt, dass es sich bei den Minuten nicht um echte Personen handelt, die auf ihren Browser klicken, sondern um PhantomJS-Bots.
Jeremy Grossman: Die folgenden Folien zeigen die Dynamik des Prozesses: In 15 Minuten gingen 28.000 Anfragen ein, in 20 Minuten fast 44.000 Anfragen, in 22 Minuten erreichte die Anzahl der Anfragen 61500.
Matt Johansson: Möglicherweise stellen Sie fest, dass der gesamte Datenverkehr sehr gering ist. Wir senden ihnen lediglich eine URL, die nicht vorhanden ist. 8,5 MB in 20 Minuten bedeuten, dass Benutzer gerade einen 404-Fehler erhalten haben.
Jeremy Grossman: Fast 26 Minuten, und wir erhalten 82.000 Aufrufe, dann 35 Minuten, 9 gleichzeitige Anfragen und fast 102.000 Zugriffe.
Matt Johanson: Wir haben unser Geld bis zum Ende gespart, um mit unseren „Impressionen“, die fast 20 US-Dollar kosteten, einen entscheidenden Schlag zu versetzen, nachdem das Werbenetzwerk im normalen Modus 30 bis 45 Minuten lang gearbeitet hatte. Eigentlich wollte ich maximal 10 Dollar pro Tag für diese Studie ausgeben. Nach 43 Minuten hatten wir 255 Anfragen, 133,5 Tausend Zugriffe, und unser Netzwerk erreichte in 54 Minuten den Höhepunkt des Verkehrs - 256 Anfragen und 244425 Besuche.

Schauen Sie sich die gleichzeitigen Anforderungen an, auf die wir abzielen. 255 Der Apache-Server arbeitet nicht schneller. Die Screenshots zeigen, dass der Server nicht neu starten möchte, um die Metrikdaten zu aktualisieren. Nachdem die Anzahl der Treffer 130.000 erreicht hatte und der Datenverkehr 36 MB betrug, haben wir beschlossen, den Serverdurchsatz ein wenig zu erhöhen, und sie darauf hingewiesen, die Anwendung „Aplication Security Specialist (ASS)“ herunterzuladen. Jetzt haben wir noch mehr zertifizierte „Asses“. im Bereich der Sicherheit. Danach stieg das Verkehrsaufkommen stark auf 117 MB. Nach 55 Minuten hatten wir 256.000 Besuche mit 253 MB Verkehr.
Jeremy Grossman: Nach 59 Minuten und 48 Sekunden, dh eine Stunde nach dem Start des Servers und 20 Minuten nach dem Herunterladen des Bildes, erreichte der Datenverkehr 1 GB. Danach haben wir beschlossen, es nur für eine Weile stehen zu lassen, zum Beispiel für sieben Stunden, damit es funktioniert.
Auf der nächsten Folie sehen Sie das Ergebnis unseres Systems in 8 Stunden: mehr als 4 Millionen Besuche, 114,7 GB Verkehr.
Matt Johansson: Wir haben den gleichen Fehler gemacht wie beim ersten Mal - wir sind zum Abendessen gegangen. Bevor wir mit dem Abspielen des Werbenetzwerks begannen, hatten wir beispielsweise 30.000 Aufrufe in wenigen Stunden, und wir haben immer noch mit unserem Code herumgespielt, sodass wir dachten, wir würden während der Mittagspause weitere zehntausend Aufrufe erhalten. Als wir zurückkamen, sahen wir gut aus, etwas mehr als 30.000, aber dann stellten wir fest - nicht 30.000, aber eine Größenordnung mehr - 300.000 Aufrufe!
Wenn Sie mehr Geld ausgeben würden, würden Sie viel schneller viel mehr "Impressionen" erhalten, aber in unserem Fall hatten wir nach 18 Stunden und 42 Minuten des Servers fast eine Million Aufrufe und 240 GB Datenverkehr, sodass Amazon Hosting uns mehr kostete als das Hacken einer Werbung Netzwerk.
Jeremy Grossman: Nach 1 Tag und 6 Stunden mit 241 GB Verkehr hatten wir schließlich fast eineinhalb Millionen Aufrufe. Wie Sie auf dieser Folie sehen können, haben wir zu diesem Zeitpunkt fast alle Minuten im System verbraucht und festgestellt, dass wir keine weiteren Minuten benötigen. Wir wussten jedoch nicht, wie die Dinge dort ablaufen würden und was mitten in der Nacht passieren würde, also gingen wir für BlackHat in den E-Commerce und kauften eine weitere Minute.
Matt Johansson: Ich empfehle Ihnen dies nicht, weil ich meine Regel brechen musste, um nicht mehr als 10 Dollar pro Tag auszugeben.

Jeremy Grossman: Jetzt hatten wir fast 250 GB Verkehr. Auf dem Bildschirm werden die Zeilen schnell ausgeführt. Dies sind die Apache-Serverprotokolle. Anschließend wird der Screenshot „Diese Seite ist nicht verfügbar“ angezeigt, da der Server die Last nicht bewältigen konnte und erfolgreich gestorben ist. Wir könnten alle Protokolle bis zum Ende durchgehen, aber es wird zu lange dauern. Für all das Vergnügen haben wir nur 20 US-Dollar bezahlt und am Ende haben wir einen klassischen DoS-Servicefehler erhalten, der sich in der Ablehnung der Anfrage zum Hochladen von Bildern äußert. Danach habe ich das Laden von Bildern durch einfaches Zurücksetzen der Einstellungen deaktiviert. Ich könnte es wieder aktivieren, aber ich möchte Ihnen mein Root-Passwort nicht zeigen.
Matt Johansson: Bitte beachten Sie, dass wir das Bild deaktiviert haben, weil wir festgestellt haben, dass sich die tatsächlichen Besuche verlangsamt haben, als wir das Bild bereitgestellt haben. Wir haben noch nicht einmal das gesamte Verbindungslimit ausgeschöpft. Wir haben Firefox für diesen Hack nicht verwendet, wir hatten nur 6 gleichzeitige Verbindungen zum Browser. Wir waren sehr nervös und haben diesen großen roten Knopf nicht gedrückt, um den FTP-Crawl zu starten, da wir nicht wussten, was passieren könnte. Wir haben uns für rechtliche Methoden entschieden, aber selbst der Einsatz von rechtlichen Methoden hat uns ziemlich beeindruckt.

Daher können Sie anständige Ergebnisse erzielen, ohne auch nur Hacker-Methoden auszuprobieren und ohne viel Geld auszugeben. Die Folie zeigt, dass nach 1 Tag, 20 Stunden und 40 Minuten 243 GB Datenverkehr für Ansichten ausgegeben wurden, dh das Volumen blieb praktisch unverändert, da die Bilder nicht mehr geladen wurden. Als wir uns heute Morgen vor der Konferenz hier trafen, dachte ich, dass wir ungefähr 15 Millionen haben würden, also haben wir nach ein paar Stunden nur 20 Millionen Seitenaufrufe mit einem 404-Fehler.
Jeremy Grossman: Der einzige Grund, warum wir nicht mehr Verkehr "pumpen" konnten, ist die Serverleistung. Wir könnten eine leistungsfähigere Plattform verwenden und 100 Millionen oder Milliarden Aufrufe erreichen, aber für einen relativ langsamen Apache-Server ist dies eine unmögliche Aufgabe.
Matt Johansson: Daher sind unsere Ergebnisse nicht besonders beeindruckend, aber Sie können sich ein Bild vom Skalierungsprozess machen, sodass für die Beschädigung normaler Websites nicht viel Geld erforderlich ist.
Jeremy Grossman: Nun, da wir dieses Ergebnis erzielt haben, werden wir versuchen, die Browserbeschränkungen für die Anzahl der Verbindungen über FTP zu umgehen, unser Skript auszuführen und zu sehen, was passiert.
Matt Johansson: Ja, viele Leute kommen nach Las Vegas, um ihr Geld für Spielautomaten auszugeben, und hier geben wir unser Geld für Werbenetzwerke aus.
Jeremy Grossman: Wir haben also über 400 FTP-Verbindungen zum Amazon-Server hergestellt. Wer weiß also, was jetzt passieren wird?
Wir haben die Servermetrik erhalten und sind dann wieder verschwunden. Auf die Webseite kann nicht mehr zugegriffen werden. Sie können jedoch sehen, wie schnell die Protokollzeilen flackern. Lassen Sie uns einfach neu starten, da der Server tatsächlich tot ist und der Browser eine Zeitüberschreitung benötigt.
Matt Johansson: Wir wissen nicht, wie sich FTP in Bezug auf Werbenetzwerke verhält, und wir wissen nicht, was passieren würde, wenn keine Bots verwendet würden, sondern Browser von echten Nutzern. Ich hoffe, dass ihr versteht, dass wir niemanden gehackt haben, sondern einfach herausgefunden haben, wie das Netzwerk funktioniert. Zu diesem Zweck haben wir speziell Server gemietet. Wir haben die rechtliche Seite des Problems vollständig eingehalten, und Sie haben Ideen, wie Sie Spaß in Werbenetzwerken haben können.
Wir haben nicht einmal versucht, das Gesetz zu brechen, haben diesen Genehmigungsprozess durchlaufen, wir hatten relativ harmloses und nicht bösartiges JavaScript, wir haben nicht einmal die "erwachsenen" Werbenetzwerke berührt, obwohl Sie gesehen haben, dass es ihnen oft egal war, was mit den Werbebannern passiert ist.
Jeremy Grossman: Ich habe eine gute Frage gehört - woher kommen die Apache-Protokolle?
In Apache gibt es standardmäßig keine Protokolle. Vielleicht werde ich später darüber sprechen. Wir haben Austin Apache, ich habe es gerade heruntergeladen und installiert. Lassen Sie es mich ausführen - Sie sehen, hier gibt es keine Protokolle, es ist ein lokaler Server. Auf dem Amazon-Server wird der Fehler 408 angezeigt. Der Server antwortet nicht, da das Zeitlimit für das Warten auf eine Antwort auf die Seitenanforderung überschritten wurde. Das HTTP-Senden wird hier nicht verwendet, aber Port 80 ist noch offen und enthält viele Verbindungen. Kehren wir zu unseren Folien zurück - hier ist alles in Ordnung, Sie können sie schließen.
Sie haben also gesehen, was wir getan haben, während Sie auf der rechten Seite des Gesetzes geblieben sind. Wie Matt sagte, könnten wir natürlich noch viel weiter gehen, wie es in der Welt der Informationssicherheit normalerweise der Fall ist. In den Ihnen bekannten Werbenetzwerken gibt es viele Softwareentwickler. Aber glauben Sie uns, in Wirklichkeit sind sie keine Softwareentwickler, sondern verwalten einfach ihre Werbenetzwerke auf ihren Werbeplattformen.

Eines der weit verbreiteten Tools ist OpenX - ein Ad-Server oder eine Ad-Engine. Dies ist Open Source Software.
Es wird von vielen Werbenetzwerken verwendet, und wie es normalerweise vor einigen Wochen vorkommt, hat jemand darin schwerwiegende Schwachstellen entdeckt, die Millionen von Nutzern von Werbeplattformen gefährden. Dieser Ad-Server kann durch Ausführen von zufälligem PHP-Code gehackt werden, wodurch die Bedingungen für einen XSS-Cross-Site-Scripting-Angriff geschaffen werden.
Wenn Sie ihnen also nicht Ihr Geld bezahlen möchten, sondern nur das Werbenetzwerk nutzen möchten, können Sie dies tun, indem Sie es einfach hacken und den Exploit dort herunterladen, damit Sie jeden steuern können, der mit der Anzeige Ihrer Anzeigen beginnt.
Matt Johansson: Wir haben gerade in den Spielautomaten investiert, an dem unsere Anzeige geschaltet wurde, und es ist sehr schwierig herauszufinden, wer diese Anzeige erstellt hat. Dies ist ein Iframe. Wir haben untersucht, wie iframes den Code beschädigen, und uns um das Hacken des Browsers gekümmert. Der Punkt unserer Studie war jedoch, dass wir versucht haben, den Browser zu verwenden, damit andere Leute sich selbst mit ihren eigenen Händen hacken können.
Jeremy Grossman: Diese Forschung wird fortgesetzt. Wir verwenden unseren Amazon-Server und versuchen, einige unserer Partner zusammenzubringen, um zu versuchen, Websites mit DDoS-Schutz anzugreifen und zu sehen, wie viel Verkehr wir auf sie leiten können, weil wir nicht verteidigen, sondern angreifen. Das ist die Essenz unserer Forschung.
Matt Johansson: Wir werden versuchen zu untersuchen, wie der Hash des Werbenetzwerks geknackt werden kann. Daher verfügen wir über Metriken, die eine gute Vorstellung davon vermitteln, dass JavaScript dies so schnell tun kann, wie wir möchten. Wir können dies mit dem Dollarbetrag korrelieren, um herauszufinden, wie viele MD5-Hashes für 50 Cent geknackt werden können.
Jeremy Grossman: Ich werde es noch einmal wiederholen - wir können eine Million Browser mobilisieren, vielleicht nicht gleichzeitig, aber Sie können diese Million Browser für etwa 500 US-Dollar erwerben und ein leistungsstarkes Botnetz erstellen.
Ich habe genug im Bereich der Web-Sicherheit gearbeitet, und ich erinnere mich, dass ich vor langer Zeit gesagt habe: Wir müssen uns in das Internet hacken, um dessen Sicherheit zu gewährleisten, in bestehende Geschäftsmodelle im Internet hacken, um zu wissen, wovor und wie wir sie schützen können. Dan Kaminsky sagte mir am 21. Dezember 2010: „Niemand kann das Internet hacken, Mann. Nicht jetzt, niemals. " Bis jetzt hatte er recht.
Aber jetzt sehen wir das Problem. Ich weiß nicht, wessen Problem es ist - Werbenetzwerke oder das Problem von Browser-Anbietern oder das Problem von Website-Eigentümern, aber es existiert wirklich. Und wir wissen nicht, wessen Verantwortung es ist und wer es reparieren soll.
Matt Johansson: Wir haben Ihnen gezeigt, was Sie tun können, indem Sie einfach ein Bild in das Werbenetzwerk hochladen. Wir sind jedoch nicht weiter gegangen, wir haben den Menschen keinen Schaden zugefügt, obwohl wir jede Gelegenheit dazu hatten. Und wir wissen nicht, wie wir uns davor schützen sollen - wir haben Ihnen nur einen Mechanismus gezeigt, den Angreifer nutzen können.
Jeremy Grossman: Wie Sie sehen, gibt es einen Grund, warum Browser die Verwendung eines Werbeblockers anbieten. Wenn Sie den Werbeblocker aktivieren, ist Ihr Browser für diese Art von Angriff nicht anfällig.
Matt Johanson: Oder alternativ ganz vom Internet trennen.
Jeremy Grossman: Ich höre die Frage, wie viel uns der Amazon-Server kostet - jetzt wahrscheinlich ungefähr 100 US-Dollar.
Matt Johanson: Als wir heute vor unserem Auftritt wirklich Geld in das Werbenetzwerk gesteckt haben, haben wir 75 Dollar bezahlt, und ich habe versucht, alles herauszuholen, was aus ihnen möglich ist.
Und ich werde die letzte Frage zur IP-Adresse beantworten - als wir die Genehmigung unseres Banners erhielten, sahen wir die IP-Adresse der Person, die diese Genehmigung erteilt hat, aber sie konnte unsere IP-Adresse nicht sehen und konnte nichts über uns außer der E-Mail-Adresse wissen Mail.
Vielen Dank an alle, die gekommen sind, um uns zuzuhören!
Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung
aufgeben oder Ihren Freunden empfehlen, einen
Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).
VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s bis Dezember kostenlos, wenn Sie für einen Zeitraum von sechs Monaten bezahlen, können Sie
hier bestellen.
Dell R730xd 2 mal günstiger? Nur wir haben
2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über
den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?