Google Suche

 
Loading...
Loading...

Linux und Viren

PDFDruckenE-Mail

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.



Wer ist online

Wir haben 44 Gäste online

Besucher

Heute245
Gestern936
Woche2695
Monat16815
Insgesamt495908
   
| Donnerstag, 24. Mai 2012 || Compu-Seite Compu-Seite |