Die zugrundeliegende Methodik
Es gibt viele gute Standards für sichere Softwareentwicklung, und ich möchte das Rad nicht neu erfinden. Unser Referenzmodell für diese Serie wird OWASP SAMM v2 sein. Die aktuelle Version wurde Anfang 2020 veröffentlicht und stellt eine signifikante Verbesserung in Bezug auf agile Entwicklungsmethoden und DevOps dar. Darüber hinaus verfügt OWASP SAMM v2 über eine integrierte Methodik, mit der der Reifegrad der einzelnen Sicherheitspraktiken bewertet werden kann.
Um das Intro nicht ausufern zu lassen, werde ich hier nicht auf alle Details von OWASP SAMM eingehen. Alle relevanten Informationen finden sich auf der offiziellen Webseite von OWASP SAMM.
Benchmarking ihres sicheren Softwareentwicklungsprozesses
OWASP SAMM bietet eine Reifegradbewertungsmethode an, mit der jede Sicherheitspraktik auf einer Skala von 0 bis 3 bewertet werden kann. Dies ist jedoch nur ein Teil der Geschichte. In der Praxis stellt sich jedoch vielmehr die Frage, ob die Sicherheitsaktivitäten den Schutzanforderungen der entwickelten Anwendungen genügen. OWASP SAMM kann diese Frage in der aktuellen Version nicht beantworten. Ihr Defect-Management mag einen Reifegrad von 1,47 haben. Aber was bedeutet dies für eine bestimmte Anwendung, für die sie verantwortlich sind? Ist dieser Reifegrad auch angemessen?
Ich rate meinen Kunden in der Regel, nicht auf einen bestimmten Reifegrad – einen abstrakte Wert – abzuzielen. Ein derartiger Ansatz ist natürlich verlockend. Man kann die aktuellen Reifegrade mit den früheren Reifegraden vergleichen und sieht sofort, wo man sich verbessert hat. Aber das geht klar an dem Ziel vorbei, das wir tatsächlich erreichen wollen. Ich freue mich natürlich für jeden, der seinen angestrebten Reifegrad erreicht und solche Meilensteile gilt es auch zu feiern. Am Ende des Tages geht es aber bei der sicheren Softwareentwicklung nicht um Zahlen und schöne Dashboards, sondern um resiliente und robuste Systeme. Wenn ich hierzu etwas beitragen kann, war meine Mission erfolgreich!
Daher habe ich beschlossen, ein möglichst einfaches System für diese Serie zu entwickeln, mit dem wir ohne abstrakt berechnete Metriken über unsere Ziele sprechen können. Dazu benötigen wir lediglich zwei Dinge – eine Methode zur Abschätzung der Qualität unserer Sicherheitsaktivitäten und leicht verständliche Schutzprofile für unsere Anwendungen.
Qualitätsstufen für Sicherheitsaktivitäten
Wenn man genügend Entwicklungsteams in Aktion gesehen hat, wird man feststellen, dass Sicherheit nicht primär durch Methoden und Aktivitäten getrieben wird.
Das Sicherheitsniveau wird maßgeblich durch das Mindset des Teams bestimmt, insbesondere das Mindset der Stakeholder und der Key-Player im Team. Daher ist es sinnvoll, das Qualitätsniveau der Sicherheitsaktivitäten nicht nur im Hinblick darauf zu beschreiben, was das Entwicklungsteam tut, sondern auch mit welcher zugrundeliegenden Einstellung diese Aktivitäten angegangen werden. Wie dies aussehen kann, wird im nächsten Artikel klarer, wenn wir diese Methode anhand konkreter Aktivitäten einsetzen.
Um die Qualitätsstufen intuitiver zu gestalten, werden wir sie sprechend benennen und unser Verständnis jeder Stufe dokumentieren:
Qualitätsstufe Holz
Wir kümmern uns nicht wirklich um diese Sicherheitsaktivität und wenn wir sie gelegentlich doch in Betracht ziehen, ist dies eher ein Zufall.
Qualitätsstufe Bronze
Wir haben über die Aktivität nachgedacht und setzen sie ad hoc um. Wir folgen gängigen Richtlinien, optimieren sie jedoch nicht für unseren Bedarf.
Qualitätsstufe Silber
Wir sind uns der Bedeutung der Aktivität bewusst und haben eine Grundlage für ihre Umsetzung geschaffen, die an unsere Bedürfnisse angepasst ist.
Qualitätsstufe Gold
Diese Sicherheitsaktivität ist gut etabliert und es fühlt sich falsch an, den etablierten Prozess nicht zu befolgen. Die Aktivität hat einen hohen Reifegrad und wird als normaler Bestandteil unseres Entwicklungsprozesses angesehen.
Qualitätsstufe Diamant
Es ist nicht akzeptabel, eine Anwendung zu entwickeln, ohne diese Security-Aktivität umzusetzen. Eine unzureichende Implementierung würde in Quality Gates identifiziert werden und eine Produktivsetzung verhindern. Der Reifegrad dieser Aktivität hat ein sehr hohes Niveau erreicht. Jeder im Team ist sich der Bedeutung dieser Security-Aktivität bewusst und handelt entsprechend.
Mit diesen Qualitätsstufen können wir beschreiben, wie eine bestimmte Sicherheitsaktivität auf einer bestimmten Stufe aussehen würde. Im nächsten Artikel dieser Reihe werden wir beispielsweise im Vergleich sehen, wie sich ein Unternehmen verhält, das Security Requirements Engineering mit Qualitätsstufe Holz betreibt, und wie dies im Gegensatz bei einem Unternehmen aussieht, das selbiges Thema mit Qualitätsstufe Diamant behandelt.