Laut Statistiken des OpenWeb Application Security Project (OWASP ) zum Thema Internetanwendungssicherheit können die zehn häufigsten Sicherheitsfehler hervorgehoben werden. Die folgende Grafik zeigt die Häufigkeit, mit der diese Schwachstellen bei der ersten Risikobewertung durch die Sicherheitsforschungsorganisation Veracode für Webanwendungen erkannt werden.
Häufigkeit der Erkennung von Schwachstellen in der OWASP Top 10-Liste während der ersten Risikobewertung durch Veracode. Quelle: [Veracode]
Die oben genannten häufigsten Verwundbarkeiten nach OWASP sind:
- Anfälligkeiten für die Möglichkeit, nicht vertrauenswürdige Daten als Teil eines Befehls oder einer Abfrage (SQLi, OS, XXE, LDAP) in einen Codeinterpreteur zu injizieren. Ein Angreifer kann einen Interpreten überlisten, um ungeplante Befehle auszuführen oder ohne ordnungsgemäße Genehmigung auf Daten zuzugreifen.
- Die Autentifizierungs- und Sitzungsverwaltungsmechanismen wurden falsch implementiert. Dies ermöglicht es einem Angreifer, Passwörter, Schlüssel, Sitzungstoxen zu diskreditiert oder die Identität eines anderen Anwendungsbenutzers zu übernehmen.
- Cross-Site-Skript (XSS) ist ein Angriff, der in den Inhalt einer angegriffenen JavaScript-Seiteinjiziert wird. Es kann verwendet werden, um Benutzersitzungen zu übernehmen, auf eine gefährliche Benutzerseite umzuleiten oder soziotechnische Angriffe.
- Verdorbene Zugriffssteuerungsmechanismen für die Berechtigungen und Ressourcen, auf die ein Systembenutzer Zugriff hat. Ein Angreifer kann diese Art von Sicherheitsanfälligkeit ausnutzen, um auf diese nicht autorisierte Funktionalität oder sensible Daten zuzugreifen und auf Konten anderer Benutzer zuzugreifen.
- Falsche Sicherheitseinstellungen – um das System angemessen zu schützen, sind die entsprechenden Einstellungen für Anwendungen, Framework, Anwendungsserver, Datenbankserver, Plattform usw. definiert und bereitgestellt. Darüber hinaus sollte die Software regelmäßig aktualisiert werden.
- Freigabe sensibler Daten – Viele Webanwendungen und APIs schützen sensible Daten wie Finanz-, medizinische oder persönliche Daten nicht angemessen. Ein Angreifer kann solche schlecht geschützten Informationen stehlen oder ändern und mit ihnen Kreditkartenbetrug machen, Identitäten stehlen oder andere Verbrechen begehen. Sensible Daten sollten durch Verschlüsselung während der Übertragung und Speicherung weiter geschützt werden.
- Unzureichender Schutz vor Angriffen – viele Systeme verfügen nicht über grundlegende Möglichkeiten, manuelle und automatisierte Angriffe zu erkennen, zu verhindern und darauf zu reagieren. Es sollten Mechanismen eingeführt werden, die über die grundlegenden Mechanismen zur Validierung von Eingaben hinausgehen und auch die automatische Erkennung, Aufzeichnung und sogar Blockierung von Angriffsversuchen umfassen. Darüber hinaus müssen App-Besitzer in der Lage sein, Sicherheitspatches einfach hochzuspielen.
- Cross-Site Request Forgery (CSRF) besteht darin, den Benutzerbrowser zu zwingen, eine Abfrage an den Server im Kontext dieses Benutzers zu senden. Damit kann das Opfer gezwungen werden, eine nicht autorisierte Aktion auszuführen, z. B. eine Passwortänderung oder eine Überweisung.
- Verwenden von Komponenten mit bekannten Anfälligkeiten – Komponenten wie Bibliotheken, Frameworks und andere in der Software verwendete Module arbeiten mit den gleichen Berechtigungen wie die Anwendung selbst. Wenn eine anfällige Komponente kompromittiert wird, kann ein solcher Angriff eine ernsthafte Gefahr für die Daten oder das gesamte System darstellen. Apps, die Komponenten mit bekannten Verwundbarkeiten verwenden, können die Schicht zum Schutz der App löschen, indem sie sie für verschiedene Arten von Angriffen öffnen.
- Ungesicherte APIs – Moderne Anwendungen bieten neben der grundlegenden Funktionalität häufig APIs für die Kommunikation mit ihnen (SOAP/XML, REST/JSON, RPC, GWT usw.). Diese Schnittstellen sind häufig ungesichert und enthalten mehrere Sicherheitslücken.