Anwendungssicherheit testen

Neue PCI-Standards für Software Security

05.03.2019
Von 
Mirko Brandner ist Technical Manager bei Contrast Security. Der Diplom-Informatiker blickt auf über 20 Jahre Berufserfahrung in den Bereichen Sales Development, Softwareentwicklung, Produktmanagement und Consulting in der IT-Branche zurück. Seine Fokusthemen sind Applikationssicherheit, DevSecOps und RASP.
Das neue Software Security Framework des PCI weitet die zulässigen Testmethoden aus. Die hinzugekommenen Methoden versprechen bessere Ergebnisse als die bisherigen.

67 Seiten füllt die neue Version 1.0 des Software Security Frameworks (PDF) der Payment Card Industry (PCI). Es beschreibt die wichtigsten Sicherheitsgrundsätze des Secure-Software-Lifecycle (Secure SLC)-Standards. Dazu gehören unter anderem Governance, Erkennung von Bedrohungen, Erkennung und Eindämmung von Schwachstellen, Sicherheitstests, Änderungsmanagement, sichere Softwareaktualisierungen und Kommunikation mit dem Stakeholder.

Der PCI Secure Software Standard soll die Mindestanforderungen und Prüfprozesse definieren, anhand derer sichere und verlässliche Bezahlsoftware geschrieben werden kann.
Der PCI Secure Software Standard soll die Mindestanforderungen und Prüfprozesse definieren, anhand derer sichere und verlässliche Bezahlsoftware geschrieben werden kann.
Foto: Seksan 99 - shutterstock.com

Im Zuge der neuen Version weitet die PCI auch sie zulässigen Testmethoden aus. Neben SAST (Static Analysis Security Testing) und DAST (Dynamic Analysis Security Testing) stehen jetzt auch die Softwarekomponentenanalyse (SCA) sowie insbesondere IAST (Interactive Application Security Testing) auf der Liste anzuwendender Technologien. Um sich die Vorteile dieser beiden Methoden zu erschließen und gleichzeitig die Compliance aufrechtzuerhalten, müssen Unternehmen gegebenenfalls ihre internen Standards anpassen.

SCA

Mit SCA-Tools lässt sich Software automatisiert nach verwendeten Open-Source-Komponenten durchsuchen. Ziel ist es, Risikomanagement, Sicherheit und Lizenz-Compliance zu erleichtern. In moderner Software finden sich zahlreiche Open-Source-Bausteine, die oft mit etlichen Sicherheitsrisiken einhergehen können.

Großen Schaden richtete beispielsweise eine Struts-2-Schwachstelle beim amerikanischen Dienstleister Equifax an. Apache Struts ist ein bei Banken und Behörden beliebtes Open-Source-Framework, um Java-basierte Web-Anwendungen zu bauen, die sowohl Front- als auch Backend-Web-Services betreiben. Über die Schwachstelle, bei der Nutzereigaben nicht ausreichend validiert wurden, konnten die Angreifer Daten von 143 Millionen Verbrauchern abgreifen, die bei dem Finanzdienstleister gespeichert waren. Die Schwachstelle war bereits zwei Monate vor dem Leck bekannt und von Apache gepatcht worden aber Equifax versäumte es, das Update zeitnah zu implementieren.

IAST

IAST, also das interaktive Testen, ist eine relativ junge Methode, die eine Applikation auf Schwachstellen untersucht während sie ausgeführt wird. Das schließt automatisierte Tests, Funktionstests durch Anwender oder sonstige Ausführung und Interaktion mit der Anwendung mit ein. So entdeckte Schwachstellen werden in Echtzeit an Tester und Testverantwortliche geschickt. Dadurch fällt keine zusätzliche Zeit für die CI/CD-Pipeline (Continuous Integration/Continuous Delivery) durch die Tests an.

IAST arbeitet aus der Applikation heraus und unterscheidet sich daher von statischer (SAST) und dynamischer (DAST) Analyse, die im Wesentlichen von außen den Quellcode oder die Applikation als Blackbox untersucht. Als Bestandteil der Applikation selbst fällt die Analyse leichter, da der Datenfluss genauer beobachtet und damit besser analysiert werden kann. Das führt zu weniger Falschmeldungen (False Positives). Zwar liefert IAST auch keine hundertprozentig akkuraten Ergebnisse, Benchmarks zeigen jedoch Verbesserungen gegenüber den bisherigen Technologien auf.

Die Abdeckung (die Anzahl getesteter Schrittstellen oder untersuchter Codezeilen) ist dabei genauso wie bei den bisherigen Testmethoden. IAST-Produkte geben aber auch Aufschluss über die Abdeckung, um den Anwender nicht in falscher Sicherheit zu wiegen.

Es müssen keine speziellen Sicherheitstests vorbereitet werden, denn mit IAST wird jegliche Ausführung automatisch zum Sicherheitstest. IAST soll, je nach Einschätzung und Produkt, SAST und DAST nicht nur ergänzen, sondern sogar ersetzten können. Das ist im Augenblick aber noch ein strittiges Thema zwischen den Herstellern. Nicht so sehr umstritten ist die Tatsache, dass IAST unter Umständen SCA ersetzen kann. Eingesetzte Frameworks und Bibliotheken können genauso wie eigener Code im laufenden Betrieb untersucht werden.

IAST und RASP sind relativ neue Sicherheitstools und ergänzen die bisher als Standard geltenden Lösungen für SAST, RAST und Web Application Firewalls.
IAST und RASP sind relativ neue Sicherheitstools und ergänzen die bisher als Standard geltenden Lösungen für SAST, RAST und Web Application Firewalls.
Foto: Mirko Brandner

Anwender, die mit den Ergebnissen von SAST und DAST nicht zufrieden sind, können nun auf IAST wechseln und dennoch den PCI-Standard erfüllen. Im Sinne eines modernen Security-by-design-Ansatzes gilt es, Software sowohl schnell als auch sicher zu entwickeln sowie Softwaretests zu automatisieren. Daher kann sich IAST zu einer Standardtechnologie für DevOps und DevSecOps entwickeln.

WAF und RASP

Der neue PCI-Standard ist umfangreich und gibt der Software-Entwicklung mehr Freiheiten. Zugleich fordert er aber nicht nur umfangreiche Tests während des Entwicklungsprozesses sondern auch, Schwachstellen und Angriffe im produktiven Einsatz zu erkennen.

Um dies umzusetzen, stehen Sicherheitsexperten Lösungen wie Web Application Firewalls (WAFs) oder Runtime Application Self Protection (RASP) zur Verfügung. Letztere überprüft auf Anwendungsebene ständig alle Aufrufe und Befehle und kann so beispielsweise vor SQL-Injection schützen. Der Standard nennt diese Lösungen in dem Zusammenhang zwar nicht explizit, sie erfüllen diese Anforderungen aber in hohem Maße.

Ähnlich wie bei den Testmethoden stehen sich bezüglich WAF- und RASP-Produkten alte und neue Technologien strittig mit Vor- und Nachteilen gegenüber. Wo die eigenen Präferenzen auch liegen mögen, Verantwortliche aus Entwicklungs- und Security-Abteilungen sollten einen genauen Blick in den neuen Standard werfen. Die erweiterten Möglichkeiten bieten einige Vorteile, um Softwareentwicklung sowohl effizienter als auch sicherer zu machen.