IT-Sicherheit in allen Phasen der Softwareentwicklung

Ein Sicherheitsproblem in einer bereits existierenden Software nachträglich zu beheben, ist um ein Vielfaches teurer als dieses bereits in der Planung zu identifizieren und zu vermeiden. In einem Secure Software Development Lifecycle (Secure SDLC), wird die Informationssicherheit von Anfang an und in allen Phasen der Entwicklung mit einbezogen: So lassen sich agile Entwicklung und Informationssicherheit vereinbaren und gleichzeitig Kosten und Aufwand sparen.

DevOps-Tools zur Automatisierung von Sicherheitsprüfungen helfen den manuellen Arbeitsaufwand möglichst gering zu halten. Neben der Sicherheit der Produkte und des Codes sichern wir auch gegenüber anderen Bedrohungen ab und untersuchen beispielsweise Ihre Software-Lieferketten (Software Supply Chain Security).

Unser Ziel ist es Ihrem Unternehmen bei der Transformation zu helfen, Ihnen ein Framework zur sicheren Softwareentwicklung an die Hand zu geben und ein Bewusstsein für Informationssicherheit zu schaffen So gehen Sie und Ihre Entwickler mit neuem Selbstbewusstsein und Expertise zur Informationssicherheit aus dem Projekt hervor.

Die vielfältigen Dimensionen der Informationssicherheit in allen Phasen und Bereichen zu beachten kann schnell überfordern: Daher unterstützen wir Sie gerne dabei, die Informationssicherheit in Ihren SDLC zu integrieren und helfen Ihnen die entsprechenden Prozesse zu erstellen. So können Sie sichere Software schneller und zuverlässiger entwickeln.

Phasen des SSDLC

Unsere Methodologie orientiert sich an Microsoft's Security Development Lifecycle und beinhaltet die folgenden Phasen, welche in einem Abstand von 1-2 Jahren zyklisch durchgangen werden sollten:

Training

Um einen erfolgreichen Secure SDLC zu implementieren, ist es essentiell, dass alle Mitarbeiter ein Bewusstsein für die Informationssicherheit entwickeln. Daher wird in der Training-Phase ein für Ihr Unternehmen zugeschnittener Awareness-Workshop zur Sensibilisierung für Informationssicherheit sowie ein Workshop zur sicheren Softwareentwicklung durchgeführt.

Requirements

Damit das Sicherheitslevel und der Reifegrad der Software in den folgenden Schritten bewertet werden können, ermitteln wir hier, welche Sicherheitsanforderungen für Sie relevant sind und erstellen Quality Gates & Bug Bars.

Design

Durch eine Bedrohungsanalyse (Threat Modeling) modellieren wir Angriffsszenarien und die Angriffsfläche Ihrer Produkte und erstellen so ein Bedrohungsprofil, welches Ihnen hilft die richtigen Maßnahmen zur Absicherung bereits im Software-Design zu priorisieren. Dies geschieht in Form von kollaborativen Threat-Modeling-Workshops, in denen unsere Sicherheitsexperten gemeinsam mit Ihrem Team die Architektur in Bezug auf die Informationssicherheit evaluieren und verbessern. Hier orientieren wir uns nach Branchenstandards wie STRIDE oder Abuse Cases.

Implementation

Mit dem Einsatz von SAST-Tools (Static Application Security Testing, auch statische Codeanalyse) werden sicherheitskritische Bugs erkannt, bevor diese in Ihre Codebase gelangen. Wir helfen Ihnen diese Tools mittels CI/CD-Pipelines in Ihren Entwicklungs-Workflow zu integrieren, sodass sich Ihre Entwickler auf die Entwicklung neuer Features konzentrieren können.

Verification

Ist eine neue Iteration eines Produkts vollendet, werden vor dem Release die Anforderungen evaluiert und sichergestellt, dass das Produkt ausreichend abgesichert ist. Durch Fuzz-Testing und einen Penetrationstest decken wir Sicherheitslücken auf und simulieren Angriffe auf das Produkt. In dieser Phase wird ein abschließendes Security Review durchgeführt und schließlich das Produkt zum Release freigegeben.

Release

Vor dem endgültigen Release muss ein Incident-Response-Plan erstellt werden. Dieser liefert bei einem Sicherheitsvorfall Anweisungen zur Schadensminimierung und Vereitelung weiterer Angriffe und stellt sicher, dass Sie im Ernstfall gut auf Angriffe vorbereitet sind. Ein Schwachstellenmanagement stellt sicher, dass Sie im Falle von aufgedeckten Sicherheitslücken Ihre Kunden schnell und effizient informieren können.

