Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Sicherheitslücke

Eine Sicherheitslücke oder Schwachstelle ist im Gebiet der Informationssicherheit ein Fehler in einer Software oder einer Hardware, durch den ein Programm …

Inhalt5 Abschnitte
  1. 1. Begriff und Bedeutung
  2. 2. Wie Sicherheitslücken entstehen
  3. 3. Ausnutzung durch Angreifer
  4. 4. Zero Day und Behebung
  5. 5. Bekannte Fälle

Begriff und Bedeutung

Eine Sicherheitslücke oder Schwachstelle ist in der Informationssicherheit ein Fehler in einer Software oder Hardware. Dadurch kann ein Schadprogramm, ein sogenannter Exploit, oder ein Angreifer in ein Computersystem eindringen. Eine Sicherheitslücke stellt deshalb eine Bedrohung dar: Wird sie ausgenutzt, kann das betroffene System kompromittiert werden.

Sicherheitslücken werden unter anderem nach ihrem Schweregrad mit dem Common Vulnerability Scoring System (CVSS) bewertet. In Datenbanken wie Common Vulnerabilities and Exposures (CVE) werden sie erfasst. Im Mai 2026 waren in der CVE-Datenbank mehr als 332.000 Sicherheitslücken registriert.

Wie Sicherheitslücken entstehen

Sicherheitslücken können durch unzureichenden Schutz vor Angriffen aus dem Netz entstehen, etwa wenn eine Firewall oder andere Sicherheitssoftware fehlt. Häufig sind sie auch die Folge von Programmierfehlern im Betriebssystem, Webbrowser oder in anderen Anwendungen.

Fehler können bereits im Entwicklungsprozess entstehen, wenn Sicherheitsaspekte bei Planung, Konzeption und Entwicklung vernachlässigt oder Sicherheitsvorgaben nicht ausreichend als Qualitätsziele berücksichtigt werden. Auch die hohe Komplexität von Softwaresystemen führt zu Fehlern. Grobe Schätzungen gehen davon aus, dass ein Programmierer pro 1000 Programmzeilen einen Fehler erzeugt. Das entspricht einer Fehlerhäufigkeit von einem Promille. Bei 1.000.000 Zeilen wären demnach etwa 1000 Fehler zu erwarten. Werden beim Alpha- und Beta-Prozess nicht alle Fehler entdeckt, kann ein fehlerhaftes Produkt ausgeliefert werden.

Viele Fehler bleiben unentdeckt, weil ihr Fehlergehalt gering ist oder ihre Auswirkungen erst nach längerer Laufzeit auftreten. In hochkomplexen Programmen werden einfache Fehler nach ihrer Entdeckung teilweise zunächst dokumentiert und erst später behoben. Änderungen am Programmcode verursachen Kosten und können selbst neue Fehler hervorbringen. Einige Fehler führen jedoch zu schwerwiegenden Sicherheitslücken, ohne dass das Programm sofort vollständig abstürzt.

Besonders anfällig können Programme sein, die mit systemnahen Programmiersprachen wie C oder Assembler entwickelt wurden. Diese Sprachen dienen der hohen Leistung, erlauben aber beispielsweise eine direkte Speicheradressierung und sind durch ihr Programmiermodell anfällig für Fehler bei der Zeigerarithmetik. Die weite Verbreitung solcher Sprachen, hoher Zeit- und Kostendruck sowie ein wenig sensibler Umgang mit sicherer Software begünstigen, dass Sicherheitslücken eher die Regel als die Ausnahme sind.

Ein weiteres Problem sind Anwendungsprogramme, die Hardwarehersteller ihren Produkten aus Marketinggründen beilegen. Sie werden häufig kostengünstig entwickelt und können deshalb viele Programmfehler und Sicherheitslücken enthalten. Hardwarehersteller sind oft nicht auf Anwendungssoftware spezialisiert und vergeben Entwicklungsaufträge an Fremdfirmen. Dadurch kann die Produktqualität schwieriger überprüft werden; auch die beauftragten Firmen sind möglicherweise nicht auf die jeweilige Software spezialisiert. So gelangt immer wieder neue, fehlerbelastete Software auf den Markt, anstatt ältere Software weiterzuentwickeln und zu verbessern.

Einige Fehler könnten vermieden werden, wenn statt sehr systemnaher Sprachen Programmiersprachen wie Rust verwendet würden. Entwickler des Betriebssystems Linux erwogen, Rust für einzelne Kernel-Module einzusetzen. Microsoft plante Projekte zum Umschreiben von Low-Level-Komponenten von Windows, die ursprünglich in C und C++ geschrieben waren. AMD suchte Mitarbeiter, die neue Radeon-Treiber in Rust schreiben sollten.

Ausnutzung durch Angreifer

Ein Angreifer kann Programmfehler unter Umständen mit einem Exploit ausnutzen, um in ein Computersystem einzudringen und dort schädliche Programme auszuführen. Eine der häufigsten für solche Angriffe verwendeten Fehlerarten ist der Pufferüberlauf.

