Sie sind Hier:
Startseite
Betriebssysteme
Linux/Unix
Viren
Unix- und Linux-Viren: die unbekannte
Bedrohung im Netz:
Viren unter Linux/Unix
erfordern besondere Aufmerksamkeit. Denn über
die Schwachstellen von Unix und Linux wissen
viele Administratoren wenig, und es gibt noch
kaum Schutzsoftware.
Vor gar nicht
allzu langer Zeit gingen viele Administratoren
davon aus, dass Linux oder andere Unix-basierte
Plattformen geradezu immun gegen Viren und Würmer
seien.
Mit der Nachricht
über die Infizierung von Linux-Plattformen mit
dem Klez-Virus erinnerten führende Anbieter
von Antiviren-Programmen daran, dass Microsoft
nicht das einzige anfällige Betriebssystem für
Virenangriffe sei. Zwar sind die Anwender von
Linux und anderen bekannten Unix-Plattformen
nicht gerade passionierte Anwender der Software-Pakete
von Microsoft, welche die Viren übertragen.
Doch haben auch Linux und Unix ihre Schwachstellen,
selbst wenn diese auf den ersten Blick verborgen
bleiben.
Neben dem Klez-Virus
wurden Linux-/Unix-Plattformen auch von anderen
Attacken heimgesucht, unter anderem vom Lion-Wurm
und den Viren OSF.8759, Slapper, Scalper, Linux.Svat
und BoxPoison.
Zum Beispiel
vor zwei Jahren bei einer Sicherheitsrevision
eines der größten europäischen Finanzunternehmen:
Dort teilte ein bekannter Sicherheitsexperte
mit, dass das Unix-Betriebssystem gegenüber
Viren nicht anfällig sei. Die Zuhörer akzeptierten
diese Aussage und notierten, dass die Unix-Systeme
gegenüber Virenangriffen sicher seien. Diese
Zeiten sind vorbei: Heute kann man davon ausgehen,
dass Auditoren und IT-Sicherheitsexperten strengere
Anforderungen an den Virenschutz und die Erstellung
von diesbezüglichen Leitlinien für Unix-Plattformen
stellen.
Alexander Bartolich,
Student aus Österreich, hat sogar ein Handbuch
zur Erstellung des ELF-Virus für Linux verfasst.
Bartolich behauptet dabei nicht, ein Pionier
im Verfassen von Linux-Viren zu sein - er habe
lediglich die bereits dokumentierten Linux-Schwachstellen
für Viren-, Wurm- und Trojanerbefall anschaulicher
und verständlicher präsentiert. Derartige Enthüllungsschriften
im Internet führen nun zu einer Ausbreitung
von Unix-basierten Viren, vor allem wegen der
wachsenden Beliebtheit von Linux-Servern im
Business-Bereich. Systemadministratoren sollten
vielleicht selbst einen Blick in das Handbuch
werfen, um so Linux-Schwachstellen besser einschätzen
zu können.
Virenschreiber
stellen eine erhebliche Gefahr dar, da sie wissen,
wie man Codes verfasst, und sich nicht wie viele
Hacker mit dem harmloseren Angriff auf Websites
begnügen, der wesentlich weniger Kenntnisse
als das Schreiben von Viren erfordert. Eine
durch Hacker attackierte Internetseite kann
schnell wiederhergestellt werden, Viren operieren
dagegen im Verborgenen. Sie können sogar so
lange unerkannt bleiben, bis sie irreparable
Schäden an geschäftskritischen Systemen hervorgerufen
haben.
Nicht alle
Versionen dieser Plattformen waren bereits betroffen
- hier die bereits von Viren angegriffenen Linux-/Unix-Plattformen:
- Suse Linux
- Mandrake
Linux
- Red Hat
Linux
- Debian
GNU Linux
- Slackware
Linux
- Free BSD
- HP/UX
- IBM AIX
- SCO Unixware
- SCO OpenServer
- Sun Solaris
- Sun OS
Je mehr Linux-/Unix-Systeme
ein Unternehmen in seine LAN- und WAN-Netzwerke
integriert, desto größer ist die Angriffsfläche
für die sich schnell verbreitenden Unix-Viren.
Linux- und Unix-Systeme mit WINE sind dabei
besonders anfällig. WINE ist eine Open-Source-Software,
die Windows-Anwendungen unter Unix ausführbar
macht. Systeme mit WINE sind stark gefährdet,
da sie von Viren, Würmern und Trojanern sowohl
auf Unix- als auch auf Windows-Basis angegriffen
werden können.
Viele Linux-Anwender wissen zum Beispiel nicht,
dass die ersten Viren überhaupt auf einem Unix
System liefen und 1983 von Fred Cohen entwickelt
wurden. Es begann mit einfachen Shell-Skripten,
die zu reinen Demonstrationszwecken dienten.
Folgendes Beispiel kann man mit gutem Gewissen
geben, da es kein sehr mächtiger Virus ist,
der lediglich demonstriert, wie einfach man
in Shell-Skript einen solchen Schädling ins
Leben rufen kann:
#!/bin/sh #Dieser
Virus ist nur für Lehrzwecke gedacht ! #Das
Verbreiten von Viren ist strafbar! for file
in *.sh do head -n 7 $0 > $file done
Wie sieht
die Bedrohung aus?
Wie zu erwarten,
funktionieren Linux-/Unix-Viren anders als Viren
für Windows-Betriebssysteme. Dennoch arbeiten
die Viren, Würmer und Trojaner unter Unix nach
dem gleichen Prinzip wie die Codestrukturen,
die bei Windows zuschlagen.
Dabei muss
man bedenken, dass ein Virus nichts anderes
als ein Programm ist, das ohne Erlaubnis des
Anwenders andere Programme infiziert oder zerstört.
Ein Wurm ist hingegen ein sich selbst replizierender
Teilcode, der ohne Erlaubnis des Anwenders aktiv
wird. Auch Programmfehler können ohne Erlaubnis
einen selbst replizierenden Code erzeugen, allerdings
geschieht dies im Gegensatz zum Virus unbeabsichtigt.
Trojaner verbergen ihre Absichten, um elektronische
Schäden hervorzurufen. Unter Unix kann ein Trojaner
den Namen eines regulären Programms (zum Beispiel
tar oder df) annehmen, bei seiner Ausführung
wird dann jedoch ein ganzes Dateisystem gelöscht.
Funktionsweise
der Viren und Würmer
Zur Verdeutlichung
des potenziellen Zerstörungsausmaßes eines Virus,
Wurms oder Trojaners unter Unix werden im Folgenden
einige Szenarien zu deren Funktionsweisen aufgezeigt.
Natürlich hat jeder Virus, Wurm oder Trojaner
seine individuellen Eigenarten und Verhaltenweisen,
doch sollen die folgenden Beispiele aufzeigen,
wie sie sich tendenziell unter Linux/Unix verhalten.
Erstes Beispiel
ist der Linux-Slapper-Wurm, der den Apache-Server
befällt. Zuerst scannt er den HTTP Port 80 mittels
einer ungültigen GET-Anfrage, um die verwendete
Apache-Version zu ermitteln, so dass er sich
an das entsprechende Zielsystem anpassen kann.
Bei den so entdeckten verwundbaren Systemen
stellt der Wurm eine Verbindung über Port 443
her, um sich mithilfe der Pufferüberlauf-Schwachstelle
in dem Zielsystem einzunisten.
Anschließend
kompiliert der Wurm seinen eigenen Quellcode
mittels eines lokalen Compilers wie gcc. Die
so entstehende Binärdatei wird vom /tmp-Verzeichnis
ausgeführt und fragt einen UDP-Port ab, um weitere
Befehle für den Start verteilter Denial-of-Service
(DDoS)-Angriffe zu erhalten. DDoS-Angriffe erzeugen
TCP-Floods, die das System lahm legen können.
Einige Varianten von Slapper können ein ganzes
Netzwerk der Klasse B nach Schwachstellen der
Apache-Server scannen.
Ein anderer
Wurm, der Linux-Lion-Wurm, scannt über Port
53 wahllos Klasse-B-Netzwerke nach angreifbaren
Versionen des BIND, dem meistgenutzten DNS-Server
unter Linus/Unix. Wenn ein Kandidat für eine
Infektion gefunden ist, werden Log-Dateien gelöscht
und verschiedene Trojaner-Dateien installiert,
um die Existenz des Wurms zu verbergen. Lion
erstellt unter anderem folgende Trojaner-Dateien:
/bin/in.telnetd
/bin/mjy
/bin/ps
/bin/netstat
/bin/ls
/etc/inetd.conf
/sbin/ifconfig
/usr/bin/find
/usr/sbin/nscd
/usr/sbin/in.fingerd
/usr/bin/top
/usr/bin/du
Diese Dateien
sehen auf den ersten Blick wie normale Unix-Dateien
und Utilities aus, so dass zunächst keinerlei
Verdacht aufkommt - daher auch die Bezeichnung
Trojaner.
Um seine Spuren
zu verwischen, kann Lion in Linux folgende Dateien
löschen:
/.bash_history
/etc/hosts.deny
/root/.bash_history
/var/log/messages
/var/log/maillog
Bei befallenen
Systemen leitet Lion Passwortdateien an entfernte
Computer weiter beziehungsweise starten andere
Varianten des Wurms Passwort-Sniffer zur Ermittlung
der Kennwörter aus aktiven Verbindungen. Hacker
können dann über den entfernten Rechner auf
das System zugreifen, um DDoS-Angriffe zu starten,
Kreditkartennummern zu stehlen oder sonstige
vertrauliche Daten und Aufzeichnungen zu entwenden
oder zu löschen.
Es ist nicht
ganz klar, warum sie bei der Bewertung dieser
Risiken zu einem so selbstgefälligen Ergebnis
kamen - insbesondere wenn man bedenkt, dass
der erste bedeutende Wurm, der 1988 von Robert
Morris entwickelt wurde, von Unix-Systemen mit
dem bekannten Sendmail-Messaging-Programm freigesetzt
worden war. Vielleicht liegt es daran, dass
man angesichts der ganzen Kritik an der Sicherheit
der Betriebssysteme und Software von Microsoft,
die ja Hauptangriffsziele der Virenschreiber
sind, die bestehenden Schwachstellen unter Unix
aus den Augen verloren hat.
Unter
Linux kann man generell vier Virentypen unterscheiden:
Shell-Skript-, Perl-, Makro- und ELF-Viren.
Shell Skript Viren:
Wie in unserem Beispiel schon gezeigt, ist
ein Shell-Skript-Virus mit wenigen Zeilen Programmcode
realisierbar. Shell-Skripte sind vergleichbar
mit MS-DOS Batch Dateien oder dem Windows Scripting
Host, allerdings um einiges mächtiger und dadurch
auch anfälliger für Viren. Unter Linux werden
Shell-Skripte für eine Vielzahl von Aufgaben
verwendet, wie zum Beispiel zum Laden von Daemons
in den verschiedenen "Init Leveln" oder zum
Konfigurieren von Firewalls.
Batch Viren
oder WSH Scripte dagegen werden unter Windows
nur sehr selten gebraucht und trotzdem haben
Virenautoren für diese Dateien erstaunliche
Tricks entwickelt, die teilweise schon portiert
wurden. So existiert zum Beispiel ein "Virus
Creation Lab", ein Programm, mit dem selbt Einsteiger
Viren erstellen können. Auch sind polymorphe
Shell-Skript Viren, also Viren bei denen jede
Generation anders aussieht, nicht mehr unbekannt.
Fred Cohen ist der Ansicht, dass es für
jedes Betriebssystem möglich ist, einen Shell-Virus
innerhalb von 12 Minuten zu schreiben. Dies
alleine sagt aus, dass sich wohl viele Virenautoren
intensiv mit Shell-Skript-Viren befassen werden,
bevor sie anfangen, "höhere" Arten zu programmieren.
Diese Viren stellen in jedem Fall eine Gefahr
da. Sie sind "Prepender" oder "Appender", das
heißt, sie hängen sich entweder vor die Datei,
die sie infizieren oder an deren Ende. Dementsprechend
lassen sie sich durch einen kurzen Blick auf
eine Shell-Skript-Datei erkennen.
Perl Viren:
Perl wird mit vielen Distributionen standardmäßig
installiert, da Perl eine sehr mächtige Sprache
zur Stringbearbeitung ist. Es wird oftmals für
kleine Programme eingesetzt, die bestimmte Routine-Aufgaben
erledigen, so zum Beispiel auch für CGI-Skripte.
Dadurch ist Perl sowohl auf Servern, als auch
auf Desktop-Systemen denkbar.
Dies bedeutet
für einen Virenautor, dass beide Plattformen
ein interessantes Ziel für Virus-/Wurm-Hybriden
darstellen. Durch die Standard CPAN-Module
hat ein Perl-Virus viele Funktionen zur Verfügung,
die ihm alle Möglichkeiten eröffnen. So kann
ein Perl-Virus Socket-Verbindungen nutzen, um
über "remote Exploits" weitere Systeme zu befallen.
Perl-Viren existieren bereits auch in solcher
Form, dass sie sich nicht nur auf Linux oder
Windows beschränken, sondern alle Systeme mit
Perl Interpreter befallen können.
Eine
weitere Eigenart dieser Skriptsprache, die das
Erkennen von Perl-Viren erschwert, sind die
vielen Möglichkeiten, in Perl ein und dasselbe
zu tun, welches folgender Slogan genau ausdrückt:
"There is more than one way to do it".
Wer schon einmal Perl Obfuscated Code Contests
gesehen hat, wird wissen, dass es möglich ist,
Perl Code zu schreiben, der nahezu unlesbar
ist. Zwar ist es auch möglich Interpreter zu
schreiben, die dann diesen Code ausführen, aber
ein Heuristisches Verfahren zu erstellen, das
in diesem Code einen Virus erkennt und entfernt,
dürfte eine schwere Aufgabe werden. Daher ist
es ratsam, umbedingt Perl Dateien nur aus vertrauenswürdigen
Quellen anzunehmen.
Makro Viren:
Star Office ist das Office-Programm für
Linux schlechthin. Mittlerweile gibt es für
Star Office eine Makro Sprache, die mit der
von Word vergleichbar ist und auch eine Zielfläche
für Viren bietet. Erste Makro Viren für Star
Office wurden bereits in AntiViren-Laboratorien
erstellt, um auf eine Bedrohung schnell reagieren
zu können. Makro Viren sind momentan zu über
50 Prozent in der "Wildlist" vertreten. Die
Wildlist gibt an, welche Viren momentan am häufigsten
in "freier Wildbahn" gesichtet wurden. Wenn
Linux, und davon ist auszugehen, weiter in Büros
und auf Privat-PCs Einzug hält, dürften Makro
Viren für Star Office eine ähnlich große Bedrohung
werden wie momentan für Windows. Dokumente,
Tabellen und Präsentationen gehören zu den am
meisten genutzten Dateien, was Makro Viren,
die sich in eben diesen Dateien einnisten, einen
großen Vorteil gegenüber Shell- oder Perl-Viren
verschafft.
Star Office beherrscht drei
Makro Sprachen, die alle möglicherweise für
Viren genutzt werden könnten: StarBasic, StarScript
und JavaScript. Wenn man Makros in Star Office
Dateien nicht nutzt, sollte man diese Funktion
unbedingt deaktivieren.
Wie es aussieht,
sind mehrere Teile des Star Office Pakets durch
Viren gefährdet und zwar StarWriter, StarCalc
und StarImpress. Also ist bei all diesen Programmen
Vorsicht geboten.
ELF Viren:
ELF, das "Executable Linking Format" hat
auf Linux Plattformen das ältere "a.out-Format"
abgelöst und wird nun für fast alle Binaries,
die bei Distributionen mitgeliefert werden,
verwendet. Dementsprechend ist es kaum verwunderlich,
dass nun auch immer mehr Viren auf dieses Format
abzielen. Diese Viren sind meistens in C oder
Assembler geschrieben und dadurch, dass sie
näher am System arbeiten als eine Skript Sprache,
noch wirksamer. Auch wenn die Anzahl der ELF
Infektoren im Vergleich zu Windows Viren erheblich
kleiner ist, so existiert bereits eine Vielzahl
an verschiedenen Infektionsmethoden. Es existieren
Viren, die Verschlüsselung als auch Polymorphie
einsetzen. Auch ein Virus, der "local root Exploits"
benutzt, um Root Privilegien zu erlangen, wurde
schon in die Tat umgesetzt.
+ LoTek:
Dieser Linux Virus stammt aus Deutschland
und arbeitet recht trickreich. Er extrahiert
sich in eine Objekt-Datei und ändert "gcc" dahingehend,
dass diese in jeder neuen Datei gelinkt wird.
Eine kompilierte Datei schreibt nun beim Aufruf
von "close()" die Objekt-Datei und eine weitere
wieder auf die Festplatte und startet die zweite
Datei. Damit ist der Kreislauf wieder geschlossen
und alle weiteren Programme, die auf einem infizierten
System kompiliert werden, sind ebenfalls infiziert.
Dies zeigt, dass man sich nicht alleine auf
den Quellcode verlassen kann.
+ k0dy
Project:
Dieser Virus ist ein Kernel-Modul,
das andere "Loadable Kernel-Module" infiziert,
indem es in 23 verschiedenen Verzeichnissen
(wie zum Beispiel "/lib/modules/net") nach ihnen
sucht. Wen ein Modul gefunden wird, öffnet er
die Datei und fügt den eigenen Code ein. Wenn
nun ein infiziertes Modul geladen wird, wird
zuerst der Virus aktiv und danach das echte
Modul. Allerdings existiert er in jedem Durchlauf
nur in maximal sieben Modulen. Dieser Virus
stammt von dem gleichen Autor wie Kalif, von
Stealthf0rk/SVAT.

