Nenne 4 Eigenschaften, welche zu Schwachstellen in der Softwareentwicklung führen können.
Schlampiger Entwurf – Mangelhafte Planung und Architektur führen zu unsicheren Systemen.
Schlechte Implementierung – Fehlerhafte Programmierung, die Schwachstellen entstehen lässt.
Keine oder unzureichende Entwicklungsdokumentation – Fehlende Nachvollziehbarkeit und Kontrolle über den Code.
Fehlende Fehlerbehandlung – Ausnahmebedingungen werden nicht richtig behandelt, was zu Systemausfällen führen kann.
Mangelnde Tests und Qualitätssicherung – Nur isolierte Tests von Komponenten, aber keine umfassenden Systemtests.
Unzureichendes Risikomanagement – Sicherheitsrisiken werden nicht systematisch erkannt und behoben.
Fehleingaben nicht korrekt behandelt – Benutzereingaben können zu unvorhergesehenen Problemen oder Sicherheitslücken führen.
Wiederverwendung ungeeigneter Software – Alte Software wird ohne Anpassung für neue Anforderungen übernommen (z. B. Ariane-5-Fehlschlag).
Keine angemessene Fehlerprotokollierung – Fehler werden nicht dokumentiert oder analysiert, wodurch sie schwer nachvollziehbar sind.
Unzureichende Rechteverwaltung – Nutzer und Programme haben oft mehr Rechte als nötig, was Angriffe erleichtert.
Fehlende Updates und Patches – Sicherheitslücken bleiben bestehen, wenn Updates nicht regelmäßig durchgeführt werden.
Was sind die SIcherheitsziele für Softwareprodukte?
klassische, generische Sicherheitsziele:
(Wahrung der) Vertraulichkeit
(Wahrung der) Authentizität und Integrität
(Wahrung der) Verfügbarkeit
zusätzliche Sicherheitsziele:
Nachweisbarkeit der klassischen Ziele durch Entwickler
Unterstürtzung der klassischen Ziele durch späteren Betreiber
Angemessenheit hinsichtlich potenzieller Einsatzzwecke
Erkläutere kurz das Negativbeispiel für Softwarefehler Therac-25
Therac-25 war ein medizinischer Linearbeschleuniger zur Strahlentherapie, der zwischen 1982 und 1985 in mehreren Kliniken eingesetzt wurde. Aufgrund schwerwiegender Softwarefehler kam es zu mehreren tödlichen Unfällen.
Mehrere Patienten erhielten massive Strahlendosen (bis zu 25.000 Rad anstelle der vorgesehenen 100–200 Rad). Dies führte zu schweren Verletzungen und Todesfällen.
Was waren die Hauptprobleme bei Therac-25
Fehlende Fehlerbehandlung → Fehleingaben des Bedieners führten zu falschen Strahlungsdosen.
Ganzzahlenüberlauf → Eine Variable lief nach 256 Behandlungen über, was wichtige Sicherheitsprüfungen deaktivierte.
Mangelhafte Softwarequalität → Nur ein einziger Entwickler war für Entwurf, Implementierung und Test verantwortlich.
Fehlende Systemtests → Es gab keine systematischen Qualitätssicherungsmaßnahmen.
Unzureichende Kommunikation → Betreiber wurden nicht über Softwarefehler informiert, sodass das Problem lange unentdeckt blieb.
Was passiert bei der Anforderungsanalyse?
Anforderungen identifizierter und Einsatzszenarien analysieren
Individuelle Risikobewertung und/oder Baseline Security?
Anforderungen externer Rahmenwerke?
spezifische Wünsche von Kunde bzw. Auftraggeber?
Nenne 3 Wege um Sicherheitsziele einfacher umzusetzen
Vertraulichkeit – Daten dürfen nur von berechtigten Personen gelesen werden.
Authentizität & Integrität – Schutz vor Manipulationen und unbefugtem Zugriff.
Verfügbarkeit – Systeme müssen zuverlässig funktionieren.
Nenne 4 Technische Schutzmaßnahmen
Rechteverwaltung – Jeder Benutzer und jedes Programm sollten nur die nötigen Rechte haben.
Sichere Speicherung von Zugangsdaten – Keine Passwörter oder Schlüssel im Klartext.
Patch- und Updatefähigkeit – Sicherheitslücken müssen schnell geschlossen werden können.
Protokollierung und Nachvollziehbarkeit – Log-Dateien zur Analyse von Sicherheitsvorfällen führen.
Nenne 4 Designkriterien zur Sicherheitsumsetzung
Einfachheit – Komplexität erhöht die Fehleranfälligkeit.
Minimale Vertrauensbeziehungen – So wenige Berechtigungen und Abhängigkeiten wie möglich.
Fehlerresistenz – Software muss auch bei Problemen in einen sicheren Zustand übergehen.
Standardmäßige Abweisung – Aktionen sind nur erlaubt, wenn sie explizit freigegeben wurden.
Nenne 3 Wege um eine sichere Softwareentwicklung sicher zu stellen
Fehler frühzeitig erkennen – Durch systematische Tests und Code-Reviews.
Design by Contract – Klare Schnittstellen und Verhaltensregeln für Softwarekomponenten definieren.
Restrisiken dokumentieren – Nicht vermeidbare Sicherheitsrisiken identifizieren und minimieren.
Zeichne ein Vorgehensmodell des Software Lebenszyklus.
durch fehlende Standartisierung sind die frühen Phasen (rot) besonders fehleranfällig
Last changeda month ago