Das NIST SSDF Framework verstehen

Um Sicherheitsrisiken in der Software-Lieferkette zu mindern, müssen häufig mehrere Sicherheitsebenen und unterschiedliche Strategien implementiert werden. Einer der effizientesten Ansätze zur Gewährleistung der Sicherheit Ihrer Software besteht jedoch darin, mögliche Sicherheitslücken bereits in der Entwicklungsphase Ihrer Softwareanwendung zu beheben. Dies stellt oft eine Herausforderung dar, da sich nur wenige Lebenszyklusmodelle für die Softwareentwicklung explizit mit den Fragen der Softwaresicherheit befassen. Um die Sicherheit Ihrer Software zu gewährleisten, müssen Sie sichere Softwareentwicklungspraktiken für jedes von Ihnen gewählte Softwareentwicklungslebenszyklusmodell übernehmen.

Das Secure Software Development Framework (SSDF) beschreibt einige der grundlegenden Vorgehensweisen, die Sie befolgen sollten, um die Sicherheit der von Ihnen erstellten Software zu gewährleisten. Das SSDF basiert auf standardmäßigen Sicherheitspraktiken für die Softwareentwicklung, die vom National Institute of Standards and Technology (NIST) festgelegt wurden, und befasst sich ausdrücklich mit Sicherheitsproblemen bei der Softwareentwicklung. Die SSDF-Version 1.1 ist in definiert NIST-SP 800-218 Veröffentlichung. Das Framework wurde ursprünglich im September 2021 als veröffentlicht Lüftung Ausführung. Am 22. März 2021 veröffentlichte NIST die endgültige Version des SSDF 1.1. Alle übergeordneten Praktiken und Aufgaben blieben gleich, wobei sich viele Unterschiede auf die verschiedenen bereitgestellten Beispiele konzentrierten. Bei der Entscheidung, welche Praktiken implementiert werden sollen, empfiehlt NIST, das Risiko gegen Kosten, Durchführbarkeit und Anwendbarkeit abzuwägen. Ein wichtiges zu berücksichtigendes Merkmal ist die Automatisierung möglichst vieler Prüfungen und Prozesse zur Förderung der Softwaresicherheit.

Als Organisation, die mit einem Softwareentwicklungs-Lebenszyklusmodell arbeitet, sollten Sie die Richtlinien des SSDF als Teil der Gesamtbemühungen umsetzen, um Ihre Software vor Schwachstellen in der Software-Lieferkette zu schützen. Die Einhaltung dieses Frameworks hilft bei der Erkennung nicht behobener Schwachstellen, bevor die Software veröffentlicht wird. Dadurch werden das Risiko und die Auswirkungen möglicher Sicherheitslücken aufgrund dieser unentdeckten Schwachstellen verringert. Dieser Artikel ist ein umfassender Leitfaden, der detailliert beschreibt, was das SSDF-Framework ist und wie es zur Sicherheit der Software-Lieferkette beiträgt.

Die 4 Praktiken des Secure Software Development Framework

Die SSDF-Praktiken sind in vier Kategorien eingeteilt. Im SSDF-Framework wird jede Praxis durch eine eindeutige Kennung und eine kurze Erläuterung dazu identifiziert, was sie ist, warum sie nützlich ist und welche Aufgaben zu ihrer Umsetzung ausgeführt werden müssen. Das Framework enthält auch Beispiele für Tools, Prozesse und Methoden zur Implementierung der Praktiken mit Verweisen auf etablierte Dokumente zu sicheren Entwicklungspraktiken. Im Folgenden sind die vier Säulenpraktiken des Secure Software Development Framework (SSDF) Version 1.1 aufgeführt:

Bereiten Sie die Organisation vor (PO)

Sichere Softwareentwicklung ist in hohem Maße personenabhängig. Daher besteht der erste Schritt bei der Implementierung des SSDF darin, sicherzustellen, dass jeder in Ihrer Organisation ausreichend auf die Änderungen vorbereitet ist, die das Framework erfordert. Zunächst müssen Sie die spezifischen Sicherheitsanforderungen der von Ihnen entwickelten Software anhand der Tools ermitteln, die sie für die Softwareentwicklung verwenden. Auf diese Weise können Sie mit der Vorbereitung der von ihnen eingesetzten Personen, Prozesse und Technologien beginnen, sowohl auf organisatorischer als auch auf individueller Ebene.

