Darwin Nuke

Andrey Khudyakov, Maxim Zhuravlev, Andrey Rubin

Im Dezember 2014 entdeckten wir eine sehr interessante Sicherheitslücke im Darwin-Kernel – ein wichtiger Open-Source-Bestandteil der zwei Betriebssysteme von Apple: OS X und iOS. Das bedeutet, dass auch OS X 10.10 und iOS 8 angreifbar sind. Diese Sicherheitslücke hat mit der Verarbeitung eines IP-Pakets zu tun, das eine bestimmte Größe und ungültige IP-Optionen hat. Die Folge ist, dass entfernte Angreifer eine Dienstblockade, DoS, auf einem Gerät hervorrufen können, auf dem OS X 10.10 oder iOS 8 installiert ist. Angreifer müssen dem Opfer also nur ein inkorrektes Netzwerkpaket schicken, um dessen System abstürzen zu lassen.

OS X 10.10 Absturz nach der Verarbeitung eines ungültigen Netzwerkpakets

Während der Analyse dieser Sicherheitslücke entdeckten wir, dass die Geräte mit 64-Bit-Prozessoren sowie die folgenden iOS 8-Geräte von dieser Bedrohung betroffen sind:

  • iPhone 5s und spätere Modelle
  • iPad Air und spätere Modelle
  • iPad mini 2 und spätere Modelle

Um die Natur dieses Bugs zu verstehen, werfen wir einmal einen Blick auf den Speicherauszug zum Zeitpunkt des Absturzes:

Kernel-Stacktrace

Man sieht auf diesem Auszug, dass in der Funktion icmp_error() etwas falsch gelaufen ist. Sie ruft die panic function auf. Diese Funktion versucht, eine neue ICMP-Fehlermeldung zu konstruieren und sie erneut zu senden. Der Screenshot zeigt, dass der icmp_error nach dem Parsen der Paketoptionen aufgerufen wurde. Das Problem liegt in diesem Teil des Codes:

Die Ursache des Problems

Wenn die im Code festgelegten Bedingungen erfüllt werden, wird die panic function aktiviert und das System wird in den Notbetrieb heruntergefahren. Das passiert, weil die internen Kernelstrukturen geändert wurden und die neue Puffergröße zu gering ist, um ein neu generiertes ICM-Paket zu speichern. Um das zu erreichen, müssen die folgenden Kriterien erfüllt werden:

  • Die Größe des IP-Headers sollte 60 Bytes betragen.
  • Die Größe der IP-Payload sollte mindestens 65 Bytes betragen.
  • Es sollte Fehler in den IP-Optionen geben (ungültige Größe einer Option, Klasse etc.)

Beispiel für ein Paket, das einen Absturz verursacht

Auf den ersten Blick wird nicht klar, wie dieser Bug effektiv ausgenutzt werden kann. Doch ein echter Profi kann mit Hilfe dieser Sicherheitslücke problemlos ein Anwendergerät außer Gefecht setzen oder sogar die Arbeit eines Unternehmensnetzwerks zum Erliegen bringen.

Normalerweise wird diese Art von inkorrekten Paketen von Routern und Firewalls ausgelassen, doch wir entdeckten verschiedene Kombinationen von inkorrekten IP-Optionen, die die Internet-Router durchlaufen können.

Diese Sicherheitslücke ist in OS X 10.10.3 und iOS 8.3 nicht mehr vorhanden. Nutzer von Kaspersky Lab-Produkten sind zudem auch in der Version OS X 10.10 durch das Feature Network Attack Blocker vor dieser Sicherheitslücke geschützt. Beginnend mit Kaspersky Internet Security für Mac 15.0, wird diese Bedrohung als DoS.OSX.Yosemite.ICMP.Error.exploit detektiert.

Ähnliche Beiträge

Schreibe einen Kommentar

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