Aikido

Was ist eine Dependency Firewall?

Verfasst von
Nicholas Thomson

Eine Dependency Firewall ist ein Kontrollpunkt, der bösartige Pakete blockiert, bevor sie installiert werden, unabhängig davon, ob eine Entwickelnde, eine CI/CD-Pipeline oder ein AI-Coding-Agent sie angefordert hat. Sie funktioniert ähnlich wie eine Netzwerk-Firewall, nur dass der Traffic hier Open-Source-Pakete anstelle von Netzwerkpaketen ist und der Einstiegspunkt der Installationsbefehl ist.

Dependency Firewalls existieren, weil das Volumen von Lieferkettenangriffen sie notwendig macht. Aikido Intel analysiert nun täglich bis zu 100.000 bösartige Pakete über Open-Source-Registries hinweg, gegenüber etwa 20.000 vor einem Jahr. Allein im zweiten Quartal 2026 wurden rund 7,5 Millionen Paketversionen analysiert und 19.500 als bösartig bestätigt.

{{cta}}

Warum sind Dependency Firewalls notwendig?

Sobald Ihr Paketmanager eine Installation ausführt, ist Ihre Maschine exponiert. Erschwerend kommt hinzu, dass Angreifer schneller geworden sind und KI ihnen neue Wege eröffnet hat.

Installationsskripte sind der Payload-Delivery-Mechanismus

Wenn Sie ausführen npm install, Pakete können Code als Teil der Installation selbst ausführen. Der Postinstall-Hook ist der Ort, an dem viele moderne Lieferkettenangriffe stattfinden, da er mit den Berechtigungen der Entwickelnden ausgeführt wird, bevor jemand die Möglichkeit hat, den Code zu überprüfen. 

Im März 2026, kaperten Angreifer das npm-Konto des axios-Maintainers und veröffentlichten zwei bösartige Versionen der Bibliothek (die wöchentlich etwa 100 Millionen Mal heruntergeladen wird). Der Payload gelangte über eine neu hinzugefügte transitive Dependency herein, plain-crypto-js, deren Postinstall-Hook einen plattformübergreifenden RAT auf jede Maschine installierte, die die Installation ausführte.

Coding Agents und MCP-Server sind neue Installationsflächen

Die Paketinstallation wird nicht mehr immer von einem Menschen initiiert. Coding Agents und MCP-Server ziehen von npm auf Entwickelnden-Maschinen mit Zugriff auf sensiblen Code und Anmeldeinformationen. Im September 2025 veröffentlichte ein Angreifer, der sich als Postmark ausgab, einen bösartigen MCP-Server auf npm, der jede ausgehende E-Mail heimlich an eine vom Angreifer kontrollierte Adresse als BCC sendete. Es war der erste bestätigte bösartige MCP-Server auf npm, und es ist ein Zeichen für das, was noch kommen wird.

Agents halluzinieren auch, und Angreifer haben begonnen, Paketnamen zu registrieren, um dies auszunutzen. Agents, die falsch raten, riskieren nun die Installation eines Pakets, das der Angreifer im Voraus vorbereitet hat. Dieser Angriff, manchmal als Slopsquatting bezeichnet, existierte vor zwei Jahren noch nicht als Kategorie. 

Angriffsfenster werden kürzer

Der bösartige plain-crypto-js Paket, das den axios-Angriff speiste, existierte weniger als 24 Stunden, bevor es eingebunden wurde. Das debug- und chalk-Kompromittierung betraf 18 Pakete mit mehr als 2 Milliarden kombinierten wöchentlichen Downloads in einer einzigen Welle. Jede Abwehrmaßnahme, die nach einer Installation ausgeführt wird, sei es ein nächtlicher Scan oder eine öffentliche Warnung, kommt zu spät.

Ein Paket, dem Sie vertrauen, kann sich gegen Sie wenden

Die folgenreichsten Lieferkettenangriffe des letzten Jahres betrafen Bibliotheken mit Millionen von wöchentlichen Downloads. Angreifer kompromittierten Maintainer-Konten für axios, chalk und debug, stahlen Publish-Tokens und veröffentlichten bösartige Versionen derselben Pakete, die Benutzer bereits in ihren Lockfiles hatten. Reputation und Download-Zahlen schützen nicht vor einer bösartigen neuen Version. Die Überprüfung muss bei jeder Installation erfolgen.