Die Vorbereitung der Organisation erfolgt in der Regel durch die Zustimmung des Top-Managements und die Durchführung der erforderlichen Schulungen für die Mitarbeiter. Ein Teil Ihrer Vorbereitungsbemühungen kann auch die Implementierung von Tools umfassen, die dabei helfen, Prozesse zu automatisieren und eine sichere Umgebung für die Entwicklung zu schaffen.

Schützen Sie die Software (PS)

Ein Bild des schützenden Regenschirms

Das Secure Software Development Framework beschreibt Vorgehensweisen zum Schutz aller Komponenten Ihrer Software vor unbefugtem Zugriff und Manipulation. Dies ist ein wichtiger Schritt, um unbefugte Änderungen am Code zu verhindern, sowohl unbeabsichtigte als auch absichtliche, und um Ihren Software-Quellcode und Ihre Softwarekonfiguration zu schützen. Der Schutz Ihrer Software kann je nach Situation unterschiedliche Ansätze umfassen. Wenn Code nicht öffentlich zugänglich sein soll, kann dies den Diebstahl der Software verhindern und es für Angreifer schwieriger oder zeitaufwändiger machen, Schwachstellen zu finden.

Durch die Befolgung der in diesem Abschnitt des SSDF beschriebenen Praktiken stellen Softwarekonsumenten sicher, dass die von ihnen erworbene Software legitim ist und nicht manipuliert wurde. Darüber hinaus hilft es, Schwachstellen in der Software nach der Veröffentlichung zu identifizieren, zu analysieren und zu beseitigen, indem Softwareversionen aufbewahrt werden.

Erstellen Sie gut gesicherte Software (PW)

Um gut gesicherte Software mit minimalen Sicherheitslücken zu erstellen, müssen während des gesamten Softwareentwicklungslebenszyklus grundlegende Schritte befolgt werden. Diese beinhalten:

  • Auswahl sicherer Softwarekonfigurationen
  • Bewerten Sie alle Drittanbieterkomponenten Ihrer Software, um deren Integrität sicherzustellen
  • Stellen Sie sicher, dass Ihr Software-Quellcode den sicheren Codierungspraktiken entspricht
  • Überprüfen, analysieren und testen Sie Ihren Code auf Schwachstellen und beheben Sie alle identifizierten Probleme, bevor der Code veröffentlicht wird
  • Verhindern von Schwachstellen mithilfe von Build-Tool-Funktionen wie Compilern und Interpretern

Auf Schwachstellen reagieren (RV)

Auch nach der Veröffentlichung Ihrer Software besteht immer noch die Möglichkeit, dass Sie darin Schwachstellen entdecken. Tester in Ihrem Unternehmen, externe Sicherheitsforscher oder sogar Kunden können diese Schwachstellen entdecken. Ein wichtiger Teil der Sicherheit Ihrer Software besteht darin, schnell auf diese Schwachstellen zu reagieren, sobald sie entdeckt werden. Je länger Sie eine Sicherheitslücke verbergen, desto größer ist der Schaden, den sie anrichten kann. Jede Organisation benötigt ein Programm zur Offenlegung von Schwachstellen sowie andere Richtlinien, um neue Schwachstellen zu analysieren und zu entscheiden, wie sie behoben werden sollen.

 

Was sind die wichtigsten Punkte, die es zu beachten gilt?

Der Hauptzweck des SSDF besteht darin, Organisationen dabei zu helfen, die Sicherheit bei ihren Softwareentwicklungsaktivitäten auszurichten und zu priorisieren. Das SSDF berücksichtigt die Geschäftsanforderungen, Risikotoleranzen und Ressourcen bei der Implementierung von Sicherheit im Softwareentwicklungslebenszyklus. Zu den wichtigsten Überlegungen dieses Rahmenwerks gehören:

  • Integrieren Sie Sicherheit in den SDLC

