Germany/Projekte/Top 10-2017 Nächste Schritte für Sicherheitstester

Die Erstellung von sicherem Code ist sehr wichtig. Noch wichtiger jedoch ist die Überprüfung, dass die Sicherheit, die in die Anwendung implementiert werden sollte, auch tatsächlich vorhanden sowie korrekt implementiert ist und an allen vorgesehenen Stellen eingesetzt wird. Das Ziel eines Anwendungssicherheitstest ist es, dies zu belegen. Diese Arbeit ist schwierig und komplex, zusätzlich üben moderne Entwicklungsprozesse, wie agile Entwicklung oder DevOps, einen erheblichen Druck auf traditionelle Vorgehensweisen und Tools aus. Daher empfehlen wir eindringlich, sich ausgiebig Gedanken darüber zu machen, wie man sich auf das Wesentliche und Wichtige innerhalb seines kompletten Anwendungsportfolios konzentrieren und das Testen kosteneffizient durchführen kann. Die aktuelle Risikolandschaft verändert sich schnell, sodass die Zeiten von einmal jährlich durchgeführten Scans oder Penetrationstests längst vorbei sind. Moderne Softwareentwicklung erfordert kontinuierliche Anwendungssicherheitstests über den gesamten Softwareentwicklungsprozess. Hierbei sollte im Auge behalten werden, wie existierende Entwicklungspipelines mit automatischen Sicherheitstests verbessert werden können, ohne die Entwicklung zu verlangsamen. Unabhängig von dem gewählten Ansatz müssen jährliche Kosten für Testen, Priorisieren (Triage), Korrigieren, erneutes Testen sowie erneutes Ausliefern einer einzelnen Anwendung multipliziert mit der Größe des Anwendungsportfolios berücksichtig werden. 

Das Angreifermodell verstehen 
 * Bevor Sie mit dem Testen beginnen, vergewissern Sie sich, dass Sie wissen, wofür Sie Zeit benötigen. Prioritäten ergeben sich aus dem Bedrohungsmodell. Falls noch kein Modell vorliegt, müssen Sie vor dem Testen ein solches erstellen. Erwägen Sie die Verwendung von OWASP ASVS oder des OWASP Testing Guides und verlassen Sie sich nicht auf Tool-Anbieter, um zu entscheiden, was für Ihr Unternehmen wichtig ist.

Den eigenen SDLC verstehen 
 * Ihr Ansatz für die Sicherheitsprüfung von Anwendungen muss mit den Personen, Prozessen und Tools, die Sie in Ihrem Software Development Lifecycle (SDLC) verwenden, in hohem Maße kompatibel sein. Versuche, zusätzliche Schritte, Gatter und Überprüfungen zu erzwingen, verursachen wahrscheinlich Spannungen, werden umgangen und sind schlecht skalierbar. Achten Sie auf natürliche Möglichkeiten, Sicherheitsinformationen zu sammeln und in Ihren Prozess einfließen zu lassen.

Test-Strategien 
 * Wählen Sie zur Verifikation jeder einzelnen Anforderung die einfachste, schnellste und genaueste Technik. Das OWASP Security Knowledge Framework und der OWASP Application Security Verification Standard können eine gute Quelle für funktionale und nicht-funktionale Anforderungen für Ihre Unit- und Integrationstests sein. Stellen Sie sicher, dass Sie die erforderlichen Personal-ressourcen für den Umgang mit False-Positives aus der Verwendung automatisierter Werkzeuge sowie die ernsten Gefahren von False-Negatives berücksichtigen.

Abdeckung und Genauigkeit erreichen 
 * Es ist nicht erforderlich, zu Beginn alles zu testen. Fokussieren Sie sich auf das Wichtigste und erweitern Sie mit der Zeit Ihren Prüfungsplan. Dies beinhaltet sowohl das Erweitern der Sammlung von Sicherheitsmaßnahmen und Risiken, die automatisch verifiziert werden, als auch die Erweiterung der abgedeckten Anwendungen und APIs. Das Ziel ist es einen Status zu erreichen, in dem die essentielle Sicherheit aller Applikationen und APIs kontinuierlich verifiziert wird.

Ergebnisse klar kommunizieren 
 * Egal wie gut Sie im Testen sind, es macht keinen Unterschied bis Sie es effizient kommunizieren. Bauen Sie Vertrauen auf, indem Sie zeigen, dass Sie verstehen wie die Anwendung funktioniert. Beschreiben Sie klar und ohne Fachsprache, wie man das Gefundene ausnutzen kann und fügen Sie ein Angriffsszenario bei, um die möglichen Angriffe realitätsnah darzustellen. Machen Sie eine realistische Einschätzung, wie schwer es ist, die Schwachstelle zu finden sowie auszunutzen und wie schwerwiegend das wäre. Stellen Sie die Ergebnisse in den Tools bereit, die die Entwicklerteams benutzen, nicht als PDF-Dateien.