Wir haben die 3 kritischsten Sicherheitslücken in Webanwendungen identifiziert, denen Aikido-Benutzer ausgesetzt sind. In diesem Leitfaden erfahren Sie, worum es sich dabei handelt, warum sie so häufig vorkommen und wie man sie behebt - zusammen mit einigen riskanten Zweitplatzierten, die wir nicht ignorieren konnten.
Wenn Sie diese Probleme frühzeitig und effektiv angehen, sind Sie im Kampf um die Sicherheit Ihrer Webanwendung vor Cyberkriminalität bereits weit voraus.

1. Häufigste und kritische Code-Schwachstelle (SAST)
Die statische Anwendungssicherheitsprüfung (SAST) ist eine Prüfmethode, bei der der Quellcode in einem frühen Stadium des Entwicklungszyklus auf Schwachstellen untersucht wird. Sie wird als White-Box-Methode bezeichnet, weil die Funktionsweise der Anwendung dem Tester bekannt ist.
NoSQL-Injektionsangriffe (Code-Schwachstelle: SAST)
NoSQL-Injection kann zu Datenlecks, beschädigten Datenbanken und sogar zu einer vollständigen Kompromittierung des Systems führen. Leider handelt es sich dabei um eine kritische Sicherheitslücke in Webanwendungen, der bereits viele Aikido-Benutzerkonten ausgesetzt waren.
Was ist eine NoSQL-Injektion?
NoSQL-Injection ist eine Angriffsart, bei der Hacker bösartigen Code verwenden, um eine NoSQL-Datenbank zu manipulieren oder sich unbefugten Zugriff darauf zu verschaffen. Im Gegensatz zu SQL-Injektionen, die auf SQL-Datenbanken abzielen, werden bei NoSQL-Injektionen Schwachstellen in NoSQL-Datenbanken wie MongoDB ausgenutzt. Dies kann zu Datenlecks, Korruption oder sogar zur vollständigen Kontrolle über die Datenbank führen.