Wenn Sie die entwickelte Software nicht nur vertreiben sondern diese auch deployen und betreiben, gilt es abschließend den operativen Betrieb abzusichern. Server werden systematisch gehärtet, eine Patch-Management-Strategie entwickelt und ein Monitoring aufgesetzt, um Angriffe zu erkennen und zu vereiteln.

 

 


Kontaktieren Sie uns heute

Wir beraten Sie in einem unverbindlichen Gespräch

Häufig gestellte Fragen (FAQ):

Lassen sich Agiles Projektmanagement wie Scrum oder Kanban mit einem SSDLC vereinbaren?

Ja – unser Secure Software Development Lifecycle ist auf moderne Entwicklungsmethoden wie Scrum abgestimmt und unterstützt Agile Prozesse indem die Informationssicherheit in den verschiedenen Phasen miteinbezogen wird, ohne dass die Produktivität des Teams beeinträchtigt wird.

Agile SSDLC

Was beinhaltet der Trainings-Workshop zur Sicheren Softwareentwicklung?

Je nach Produkt, welches Ihr Unternehmen entwickelt, werden typische Schwachstellen besprochen, vorgeführt deren Ursachen und die entsprechenden Lösungen illustriert. Entwickeln Sie beispielsweise Webanwendungen, orientieren wir uns an den OWASP Top 10. Entwickeln Sie Systemsoftware in C++, dann besprechen wir typische Programmierungsprobleme wie Speicherfehler, Race Conditions oder unsichere Makros, nach Mitre CWE.

Weiterhin zeigen wir die Verwendung von Tools, welche Entwicklern helfen, Ihren Code auf Sicherheitslücken zu testen, wie etwa Fuzzer, DAST (Dynamic Application Security Testing) oder IAST (Interactive Security Testing) Tools.

Eine Einführung in Informationssicherheitskonzepte wie der SSDLC selbst, CVEs oder CVSS-Scoring sowie ein Exkurs zur sicheren Verwendung von Kryptographie runden den Vortrag ab.

Jeder Workshop ist also individuell auf Ihr Unternehmen angepasst.

Sind Sicherheitstools für die Automatisierung der Prüfungen teuer? Können wir auch Open-Source Lösungen verwenden?

OTARIS ist ein herstellerunabhängiger Berater – wir zwingen Ihnen keine teure kommerzielle Lösung auf, sondern beraten Sie nach Ihren Wünschen und empfehlen Ihnen Tools die zu Ihrem Unternehmen passen. Die meisten kommerziellen Tools haben kostenlose Open-Source Alternativen, welche für kleine bis mittlere Unternehmen mehr als ausreichend sind.

Kann ich einen Penetrationstest auch selbst durchführen?

Der Vorteil eines externen Prüfers gegenüber einem internen Entwickler besteht, neben der Expertise in Offensiver Sicherheit, in dem externen Blickwinkel auf Ihr Produkt – dadurch werden Edge-Cases aufgedeckt, welche andernfalls häufig gar nicht erst in Betracht gezogen werden. Mehr zu unserer Pentest-Methodologie finden sie hier.

Von demselben Prinzip profitiert auch die Architekturelle Risikoanalyse / das Threat Modeling.

Wie lassen sich Software Supply Chain Attacks verhindern?

Der erste Schritt für eine sichere Software Supply Chain ist es, sich der (transitiven) Abhängigkeiten in der eigenen Software bewusst zu werden. Häufig werden viele Third-Party-Bibliotheken verwendet, welche ihrerseits weitere Abhängigkeiten haben. Tritt hier eine Sicherheitslücke auf, ist auch das eigene Produkt betroffen.

Um hier eine automatisierte Überprüfung zu ermöglichen, empfehlen wir die Verwendung von Software Bills of Materials (SBOMs) und/oder eines Software Composition Analysis (SCA) Tools. Diese ermöglichen es, Abhängigkeiten von Projekten regelmäßig zu scannen und Sicherheitslücken durch externe Abhängigkeiten sofort zu entdecken.

Wir haben bereits ein ausgereiftes Softwareprodukt, können wir auch nachträglich einen SSDLC implementieren?

Ja, das können Sie. Oftmals weist langjährige Software Sicherheitsmängel in ihrer Architektur und ihrem Entwicklungsablauf auf und profitiert daher ebenfalls von einem sicheren SDLC.