Eine Abhängigkeits-Firewall ist eine Kontrollstelle, die schädliche Pakete vor ihrer Installation blockiert, unabhängig davon, ob sie von einem Entwickler, einer CI-Pipeline oder einem KI-Codierungsagenten angefordert wurden. Sie funktioniert ähnlich wie eine Netzwerk-Firewall, nur dass es sich bei dem Datenverkehr hier um Open-Source-Pakete statt um Netzwerkpakete handelt und der Einstiegspunkt der Installationsbefehl ist.
Dependency-Firewalls sind notwendig, weil die Vielzahl der Lieferkettenangriffe sie Lieferkettenangriffe . Aikido analysiert mittlerweile täglich bis zu 100.000 schädliche Pakete in Open-Source-Registern – vor einem Jahr waren es noch etwa 20.000. Allein im zweiten Quartal 2026 wurden rund 7,5 Millionen Paketversionen analysiert und 19.500 als schädlich identifiziert.
{{cta}}
Warum sind Abhängigkeits-Firewalls notwendig?
Sobald Ihr Paketmanager eine Installation durchführt, ist Ihr Rechner angreifbar. Erschwerend kommt hinzu, dass Angreifer schneller geworden sind und ihnen die KI neue Angriffsmöglichkeiten eröffnet hat.
Installationsskripte dienen als Mechanismus zur Bereitstellung der Nutzlast
Wenn Sie ausführen npm install, können Pakete im Rahmen der Installation selbst Code ausführen. Der „postinstall“-Hook ist der Ort, an dem viele moderne Lieferkettenangriffe , da er mit den Berechtigungen des Entwicklers ausgeführt wird, bevor jemand die Möglichkeit hat, den Code zu überprüfen.
Im März 2026, Angreifer haben das npm-Konto des Axios-Betreuers gekapert und verbreitete zwei schädliche Versionen der Bibliothek (die wöchentlich bei rund 100 Millionen Downloads zum Einsatz kommt). Die Schadcode-Nutzlast gelangte über eine neu hinzugefügte transitive Abhängigkeit ins System, plain-crypto-js, dessen Postinstall-Hook auf jedem Rechner, auf dem die Installation ausgeführt wurde, eine plattformübergreifende RAT installierte.
Codierungsagenten und MCP-Server sind neue Installationsumgebungen
Die Installation von Paketen wird nicht mehr immer von einem Menschen ausgelöst. Programmieragenten und MCP-Server beziehen Pakete aus npm auf Entwicklerrechnern, die Zugriff auf sensiblen Code und Anmeldedaten haben. Im September 2025 veröffentlichte ein Angreifer, der sich als Postmark ausgab, einen bösartigen MCP-Server auf npm, der jede ausgehende E-Mail unbemerkt per BCC an eine vom Angreifer kontrollierte Adresse weiterleitete. Es war der erste bestätigte bösartige MCP-Server auf npm, und er ist ein Vorbote dessen, was noch kommen wird.
Auch Agenten haben Halluzinationen, und Angreifer haben begonnen, die Paketnamen zu registrieren, um sich dies zunutze zu machen. Agenten, die falsch raten, laufen nun Gefahr, ein vom Angreifer im Voraus vorbereitetes Paket zu installieren. Diese Art von Angriff, die manchmal als „Slopsquatting“ bezeichnet wird, gab es vor zwei Jahren noch gar nicht.
Die Zeitfenster für Angriffe werden immer kürzer
Der bösartige plain-crypto-js Das Paket, das den Axios-Angriff ermöglichte, war weniger als 24 Stunden lang verfügbar, bevor es zurückgezogen wurde. Das Debug und Chalk-Kompromiss In einer einzigen Welle waren 18 Pakete betroffen, die zusammen mehr als 2 Milliarden wöchentliche Downloads verzeichneten. Jede Abwehrmaßnahme, die erst nach der Installation greift – sei es ein nächtlicher Scan oder eine öffentliche Warnmeldung –, kommt zu spät.
Ein Paket, dem du vertraust, kann sich gegen dich wenden
Die schwerwiegendsten Lieferkettenangriffe letzten Jahres betrafen Bibliotheken mit Millionen von Downloads pro Woche. Angreifer verschafften sich Zugriff auf die Konten der Betreuer von axios, chalk und debug, stahlen Veröffentlichungstoken und schoben bösartige Versionen derselben Pakete ein, die die Nutzer bereits in ihren Lockfiles hatten. Der Ruf und die Downloadzahlen schützen Sie nicht vor einer bösartigen neuen Version. Die Überprüfung muss bei jeder Installation erfolgen.
Was eine Abhängigkeits-Firewall überprüft
Die konkreten Prüfungen variieren je nach Tool, doch eine brauchbare Abhängigkeits-Firewall deckt die meisten der folgenden Punkte ab. Dabei muss jede Prüfung auch auf transitive Abhängigkeiten angewendet werden, da die meisten modernen Angriffe mehrere Ebenen tief im Abhängigkeitsbaum verborgen sind. Die bösartige plain-crypto-js Das Paket, das den Axios-Angriff ermöglichte, war eine transitive Abhängigkeit, die fast niemand explizit installiert hatte.
Bekannte Schadsoftware
Die Basisprüfung. Die Firewall gleicht jedes Paket mit einem Live-Bedrohungsfeed ab und blockiert alles, was bereits als bedenklich markiert wurde. Dies umfasst Backdoors, Credential-Stealer, Krypto-Miner und andere Pakete, die als bösartig bekannt sind. Entscheidend ist dabei, dass der Informationsfeed schneller ist als der Angreifer. Ein bösartiges Paket, das drei Tage nach seiner Veröffentlichung markiert wird, ist wahrscheinlich bereits auf einem Rechner ausgeführt worden.
Mindestalter für das Paket
Die meisten bösartigen Veröffentlichungen werden innerhalb von ein oder zwei Tagen nach ihrer Veröffentlichung entdeckt und zurückgezogen. Eine Firewall, die in den letzten 24 bis 48 Stunden veröffentlichte Pakete blockiert oder verzögert, macht das gesamte Zeitfenster für die Früherkennung zunichte. Der Rest des Ökosystems kommt zu derselben Erkenntnis. Jeder große Paketmanager im npm-Ökosystem unterstützt mittlerweile eine Einstellung für das Mindestalter von Releases, die die Installation von Paketversionen verweigert, die neuer sind als ein konfigurierbarer Schwellenwert. pnpm, Yarn, Bun und npm selbst bieten diese Funktion alle an.
Verwechslungen bei Abhängigkeiten, Typosquats und nicht beanspruchte Namen
Es handelt sich hierbei um drei eng miteinander verbundene Muster. Typosquats ahmen beliebte Paketnamen nach (z. B. „lodahs“ statt „lodash“) und setzen darauf, dass ein falsch eingegebener Befehl unbemerkt bleibt. Die „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 Nummer, und der Resolver wählt die bösartige Version aus, da er sie für ein sicheres Update hält. Zudem gibt es eine neuere Angriffsfläche, Aikido : Hier werden Paketnamen in der Dokumentation und in README-Dateien erwähnt, aber nie tatsächlich veröffentlicht. Bleiben sie un beansprucht, kann sie jeder registrieren – auch Angreifer. Programmieragenten, die dieselben Dokumente auswerten, installieren dann, was dort zu finden ist. Alle drei Fälle werden von einer Firewall abgefangen, bevor der Download stattfindet.
Verhalten des Installationsskripts
Statische Regeln und – bei leistungsfähigeren Firewalls – die Ausführung in einer Sandbox überprüfen, was die Installationsskripte eines Pakets tatsächlich tun, mit welchen Systemen sie sich verbinden, welche Daten sie auslesen und welche Prozesse sie starten. Genau hier verbergen sich raffinierte Angriffe, und genau hier richten einfache Angriffe ihren Schaden an. Der „postinstall“-Hook von Axios, der „plain-crypto-js“ einbunden hat, entspricht genau dem Muster, auf das diese Überprüfung abzielt.
Signale für Betreuer und Kontoübernahmen
Wenn das Konto hinter einer legitimen, weit verbreiteten Bibliothek kompromittiert wird, gelangt die schädliche Version unter einem Namen, dem bereits jeder vertraut, in Millionen von Lockfiles. Gute Firewalls erkennen die Anzeichen einer Kontoübernahme, wie beispielsweise einen unerwarteten Wechsel des Betreuers, eine Versionserhöhung ohne entsprechenden Commit im Quellcode oder ein legitimes Paket, das plötzlich eine neue Abhängigkeit hinzufügt, die es zuvor nie benötigt hat.
Verschleierungstechniken
Angreifer sind immer kreativer geworden, was sie verstecken und wie sie dabei vorgehen. Zu den jüngsten Beispielen gehören Malware, die in unsichtbaren Unicode-Zeichen geschrieben ist, die in einem Code-Editor nicht angezeigt werden (os-info-checker-es6), Payloads, die in Leerzeichen versteckt sind, die aus dem Bildschirmbereich herausgescrollt wurden (react-html2pdf.js), sowie Code, der in Bilddateien eingeschleust wurde. Eine Firewall, die nur das liest, was ein menschlicher Editor anzeigen würde, übersieht all diese Fälle. Die Überprüfung muss die Rohdaten (Bytes) untersuchen.
Die Abhängigkeits-Firewall Aikido
Für Teams, die eine Entwickler-Firewall für alle von Entwicklern auf ihren Rechnern installierten Komponenten benötigen (z. B. IDE-Erweiterungen, Browser-Erweiterungen, MCP-Server, KI-Codierungstools), ist Aikido Protection die Lösung. Die Lösung wird über Ihr bestehendes MDM bereitgestellt, läuft auf derselben Intel-Basis und bietet Sicherheitsteams einen zentralen Überblick über alle Arbeitsstationen.
Für einzelne Entwickler oder Teams, die die Überprüfung bei der Installation ausprobieren möchten, ohne etwas zentral bereitzustellen, ist Safe Chain eine kostenlose Open-Source-Abhängigkeits-Firewall für npm, yarn, pnpm, pip, uv, poetry und andere Paketmanager. Installieren Sie sie einmal, starten Sie Ihre Shell neu, und jede Installation wird durch die Firewall geleitet.
Hinter beiden steht Aikido , das neue Paketversionen in über 20 Ökosystemen unmittelbar nach ihrer Veröffentlichung analysiert und die meisten davon im Durchschnitt innerhalb von sechs Minuten, viele sogar innerhalb von ein oder zwei Minuten, kennzeichnet. Das System arbeitet in vier Ebenen (statische Regeln, Ausführung in einer Sandbox, KI-basierte Analyse der Dateien, manuelle Überprüfung in besonders schwierigen Fällen), und der Feed selbst ist öffentlich und unter der AGPL kostenlos verfügbar.
Gemeinsam decken Safe Chain, Intel und Device Protection den gesamten Installationspfad entlang der Lieferkette ab – vom „npm install“ eines Entwicklers bis hin zu einem KI-Agenten, der einen MCP-Server auf einer unbeaufsichtigten Workstation einbindet.
<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>

