In this article
Anwendungssicherheitskontrollen erklärt
Was sind Anwendungssicherheitskontrollen?
In der Sicherheitshierarchie stehen Anwendungssicherheitskontrollen unter Standards und Richtlinien. Richtlinien legen fest, welche Anforderungen an die Anwendungssicherheit und den Schutz gestellt werden. Standards schaffen Regeln, mit denen diese Anforderungen durchgesetzt werden. Anwendungssicherheitskontrollen sind die konkreten Schritte, die Entwicklern oder anderen Teams zur Umsetzung dieser Standards zugewiesen werden. Die Verantwortung für Anwendungskontrollen liegt bei mehreren Abteilungen, doch Entwickler spielen eine zentrale Rolle. Anwendungssicherheitslösungen wie Snyk unterstützen Sie dabei, diese Richtlinien und Kontrollen einzurichten und umzusetzen.
Warum sind Anwendungssicherheitskontrollen wichtig?
Anwendungen erleichtern Mitarbeitenden den Zugriff auf Daten und Systemressourcen. Gleichzeitig eröffnen sie Hackern Möglichkeiten, in Kernsysteme einzudringen. Dadurch entsteht ein Dilemma: Unternehmen müssen für Anwendungssicherheit sorgen und gleichzeitig Störungen interner Prozesse und für Beteiligte möglichst gering halten. Robuste Anwendungskontrollen schaffen eine zusätzliche Sicherheitsebene, unterstützen die Triage im Falle eines Sicherheitsvorfalls und verschaffen Unternehmen einen umfassenderen Überblick über die Anwendungen in ihrer Umgebung. Außerdem ist es für Unternehmen entscheidend, Anwendungssicherheitskontrollen einzusetzen, um ihre Sicherheitslage zu verbessern.
Vorteile von Anwendungssicherheitskontrollen
Sicherheitskontrollen sind ein zentraler Bestandteil eines Sicherheitsprogramms für Unternehmen. Zunächst verhindern sie die Ausnutzung von Anwendungsschwachstellen und senken so das Risiko und die potenziellen Kosten von Sicherheitsverletzungen. Außerdem verschaffen sie einen besseren Überblick über Anwendungen, Datenverkehr und die Daten, die innerhalb des Netzwerks hin- und herübertragen werden.
Anwendungen werden nach Bedrohungsstufe und geschäftlichem Zweck klassifiziert, um ihre Schwachstellen zu bewerten. Anschließend lassen sich Kontrollen auf die jeweilige Anwendung zuschneiden. So können Unternehmen Standards umsetzen und gleichzeitig bestehende Workflows möglichst wenig beeinträchtigen.
Die Ausführung von Anwendungen wird mithilfe von Zulassungs- und Sperrlisten automatisch kontrolliert. Das steigert die Effizienz, insbesondere in größeren Unternehmen mit zentral verwalteten Hosts. Darüber hinaus lassen sich ressourcenintensive Anwendungen identifizieren und der zugehörige Datenverkehr mithilfe der Anwendungskontrolle organisieren, was die allgemeine Netzwerkstabilität erhöht.
Anwendungskontrollen ermöglichen auch neue Ansätze zur Bedrohungsüberwachung. So lässt sich beispielsweise der Datenverkehr mit Netzwerkmodellen vergleichen, um anomales Verhalten zu erkennen.
Welche Arten von Anwendungssicherheitskontrollen gibt es?
Es gibt zahlreiche Arten von Anwendungssicherheitskontrollen. Nicht alle fallen in den Zuständigkeitsbereich von Entwicklerinnen und Entwicklern, und Kontrollen sind nicht dasselbe wie Programmiertechniken. Dennoch ist es sinnvoll, die verschiedenen Kontrollansätze zu kennen:
Vollständigkeitsprüfungen
Damit wird sichergestellt, dass alle Einträge in einem Dateneingabefeld ausgefüllt sind. Unternehmen müssen beispielsweise regelmäßig erneut bestätigen, welche Personen eine Anwendung nutzen, damit nur autorisierte Personen auf vertrauliche Informationen zugreifen können. Im Rahmen dieses Prozesses wird mithilfe einer Vollständigkeitsprüfung bestätigt, dass alle Nutzenden und ihre Berechtigungen erneut zertifiziert wurden.
Gültigkeitsprüfungen
Damit wird sichergestellt, dass Daten vorab festgelegte Kriterien erfüllen und nur validierte Daten eingegeben oder verarbeitet werden.
Identifizierung
Die genaue, eindeutige Identifizierung von Nutzenden ermöglicht es Unternehmen, den Zugriff auf autorisierte Personen oder Gruppen zu beschränken und so Zero-Trust-Sicherheit umzusetzen. Selbst wenn ein Gerät kompromittiert wird, können nur authentifizierte Nutzende über eine Anwendung auf vertrauliche Daten zugreifen.
Klassifizierung
Eine Voraussetzung für Kontrollen: Daten werden anhand ihrer Vertraulichkeit, Risiken, regulatorischen Anforderungen oder anderer relevanter Merkmale in Gruppen eingeteilt.
Protokollierung
Wird eine Sicherheitsverletzung oder verdächtige Aktivität erkannt, können Sie dank der Protokollierung die Aktivitäten einzelner Nutzender untersuchen und den Vorfall vollständig prüfen. Es ist entscheidend, Standards für die Sicherheitsprotokollierung zu entwickeln, die festlegen, welche Ereignisse protokolliert werden müssen.
Verschlüsselung
Die Verschlüsselung kann einzelne Dateien oder umfassendere Datenbestände schützen. Sie müssen das Rad nicht neu erfinden: Open-Source-Verschlüsselungsalgorithmen und Tools für das Secrets-Management schützen Daten im Ruhezustand und bei der Übertragung.
Authentifizierung
Damit wird überprüft, ob die behauptete Identität einer Person oder Softwarekomponente gültig ist – eine Voraussetzung für die Durchsetzung einer identitätsbasierten Zugriffskontrolle.
Zugriffskontrollen
Damit wird der Zugriff auf das Anwendungssystem auf autorisierte Nutzende, IP-Adressen oder Anwendungen beschränkt. Anwendungs-Zulassungs- und Sperrlisten sind zwei Ansätze zur Zugriffskontrolle. Bei einer Zulassungsliste wird der Zugriff auf eine genehmigte Liste von Entitäten beschränkt. Eine Sperrliste hingegen lässt den Zugriff grundsätzlich zu, mit Ausnahme der darauf aufgeführten gesperrten Entitäten.
Eingabekontrollen
Damit wird sichergestellt, dass dem Anwendungssystem nur autorisierte Eingaben zugeführt werden.
Zwei Frameworks für Anwendungssicherheitskontrollen
Da es viele Arten von Kontrollen gibt, ist ein systematischer Ansatz wichtig. Eine Möglichkeit ist, sie in detektive, korrigierende oder präventive Kontrollen zu unterteilen. Ein weiteres Framework unterscheidet zwischen physischen, technischen und administrativen Kontrollen. Eine dritte Möglichkeit ist die Einteilung in Eingabe-, Verarbeitungs- und Ausgabekontrollen.
Für Softwareentwicklerinnen und -entwickler drehen sich Kontrollen natürlich vor allem um sichere Programmierpraktiken. Unternehmen fehlt jedoch oft ein Framework, das Entwicklerinnen und Entwickler anleitet. Führende Sicherheitsorganisationen haben Frameworks für Anwendungskontrollen veröffentlicht. Viele Kontrollen liegen in der gemeinsamen Verantwortung von Netzwerkadministration, Sicherheitsteams oder des gesamten Unternehmens. Einige richten sich jedoch gezielt an Entwicklerinnen und Entwickler und stellen ihnen Tools für sicherheitsbewusste Entwicklung bereit:
CIS Critical Security Controls
Das Center for Internet Security (CIS) pflegt beispielsweise ein Framework mit 18 Critical Security Controls, von denen sich Control 16 der Anwendungssicherheit widmet. Zu den empfohlenen Maßnahmen gehören Schulungen zu sicheren Programmierpraktiken, damit keine Schwachstellen eingeführt werden, Prozesse zur Behebung von Softwareschwachstellen sowie Tools zur Überwachung der Umsetzung anwendungsspezifischer Richtlinien.
CIS empfiehlt, diese Tools für das Schwachstellenmanagement möglichst früh direkt in den Softwareentwicklungslebenszyklus zu integrieren. Sie sollten Mechanismen für Ursachenanalysen, die Überprüfung von Drittanbieteranwendungen und die automatische Fehlererkennung sowie eine Möglichkeit zur Bewertung des Schweregrads von Schwachstellen enthalten.
Kontrollen sollten mithilfe von Risikobewertungsmethoden entwickelt werden, einschließlich Threat Modeling. CIS empfiehlt außerdem, Software-Hardening-Vorlagen für Datenbanken zu verwenden, Web Application Firewalls einzusetzen und Produktions- von Nicht-Produktionssystemen zu trennen.
OWASP Proactive Controls
Die Open Web Application Security Project® Foundation (OWASP), eine gemeinnützige Organisation, die Ressourcen zur Förderung der Anwendungssicherheit veröffentlicht, stellt ein weiteres Framework bereit. Es gilt im Softwareentwicklungslebenszyklus als De-facto-Standard für proaktive Anwendungskontrollen.
Die Empfehlungen sind nach Priorität geordnet, die wichtigsten stehen an erster Stelle:
1. Sicherheitsanforderungen definieren:
Shift Left beginnt bereits in der Planungsphase. Welche konkreten Anforderungen möchten Sie in einem Release erfüllen? Welche Defizite gibt es in der bestehenden Anwendung? Setzen Sie anschließend den Standard um und testen Sie ihn, bevor Sie die neue Version in der Produktionsumgebung bereitstellen.
2. Sicherheits-Frameworks und -Bibliotheken nutzen
Die Anwendungskontrolle bekommt eine zusätzliche Dimension, da Anwendungen zahlreiche Bibliotheken von Drittanbietern und Open-Source-Komponenten enthalten. Mit diesem Schritt wird sichergestellt, dass diese Komponenten aus vertrauenswürdigen Quellen stammen und auf dem neuesten Stand sind. Proaktive Tools zur Erkennung von Abhängigkeiten und Schwachstellen sind dabei hilfreich, etwa OWASP Dependency Check oder Snyk.
3. Datenbankzugriffe absichern
Dazu gehören sichere Abfragepraktiken wie die Parametrisierung von Abfragen zur Abwehr von SQL-Injection, eine sichere Authentifizierung und Konfiguration von Datenbanken sowie eine sichere Kommunikation, beispielsweise über APIs und Services.
4. Daten kodieren und maskieren
So lassen sich Injection-Angriffe verhindern. Cross-Site Scripting (XSS) und die Einschleusung von Betriebssystembefehlen sind zwei Beispiele dafür, wie Daten durch ein System fließen und dazu führen können, dass bösartiger Code ausgeführt wird.
5. Alle Eingaben validieren
Eingabevalidierung ist keine allgemeingültige Sicherheitsregel. Sie kann beispielsweise XSS oder SQL-Injection nicht verhindern. Wenn Sie jedoch sicherstellen, dass Daten syntaktisch und semantisch gültig sind, bevor sie in ein System eingegeben werden, lässt sich die Angriffsfläche verkleinern.
6. Digitale Identität implementieren
Das digitale Gegenstück zu einer Passkontrolle am Flughafen. Zur Überprüfung einer digitalen Identität sind Kontrollen wie Passwörter, Multi-Faktor-Authentifizierung (nicht nur per SMS) oder kryptografische Hardware-Authentifizierung erforderlich. Zum Identitätsmanagement gehören auch eine sorgfältige Implementierung des Sitzungsmanagements sowie sichere Praktiken für Cookies und Tokens.
7. Zugriffskontrollen durchsetzen
Das beginnt mit einer von Anfang an sicher konzipierten Architektur. Statt sich beispielsweise auf rollenbasierte Zugriffsregeln zu stützen, sollten Anfragen durch eine Verifizierungsebene für die Zugriffskontrolle geleitet und im Code fähigkeitsbasierte Prüfungen verwendet werden. So wird vermieden, dass Anwendungslogik Richtlinien durchsetzt. Standardmäßig sollte der Zugriff verweigert werden. Die Vergabe von Zugriffsrechten sollte dem Prinzip der geringsten Berechtigung folgen: Nutzende erhalten nur die Rechte, die sie zur Erledigung ihrer Aufgaben benötigen. Alle Zugriffsereignisse sollten in den Sicherheitsprotokollen erfasst werden.
8. Daten überall schützen
Dazu gehören:
Daten im Ruhezustand mithilfe kryptografischer Lösungen oder integrierter Sicherheitsfunktionen in Software und Cloud-Services schützen.
Daten möglichst gar nicht speichern.
Daten bei der Übertragung mit aktuellen Protokollen wie HTTPS und TLS 1.3 schützen.
Tools für das Secrets-Management einsetzen, um Zertifikate, Passwörter und andere Geheimnisse zu schützen.
9. Sicherheitsprotokollierung und -überwachung implementieren
Eine sicherheitsorientierte Protokollierung ermöglicht Live-Überwachung, Forensik und die Einhaltung regulatorischer Vorgaben. Mit einem Framework wie Apache Logging Services können Sie Reaktionen auf verdächtige Aktivitäten automatisieren. Auch die Protokollierung selbst birgt Risiken. Deshalb ist es wichtig, Daten vor der Protokollierung zu kodieren und zu validieren und die Protokolle in einem sicheren Service zu speichern.
10. Alle Fehler und Ausnahmen behandeln
Entwickeln Sie ein System zur Fehlerbehandlung. Das hilft nicht nur, Systemausfälle zu vermeiden, sondern kann auch verhindern, dass vertrauliche Informationen in Fehlermeldungen oder Ausnahmemeldungen offengelegt werden. Ausnahmen müssen zentral verwaltet, unerwartetes Verhalten in Anwendungen behandelt und alle Ausnahmen protokolliert werden.
Sowohl das CIS- als auch das OWASP-Framework betonen, dass Entwicklerinnen und Entwickler als Erbauer von Anwendungen die Sicherheit beim Programmieren berücksichtigen müssen – von Webanwendungen über die Benutzeroberfläche bis hin zur zugrunde liegenden Geschäftslogik und anderen Anwendungskomponenten.
Weitere Tipps zur Implementierung der OWASP Top 10 Proactive Controls.
Anwendungssicherheitskontrollen mit Snyk implementieren
Die Verantwortung für die korrekte Implementierung von Anwendungssicherheitskontrollen liegt zunehmend bei den Entwicklerinnen und Entwicklern. Schon kleine Versäumnisse, etwa vertrauliche Informationen nicht zu verschlüsseln oder Dateien und Verzeichnisse nicht zu schützen, können katastrophale Folgen haben. Der Datenschutzvorfall bei Capitol One begann beispielsweise mit einer kleinen Fehlkonfiguration, die es einem Angreifer ermöglichte, Kundendaten aus über 100 Millionen Kreditanträgen aus einem Amazon-S3-Bucket herunterzuladen.
Solche Fehlkonfigurationen lassen sich mit automatisierten Tools leicht erkennen und sind deshalb ein attraktives Ziel für Angreifer. Entwicklerinnen und Entwickler sollten daher ebenfalls automatisierte Tools einsetzen, um diese Schwachstellen zu erkennen und zu beheben. Snyk bietet mehrere Tools, die sich in CI/CD-Tools integrieren lassen, um Schwachstellen und Fehlkonfigurationen automatisch zu erkennen und kontextbezogene Hinweise zur Behebung bereitzustellen. So können Anwendungssicherheitskontrollen in der gesamten CI/CD-Pipeline eingerichtet und umgesetzt werden.
Sichern Sie Ihre Anwendungen mit unserem entwicklerorientierten Tool
Effiziente und umsetzbare Empfehlungen für die Anwendungssicherheit – in IDEs, Repositories, Containern und Pipelines.
Registrieren Sie sich kostenlos und überzeugen Sie sich selbst, wie einfach sich Anwendungssicherheitskontrollen mit Snyk verwalten lassen.