Sicherheitsforscher entdeckten eine Sicherheitslücke in der zentralen Bibliothek glibc, die sich übers Netz ausnutzen lässt. Mittels speziell präparierter DNS-Pakete kann ein Angreifer Linux-Systeme kapern. Aktualisierte glibc-Versionen sind unterwegs.
Die Sicherheitslücke mit dem Bezeichner CVE-2015-7547 hat es wirklich in sich: Ein Angreifer kann damit übers Netz das System übernehmen. Und: nahezu alle Linux-Versionen sind betroffen.
Dank eines Fehler in der weit verbreiteten System-Bibliothek glibc genügen zwei speziell präparierte DNS-Pakete, um Server, Desktops oder andere Geräte zu kapern. Entdeckt wurde der Fehler offenbar unabhängig von mehreren Sicherheitsforschern bei Google und Red Hat; aktualisierte glibc-Pakete stehen zum Update bereit und sollten so schnell wie möglich eingespielt werden.
Kaperangriff
Der Fehler liegt in der System-Funktion getaddrinfo(), die für das Auflösen von Netzwerknamen via DNS zuständig ist. Ein Google-Techniker hatte seltsame Abstürze seines SSH-Clients registriert, wenn er versuchte, sich zu einem bestimmten Host zu verbinden. Wie sich herausstellte, lag der Fehler nicht im SSH-Programm; auch andere Programme wie curl oder sudo können den Fehler auslösen. Prinzipiell kommt jedes Programm in Frage, das DNS-Namen auflöst.
Durch spezielle Umstände können die DNS-Antworten einen Pufferüberlauf auf dem Stack erzeugen, der sich ausnutzen lässt, um fremden Code einzuschleusen und dann auch auszuführen. Zwar müssen dazu noch systemeigene Schutzmechanismen wie ASLR umgangen werden. Doch zumindest den Sicherheitsexperten von Google ist das offenbar gelungen: Sie berichten von einem erfolgreichen Exploit mit Remote Code Execution. Der zu Demonstrationszwecken veröffentlichte Proof-of-Concept-Exploit hingegen verursacht lediglich einen Programmabsturz.
DNS-Anfragen
Ein Angreifer, der die Lücke ausnutzen will, muss DNS-Anfragen mit speziellen DNS-Paketen beantworten. Das heißt jedoch nicht unbedingt, dass er einen eigenen DNS-Server betreiben und warten muss, dass sein Opfer von diesem etwas wissen will. Es ist ebenso möglich, als Man-in-the-Middle ganz reguläre DNS-Antworten zu manipulieren.
Offenbar arbeiten die glibc-Entwickler bereits seit Juli 2015 an dem Problem; erst jetzt stehen Updates bereits, die es schließen. Wie auch bei der GHOST-Lücke, die die verwandte Systemfunktion gethostbyname() betraf, war den Entwicklern anscheinend die Relevanz und Dringlichkeit des Problems längere Zeit nicht so recht bewusst.
Schutz
Carlos O'Donell von Red Hat beschreibt zwar Schutzmaßnahmen, die man vorbeugend ergreifen kann. Doch diese laufen letztlich auf spezielle Filter für DNS-Pakete hinaus, was nicht einfach konsequent umzusetzen ist. Besser ist es deshalb, möglichst schnell die Updates einzuspielen. Denn diverse Teams arbeiten bereits fieberhaft an eigenen, scharfen Exploits.
Die Linux-Distributoren dürften sehr schnell aktualisierte Pakete bereitstellen, die man einfach über die Paketverwaltung einspielen kann. Richtig kritisch dürfte das Problem jedoch angesichts der vielen Geräte und Dinge sein, die zwar durch Linux so etwas mit Intelligenz bekommen und mit dem Internet sprechen – aber kaum jemals ein Sicherheits-Update erhalten.
Update 17.2. 17:00: Die ursprüngliche Version
enthielt einen allgemeineren Verweis auf Unix-Systeme, die jedoch
abseits von Linux in der Regel keine glibc einsetzen. Android setzt auf
Bionic und ist ebenfalls nicht betroffen.
(ju@ct.de)