Sicherheitslücke (Software)

Sicherheitslücke (Software)

Eine Sicherheitslücke ist im Gebiet der Informationssicherheit ein Fehler in einer Software, durch den ein Programm mit Schadwirkung (Malware) oder ein Angreifer in ein Computersystem eindringen kann.

Inhaltsverzeichnis

Entstehung von Sicherheitslücken

Eine Sicherheitslücke stellt eine Bedrohung für die Sicherheit eines Computersystems dar. Es besteht das Risiko dass die Sicherheitslücke ausgenutzt und das betroffene Computersystem kompromittiert werden kann. Sicherheitslücken entstehen unter anderem durch den unzureichenden Schutz eines Computers vor Angriffen aus dem Netzwerk (beispielsweise mangels Firewall oder anderer Sicherheitssoftware) sowie durch Programmierfehler im Betriebssystem, Browser oder anderen Softwareanwendungen, die auf dem System betrieben werden.

Sicherheitslücken können im Entwicklungsprozess entstehen, wenn Sicherheitsaspekte in der Planung, Konzeption und Entwicklung vernachlässigt werden und Sicherheitsvorgaben nicht ausreichend berücksichtigt werden, z.B. als Qualitätsziele. Des Weiteren ergeben sich Sicherheitslücken aus Fehlern, die auf Grund der Komplexität von Softwaresystemen im Entwicklungsprozess entstehen können. Grobe Schätzungen zeigen, dass ein Programmierer pro 1000 Programmzeilen einen Fehler erzeugt, das entspricht einem Promille Fehlerhäufigkeit; bei 1.000.000 Zeilen sind also etwa 1000 Fehler zu erwarten. Falls beim Alpha- und Beta-Prozess nicht alle Fehler gefunden werden, entsteht ein fehlerhaftes Produkt.

Viele Fehler werden nie entdeckt, da der Fehlergehalt gering ist oder die Auswirkung erst bei längerer Laufzeit des Programms Schaden erzeugen würde. In hochkomplexen Programmen werden solche einfachen Fehler bei Entdeckung zunächst nur dokumentiert und erst später behoben. Dies nicht nur aus Kostengründen, sondern auch deshalb, da jede zur Behebung notwendige Änderung am Programmcode wiederum Quelle neuer Fehler sein kann. Manche Fehler erzeugen jedoch schwerwiegende Sicherheitslücken, ohne dass dies sofort zu einem kompletten Absturz führt.

Derartige Sicherheitslücken sind symptomatisch für Programme, welche mit Programmiersprachen geschrieben wurden, die in Hinblick auf zum Beispiel Performance optimiert sind (beispielsweise C oder Assembler) und auf Grund von ihrem Programmiermodell anfällig für Fehler sind (Stichwort: Zeigerarithmetik). Durch die weite Verbreitung von derartigen Programmiersprachen, dem hohen Zeitdruck in der Softwareerzeugung, verbunden mit dem ausgeprägten Kostendruck der Softwareerzeugerfirmen und dem wenig sensiblen Umgang mit dem Thema sichere Software sind Sicherheitslücken eher die Regel als die Ausnahme.

Ein häufig genanntes Problem sind vor allem Softwareangebote von Hardwareherstellern zu ihren Produkten, welche oftmals nur aus Marketinggründen bei bestimmten Produkten beiliegen (vergleiche Videoschnittsoftware bei Camcordern). Durch kostengünstige Entwicklung und dadurch schlechte Programmierung werden eine Vielzahl von Programmfehlern und Sicherheitslücken geschaffen, die vor allem den Heimanwenderbereich betreffen. Erschwerend kommt hinzu, dass Hardwarefirmen oft nicht auf die Entwicklung von Anwendungssoftware spezialisiert sind, daher Entwicklungsaufträge an Fremdfirmen und somit die Produktqualität auch nicht mehr ohne weiteres selbst überprüfen können. Zum andern sind die Fremdfirmen unter Umständen noch nicht einmal auf die Entwicklung der speziellen Software spezialisiert. Diese Faktoren führen dazu, dass immer wieder neue, fehlerbelastete Software auf den Markt kommt anstatt dass alte Software weiterentwickelt und verbessert wird.[1]

Einige massive Probleme und Fehler könnten heute einfach vermieden werden, wenn statt den sehr systemnahen Sprachen, die eine direkte Adressierung von Speicherbereichen zulassen, Programmiersprachen wie zum Beispiel Modula-2, Eiffel, Oberon oder Component Pascal, in den jeweils entsprechenden Versionen, verwendet würden; nachweislich können Betriebssysteme und Treiber damit ebenfalls sehr effizient geschrieben werden.

Ausnutzung von Sicherheitslücken