Warum ist diese Schwachstelle so häufig?
NoSQL-Injektionen sind weit verbreitet, unter anderem wegen der zunehmenden Beliebtheit von NoSQL-Datenbanken, insbesondere MongoDB. Diese Datenbanken bieten Leistungsvorteile, sind aber mit einzigartigen Sicherheitsherausforderungen verbunden.
Darüber hinaus sind NoSQL-Datenbanken flexibel, da sie verschiedene Formate wie XML und JSON akzeptieren. Diese Flexibilität ist großartig, kann aber zu Sicherheitslücken in Webanwendungen führen, da Standard-Sicherheitsprüfungen bösartige Eingaben, die auf diese Formate zugeschnitten sind, möglicherweise nicht abfangen.
Und die große Anzahl von NoSQL-Datenbanken, die alle ihre eigene Syntax und Struktur haben, erschwert die Entwicklung universeller Schutzmaßnahmen. Sicherheitsexperten müssen die spezifischen Details jeder Datenbank verstehen, was den Präventionsprozess noch komplexer macht.
Schlimmer noch, im Gegensatz zu herkömmlichen SQL-Injections können NoSQL-Injections in verschiedenen Teilen einer Anwendung auftreten. Das macht es noch schwieriger, sie zu erkennen.
Wie können Sie diese Schwachstelle leicht beheben?
Verwenden Sie Eingabevalidierung und parametrisierte Abfragen. Durch die Eingabevalidierung wird sichergestellt, dass die Benutzereingaben den erwarteten Typen und Formaten entsprechen und unsichere Werte zurückgewiesen werden. Parametrisierte Abfragen verhindern die Einbettung von nicht validierten Eingaben.
Generell sollten Sie immer Sicherheitsfunktionen für Datenbanken wie Authentifizierung und Verschlüsselung einsetzen. Halten Sie sich mit den neuesten Patches auf dem Laufenden. Und stellen Sie sicher, dass Sie regelmäßige Prüfungen von Code und Konfigurationen durchführen, um diese und andere Schwachstellen zu erkennen und zu beheben.
Zweiter Platz: Hinterlassen von gefährlichen Debug-Funktionen im Code (Code-Schwachstelle: SAST)
Offengelegte Debug-Funktionen ermöglichen es Angreifern, Systeme auszunutzen - manchmal mit erheblichen Sicherheitsrisiken.
Was sind gefährliche Debug-Funktionen?
Debug-Funktionen wie phpinfo() können sensible Informationen über Ihren Server und Ihre Umgebung preisgeben. Dazu gehören die PHP-Version, Details zum Betriebssystem, Serverinformationen und sogar Umgebungsvariablen, die geheime Schlüssel enthalten könnten (obwohl wir definitiv nicht empfehlen, geheime Schlüssel dort zu platzieren!)
Wenn die Struktur Ihres Dateisystems durch diese Debug-Funktionen aufgedeckt wird, können Hacker Verzeichnisüberquerungsangriffe durchführen, wenn Ihre Website anfällig ist. Die Offenlegung von phpinfo() an sich stellt nicht unbedingt ein hohes Risiko dar, kann es Angreifern aber etwas leichter machen. Das Prinzip ist klar: Je weniger spezifische Informationen Hacker über Ihr System haben, desto besser.
Warum ist diese Schwachstelle so häufig?
Diese Sicherheitslücke in Webanwendungen tritt häufig auf, weil Entwickler diese Funktionen zum Debuggen verwenden und sie manchmal sogar zur Fehlerbehebung in die Produktion übertragen. Eilige Veröffentlichungen, mangelnde Codeüberprüfung und Unterschätzung der Risiken tragen dazu bei, dass diese Funktionen ungeschützt bleiben.
Wie können Sie diese Schwachstelle leicht beheben?
- Code-Review: Überprüfen Sie Ihren Code regelmäßig, um Debug-Funktionen zu identifizieren und zu entfernen, bevor Sie ihn in der Produktion einsetzen.
- Automatisierte Tools zum Scannen von Sicherheitslücken: Verwenden Sie ein Tool wie Aikido, das gefährliche Debug-Funktionen erkennen kann.
- Umgebungsspezifische Konfigurationen: Stellen Sie sicher, dass Sie die Debug-Funktionen in der Produktionsumgebung deaktivieren.
2. Die häufigste und kritischste DAST-Schwachstelle
Dynamic Application Security Testing (DAST) ist eine Testtechnik, die Schwachstellen in laufenden Anwendungen aufdeckt. Sie wird als Blackbox-Methode bezeichnet, weil sie sich nur auf das beobachtbare Verhalten konzentriert. DAST zeigt Ihnen, wie das System für einen Angreifer aussehen könnte.

