Login
Newsletter
Werbung

Mi, 19. April 2006, 14:58

Software::Kernel

»Plattformunabhängiger« Virus deckt Kernel-Problem auf

In Version 2.6.16 hat sich ein Fehler eingeschlichen, mit dem aber offenbar nur veralteter handgeschriebener Assemblercode ein Problem hat.

In einer vielbeachteten Meldung hatte der Hersteller von Antivirus-Produkten Kaspersky Lab einen Virus vorgestellt, der sich sowohl unter Windows als auch unter Linux verbreiten kann. Pro-Linux berichtete nicht darüber, da sich schnell herausstellte, dass es sich um ein bereits seit fünf Jahren bekanntes Konzept handelt. Nun wurde jedoch festgestellt, dass der Virus sich unter manchen Kernel-Versionen, besonders 2.6.16, nicht vermehren kann, während er unter anderen wie erwartet »funktioniert«.

Linus Torvalds selbst, der Schöpfer des Linux-Kernels, nahm sich daher den Virus vor, nachdem andere, besonders Hans-Werner Hilse, den Code bereits analysiert hatten. Hilse hatte festgestellt, dass das CPU-Register ebx nach einem Aufruf von ftruncate mit dem Wert 1 überschrieben wurde. Torvalds kam nach kurzer Analyse zu dem Schluss, dass es sich um einen Fehler im Kernel handelt, der jedoch für die meisten Programme folgenlos bleibt.

Der Fehler liegt eigentlich im GNU-C-Compiler GCC, der unter speziellen Bedingungen fehlerhaften Code generiert. Den Kernel-Entwicklern war dies bekannt und es wurden entsprechende Vorkehrungen getroffen, jedoch wurde der Systemaufruf ftruncate dabei übersehen.

Bis zu Kernel 2.6.15 funktionierte dennoch alles, wie es sollte, jedoch wurde in Kernel 2.6.16 ein Compiler-Argument geändert, was den Fehler erst auslöste. Er wurde in der Testphase nicht bemerkt, da normale Anwendungen nicht betroffen sind. Die meisten Programme verwenden die Bibliothek glibc für solche Systemaufrufe, und glibc sichert die Werte des Registers ebx und anderer sowieso. Der Virus dagegen besteht aus handgeschriebenem Assemblercode und sichert das Register nicht. Zudem benutzt er einen obsoleten Mechanismus für den Systemaufruf.

Linus Torvalds erstellte einen kleinen Patch, der das Problem behebt und dem wenig aussichtsreichen Virus nun ermöglicht, auch unter Kernel 2.6.16 zu funktionieren. Für Joe Barr, Autor bei Newsforge, ist die ganze Episode äußerst blamabel für Kaspersky Lab, das versucht habe, mit uraltem Code die Furcht vor Viren zu schüren.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung