Lücken im Kernel: So brechen Hacker in jeden Rechner ein

Auf der Black Hat 2010 zeigten zwei Forscher von Google, wie sie die Kernel-Security von Windows und Linux aushebeln können. Unter Windows nutzten sie Helfer, die einen Einbruch erst ermöglichen: Antivirenprogramme und Firewalls.

Ende Juli zogen die Google-Sicherheitsforscher Tavis „Taviso“ Ormandy und Julien Tinnes auf der Black-Hat-Konferenz in Las Vegas Bilanz zum Thema Kernel-Hacking. Ihr Fazit spiegelt sich bereits im Titel des Vortrags wieder: „There’s a party at Ring0 and you’re invited“ (deutsch: Im Ring 0 ist eine Party und Ihr seid eingeladen).

Unter "Ring 0" versteht man in der x86-Architektur die höchste Privilegienstufe, die alle Befehle ausführen kann und Zugriff auf den gesamten Speicher hat, da sich im Ring 0 alle Speichertabellen verändern lassen. Im Ring 0 laufen normalerweise die Kernel der Betriebssysteme, während Benutzerprozesse im Ring 3 ausgeführt werden, der zahlreiche Befehle verbietet, etwa Zugang zum Hauptspeicher anderer Prozesse oder Hardware-I/O.

Ormandy ist bekannt dafür, bei Sicherheitslücken kein Blatt vor den Mund zu nehmen. Im Juni löste er einen heftigen, bis heute andauernden Streit zwischen Google und Microsoft darüber aus, wie mit entdeckten, aber bislang ungepatchten Sicherheitslücken umzugehen ist.

Microsoft erwartet, dass sich Sicherheitsforscher mit dem Hersteller in Verbindung setzen und keine Informationen an die Öffentlichkeit geben, da ansonsten Cyberkriminelle damit beginnen, die Lücke aktiv auszunutzen. Google will eine Obergrenze von 60 Tagen festsetzen, damit der Druck auf den Hersteller erhöht wird. Nach Ablauf der Frist will Google Details jeder entdeckten Lücke veröffentlichen.

Ormandy hatte 2009 eine Lücke in der Windows-Funktion "Hilfe und Support" entdeckt und an Microsoft gemeldet. In Redmond schien sich jedoch niemand darum zu kümmern. Da nach über einem Jahr im Juni 2010 noch kein Patch vorlag, veröffentlichte er die Details der Lücke in der Mailingliste "Full Disclosure".

Ähnlich gingen Ormandy und Tinnes auf ihrem Black-Hat-Vortrag vor. Sie zeigten zahlreiche Möglichkeiten auf, wie sich nahezu jedermann Zugang zum Kernel eines Betriebssystems verschaffen kann – sowohl bei Windows als auch bei Linux.

Grundsätzlich unterscheiden die beiden Forscher lokale und Netzwerkangriffe. Ein lokaler Angriff setzt voraus, dass ein Benutzer einen Shell-Zugang zu einem Rechner hat, ohne dabei einen privilegierten Account wie root (Unix) oder Administrator (Windows) zu besitzen. Wer ein Superuser-Konto mit Shell-Zugang besitzt, kann ohnehin Kernelmode-Code ausführen.

Die Bezeichnung „lokaler Angriff“ ist allerdings nicht ganz korrekt. Der Shell-Zugang kann natürlich auch remote erfolgen, etwa per SSH, Remote Desktop oder VNC.

Ein Netzwerk-Angriff, der Zugang zum Kernel eines Rechners verschafft, ist wesentlich gefährlicher. Wenn eine Lücke einen Netzwerkangriff erlaubt, kann sich eventuell jeder einen Zugang zum Kernel eines Rechners verschaffen, der als öffentlicher Webserver fungiert.

Themenseiten: Betriebssystem, Google, Hacker, Linux, Open Source, Security-Analysen, Windows

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

7 Kommentare zu Lücken im Kernel: So brechen Hacker in jeden Rechner ein

Kommentar hinzufügen
  • Am 5. August 2010 um 21:44 von User

    Darwin
    Schöner Beitrag. Aber weis jemand, wie das im Darwin Kernel von OS X aussieht? Ist da eine ähnliche Technik verbaut?

    • Am 20. August 2010 um 10:52 von Jo

      AW: Darwin
      mac ist unix/linux

      • Am 20. August 2010 um 12:05 von Christoph H. Hochstätter

        AW: AW: Darwin
        Unix ja! Linux Nein!

        Darwin ist ein Unix-Kernel basierend auf BSD und MACH. Hat mit dem Linux-Kernel nichts zu tun.

        Die Google-Forscher haben Mac OS X weitgehend außer Acht gelassen, da Mac OS kaum in öffentlichen Webservern eingesetzt wird.

        Die Sicherheitsabteilung von Google interessiert sich verständlicherweise in erster Linie dafür, ob und wie jemand aus dem Internet auf ihre Server einrechen kann.

  • Am 6. August 2010 um 12:43 von nonanet

    Und nu?
    Alle Rechner abschalten oder was?

  • Am 9. August 2010 um 22:59 von DM

    Mehr Ausführlichkeit zur Übernahme aus einem virtuellen Server heraus gewünscht
    Wenn ich den Artikel richtig verstanden habe kann man also auch nur mit Zugang auf virtuelle Maschinen aus dieser „ausbrechen“ und den ganzen Server übernehmen? Ich dachte immer virtuelle Maschinen sollen sicher sein bisher. Ich kenne mich leider nicht genügend mit der Materie aus, aber es wäre ein sehr schöner weiterer Artikelvorschlag das zu erläutern. Aus den wenigen Sätzen wird mir nicht ganz klar wo genau Zugriff auf’s virtuelle und „echte“ System gemeint ist.

    • Am 20. August 2010 um 12:15 von Christoph H. Hochstätter

      AW: Mehr Ausführlichkeit zur Übernahme aus einem virtuellen Server heraus gewünscht
      Ein Einbruch in andere virtuelle Maschinen durch Kernel-Lücken ist möglich bei Containervirtualisierung (Virtuozzo, openVZ, lxc), nicht aber bei Vollvirtualisierung (VMware, Hyper-V, VirtualBox, kvm, etc.).

      Bei Vollvirtualisierung ist ein Einbruch möglich durch Fehler im Hypervisor. Der Hypervisor ist aber wegen der geringeren Angriffsfläche besser geschützt.

  • Am 8. Juni 2011 um 21:01 von Bachsau

    Absurder Gedanke
    Trotz aller Sicherheitsbedenken finde ich die Idee, den Kernel gegen sich selbst abzusichern eine recht absurde Idee. Man kann sich nicht selbst gleichzeitig etwas ermöglichen und verbieten.

    Man kann Menschen daran hindern, in einen Knast reinzukommen, oder aus ihm auszubrechen. Das hindert Gefangene aber nicht daran, sich gegenseitig auf die Schnauze zu hauen. Irgendwo ist immer ein totes Ende. Kommt drauf an, wie weit man gehen will mit der Sicherheit.

    > sollte man Microsofts Sicherheitsfestung Forefront einsetzen.
    Auch nicht schlecht. Wir verdienen Geld, indem wir Schutz für die Unzulänglichkeiten des eigenen Produks anbieten…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *