Zum Inhalt springen

LavaMoat zur Lösung der Software-Lieferkettensicherheit

LavaMoat ist ein Sicherheits-Toolset für JavaScript-Apps zur Minimierung von Software-Supply-Chain-Risiken.

3 Min. Lesezeit
LavaMoat zur Lösung der Software-Lieferkettensicherheit

LavaMoat ist ein kostenloses Open-Source-Tool für jedes JavaScript-Entwicklungsteam, das sich um die Sicherheit seiner Software-Lieferkette sorgt. Dieses Projekt von MetaMask-Mitgründer Kumavis adressiert gleichzeitig Sicherheitsbedenken in Web3 und seit Langem bestehende strukturelle Sicherheitsprobleme im Open-Source-Ökosystem.

Wer mit JavaScript (kurz: JS) entwickelt, muss die Sicherheitslage rund um JS und seine Abhängigkeiten verstehen. JS-Entwickler bauen Apps selten „von Grund auf neu"; in der Regel importieren sie bestehende Code-Bausteine – sogenannte „Dependencies" – in ihr Projekt. Das ist großartig für Zusammenarbeit und Entwicklungsgeschwindigkeit, aber was passiert, wenn in einer dieser Dependencies schädlicher Code enthalten ist?

Die Sicherheit der Software-Lieferkette umfasst alles, was eine Anwendung berührt (wie Dependencies) oder eine Rolle in ihrer Entwicklung spielt (wie Build-Tools oder CI-Systeme). JavaScript ist mit Abstand die beliebteste Sprache unter Entwicklern und gleichzeitig besonders anfällig für Supply-Chain-Angriffe. Diese Zeitleiste der Schwachstellen aus dem Jahr 2017 zeigt, dass gut die Hälfte der Angriffe von npm ausging – einer beliebten Quelle für Open-Source-JS-Pakete:

Quelle: SonaType

JavaScript wird aufgrund folgender Eigenschaften gezielt angegriffen:

  1. Popularität: Es wird sowohl im Front-End als auch im Back-End eingesetzt

  2. Umgebende Berechtigungen: Wenn JavaScript irgendwo ausgeführt wird, hat es Zugriff auf viele Ressourcen, wie z. B. Netzwerkzugang

  3. Veränderlichkeit: Standardmäßig ist alles veränderbar

Der Copay-Wallet-Hack aus dem Jahr 2018 weckte Kumavis' Interesse daran, dieses Problem zu lösen, und ist die zentrale Fallstudie für das Design von LavaMoat. Copay war eine selbstverwaltete Bitcoin-Wallet von BitPay, die Ziel eines Supply-Chain-Angriffs wurde, bei dem Nutzerfonds gestohlen wurden. Eine vom Wallet verwendete npm-Dependency wurde von einem Angreifer kontrolliert, der darüber den Angriff ausführen konnte.

Was ist also die Lösung? Es wurden einige Ansätze diskutiert, um dieses Problem zu beheben.

Niemals Dependencies verwenden? Nein.

Auch wenn es sicherer wäre – willst du wirklich auf Open Source verzichten, auf den gemeinsamen Reichtum, der das Fundament bildet, auf dem wir alle aufbauen? Auf Austausch und Zusammenarbeit? Wenn du etwas Komplexes entwickeln willst, möchtest du wirklich Zeit damit verbringen, das Rad neu zu erfinden?

Wir auch nicht.

Alle Dependencies immer prüfen? Nein.

Das ist zwar ein guter Ansatz, aber wie viele Dependencies hast du? Hunderte? Tausende? Zehntausende? Das ist schlicht nicht praktikabel – obwohl LavaMoat dir dabei hilft, die gefährlichsten zu priorisieren, wenn du ein manuelles Audit durchführen möchtest (dazu später mehr).

Und selbst wenn du die Zeit hast, ein Paket wirklich gründlich zu prüfen – wirst du dabei eine Sicherheitslücke erkennen?

Darauf zu setzen ist riskant. Schauen wir uns daher eine andere Lösung an:

LavaMoat? Ja.

Anstatt niemals Dependencies zu verwenden oder alle Dependencies immer zu prüfen, werfen wir einen Blick auf LavaMoats Sicherheitskern, der Pakete in Compartments kapselt und ihnen nur Zugriff auf das gibt, was sie tatsächlich benötigen.

Denn denk daran: Damit schädlicher Code dein System angreifen kann, braucht er die entsprechenden Berechtigungen. LavaMoats Kern analysiert den Drittanbieter-Code, den du in dein Projekt einbindest, ermittelt, was die Dependencies zum Ausführen benötigen, und gibt diesen Dependencies genau das – und nichts mehr**.**

LavaMoat schützt derzeit Dutzende Millionen Nutzer bei MetaMask und wird in drei verschiedenen Phasen jedes Entwicklungsprozesses aktiv: bei der Installation von Dependencies, beim Build und zur Laufzeit.

Um das Ganze in Perspektive zu setzen, wirf einen Blick auf dieses Visualisierungs-Dashboard für Dependency-Graphen:

Die Liste deiner Dependencies befindet sich auf der linken Seite, der Graph wird rechts als neuronales Netzwerk dargestellt. Die Farben basieren auf einer Heuristik zur Einschätzung der Gefährlichkeit: Die grünen Einträge beispielsweise importieren keine leistungsstarken Plattform-APIs.

Das Ziel ist, dir dabei zu helfen, das Audit deiner Dependencies zu priorisieren.

Wie setzt du das nun um?

Unter Berücksichtigung der drei Entwicklungsphasen:

  1. Installation: @lavamoat/allow-scripts

  2. Build: lavamoat-node

  3. Laufzeit: lavamoat-x Plugin für deinen Bundler

Das sollte als Schutzwall gegen schädlichen Code dienen.

Software in großem Maßstab entwickeln

Wenn du uns unterstützen möchtest: LavaMoat ist Open Source! Wir arbeiten daran, Plugins für möglichst viele Bundler bereitzustellen, und möchten es einfacher machen, Richtlinien zu überprüfen und strenge Einschränkungen beim Gewähren von Netzwerkzugang für Pakete einzurichten. Du kannst hier einen Beitrag leisten.

Melde dich für unseren Entwickler-Newsletter an und bleib auf dem Laufenden! Viel Erfolg beim Entwickeln.

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

Bewerten Sie die Übersetzung

Dieser Artikel wurde verfasst von:

  • MetaMask

    MetaMask, ehemals Consensys Software Inc, ist die weltweit größte Self-Custody-Finanzplattform und bietet Menschen einen zentralen Ort, um ihr Geld in Krypto- und traditionellen Vermögenswerten zu verwahren, auszugeben, zu sparen und zu vermehren. Das Unternehmen entwickelt die Verbraucherplattform, auf der all das stattfindet, und vereint Zahlungen, Sparen, Investieren und digitale Assets in einem nahtlosen Erlebnis. Ausgehend von der weltweit meistgenutzten Self-Custody-Wallet gibt MetaMask Nutzern die direkte Kontrolle über ihr Geld und ihre Vermögenswerte – mit einer Reichweite in rund 190 Ländern. MetaMask hat seit 2016 eine grundlegende Rolle beim Wachstum von Ethereum gespielt. Heute steht MetaMask im Mittelpunkt der Blockchain-Wirtschaft, entwickelt das Betriebssystem für Open Money und gibt Menschen die volle Kontrolle über ihr finanzielles Leben.

    Alle Artikel lesen