SEC11-BP03 Regelmäßig Penetrationstests durchführen
Führen Sie regelmäßige Penetrationstests für Ihre Software durch. Dieser Mechanismus hilft bei der Identifizierung potenzieller Softwareprobleme, die bei automatisierten Tests oder einer manuellen Überprüfung des Codes nicht erkannt werden können. Er kann Ihnen außerdem dabei helfen, die Wirksamkeit Ihrer Erkennungskontrollen zu verstehen. Penetrationstests sollen ermitteln, ob es möglich ist, die Software so zu beeinflussen, dass sie sich unerwartet verhält – etwa, indem sie Daten verfügbar macht, die geschützt sein sollten, oder umfassendere Berechtigungen gewährt als erwartet.
Gewünschtes Ergebnis: Penetrationstests werden zur Erkennung und Behandlung sowie zur Validierung der Sicherheitseigenschaften Ihrer Anwendung verwendet. Regelmäßige und geplante Penetrationstests sollten als Teil des Softwareentwicklungs-Lebenszyklus durchgeführt werden. Die aus Penetrationstests gewonnenen Erkenntnisse sollten vor der Veröffentlichung der Software behandelt werden. Analysieren Sie die Erkenntnisse von Penetrationstests, um zu ermitteln, ob es sich um Probleme handelt, die mithilfe von Automatisierung gefunden werden können. Ein regelmäßiger und wiederholbarer Prozess für Penetrationstests mit einem aktiven Feedback-Mechanismus fließt in die Anweisungen für Entwickler ein und verbessert die Softwarequalität.
Typische Anti-Muster:
-
Penetrationstests werden nur für bekannte oder weit verbreitete Sicherheitsprobleme verwendet.
-
Penetrationstests werden für Anwendungen ohne abhängige Drittanbieter-Tools und -Bibliotheken durchgeführt.
-
Penetrationstests werden nur für Paketsicherheitsprobleme durchgeführt und die implementierte Geschäftslogik wird nicht evaluiert.
Vorteile der Nutzung dieser bewährten Methode:
-
Gesteigertes Vertrauen in die Sicherheitseigenschaften der Software vor der Veröffentlichung
-
Möglichkeit, bevorzugte Anwendungsmuster zu identifizieren, wodurch die Softwarequalität erhöht wird
-
Verbesserte Sicherheitseigenschaften von Software durch eine Feedbackschleife, die früher im Entwicklungszyklus ermittelt, wo Automatisierungen oder zusätzliche Schulungen hilfreich sind
Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: Hoch
Implementierungsleitfaden
Penetrationstests sind eine strukturierte Sicherheitstestübung, bei der Szenarien mit geplanten Sicherheitsverstößen zur Erkennung und Behandlung sowie zur Validierung von Sicherheitskontrollen durchgespielt werden. Penetrationstests starten mit einer Erkundung, bei der Daten basierend auf dem aktuellen Design der Anwendung und ihrer Abhängigkeiten gesammelt werden. Eine kuratierte Liste mit sicherheitsspezifischen Testszenarien wird entwickelt und durchlaufen. Der wesentliche Zweck dieser Tests besteht darin, Sicherheitsprobleme in Ihrer Anwendung aufzudecken, die dazu genutzt werden können, unbeabsichtigten Zugriff auf Ihre Umgebung oder unautorisierten Zugriff auf Daten zu erhalten. Sie sollten Penetrationstests durchführen, wenn Sie neue Funktionen einführen oder wenn sich die Funktion oder technische Implementierung Ihrer Anwendung erheblich geändert hat.
Sie sollten in Ihrem Entwicklungslebenszyklus die am besten geeignete Phase bestimmen, um Penetrationstests durchzuführen. Diese Tests sollten so spät stattfinden, dass sich das System nahe am vorgesehenen Veröffentlichungszustand befindet, aber es sollte noch genügend Zeit vorhanden sein, damit Probleme behoben werden können.
Implementierungsschritte
-
Implementieren Sie einen strukturierten Prozess für den Umfang der Penetrationstests. Dieser Prozess sollte auf dem Bedrohungsmodell
basieren, um den Kontext zu wahren. -
Bestimmen Sie den geeigneten Zeitpunkt im Entwicklungszyklus zum Durchführen von Penetrationstests. Penetrationstests sollten dann erfolgen, wenn nur noch minimale Anwendungsänderungen zu erwarten sind, aber noch ausreichend Zeit für die Fehlerbehebung übrig ist.
-
Schulen Sie Ihre Entwickler hinsichtlich der zu erwartenden Erkenntnisse aus Penetrationstests sowie dahingehend, wie sie Informationen zu deren Behandlung erhalten können.
-
Verwenden Sie Tools zur Beschleunigung von Penetrationstests durch Automatisierung gängiger oder wiederholbarer Tests.
-
Analysieren Sie Erkenntnisse aus Penetrationstests, um systemische Sicherheitsprobleme zu identifizieren, und verwenden Sie diese Daten, um sie in zusätzliche automatisierte Tests und fortlaufende Entwicklerschulungen einfließen zu lassen.
Ressourcen
Zugehörige bewährte Methoden:
Zugehörige Dokumente:
-
AWS-Penetrationstests
enthält ausführliche Informationen zu Penetrationstests in AWS. -
Beschleunigen von Bereitstellungen in AWS mit effektiver Governance
-
Modernisieren Ihrer Penetrationstestarchitektur in AWS Fargate
Zugehörige Beispiele:
-
Automated Security Helper
(GitHub)