Anwender sehen sich speziell beim Zugriff aufs Internet einer Vielzahl von Bedrohungen ausgesetzt. Welche das sind und wie gefährlich sie für Linux-Anwender sind, klärt dieser Artikel.
Versuche, in Computersysteme einzubrechen oder sie zu beschädigen, haben eine lange Tradition, die bis in die 70er Jahre zurückreicht. Angreifer und Verteidiger spielen ein Katz-und-Mausspiel, das nicht selten zu Gunsten der Angreifer ausgeht. Unrühmlich hervorgetan hat sich hier die Firma Microsoft, indem sie für teils hochbrisante Sicherheitslücken über mehrere Wochen oder gar Jahre [1] keine Patches bereitstellte und damit Angreifern hunderttausendfach Tür und Tor öffnete. Linux-Distributoren versorgen ihre Anwender nicht selten noch am gleichen Tag mit Bugfixes.
Das ist aber nur ein Grund, warum Windows deutlich häufiger das Ziel von Angriffen wird als beispielsweise Linux oder Mac OS. Der wohl wichtigste Grund ist die enorm hohe Verbreitung, die das System für Angreifer besonders interessant macht. Erschwerend kommt das homogene Umfeld hinzu, das es Programmierern erlaubt, mit nur einer Variante eines Schädlings den größten Teil der Windows-Rechner zu infizieren. Bei Linux treffen Entwickler von Schadsoftware dagegen auf eine Vielzahl verschiedener, oft nicht einmal binärkompatibler Derivate. Ein weiterer Umstand, der den Angreifern in die Hände spielt, ist die Tatsache, dass nach wie vor die meisten Windows-Anwender ihr Benutzerkonto mit administrativen Rechten ausstatten. Eine erfolgreich ausgenutzte Schwachstelle im Webbrowser gibt dem Angreifer dann Zugriff auf das gesamte System.
Ein generelles Unterscheidungsmerkmal bei Angriffen auf den Rechner ist, ob diese lokal oder übers Netz erfolgen. Attacken über das Internet bedeuten ein erheblich höheres Risikopotential, unter anderem deswegen, weil dafür häufig keine Benutzerinteraktion notwendig ist. Ein Beleg dafür sind so genannte Botnets, die nicht selten aus mehreren tausend Rechnern bestehen. Bereits Ihre Entscheidung, Linux zu verwenden, schützt Sie vor den meisten Angriffen – aber nicht vor allen.
Trojanische Pferde
Ein Trojanisches Pferd ist ein Nutzprogramm, das huckepack einen Schädling auf dem Rechner einschleust. Ein Beispiel dafür ist der vor einigen Jahren weit verbreitete “Dosenhalter”: Beim Ausführen des Programms öffnete sich die CD-ROM-Schublade, während im Hintergrund der Schadcode lief. Betroffen waren in erster Linie Anwender, die ohne nachzudenken Software aus dem Internet herunterluden oder an E-Mails angehängte Attachments aus nicht vertrauenswürdigen Quellen auf ihrem Rechner ausführten. In jedem Fall benötigt ein Trojaner eine Interaktion des Nutzers.
Linux-Anwender sind allerdings auf der sicheren Seite, da die Programme praktisch ausnahmslos für Windows geschrieben wurden. Heute sind Trojanische Pferde eine aussterbende Rasse, da es jetzt deutlich effektivere Möglichkeiten gibt, Schadcode auf Rechnern einzuschleusen. Der beste Schutz vor dieser Art von Bedrohung ist der gesunde Menschenverstand. Im Klartext heißt das, keine Programme unbekannter Herkunft auszuführen. Linux-Benutzer sollten in diesem Zusammenhang besonders darauf achten, ihrem Paketmanagement keine Repositories unbekannter Herkunft hinzuzufügen und Programme daraus zu installieren.
Backdoors
Eine Backdoor (Hintertür) öffnet auf dem Rechner eine Hintertür, über die Angreifer vom Internet aus auf den PC zugreifen können. Anders als Fernwartungsprogramme starten Backdoors meist verdeckt, damit der Anwender ihren Betrieb nicht bemerkt. Backdoors sind nicht zwangsläufig Schadprogramme, und oft können nur versiertere Anwender sie entlarven, z. B. mit Hilfe des Programms netstat, das die aktiven Netzwerkverbindungen des Rechners anzeigt. Ein prominentes Beispiel, das es relativ leicht ermöglicht, eine Backdoor auf dem Rechner einzurichten, ist das auf praktisch jeder Distribution installierte Netcat. Der Kommandozeilenaufruf
nohup netcat -l -p 6666 -n -e /bin/sh &
startet das Programm im Hintergrund, es lauscht dann auf Port 6666. Hat ein Angreifer es geschafft, das Tool auf diese Weise zum Laufen zu bringen, kann er den Rechner jederzeit über den Kommandozeilenaufruf
netcat -nvv IP-Adresse 6666
kontaktieren (Abbildung 1). Startet root das Tool, erlangt der Angreifer uneingeschränkten Zugriff auf die Maschine. Dieses einfache Beispiel funktioniert aber nur, wenn der Rechner eine über das Internet erreichbare IP-Adresse hat, die dem Angreifer auch bekannt ist.

Abbildung 1: Das obere Fenster zeigt Netcat beim Zugriff auf einen gestarteten Netcat-Server (unten).
Eine andere Form von Backdoors sind komplexere Fernwartungs-Softwarepakete, die speziell für diesen Einsatzzweck entwickelt wurden, in der Windows-Welt beispielsweise das berühmt-berüchtigte Back Orifice, Sub Seven oder Netbus. Sie bringen eine Reihe Zusatzfunktionen, etwa für einfache Transfers von Dateien, mit, die es dem Angreifer erleichtern, an die gesuchten Daten auf dem Rechner zu kommen oder ihn nachträglich zu manipulieren.
Letztendlich sind Backdoors sowohl für Windows- als auch für Linux-Nutzer gleichermaßen gefährlich. Allerdings genügt in der hier vorgestellten Variante bereits ein Router wie die Fritzbox, um den Zugriff aus dem Internet zu unterbinden. Der Grund dafür ist, dass dieser die IP-Adressen per NAT umsetzt, womit die Rechner im lokalen Netz nicht mehr ohne weiteres von außen erreichbar sind.
Root Kits
Eine spezielle Variante von Backdoors sind so genannte Root Kits. Wie der Name bereits andeutet, ist ein Root Kit kein einzelnes Programm, sondern eine Sammlung mehrerer Tools. Der Zweck von ihnen ist es in der Regel, die Backdoor vor den Augen des Anwenders zu verschleiern. Dazu tauscht es Programme wie ps oder Netstat gegen eigene aus, die bestimmte Prozesse bzw. geöffnete Ports nicht mehr anzeigen, die zum Root Kit gehören. Sofern keine Sicherheitsvorkehrungen getroffen wurden, haben speziell unerfahrenere Anwender praktisch keine Chance, solche Root Kits zu aufzuspüren. Ein prominentes Beispiel aus der Windows-Welt ist der von Sony auf vielen Audio-CDs implementierte XCP-Kopierschutz. Das im Hintergund gestartete Programm taucht nicht in der Prozessliste auf und verbirgt seine Anwesenheit, indem es sowohl die zugehörigen Dateien und Verzeichnisse als auch die Registry-Schlüssel durch das Präfix $sys$ für den Nutzer unsichtbar macht [2].
Generell geht von Root Kits vor allem wegen ihrer schwierigen Identifizierung sowohl für Windows als auch für Linux ein hohes Gefahrenpotenzial aus. Ein Linux-Vertreter dieser Softwaregattung ist das LKM-Root-Kit eNYeLKM. Anders als die klassischen Varianten tauscht es keine modifizierten Systemprogramme aus, sondern verbirgt sich mit einem Kernel-Modul, das Betriebssystemaufrufe so modifiziert, dass es unerkannt bleibt. Neben diesem Verschleierungsmechanismus bietet das Tool einen Remote- und Root-Zugriff auf die betroffene Maschine. Eine für viele Varianten taugliche Abwehrmaßnahme bietet das Programm Chkrootkit [3] (Abbildung 2). Es prüft anhand diverser Merkmale, ob ein Root Kit vorhanden ist. Gegen die neuesten Generationen ist jedoch auch dieser Spürhund machtlos: Sie verbergen sich nämlich in virtuellen Maschinen und teilweise sogar in Hardwarekomponenten des PCs. Sprechen Indizien dafür, dass ein Root Kit das System kompromittiert hat, sollten Sie gar nicht erst versuchen, es davon zu befreien, sondern auf jeden Fall neu installieren.
Exploits
Exploits nutzen Schwachstellen im Design von Programmen aus, was dazu führt, dass diese entweder abstürzen oder der Angreifer Kontrolle über sie erlangt. Je nachdem, mit welchen Rechten sie laufen, ermöglicht das sogar den administrativen Zugriff auf die betroffene Maschine. Ein Beispiel ist der Exploit Scalp: Er ermöglichte es vor einigen Jahren, eine schwerwiegende Sicherheitslücke in diversen Versionen des Webservers Apache auszunutzen, um die Kontrolle über den Dienst zu erlangen.
Naturgemäß setzt eine erfolgreiche Attacke voraus, dass auf dem Rechner verwundbare Dienste wie FTP, SSH, HTTP oder SMB laufen. Während OpenSuse nach der Grundinstallation Rpcbind und SSH startet, hält sich Kubuntu in dieser Hinsicht zurück und bietet zunächst überhaupt keine von außen sichtbaren Dienste an. Verbinden Sie Ihren Rechner direkt (also nicht über einen DSL-Router, sondern z. B. über eine eingebaute ISDN-Karte oder ein analoges Modem) mit dem Internet, sollten Sie sicherheitshalber in regelmäßigen Abständen mit dem Konsolenaufruf netstat -tlp (Abbildung 3) prüfen, ob eines der nachinstallierten Programme einen Zugriff von außen ermöglicht. Anwender, die über einen DSL-Router ins Internet gehen, sind vor dieser Art der Bedrohung jedoch geschützt, da wie beschrieben NAT den Zugriff auf das interne Netz verhindert.

