A Gift of Fire Können wir dem Rechner vertrauen (Kapitel 4)? Seminar Softwaretechnik SS04 Referent: Patrick Mukherjee Matr.Nr.: 181978 Veranstalter: Jähnichen, Bittner, Koch, Kuzmanovski
Überblick Was kann schief gehen? Zuverlässigkeit und Sicherheit Systemfehler, Abhängigkeit, Risiko und Fortschritt neu betrachtet Modelle und Simulationen
Was kann schief gehen? Softwarefehler verursacht Strahlungsüberdosis Finanzamtcomputer verschickt Mahnungen über $68 Milliarden Roboter tötet Arbeiter Mann fünf mal wegen falscher Daten im FBI Computer verhaftet Hightech Gepäck System 'isst' Koffer
Was kann schief gehen? Fakten über Computerfehler Fehlerfreie Software ist fast unmöglich. Oft führen mehr als ein Faktor zu Fehler. Fehler vermeidbar durch Befolgung erprobter Verfahrensweisen und Techniken.
Was kann schief gehen? Verursacher von Computerproblemen: Anwender (Zu hause oder auf der Arbeit) Unkenntnis der Grenzen der Rechner. Kein angemessenes Training. Verantwortungsloser Umgang. Fachleute Unkenntnis von Fehlerursachen & Konsequenzen Einkauf, Entwicklung oder administrieren komplexer Systeme. Führungspersonal Unverständnis der Risiken bei Entscheidungen Persönlichen, politischen, sozialen & ethischen.
Was kann schief gehen? Fehlerkategorien Probleme von Individuen: Sind meistens Benutzer, Konsumenten. Einzelschicksale. Systemausfälle: Betreffen eine große Gruppe von Personen. Kosten sehr viel Geld. Sicherheitskritische Anwendungen: Fehler können Personen verletzen/töten.
Was kann schief gehen? Fehlerkategorien: Persönliche Probleme Abrechnungsfehler. Unkorrekte, unvollständige Datenbankeinträge. Privacy Journal schätzt 25% fehlerhafte Krediteinträge. ca.11% der Haftbefehle des FBI in 80ern ungültig. Leicht Erkennbar: häufig auftretende Berechnungsfehler. Schwer: Datenfehler (falsche Einträge). Datenfehler treten auch ohne Rechner auf.
Was kann schief gehen? Fehlerkategorien: Persönliche Probleme: Gründe Große Bevölkerung. Fehler in Dateneinträgen. Information nicht aktuell. Fehlende Verantwortlichkeit für Fehler. Zu hohes Vertrauen in Daten. Kein gesunder Menschenverstand bei automatischen Prozessen (matching).
Was kann schief gehen? Fehlerkategorien: Systemausfälle Kommunikationssysteme: Rundfunk und persönliche Kommunikation. Transportsysteme: Organisation von Buchungen und Gepäck. Handel: Lagerverwaltungssoftware. Wirtschaft: Banken, Aktienhandel, etc..
Was kann schief gehen? Fehlerkategorien: Systemausfälle: Gründe Zu wenig Zeit für Testen und Fehlersuche. Erhebliche Änderungen in der Spezifikation (nach Projektstart). Zu großes Vertrauen in das System. Schlechte Projektleitung. Fehler auch in anderen Systemkomponenten Oft erst durch zusammenwirken
Was kann schief gehen? Fehlerkategorien: Sicherheitskritische Anwendungen Sicherheitskritische Anwendungen: Militär, Kraftwerken, Flugzeugen, Zügen, autom.fabriken, medizinischen Apparaten, Fehler führen schnell zum Tod. meiste Todesfälle in Luftfahrt und Medizin. Wie sehr darf man sich auf Rechner verlassen? Wie weit darf die Kontrolle gehen?
Was kann schief gehen? Fehlerkategorien: Sich.krit. Anwendungen: Gründe Zu hohes Vertrauen in das System. Fehlende Eingriffsmöglichkeiten. Unzureichende Testphase. Zu hohe Komplexität des Systems. Schlechtes Projektmanagement.
Zuverlässigkeit und Sicherheit Kleiner Tippfehler -> große Auswirkungen. Fehlerquellen in jeder Ebene: von Design und Implementierung bis zu Systemmanagment und Benutzung). Computer fallen aus weil: Die Aufgabe inhärent kompliziert ist. Sie schlecht erledigt wird. Entwickler und Anwender zu sehr auf das System vertrauen.
Zuverlässigkeit und Sicherheit Häufigste Fehlerquellen Interaktion mit realen Geräten nicht wie erwartet Inkompatibilität zwischen Software und Hardware oder Betriebssystem. Unaufmerksamkeit für potentielle Sicherheitsrisiken. Keine Berücksichtigung unerwarteter Eingaben. Nicht genügend Tests. Wiederverwendung von Software aus anderen Systemen ohne angemessene Nachprüfung. Falsche Darstellung; verstecken von Problemen. ungenügendes reagieren auf gemeldete Fehler.
Zuverlässigkeit und Sicherheit Probleme im Umgang mit dem System: Dateneingabefehler. Unzureichend geschulte Benutzer. Fehlinterpretierte Resultate/Ausgaben. Benutzer vertraut der Software zu sehr. Ungenügende Ausfallvorsorge; keine Backupsysteme oder -prozeduren.
Zuverlässigkeit und Sicherheit Wiederverwendete Software Erhöht oder verringert Sicherheit? Code lief in realen System fehlerfrei. Unerwartete Zustände in neuer Umgebung ursprüngliche und neue Spezifikation untersuchen und neu testen.
Zuverlässigkeit und Sicherheit Professionelle Techniken Befolge bewährte Softwaretechniken in jeder Entwicklungsphase. Konstruiere gut designte Benutzerschnittstelle. Rechne mit dem Menschlichen Faktor. Baue Redundanz ein. Integriere Selbstests an geeigneten Stellen.
Zuverlässigkeit und Sicherheit Gesetze und Vorschriften Fördern Verantwortungsbewusstsein. Minimum an Qualität garantieren. Benutzer vor Schäden bewahren. Verursachte Schäden ausgleichen. Verteuern das Produkt. Vorschriften sind schwer zu entwerfen. Gesetzeslage (besonders in den U.S.A) nicht eindeutig.
Zuverlässigkeit und Sicherheit Selbstregulierung Kulanz durch wirtschaftlichen Druck (guter Ruf): Kunden nicht verärgern, bestmögliche Produkte. Versicherungsgesellschaften: untersuchen Produkt wegen Versicherungsrisiko. schlechtes Produkt muss Schäden tragen. Qualität eines Produktes vor Kauf erkennenbar? Massenp.: Erfahrungsberichte (Medien, Web). spezielle P.: s.o. oder Ruf der Firma verlassen, evt. früheres Produkt begutachten.
Systemfehler, Abhängigkeit, Risiko und Fortschritt neu betrachtet Wie niedrig ist eine akzeptable Fehlerrate? Wie hoch ist die Fehlerrate ohne Computer? Fehler besser korrigieren als Quelle suchen. Wie viel Kontrolle? Rechnerunterstützung in Flugzeugen ( ABS ). Pilotenfehler ausgeschaltet, neue entstanden. 70-80 sank Todesrate v. 0,8/100.000 auf 0,4. 1990ern Abstürze um 85% gesunken
Systemfehler, Abhängigkeit, Risiko und Fortschritt Abhängigkeit Abhängig oder dran gewöhnt? Abhängiger als von Elektrizität? Computer sind flexibel, deshalb verbreitet. Werkzeuge vereinfachen Arbeit.
Systemfehler, Abhängigkeit, Risiko und Fortschritt Risiko und Fortschritt Je größer Werkzeuge werden, desto fehleranfälliger und gefährlicher. Risiko ist bestandteil des Lebens. Entwicklungen entstehen oft aus Zwischenfällen. Computertech. entwickelt sich rasant. Computer können Entscheidungen treffen.
Systemfehler, Abhängigkeit, Risiko und Fortschritt Beobachtungen Ähnliche Sicherheitsthemen auch in anderen Technologiebereichen. Perfektion ist keine Option. 'Lernkurve' bei neuen Technologien. Risiko mit nicht computerisierte Alternativen vergleichen.
Modelle und Simulationen Helfen mit wenig Kosten Entscheidungen zu treffen. Models sind Vereinfachungen realer Systeme. Modelle unterscheiden sich in der Qualität. Entwickler müssen ehrlich und genau bezüglich der Resultate sein.
Modelle und Simulationen Weshalb Modelle ungenau sind Verzerrung der Ergebnisse aus politischen oder wirtschaftlichen Gründen. Nicht komplettes Wissen über das modellierte System. Daten sind lückenhaft oder unvollständig. Rechenkraft ist für alle Berechnungen nicht ausreichend. Einige Variablen sind schwer in Werte zu fassen
Modelle und Simulationen Güte eines Modelles einschätzen Wie gut erforscht sind: Wissenschaften oder Theorien? relevante Materialeigenschaften? Wie genau und komplett sind die Daten? Wo wurden Vereinfachung und Annahmen getroffen? Wie nah sind Ergebnisse an realen Tests? Simulationen ersetzen keine realen Sicherheitstests!
Fazit Nur durch genaue Kenntnis des Systems können wir Risiken einschätzen. Es gibt keine risikolosen Systeme. Man sollte nicht zu sehr in Software vertrauen. Alternativen sind oft riskanter und unproduktiver.