Newsletter Anmeldung

Bleiben Sie mit dem Newsletter immer up to date.

Anfrage
arrow-to-top

10-Punkte Check für die Etablierung von DevSecOps und weshalb Penetration Tests kein Allheilmittel sind 

10/2021 – Fachartikel Swiss Infosec AG

Moderne Softwareentwicklungsprojekte erfolgen zumeist nach dem agilen Modell. Mit verschiedenen Rollen wird innerhalb dieses Modells für eine bestmögliche Produktentwicklung gesorgt. EntwicklerInnen erzeugen Programmcode und implementieren Features, TesterInnen prüfen, ob die Anforderungen korrekt umgesetzt werden und Plattform-Spezialisten sorgen dafür, dass die Infrastruktur einsatzfähig ist, um einige zu nennen.

Die Security des Produkts kommt hierbei leider in vielen Fällen zu kurz. Oftmals fehlen nicht nur die organisatorischen Strukturen, sondern auch das Bewusstsein für nicht-funktionale Sicherheitsanforderungen. Security wird häufig erst zu einem späten Zeitpunkt berücksichtigt, oftmals mit einem Penetration Test kurz vor dem Launch. Die Sicherheit des Produkts hängt stark ab von der Qualität des Penetration Tests und damit vom investierten Budget. Ausserdem führt die Behebung von Schwachstellen, die durch einen Penetration Test identifiziert werden, nicht selten zu unschönen Flickarbeiten, ohne die Probleme auf einer grundlegenden Designebene anzupacken.

Anstatt Sicherheitsbedenken bei Softwareprodukten reaktiv zu adressieren, setzen mehr und mehr Organisationen auf proaktive Ansätze. Mittels des DevSecOps-Ansatzes wird die Security in alle Abschnitte des Software-Lebenszyklus eingebracht. Die Etablierung von DevSecOps ist nicht trivial, da oftmals auch kulturelle Veränderungen nötig sind.

Als Swiss Infosec AG möchten wir Ihnen hier eine Liste von zehn Checkpunkten zur Hand geben, die Ihrem Softwareentwicklungsunternehmen als Standortbestimmung betreffend DevSecOps dienen.

10-Punkte-Check zur Realisierung eines DevSecOps-Ansatzes

Agile Sicherheitsorganisation

Security Champions schaffen eine Kultur für Cybersicherheit und sorgen dafür, dass Sicherheit tief im Entwicklungsprozess verankert wird. Weisen Sie diese Rolle einem Mitarbeitenden zu und sorgen Sie dafür, dass das Verständnis für Sicherheitsthemen beim Security Champion selbst und bei seinen Kollegen fortlaufend verbessert wird.

Automatisierte Security-Tests

Ergänzen Sie Ihre DevOps-Pipeline mit automatisierten Security-Tests und Quality Gateways, mit deren Hilfe sie Ihren Code statisch oder idealerweise auch dynamisch auf Verwundbarkeiten überprüfen.

Sicherheitsbezogene Ausbildung der Mitarbeitenden

Mit einer kontinuierlichen Ausbildung der Mitarbeitenden sorgen Sie für ein grundlegendes Sicherheitsverständnis. Um möglichst alle zu erreichen, sollten Sie unterschiedliche Methoden für die Sensibilisierung verwenden, z.B. gezielte Weiterbildungen und Firmenkurse zum Thema Secure Coding, aber auch eLearnings, Newsletters oder Plakate.

Sichere Entwicklungs- und Build-Umgebungen

Sorgen Sie dafür, dass die Sicherheit Ihres Programmcodes gewährleistet ist, indem sie grundlegende Cyber «Hygieneregeln» einhalten: Aktualisieren Sie alle Systeme regelmässig oder automatisiert mit Sicherheitspatches, seien es die Arbeitsgeräte der Entwickler oder die Komponenten der Build-Pipeline. Spätestens der Angriff auf SolarWinds hat die Relevanz sicherer Build-Umgebungen[1] eindrücklich gezeigt.

Sichere Applikationsplattformen und Laufzeitumgebungen

Es nützt natürlich nichts, ein sicheres und modernes Haus auf einem wackligen Fundament zu bauen. Zentraler Bestandteil des sicheren Betriebs einer Applikation sind sichere Applikationsplattformen und Laufzeitumgebungen. Diese erhalten Sie durch Umsetzung von Hersteller- oder Best Practice-Empfehlungen. Ob es sich nun um ein klassisches Serversystem handelt oder eine Containerplattform wie Kubernetes: Diese Umgebungen sind nicht secure-by-default, sondern müssen explizit sicher konfiguriert werden.

Secure Coding Principles

Dokumentieren Sie eine verbindliche Vorgabe zu sicheren Entwicklungsprinzipien und schulen Sie deren Einhaltung. Die Erstellung, Schulung und fortlaufende Weiterentwicklung dieser Vorgabe delegieren Sie idealerweise an den dedizierten Security Champion.

Threat Modeling

Mithilfe eines Bedrohungsmodells erhalten Sie einen Blick für sicherheitsbezogene Fragestellungen rund um Ihr Entwicklungsprojekt. Threat Modeling Workshops helfen, bei Projektinitialisierung und der kontinuierlichen Weiterentwicklung des Produkts, reale Bedrohungen zu erkennen und mit gezielten Massnahmen entgegenzuwirken.

Abuse-Cases

Zur Entwicklung einer sicheren Applikation ist es wichtig, diejenigen Angriffe, gegen die die Applikation gerüstet sein muss, zu identifizieren. Hier helfen Abuse-Cases, die die Diskussion und Implementation elementarer und explizit geforderter Sicherheitsfeatures ermöglichen.

Loggen von Security-Events

Auch ein blindes Huhn findet mal ein Korn. Seien sie aber nicht das blinde Huhn, sondern öffnen Sie Ihre Augen für sicherheitsrelevante Vorgänge innerhalb Ihrer Applikation. Das Aufzeichnen solcher Vorfälle in Logfiles ermöglicht sicherheitsbezogenes Monitoring, zeitnahe Auswertungen oder auch die Einrichtung von Alerts.

Penetration Testing

Penetration Tests helfen nach wie vor, die Umsetzung von Sicherheitsanforderungen und die Einhaltung von Best Practices im Bereich der sicheren Softwareentwicklung zu überprüfen. Führen Sie einen Penetration Test bei grösseren Updates oder mit regelmässiger Periodizität (bspw. jährlich) durch. Achten Sie darauf, dass Ihr Produkt nicht immer vom selben Kreis von Penetrationstestern geprüft wird. So stellen Sie sicher, dass stets andere Stellen untersucht werden und die Sicherheit Ihres Produkts möglichst breit bestätigt wird.

Gerne können Sie sich an uns wenden für weiterführende Best Practice-Empfehlungen, Unterstützung zur Realisierung eines DevSecOps-Ansatzes oder zur Durchführung eines Penetration Tests.

Fachteam IT-Sicherheit; 27.05.2021


© Swiss Infosec AG 2024