Sicherheit beginnt mit der Architektur
Security by Design bedeutet, Informationssicherheit bereits bei der Planung eines Systems zu berücksichtigen und nicht erst unmittelbar vor der Produktivsetzung.
Sicherheitsanforderungen müssen deshalb Bestandteil von Architektur, Entwicklung, Automatisierung und Betrieb sein.
Dazu gehören insbesondere:
- Schutzbedarfs- und Risikoanalyse
- Threat Modeling
- sichere Architekturprinzipien
- Identity- und Access-Management
- Least Privilege
- sichere Software- und Infrastruktur-Lieferketten
- Secrets-Management
- automatisierte Security-Prüfungen
- Schwachstellenmanagement
- Logging und Monitoring
- Patch- und Lifecycle-Management
- Backup und Wiederherstellung
In automatisierten Plattformen lässt sich ein großer Teil dieser Anforderungen bereits technisch erzwingen.
Infrastrukturtemplates können beispielsweise Netzwerke, Verschlüsselung, Logging und Sicherheitsrichtlinien standardmäßig vorgeben. CI/CD-Pipelines können Code, Abhängigkeiten und Infrastrukturdefinitionen automatisiert überprüfen.
Dadurch wird Sicherheit reproduzierbar.
Security by Design ersetzt allerdings weder Risikomanagement noch einen sicheren Betrieb. Systeme, Bedrohungen und Abhängigkeiten verändern sich während des gesamten Lebenszyklus.
Deshalb gehört zu Security by Design immer auch Security by Default und Security in Operation.
Um Security by Design in der Praxis umzusetzen, sollten Entwickler und Architekten bei der Gestaltung und Entwicklung von IT-Systemen und -Anwendungen einige grundlegende Prinzipien beachten:
- Risikobewertung: Zu Beginn des Entwicklungsprozesses sollten die möglichen Bedrohungen und Schwachstellen des Systems bewertet werden, um zu verstehen, welche Schutzmaßnahmen notwendig sind.
- Sicherheitsanforderungen definieren: Es sollten spezifische Sicherheitsanforderungen definiert werden, die in jeder Phase der Entwicklung berücksichtigt werden müssen.
- Architekturdesign: Die Architektur und das Design des Systems sollten so gestaltet werden, dass die Sicherheitsanforderungen erfüllt werden. Dazu gehört beispielsweise die Nutzung von Sicherheitsprotokollen und Verschlüsselungstechnologien.
- Code-Qualität: Der Code sollte so geschrieben werden, dass er sicher ist und potenzielle Schwachstellen vermeidet. Hier sollten auch Best Practices für Sicherheit in der Softwareentwicklung berücksichtigt werden.
- Kontinuierliche Überwachung: Das System sollte kontinuierlich überwacht werden, um sicherzustellen, dass es sicher bleibt und mögliche Angriffe rechtzeitig erkannt werden.
Um sicherzustellen, dass Security by Design in der Praxis umgesetzt wird, sollte das gesamte Entwicklungsteam in die Planung und Durchführung des Prozesses einbezogen werden. Außerdem sollten Entwickler und Architekten regelmäßig geschult werden, um auf dem neuesten Stand der Technik zu bleiben und sich über aktuelle Bedrohungen und Schwachstellen zu informieren.
