next up previous contents
Next: 4.2 Begriffe Up: 4. Software- und Systemsicherheit Previous: 4. Software- und Systemsicherheit

4.1 Einordnung und Ziele

Software ist fast immer Teil eines größeren Systems. Das gilt gleichermaßen für Software, die ausschließlich direkt von Menschen benutzt wird (Büroanwendungen u.ä., hier ist die jeweilige Organisation samt der Menschen das System), und für Software, die direkt in technische Systeme eingebettet ist, um diese zu steuern, seien es nun ein Radiowecker, das ABS eines Autos, eine chemische Fabrikanlage oder die Elektrizitätsversorgung eines ganzen Landes.

Aufgrund der zentralen Rolle, die Software in allen solchen Systemen mittlerweile spielt, liefert sie wesentliche Beiträge zur Sicherheit dieser Systeme -- oder den Mängeln solcher Sicherheit. Da viele solche Systeme inzwischen kritische Aufgaben haben und erhebliche Gefahren darstellen können, wenn sie falsch funktionieren, nehmen Fragen der Sicherheit einen hohen Stellenwert ein, auch wenn das mancherorts bisher noch kaum gesehen wird.

Eine wichtige Beobachtung in diesem Zusammenhang lautet, daß eine getrennte Betrachtung von Softwaresicherheit und Systemsicherheit nicht sinnvoll ist. Erstens kann eine klare Zuweisung eines auftretenden Sicherheitsproblems nur auf das Konto der Software oder nur auf das Konto des Restsystems ohnehin oft nicht vorgenommen werden und zweitens wäre das auch gar nicht wünschenswert, denn Software und Restsystem sollten nach Möglichkeit stets versuchen, die Schwächen des jeweils anderen Teils möglichst weitgehend auszugleichen. Beispiel: Betrachten wir ein System aus Bestellsoftware und den Menschen die sie benutzen (Besteller und Lieferant). Angenommen, ein Bäcker bestellt wöchentlich per Computer sein Mehl, normalerweise eine bis eineinhalb Tonnen und vertut sich einmal bei der Eingabe mit den Nullen und bestellt 14 Tonnen. Die Software sollte eine Plausibilitätsprüfung haben, die diesen Fall als verdächtig einstuft und den Bäcker rückfragt, ob er das ernst meint. Der Softwaresystemteil sollte also gegen Fehler des menschlichen Systemteils vorsorgen. Kommt eine solche Bestellung, etwa wegen eines Softwarefehlers, beim Lieferanten an, sollten sich beispielsweise die Leute im Lager dafür zuständig fühlen, den Wert verdächtig zu finden und nachzuforschen, ob er korrekt ist. Der menschliche Systemteil sollte also gegen Fehler im Softwaresystemteil vorsorgen. Ein gut entworfenes System hat immer diese Eigenschaft in möglichst vielen seiner Teile mit möglichst vielen möglichst verschiedenen und möglichst einfachen Maßnahmen gegen möglichst viele Arten von Fehlern vorzubeugen.

Der einzige Aspekt von Softwaresicherheit, den separat zu betrachten sich lohnt, ist die Frage nach der Zuverlässigkeit, also: Wie oft treten im Softwarebetrieb Abweichungen des Softwareverhaltens von der Spezifikation auf und wie schwerwiegend sind diese? Wir werden uns in diesem Abschnitt jedoch auf die Sicht von Gesamtsystemen konzentrieren.

Aus den obigen Betrachtungen ergeben sich zwei Forderungen:


next up previous contents
Next: 4.2 Begriffe Up: 4. Software- und Systemsicherheit Previous: 4. Software- und Systemsicherheit
Lutz Prechelt
1999-04-13