Vergessen der wichtigsten Sicherheits-Header: HSTS und CSP (Cloud-Schwachstelle: DAST)
Eine unzureichende HSTS- und CSP-Implementierung macht Webanwendungen anfällig für schwere Angriffe wie XSS und die Offenlegung von Informationen.
Was ist CSP?
Content Security Policy (CSP) ist ein Sicherheitsmechanismus, der verschiedene browserbasierte Angriffe wie Cross-Site-Scripting und Clickjacking abwehren hilft. Dies geschieht durch die Einschränkung riskanter Verhaltensweisen in Webseiten wie Inline-JavaScript und unsichere eval()-Funktionen. CSP erzwingt sicherere Standardeinstellungen, um die Integrität und Vertraulichkeit von Inhalten zu wahren. Der wichtigste Vorteil ist der Schutz vor der böswilligen Einschleusung von Skripten.
Warum ist diese DAST-Schwachstelle so häufig?
HSTS und CSP werden häufig vernachlässigt, insbesondere CSP, und Entwickler geben der Funktionalität oft den Vorrang vor diesen Headern.
Man sollte CSP schon früh in der Entwicklung einplanen, aber es wird oft übersehen. Und wenn Entwickler versuchen, es später zu implementieren oder nachzurüsten, kommt es zu Konflikten, so dass sie CSP ganz auslassen, um mit anderen Arbeiten fortzufahren. Dadurch bleiben die Anwendungen ungeschützt und sind einer Reihe von Sicherheitslücken in Webanwendungen ausgesetzt.
Wie kann man diese DAST-Schwachstelle leicht beheben?
- Implementieren Sie HSTS, um ausschließlich HTTPS-Verbindungen zu erzwingen. Aktivieren Sie es auf dem Server durch Konfigurationsdateien oder eine WAF.
- Definieren Sie einen strengen CSP, der auf Ihre Anwendung zugeschnitten ist, und schränken Sie unsichere Praktiken wie Inline-Skripte ein. Testen Sie sorgfältig auf Kompatibilität.
- Überwachen und aktualisieren Sie die Kopfzeilen laufend, wenn sich die Anwendung weiterentwickelt, um den Schutz aufrechtzuerhalten.
3. Häufigste und kritische Cloud-Schwachstellen (CSPM)
Tools für das Cloud Security Posture Management (CSPM) überwachen kontinuierlich Cloud-basierte Umgebungen, um die Einhaltung von Sicherheitsstandards und Best Practices zu gewährleisten. CSPM-Tools suchen nach Sicherheitsfehlkonfigurationen und zielen darauf ab, Risiken zu mindern.

