Security by Design
Was ist Security by Design?
Security by Design ist ein Ansatz für die Software- und Hardwareentwicklung, der darauf abzielt, Systeme durch Maßnahmen wie kontinuierliche Tests, Authentifizierungssicherungen und die Einhaltung bewährter Programmierpraktiken so frei von Schwachstellen und so widerstandsfähig gegen Angriffe wie möglich zu machen.
Die Betonung der Integration von Sicherheit in Produkte wirkt der allzu verbreiteten Tendenz entgegen, Sicherheit erst im Nachhinein in die Entwicklung einzubeziehen. Die Behebung bestehender Schwachstellen und das Patchen von Sicherheitslücken, sobald sie entdeckt werden, kann ein langwieriger Prozess sein und wird niemals so effektiv sein wie die Entwicklung von Systemen, die von Anfang an so sicher wie möglich sind.
Der Security-by Design-Grundsatz wird in der sich rasant entwickelnden Umgebung des Internets der Dinge (IoT) immer wichtiger. In dieser Umgebung kann fast jedes denkbare Gerät, Objekt oder jede Entität mit einer eindeutigen Kennung (UID) versehen und vernetzt werden, sodass es beziehungsweise sie über das Internet adressierbar ist. Eine der größten Herausforderungen für die IoT-Sicherheit besteht darin, dass Sicherheit bei der Produktentwicklung für Netzwerkgeräte und Objekte, die traditionell nicht vernetzt waren, bisher keine Rolle gespielt hat.
Der Ansatz Security by Design steht im Gegensatz zu weniger strengen Konzepten wie Sicherheit durch Verschleierung (Security through Obscurity), Sicherheit aufgrund von Seltenheit (Security through Minority) und Sicherheit durch Überalterung (Security through Obsolescence).
Warum Security by Design unverzichtbar ist
In den vergangenen Jahren wurde Sicherheit oft als lästige Pflicht angesehen. Um ein akzeptables Sicherheitsniveau zu erreichen, waren zusätzlicher Zeitaufwand, finanzielle Mittel und Mitarbeiter mit Erfahrung in der Sicherheitsentwicklung erforderlich. Angesichts der dramatischen Zunahme von Cyberangriffen in den letzten Jahren, insbesondere von Ransomware, kann Sicherheit nicht länger als Nebensache betrachtet werden.
Wenn die Softwareentwicklung von einer IT-Abteilung übernommen wird, kommt wahrscheinlich der Softwareentwicklungslebenszyklus (SDLC) zum Einsatz. Wenn der SDLC-Prozess um eine Security-by-Design-Methodik erweitert wird, werden Sicherheitsaspekte in jeder Phase des Entwicklungsprozesses berücksichtigt und umgesetzt.
Jede Phase der Security-by-Design-Methodik erfordert spezifische Aktivitäten, um die Gesamtsicherheit des Softwareprodukts zu gewährleisten.
Phase 1 – Planung und Anforderungsanalyse. Der erste Schritt besteht darin, Daten von Benutzern, Interessengruppen und anderen Quellen zu erfassen. Aus diesem Schritt ergeben sich die Anforderungen an die Anwendung. Eine wichtige Aufgabe ist es, von denselben Befragten Informationen zur Sicherheit einzuholen. Dazu können Themen wie lokaler und Fernzugriff, Verschlüsselung und die Frage gehören, wer zur Nutzung des Systems berechtigt ist.
Phase 2 – Festlegung der Sicherheitsanforderungen. Sobald die Anforderungen, einschließlich Sicherheitsfunktionen und Sicherheitskontrollen, ermittelt und dokumentiert wurden, sollten sie von allen Beteiligten und der Geschäftsleitung überprüft und genehmigt werden.
Phase 3 – Entwurf der Anwendung. In diesem Schritt werden die Anwendungsarchitektur, die Ein-/Ausgabeanforderungen, die Sicherheitsanforderungen und andere Aspekte definiert. Der Entwurfsprozess umfasst die Erstellung von Flussdiagrammen und anderer Dokumentation, bevor die Anwendung programmiert wird.
Phase 4 – Entwicklung und Programmierung der Anwendung. In dieser Phase beginnt der Prozess der Programmierung der Anwendung, für den Programmiersprachen und Tools zum Erstellen der Software, einschließlich der Sicherheitskomponenten, erforderlich sind.
Phase 5 – Test und Validierung. Nach Abschluss der ersten Entwicklungsphase der Anwendung beginnen Test und Validierung. Beim Test werden Probleme in der Programmierung und andere Elemente identifiziert, die behoben werden können. In dieser Phase wird auch die Sicherheit getestet, um die Leistungsfähigkeit der Zugriffskontrollen und den Schutz vor Malware und anderen Sicherheitsverletzungen sicherzustellen.
Phase 6 – Bereitstellung und Wartung. Nach Abschluss der Tests kann es sinnvoll sein, die neue Anwendung in einer kontrollierten Umgebung zu testen, bevor sie in die Produktion freigegeben wird. Eine Entwicklungs- oder Testumgebung ist oft ideal, um das System weiter zu testen. Dies ist auch für die Prüfung der Sicherheitsmerkmale und die Schulung der Benutzer im Umgang mit dem System von großem Wert. Sobald das System für den Produktionsbetrieb freigegeben ist, sollte es während der ersten Einführungsphase sorgfältig überwacht werden, um die Leistung, die Interaktion zwischen Benutzern und Kunden, die Datenverwaltung, die Notfallwiederherstellung und die Sicherheitsleistung zu überprüfen. Sobald das System als stabil eingestuft wurde, tritt es in eine Wartungsphase ein, in der Probleme wie Patches, Fehlerbehebungen und Funktionsaktualisierungen behoben werden.
Weitere Vorteile durch Security by Design
Die Integration von Sicherheit in alle Phasen der Produktentwicklung ist eindeutig zu empfehlen. Weitere Vorteile sind unter anderem:
- Einhaltung gesetzlicher Vorschriften. Anwendungen, die unter Berücksichtigung von Sicherheitsaspekten entwickelt wurden, erfüllen mit größerer Wahrscheinlichkeit spezifische gesetzliche Vorschriften, wie beispielsweise die Datenschutz-Grundverordnung (DSGVO) der Europäischen Union, und globale Sicherheitsstandards wie ISO 27001. Idealerweise sollten diese und andere Sicherheitsstandards und -rahmenwerke während des gesamten SDLC-Prozesses angewendet werden.
- Sicherstellen, dass die Sicherheit mit den Anforderungen Schritt hält. Angesichts der Auswirkungen von Cloud-basierten Diensten und Anything-as-a-Service-Ressourcen kann sich die Entwicklungsgeschwindigkeit leicht beschleunigen. Durch die Einbindung von Sicherheitsteams in alle Initiativen, unabhängig von ihrer Quelle und in allen Phasen der Entwicklung, wird sichergestellt, dass Sicherheit fest verankert ist.
- Personelle Probleme. Ein Mangel an ausreichend geschulten und erfahrenen Mitarbeitern im Sicherheitsbereich kann den Security-by-Design-Ansatz behindern, der sicherstellt, dass Systeme von Grund auf mit Blick auf Sicherheit konzipiert werden. In diesem Fall kann es sinnvoll sein, qualifiziertes Personal einzustellen oder externe Sicherheitsdienstleister, beispielsweise Cloud-basierte Sicherheitsdienste, hinzuzuziehen.
Nachteilige Aspekte von Security bei Design
In der Realität sollte es keine Nachteile durch Security by Design geben, da die Integration von Sicherheit in alle Phasen des SDLC von großer Bedeutung ist. Es kann jedoch schwierig sein, Mitarbeiter mit Erfahrung im Bereich Security by Design zu finden.
Die Entscheidung für ein Framework und das Erlernen dessen Verwendung können zusätzliche Planungszeit erfordern, die möglicherweise nicht wünschenswert ist. Die Kosten für die Beauftragung von Drittunternehmen mit Erfahrung im Bereich Security by Design können erheblich sein.
Die Unternehmenskultur kann ebenfalls eine Rolle spielen, insbesondere wenn die Geschäftsleitung der Ansicht ist, dass Sicherheit kein kritischer Faktor ist.
Security-by-Design-Frameworks
Sicherheitsstandards und bewährte Verfahren können im Rahmen eines Security-by-Design-Ansatzes angewendet werden. ISO 27001 (und andere Standards der ISO 27000-Reihe) und NIST SP800-53 (sowie zahlreiche weitere Sicherheitsstandards) sind zwei der am häufigsten verwendeten Standards. Ihre Leitlinien können einen wichtigen Ausgangspunkt für einen Security-by-Design-Prozess bilden.
Im Folgenden finden Sie Beispiele für Rahmenwerke für die Sicherheit, die allein oder in Verbindung mit den oben genannten Standards verwendet werden können, um einen Security-by-Design-Prozess zu erleichtern:
- NIST SP 800-160 Volume 1 (2016) und Volume 2 (2021) enthalten Leitlinien zur Entwicklung und Konstruktion sicherer Produkte sowie zur Entwicklung cyberresilienter Systeme. Von beiden ist letzteres die empfohlene erste Wahl für Security by Design.
- Das NIST Cybersecurity Framework Version 2.0 (2023) definiert einen risikobasierten Ansatz für das Cybersicherheitsmanagement.
- NIST SP 800-218 (2022) ist das Secure Software Development Framework, das Leitlinien zur Vermeidung von Softwareschwachstellen enthält.
- Das Bundesamt für Sicherheit in der Informationstechnik (BSI) hat mit TR-03185 Best Practices zur Software-Entwicklung veröffentlicht.
Die Bedeutung der Bedrohungsmodellierung
Eine wichtige Aktivität, die in den SDLC-Prozess aufgenommen werden sollte, ist das Threat Modeling. Dabei handelt es sich um einen proaktiven Ansatz, bei dem potenzielle Bedrohungsszenarien eingehend untersucht werden, um Bedrohungen und Schwachstellen zu identifizieren, die möglicherweise nicht auf den ersten Blick erkennbar sind. Diese Aktivität kann durch den Einsatz künstlicher Intelligenz (KI) verbessert werden.
Durch die Ausführung verschiedener Bedrohungsmodelle können unerwartete Angriffsvektoren identifiziert und zur Prävention und Abwehr priorisiert werden. Dies kann Sicherheitsteams dabei helfen, sich bei der Softwareentwicklung auf die kritischsten – und wahrscheinlichsten – Cyberangriffe zu konzentrieren.
Security by Design in Sicherheitsrichtlinien integrieren
Bestehende Richtlinien zur Cybersicherheit legen möglicherweise nicht fest, dass bei der Entwicklung von Anwendungen, der Sicherung von Netzwerken und der Verbesserung der allgemeinen Sicherheitslage des Unternehmens die Prinzipien der integrierten Sicherheit anzuwenden sind. Gleiches gilt möglicherweise auch für Richtlinien und Verfahren zur Softwareentwicklung.
Angesichts der verfügbaren Ressourcen für Security by Design wird empfohlen, entweder Anforderungen für Security by Design in bestehende Richtlinien aufzunehmen oder separate Richtlinien zu erstellen, die Security by Design in allen Bereichen der Technologieentwicklung vorschreiben. Die Unterstützung durch die Geschäftsleitung ist ebenfalls unerlässlich.
Die Auswirkungen von KI auf Security by Design
Angesichts der Bedeutung von Security-by-Design-Prinzipien und -Methoden ist KI eindeutig ein wichtiges Instrument zur Verbesserung des Gesamtprozesses. Die zunehmende Implementierung von IoT-Produkten und -Dienstleistungen bedeutet, dass Sicherheit eine entscheidende Komponente ist und KI-basierte Security-by-Design-Systeme unverzichtbare Werkzeuge sein werden, um die neuen Herausforderungen bei der Systemkonzeption und -entwicklung zu bewältigen.
Die folgenden Sicherheitsattribute können durch KI verbessert werden:
- Die Erkennung von Bedrohungen mithilfe verbesserter Algorithmen kann Probleme identifizieren, bevor sie zu Störungen führen.
- Sicherheitsaktivitäten wie Patching, Bedrohungssuche und Schwachstellenscans können automatisiert werden.
- Verbesserte Vorhersagen potenzieller Ereignisse können auf der Analyse einer Vielzahl von Ereignisdaten basieren.
- Schnellere Aktivierung von Maßnahmen zur Reaktion auf Vorfälle und Wiederherstellungsaktivitäten.
- Nachweis der Einhaltung spezifischer Vorschriften.
Security by Design, ergänzt durch KI, hat eine vielversprechende Zukunft und muss ein wesentlicher Bestandteil der Sicherheitsstrategieeines Unternehmens sein.