Bei einem Pufferüberlauf wird eine kopierte Datenmenge nicht oder nicht ausreichend überprüft. Dadurch können andere Programmteile überschrieben werden. Angreifer können dies gezielt nutzen, um ein Programm zu verändern oder fremde Programmteile einzuschleusen.

Auch Hardwarefehler können ausgenutzt werden. Ihre Ausnutzung lässt sich manchmal durch Anpassungen der darauf laufenden Software verhindern oder erschweren. Bei Designfehlern von Hardware kommen entweder Patches für den Mikrocode des Prozessors, sogenannte Workarounds in der laufenden Software oder eine Kombination aus beidem zum Einsatz. Nach der 2018 veröffentlichten Entdeckung der Sicherheitslücken Meltdown und Spectre mussten Betriebssysteme und verschiedene Anwendungsprogramme umfassend angepasst werden. Vollständig beseitigen ließ sich der Fehler jedoch nicht ohne eine veränderte Funktionsweise des Prozessors, unter anderem durch angepassten Mikrocode. Bei älteren Prozessoren ohne weitere Firmware-Aktualisierungen kann die Ausnutzung daher nicht verhindert werden.

Zero Day und Behebung

Als Zero Day oder 0day wird eine Sicherheitslücke bezeichnet, für die noch kein Patch des Herstellers der betroffenen Komponente verfügbar ist. Ein Patch ist eine Korrektur, die eine Sicherheitslücke beheben oder ihre Ausnutzung erschweren soll.

Bei Closed-Source-Anwendungen, deren Quellcode nicht allgemein zugänglich ist, liegt die Behebung grundsätzlich beim Hersteller. Er kann einen Patch oder eine neue, fehlerbereinigte Version bereitstellen. Die Bereinigung ist jedoch nicht zwingend: Sie kann ausbleiben, wenn der Supportzyklus des Produkts beendet ist oder der Hersteller die Lücke nicht als solche anerkennt und keinen Handlungsbedarf sieht.

Bei Open Source und freier Software schreiben häufig mehrere Entwickler einen Patch, sobald der Fehler entdeckt und veröffentlicht wurde. Diese Entwickler arbeiten oft verteilt auf der ganzen Welt und sind vielfach schon länger an dem Projekt beteiligt. Bei großen Open-Source-Projekten wie Linux erscheinen meist kurz nach der Entdeckung einer Sicherheitslücke entsprechende Korrekturen.

Bekannte Fälle

Zu den im Artikel genannten Sicherheitslücken mit großer Bekanntheit gehören:

  • Heartbleed in OpenSSL aus dem Jahr 2014
  • Shellshock in Bash aus dem Jahr 2014
  • Stagefright in Android aus dem Jahr 2015
  • EternalBlue in Windows aus dem Jahr 2017
  • BlueKeep in Windows aus dem Jahr 2019

Weiterlesen

Informationssicherheit Informationssicherheit ist ein Zustand von technischen oder nicht-technischen Systemen zur Informationsverarbeitung und -speicherung, der die Schutzziele … Exploit SQL-Injection-Exploits. Bearbeiten · SQL-Injection-Exploits sind eine spezielle Art von Exploits und finden hauptsächlich Einsatz bei Webanwendungen, die eine … Computer Ein Computer (englisch; deutsche Aussprache [kɔmˈpjuːtɐ]) oder Rechner ist ein Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. Risiko Risiko weist je nach Fachgebiet einen unterschiedlichen Begriffsinhalt auf, allgemein wird hierunter die Möglichkeit des Eintritts künftiger Ereignisse, … Sicherheit Die kollektive Sicherheit bedeutet in Konfliktsituationen, dass man gemeinsam Maßnahmen entwickelt, um die Sicherheit für sämtliche Vertragspartner zu … Rechnernetz Ein Rechnernetz, Computernetz oder Computernetzwerk ist ein Zusammenschluss verschiedener technischer, primär selbstständiger elektronischer Systeme … Firewall Eine Firewall (von englisch firewall [ˈfaɪəwɔːl] ‚Brandwand' oder ‚Brandmauer') ist ein Sicherungssystem, das ein Rechnernetz oder einen einzelnen Computer vor … Betriebssystem Betriebssysteme bestehen in der Regel aus einem Kernel (deutsch: Kern), der die Hardware des Computers verwaltet, sowie speziellen Programmen, die beim Start … Webbrowser Webbrowser oder allgemein auch Browser ([ˈbɹaʊ̯zə(ɹ)], zu englisch to browse ‚stöbern') sind Computerprogramme zur Darstellung von Webseiten im World Wide … Software Software ist ein Programm oder eine Menge von Programmen, die dazu dienen, einen Computer zu betreiben. · Software sind Programme sowie die zugehörige … Promille Ein Promille (zusammengesetzt aus lateinisch pro ‚im Verhältnis zu' und lateinisch mille ‚tausend') oder Tausendstel steht für die gebrochene Zahl 0,001. Programmiersprache Bei deklarativen Programmiersprachen ist der Ausführungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert/beschrieben, sondern es …