Zum Inhalt springen

Krypto-Sicherheitsbericht: April 2022

Endos CommonJS-Kompatibilitätsmeilenstein für MetaMasks npm-Abhängigkeitskette, LavaMoat v6's „a"a-Paketbenennung, LavaMoats Weg zu React Native und MetaMask Mobile sowie ein iCloud-Backup-Hinweis für MetaMask-Vault-Daten.

5 Minuten
Krypto-Sicherheitsbericht: April 2022

Jeden Monat berichtet MetaMask Security Director Luker über die neuesten Krypto-Angriffe und aufkommenden Risiken, die Sie kennen sollten.

Der April-2022-Bericht des MetaMask Security Teams behandelt Endos CommonJS-Kompatibilitätsmeilenstein für unsere npm-Abhängigkeitskette, LavaMoat v6's neue 'a'a-Paketbenennungsnotation, die die Ausführungszeit von metamask-extension um etwa das 600-fache von 10 Minuten auf unter 1 Sekunde reduziert, die Einführung von LavaMoat v6-Supply-Chain-Schutzmaßnahmen in der MetaMask Extension, LavaMoat's lockdown(), das React Native-Kompatibilität erreicht und damit den Weg zu MetaMask Mobile ebnet, sowie eine iCloud-Backup-Warnung für MetaMask-Vault-Daten. Tauchen Sie unten in die Details ein, aber zuerst...

MINT-Pionier im Fokus: Butler Lampson, Vater der fähigkeitsbasierten Computersicherheit

Butler Lampson ist ein amerikanischer Informatiker, der formalisiert hat, wie Software den Zugriff auf Ressourcen kontrolliert. Sein Zugriffsmatrix-Modell, das in den frühen 1970er Jahren entwickelt wurde, vereinte Capabilities und Zugriffssteuerungslisten in einem einzigen Framework – und brachte ihm 1992 den Turing Award ein. Die von ihm entwickelte fähigkeitsbasierte Isolation ist die theoretische Grundlage für das Compartment-Sandboxing, das Endo und LavaMoat heute zum Schutz von MetaMask einsetzen.

Endo erreicht CommonJS-Modulkompatibilität und deckt verbleibende Lücken beim Laden von npm-Paketen auf

Endos CommonJS-Unterstützung erreichte im April 2022 einen Meilenstein. End-to-End-Tests mit echten Paketen aus dem npm-Ökosystem – größtenteils aus MetaMask-Abhängigkeiten ausgewählt – deckten Fälle auf, in denen die CommonJS-Unterstützung unzureichend war, und halfen bei der Weiterentwicklung der Implementierung. Ein Test, der mehrere Export-Formen vergleicht – CommonJS in ESM importiert, über Endo, Node.js und eine Auswahl von Bundlern – half dabei, Ziele zu setzen und Regressionen zu vermeiden.

Die bedeutendsten Änderungen in der Endo-CommonJS-Unterstützung in diesem Zeitraum umfassten die Verknüpfung von Exporten mit import * und die Einführung eines impliziten Standard-Exports, die Verbesserung des Lexers zur Erkennung aller Vorkommen von require und die Verschiebung fehlender Paketfehler auf die Laufzeit, das Refactoring der Exportverarbeitung, um module.exports als Standard festzulegen und benannte Exporte zu identifizieren, sowie die Unterstützung für verschachtelte package.json mit type:module und Arrays optionaler Werte in package.json-Exporten.

Der Fortschritt wird im CommonJS-Tracking-Epic verfolgt.

Endo unterstützt nun das korrekte Laden von CommonJS-Modulen. Alle verbleibenden Probleme beim Laden echter Pakete aus npm lassen sich in vier Kategorien einteilen: Verwendung fehlender Features (wie require.resolve oder import.meta), Modifikation von Globals und Intrinsics, Auslösen von Filtern zum Schutz vor dem Einschleusen von Imports oder HTML-Kommentaren sowie fehlerhafte Export-Zuordnung und Modultypauflösung durch Endo.

Endos experimenteller run-Befehl führt JS-Dateien mit Compartment-Isolation aus

Basierend auf vorhandenem Tooling zur Verknüpfung von Endo-End-to-End-Tests kann ein experimenteller endo run-Befehl nun eine JS-Datei mit Compartments ausführen – ähnlich wie node app.js, jedoch mit Endos Isolationsmodell.

Derzeit werden alle Node.js-Kernmodule für require/import durch die Codebasis und Abhängigkeiten bereitgestellt. Weitere Arbeiten sollten die Unterstützung für Richtlinien von LavaMoat hinzufügen.

LavaMoat v6 'a'a-Paketbenennung reduziert die Ausführungszeit von metamask-extension um das 600-fache – von 10 Minuten auf unter 1 Sekunde

LavaMoat v6 wurde mit einer neuen Paketbezeichner-Notation ausgeliefert, um Probleme durch Identitätsmissbrauch und Wiederverwendung von Paketnamen zu verhindern. Die als 'a'a bezeichnete Notation wird nun als Schlüssel in Policy-Dateien verwendet.

Die Performance der ursprünglichen Implementierung wurde stark durch Ineffizienzen in Node.js beim Suchen und Zugreifen auf Dateien beeinträchtigt. Ein erster Versuch zur Leistungsverbesserung – beschränkt auf zwei Fälle einfacher Memoization – reduzierte die Worst-Case-Ausführungszeit von 'a'a in metamask-extension von 10 Minuten auf 30 Sekunden. Die Kosten durch Spitzen im Speicherverbrauch waren jedoch zu hoch.

Eine zweite Iteration von Performance-Diagnose und -Verbesserungen lieferte im Vergleich zur ersten Iteration durch einen neuen Algorithmus, eliminierte Rekursion und lokale Performance-Verbesserungen bei der Node.js-Modulauflösung über 25-mal weniger Zeit- und RAM-Verbrauch.

Insgesamt betrug die Verbesserung der Ausführungszeit zwischen der ersten vollständigen Implementierung und der aktuellen Version etwa das 600-fache.

MetaMask Extension übernimmt LavaMoat v6-Supply-Chain-Schutzmaßnahmen

MetaMask Extension läuft nun unter dem Schutz von LavaMoat v6, wobei der Rollout in PR #14488 verfolgt wird.

LavaMoat lockdown() erreicht React Native-Kompatibilität und ebnet den Weg zu MetaMask Mobile

Der grundlegende Schritt, um LavaMoat in React Native-Anwendungen funktionsfähig zu machen, ist die Ausführung der SES-Funktion lockdown(). Die Funktion lockdown() schützt Software vor Supply-Chain-Angriffen, indem sie die Primordials in JavaScript auflistet und Prototypen einfriert, wodurch es für einen böswilligen Akteur unwahrscheinlich wird, einen Prototype-Pollution-Angriff durchzuführen.

Eine detaillierte Beschreibung der gewonnenen Erkenntnisse aus dieser Arbeit findet sich im React Native Compatibility Tracker. Wesentliche Voraussetzungen für die Kompatibilität sind: Metro die Ausführung des SES-Bundles durch das Ausführen von .cjs-Dateien zu ermöglichen, spezifische lockdown-Optionen hinzuzufügen, Babel-Plugins zu entfernen und den Promise-Polyfill zu entfernen. Weitere Probleme sind spezifisch für die MetaMask Mobile-Anwendung, wie etwa Sentry- und EthereumJS-Abhängigkeiten.

Das Ergebnis ist ein Pull Request in das MetaMask Mobile-Anwendungsrepository. Die nächsten Schritte umfassen die Durchführung von End-to-End-Tests, um zu bestätigen, dass lockdown() keine zusätzlichen Funktionen beeinträchtigt hat, bevor mit der nächsten Phase fortgefahren wird: der Integration von LavaMoat in MetaMask Mobile.

iCloud-Backup enthält passwortgeschützte MetaMask-Vault-Daten

Apple-Nutzer, die iCloud-Backup für App-Daten aktiviert haben, sichern möglicherweise ohne ihr Wissen ihren passwortgeschützten MetaMask-Vault. Wenn Ihr Passwort nicht stark genug ist und jemand Ihre iCloud-Zugangsdaten durch Phishing erlangt, kann dies zum Diebstahl von Geldern führen. MetaMask veröffentlichte eine Anleitung auf X mit Schritten, die erläutern, wie diese Einstellung auf den jeweiligen Geräten kontrolliert werden kann.


MetaMasks Krypto-Sicherheitsbericht für April 2022 behandelte Endos CommonJS-Kompatibilitätsmeilenstein für MetaMasks npm-Abhängigkeitskette, LavaMoat v6's 600-fache Performance-Verbesserung in metamask-extension durch die neue 'a'a-Paketbenennungsnotation sowie die iCloud-Backup-Warnung für MetaMask-Vault-Daten. Stöbern Sie in früheren Ausgaben des MetaMask-Krypto-Sicherheitsberichts für weitere Bedrohungen, Trends und Tipps, um im gesamten Ökosystem sicher zu bleiben.

KI-übersetzt. Kann Fehler enthalten. Bitte überprüfen Sie die Informationen stets.

Bewerten Sie die Übersetzung

Dieser Artikel wurde verfasst von:

  • Luker

      Jen Luker, den meisten einfach als Luker bekannt, ist Director of Product Security bei Consensys, wo sie die Frontline-Verteidiger leitet, die Millionen von Nutzern vor Schwachstellen, neuen Bedrohungen und böswilligen Akteuren im Bereich der dezentralen Technologie schützen. Als aktive Teilnehmerin im Ethereum-Ökosystem seit 2017 hat sie wichtige Positionen bekleidet, darunter Redakteurin bei ETHNews und Projektmanagerin bei MyCrypto. Luker ist regelmäßige Rednerin auf Branchenkonferenzen, Autorin des monatlichen Crypto Security Reports von MetaMask und offizielle ETH Security Badge-Inhaberin, wie von The DAO ausgezeichnet. Darüber hinaus setzt sie sich leidenschaftlich für kontinuierliche Weiterbildung und Sicherheitsbewusstsein als wesentliche Säulen für die Zukunft von Ethereum und der Blockchain-Technologie ein.

      Alle Artikel lesen