Version 1.0-first_public

lecture: Sichere Softwareentwicklung

Ein praktischer Einstieg

Event large

Continuous Delivery (CD) ist in aller Munde. Zu Recht, denn neben der Möglichkeit, sehr frühzeitig Feedback zu neuen Entwicklungen zu erhalten, erlaubt CD durch Automatisierung von Build-, Deploy- und Testprozessen schnell, zuverlässig und wiederholbar Software auszuliefern, qualitativ hochwertig, mit niedrigem manuellen Aufwand und geringem Risiko.

Doch wollen wir unsere Software kontinuierlich ausliefern, müssen wir auch kontinuierlich Sicherheits-Tests durchführen!

Continuous Security Testing bedeutet, statische und dynamische Analysen bereits während der Entwicklung durchzuführen, um frühzeitig und regelmäßig Sicherheitsmaßnahmen umzusetzen, bevor manuelle Prüfungen wie Penetrationstests zum Einsatz kommen. Um eine Anwendung bereits während der Entwicklung auf das Vorhandensein sicherheitskritischer Schwachstellen hin überprüfen zu können, ist eine Integration in den Entwicklungsprozess und somit eine kontinuierliche und am besten automatisierte Prüfung notwendig.

Der Vortrag stellt die praktischen Erfahrungen aus einem Projekt vor, bei dem Sicherheits-Richtlinien (Secure Coding Guide) für die eigene Entwicklung von Java-Webanwendungen aufgestellt und Sicherheitstests in den Softwareentwicklungsprozess integriert wurden. Dabei wird auf die organisatorischen, inhaltlichen und technischen Überlegungen eingegangen.

Motivation
Continuous Delivery (CD) ist in aller Munde. Zu Recht, denn neben der Möglichkeit, sehr frühzeitig Feedback zu neuen Entwicklungen zu erhalten, erlaubt CD durch Automatisierung von Build-, Deploy- und Testprozessen schnell, zuverlässig und wiederholbar Software auszuliefern, qualitativ hochwertig, mit niedrigem manuellen Aufwand und geringem Risiko.

Doch wollen wir unsere Software kontinuierlich ausliefern, müssen wir auch kontinuierlich Sicherheits-Tests durchführen!

Durch Initiativen wie Continuous Integration sind Code-Analysen inzwischen weit verbreitet und quasi Standard. Doch werden bei diesen Analysen auch Sicherheits-Schwachstellen geprüft? Wenn ja welche? Es existieren diverse Kataloge mit bekannten Verwundbarkeiten, die man für solch eine Prüfung heranziehen kann. Hinzu kommen diverse (OpenSource) Tools, um automatisiert im Entwicklungsprozess Security-Checks durchzuführen.

Der Vortrag richtet sich an Entwickler, Architekten, Plattform-Engineers, Tester und Entscheider.

Basis
Vorbedingung ist eine existierende Infrastruktur für und das Wissen zu Continuous Integration (CI).

Lösung
Continuous Security Testing bedeutet, statische und dynamische Analysen bereits während der Entwicklung durchzuführen, um frühzeitig und regelmäßig Sicherheitsmaßnahmen umzusetzen, bevor manuelle Prüfungen wie Penetrationstests zum Einsatz kommen. Um eine Anwendung bereits während der Entwicklung auf das Vorhandensein sicherheitskritischer Schwachstellen hin überprüfen zu können, ist eine Integration in den Entwicklungsprozess und somit eine kontinuierliche und am besten automatisierte Prüfung notwendig.

Ergebnis
Der Vortrag stellt die praktischen Erfahrungen aus einem Projekt vor, bei dem Sicherheits-Richtlinien (Secure Coding Guide) für die eigene Entwicklung von Java-Webanwendungen aufgestellt und Sicherheitstests in den Softwareentwicklungsprozess integriert wurden. Dabei wird auf die organisatorischen, inhaltlichen und technischen Überlegungen eingegangen.

Ausblick
Der Vortrag beinhaltet ein beispielhaftes Paket an Maßnahmen zur Überprüfung von Sicherheits-Kriterien. Die Auswahl an Tools wächst ständig, so dass hier stets weitere Werkzeuge in den Build-Prozess integrierbar werden. Des Weiteren ist ein Ausbau in der Tiefe und Qualität der Tests denkbar.

Essenz Was nimmt ein Zuhörer von dem Vortrag mit? Wann kann er es anwenden?
Der Vortrag macht einen Vorschlag, wie ein Projekt zur Etablierung von Sicherheits-Tests gestartet werden kann, pragmatisch und lösungsorientiert. Daneben wird aufgezeigt, wie die Integration in den Build-Prozess gelingt, um diese Tests kontinuierlich und automatisiert durchführen zu können. Des Weiteren wird auf weitere Ausbaustufen eingegangen.