Anfälligkeit von EC2 IAM-Rollen für SSRF-Angriffe (Cloud: CSPM)
Offene EC2 IAM-Rollen ermöglichen es Angreifern häufig, sich seitlich zu bewegen und unbefugten Zugriff auf Cloud-Umgebungen zu erhalten. Die potenziellen Auswirkungen eines solchen Angriffs können verheerend sein.
Was sind EC2 IAM-Rollen?
EC2 IAM-Rollen (Identity and Access Management) in Amazon Web Services (AWS) delegieren Berechtigungen, um erlaubte Aktionen für bestimmte Ressourcen festzulegen. Sie ermöglichen EC2-Instances die sichere Interaktion mit anderen AWS-Services, ohne dass Anmeldeinformationen direkt auf den Instances selbst gespeichert werden müssen.
Was ist ein SSRF-Angriff?
Bei einem SSRF-Angriff (Server Side Request Forgery) zwingt ein Angreifer den Server, Anfragen an interne Ressourcen zu stellen, als wäre es der Server selbst, der diese stellt. Auf diese Weise kann der Angreifer möglicherweise auf nicht autorisierte Systeme zugreifen, Kontrollen umgehen oder sogar Befehle ausführen. Sehen Sie sich dieses erschreckende Beispiel an, wie ein SSRF-Angriff die Cloud eines Startups über ein einfaches E-Mail-Formular übernommen hat.
Warum ist diese CSPM-Schwachstelle so häufig?
EC2 IAM-Rollen sind in der Regel aufgrund von Sicherheitsfehlkonfigurationen oder zu freizügigen Rollen anfällig für SSRF-Angriffe. Das Jonglieren mit komplexen Cloud-Berechtigungen ist schwierig, und einige Entwickler verstehen die Risiken möglicherweise nicht ganz. Hinzu kommt, dass das Bestreben, dass die Dienste reibungslos zusammenarbeiten, die Teams oft dazu verleitet, mehr Zugriffsrechte zu gewähren, als wirklich nötig sind.
Wie können Sie diese CSPM-Schwachstelle leicht beheben?
Es gibt einige solide Methoden, um EC2-Rollen in Angriff zu nehmen und SSRF-Sicherheitsschwachstellen bei Webanwendungen zu entschärfen. Halten Sie sich zunächst an das Prinzip der geringsten Privilegien - erlauben Sie nur genau den Zugriff, der absolut notwendig ist, und nicht mehr. Übermäßig freizügige Rollen sind ein gefundenes Fressen für Probleme.
Als Nächstes sollten Sie die integrierten AWS-Tools wie Sicherheitsgruppen und Netzwerk-ACLs nutzen, um den Datenverkehr einzuschränken und die potenziellen Möglichkeiten für SSRF-Angriffe zu verringern. Je mehr Sie den Zugriff einschränken können, desto besser.
Außerdem ist es wichtig, die Rollen regelmäßig zu überprüfen und zu kontrollieren, um unnötige Zugriffe zu erkennen, die sich im Laufe der Zeit einschleichen könnten, wenn sich Dinge ändern. Behalten Sie den Überblick.
Und schließlich sollten Sie AWS-Sicherheits-Tools implementieren, die speziell darauf ausgerichtet sind, SSRF-Angriffe zu erkennen und zu verhindern, bevor sie Schaden anrichten. Je mehr Schutzschichten, desto sicherer sind Sie.
Zweiter Platz: Veraltete Cloud-Lambda-Laufzeiten (Cloud: CSPM)
Wenn diese Laufzeitumgebungen veraltet sind, können sie die Lambda-Funktionen für Angreifer offenlegen.
Was sind veraltete Lambda-Laufzeiten?
Veraltete Lambda-Laufzeiten beziehen sich auf die Verwendung älterer Versionen von Programmiersprachen oder Umgebungen in serverlosen Funktionen (Lambdas). Diesen veralteten Laufzeiten fehlen möglicherweise die neuesten Sicherheitspatches oder Funktionsupdates, wodurch Anwendungen möglicherweise bekannten Sicherheitslücken in Webanwendungen ausgesetzt sind.
Warum ist diese CSPM-Schwachstelle so häufig?
Die Schwachstelle entsteht oft durch eine "Einrichten und Vergessen"-Mentalität. Entwickler können Lambdas mit einer bestimmten Laufzeit einsetzen und vernachlässigen, sie zu aktualisieren, wenn neue Versionen veröffentlicht werden. Sie können auch den Fehler machen, davon auszugehen, dass Cloud-Anbieter die gesamte Wartung übernehmen. Auch wenn AWS und Google Cloud Functions die Laufzeiten für Sie mit kleineren Betriebssystem-Patches pflegen, werden sie keine größeren Sprach-Upgrades vornehmen. Hinzu kommt, dass die Komplexität der Verwaltung mehrerer Lambdas dazu führt, dass veraltete Laufzeiten leicht durch die Maschen fallen und ein zusätzliches Risiko darstellen.
Wie können Sie diese CSPM-Schwachstelle leicht beheben?
Sie können das Risiko mindern, indem Sie drei einfache Regeln befolgen:
- Überprüfen Sie regelmäßig, welche Laufzeiten verwendet werden, und suchen Sie nach Aktualisierungen.
- Aktualisieren Sie auf die neuesten unterstützten Versionen mit Sicherheits-Patches.
- Verwenden Sie nach Möglichkeit Automatisierungswerkzeuge zur Verwaltung und Aktualisierung von Laufzeiten.
Sicherheitslücken in Webanwendungen und bewährte Praktiken
Die Kenntnis dieser Sicherheitslücken in Webanwendungen ist für die Systemsicherheit unerlässlich, aber denken Sie daran, die besten Sicherheitspraktiken zu befolgen. Bleiben Sie auf dem Laufenden, wenden Sie die entsprechenden Korrekturen an und überwachen Sie Ihre Umgebung regelmäßig, um sie sicher zu halten.
Scannen Sie Ihre Umgebung jetzt mit Aikido, um herauszufinden, ob Sie einer dieser Schwachstellen ausgesetzt sind.
In der 2024 SaaS CTO Security Checklist von Aikido finden Sie 40+ Ratschläge, wie Sie die Sicherheit Ihrer Mitarbeiter, Prozesse, Ihres Codes, Ihrer Infrastruktur und vieles mehr verbessern können.