Aikido

Schutz vor Zero-Day-Angriffen für NodeJS mit Aikido Zen

Samuel Vandamme
Samuel Vandamme
|
,
,

TLDR: 

0-Day-Angriffe, bei denen Schwachstellen ausgenutzt werden, die den Softwareanbietern unbekannt sind, stellen eine erhebliche Cyber-Bedrohung dar. Herkömmliche Web Application Firewalls (WAFs) reichen oft nicht aus, um diese Angriffe zu verhindern, da sie häufig gepatcht werden müssen. Runtime Application Self Protection (RASP) verfolgt einen anderen Ansatz, der sich nicht auf geschriebene Regeln stützt, sondern das Anwendungsverhalten durch native Integrationen aktiv überwacht, was zu einem erhöhten Schutz vor 0-Days führt. 

Das Ziel bei der Entwicklung von Aikido Zen für NodeJS war es, Entwicklern die Möglichkeit zu geben, ihre Anwendungen nachzurüsten und sie standardmäßig gegen gängige Klassen von Injektionsangriffen wie SQL-Injektionen, Shell-Injektionen, Path Traversal und SSRF zu schützen. Der Entwickler sollte nicht nur gegen Fehler in seinem eigenen Code, sondern auch gegen unbekannte Schwachstellen in den von ihm verwendeten Bibliotheken geschützt werden.

Um seine Wirksamkeit zu beurteilen, haben wir Zen anhand einer Reihe von CVEs bewertet. In diesem Whitepaper wird der Ansatz erläutert, die Effektivität bewertet und die Kompromisse und Einschränkungen aufgezeigt. Für dieses Whitepaper identifizierte das Team 17 Zero-Day-Schwachstellen, von denen 11 von Zen ohne vorherige Kenntnis des spezifischen Exploits blockiert wurden.

Einführung

WAFs waren schon immer eine letzte Hoffnung gegen 0-Days, da sie sich auf eine Kombination aus Glück und wiederkehrenden Mustern verlassen, um 0-Days während ihres "Zero-Day-Angriffs"-Fensters (wie unten dargestellt) abzufangen. Erst nachdem Schwachstellen öffentlich bekannt gemacht wurden (t0), können WAF-Regeln aktualisiert werden, um den neuen Angriff zu stoppen. 

Von Libicki et al. - (auf Englisch) (2015) The Defender's Dilemma: Charting a Course Toward Cybersecurity, Rand Corporation ISBN: 978-0-8330-8911-3., Public Domain, https://commons.wikimedia.org/w/index.php?curid=147095222

Eine WAF prüft eingehende Verbindungsdaten (Header, Body, ...), bevor sie Ihre Anwendung erreichen. Sie scannt die Daten auf verdächtige Muster (SQL-Injections, Pfadüberquerungen) und blockiert oder entfernt die verdächtigen Daten. Obwohl es effektiv ist, neigt es dazu, viele Fehlalarme zu erzeugen, wie Untersuchungen von System Weakness zeigen.

 Wenn Sie 10.000 Kunden haben, könnte die beste Lösung immer noch 56 von ihnen blockieren. 

Aikido Zen verfolgt einen grundlegend anderen Ansatz für die Sicherheit von Webanwendungen. Anstatt sich ausschließlich auf Signaturen und bekannte Muster zu verlassen, konzentriert es sich darauf, das Angriffsverhalten auf einer tieferen Anwendungsebene zu verstehen und zu entschärfen. 

Der Aikido-Zen-Ansatz

Durch die Konzentration auf die Überwachung und das Abfangen bösartiger Aktivitäten an dem Punkt, an dem sie versuchen, auf kritische Ressourcen zuzugreifen oder diese zu manipulieren, ist Aikido Zen in der Lage, die Zahl der Fehlalarme deutlich zu reduzieren, indem es eine Strategie verfolgt, die Angriffe nur dann blockiert, wenn sie mit den zugrunde liegenden Systemen interagieren. 

Dies wird durch die Implementierung eines Systems erreicht, das verschiedene Arten von Interaktionen mit der zugrundeliegenden Umgebung prüft. Dazu gehören:

  • Datenbank-Interaktionen: Die Überwachung von Aufrufen an Datenbankbibliotheken, sowohl SQL als auch NoSQL, ermöglicht die Erkennung von nicht autorisierten Abfragen, Datenexfiltrationsversuchen oder Injektionsangriffen. Durch die Analyse des Inhalts und der Struktur dieser Datenbankaufrufe können bösartige Aktivitäten identifiziert und blockiert werden, bevor sie Schaden anrichten.

  • Externe Anrufe: Die Überwachung externer Anrufe, die über HTTP, HTTPS oder andere Protokolle erfolgen, kann Versuche aufdecken, mit Command-and-Control-Servern zu kommunizieren, Malware herunterzuladen oder Daten zu exfiltrieren. Durch die Untersuchung des Inhalts und des Ziels dieser Anrufe kann bösartiger Datenverkehr identifiziert und blockiert werden.

  • Dateisystemzugriff und Shell-Ausführung: Durch die Überwachung des Dateisystemzugriffs können Versuche erkannt werden, sensible Dateien zu lesen, zu schreiben oder zu ändern oder bösartigen Code auszuführen. Durch die Analyse der Dateipfade, Berechtigungen und Operationen, die an diesen Zugriffen beteiligt sind, können nicht autorisierte Aktivitäten identifiziert und blockiert werden.

  • Server-Side Request Forgery (SSRF)-Versuche: SSRF-Angriffe können verheerend sein, da sie es Angreifern ermöglichen, das Vertrauen Ihres Servers auszunutzen, um auf interne Ressourcen zuzugreifen oder sogar in ihrem Namen mit externen Diensten zu interagieren. Durch die genaue Überwachung des Ziels und der Art der internen Anfragen, die von Ihren Servern ausgehen, kann Zen SSRF-Angriffe blockieren.

