Sicherheitslücke in Adblock Plus, die die Codeausführung bei Verwendung fragwürdiger Filter ermöglicht

Im Adblock Plus-Werbeblocker identifiziert Verletzlichkeit, erlauben Organisieren Sie die Ausführung von JavaScript-Code im Kontext von Websites, wenn nicht überprüfte, von Angreifern vorbereitete Filter verwendet werden (z. B. beim Anschließen von Regelsätzen Dritter oder durch Ersetzen von Regeln während eines MITM-Angriffs).

Autoren von Listen mit Filtersätzen können die Ausführung ihres Codes im Kontext der vom Benutzer geöffneten Websites organisieren, indem sie mit dem Operator „Regeln hinzufügen“umschreiben", wodurch Sie einen Teil der URL ersetzen können. Mit dem Rewrite-Operator können Sie den Host in der URL nicht ersetzen, die Anforderungsargumente jedoch frei manipulieren. Als Ersetzungsmaske kann nur Text verwendet werden, und die Ersetzung von Skript-, Objekt- und Unterdokument-Tags ist zulässig verstopft.

Eine Codeausführung kann jedoch durch einen Workaround erreicht werden.
Einige Websites, darunter Google Maps, Gmail und Google Bilder, verwenden die Technik des dynamischen Ladens ausführbarer JavaScript-Blöcke, die in Form von reinem Text übertragen werden. Wenn der Server die Weiterleitung von Anfragen zulässt, kann die Weiterleitung an einen anderen Host durch Ändern der URL-Parameter erreicht werden (im Kontext von Google kann beispielsweise eine Weiterleitung über die API erfolgen.)google.com/search"). Neben Hosts, die eine Weiterleitung ermöglichen, kann ein Angriff auch auf Dienste erfolgen, die das Posten von Benutzerinhalten ermöglichen (Code-Hosting, Artikel-Posting-Plattformen usw.).

Die vorgeschlagene Angriffsmethode betrifft nur Seiten, die Zeichenfolgen von JavaScript-Code dynamisch laden (z. B. über XMLHttpRequest oder Fetch) und diese dann ausführen. Eine weitere wichtige Einschränkung ist die Notwendigkeit, eine Umleitung zu verwenden oder beliebige Daten auf der Seite des ursprünglichen Servers zu platzieren, der die Ressource ausgibt. Um jedoch die Relevanz des Angriffs zu verdeutlichen, wird gezeigt, wie Sie die Ausführung Ihres Codes beim Öffnen von maps.google.com mithilfe einer Weiterleitung über „google.com/search“ organisieren.

Der Fix ist noch in Vorbereitung. Das Problem betrifft auch Blocker AdBlock и uBlock. Der uBlock Origin-Blocker ist von dem Problem nicht betroffen, da er den „rewrite“-Operator nicht unterstützt. Einst der Autor von uBlock Origin
Ich lehne ab Unterstützung für Rewrite hinzufügen, wobei potenzielle Sicherheitsprobleme und unzureichende Einschränkungen auf Hostebene angeführt werden (anstelle von Rewrite wurde eine Querystrip-Option vorgeschlagen, um Abfrageparameter zu bereinigen, anstatt sie zu ersetzen).

Die Adblock Plus-Entwickler halten echte Angriffe für unwahrscheinlich, da alle Änderungen an den Standardregellisten überprüft werden und die Anbindung von Drittanbieterlisten bei Nutzern äußerst selten vorkommt. Die Ersetzung von Regeln über MITM wird durch die standardmäßige Verwendung von HTTPS zum Herunterladen von Standard-Blocklisten verhindert (für andere Listen ist geplant, das Herunterladen über HTTP in einer zukünftigen Version zu verbieten). Direktiven können verwendet werden, um einen Angriff auf der Site-Seite zu blockieren CSP (Content Security Policy), über die Sie explizit festlegen können, von welchen Hosts externe Ressourcen geladen werden können.

Source: opennet.ru

Kommentar hinzufügen