Was eine Dependency-Firewall prüft

Die spezifischen Prüfungen variieren zwischen den Tools, aber eine nützliche Dependency-Firewall deckt die meisten der folgenden Punkte ab. Und jede Prüfung muss auch für transitive Abhängigkeiten gelten, da die meisten modernen Angriffe mehrere Ebenen tief im Abhängigkeitsbaum angesiedelt sind. Das bösartige plain-crypto-js Paket, das den axios-Angriff speiste, war eine transitive Abhängigkeit, die fast niemand explizit installiert hatte.

Bekannte Malware

Die Basisprüfung. Die Firewall gleicht jedes Paket mit einem aktuellen Threat Feed ab und blockiert alles, was bereits markiert wurde. Dies umfasst Backdoors, Credential Stealer, Krypto-Miner und andere als feindlich bekannte Pakete. Entscheidend ist hier, dass der Intelligence Feed schneller ist als der Angreifer. Ein bösartiges Paket, das drei Tage nach der Veröffentlichung markiert wird, ist wahrscheinlich bereits auf dem Rechner einer Person ausgeführt worden.

Mindestalter von Paketen

Die meisten bösartigen Releases werden innerhalb von ein oder zwei Tagen nach der Veröffentlichung entdeckt und entfernt. Eine Firewall, die Pakete blockiert oder verzögert, die in den letzten 24 bis 48 Stunden veröffentlicht wurden, eliminiert das gesamte Früherkennungsfenster. Der Rest des Ökosystems kommt zu derselben Schlussfolgerung. Jeder große Paketmanager im npm-Ökosystem unterstützt jetzt eine Einstellung für das Mindestalter von Releases, die die Installation jeder Paketversion verweigert, die neuer als ein konfigurierbarer Schwellenwert ist. pnpm, Yarn, Bun und npm selbst liefern dies alle mit.

Dependency Confusion, Typosquats und nicht beanspruchte Namen

Dies sind drei eng verwandte Muster. Typosquats imitieren beliebte Paketnamen (z. B. lodahs statt lodash) und setzen darauf, dass ein falsch eingegebener Befehl unbemerkt bleibt. Dependency Confusion zielt auf interne Paketnamen ab, die ein Unternehmen nicht im öffentlichen Register reserviert hat. Der Angreifer veröffentlicht eine öffentliche Version mit einer höheren Versionsnummer, und der Resolver wählt die bösartige aus, in der Annahme, es handele sich um ein sicheres Update. Und es gibt eine neuere Angriffsfläche, die Aikido verfolgt hat, wo Paketnamen in Dokumentationen und README-Dateien referenziert, aber nie tatsächlich veröffentlicht werden. Bleiben sie unbeansprucht, können sie von jedem registriert werden, auch von Angreifern. Coding Agents, die dieselben Dokumente scrapen, installieren dann, was auch immer dort vorhanden ist. Alle drei sind Fälle, die eine Firewall abfängt, bevor der Download erfolgt.

Verhalten von Installationsskripten

Statische Regeln und, in leistungsfähigeren Firewalls, die Ausführung in einer Sandbox prüfen, was die Installationsskripte eines Pakets tatsächlich tun, wohin sie sich verbinden, was sie lesen, was sie starten. Hier verstecken sich ausgeklügelte Angriffe, und hier richten einfache Angriffe ihren Schaden an. Der axios postinstall Hook, der plain-crypto-js nachgezogen hat, ist genau das Muster, das diese Prüfung erkennen soll.

Signale für Maintainer- und Account-Übernahmen

Wenn das Konto hinter einer legitimen, weit verbreiteten Bibliothek kompromittiert wird, wird die bösartige Version unter einem Namen, dem jeder bereits vertraut, an Millionen von Lockfiles ausgeliefert. Gute Firewalls erkennen die Signale einer Account-Übernahme, wie eine unerwartete Änderung des Maintainers, eine Versionserhöhung ohne passenden Source-Commit oder ein legitimes Paket, das plötzlich eine neue Abhängigkeit hinzufügt, die es zuvor nie benötigt hat.

