Skip to content
IRC-CodingIRC-Coding
SoftwarequalitätSicherheitSecurityCIAOWASP

Softwarequalität und Sicherheit: Sicherheit als Qualitätsmerkmal

Lerne, wie Sicherheit in die Softwarequalität integriert wird. Vertraulichkeit, Integrität, Verfügbarkeit und sichere Entwicklungspraktiken.

S

schutzgeist

4 min read
Softwarequalität und Sicherheit: Sicherheit als Qualitätsmerkmal

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

VorteileNachteile
Schutz von Daten und NutzernZusätzlicher Entwicklungsaufwand
Vertrauen und ReputationHöhere Komplexität der Architektur
Erfüllung von Compliance-AnforderungenBalance zur Benutzerfreundlichkeit
Frühe Erkennung von AngriffenLaufende Wartung und Updates nötig
Wettbewerbsvorteil durch SeriositätSpezialisiertes Sicherheitswissen erforderlich
Reduzierung von Kosten durch frühe FehlervermeidungFalse 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

  1. https://owasp.org/www-project-top-ten/
  2. https://iso25000.com
  3. 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.

Zurück zum DEV Blog
Share:

Ähnliche Beiträge