Allgemein

Sicherheit in Software – die sieben wichtigsten Punkte

Die Digitalisierung in Wirtschaft und Gesellschaft sorgt dafür, dass Software heute längst allgengewärtig ist. Neben den damit verbundenen Chancen gilt es aber auch Gefahren und Bedrohungsszenarien zu berücksichtigen. Darauf weist der Digitalverband Bitkom in seinem neuen Leitfaden „Zur Sicherheit softwarebasierter Produkte“ hin. Diese sieben Punkte sind dabei besonders wichtig:

1. Wie wird Software hergestellt?

An der Entwicklung von Software sind meistens viele Personen beteiligt. Zunächst werden die Anforderungen zusammengestellt, anschließend wird die Architektur der Software geplant. Aber nur in wenigen Fällen müssen Entwickler einen Code komplett neu schreiben. Oft greifen sie auf Code-Bibliotheken zurück oder bedienen sich an Open-Source-Software. Oft enthält Software daher Versatzstücke aus anderen Programmen und wird für den speziellen Gebrauch angepasst. Vor der Veröffentlichung gibt es im Idealfall einen Stresstest unter realen Bedingungen. Auch nach der Veröffentlichung muss die Software regelmäßig überarbeitet werden.

2. Warum sind Updates so oft nötig?

Software muss regelmäßig angepasst werden, damit die Nutzer ein bestmögliches Produkt erhalten. Daher werden regelmäßig Updates benötigt. In der Regel handelt es sich dabei um funktionale Updates. Diese werden zum Beispiel bei Service-Wartungen durchgeführt, aber auch wenn der Hersteller neue Funktionen einbindet. Gelegentlich gibt es auch Sicherheits-Updates, um auf neue mögliche Lücken zu reagieren oder angreifbare Stellen zu schließen.

3. Warum ist Software nie ganz ohne Fehler?

Moderne Methoden und Werkzeuge zur Softwareentwicklung reduzieren mögliche Fehlerquellen. Solange Software jedoch von Menschen erstellt wird, lassen sich Fehler nicht komplett vermeiden. Umfang und Komplexität moderner Software verhindern, dass solche Fehler mit einem vertretbaren Aufwand vollständig durch Tests gefunden und vor der Nutzung der Software beseitigt werden können.

4. Wie sorgen die Hersteller für eine hohe Qualität?

Unternehmen, die Software entwickeln, erreichen eine möglichst hohe Qualität bei der Entwicklung durch „Security by Default“ und „Security by Design.“ Dabei sind drei Aspekte essenziell. Entsprechende Sicherheitswerkzeuge sollten in die Software-Entwicklung integriert werden. Zudem sollte Sicherheit als eine allgemeingültige Code-Kultur in den beteiligten Bereichen der Softwareentwicklung verankert werden. Und zu guter Letzt spielt die Teamorganisation eine Rolle. Statt einzelne Teams in Silos nebeneinander zu stellen, sollte ein cross-funktionales Team geschaffen werden, das Entwicklung, Betrieb und Sicherheit gemeinsam vorantreibt und einen offenen Umgang mit Wissen pflegt.

5. Was passiert, wenn Fehler in der Software zu Schäden führen?

Wenn Softwarefehler auftreten, können Hersteller auch bei fehlenden Vertragsbeziehungen nach den Grundsätzen der Produkt- und der Produzentenhaftung haftbar gemacht werden. Allerdings haftet der Hersteller in diesen Fällen nur, wenn ein Softwarefehler Schäden an jenen Rechtsgütern verursacht hat, die laut Rechtsordnung einen besonderen Wert aufweisen, etwa Gesundheit oder Eigentum. Um die Haftung zu vermeiden, muss der Hersteller die aus dem Fehler resultierende Gefahr beseitigen. Allgemeingültige Grundsätze lassen sich dafür aber kaum festlegen.

6. Woran erkennt man „sichere“ Software?

Ein eindeutiger Beweis für sichere Software lässt sich nie liefern. Anerkannte Zertifikate können ein Indikator für qualitativ hochwertige Software sein. Es ist aber nicht auszuschließen, dass Software trotz Zertifikaten nach wie vor Fehler und Sicherheitsmängel aufweist. Ein weiterer Indikator für hochwertige Software ist, dass es in den einschlägigen Datenbanken für Sicherheitsschwachstellen keine Einträge zur jeweiligen Software gibt. Dazu zählen die Datenbanken OWASP, CWE, NVD, CAPEC, CVE, VDBs. Zudem sollte Software immer über vertrauenswürdige Lieferanten eingekauft werden.

7. Wie können Nutzer den Einsatz von Software sicherer machen?

Eine elementare Voraussetzung für den sicheren Einsatz ist, dass die gesamte Technik dem aktuellen Stand der Entwicklung entspricht. Jedes nicht installierte Update stellt ein Risiko dar, wenn dadurch eine bekannte Sicherheitslücke bleibt. Dabei ist die Aktualisierung der einzelnen Komponenten kein einmaliger Vorgang, sondern ein Prozess. Unerlaubte Zugriffe oder Missbrauch werden besser vermieden, wenn Nutzer ihre Programme an die eigene Arbeitsweise anpassen.

Schaltfläche "Zurück zum Anfang"