Aikido

Zero-Day-Angriffsprävention für NodeJS mit Aikido Zen

Timo KösslerTimo Kössler
|
#
#

TLDR: 

Zero-Day-Angriffe, die Schwachstellen ausnutzen, die Softwareanbietern unbekannt sind, stellen eine erhebliche Cyberbedrohung dar. Herkömmliche Web Application Firewalls (WAFs) reichen oft nicht aus, um diese Angriffe zu verhindern, und erfordern häufiges Patchen. Runtime Application Self Protection (RASP) verfolgt einen anderen Ansatz, der sich nicht auf geschriebene Regeln verlässt, sondern das Anwendungsverhalten durch native Integrationen aktiv überwacht, was zu einem erhöhten Schutz vor Zero-Days führt. 

Das Ziel beim Aufbau von Aikido Zen für NodeJS war es, Entwickelnden zu ermöglichen, ihre Apps nachzurüsten und sie standardmäßig vor gängigen Klassen von Injection-Angriffen wie SQL-Injections, Shell-Injections, Path Traversal und SSRF zu schützen. Nicht nur sollten Entwickelnde vor Fehlern im eigenen Code geschützt sein, sondern auch vor unbekannten Schwachstellen in den verwendeten Bibliotheken.

Um die Effektivität zu bewerten, haben wir Zen anhand einer Reihe von CVEs evaluiert. Dieses Whitepaper erklärt den Ansatz, bewertet die Effektivität und legt Kompromisse und Einschränkungen dar. Für dieses Whitepaper identifizierte das Team 17 Zero-Day-Schwachstellen, von denen 11 von Zen ohne vorherige Kenntnis des spezifischen Exploits blockiert wurden.

Einleitung

WAFs waren schon immer eine letzte Hoffnung gegen Zero-Days, da sie sich auf eine Kombination aus Glück und wiederkehrenden Mustern verließen, um Zero-Days während ihres „Zero-Day-Angriffsfensters“ (wie unten gezeigt) abzufangen. Erst nachdem Schwachstellen öffentlich bekannt gegeben 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 nach verdächtigen Mustern (SQL-Injections, Path Traversals) und blockiert oder entfernt die verdächtigen Daten. Obwohl effektiv, neigt sie dazu, viele Fehlalarme zu erzeugen, wie in der Forschung von System Weakness gezeigt wird.

 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 zur Webanwendungssicherheit. Anstatt sich ausschließlich auf Signaturen und bekannte Muster zu verlassen, konzentriert es sich darauf, Angriffsverhalten auf einer tieferen Anwendungsebene zu verstehen und zu mindern. 

Der Aikido Zen Ansatz

Indem es sich auf die Überwachung und Abfangung bösartiger Aktivitäten an dem Punkt konzentriert, an dem diese versuchen, kritische Ressourcen zu erreichen oder zu manipulieren, kann Aikido Zen eine signifikante Reduzierung von Fehlalarmen (False Positives) erreichen. Dies geschieht durch eine Strategie, 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 zugrunde liegenden Umgebung prüft. Dazu gehören:

  • Datenbankinteraktionen: Die Überwachung von Aufrufen an Datenbankbibliotheken, sowohl SQL als auch NoSQL, ermöglicht die Erkennung von unautorisierten Abfragen, Datenexfiltrationsversuchen oder Injection-Angriffen. 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 Aufrufe: Die Überwachung externer Aufrufe über HTTP, HTTPS oder andere Protokolle kann Versuche aufdecken, mit Command-and-Control-Servern zu kommunizieren, Malware herunterzuladen oder Daten zu exfiltrieren. Durch die Überprüfung des Inhalts und des Ziels dieser Aufrufe kann bösartiger Datenverkehr identifiziert und blockiert werden.

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

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

Indem der Zen-Ansatz sich auf diese kritischen Interaktionspunkte mit den zugrunde liegenden Systemen konzentriert, ermöglicht er eine präzisere und effektivere Erkennung und Blockierung von Angriffen, während die Anzahl der Fehlalarme (False Positives), die legitime Aktivitäten stören könnten, minimiert wird. Diese Strategie liefert auch wertvolle Einblicke in die Art und die Ziele von Angriffen, die zur Verbesserung der gesamten Sicherheitslage genutzt werden können.

Forschung

Im Rahmen kontinuierlicher Bemühungen führt das Aikido Zen Team Tests gegen kürzlich entdeckte Schwachstellen durch, um die Effektivität von Aikido Zen zu messen. Das Team identifiziert neue 0-Day-Schwachstellen, erstellt 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 Studie hat das Team 17 Schwachstellen identifiziert, von denen 11 von Zen blockiert wurden und 6 aus einer Vielzahl von Gründen nicht. 

Die Ergebnisse unserer Forschung finden Sie unten, und alle Testumgebungen, Exploits und Ressourcen, die zur Reproduktion benötigt werden, wurden als Open Source veröffentlicht.

Blockiert

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

Nicht blockiert

CVE Betroffene Software Typ Grund
CVE-2014-9682 dns-sync Command Injection Verwendet eine alte, nicht unterstützte ShellJS-Version. Neuere Versionen werden von Zen unterstützt.
CVE-2015-1369 sequelize SQL-Injection Problem wurde zunächst nicht erkannt, in Version 1.7.0 behoben.
CVE-2024-21511 mysql2 Code-Injection Wir verlieren die Nachverfolgung von Benutzereingaben aufgrund eines Problems mit AsyncContext in Node.js.
CVE-2024-56198 path-sanitizer Path Traversal Wir können die gefährliche Payload aufgrund einer Modifikation nicht bis zur Benutzereingabe zurückverfolgen.
CVE-2025-1302 jsonpath-plus Remote Code Execution Aufgrund eines in V8 integrierten Sicherheitsmechanismus würde sich das Verhalten von eval ändern, wenn wir es instrumentieren.
Wir planen, dies zukünftig mit einem anderen Ansatz zu lösen.
CVE-2024-42352 @nuxt/icon SSRF Paket wird noch nicht unterstützt.

Aikido erforscht und erweitert kontinuierlich den Zero-Day-Schutz von Aikido Zen mit neuer Framework-Unterstützung und verbesserten Algorithmen.

Ein Kernprinzip ist die Aufrechterhaltung eines minimalen Performance-Impacts (≤ 5 %) für kontinuierlichen Schutz. Während uns dies daran hindert, bestimmte ressourcenintensive Schutzalgorithmen sofort zu implementieren (was die Anfragezeiten um das 2- bis 10-fache erhöhen könnte), entwickeln wir 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.

Fazit

Aikido Zen ist ein bedeutender Durchbruch in der Webanwendungssicherheit. Es bietet starken Schutz vor Zero-Day-Angriffen, ohne ständiges Patchen zu erfordern, indem es sich auf Angriffsverhalten konzentriert und modernste Technologien nutzt. Aikido Zen bietet eine potenzielle Lösung zur Gewährleistung der fortlaufenden Sicherheit von Webanwendungen, während sich die Bedrohungslandschaft verändert.

4.7/5

Sichern Sie Ihre Software jetzt.

Kostenlos starten
Ohne Kreditkarte
Demo buchen
Ihre Daten werden nicht weitergegeben · Nur Lesezugriff · Keine Kreditkarte erforderlich

Werden Sie jetzt sicher.

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.