- Little Rat ist eine kleine Chrome-Erweiterung, die die Netzwerkaufrufe anderer Chrome-Erweiterungen überwacht und optional blockiert
- Das Erkennen und Blockieren des Datenverkehrs anderer Erweiterungen ist nur möglich, wenn das Flag extensions-on-chrome-urls unter
chrome://flags/#extensions-on-chrome-urlsaktiviert wird oder Chrome mit--extensions-on-chrome-urlsgestartet wird - Die manuelle Installation erfolgt über das Herunterladen der GitHub-ZIP-Datei, das Entpacken, das Aktivieren des Developer mode in Chromium/Chrome Extensions und das Laden der entpackten Erweiterung aus dem Verzeichnis
little-rat-main
1 Kommentare
Hacker-News-Kommentare
Ich würde mir das eher als Standardfunktion in Firefox oder Chrome wünschen als als Drittanbieter-Erweiterung. Dann wäre die Verbreitung groß genug, dass auch andere Browser darauf achten würden. Ich möchte bestimmten Erweiterungen nur GET-Requests an festgelegte statische URLs erlauben, ohne dass sie Header verändern können.
So wären Datenupdates möglich, während das Risiko von Datenabflüssen geringer wäre. Manche Erweiterungen laufen ausschließlich lokal im Browser und brauchen überhaupt keinen Netzwerkzugriff. Wenn sie allerdings den Seitenquelltext verändern können, lässt sich die Datenübertragung umgehen; vermutlich machen Browser das deshalb nicht. Trotzdem halte ich es für besser, es zu versuchen, als aufzugeben und es Chrome-Erweiterungen zu überlassen.
Man aktiviert Remote Debugging fast genauso wie bei der UI-Inspektion und startet dann die Browser Toolbox: https://superuser.com/questions/1608096/how-to-inspect-firef...
Das ist auch nützlich, um herauszufinden, was man in der user-chrome-CSS-Datei braucht, wenn man die Tab-Darstellung stärker als nur per Theme anpassen will. Die Nutzung von user-chrome CSS selbst ist allerdings etwas lästig.
Damit Netzwerk-Requests von Erweiterungen sichtbar werden, musste ich auf multi-process mode umstellen; im Großen und Ganzen ist das Verhalten nachvollziehbar.
Zum Beispiel sieht man hier, wie uBlock eine beliebige Test-Blockliste abruft, die ich angeklickt habe: https://i.imgur.com/wBYbBM2.png
Und hier aktualisiert Firefox selbst im Hintergrund die Safe-Browsing-Listen: https://i.imgur.com/JYxWwjW.png
Bei gut gemachten Erweiterungen würde die Benachrichtigung nur gelegentlich erscheinen, und bei Erweiterungen, die einen Server brauchen, würde sie zu dem Zeitpunkt erscheinen, an dem der Nutzer ohnehin Kommunikation mit dem Server erwartet. Erweiterungen, die Tastatureingaben oder verdächtige Daten senden, würden sehr leicht auffallen.
Allerdings kann man Wildcards in URLs verwenden, und ich meine, es gab auch einen Spezialwert für alle URLs. Trotzdem sollten nicht viele Erweiterungen solche Berechtigungen benötigen.
Selbst wenn eine Erweiterung selbst keine Requests erzeugen kann, gibt es etwa viele Möglichkeiten, mit der Berechtigung zum Ändern des DOM einer Webseite die Webseite dazu zu bringen, den Request stellvertretend zu senden.
Diese Erweiterung ist nicht ganz trivial zu installieren; es wäre daher gut, Screenshots hinzuzufügen, die tatsächlich erfasste Netzwerkereignisse zeigen. Der aktuelle Screenshot verdeckt die interessanteste Funktion.
Danach zurück zum normalen Browserfenster, rechts neben der Adressleiste auf das Puzzle-Icon für Erweiterungen klicken und neben Little Rat auf das kleine Stecknadel-Icon klicken; dann ist es installiert und erscheint in der Liste der Erweiterungs-Icons.
Cool. Ehrlich gesagt überrascht es mich, dass das möglich ist.
Ich weiß nicht genau, welche Daten diese APIs bereitstellen, aber wenn eine Erweiterung auf die Requests anderer Erweiterungen zugreifen kann, könnte das nicht Sicherheitsbedenken bei Passwortmanager-Erweiterungen oder Erweiterungen mit Authentifizierungs-Tokens aufwerfen?
Gut. So etwas fühlt sich an, als sollte es eine chrome://-URL dafür geben.
Sieht gut aus; mich würde interessieren, ob es Pläne für eine Portierung auf Firefox gibt.
Kennt jemand eine Alternative, die dasselbe in Firefox erledigt?
Man wäre überrascht, wie viele offensichtliche Verstöße gegen Erweiterungsrichtlinien Mozilla bei „empfohlenen“ Erweiterungen offenbar durchgehen lässt.
[1]: https://firefox-source-docs.mozilla.org/devtools-user/browse...
[2]: https://firefox-source-docs.mozilla.org/networking/http/logg...
[3]: https://firefox-source-docs.mozilla.org/devtools-user/about_...
var chrome = browser;einzufügen, damit es in Firefox läuft. Die Firefox Extension API ist im Grunde eine Kopie der Chrome Extension APIs mit nur kleinen Unterschieden.Ich werde es ausprobieren, wenn es im Chrome Store ist.
declarativeNetRequest.onRuleMatchedDebug[0], und das wirkt wie nur für Debugging gedacht; daher frage ich mich, ob es im Chrome Web Store erlaubt sein wird.0: https://github.com/dnakov/little-rat/blob/f0b9b6be39af9fe7f4...
Warum ist es nicht im Chrome Store?
chrome.declarativeNetRequestverwendet; das ist eine API, die auch uBlock nutzt.Sauber, aber diese Stelle sollte vorsichtiger behandelt werden: https://github.com/dnakov/little-rat/blob/main/popup.js#L36
Ich möchte mir keine Sorgen machen müssen, ob eine andere Erweiterung hier per manipuliertem Request, ID oder Namen XSS einschleusen kann.
unsafe-inline, und die Erweiterungs-ID wird von Chrome automatisch erzeugt.Allein die Tatsache, dass es keine Netzwerkaufrufe gibt, beweist nicht, dass eine Erweiterung sicher ist. Sie könnte Daten, die privat bleiben sollen, cachen und später periodisch senden.