Softwarequalität und Sicherheit
Sicherheit ist ein zentrales Qualitätsmerkmal nach ISO 25010. Sie umfasst Vertraulichkeit, Integrität, Verfügbarkeit und weitere Aspekte wie Authentizität.
In a Nutshell
- Sicherheit ist ein Qualitätsmerkmal.
- CIA-Triade: Vertraulichkeit, Integrität, Verfügbarkeit.
- Sicherheit muss vom Design an berücksichtigt werden.
- Security Testing ist ein Teil, aber nicht ausreichend.
CIA-Triade
Die CIA-Triade ist das fundamentale Modell der Informationssicherheit. Sie beschreibt die drei zentralen Schutzziele, die jede sichere Software erfüllen muss.
Vertraulichkeit
Vertraulichkeit stellt sicher, dass sensible Informationen nur von autorisierten Personen eingesehen werden können. Maßnahmen sind Verschlüsselung, Zugriffskontrollen und Authentifizierung.
Integrität
Integrität bedeutet, dass Daten nicht unbemerkt verändert werden dürfen. Hashverfahren, digitale Signaturen und Versionskontrollen helfen dabei.
Verfügbarkeit
Verfügbarkeit stellt sicher, dass Systeme und Daten bei Bedarf erreichbar sind. DDoS-Angriffe oder Ausfälle können sie gefährden. Redundanzen und Monitoring sind wichtige Maßnahmen.
Weitere Sicherheitsaspekte
- Authentizität: Sichere Identitätsprüfung von Nutzern und Systemen.
- Verantwortlichkeit: Nachvollziehbarkeit von Aktionen.
- Nicht-Abstreitbarkeit: Beweis, dass eine Aktion stattgefunden hat.
- Datenschutz: Schutz personenbezogener Daten.
Sichere Praktiken
Security by Design
Sicherheit wird von Beginn an in Architektur und Design einfließt. Später ergänzte Sicherheit ist teurer und weniger effektiv.
Minimale Privilegien
Jeder Nutzer und Prozess erhält nur die minimal nötigen Rechte. Das begrenzt den Schaden bei einem Angriff.
Input-Validierung
Alle Eingaben müssen auf Typ, Länge, Format und Bereich geprüft werden. Serverseitige Validierung ist zwingend, da Client-Validierung umgangen werden kann.
Sichere Authentifizierung
Starke Passwortregeln, Hashing mit Salz, Rate Limiting, MFA und sichere Session-Token schützen die Anmeldung.
Logging und Monitoring
Sicherheitsrelevante Ereignisse werden protokolliert und überwacht. Das ermöglicht frühe Erkennung von Angriffen und Nachvollziehbarkeit.
Regelmäßige Updates
Sicherheitslücken in Frameworks, Bibliotheken und Betriebssystemen werden durch Updates und Patches geschlossen.
Praxisbeispiel
Eine sichere Anmeldung ist ein klassisches Beispiel für die praktische Umsetzung von Sicherheit als Qualitätsmerkmal. Dieses Beispiel ist gewählt, weil die Anmeldung ein häufiges Angriffsziel ist und viele Schutzziele der CIA-Triade gleichzeitig demonstriert. Die folgende Liste zeigt, wie Sicherheitspraktiken konkret zusammenwirken.
Sichere Anmeldung:
- Passwörter gehasht speichern
- Rate Limiting gegen Brute-Force
- HTTPS erzwingen
- Multi-Faktor-Authentifizierung
- Sichere Session-Verwaltung
Warum diese Maßnahmen?
- Passwörter gehasht speichern: Schützt die Vertraulichkeit der Zugangsdaten, selbst wenn die Datenbank kompromittiert wird.
- Rate Limiting: Verhindert automatisierte Angriffe und erhöht die Verfügbarkeit des Systems.
- HTTPS erzwingen: Schützt Daten während der Übertragung und gewährleistet Integrität.
- Multi-Faktor-Authentifizierung: Erhöht die Authentizität, auch wenn das Passwort bekannt ist.
- Sichere Session-Verwaltung: Verhindert Session-Hijacking und gewährleistet Verantwortlichkeit.
Diese Maßnahmen zeigen, dass Sicherheit nicht nur ein einzelnes Werkzeug ist, sondern ein Zusammenspiel aus Design, Implementierung und Betrieb.
Vorteile und Nachteile
| Vorteile | Nachteile |
|---|---|
| Schutz von Daten und Nutzern | Zusätzlicher Entwicklungsaufwand |
| Vertrauen und Reputation | Höhere Komplexität der Architektur |
| Erfüllung von Compliance-Anforderungen | Balance zur Benutzerfreundlichkeit |
| Frühe Erkennung von Angriffen | Laufende Wartung und Updates nötig |
| Wettbewerbsvorteil durch Seriosität | Spezialisiertes Sicherheitswissen erforderlich |
| Reduzierung von Kosten durch frühe Fehlervermeidung | False Positives und Prüfaufwand bei Tools |
Prüfungsrelevante Stichpunkte
- ISO 25010: Sicherheit ist eine eigene Charakteristik mit Untermerkmalen wie Vertraulichkeit, Integrität, Verfügbarkeit und Authentizität.
- CIA-Triade: Vertraulichkeit, Integrität, Verfügbarkeit sind die drei Grundpfeiler der Informationssicherheit.
- Security by Design: Sicherheit muss bereits in der Entwurfsphase berücksichtigt werden.
- Minimale Privilegien: Nur die Rechte vergeben, die unbedingt nötig sind.
- Input-Validierung: Alle Eingaben serverseitig prüfen, um Injection und andere Angriffe zu verhindern.
- Sichere Authentifizierung: Passwort-Hashing, MFA, Rate Limiting und sichere Sessions.
- Logging und Monitoring: Sicherheitsrelevante Ereignisse protokollieren und überwachen.
- Regelmäßige Updates: Frameworks, Bibliotheken und Systeme aktuell halten.
- Datenschutz: Schutz personenbezogener Daten nach DSGVO.
- Threat Modeling: Systematische Analyse von Bedrohungen im Entwurf.
- Defense in Depth: Mehrere Sicherheitsschichten statt einer einzelnen Maßnahme.
- Security vs. Security Testing: Sicherheit ist das Qualitätsmerkmal, Security Testing die Überprüfungsmethode.
Wichtigste Quellen
- https://owasp.org/www-project-top-ten/
- https://iso25000.com
- https://en.wikipedia.org/wiki/Information_security
Häufig gestellte Fragen
Was ist die CIA-Triade?
Die CIA-Triade beschreibt die drei Schutzziele Vertraulichkeit, Integrität und Verfügbarkeit. Sie ist das Grundmodell der Informationssicherheit.
Ist Sicherheit ein Qualitätsmerkmal nach ISO 25010?
Ja, nach ISO 25010 ist Sicherheit eine eigene Charakteristik mit Untermerkmalen wie Vertraulichkeit, Integrität, Verfügbarkeit und Authentizität.
Was bedeutet Vertraulichkeit?
Vertraulichkeit bedeutet, dass sensible Daten nur von autorisierten Personen eingesehen werden dürfen. Maßnahmen sind Verschlüsselung, Zugriffskontrollen und Authentifizierung.
Was bedeutet Integrität?
Integrität bedeutet, dass Daten während Speicherung, Übertragung und Verarbeitung nicht unbemerkt verändert werden dürfen. Hashverfahren und digitale Signaturen sichern sie ab.
Was bedeutet Verfügbarkeit?
Verfügbarkeit bedeutet, dass Systeme und Daten bei Bedarf erreichbar sind. Redundanzen, Lastverteilung und Monitoring erhöhen die Verfügbarkeit.
Was ist Security by Design?
Sicherheit wird bereits in der Entwurfsphase berücksichtigt. So wird sie kostengünstiger und wirksamer.
Was ist das Prinzip der minimalen Privilegien?
Jeder Nutzer und Prozess erhält nur die Rechte, die unbedingt nötig sind.
Was ist Input-Validierung?
Input-Validierung prüft Eingaben auf Typ, Länge und Format, um Angriffe zu verhindern.
Was ist sichere Authentifizierung?
Sie umfasst starke Passwortregeln, Hashing, MFA, Rate Limiting und sichere Sessions.
Warum ist Logging wichtig?
Logging macht Aktionen nachvollziehbar und ermöglicht die Erkennung von Angriffen.
Was ist ein Sicherheitsvorfall?
Ein Ereignis, das die Vertraulichkeit, Integrität oder Verfügbarkeit von Daten oder Systemen gefährdet.
Was ist Compliance?
Erfüllung von regulatorischen und rechtlichen Anforderungen wie DSGVO, ISO 27001 oder PCI-DSS.
Was ist der Unterschied zwischen Sicherheit und Security Testing?
Sicherheit ist ein Qualitätsmerkmal, Security Testing ist die Methode zur Überprüfung.
Was ist Datenschutz?
Schutz personenbezogener Daten vor unbefugtem Zugriff und Missbrauch.
Was ist Threat Modeling?
Systematische Analyse potenzieller Bedrohungen bereits im Entwurf.
Was ist Authentizität?
Sichere Identitätsprüfung von Nutzern und Systemen.
Was ist Defense in Depth?
Mehrere Sicherheitsschichten statt einer einzelnen Maßnahme.
Warum sollte man Passwörter hashen?
Hashing schützt Passwörter, selbst wenn die Datenbank kompromittiert wird.
Was ist ein Sicherheitsaudit?
Systematische Überprüfung von Sicherheitsmaßnahmen und Prozessen.
Warum sind regelmäßige Updates wichtig?
Updates schließen bekannte Sicherheitslücken in Software und Bibliotheken.
Weiter im Softwarequalität Lernpfad
Der nächste Artikel im Softwarequalität Lernpfad behandelt Softwarequalität und Performance — wie Performance ein Qualitätsmerkmal wird.