Der erste Schritt bei der Entwicklung sicherer Software besteht darin, Sicherheit in die verschiedenen Schritte und Phasen Ihres Softwareentwicklungslebenszyklus zu integrieren. Im Wesentlichen muss Ihr Entwicklungsteam über eine sicherheitsorientierte Kultur verfügen und diese muss bereits in der frühesten Phase des Entwicklungsprozesses beginnen.

In den meisten Fällen führen viele der Standard-Codierungspraktiken zu zahlreichen Schwachstellen, die später bei der Veröffentlichung der Software von böswilligen Parteien ausgenutzt werden können. Aus diesem Grund müssen Entwickler von Anfang an an die Sicherheit denken und über die Strategien gut informiert sein, die dazu beitragen, diese potenziellen Angriffswege zu reduzieren.

Neben den menschlichen Aspekten der Sicherung Ihrer Software sollten Sie auch darüber nachdenken, den Prozess des Testens und Überwachens Ihrer Software von Anfang an auf potenzielle Schwachstellen zu automatisieren.

Bild der sicheren Codeentwicklung

  • Richtlinie zur sicheren Softwareentwicklung

Eine Richtlinie zur sicheren Softwareentwicklung ist ein formaler Satz von Richtlinien, der die Praktiken und Verfahren detailliert beschreibt, die Ihr Unternehmen für die sichere Softwareentwicklung befolgt. Dieses Richtliniendokument enthält detaillierte Anweisungen für die Personen, Technologien und Prozesse, die Sie in jeder Phase des Entwicklungslebenszyklus befolgen.

Eine Richtlinie zur sicheren Softwareentwicklung ist mehr als nur eine Empfehlung zur Erhöhung der Integrität Ihrer Software. In manchen Fällen ist es sogar Pflicht. Wenn Ihre Software beispielsweise Sicherheitsstandards wie ISO 27001 oder SOC Typ 2 erfüllen muss, benötigen Sie eine sichere Dokumentation der Entwicklungsrichtlinien. Glücklicherweise gibt es Vorlagenhandbücher, die Sie für diesen Zweck übernehmen können. Ihr Software-Sicherheitsteam kann die Richtliniendokumentation auch von Grund auf erstellen und an Ihre spezifischen Bedürfnisse anpassen.

  • Drittanbieter

Es reicht nicht aus, sicheren Code zu schreiben und Sicherheitsanforderungen intern zu befolgen. Die meiste Software verwendet immer noch Komponenten von Drittanbietern, die möglicherweise nicht denselben Sicherheitsstandards folgen wie Sie. Diese Codekomponenten von Drittanbietern sind gängige Pfade Angriffe auf die Software-Lieferkette werden durchgeführt.

Im Rahmen der Bemühungen, die Sicherheitskonformität während Ihres gesamten Softwareentwicklungslebenszyklus sicherzustellen, sollten Sie alle von Ihnen verwendeten Drittanbieterkomponenten überwachen und sicherstellen, dass die Anbieter Ihre Sicherheitsanforderungen vollständig kennen und dieselben Sicherheitsstandards wie Sie vollständig einhalten.

  • Schutz der Codeintegrität

Ihr Softwarecode und alle seine Komponenten sind potenzielle Angriffspunkte, die böswillige Akteure ausnutzen können, um Schwachstellen in Ihre Software einzuschleusen. Um dies zu verhindern, sollten alle Codes in sicheren Repositorys aufbewahrt werden, damit sie vor jeder Form von Manipulation geschützt sind.

Zu den Bemühungen, die Codeintegrität aufrechtzuerhalten, gehört es sicherzustellen, dass nur autorisierte Entwickler Zugriff auf den Quellcode haben. Das von Ihnen gewählte Code-Repository sollte über Funktionen verfügen, die dies gewährleisten, sowie über zusätzliche Funktionen, um den Anmeldevorgang zu sichern und alle Änderungen zu überwachen, die möglicherweise an Ihrem Code vorgenommen werden. Sie können die Codeintegrität weiter verbessern, indem Sie die Zugriffsdaten automatisiert überwachen und regelmäßige Codeanalysen durchführen.

  • Vorinstallierte Malware

