In der Cybersicherheit hat sich „Secure by Design“ als unverzichtbare Philosophie etabliert, um sicherzustellen, dass robuste Sicherheitsmaßnahmen in jeder Phase der Softwareentwicklung im Fokus stehen. Dabei wird Sicherheit als zentrales Element und nicht als nachträglicher Gedanke umgesetzt. Sicherheitsstrategien und bewährte Verfahren werden in jedem Schritt integriert und getestet, um sicherzustellen, dass Systeme Sicherheitslücken minimieren und Angriffen effektiv widerstehen können.
IT-Fachjargon erklärt
Was bedeutet Secure-by-Design?
Was es bedeutet, Secure-by-Design zu sein
Secure-by-Design geht weit über die bisher vorgeschlagenen Branchenstandards hinaus und verfolgt ein klares Ziel: den Schutz von Kunden und der Öffentlichkeit durch die Minimierung ausnutzbarer Schwachstellen, Unternehmen, die diese Prinzipien anwenden, konzentrieren sich auf Tests, Authentifizierungssicherungen und die Einhaltung bewährter Programmierverfahren, um robuste und widerstandsfähige Software- und Hardwarelösungen zu schaffen.
Branchenführer, angeführt von Organisationen, die das Secure-by-Design-Versprechen der US-amerikanischen Cybersecurity and Infrastructure Security Agency (CISA) unterzeichnet haben, geben den Secure-by-Design-Prinzipien Priorität, um die Cybersicherheit proaktiver und effektiver zu gestalten. Dies führt zu einer sichereren Infrastruktur und zuverlässigeren Anwendungen. Neben der Erfüllung gesetzlicher Anforderungen stärkt es das Vertrauen der User und fördert eine sicherere digitale Umgebung für alle.
Verschiedene Branchenverbände und Behörden haben Richtlinien und Best Practices veröffentlicht, die sichere Softwareentwicklungsmethoden fördern. Diese betonen oft Prinzipien, die mit den Konzepten von Secure-by-Design übereinstimmen.
Das aktuell relevanteste Beispiel ist die Veröffentlichung eines gemeinsamen Leitfadens mit dem Titel „Shifting the Balance of Cybersecurity Risk: Principles and Approaches for Secure by Design Software“ (etwa: „Verlagerung des Gleichgewichts von Cybersicherheitsrisiken: Prinzipien und Ansätze für sichere Software durch Design“) durch das National Institute of Standards and Technology (NIST) und andere US-Behörden im April 2023, in dem die wachsende Bedeutung der Prinzipien von Secure-by-Design in der Softwareentwicklung hervorgehoben wurde.
Während Secure by Design für die meisten US-amerikanischen Unternehmen freiwillig ist, sind Auftragnehmer des Bundes oder Unternehmen in anderen Ländern oft verpflichtet, die Richtlinien zur Cybersicherheit einzuhalten, um sicherzustellen, dass die Produkte die Sicherheit kritischer Infrastrukturen unterstützen. Solche Vorschriften und Richtlinien erleichtern auch koordinierte Bemühungen zwischen internationalen Partnern, um eine sicherere globale Cyberumgebung zu schaffen.
Das Secure-by-Design-Versprechen
Das Versprechen ist eine freiwillige Verpflichtung, die von CISA ins Leben gerufen wurde und darauf abzielt, Softwarehersteller dazu zu ermutigen, während des gesamten Entwicklungszyklus ihrer Softwareprodukte und -dienste den Schwerpunkt auf Sicherheit zu legen. Zu den wichtigsten Aspekten gehören:
Zielgruppe
Das Versprechen richtet sich an Unternehmen, die Unternehmenssoftware entwickeln, einschließlich On-Premises-, Cloud-Services- und SaaS-Angebote. Obwohl dies nicht ausdrücklich erwähnt wird, werden auch Unternehmen, die physische Produkte wie IoT-Geräte herstellen, dazu ermutigt, ihr Engagement für sichere Designprinzipien zu zeigen.
Fokus auf messbare Maßnahmen
Das Versprechen ermutigt die Unterzeichnenden, sich zu konkreten, messbaren Maßnahmen zu verpflichten, die den Secure-by-Design-Prinzipien entsprechen und innerhalb eines Jahres nach der Unterzeichnung umgesetzt werden sollen.
Kernziele
Die Verpflichtungserklärung umfasst sieben Kernbereiche, in denen Softwarehersteller ihr Engagement für Secure-by-Design unter Beweis stellen können:
- Verstärkter Einsatz der Multi-Faktor-Authentifizierung (MFA) für ihre Produkte.
- Verringerung der Abhängigkeit von Standardpasswörtern und Förderung starker Passwortverwaltungspraktiken.
- Umsetzung von Strategien zur Minimierung ganzer Klassen von Sicherheitslücken in ihrer Software.
- Förderung der rechtzeitigen Installation von Sicherheits-Patches durch Kunden.
- Einführung einer klaren und umfassenden Richtlinie zur Offenlegung von Sicherheitslücken.
- Bereitstellung detaillierter Informationen über identifizierte Sicherheitslücken (CVEs), um die Behebung zu erleichtern.
- Implementierung von Mechanismen zur Erkennung und Reaktion auf potenzielle Sicherheitsvorfälle in ihrer Software.
Transparenz und Fortschrittsberichte
Von den Unterzeichnenden wird erwartet, dass sie ihre Fortschritte bei der Erreichung der Ziele öffentlich machen und so die Transparenz und Rechenschaftspflicht der Branche verbessern.
Secure-by-Design-Prinzipien
Die Secure-by-Design-Prinzipien sollen Softwareanbietern, die die Sicherheit verbessern möchten, eine klare Anleitung bieten.
Minimale Rechte
Dieses Prinzip stellt sicher, dass User und Systeme nur über den für ihre Rollen erforderlichen Zugriff verfügen, wodurch Schäden durch Bedrohungen oder Fehler begrenzt werden, indem die Angriffsfläche reduziert und die Risiken eines unbefugten Datenzugriffs minimiert werden. Die Umsetzung dieser Maßnahme erfordert eine strenge Zugangskontrolle und regelmäßige Aktualisierungen auf der Grundlage von Rollen, wodurch die Sicherheit vor Cyberbedrohungen
Aufgabentrennung
Die Verantwortlichkeiten werden auf mehrere Parteien oder Systeme verteilt, wodurch die Wahrscheinlichkeit von Betrug, Fehlern und Missbrauch von Privilegien verringert wird, indem verhindert wird, dass eine einzelne Stelle einen entscheidenden Prozess kontrolliert.
In einem sicheren Entwicklungszyklus werden Rollen wie Entwicklung, Test und Bereitstellung auf verschiedene Teams aufgeteilt, um sicherzustellen, dass keine einzelne Person das System unbemerkt verändern kann. Außerdem sind automatische Sicherheitsvorkehrungen enthalten, um dieses Prinzip aufrechtzuerhalten.
Mehrstufige Verteidigung
Dieser Ansatz verwendet mehrere Sicherheitsebenen, um Assets zu schützen, wobei berücksichtigt wird, dass keine einzelne Verteidigung absolut ausfallsicher ist. Es umfasst verschiedene Sicherheitsvorkehrungen wie Firewalls, Einbruchserkennungssysteme und regelmäßige Sicherheitsprüfungen für Hardware, Software und Verfahren.
Durch die Berücksichtigung verschiedener Arten von Bedrohungen und das Hinzufügen mehrerer Hürden für Eindringlinge werden mit dieser Methode Sicherheitslücken erheblich verringert und das Sicherheits-Framework von Organisationen gestärkt.
Vorteile der Teilnahme an Secure-by-Design
Für Softwareanbieter, die sich für eine Teilnahme an der „Secure by Design“-Verpflichtung entscheiden, ergeben sich folgende Vorteile:
- Bekenntnis zur Sicherheit: Die Unterzeichnung des Versprechens signalisiert öffentlich das Engagement eines Unternehmens für sichere Softwareentwicklungspraktiken. Dies kann den Ruf der Marke verbessern und Vertrauen bei potenziellen Kunden aufbauen.
- Fokus auf messbare Sicherheit: Das Versprechen fördert einen ergebnisorientierten Sicherheitsansatz und treibt konkrete Maßnahmen voran, die die Sicherheit von Softwareprodukten nachweislich verbessern.
- Zusammenarbeit und Wissensaustausch: Das Versprechen kann die Zusammenarbeit und den Wissensaustausch zwischen den Akteuren der Branche fördern und so zu einer kollektiven Verbesserung der sicheren Softwareentwicklungspraktiken führen.
Auch Kunden und User profitieren davon. Wenn ein Softwareanbieter Lösungen und Plattformen bereitstellt, die den Secure-by-Design-Prinzipien folgen, sind die wichtigsten Vorteile diejenigen, die die Kundin oder der Kunde erlebt:
- Verbesserter Schutz: Wenn Sicherheitsfunktionen von Anfang an in die Software integriert werden, wird sie robuster und weniger anfällig – das gilt ebenso für das Netzwerk, auf dem sie ausgeführt wird.
- Verbesserte DEX: Ein stärkerer Fokus auf Sicherheit und Tests während der Entwicklung kann zu einem optimierten Produkt führen, das stabiler und störungsfreier ist, wodurch letztlich auch die Mitarbeitererfahrung verbessert wird.
- Besserer ROI: Ein sichereres Produkt kann Ausfallzeiten und die Notwendigkeit von Patches minimieren, wodurch die User produktiv bleiben und Unterbrechungen vermieden werden.
- Optimierte Compliance: Die Einhaltung strenger Datenschutz- und Sicherheitsvorschriften wird mit „Secure by Design“-Software vereinfacht. Sie reduziert den Zeit- und Ressourcenaufwand für Compliance-Prüfungen und hilft, Strafen zu vermeiden.
- Verbesserung der Reputation: Unternehmen, die Sicherheit in den Vordergrund stellen, werden als vertrauenswürdiger wahrgenommen, was das Vertrauen und die Loyalität der Kunden stärkt.
Implementierung von Secure-by-Design in Softwareprodukten
Die Entwicklung von Software mit von Anfang an integrierter Sicherheit stellt eine grundlegende Veränderung in der Art und Weise dar, wie Software erstellt wird. Software wurde in der Vergangenheit mit sogenannter „Bolt-on Security" entwickelt, die nach der Produktentwicklung hinzugefügt wurde.
Das bedeutet aber, dass die Sicherheit nicht in der Lösung integriert ist. Überall dort, wo es eine Verbindung zwischen dem Kernprodukt und einem Add-on gibt, besteht eine mögliche Sicherheitslücke für Angreifer.
Secure-by-Design betont, dass Sicherheitsmaßnahmen während des gesamten Softwareentwicklungslebenszyklus (SDLC) oberste Priorität haben.
Die Integration von Secure-by-Design-Prinzipien in den gesamten Prozess, anstatt sie bis nach der Programmierung aufzuschieben, stellt sicher, dass Sicherheit bereits in der Planungs- und Entwurfsphase Priorität hat. Dieser Ansatz beinhaltet die frühzeitige Erkennung potenzieller Bedrohungen und die direkte Integration von Abwehrmechanismen in die Softwarearchitektur.
Sichere Codingpraktiken sind essenziell für die Entwicklung von Software, die präventiv Sicherheitslücken behebt. Die Einhaltung von Richtlinien wie denen des Open Worldwide Application Security Project und die Durchführung von Code-Reviews und statischen Analysen helfen dabei, Sicherheitsprobleme frühzeitig zu erkennen. Zu den wichtigsten Verfahren gehören die Validierung von Eingaben, die Vermeidung fest codierter Sicherheitsmerkmale und die Verwendung sicherer Bibliotheken. Durch den Einsatz von Tools für die kontinuierliche Überprüfung auf Sicherheitslücken und die Bedrohungsmodellierung wird die Sicherheit der Software vor Cyberbedrohungen weiter gewährleistet.
Durch gründliche Sicherheitstests in jeder Entwicklungsphase wird sichergestellt, dass Sicherheitslücken frühzeitig entdeckt und behoben werden – bevor sie für den User zu einem Problem werden. Dies verhindert die Kosten und die Komplexität, die mit der Behebung dieser Probleme zu einem späteren Zeitpunkt im SDLC oder, noch problematischer, nach der Veröffentlichung des Produkts verbunden sind.
Ein Anbieter sollte SAS (Static Application Security Testing) und DAS (Dynamic Application Security Testing) innerhalb seines Code-Sets durchführen sowie Unit-Tests und Integrationstests während des gesamten SDLC durchführen, anstatt die Bedrohungsmodellierung oder -tests bis zum Ende des Prozesses aufzuschieben.
Zu den wichtigsten Funktionen, die in Software integriert werden sollten, damit sie den Secure-by-Design-Prinzipien entspricht, gehören:
- Authentifizierung und eine Kombination aus etwas, das man weiß (Passwort), etwas, das man besitzt (Smartphone) oder etwas, das einem eigen ist (biometrisch). Die Autorisierung durch rollenbasierte Zugriffskontrolle (Role-Based Access Control, RBAC) und richtlinienbasierte Zugriffskontrolle (Policy-Based Access Control, PBAC) stellt sicher, dass User nur den erforderlichen Zugriff erhalten, wodurch Risiken reduziert werden.
- Verschlüsselung und Datenschutz. Die Verschlüsselung schützt sensible Daten im Ruhezustand und bei der Übertragung mithilfe von Algorithmen wie AES (Advanced Encryption Standard) und RSA (benannt nach den MIT-Wissenschaftlern Rivest, Shamir und Adleman). Eine ordnungsgemäße Verschlüsselung umfasst eine sichere Schlüsselverwaltung, bei der die Schlüssel getrennt von den Daten gespeichert werden, sowie die Verwendung von Hardware-Sicherheitsmodulen (HSMs). Regelmäßige Aktualisierungen des Protokolls und Audits erhöhen die Sicherheit.
Herausforderungen von Secure-by-Design
Die Umsetzung von Secure-by-Design ist mit Herausforderungen verbunden, für die eine Organisation einen Plan haben sollte:
- Kulturwandel in der Entwicklung: Der Übergang von einem Entwicklungsprozess, der sich auf Merkmale und Funktionalität konzentriert, zu einem Prozess, der Sicherheit von Anfang an integriert, erfordert einen bedeutenden Kulturwandel innerhalb der Entwicklungsteams. Sicherheit sollte als ein entscheidender Aspekt des Produkts betrachtet werden und nicht als etwas, das nur hinzugefügt wird.
- Sicherheit und Benutzerfreundlichkeit in Einklang bringen: Robuste Sicherheitsmaßnahmen dürfen die Benutzerfreundlichkeit nicht beeinträchtigen. Die richtige Balance zwischen Sicherheit und Benutzerfreundlichkeit zu finden, ist entscheidend für die Akzeptanz durch die User und eine positive Gesamterfahrung mit der Software.
- Veraltete Infrastruktur und Code: Viele Organisationen verwenden Softwareprodukte, die auf älteren Codebasen basieren, bei deren Entwicklung die Sicherheit möglicherweise nicht im Vordergrund stand. Die Nachrüstung dieser Altsysteme mit sicheren Konstruktionsprinzipien kann komplex und zeitaufwendig sein.
- Kontinuierliche Bedrohungslandschaft: Die Cybersicherheitslandschaft entwickelt sich ständig weiter, und es tauchen ständig neue Bedrohungen auf. Secure-by-Design ist keine einmalige Lösung; es erfordert ein kontinuierliches Engagement, sich über die neuesten Bedrohungen auf dem Laufenden zu halten und die Sicherheitspraktiken entsprechend anzupassen.
- Fachkräftemangel: Die effektive Umsetzung von Secure-by-Design erfordert ein Team mit spezialisiertem Sicherheits-Know-how. Es herrscht jedoch ein weltweiter Mangel an Fachkräften für Cybersicherheit, was es für Organisationen schwierig machen kann, das qualifizierte Personal zu finden, das benötigt wird, um die Secure-by-Design-Prinzipien vollständig umzusetzen.
- Einbeziehung der User: Anbieter sollten User in den Designprozess einbeziehen und Feedback einholen, um benutzerfreundliche Sicherheitsfunktionen zu entwickeln. Kontinuierliche Schulungen zu bewährten Sicherheitsverfahren sind ebenfalls von entscheidender Bedeutung, um menschliche Fehler zu reduzieren, ohne den User zu überfordern.
Secure-by-Design-Terminologie
Hier erfahren Sie, wie die Secure-by-Design-Prinzipien mit bereits bekannten Konzepten der Cybersicherheit zusammenhängen:
- Angriffsfläche: Die Summe aller potenziellen Einstiegspunkte, die ein Cyber-Angreifer ausnutzen kann, um Zugang zu einem System oder Daten zu erhalten. Secure-by-Design zielt darauf ab, die Angriffsfläche durch die Reduzierung von Sicherheitslücken zu minimieren.
- Black-Box-Test: Eine Methode zur Sicherheitsüberprüfung, bei der die internen Abläufe des Systems dem Secure-by-Design fördert sichere Programmierpraktiken, die Sicherheitslücken minimieren, die durch Black-Box-Tests aufgedeckt werden können.
- Komponentensicherheit: Das Prinzip, sicherzustellen, dass alle einzelnen Softwarekomponenten, von Bibliotheken bis hin zu Frameworks, unter Berücksichtigung der Sicherheit erstellt werden. Secure-by-Design legt den Schwerpunkt auf die sichere Auswahl und Integration von Drittanbieterkomponenten.
- Datensparsamkeit/Datenminimierung: Die Praxis, nur die für einen bestimmten Zweck erforderliche Mindestmenge an Daten zu erheben, zu speichern und zu verarbeiten. Secure-by-Design fördert die Datensparsamkeit/Datenminimierung, um die potenziellen Auswirkungen einer Datenschutzverletzung zu reduzieren.
- Verschlüsselung: Der Prozess der Umwandlung von Daten in ein verschlüsseltes Format, auf das nur mit einem Entschlüsselungscode zugegriffen werden kann. Secure-by-Design fördert die Verwendung starker Verschlüsselungsalgorithmen zum Schutz sensibler Daten.
- Firmware-Sicherheit: Die Praxis, den Low-Level-Code abzusichern, der Hardware-Geräte steuert. Secure-by-Design fördert die Verwendung sicherer Codierungspraktiken und regelmäßiger Firmware-Updates.
- Gray-Box-Test: Eine Methode zur Sicherheitsüberprüfung, bei der die Testenden nur über Teilkenntnisse der internen Funktionsweise des Systems verfügen. Secure-by-Design fördert Code, der sowohl in Grey-Box- als auch in Black-Box-Testszenarien gut funktioniert.
- Reaktionsplan auf Incidents: Ein dokumentierter Plan, der festlegt, wie eine Organisation auf einen Sicherheitsvorfall reagiert. Secure-by-Design fördert die proaktive Planung für potenzielle Sicherheitsverletzungen.
- Eingabevalidierung: Der Prozess der Überprüfung und Bereinigung von Benutzereingaben, um Angriffe durch Einschleusen von Schadcode zu verhindern. Secure-by-Design legt den Schwerpunkt auf robuste Verfahren zur Eingabevalidierung.
- Just-in-time-Zugriff: Zugriff auf Ressourcen wird nur gewährt, wenn und solange dies unbedingt erforderlich ist. Secure-by-Design empfiehlt, Berechtigungen zu minimieren und JIT-Zugriffskontrollen zu verwenden.
- Bekannte Sicherheitslücken: Dokumentierte Schwachstellen in Software, die Angreifer ausnutzen können. Secure-by-Design betont, wie wichtig es ist, über bekannte Sicherheitslücken auf dem Laufenden zu bleiben und Systeme umgehend zu patchen.
- Minimale Rechte: Das Prinzip, Usern nur das Minimum an Zugriffsberechtigungen zu gewähren, das für die Ausführung ihrer Aufgaben erforderlich ist. Secure-by-Design fördert das Konzept der geringsten Privilegien, um potenzielle Schäden durch kompromittierte Konten zu minimieren.
- Multifaktor-Authentifizierung: Eine zusätzliche Sicherheitsebene, die neben einem Passwort einen zweiten Verifizierungsfaktor für den Zugriff auf ein System erfordert. Secure-by-Design betont MFA als entscheidende Sicherheitskontrolle.
- Penetrationstests: Eine Methode zur Sicherheitsüberprüfung, bei der ethische Hacker versuchen, Sicherheitslücken in einem System auszunutzen. Secure-by-Design empfiehlt regelmäßige Penetrationstests, um Sicherheitslücken zu identifizieren und zu beheben.
- Open-Source-Sicherheit: Die Praxis, die Sicherheit von Software zu gewährleisten, die auf Open-Source-Komponenten basiert. Secure-by-Design fördert die sorgfältige Auswahl und Verwaltung von Open-Source-Bibliotheken mit Schwerpunkt auf bekannten Sicherheitslücken.
- Patch-Management: Der Prozess der Identifizierung, Beschaffung und Bereitstellung von Sicherheits-Patches, um Sicherheitslücken in Software zu reparieren. Secure-by-Design betont einen proaktiven Ansatz für das Patch-Management.
- Qualitätssicherung: Der Prozess, mit dem sichergestellt wird, dass Software bestimmte Anforderungen und Standards erfüllt, einschließlich Sicherheitsanforderungen. Secure-by-Design integriert Sicherheitsaspekte in alle Phasen des Qualitätssicherungsprozesses.
- Risikomanagement: Identifizierung, Bewertung und Minderung von Sicherheitsrisiken. Secure-by-Design fördert einen risikobasierten Sicherheitsansatz, der sich auf die kritischsten Bedrohungen konzentriert.
- Sichere Programmierpraktiken: Programmiertechniken, die die Entstehung von Sicherheitslücken während der Softwareentwicklung minimieren. Secure-by-Design legt den Schwerpunkt auf die Schulung von Entwicklerinnen und Entwicklern in sicheren Programmierpraktiken.
- Bedrohungsmodellierung: Der Prozess der Identifizierung und Analyse potenzieller Bedrohungen für ein System. Secure-by-Design empfiehlt, Bedrohungsmodelle bereits früh im Entwicklungsprozess zu erstellen, um Sicherheitsbedenken proaktiv anzugehen.
Zum Thema: Ivanti auf dem Weg zur Umsetzung der Secure-by-Design-Ziele