Was kommt noch auf uns zu?
Linux Viren werden mit hoher Wahrscheinlichkeit
in naher Zukunft ausgefeilter und immer öfter
"local root Exploits" ausnutzen, um Root-Privilegien
zu erlangen, da sie danach kompletten Zugriff
auf das System haben. Dies ist besonders gefährlich,
wenn Programme wie "ls" infiziert werden oder
ein Virus selbständig Kernel-Module lädt. Der
Virus ist dann in der Lage, auf verschiedenen
Wegen speicherresident zu werden, um dann jede
Datei zu infizieren, auf die zugegriffen wird.
Wenn ein Benutzer also Dateien auflistet
oder mit "updatedb" die "locate Datenbank" aktualisiert
wird, sind alle Dateien auf dem System infiziert.
Auch wird es mit hoher Wahrscheinlichkeit eine
Verschmelzung mit Viren geben, so dass die Malware
nicht mehr nur in der Lage ist, ein lokales
System zu infizieren, sondern sich auch über
Netzwerke verbreiten kann. Netzwerke werden
auch auf andere Art und Weise eine Rolle bei
Linux Viren spielen.
Win32.Hybris, ein
Wurm, der auf Windows Systemen erhebliche Verbreitung
erlangen konnte, benutzt eine Technik, mit der
der Autor den Virus über das Internet updaten
kann, um ihm neue Funktionen zu übermitteln.
Ein Linux Virus könnte ebenfalls neue Funktionen
laden oder auch neue Exploits, um auch nach
längerer Zeit noch in der Lage zu sein, Root-Status
auf ungepachten Systemen zu erlangen.
Auch denkbar ist eine Kombination aus normalem
ELF Infector und LKM Infector, der sich vor
Interrupts legt und ähnlich wie zu MSDOS-Zeiten,
Dateien beim Öffnen infiziert. Bei einem solchen
Virus wäre es auch möglich, "Stealth-Techniken"
zu integrieren, um die Malware vor den augen
von Virenscannern zu tarnen. Wenn so ein Virus
gut implementiert werden würde, könnte er auch
Programme wie "Tripwire" täuschen.
Antiviren-Programme für Linux/Unix:
Da Linux zu
den beliebtesten Unix-Plattformen zählt, ist
der Großteil der neuen Antiviren-Programme für
Unix-Systeme mit Linux ausgelegt. Einige Anbieter
vertreiben jedoch auch Pakete für weniger verbreitete
Unix-Plattformen. Unternehmen, die mit Solaris,
FreeBSD oder sonstigen Produkten aus der Unix-Familie
arbeiten, können allerdings auf keine große
Auswahl an Antiviren-Produkten hoffen. Natürlich
steckt der Markt der Antiviren-Software für
Linux-/Unix-Plattformen noch immer in den Kinderschuhen,
weshalb bislang nur wenige Hersteller Pakete
für verschiedene Linux-/Unix-Plattformen im
Sortiment haben. Dies sind unter anderem folgende
Anbieter:
- Computer
Associates
- F-Secure
- Kaspersky
- Sophos
- Symantec
- Trend
Micro
Einige der Antiviren-Produkte für Unix-Systeme
sind speziell für die Installation in Firewalls
konzipiert, so dass Unix-Viren an der Firewall
gestoppt werden können, bevor sie in andere
Systeme gelangen. Andere Unix-Antiviren-Produkte
wurden speziell für Messaging- und Groupware-Server
entwickelt.
Schutz vor automatisierten Hacker-Attacken
Viren, Würmer und Trojaner sind im Grunde
genommen nur automatisierte Hackerverfahren.
Die Wahrscheinlichkeit, dass ein Linux-/Unix-System
von einem Virus infiziert wird, ist wesentlich
höher als die eines direkten Hackerangriffs.
Direkte Attacken zielen für gewöhnlich auf Server
ab, während Viren überall Schaden anrichten
können. Daher sollten Netzwerke mit Linux-/Unix-Systemen,
insbesondere geschäftskritischen Servern, rechtzeitig
vor Viren, Würmern und Trojanern für Unix geschützt
werden. Ein geeignetes Antiviren-Programm bewahrt
die Systeme vor Virenbefall, bevor es zu spät
ist.
|