Mai 2022
In der gesamten Computerbranche herrscht breiter Konsens, dass es Sicherheitsschwachstellen gibt. Dies sehen auch unsere Kunden, die Gewissheit möchten, dass die von ihnen verwendeten Produkte sicher sind. Zu diesem Zweck hat NetApp den sicheren Entwicklungslebenszyklus (Secure Development Lifecycle, SDL) entwickelt. Dieser Standard wird bei der Produktentwicklung verwendet, um potenzielle Schwachstellen zu bewerten und auf diese zu reagieren.
Der SDL von NetApp definiert einen strengen Prozess basierend auf Best Practices und Branchenstandards, die Produktteams befolgen können, um die Sicherheit zu bewerten und die Einführung eines sicheren Produkts zu planen. Der Prozess beginnt mit den ersten Plänen für ein Produkt, noch lange bevor eine einzige Zeile Code geschrieben wurde, und erstreckt sich bis hin zur Überwachung des Produktes auch noch nach seiner Veröffentlichung.
Der bei NetApp implementierte SDL ist ein solider und wiederholbarer Vorgang, der aus 6 Schritten besteht, nach denen die NetApp Produkt- und Services-Entwicklungsteams vorgehen können (siehe folgende Abbildung). Im Rahmen der Produktentwicklung können NetApp Teams diese expliziten, vordefinierten Aktivitäten ausführen. Diese unterstützen sie dabei, zuverlässig die Sicherheit des Produkts zu gewährleisten. Mit dem SDL-Prozess kann NetApp die mit den Produkten verbundenen Risiken erkennen und genauso auch die Wirksamkeit evaluieren, mit der das Produktteam den gesamten SDL einhält.
Die Produktsicherheitsgruppe bietet Best Practices für den SDL, unterstützende Verfahren und Sicherheits-Know-how für die Produktteams. Die Produktteams können die SDL-Prozesse und -Richtlinien implementieren und so sichere Produkte bereitstellen. Der SDL setzt voraus, dass alle bekannten Schwachstellen, einschließlich Schwachstellen von Komponenten anderer Hersteller, angemessen behoben wurden.
Im ersten Schritt des NetApp SDL-Prozesses wird unseren Produktteams durch Trainings und die Ernennung von Sicherheits-Champions das Sicherheitsbewusstsein geschärft und das nötige Know-how vermittelt.
Alle bei NetApp an der Produktbereitstellung Beteiligten müssen das Sicherheitstraining absolvieren. Es umfasst Schulungen zu aktuellen Bedrohungen, sicheren Entwicklungstechniken, Schwachstellen und Methoden zur Behebung von Sicherheitsproblemen. Das Training ist auf die Rolle der Schulungsteilnehmer zugeschnitten – Produktmanager, Entwickler, Qualitätssicherung usw. –, um ein Bewusstsein für die Produktsicherheit zu schaffen, damit auch Sicherheitspraktiken in ihre Arbeit einfließen.
Bei NetApp ist ein jährliches Sicherheitsauffrischungstraining zu absolvieren, über das alle Änderungen kommuniziert werden, die unweigerlich bei der Produktsicherheit auftreten. NetApp bietet auch interne Foren und Zugang zu kommerziellen Events, um Mitarbeitende zu unterstützen, ihr Sicherheitswissen weiterzuentwickeln.
Sicherheits-Champions sind sicherheitsbewusste Mitarbeiter*innen der NetApp Produktteams, die in ihrer Abteilung Best Practices für die sichere Entwicklung und SDL promoten und die Akzeptanz und das Verständnis der Produktsicherheit im Allgemeinen erhöhen. Jeder Champion erhält ein umfassendes Sicherheitstraining, das sich insbesondere auf Best Practices für die Sicherheit konzentriert, einschließlich NetApp SDL. Auch wenn das Training in erster Linie darauf abzielt, einen Lead für das Thema Sicherheit in den Entwicklungsteams zu implementieren, fungieren diese Champions auch als zentrale Ansprechpartner für die Produktsicherheitsgruppe, während sie die SDL-Umsetzung durch die Produktteams überwacht.
Der SDL-Prozess von NetApp beginnt mit einer Sicherheitsbewertung und einer Freigabe der Compliance- und Testpläne. Darauf folgt eine umfassende Evaluierung von Produktsicherheitsproblemen und -lösungen sowie eine Überprüfung, ob bereits erkannte Schwachstellen behoben wurden. Zum Abschluss werden Risiken kommuniziert und Aktivitäten durch ein Product Security Incident Response Team (PSIRT) überwacht.
Bei diesem Schritt im SDL-Prozess gibt es drei Touchpoints: Überprüfung der Produktsicherheits-Baseline, Bedrohungsmodellierung und -minderung sowie Überprüfung des Ecosystems der Lieferkette. Alle diese Punkte werden frühzeitig in der Designentwicklung angewendet, noch bevor Code entwickelt oder implementiert wird.
Überprüfung der Produktsicherheits-Baseline. Die Baseline für die Produktsicherheit ist eine Mindestanzahl an akzeptablen Sicherheitsstufen für alle NetApp Produkte. Sie basiert auf Sicherheitsstandards, wie z. B. ISO/IEC 27001, und vertraglichen Verpflichtungen, die gegenüber NetApp Unternehmenskunden und Kunden der öffentlichen Hand bestehen. Während des Überprüfungsvorgangs wird eine Reihe von Schritten festgelegt, nach denen Produktteams vorgehen können, um ihr Produkt anhand der einzelnen Anforderungen zu bewerten. Anschließend erstellen sie einen Plan, um dem Produkt fehlende Baseline-Funktionen hinzuzufügen.
Bedrohungsmodellierung und -minderung. Mit der Bedrohungsmodellierung lassen sich Sicherheitslücken innnerhalb einer Funktion, Komponente oder einem Produkt frühzeitig erkennen. Sie versetzt Produktteams in die Lage, die Sicherheitsaspekte ihrer Designs auf strukturierte Weise zu überdenken. Teams können auf diese Weise Sicherheitslücken effektiver erkennen, das Risiko ermitteln und entsprechende Gegenmaßnahmen entwickeln.
Trusted Supplier-Programm. Mit diesem Programm möchten wir sicherstellen, dass das Ecosystem unserer strategischen Entwicklungspartner in der Lage ist, immer das höchste Maß an Sicherheit in der Branche zu gewährleisten. Über dieses Programm bewertet NetApp strategische Anbieter – sowohl neue als auch wiederkehrend beauftragte –, die an der Entwicklung von NetApp Produkten beteiligt sind. Ein Audit lässt Produktteams überprüfen, ob in den Entwicklungs-, Fertigungs- und Supportprozessen der Zulieferer SDL-Aktivitäten enthalten sind. Zudem kann NetApp so ermitteln, ob die von ihnen bezogenen Komponenten unseren Standards entsprechen.
Bei diesem SDL-Prozessschritt gibt es zwei Touchpoints: Planung von Compliance- und Sicherheitstests.
SDL-Compliance-Planung. Mithilfe der Compliance-Planung können Produktteams akzeptable Sicherheitsstufen definieren, die sie für eine bestimmte Version einhalten werden, und angeben, wie sie über das Erreichen dieser Kriterien Rechenschaft ablegen. Die frühzeitige Festlegung dieser Stufen hilft dem Team, die mit Sicherheitsproblemen verbundenen Risiken zu verstehen, Sicherheitslücken während der Entwicklung zu erkennen und zu beheben sowie im gesamten Projekt SDL-Standards anzuwenden.
Sicherheitstest-Planung. Die Planung der Sicherheitstests sieht in der Teststrategie Sicherheitstestfälle vor und deckt die zahlreichen Aspekte der Sicherheit ab – von der Authentifizierung und Autorisierung bis hin zum Schutz von Daten im Ruhezustand und auf der Übertragungsstrecke. Die Erstellung und Ausführung eines Sicherheitstestplans umfasst auch die Behebung gefundener Probleme und trägt dazu bei, dass potenzielle Sicherheitsprobleme vor der Veröffentlichung eines Produkts entdeckt und entsprechend behoben werden.
In diesem Schritt des SDL-Prozesses gibt es sechs Touchpoints: Sicherheitsfehler in einem sicheren Code Review erkennen, statische und dynamische Sicherheitstests von Applikationen ausführen, Suche nach bekannten Schwachstellen während der Laufzeit, auch durch Fuzzing, und Suche nach Schwachstellen in Drittanbietersoftware.
Statische Applikationssicherheitstests. Vor dem Kompilieren können Produktteams mit diesem Test Quellcode scannen, um potenzielle kritische Fehler, Sicherheitslücken und Schwachstellen im Code zu erkennen. Der Test verwendet eine Reihe von Hooks innerhalb des Build-Vorgangs eines jeden Projekts und eine Reihe von Berichterstellungstools, wie z. B. Bug Tracking und Code Review, um Produktdefekte zu kennzeichnen. Entwickler sind für die Einstufung und Behebung identifizierter Probleme verantwortlich. Auf diese Weise werden Probleme in der Version vermieden, z. B. Herausforderungen zur besseren Unterstützung, Beschädigung des Speichers, Panikzustände des Systems oder sogar die Ausführung von Remote-Code.
Sicherer Code Review. Die sichere Codeüberprüfung ist eine Technik, um Sicherheitslücken frühzeitig in der Entwicklung zu erkennen, bevor der Code zur Versionskontrolle eingereicht wird. Diese Vorgehensweise stellt sicher, dass Code keine erkennbaren Sicherheitslücken enthält, z. B. bestimmte Codemuster, die im CWE-Standard (Common Weakness Enumeration) angegeben sind. Der sichere Code Review basiert auf Erkenntnissen, die bei den statischen Applikationssicherheitstests und der Bedrohungsmodellierung gewonnen wurden.
Dynamische Applikationssicherheitstests. Produktteams können Laufzeitprobleme identifizieren, indem sie diesen Test an der vollständig kompilierten Software durchführen und so die Sicherheit des integrierten und laufenden Codes in einer Test- oder Staging-Umgebung testen. Die Scanaktivität umfasst die Konfiguration der zu testenden Webanwendung, um das Scannen zu erleichtern, und die anschließende Ausführung des Scanwerkzeugs an der Applikation. Diese Scans können eine Vielzahl von Schwachstellen aufdecken, unter anderem Probleme an der Validierung von Ein- und Ausgaben, die eine Anwendung anfällig für standortübergreifende Skripts oder SQL-Injektionen machen können. Sie können auch dabei helfen, Konfigurationsfehler und andere spezifische Probleme mit Applikationen zu erkennen.
Schwachstellenanalyse. Um häufige und bekannte Sicherheitslücken in NetApp Produkten zu erkennen, die sich noch in der Entwicklung befinden, befolgt NetApp einen Standardprozess mit Signaturen und Konfigurationsprüfungen.
Fuzzing. Fuzzing ist eine automatisierte Laufzeitprüftechnik zur Ermittlung von Sicherheitsschwachstellen. Mit ihr werden falsch oder teilweise falsch formatierte Daten in Protokollschnittstellen eingeführt, um unbeabsichtigte Ergebnisse erkennen zu können. Das Fuzzing-Tool, das die NetApp Produktteams einsetzen, unterstützt protokollspezifische Testsuiten, die automatisiertes Black-Box-Fuzzing durchführen. Durch diese Tests lassen sich mögliche Probleme identifizieren, beispielsweise fehlende RFC-Konformität. Fuzzing wird häufig mit dynamischen Applikationssicherheitstests gekoppelt und ist Teil von Entwicklungssprints beim Testen von Code.
Scannen von Drittanbietersoftware. Das Scannen von Drittanbietersoftware (oder Software Composition Analysis) unterstützt das Managen von Sicherheitsrisiken, die mit der Verwendung von Komponenten von Drittanbietern verbunden sind. Auf diese Weise kann eine Bestandsliste der Open-Source-Software und Drittanbieterkomponenten erstellt werden, die in unsere Produkte integriert sind. Der Scan kann Komponenten kennzeichnen, die mögliche rechtliche und sicherheitsrelevante Probleme aufweisen, welche unter Umständen Korrekturmaßnahmen erfordern, bevor das Produkt freigegeben werden kann. Auf diese Weise lassen sich bekannte Schwachstellen schnell identifizieren, und Produktteams sind in der Lage, die Behebung dieser Schwachstellen zu planen. Dieser Scan kann kontinuierlich durchgeführt werden, da jederzeit neu entdeckte Schwachstellen gemeldet werden können.
Nachdem die Produktteams Sicherheitsprobleme erkannt und behoben haben, können sie die implementierten Korrekturen validieren.
Die Kommunikation der Risiken im Rahmen des SDL-Prozesses umfasst die Bewertung, Kommunikation und Behebung von Risiken, die in den vorangegangenen Touchpoints des SDL identifiziert wurden. Dazu gehören u. a. Penetrationstests, formale Berichterstellung oder die Entwicklung produktspezifischer Incident-Response-Verfahren.
Das Product Security Incident Response Team (PSIRT) kümmert sich um die Koordination und das Management von Untersuchungen zu Schwachstellen, die aus der Öffentlichkeit oder innerhalb des Unternehmens gemeldet werden, und auch die NetApp-seitige Reaktion darauf, was öffentliche Empfehlungen zur Untersuchung und Risikominimierung einschließt. Die Produktteams bestimmen eine*n Mitarbeiter*in aus ihrem Team, die bzw. der die Koordination mit dem PSIRT übernimmt.
To edit this Page SEO component