Diese Programmfehler ermöglichen es unter Umständen einem Angreifer zum Beispiel mit einem Exploit in ein Computersystem einzudringen und dort Programme auszuführen, die schaden können. Einer der häufigsten Fehler, der zum Eindringen in Computersysteme benutzt wird, ist der Pufferüberlauf. Mangelnde oder überhaupt fehlende Überprüfung der kopierten Datenmenge führt zum Überschreiben anderer Programmteile, was von Angreifern gezielt zum Verändern des Programms oder Einbringen fremder Programmteile benutzt wird.

Umgang mit Sicherheitslücken

In so genannten Closed-Source-Anwendungen ist es die Aufgabe des Herstellers des Programms, die Sicherheitslücke durch einen Patch oder die Bereitstellung einer neuen, fehlerbereinigten Version zu beheben. Die Bereinigung ist nicht zwingend und kann unterbleiben, wenn z.B. der Supportzyklus für das Produkt abgelaufen ist oder der Hersteller die Sicherheitslücke nicht als solche anerkennt und keinen Handlungsbedarf sieht.

Bei Open Source und freier Software sind es oftmals mehrere Entwickler (meist diejenigen, die schon länger an dieser Software beteiligt sind), verstreut auf der ganzen Welt, die einen Patch dafür schreiben, sobald der Fehler entdeckt und veröffentlicht wurde. Gerade bei großen Open-Source-Projekten, wie z.B. Linux gibt es meist kurz nach der Entdeckung der Lücke Patches, um diese zu beheben.

Beispiele

Beispiele finden sich in der Kategorie:Sicherheitslücke.

Einzelnachweise

  1. http://www.sigsoft.org/SEN/parnas.html

Weblinks

Sicherheitslücken werden unter anderem publiziert auf:

Erklärungen:


Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Sicherheitslücke — Das Wort Sicherheitslücke (eine Zusammensetzung aus „Sicherheit“ und „Lücke“) steht für: allgemein eine Lücke bei sicherheitskritischen Systemen, siehe auch Sperrgebiet speziell in der Informatik ein Programmfehler in Software Produkten, siehe… …   Deutsch Wikipedia

  • Software Firewall — Eine (auch: ein) Personal Firewall oder Desktop Firewall (von englisch firewall Brandschutzwand, „Brandmauer“) ist eine Software, die den ein und ausgehenden Datenverkehr eines PCs auf dem Rechner selbst filtert. Sie wird zum Schutz des Computers …   Deutsch Wikipedia

  • Software-Update — Eine Aktualisierung, teils auch als Nachführung, Evidenthaltung oder Update bezeichnet, beschreibt den Vorgang, etwas bereits Vorhandenes auf einen neueren Stand zu bringen. Eine Aktualisierung kann also nur durchgeführt werden, wenn bereits eine …   Deutsch Wikipedia

  • Software-Updates — Eine Aktualisierung, teils auch als Nachführung, Evidenthaltung oder Update bezeichnet, beschreibt den Vorgang, etwas bereits Vorhandenes auf einen neueren Stand zu bringen. Eine Aktualisierung kann also nur durchgeführt werden, wenn bereits eine …   Deutsch Wikipedia

  • Siri (Software) — Siri Entwickler Apple Inc. Betriebssystem ab iOS 5 Kategorie Spracherkennung Lizenz …   Deutsch Wikipedia

  • Chrome (Software) — Google Chrome Startseite der englischsprachigen Wikipedia unter Google Chrome Beta …   Deutsch Wikipedia

  • Sicherheitstest (Software) — Sicherheitstests sind Softwaretests, welche die Sicherheit einer Software testen. Sie stellen eine Möglichkeit zur Erhöhung der Informationssicherheit dar. Die Tests können beginnen, sobald die erste Zeile Quelltext geschrieben wurde, damit… …   Deutsch Wikipedia

  • Schwachstelle — Die Wörter Schwachstelle und Schwachpunkt (Zusammensetzung von „schwach“ und „Stelle“ oder „Punkt“) stehen für: eine verwundbare Stelle bei Lebewesen, siehe auch Achillesferse eine geschwächte Stelle in einem Material, siehe Materialermüdung eine …   Deutsch Wikipedia

  • Bot-Netz — Ablauf der Entstehung und Verwendung von Botnetzen Ein Botnet oder Botnetz ist eine Gruppe von Software Bots. Die Bots laufen auf vernetzten Rechnern, deren Netzwerkanbindung sowie lokale Ressourcen und Daten ihnen zur Verfügung stehen. Betreiber …   Deutsch Wikipedia

  • Botnets — Ablauf der Entstehung und Verwendung von Botnetzen Ein Botnet oder Botnetz ist eine Gruppe von Software Bots. Die Bots laufen auf vernetzten Rechnern, deren Netzwerkanbindung sowie lokale Ressourcen und Daten ihnen zur Verfügung stehen. Betreiber …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”