Mit dem DevSecOps-Ansatz sind die IT-Security und das Software Testing ein integraler Bestandteil der Entwicklungsprozesse. Sicherheitslücken und Softwarefehler sollten jedoch bereits während der Entwicklung automatisiert entdeckt und geschlossen werden. Über die Mehrwerte des Fuzz Testing.
Über viele Jahre wurde in der Softwareentwicklung, um Entwicklungsprozesse effizienter zu gestalten, der sogenannte DevOps-Ansatz verfolgt. So konnten Entwicklungsverfahren beschleunigt und Betriebskosten reduziert werden. Sicherheitsaspekte wurden dabei jedoch oft separat gehandhabt. Die Software wurde erst ganz am Ende ihres Entwicklungszyklus in einem Pentest auf Sicherheit überprüft. Die Folge: zusätzliche Kosten. Denn je später eine Sicherheitslücke im Entwicklungsprozess bemerkt wird, desto teurer wird ihre Behebung. So entstand der DevSecOps-Ansatz. Von Beginn an wird die Software hier in jeder Phase ihrer Entwicklung auf Sicherheit überprüft, um diese mit einem geringeren Aufwand verbessern zu können. Verschiedene Verfahren und Tools unterschiedlicher Anbieter stehen für diese Aufgabe mittlerweile zur Verfügung.
Die statische Code-Analyse ist unter Entwickler-Teams bereits weit verbreitet. Diese Schwachstellen-Scanner zeigen Unregelmäßigkeiten im Code auf. Dabei wird der gesamte Quellcode einer Software auf Muster geprüft – ähnlich zu einer Rechtschreibprüfung – nicht aber seine tatsächliche Ausführung getestet. Das Problem: Das Verfahren produziert in der Regel zu viele Falschmeldungen. Die Prüfung dieser Meldungen ist dabei sehr arbeitsaufwendig. Viel wichtiger ist jedoch der Aspekt, dass dieses Verfahren viele kritische Fehler übersieht, die erst in einem Pentest gefunden werden.
Ein anderer Ansatz wird bei einer dynamischen Code-Analyse verfolgt, wobei nicht der Quellcode geprüft, sondern dessen Ausführung in der Praxis getestet wird. Automatisiert werden hierzu bestimmte Eingaben getätigt, um zu ermitteln, wie sich die Software in der Praxis bewährt. Der Nachteil: Es gibt keine Garantie, dass alle möglichen Programmpfade durch den Test abgedeckt werden. Zwar können Angriffsmuster manuell nachgebessert werden, doch ist der Arbeitsaufwand hier, wie bei der anschließenden Identifizierung und Behebung der Fehler, vergleichsweise hoch.