Sicherheitslücke
aus Wikipedia, der freien Enzyklopädie
Eine Sicherheitslücke ist ein Fehler in einer Software, durch den ein schädliches Programm oder ein Hacker in den Rechner eindringen kann.
Inhaltsverzeichnis |
[Bearbeiten] Entstehung von Sicherheitslücken
Eine Sicherheitslücke entsteht durch Programmfehler. Da umfangreiche Programme aus sehr vielen Zeilen Code bestehen, ist es meist sehr schwer, wenn nicht sogar unmöglich, ein solches Programm fehlerfrei zu erstellen.
Grob geschätzt kann man sagen, dass ein Programmierer pro 1.000 Programmzeilen einen Fehler erzeugt; bei 1.000.000 Zeilen sind also etwa 1.000 Fehler zu erwarten. Falls beim Alpha- und Beta-Prozess nicht alle Fehler gefunden werden, davon ist auszugehen, wird ein fehlerhaftes Produkt vertrieben.
Viele Fehler werden jedoch nie entdeckt, da der Fehlergehalt gering ist oder die Auswirkung erst bei längerer Laufzeit des Programms Schaden erzeugen würde. In hoch komplexen 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 ja jede Behebung wiederum Quelle neuer Fehler, die man noch nicht kennt, 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 werden die in Hinblick auf z.B. Performance optimiert sind wie z.B. C oder Assembler und einem Programmierer alle Möglichkeiten auch für Fehler eröffnen. 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.
Einige massive Probleme und Fehler könnten heute einfach verhindert werden wenn statt dessen Programmiersprachen wie z.B. Modula-2, Eiffel, Oberon oder Pascal, in den jeweils entsprechenden Versionen, verwendet würden. Dass Betriebssysteme und Treiber damit ebenfalls sehr effizient geschrieben werden können, ist schon seit spätestens Anfang der achtziger Jahre nachgewiesen worden.
[Bearbeiten] Ausnutzung von Sicherheitslücken
Diese Programmfehler ermöglichen es unter Umständen einem Angreifer zum Beispiel 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.
[Bearbeiten] Umgang mit Sicherheitslücken
In so genannten Closed-Source-Anwendungen ist es eigentlich die Aufgabe der Hersteller des Programms, den notwendigen Patch zu erstellen (da in der Regel nur sie Zugriff auf den Quelltext des betroffenen Programms haben), was jedoch nicht immer geschieht, bspw. wenn der Supportzyklus für das Produkt abgelaufen ist oder der Hersteller die Sicherheitslücke nicht als solche anerkennt und keinen Handlungsbedarf sieht. Unter Umständen finden sich aber unabhängige Programmierer, die die Sicherheitslücke beheben, oder Workarounds dafür bereitstellen.
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.
[Bearbeiten] Weblinks
Sicherheitslücken werden publiziert auf:
- Bugtraq (Archiv; englisch)
- scip AG (Archiv; deutsch)
- Heise Security
- Computec.ch von Marc Ruef
- MajorSecurity; Wikipedia-Eintrag zu MajorSecurity
- French Security Research Team (Archiv; englisch)
- Secunia Research (Archiv; englisch)
Erklärungen:
- Artikel "Risikoformel für Sicherheitslücken gefunden" von Roland Kissling
- Beschreibung von Felix Müller-Sarnowski und Martin Obermeier
- SMSSEND
[Bearbeiten] Beispiele
Beispiele finden sich in der Kategorie: Sicherheitslücke