Durch die Konzentration auf diese kritischen Punkte der Interaktion mit den zugrundeliegenden Systemen ermöglicht der Zen-Ansatz eine präzisere und effektivere Erkennung und Blockierung von Angriffen und minimiert gleichzeitig die Anzahl der Fehlalarme, die legitime Aktivitäten stören können. Diese Strategie liefert auch wertvolle Erkenntnisse über die Art und die Ziele von Angriffen, die zur Verbesserung der allgemeinen Sicherheitslage genutzt werden können.

Forschung

Das Aikido Zen-Team führt kontinuierlich Tests gegen kürzlich entdeckte Schwachstellen durch, um die Wirksamkeit von Aikido Zen zu messen. Das Team identifiziert neue Schwachstellen, schafft eine reproduzierbare Testumgebung, validiert die Schwachstelle mit einer erfolgreichen Payload-Injektion und installiert dann Aikido Zen, um zu überprüfen, ob der Angriff blockiert wird. 

Für diese Arbeit hat das Team 17 Schwachstellen ermittelt, von denen 11 von Zen blockiert wurden und 6 aus einer Vielzahl von Gründen nicht.

Die Ergebnisse unserer Forschung finden Sie weiter unten. Alle Testumgebungen, Exploits und Ressourcen, die für die Reproduktion benötigt werden, wurden als Open Source zur Verfügung gestellt.

Blockiert

CVE-ID Betroffene Software Typ
CVE-2014-3744 npm:st Pfadüberquerung
CVE-2015-1369 npm:sequelize SQL-Einschleusung
CVE-2019-15597 npm:node-dfs Schaleninjektion
CVE-2020-7687 npm:fast-http Pfadüberquerung
CVE-2020-7765 npm:@firebase/util Prototyp Verschmutzung
CVE-2020-8116 npm:dot-prop Prototyp Verschmutzung
CVE-2020-26301 npm:ssh2 Schaleninjektion
CVE-2023-31719 npm:@frangoteam/fuxao SQL-Einschleusung
CVE-2024-24806 libuv (verwendet von Node.js) SSRF
CVE-2024-39338 npm:axios SSRF
CVE-2024-53900 npm:mongoose JS-Code-Injektion
CVE-2025-23084 Node.js Pfadüberquerung
CVE-2025-25975 npm:parse-git-config Prototyp Verschmutzung
CVE-2025-25977 npm:canvg Prototyp Verschmutzung
CVE-2025-27152 npm:axios SSRF
CVE-2025-28269 npm:js-object-utilities Prototyp Verschmutzung
CVE-2025-32020 npm:crud-query-parser SQL-Einschleusung

Nicht blockiert

CVE Betroffene Software Typ Grund
CVE-2014-9682 dns-sync Befehlsinjektion Verwendet alte, nicht unterstützte ShellJS-Version. Version aktualisiert von Zeni.
CVE-2015-1369 fortsetzen. SQL-Einschleusung Problem wurde zunächst nicht erkannt, in Version 1.7.11 behoben.
CVE-2024-21511 mysql2 Code-Injektion Nicht blockierende Single-Thread-Anfragen führen zu Kontextverlust.
Verwenden Sie Bibliotheken wie async_hooks um den Kontext zu erhalten.
https://github.com/nodejs/node/issues/41257
https://nodejs.org/api/async_context.html#asynccontextasyncresource
CVE-2024-56198 Pfad-Reinigungsmittel Pfadüberquerung Das Problem tritt auf, wenn die Eingabe geändert wird.
CVE-2025-1302 jsonpath-plus Entfernte Code-Ausführung Schwachstelle in der Ausführung auf der Grundlage des Vorhandenseins von Code.
Behoben, indem eine Prüfung vor der Codeausführung sichergestellt wird.
CVE-2024-42352 @nuxt/icon SSRF Das Paket wird nicht mehr unterstützt.

Aikido forscht kontinuierlich und erweitert den Zero-Day-Schutz von Aikido Zen durch neue Framework-Unterstützung und verbesserte Algorithmen.

Ein zentraler Grundsatz ist die Beibehaltung minimaler Leistungseinbußen (≤ 5 %) bei kontinuierlichem Schutz. Dies hindert uns zwar daran, bestimmte ressourcenintensive Schutzalgorithmen sofort zu implementieren (die die Anfragezeiten um das 2- bis 10-fache erhöhen könnten), aber wir entwickeln aktiv alternative, effiziente Ansätze.

Betrachten Sie Aikido Zen als eine *zusätzliche* Schutzschicht, die die umfassenden reaktiven Komponenten von Aikido wie Code-Scanning, API-Tests und andere robuste Sicherheitsfunktionen ergänzt.

Schlussfolgerung

Aikido Zen ist ein wichtiger Durchbruch in der Sicherheit von Webanwendungen. Es bietet einen starken Schutz vor Zero-Day-Angriffen, ohne dass ständige Patches erforderlich sind, da es sich auf das Angriffsverhalten konzentriert und modernste Technologien einsetzt. Aikido Zen bietet eine potenzielle Lösung für die Gewährleistung der kontinuierlichen Sicherheit von Webanwendungen, während sich die Bedrohungslandschaft verändert.

Starten Sie kostenlos

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

Keine Kreditkarte erforderlich |Scanergebnisse in 32 Sekunden.