Ein häufiger Weg für Angriffe auf die Software-Lieferkette besteht darin, Sicherheitslücken in vorinstallierter Malware zu verbergen. Dabei kann es sich um einen Virus, Ransomware, Trojaner oder Spyware handeln, die verheerende Schäden an Ihrer Software anrichten können. Die Malware ist möglicherweise auf Geräten oder vertrauenswürdiger Software vorinstalliert, die Sie in Ihrem Software-Erstellungsprozess verwenden, oder sogar auf dem System eines Drittanbieters. Diese Malware bleibt möglicherweise lange Zeit verborgen, bis ein legitimer, digital signierter Prozess die Verbreitung in Ihrem System ermöglicht. Um Ihre Softwareentwicklung zu schützen, müssen Sie auf diese vorinstallierte Malware achten und Maßnahmen ergreifen, um sie zu identifizieren und zu entfernen.

  • Codetests, Überprüfung und Checklisten

Bei der traditionellen Herangehensweise an die Softwareentwicklung bleibt das Testen des Codes normalerweise am Ende des Softwareentwicklungslebenszyklus. Dieser reaktive Ansatz zur Erkennung von Softwareschwachstellen ist jedoch nicht sehr effektiv. Ein effizienterer Ansatz besteht darin, automatisierte Tests einzurichten, um beim Erstellen kontinuierlich Fehler im Code zu erkennen. Entwickler sollten ihren Code auch manuell überprüfen und prüfen, um Frustrationen vorzubeugen, wenn später Fehler entdeckt werden.

Da zahlreiche Teile und Komponenten im Auge behalten werden müssen, ist es sinnvoll, beim Bauen Checklisten zu erstellen. Dies hilft Ihrem Softwareentwicklungs- und Überwachungsteam sicherzustellen, dass alle in den SSDF-Richtlinien festgelegten Maßnahmen ordnungsgemäß eingehalten werden.

  • Schwachstellenminderung

Trotz Einhaltung der SSDF und anderer Sicherheitsstandards sind Schwachstellen in der Softwareentwicklung praktisch unvermeidbar. Das Wichtigste ist, bereit zu sein, diese Schwachstellen zu beheben, wenn sie auftreten. Dies würde bedeuten, dass ein Team mit klaren Plänen und Strategien zur Verfügung steht, um Sicherheitsvorfälle zu beheben, sobald sie auftreten.

Wie schnell Ihr Unternehmen auf Sicherheitslücken reagieren kann, wird einen großen Unterschied bei der Reduzierung der negativen Auswirkungen solcher Angriffe machen. Wenn Softwarefehler schnell erkannt und behoben werden, haben böswillige Akteure weniger Zeit, sie auszunutzen. Daher ist die Schwachstellenminderung ein wichtiger Aspekt der sicheren Softwareentwicklung, auf den jedes Unternehmen achten muss.

  • Sichere Standardeinstellungen

Ihre neue Software sollte über Standardsicherheitseinstellungen verfügen, die dazu beitragen, Benutzer auch ohne fortgeschrittene Kenntnisse vor Softwareschwachstellen zu schützen. Sie können auch Maßnahmen implementieren, die Benutzer über diese Standardeinstellungen informieren, um sie bereits in den frühen Phasen der Einführung Ihrer Software zu schützen.

Zusammenfassung

Das Secure Software Development Framework (SSDF) ist eine Reihe fortschrittlicher Praktiken, die in den Softwareentwicklungslebenszyklus jedes Unternehmens integriert werden sollten. Indem Sie die in diesem Framework dargelegten Vorgehensweisen bereits zu Beginn des Entwicklungsprozesses befolgen, können Sie die Sicherheitslücken in der Version Ihrer Software, die Sie schließlich veröffentlichen, reduzieren. Das SSDF hilft Ihnen auch dabei, Sicherheitsrisiken zu erkennen und die potenziellen Auswirkungen unentdeckter Schwachstellen zu reduzieren, die es in die endgültige Version schaffen. Dieser Rahmen ist von entscheidender Bedeutung, um zu verhindern, dass solche Sicherheitsprobleme in Zukunft erneut auftreten.