Lesen Sie in diesem Blogbeitrag, welche Chancen "Security by Design" bietet und wie ein Secure Code Review abläuft.
Erst die Anwendung bauen und dann "zur Sicherheit" einen Pentest machen. Dieses, leider sehr häufige, Vorgehen trägt aus unserer Sicht nicht.
Denn: IT-Sicherheit ist ein Aspekt der Softwarequalität, genau so wie Funktionalität, Bedienbarkeit, Effizienz und Wartbarkeit. Wir sind überzeugt, dass eine gute Qualität im Entwicklungsprozess erzeugt wird („Security by Design“) und nicht im Nachhinein „hineingeprüft“ werden kann.
Eine sinnvolle Maßnahme, um die Einhaltung der IT-Sicherheitsstandards zu überprüfen, ist ein Secure Code Review. Im Folgenden erläutern wir das Vorgehen anhand der Entwicklung einer Portalanwendung.
sicherheit von anfang an mitdenken
Ziel des Secure Code Reviews ist es sicherzustellen, dass die grundsätzliche Architektur des Portals und die bisher programmierten Komponenten dem geforderten Sicherheitsniveau entsprechen. Potenzielle Beanstandungen aus dem Secure Code Review sollten im Anschluss vor Produktivstart behoben werden.
Dadurch ergeben sich für das Secure Code Review folgende Vorteile:
- Findet frühzeitig Schwachstellen ohne dass die Anwendung schon "laufen" muss
- Deckt ggf. Probleme im Entwicklungsprozess auf, die ebenfalls frühzeitig adressiert werden können
- Identifiziert die eigentliche Ursache für Schwachstellen in der Anwendung
- Bietet die Möglichkeit, Entwicklungsprozesse zu optimieren oder Entwicklungs-Teams gezielt zu schulen
Wie eine Secure code review abläuft
Wie für die meisten betriebswirtschaftlichen Anwendungen haben wir uns in diesem Fall für eine gezielte Suche nach möglichen Schwachstellen anstelle einer vollständigen Abdeckung aller Codezeilen und Komponenten entschieden. Für die statische und die dynamische Analyse werden jeweils zwei kleine Teams gebildet.
statische Analyse: technischen und fachlichen sicherheitslücken auf der spur
Das erste Team konzentrierte sich auf die statische Analyse und hat den Quellcode mit entsprechenden Tools nach technischen als auch fachlichen Sicherheitslücken durchsucht. Die toolgestützte Suche wurde durch eine manuelle Überprüfung ergänzt.
Dabei konnten einzelne Falschmeldungen der Tools sofort von der Liste der Feststellungen entfernt werden. Auch die grundsätzliche Architektur des auf Microservices aufbauenden Portals wurde aus Sicherheitsgesichtspunkten bewertet, um dort architektonische Schwachstellen oder potenzielle Sicherheitslücken zu entdecken.
Um sicherzustellen, dass in der Anwendung keine Bibliotheken oder andere Komponenten mit bekannten Schwachstellen enthalten waren, wurde zusätzlich eine Analyse der Abhängigkeiten der Anwendung durchgeführt. Letztlich wurde auch der Continuous-Integration-Prozess analysiert.
Dynamische Analyse: Wie sicher ist die anwendung im Einsatz?
Da die Anwendung in einer Testumgebung verfügbar war, konnte ein zweites kleines Team eine dynamische Analyse des Portals durchführen. Dabei versuchten die beiden Mitarbeiter gezielt Sicherheitsmaßnahmen zu umgehen oder das Fehlen von notwendigen Sicherheitsmaßnahmen festzustellen.
Die in der dynamischen Analyse gefundenen Schwachstellen wurden direkt an das erste Team weitergeleitet, damit diese sich betroffene Stellen im Quellcode im Rahmen der statischen Codeanalyse gezielter ansehen konnten.
Schwachstellen priorisieren und beheben
Aus der statischen und dynamischen Analyse resultierte eine Liste mit Feststellungen. Der nächste Schritt war die Betrachtung der einzelnen Feststellungen. Je nach Eintrittswahrscheinlichkeit und möglichen Auswirkungen haben die Mitarbeiter:innen mit der meisten Erfahrung eine Priorisierung vorgenommen.
Einzelne Schwachstellen wurden durch andere Komponenten geschützt. Da mögliche Angreifer:innen die Lücke nicht ausnutzen können, hat eine solche Feststellung eine mittlere Priorität bekommen – und wurde zeitnah behoben.
Die finalen Feststellungen wurden bewertet und, sofern möglich, mit konkreten Anleitungen bzw. Vorschlägen zur Behebung ergänzt.
Durch dieses gezielte Vorgehen konnten wir in wenigen Wochen ein Secure Code Review einer großen, komplexen Anwendung durchführen und konkrete Optimierungspotentiale identifizieren.
Die Nähe zur Entwicklung und Kenntnisse der Architektur der Anwendung haben zu einer effizienten Durchführung beigetragen.
beste voraussetzungen für den pentest
Als nächster Schritt im Prozess wurde ein unabhängiger Dienstleister mit einem Pentest beauftragt. Der Fokus beim Pentest lag auf das Zusammenspiel der Anwendung und der produktiven Infrastruktur.
Der Pentest hat bestätigt, dass die Schwachstellen der Anwendung im Secure Code Review identifiziert worden waren und hat somit nur noch wenige mittlere bis niedrige Feststellungen ergeben.
Unser Fazit ist, dass das Review sich als effektive und effiziente Maßnahme bewährt hat.
zurück zur Blogübersicht