Verschleierungstechniken

Angreifer sind kreativ geworden, was sie wie verstecken. Jüngste Beispiele sind Malware, die in unsichtbaren Unicode-Zeichen geschrieben ist, die in einem Code-Editor nicht gerendert werden (os-info-checker-es6), Payloads, die in aus dem Bildschirm gescrolltem Leerraum versteckt sind (react-html2pdf.js), und Code, der in Bilddateien eingeschleust wird. Eine Firewall, die nur das liest, was ein menschlicher Editor anzeigen würde, übersieht all dies. Die Prüfung muss die Rohbytes betrachten.

Aikidos Dependency-Firewall

Für Teams, die eine Developer-Firewall-Abdeckung für alles benötigen, was Entwickelnde auf ihren Maschinen installieren (z. B. IDE-Erweiterungen, Browser-Erweiterungen, MCP-Server, AI-Coding-Tools), ist Aikido Device Protection die Antwort. Es wird über Ihr bestehendes MDM bereitgestellt, läuft auf derselben zugrunde liegenden Intel-Architektur und bietet Sicherheitsteams eine zentralisierte Transparenz über jede Workstation hinweg.

Für einzelne Entwickelnde oder Teams, die die Installationszeitprüfung ausprobieren möchten, ohne etwas zentral bereitzustellen, ist Safe Chain eine kostenlose, quelloffene Dependency-Firewall für npm, yarn, pnpm, pip, uv, poetry und andere Paketmanager. Installieren Sie es einmal, starten Sie Ihre Shell neu, und jede Installation läuft durch die Firewall.

Die Intelligenz hinter beiden ist Aikido Intel, das neue Paketversionen in über 20 Ökosystemen analysiert, sobald sie veröffentlicht werden, wobei die meisten in durchschnittlich sechs Minuten und viele innerhalb von ein oder zwei Minuten markiert werden. Es läuft in vier Schichten (statische Regeln, Ausführung in einer Sandbox, KI-Reasoning über Dateien hinweg, menschliche Überprüfung für die schwierigsten Fälle), und der Feed selbst ist öffentlich und kostenlos unter AGPL verfügbar.

Zusammen decken Safe Chain, Intel und Device Protection den gesamten Installationspfad der Lieferkette ab, von der npm-Installation eines Entwickelnden bis hin zu einem KI-Agenten, der einen MCP-Server auf einer unbeaufsichtigten Workstation einbindet.

Wie verhindere ich die Installation bösartiger npm-Pakete?

Installieren Sie eine Dependency-Firewall, die beim Installationsbefehl ausgeführt wird. Safe Chain ist kostenlos und quelloffen, umschließt npm, yarn, pnpm, pip und andere Paketmanager und prüft jede Installation gegen Aikido Intel, bevor der Download abgeschlossen ist. Wird das Paket markiert, schlägt die Installation fehl und nichts gelangt auf Ihren Rechner. Die Einrichtung erfolgt mit einem Befehl und einem Shell-Neustart.

Wie schütze ich mich vor Typosquatting und Dependency Confusion?

For dependency confusion specifically, use scoped package names for anything internal (e.g., @yourcompany/<package>) so there's no ambiguous name for an attacker to hijack. For typosquats, use an install-time dependency firewall that checks each package against a real-time threat feed. Safe Chain blocks both across every package manager it wraps.

Wie verhindere ich, dass KI-Coding-Agents bösartige Pakete installieren?

Wenn ein Agent versucht, einen halluzinierten Paketnamen per npm zu installieren, den ein Angreifer vorregistriert hat (ein Angriff namens Slop Squatting), wird eine Dependency-Firewall den Download zum Installationszeitpunkt verhindern. Agenten installieren aber auch über IDE-Erweiterungen, Browser-Erweiterungen und MCP-Server, die das Terminal vollständig umgehen. Dafür deckt Aikido Device Protection alles ab, was eine Entwickelnden-Maschine installieren kann, einschließlich Erweiterungen und MCP-Server.

Was kostet Safe Chain?

