Durch eine Sicherheitsanfälligkeit in Adblock Plus-Listen kann schädlicher Code ausgeführt werden

Browser

Recientemente Eine Sicherheitslücke wurde entdeckt Dies könnte es Betreuern ermöglichen, Filterlisten zu blockieren für Adblock Plus-, AdBlock- und uBlocker-Browsererweiterungen um Filter zu erstellen, die Remote-Skripte in Websites einfügen.

Mit einer Nutzerbasis, die die 10-Millionen-Marke überschritten hat, Wenn bösartige Skripte in Werbeblocker eingefügt würden, hätte dies erhebliche Auswirkungen Weil sie unerwünschte Aktivitäten ausführen können, wie z. B. Diebstahl von Cookies, Verbindungsinformationen, Seitenumleitungen oder anderes unerwünschtes Verhalten.

Für jene die sind mit Werbeblockern nicht vertraut, sie verwenden grundsätzlich URL-Listen im Zusammenhang mit böswilligen Anzeigen und Verhalten.

Normalerweise Sie werden von einem kleinen Team oder sogar von einer einzelnen Person geleitet.

Wenn diese Listen mit einer Werbeblocker-Erweiterung wie Adblock Plus geladen werden, verhindert diese Erweiterung, dass der Browser eine Verbindung zu den in der Liste enthaltenen URLs herstellt, und verhindert somit die Verbindung zu schädlichen Anzeigen oder Skripten.

Die Filteroption $ rewrite verursacht das Problem

wenn AdblockerPlus 3.2 im Jahr 2018 ins Leben gerufen, es Es wurde eine neue Filterlistenoption namens $ rewrite hinzugefügt.

Diese Option erlaubt an einen Listenbetreuer Ersetzen Sie eine Webanforderung, die einem regulären Ausdruck entspricht insbesondere mit einer anderen URL.

Hubert Figuiere, Wer hat diese Funktion eingeführt? erklärte das:

„Seit Adblock Plus 3.2 für Chrome, Firefox und Opera (und Entwicklungsversionen von 3.1.0.2053) können Sie mit einer neuen Filteroption $ rewrite die URL einer Ressource neu schreiben, anstatt sie zu blockieren.

Wenn Adblock Plus einem Filter mit der Option $ rewrite eine Anforderungs-URL zuweist, wird die URL basierend auf der angegebenen Regel transformiert und der Browser wird angewiesen, die Ressource gleichzeitig zu laden.

Die Syntax der $ -Regel rewrite gibt eine Zeichenfolge an, die als Vorlage für die neue URL dient.

$ n wird durch die n-te Unterübereinstimmung des regulären Ausdrucks des Filters ersetzt. Dies ist die gleiche Syntax wie die Funktion JavaScript String.prototype.replace ().

Wenn die resultierende URL relativ ist (d. h. Sie haben keinen Host), Der Ursprung der ursprünglichen Abfrage wird als Grundlage verwendet. In beiden Fällen wird das Umschreiben als nicht erfolgreich angesehen, wenn die neue URL den Ursprung nicht gemeinsam nutzt, und die erste Anforderung wird bestanden.

Außerdem werden $ rewrite-Filter aus Sicherheitsgründen für SCRIPT-, SUBDOCUMENT-, OBJECT- und OBJECT_SUBREQUEST-Abfragen ignoriert. Diese Option ist praktisch, um Abfrageparameter zu ändern oder zu entfernen ».

Der einzige Nachteil ist, dass die Ersatzzeichenfolge eine relative URL sein muss. Dies bedeutet, dass sie keinen Hostnamen enthält und beim Umschreiben zur selben Quelldomäne wie die Anforderung gehören muss.

Die Codeausführung erfolgt sogar auf Google Maps

Ein Sicherheitsforscher erklärte dass:

Unter bestimmten Umständen kann ein nicht autorisierter Administrator für böswillige Filter eine Regel erstellen, die ein Remote-Skript in eine bestimmte Site einfügt.

Um dies zu tun, Suchen Sie einfach nach einer Site, die Skripte lädt von jeder Domain, die eine offene Weiterleitung enthält und verwenden Sie XMLHttpRequest oder Fetch um die auszuführenden Skripte herunterzuladen.

Es war nicht allzu schwer zu finden, weil man das alleine machen sollte Verwenden Sie einfach Google Maps als Proof of Concept.

Der Forscher erklärte das Die folgenden Kriterien müssen erfüllt sein Damit ein Webdienst mit dieser Methode ausgenutzt werden kann:

  • Die Seite muss eine JS-Zeichenfolge mit XMLHttpRequest oder Fetch laden und den Rückkehrcode ausführen.
  • Die Seite sollte nicht die Quellen einschränken, aus denen sie mithilfe von Richtlinien für Inhaltssicherheitsrichtlinien abgerufen werden kann, oder die endgültige Anforderungs-URL überprüfen, bevor der heruntergeladene Code ausgeführt wird.
  • Die Quelle des abgerufenen Codes muss eine offene serverseitige Umleitung oder einen beliebigen Benutzerinhalt vom Host aufweisen.

Die Verwendung von XMLHttpRequest oder Fetch zum Herunterladen von Skripten und Öffnen der Umleitung sind die beiden Schlüssel zum Problem.

Um dieses Problem zu mindern, Es wird empfohlen, dass Websites den Header für Inhaltssicherheitsrichtlinien und die Option connect-src verwenden um eine Whitelist von Sites anzugeben, von denen die Skripte geladen werden können.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.