Abbildung 3: Das Konsolenprogramm “Netstat” zeigt an, welche Programme Kontaktaufnahmen aus dem Netzwerk ermöglichen oder bereits eine Verbindung aufgebaut haben.
Auch zur Kategorie der Remote Exploits zählen jedoch Angriffe auf Client-Programme wie Webbrowser oder Flash-Player, die den in Webseiten eingebetteten Schadcode ausführen. Hier hat sich des öfteren Microsofts Internet Explorer als besonders anfällig erwiesen. Eine der verheerendsten Attacken ging auf einen Fehler beim Verarbeiten von WMF-Bilddateien zurück: Es genügte, eine Seite mit einem entsprechend präparierten Bild aufzurufen, um den Rechner zu infizieren. Sein volles Potential konnte der Schadcode wie so oft aber nur deshalb entfalten, weil die meisten Windows-Anwender mit administrativen Rechten angemeldet waren. Wie die Statistik von Secunia [4] zeigt (Abbildung 4), sind aber auch die gängigen Linux-Browser Firefox und Opera nicht frei von solchen Fehlern, auch wenn die Folgen meist deutlich moderater ausfallen.

Abbildung 4: Die Fehlerstatistik von Secunia zeigt, dass auch Firefox nicht unfehlbar ist – allerdings reagiert Mozilla in aller Regel sehr schnell auf bekannt gewordene Sicherheitslücken.
Der Zweck eines lokalen Exploits ist es in erster Linie, die eigenen Benutzerrechte auszuweiten und damit Root-Rechte auf der betroffenen Maschine zu erlangen, indem es installierte Programme mit Schwachstellen kompromittiert. Gewähren Sie beispielsweise Fremden via SSH Zugriff auf einen Gast-Account Ihres Rechners, so könnten diese einen lokalen Exploit nachladen und damit administrative Rechte auf der Maschine erlangen. Die wirkungsvollste Abwehrmaßnahme ist, das System per automatischem Update auf dem aktuellen Stand zu halten, weil Sie damit entdeckte Sicherheitslücken in Programmen so schnell wie möglich schließen.
Viren
Computerviren tragen den Namen des biologischen Vorbilds, weil sie in der Lage sind, sich zum einen der vorhandenen Ressourcen zu bedienen, und sich zum anderen zu reproduzieren. Konkret bedeutet das: Führen Sie ein virenverseuchtes Programm aus, befällt es zunächst andere Programme und startet danach seinen Feldzug gegen den Rechner. Im Extremfall betrifft das sogar das BIOS, wie beispielsweise beim Virus CIH [5]. Die Schadfunktionen von Viren reichen von harmlosen Pop-ups zu einem bestimmten Anlass bis hin zum kompletten Löschen von Dateisystemen. Eine besonders perfide Art von Viren trat erst kürzlich in Erscheinung: Sie verschlüsselten zunächst die Dateien des Anwenders und versahen sie mit einem Passwort. Gegen die Zahlung einer Gebühr gaben die Cracker das zum Entschlüsseln benötigte Passwort heraus.
Generell geht die Zahl klassischer Computerviren allerdings seit Jahren stetig zurück – zum einen, weil sie eine Interaktion mit dem Anwender erfordern, zum anderen, weil zwischenzeitlich die meisten Rechner mit leistungsfähigen Virenscannern ausgestattet sind. Linux-Nutzer sind hier wieder weitgehend auf der sicheren Seite: Die wenigen Viren, die es für dieses System gibt, dienten meist nur als Machbarkeitsstudien. Allerdings sollten auch Linux-Anwender nicht auf einen Virenwächter verzichten – dabei geht es weniger darum, das eigene System zu schützen, sondern hilft eher den Personen, mit denen sie in Kontakt stehen. So richtet eine mit Schadsoftware für Windows versehene E-Mail auf Ihrem Linux-PC keinen Schaden an – leiten Sie diese aber an Bekannte mit einem Windows-Rechner weiter, könnte das verheerende Folgen haben.
Eine Untergruppe stellen die Makroviren dar. In der Regel handelt es sich dabei um VBA-Code, der in Textdokumente, Präsentationen oder Tabellen eingebettet ist und den die Office-Anwendung beim Öffnen des Dokuments ausführt. Makroviren betreffen in erster Linie die Produkte von Microsoft. Für das häufig unter Linux eingesetzte OpenOffice ist bislang erst ein Makrovirus namens BadBunny [6] bekannt. Seine “Schadroutine” beschränkt sich jedoch darauf, eine harmlose, nicht jugendfreie Animation anzuzeigen. Deutlich dramatischer verlief im Jahr 2000 die Attacke auf das Mailprogramm Outlook und seinen Gratisableger Outlook Express. Es reichte damals aus, eine E-Mail in der Vorschau zu betrachten, um den enthaltenen Schadcode, etwa den Makrovirus Bad.Trans [7], zu aktivieren.
Würmer
Bad.Trans war dabei nicht nur ein Makrovirus, sondern auch ein Computerwurm. Würmer können sich selbständig über das Netz verbreiten, beispielsweise indem sie sich per E-Mail an alle Einträge des E-Mail-Adressbuchs versenden. Ein anderes Beispiel ist der Wurm LovSan [8], der eine Sicherheitslücke im DCOM-Service von Windows nutzte. Er suchte selbständig im Netz nach ungepatchten Rechnern, nutzte die Schwachstelle aus, installierte die Schadsoftware und verbreitete sich von dort aus wie in einem Schneeballsystem weiter. Das führte dazu, dass 2004 binnen weniger Monate hunderttausende Rechner von ihm befallen waren. Zu Spitzenzeiten genügte es, einen ungepatchten Rechner drei Minuten direkt mit dem Internet zu verbinden, um ihn mit dem Wurm zu infizieren.
Fast alle hier vorgestellten Schadsoftwaretypen treten auch in Kombinationen auf. So kam es beispielsweise in der Vergangenheit häufig vor, dass ein Wurmvirus einen Exploit benutzte, um sich Zugriff auf das System zu verschaffen, und danach eine Backdoor darauf versah, die er mit einem Rootkit absicherte.
Glossar
-
Botnet
-
Eine zentral gesteuerte Gruppe von Rechnern. Oft erfolgt die Koordinierung über Channels im IRC-Netz. Botnets dienen unter anderem als Spam-Versender und für DDoS-Attacken (Distributed Denial of Service).
-
NAT
-
Um mit für lokale Netze reservierten IP-Adressen (etwa 192.168.0.12) ins Internet zu gelangen, ist die so genannte Network Address Translation notwendig. Dabei ersetzt der Router die Adresse durch die vom ISP zugeteilte öffentliche IP-Adresse und “merkt” sich die Zuordnung. Da private IP-Adressen nicht übers Internet geroutet werden, kann man zu ihnen auch keinen direkten Kontakt aus dem Internet aufbauen. Eine Ausnahme macht DNAT (Destination Network Address Translation). Dabei horcht der Router stellvertretend für den Server am angegebenen Port und leitet Anfragen ins interne Netz weiter.
Infos
[1] Bericht zu lange bekannter Microsoft-0-Day-Lücke: “Microsoft kannte kritische 0-Day-Lücke seit über zwei Jahren”, http://www.heise.de/newsticker/meldung/143464
[2] Bericht zum Root Kit von Sony: “Sony BMGs Kopierschutz mit Rootkit-Funktione”, http://www.heise.de/security/news/meldung/65602
[3] Chkrootkit: http://www.chkrootkit.org
[4] Secunia: http://secunia.com
[5] CIH-Virus: http://de.wikipedia.org/wiki/CIH-Virus
[6] BadBunny: http://www.sophos.de/security/analyses/viruses-and-spyware/sbbadbunnya.html
[7] Bad.Trans: http://de.kioskea.net/contents/virus/badtrans.php3
[8] LovSan: http://www.uni-koeln.de/rrzk/sicherheit/viren/blaster-a.html