Nichts. Safe Chain ist kostenlos und Open Source unter einer MIT-Lizenz und erfordert kein Aikido-Konto zur Nutzung. Der Bedrohungs-Feed, den es prüft, Aikido Intel, ist ebenfalls kostenlos und öffentlich.

Wie implementiere ich eine Dependency Firewall im gesamten Team?

Aikido Device Protection bietet eine Dependency Firewall auf Organisationsebene, die über jedes bereits genutzte MDM (Jamf, Kandji, Fleet, andere) bereitgestellt wird, sodass jeder Arbeitsplatz vom ersten Tag an geschützt ist. Es basiert auf derselben Bedrohungsaufklärung wie Safe Chain und bietet Sicherheitsteams eine zentralisierte Übersicht über jede Maschine.

Teilen:

https://www.aikido.dev/blog/what-is-a-dependency-firewall

<script type="application/ld+json">
{
 "@context": "https://schema.org",
 "@graph": [
   {
     "@type": "BlogPosting",
     "@id": "https://www.aikido.dev/blog/what-is-a-dependency-firewall#article",
     "isPartOf": {
       "@id": "https://www.aikido.dev/blog/what-is-a-dependency-firewall#webpage"
     },
     "mainEntityOfPage": {
       "@id": "https://www.aikido.dev/blog/what-is-a-dependency-firewall#webpage"
     },
     "headline": "What is a dependency firewall?",
     "description": "A dependency firewall is a checkpoint that blocks malicious open-source packages before they install, whether a developer, a CI pipeline, or an AI coding agent requested them. Learn how they work, what they check for, and how Aikido Safe Chain and Device Protection cover the full supply-chain install path.",
     "url": "https://www.aikido.dev/blog/what-is-a-dependency-firewall",
     "datePublished": "2026-07-13T00:00:00+00:00",
     "dateModified": "2026-07-13T00:00:00+00:00",
     "inLanguage": "en-US",
     "wordCount": 1450,
     "timeRequired": "PT7M",
     "articleSection": "Supply Chain Security",
     "keywords": [
       "dependency firewall",
       "software supply chain security",
       "malicious npm packages",
       "install-time protection",
       "Aikido Safe Chain",
       "Aikido Intel",
       "Aikido Device Protection",
       "slopsquatting",
       "typosquatting",
       "dependency confusion",
       "postinstall hook attack",
       "npm supply chain attack",
       "MCP server security",
       "AI coding agent security",
       "minimum package age",
       "package manager cooldown"
     ],
     "author": {
       "@id": "https://www.aikido.dev/authors/nicholas-thomson#person"
     },
     "publisher": {
       "@id": "https://www.aikido.dev#organization"
     },
     "image": {
       "@id": "https://www.aikido.dev/blog/what-is-a-dependency-firewall#primaryimage"
     },
     "about": [
       {
         "@type": "Thing",
         "name": "Dependency firewall",
         "description": "A security checkpoint that inspects and blocks malicious open-source packages before they install on a developer machine, CI pipeline, or AI coding agent."
       },
       {
         "@type": "Thing",
         "name": "Software supply chain security"
       },
       {
         "@type": "Thing",
         "name": "Install-time malware detection"
       }
     ],
     "mentions": [
       {
         "@type": "SoftwareApplication",
         "name": "Aikido Safe Chain",
         "applicationCategory": "SecurityApplication",
         "operatingSystem": "Cross-platform",
         "url": "https://github.com/AikidoSec/safe-chain",
         "offers": {
           "@type": "Offer",
           "price": "0",
           "priceCurrency": "USD"
         }
       },
       {
         "@type": "SoftwareApplication",
         "name": "Aikido Device Protection",
         "applicationCategory": "SecurityApplication",
         "url": "https://www.aikido.dev/product/device-protection"
       },
       {
         "@type": "Dataset",
         "name": "Aikido Intel",
         "description": "Open threat intelligence feed for malicious open-source packages, covering 20+ ecosystems in real time.",
         "url": "https://intel.aikido.dev",
         "license": "https://www.gnu.org/licenses/agpl-3.0.en.html"
       },
       {
         "@type": "SoftwareApplication",
         "name": "npm",
         "applicationCategory": "DeveloperApplication"
       },
       {
         "@type": "SoftwareApplication",
         "name": "pnpm",
         "applicationCategory": "DeveloperApplication"
       },
       {
         "@type": "SoftwareApplication",
         "name": "Yarn",
         "applicationCategory": "DeveloperApplication"
       },
       {
         "@type": "SoftwareApplication",
         "name": "Bun",
         "applicationCategory": "DeveloperApplication"
       },
       {
         "@type": "Thing",
         "name": "axios npm supply chain attack (March 2026)"
       },
       {
         "@type": "Thing",
         "name": "debug and chalk npm compromise (September 2025)"
       },
       {
         "@type": "Thing",
         "name": "postmark-mcp malicious MCP server (September 2025)"
       },
       {
         "@type": "Thing",
         "name": "Slopsquatting"
       },
       {
         "@type": "Thing",
         "name": "Typosquatting"
       },
       {
         "@type": "Thing",
         "name": "Dependency confusion"
       }
     ],
     "speakable": {
       "@type": "SpeakableSpecification",
       "cssSelector": ["h1", "h2", ".faq-question", ".faq-answer"]
     }
   },
   {
     "@type": "WebPage",
     "@id": "https://www.aikido.dev/blog/what-is-a-dependency-firewall#webpage",
     "url": "https://www.aikido.dev/blog/what-is-a-dependency-firewall",
     "name": "What is a dependency firewall? | Aikido Security",
     "isPartOf": {
       "@id": "https://www.aikido.dev#website"
     },
     "primaryImageOfPage": {
       "@id": "https://www.aikido.dev/blog/what-is-a-dependency-firewall#primaryimage"
     },
     "datePublished": "2026-07-13T00:00:00+00:00",
     "dateModified": "2026-07-13T00:00:00+00:00",
     "breadcrumb": {
       "@id": "https://www.aikido.dev/blog/what-is-a-dependency-firewall#breadcrumb"
     },
     "inLanguage": "en-US",
     "potentialAction": [
       {
         "@type": "ReadAction",
         "target": ["https://www.aikido.dev/blog/what-is-a-dependency-firewall"]
       }
     ]
   },
   {
     "@type": "BreadcrumbList",
     "@id": "https://www.aikido.dev/blog/what-is-a-dependency-firewall#breadcrumb",
     "itemListElement": [
       {
         "@type": "ListItem",
         "position": 1,
         "name": "Home",
         "item": "https://www.aikido.dev"
       },
       {
         "@type": "ListItem",
         "position": 2,
         "name": "Blog",
         "item": "https://www.aikido.dev/blog"
       },
       {
         "@type": "ListItem",
         "position": 3,
         "name": "What is a dependency firewall?",
         "item": "https://www.aikido.dev/blog/what-is-a-dependency-firewall"
       }
     ]
   },
   {
     "@type": "Organization",
     "@id": "https://www.aikido.dev#organization",
     "name": "Aikido Security",
     "url": "https://www.aikido.dev",
     "logo": {
       "@type": "ImageObject",
       "url": "https://www.aikido.dev/logo.png",
       "width": 512,
       "height": 512
     },
     "sameAs": [
       "https://www.linkedin.com/company/aikido-security/",
       "https://x.com/AikidoSecurity",
       "https://www.youtube.com/@aikidosecurity",
       "https://github.com/AikidoSec"
     ]
   },
   {
     "@type": "WebSite",
     "@id": "https://www.aikido.dev#website",
     "url": "https://www.aikido.dev",
     "name": "Aikido Security",
     "publisher": {
       "@id": "https://www.aikido.dev#organization"
     },
     "inLanguage": "en-US"
   },
   {
     "@type": "Person",
     "@id": "https://www.aikido.dev/authors/nicholas-thomson#person",
     "name": "Nicholas Thomson",
     "jobTitle": "Senior SEO & Growth Lead",
     "worksFor": {
       "@id": "https://www.aikido.dev#organization"
     },
     "url": "https://www.aikido.dev/authors/nicholas-thomson",
     "sameAs": [
       "https://www.linkedin.com/",
       "https://x.com/"
     ]
   },
   {
     "@type": "ImageObject",
     "@id": "https://www.aikido.dev/blog/what-is-a-dependency-firewall#primaryimage",
     "url": "https://www.aikido.dev/blog/what-is-a-dependency-firewall/og-image.png",
     "contentUrl": "https://www.aikido.dev/blog/what-is-a-dependency-firewall/og-image.png",
     "caption": "What is a dependency firewall?"
   },
   {
     "@type": "DefinedTerm",
     "@id": "https://www.aikido.dev/blog/what-is-a-dependency-firewall#definedterm",
     "name": "Dependency firewall",
     "description": "A dependency firewall is a checkpoint that blocks malicious open-source packages before they install, whether a developer, a CI pipeline, or an AI coding agent requested them. It works similarly to a network firewall, except the traffic is open-source packages instead of network packets and the point of entry is the install command.",
     "inDefinedTermSet": {
       "@type": "DefinedTermSet",
       "name": "Aikido Security Glossary",
       "url": "https://www.aikido.dev/glossary"
     }
   },
   {
     "@type": "FAQPage",
     "@id": "https://www.aikido.dev/blog/what-is-a-dependency-firewall#faq",
     "mainEntity": [
       {
         "@type": "Question",
         "name": "How do I stop malicious npm packages from getting installed?",
         "acceptedAnswer": {
           "@type": "Answer",
           "text": "Install a dependency firewall that runs at the install command. Safe Chain is free and open source, wraps npm, yarn, pnpm, pip, and other package managers, and checks every install against Aikido Intel before the download completes. If the package is flagged, the install fails and nothing lands on your disk. Setup is one command plus a shell restart."
         }
       },
       {
         "@type": "Question",
         "name": "How do I protect against typosquatting and dependency confusion?",
         "acceptedAnswer": {
           "@type": "Answer",
           "text": "For dependency confusion specifically, use scoped package names for anything internal (e.g., @yourcompany/<package>) so there's no ambiguous name for an attacker to hijack. For typosquats, use an install-time dependency firewall that checks each package against a real-time threat feed. Safe Chain blocks both across every package manager it wraps."
         }
       },
       {
         "@type": "Question",
         "name": "How do I stop AI coding agents from installing malicious packages?",
         "acceptedAnswer": {
           "@type": "Answer",
           "text": "When an agent tries to npm install a hallucinated package name that an attacker has pre-registered (an attack called slop squatting), a dependency firewall will stop it from being downloaded at install time. But agents also install through IDE extensions, browser extensions, and MCP servers that bypass the terminal entirely. For that, Aikido Device Protection covers everything a developer machine can install, including extensions and MCP servers."
         }
       },
       {
         "@type": "Question",
         "name": "What does Safe Chain cost?",
         "acceptedAnswer": {
           "@type": "Answer",
           "text": "Nothing. Safe Chain is free and open source under an MIT license, and it doesn't require an Aikido account to use. The threat feed it checks against, Aikido Intel, is also free and public."
         }
       },
       {
         "@type": "Question",
         "name": "How do I roll out a dependency firewall across a whole team?",
         "acceptedAnswer": {
           "@type": "Answer",
           "text": "Aikido Device Protection provides a dependency firewall at the org level, deploying through whatever MDM you already run (Jamf, Kandji, Fleet, others) so every workstation is covered from day one. It runs on the same threat intelligence as Safe Chain and gives security teams centralized visibility across every machine."
         }
       }
     ]
   }
 ]
}
</script>

Nachrichten abonnieren

4.7/5
Falschpositive Ergebnisse leid?

Probieren Sie Aikido, wie 100.000 andere.
Jetzt starten
Erhalten Sie eine personalisierte Führung

Von über 100.000 Teams vertraut

Jetzt buchen
Scannen Sie Ihre App nach IDORs und realen Angriffspfaden

Von über 100.000 Teams vertraut

Scan starten
Erfahren Sie, wie KI-Penetrationstests Ihre App testen

Von über 100.000 Teams vertraut

Testen starten
Testen Sie Safe Chain, kostenlos

Install-time Dependency Firewall

Safe Chain erhalten

Sicherheit jetzt implementieren

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.