Welche Anforderungen sind für die Sicherheit einer Software relevant?
Für die Sicherheit einer Software sind mehrere Arten von Anforderungen relevant, die zusammen einen umfassenden Sicherheitsrahmen bilden:
- Sicherheitsanforderungen (als Teil der Qualitätsanforderungen) wie Vertraulichkeit, Integrität, Verfügbarkeit, Authentifizierung und Autorisierung.
- Funktionale Sicherheitsanforderungen wie Zugriffskontrollmechanismen, Verschlüsselungsfunktionalitäten, Sicherheitsprotokollierung und Audit-Trails und Implementierung von Sicherheitsmaßnahmen gegen bekannte Angriffsvektoren.
- Compliance-Anforderungen zur Einhaltung relevanter Datenschutzgesetze (wie DSGVO), branchenspezifische Vorschriften (z.B. PCI DSS für Zahlungsdaten) oder interne Sicherheitsrichtlinien und Standards.
- Randbedingungen für Sicherheit: beinhalten technische Einschränkungen für Sicherheitsimplementierungen, Ressourcenbeschränkungen für Sicherheitsmechanismen und Kompatibilitätsanforderungen mit bestehenden Sicherheitssystemen.
- Betriebliche Sicherheitsanforderungen wie Incident-Response-Mechanismen, Patch- und Update-Management, Backup- und Recovery-Prozesse sowie Notfallwiederherstellungspläne.
Die Sicherheitsanforderungen sollten bereits früh im Entwicklungsprozess identifiziert und dokumentiert werden, um sie von Anfang an in das Systemdesign zu integrieren. Ein „Security by Design“-Ansatz ist effektiver als nachträgliche Sicherheitsmaßnahmen. Zudem ist es wichtig, dass Sicherheitsanforderungen regelmäßig überprüft und aktualisiert werden, da sich die Bedrohungslandschaft ständig weiterentwickelt.