Home Nach oben Feedback Inhalt Suchen AGB

 Trojanische Pferd
Hacker und Cracker Krieg im Internet Sicherheitslöcher Wer ist anfällig? Trojanische Pferd Analyse Tools Microsoft Sicherheit Anonyme Passwort Cracker Destruktive Programme Angriffstufen Sniffer Sprachen Glossar Telnet Linux und Unix Open Source

Besuchen Sie jetzt unseren Online Shop www.tos.mynetcologne.de ..::..::..::..::..Schauen Sie mal unsere Service Produkte und unsere Service Angebote an es LOHNT sich.... ..::..::..::..::..

[Under Construction]

              

 

 

 

Trojanische Pferde

Hier lernen Sie fast Alles eines der heimtückischeren Programme, die dazu benutzt werden, Internet-Sicherheit zu umgehen: das Trojanische Pferd oder Trojaner.

Was ist ein Trojaner?

Ein Trojanisches Pferd ist:

  • Unautorisierter Code innerhalb eines legitimen Programms. Dieser unautorisierte Code führt Funktionen durch, die dem Benutzer nicht bekannt sind 
  • Ein legitimes Programm, das durch die Einbindung von unautorisiertem Code geändert wurde; dieser Code führt Funktionen durch, die dem Benutzer nicht bekannt sind 
  • Jedes Programm, das scheinbar erwünschte und notwendige Funktionen durchführt, tatsächlich aber (aufgrund von unautorisiertem Code) Funktionen durchführt, die dem Benutzer nicht bekannt sind 

Die unbefugten Funktionen, die der Trojaner durchführt, können manchmal auch als böswilliges Programm gelten. Einige Viren passen in dieses Profil. Ein solcher Virus kann innerhalb eines ansonsten nützlichen Programms verborgen sein. In diesem Fall kann das Programm sowohl als Trojaner als auch als Virus bezeichnet werden.

Klassische Dokumente über Internet-Sicherheit definieren den Begriff Trojaner in unterschiedlicher Art und Weise. Die vielleicht am meisten bekannte Definition befindet sich im RFC 1244, dem Site Security Handbook:

Ein Trojanisches Pferd kann ein Programm sein, das etwas Nüztliches oder auch nur etwas Interessantes tut. Es tut immer etwas Unerwartetes, wie beispielsweise ohne Ihr Wissen Passwörter stehlen oder Dateien kopieren.

Dr. Alan Solomon, ein international bekannter Virenspezialist, hat in seiner Arbeit »All about Viruses« eine andere passende Definition gegeben:

Ein Trojaner ist ein Programm, das etwas mehr tut, als der Benutzer erwartet, und diese zusätzliche Funktion ist zerstörerisch. Dies führt zu einem Problem, was die Aufdeckung von Trojanern betrifft. Sagen wir, ich hätte ein Programm geschrieben, das zuverlässig entdecken könnte, ob ein anderes Programm die Festplatte formatiert hat. Kann es dann sagen, dass dieses Programm ein Trojaner ist? Wenn das andere Programm die Festplatte formatieren sollte (wie beispielsweise Format), dann ist es offensichtlich kein Trojaner. Wenn aber der Benutzer das Formatieren der Festplatte nicht erwartete, dann ist es ein Trojaner. Das Problem liegt darin zu vergleichen, was das Programm tut und was der Benutzer erwartet. Sie können die Erwartungen eines Benutzers nicht bestimmen.

Tipp:

Sie können »All About Viruses« von Dr. Alan Solomon unter http://www.drsolomon.com/vircen/vanalyse/va002.html finden.

Generell können Sie ein Trojanisches Pferd als ein Programm klassifizieren, das eine versteckte und nicht gewünschte Funktion ausführt. Ein Trojaner kann in jeder Form daherkommen. Es kann ein Utility sein, das angeblich Dateiverzeichnisse indiziert oder Registrierungscodes auf Software öffnet. Es kann eine Textverarbeitung oder ein Netzwerk-Utility sein. Kurz, ein Trojanisches Pferd kann alles tun.

Sie können das Konzept des Trojanischen Pferdes besser verstehen, wenn Sie sich die Herkunft seines eher seltsamen, aber durchaus treffenden Namens ansehen. Im 12. Jahrhundert vor Christus erklärte Griechenland Troja den Krieg. Der Sage nach begann der Streit, als der Prinz von Troja die Königin von Sparta entführte, um sie zu seiner Frau zu machen. Die Griechen nahmen die Verfolgung auf und führten einen 10 Jahre dauernden Krieg gegen Troja. Sie konnten Troja aber nicht erobern, da es zu gut geschützt war.

In einem letzten Eroberungsversuch zog sich die griechische Armee zurück und hinterließ ein riesiges hölzernes Pferd. Dieses Pferd war hohl und in ihm versteckten sich die besten griechischen Soldaten. Die Trojaner sahen das Pferd und brachten es in der Annahme, dass es sich um ein Geschenk handele, in ihre Stadt. In der folgenden Nacht kletterten die griechischen Soldaten aus dem Pferd und überwältigten die Trojanische Armee im Schlaf.

 

Was machen Trojanische Pferde?

Trojanische Pferde werden von Programmierern geschaffen, in der Regel mit böswilligen Absichten. Irgendwo auf diesem Planeten sitzt jetzt bestimmt ein Programmierer und entwickelt einen Trojaner. Dieser Programmierer weiß genau, was er tut, und seine Absichten sind böswillig.

Die Autoren Trojanischer Pferde verfolgen in der Regel einen bestimmten Plan. Dieser Plan kann fast alles sein, aber im Zusammenhang mit Internet-Sicherheit werden sie ihren Trojaner so programmieren, dass er eines von zwei Dingen tut:

  • Funktionen ausführen, die dem Programmierer entweder wichtige und privilegierte Informationen über ein System liefert oder dieses System beeinträchtigt.
  • Funktionen verbergen, die dem Programmierer entweder wichtige und privilegierte Informationen über ein System liefert oder dieses System beeinträchtigt.

Einige Trojaner tun beides. Zusätzlich existiert noch eine andere Klasse von Trojanischen Pferden, die dem Ziel wirklich Schaden zufügt (z.B. könnte es Ihre Festplatte verschlüsseln oder umformatieren). Trojanische Pferde können Informationen (bezüglich unautorisiertem Zugang oder allgemeine) sammeln oder sogar Ihr System sabotieren.

Ein Trojanisches Pferd, das in das Sabotage-Profil passt, ist der AOLGOLD- Trojaner. Er wurde über Usenet durch E-Mail verteilt. Das Programm war angeblich ein verbessertes Paket für den Zugang zu America Online (AOL). Die Distribution bestand aus einer archivierten Datei, die dekomprimiert zwei Dateien enthüllte. Eine war eine Standard-INSTALL.BAT-Datei. Die Ausführung der INSTALL.BAT-Datei führt dazu, dass 18 Dateien auf die Festplatte gebracht werden. In einem Sicherheitshinweis (Information on the AOLGOLD Trojan Program) vom 16. Februar 1997 wird berichtet:

Das Trojanische Pferd wird durch die Ausführung der INSTALL. BAT-Datei gestartet. Die INSTALL. BAT-Datei ist eine einfache Stapelverarbeitungsdatei, die die VIDEO.DRV- Datei umbenennt in VIRUS.BAT. VIDEO.DRV ist eine amateurhafte DOS-Stapelverarbeitungsdatei, die damit beginnt, den Inhalt mehrerer kritischer Verzeichnisse auf Ihrem Laufwerk C: zu löschen, darunter

c:\
c:\dos
c:\windows
c:\windows\system
c:\qemm
c:\stacker
c:\norton

Wenn die Stapelverarbeitungsdatei ihren Arbeitsablauf beendet, erscheint eine kurze Nachricht auf dem Bildschirm und ein Programm namens DOOMDAY.EXE versucht zu starten. Fehler in der Stapelverarbeitungsdatei verhindern einen Ablauf von DOOMDAY.EXE. Andere Fehler in der Datei führen dazu, daß das Programm sich selbst löscht, wenn es auf einem anderen Laufwerk als C: gestartet wird. Der Programmierstil und die Fehler in der Stapelverarbeitungsdatei zeigen, daß der Autor des Trojanischen Pferdes scheinbar nur wenig Programmiererfahrung hat.

Tipp:

Sie können den Sicherheitshinweis »Information on the AOLGOLD Trojan Program« online finden unter http://www.emergency.com/aolgold.htm

Diese Trojaner wurden von Amateurprogrammierern entwickelt: wahrscheinlich von Jugendlichen, die Unruhe stiften wollten. Beide Trojaner waren destruktiv und führten keine raffinierten kollektiven oder penetrativen Funktionen aus. Derartige Trojaner tauchen gewöhnlich auf dem Usenet auf.

Manchmal werden Trojanische Pferde auch von Programmierern eingeschleust, die an einer legitimen Entwicklung arbeiten. In diesem Fall wird der unautorisierte Code von jemandem, der an der Entwicklung beteiligt ist, in eine Applikation oder ein Utility (in seltenen Fällen auch in das Betriebssystem selbst) integriert. Diese Situationen sind aus den folgenden Gründen viel gefährlicher:

  • Diese Trojaner sind nicht destruktiv (sie sammeln Informationen auf Systemen); in der Regel werden sie nur durch Zufall entdeckt. 
  • Vertrauenswürdige Sites können gefährdet werden, wie z.B. Sites, die Hunderten oder Tausenden von Benutzern einen Internet-Zugang zur Verfügung stellen. Es könnten Sites der Regierung oder Sites akademischer Einrichtungen sein, die sich von Sites kleiner Unternehmen unterscheiden. Im Fall eines kleinen Unternehmens betrifft der Schaden in der Regel nur das Unternehmen selbst und seine Benutzer. Das ist schlimm genug, betrifft aber nur dieses eine Unternehmen. Im Gegensatz dazu kann die Gefährdung von Sites der Regierung oder denen akademischer Einrichtungen für Tausende von Rechnern ein Risiko darstellen.

Manchmal beschädigen Programmierer, die nichts mit kommerzieller Entwicklung zu tun haben, Schlüssel-Utilities für Unix. Diese Art der Beschädigung ist schon mehrfach vorgekommen und betraf bei mehr als einer Gelegenheit sicherheitsrelevante Programme. Zum Beispiel wurde entdeckt, daß die SATAN-1.0-Distribution für Linux ein Trojanisches Pferd enthielt.

Tipp:

SATAN 1.0 war eine vorkompilierte Sammlung von Binärdateien für Linux- Anwender. Die Binärdateien wurden an der Temple University kompiliert. Das Trojanische Pferd fand sich allerdings nur in einer Freigabe, der Version 1.0.

Die betroffene Datei war ein Programm namens fping. Anscheinend bekam ein Programmierer Zugang zu einem Rechner, auf dem sich der Source- Code befand. Er modifizierte die main()-Funktion und änderte fping so, dass beim Ablauf von SATAN ein spezieller Eintrag in die /etc/passwd- Datei geschrieben wurde. Dieser spezielle Eintrag war ein Benutzer namens suser. Über die Benutzer -ID wollte der Eindringling viele Hosts beeinträchtigen. Tatsächlich gab es nur zwei bekannte Fälle einer solchen Beeinträchtigung. Angeblich war die Programmierung mangelhaft und das verhinderte, dass der Täter sein Vorhaben in die Tat umsetzen konnte. (Das Trojanische Pferd hatte keine Wirkung auf Systemen mit Shadow- Passwörtern.)

Tipp:

Frühe Slackware- Distributionen bieten keine standardmäßige Unterstützung für Shadow- Passwörter. In den letzten Jahren sind die meisten Linux- Systeme allerdings auf die Benutzung von Shadow- Funktionen umgestiegen. Der Programmierer, der für den SATAN- Trojaner verantwortlich war, hat dies entweder nicht bedacht oder es einfach ignoriert.

 

Auf welchem OS findet man Trojaner?

Trojaner können fast überall sein, in jeder Applikation, auf jedem Betriebssystem. Aus diesem Grund sollten Sie Software, die Sie aus dem Internet herunterladen, immer mit Vorsicht genießen, insbesondere wenn sie von Underground-Servern oder aus dem Usenet kommt.

Manchmal allerdings müssen Sie gar nicht in dunkle und verbotene Gassen reisen, um einem Trojanischen Pferd zu begegnen. Manchmal tauchen Trojaner auch in größeren netzwerkweiten Distributionen auf. 1994 beispielsweise versteckte jemand ein Trojanisches Pferd in WUFTPD. Die Angelegenheit wurde in einer CIAC-Warnung besprochen:

Die CIAC hat Informationen erhalten, dass der Source- Code einiger Kopien des wuarchive FTP Daemons (ftpd) in den Versionen 2.2 und 2.1f manipuliert worden sei und ein Trojanisches Pferd enthielte. Dieser Trojaner ermöglicht es jedem Benutzer, ob lokal oder entfernt, Root- Privilegien auf dem betroffenen Unix-System zu erhalten. Die CIAC empfiehlt ausdrücklich, dass auf allen Sites, die über diese oder ältere Versionen des wuarchive ftpd laufen, die Version 2.3 installiert wird. Es ist möglich, dass Versionen, die älter sind als 2.2 und 2.1f, das Trojanische Pferd ebenfalls beinhalten.

WUFTPD ist der weltweit meistbenutzte FTP-Server. Der WUFTPD-Trojaner betraf also Tausende von Sites, sowohl öffentliche als auch private. Für viele dieser Sites besteht nach wie vor ein Risiko, weil ihre Systemadministratoren nicht so sicherheitsbewußt sind, wie sie es sein sollten.

Hier sind einige andere bekannte Beispiele von Trojanischen Pferden:

  • Der StuffIt-4.5-Trojaner. Ende 1997 brachte jemand ein gefälschtes StuffIt-Deluxe- Programm heraus. (StuffIt ist ein beliebtes Archivierungstool, das hauptsächlich auf Macintosh-Rechnern eingesetzt wird.) Während der Installation löschte das Programm wichtige Systemdateien. Der Hersteller von StuffIt, Aladdin Systems, verbreitete Hinweise über das Trojanische Pferd.
  • Der AOL-Password-Trojaner. Mitte 1997 entwickelte jemand ein Trojanisches Pferd, das Benutzernamen und Paßwörter von AOL-Anwendern offenlegen konnte. AOL-Anwender wurden daraufhin gewarnt, 106 verschiedene betroffene Dateien nicht herunterzuladen. Das Progamm war ein Utility, das Tastaturanschläge aufzeichnete.
  • Der AOL4FREE-Trojaner. Im April 1997 entwickelte jemand ein Trojanisches Pferd namens AOL4FREE.COM (nicht zu verwechseln mit dem AOL4FREE-Virus, der im gleichen Jahr auftauchte). Der Trojaner - der angeblich ein Tool war, um unautorisierten Zugang zu AOL zu bekommen - zerstörte Festplatten-Laufwerke auf betroffenen Rechnern.
  • Der quota-Trojaner. 1996 verteilte jemand eine Version von quota, die ein Trojanisches Pferd enthielt. quota ist ein Unix-Tool, das Festplatten-Quota für Benutzer überprüft. Unter anderen Dingen kopierte der quota-Trojaner Paßwörter und NIS-Zuordnungen und mailte diese an den Autor des Trojanischen Pferdes. 
  • Der IRC-Trojaner. 1994 wurde in der Version 2.2.9 des ircII-Clients ein Trojanisches Pferd entdeckt. Das Programm hinterließ eine Hintertür, durch die Angreifer Zugang zu den betroffenen Systemen erhalten konnten.

 

Werden Trojaner entdeckt?

Trojaner werden so oft entdeckt, dass sie ein Hauptsicherheitsbedenken darstellen. Sie sind gerade deshalb besonders heimtückisch, da ihre Auswirkungen auch nach ihrer Entdeckung oft noch gespürt werden. In dieser Hinsicht ähneln Trojanische Pferde Sniffern. Niemand kann sicher sagen, wie tief die Beeinträchtigung in das System hineingegangen ist. Es gibt mehrere Gründe hierfür.

Ein Grund ist, dass sich Trojaner in der Regel in kompilierten Binärdateien verstecken. Der Code eines Trojaners ist daher in vom Menschen nichtlesbarer Form oder in Maschinensprache geschrieben. Ohne Debug-Programm kann man nicht viel über Binärdateien erfahren. Wenn Sie beispielsweise einen Texteditor benutzen, um sich eine Binärdatei anzusehen, wird Ihnen das nichts bringen. Die einzig erkennbaren Textzeilen sind Copyright-Mitteilungen, Fehlermeldungen oder andere Daten, die an verschiedenen Punkten des Programms an STDOUT ausgegeben werden.

Tipp:

Kompilierte Binärdateien sind nicht die einzigen Orte, an denen sich Trojanische Pferde verstecken. Shell-Scripts, Perl-Programme und vielleicht sogar Code, der in JavaScript, VB Script oder Tcl geschrieben wurde, können theoretisch ein Trojanisches Pferd beinhalten. Diese Fälle kommen allerdings verhältnismäßig selten vor. Script-Sprachen sind ungeeignet, weil der Code für den Menschen lesbar ist. Dies vergrößert die Wahrscheinlichkeit, dass das Opfer den Code entdeckt. (Ein Trojanisches Pferd in einen solchen Code einzubetten, ist wahrscheinlich nur dann machbar, wenn die Datei Teil eines viel größeren Pakets ist - z.B. wenn das Gesamtpaket sich auf viele Unterverzeichnisse verteilt. In solchen Fällen reduziert die Komplexität des Pakets möglicherweise die Wahrscheinlichkeit, dass ein menschliches Wesen mit normalen Untersuchungsmethoden den Trojaner entdecken kann.)

Ein anderer Grund für die Schwierigkeiten im Entdecken von Trojanern liegt darin, dass sie ihre Anwesenheit nicht ankündigen. Sie führen einfach ruhig und effektiv ihre entsprechenden Aufgaben aus. Noch schlimmer, die meisten gut gemachten Trojaner kommen in Form von bekannten Utilities, deren Ablauf Sie auf einem System erwarten würden. Daher können Sie ein Trojanisches Pferd nicht durch eine Auflistung der aktuell laufenden Prozesse entdecken.

Bevor Sie mit der Suche nach einem Trojaner anfangen, müssen Sie allerdings zunächst einen Grund dafür haben, daß Sie einen Trojaner in Ihrem System vermuten. Die meisten Leute haben dies nicht, und selbst wenn es so wäre, wüssten sie nicht, wo sie mit ihrer Suche beginnen sollten.

Es hängt viel von der Erfahrung eines Benutzers ab. Benutzer, die nicht viel über ihr Betriebssystem wissen, werden wohl kaum tief in Verzeichnisstrukturen tauchen, um verdächtige Dateien zu suchen. Selbst erfahrene Programmierer haben möglicherweise Schwierigkeiten, ein Trojanisches Pferd zu identifizieren, auch wenn ihnen der Code für Untersuchungszwecke zur Verfügung steht. (Dies gilt insbesondere dann, wenn der Trojaner in einer Sprache geschrieben ist, von der der Programmierer nur sehr wenig versteht. Es klingt unglaublich, aber ich kenne BASIC-Programmierer, die Schwierigkeiten haben, einen Perl- Code zu lesen.)

 

Welches Risiko, stellen Trojaner dar?

Trojaner stellen ein hohes Risiko dar, hauptsächlich aus Gründen, die schon angesprochen wurden:

  • Trojaner sind schwer zu entdecken. 
  • In den meisten Fällen werden Trojaner in Binärdateien gefunden, die zum größten Teil für den Menschen nicht lesbar sind.

Trojanische Pferde können sogar zu einem Zusammenbruch des gesamten Systems führen. Ein Trojaner kann sich bereits seit Wochen oder gar Monaten im System befinden, bevor er entdeckt wird. Innerhalb dieses Zeitraums könnte ein Cracker mit Root- Privilegien ein gesamtes System nach seinem Bedarf verändern. Und auch wenn ein Trojanisches Pferd entdeckt wird, existieren möglicherweise viele versteckte Sicherheitslöcher.

 

Trojanische Pferde aufspüren?

Trojanische Pferde aufzudecken ist leicht, vorausgesetzt, Sie haben immer nur die besten Sicherheitspraktiken angewendet. Ist das nicht der Fall, ist das Aufspüren eines Trojaners eine schwierige Aufgabe.

Die meisten Aufdeckungsmethoden basieren auf einem Prinzip, das »Objektvergleich« genannt wird. Objekte sind in dem Fall Dateien oder Verzeichnisse. Diese Objekte werden jeweils mit sich selbst zu einem früheren oder späteren Zeitpunkt verglichen.

Nehmen Sie zum Beipiel ein Backup-Band und vergleichen Sie die Datei PS, wie sie im Dezember 1999 aussah, mit der Datei PS, die sich jetzt auf Ihrer Festplatte befindet. Wenn die zwei sich unterscheiden, und PS nicht aktualisiert, ersetzt oder korrigiert wurde, stimmt etwas nicht. Diese Technik sollte auf alle Systemdateien angewandt werden, die als Basisteile des Betriebssystem installiert sind.

Objektvergleich ist eine einfache Methode zur Überprüfung der Dateiintegrität, die auf entdeckten Änderungen der Zustandsinformationen einer Datei basiert. Andere Überprüfungsmöglichkeiten rangieren von ganz einfachen bis hin zu raffinierten Methoden. Zum Beispiel können Sie die Integrität einer Datei mit Hilfe der folgenden Angaben überprüfen:

  • dem Datum der letzten Modifikation 
  • dem Datum, zu dem die Datei entstanden ist 
  • der Dateigröße

Alle drei Methoden sind leider ungenügend. Lassen Sie mich kurz erklären, warum.

Jedes mal, wenn eine Datei geändert wird, ändern sich ihre Werte. Beispielsweise wird immer, wenn die Datei geöffnet, verändert und gespeichert wird, ein neues Datum für die letzte Modifikation vergeben. Diese Datumsangabe kann jedoch leicht manipuliert werden. Man braucht nur die globale Zeiteinstellung ändern, die gewünschten Änderungen an der Datei vornehmen, sie speichern und schon ist die Datumsangabe manipuliert. Aus diesem Grund ist die Datumsangabe der unzuverlässigste Weg, um Objekte zu vergleichen. Das Datum der letzten Modifikation ist völlig nichtssagend, wenn die Datei unverändert war (wenn sie z.B. nur kopiert oder gemailt wurde).

Ein anderer Weg, die Integrität einer Datei zu überprüfen, ist die Untersuchung ihrer Größe. Diese Methode ist jedoch ebenfalls sehr unzuverlässig, da auch dieser Wert auf sehr einfache Art und Weise manipuliert werden kann. Es ist relativ einfach, mit einer Dateigröße von, sagen wir, 1.024 Kbyte zu starten und nach Änderung der Datei mit der gleichen Größe zu enden.

Der Prozess ist allerdings komplexer, wenn eine binäre Datei verändert wird. Binären Dateien werden in der Regel spezielle Funktionsbibliotheken beigefügt, ohne die das Programm nicht funktionieren würde. Daher müssen Sie die unentbehrlichen Funktionen des Programms beibehalten und trotzdem Raum für Ihren eigenen Trojanischen Code finden.

Das meistverbreitete Szenario ist das Angreifen über eine bekannte Datei. Die Datei ist in der Distribution Ihres Betriebssystems enthalten, die Sie von Ihrem Hersteller bekommen z.B die Datei csh in Unix oder die Datei command.com in DOS). Diese Dateien werden bei Erstinstallation auf Ihre Festplatte geschrieben und sie beinhalten eine Datums- und Zeitangabe und haben eine bestimmte Größe. Eine Differenz in den Zeit-, Datums- oder Größenangaben gegenüber den ursprünglichen Werten würde sofort Verdacht erregen.

Böswillige Programmierer wissen das. Ihre Aufgabe besteht deshalb darin, den Source- Code sorgfältig nach Dingen zu untersuchen, die ausgelassen werden können (sie löschen möglicherweise Kommentare oder andere nicht so wichtige Elemente der Datei). Dann wird der unautorisierte Code integriert und die Datei neu kompiliert. Der Cracker überprüft die Dateigröße. Wenn sie zu klein oder zu groß ist, beginnt der Cracker den Prozess erneut, bis er eine kompilierte Datei hat, die der ursprünglichen Dateigröße so nah wie möglich ist.

Tipp:

Wenn die Datei noch nicht verteilt wurde, braucht sich der Angreifer über dieses Problem keine Sorgen zu machen, weil noch niemand die Datei oder ihre Größe gesehen hat. Vielleicht würde nur der Originalautor wissen, dass etwas nicht stimmt. Wenn dieser Originalautor sich nicht um Sicherheit kümmert, würde vielleicht nicht einmal er etwas merken. Wenn Sie Programmierer sind, denken Sie doch einmal an die letzte Datei, die Sie kompiliert haben. Wissen Sie noch, wie groß sie war?

Noch einmal zur Wiederholung: Datum, Datum des letzten Zugangs, Zeit und Größe sind alles Angaben ohne wirkliche Bedeutung. Keine dieser Angaben ist geeignet, die Integrität einer Datei sicherzustellen. Daher hat das Erstellen einer umfassenden Datenbank über alle Dateien und ihre entsprechenden Werte (Zeit, Größe, Datum oder Änderungen) nur sehr limitierten Wert:

Eine Checkliste ist eines der Formulare dieser Datenbank für ein Unix-System. Die Dateiinhalte selbst werden normalerweise nicht gespeichert, da dies zuviel Festplattenspeicher in Anspruch nehmen würde. Statt dessen würde eine Checkliste eine Reihe von Werten enthalten, die aus der ursprünglichen Datei generiert werden - darunter in der Regel die Länge, das Datum der letzten Modifizierung und der Besitzer. Die Checkliste wird regelmäßig erneuert und mit den gespeicherten Kopien verglichen, wobei Abweichungen notiert werden. Jedoch können die Inhalte der Unix- Dateien verändert werden, ohne dass sich diese Werte gegenüber denen der gespeicherten Dateien verändern. Insbesondere könnte ein Benutzer, der Root- Zugang hat, die Originalfestplatte so modifizieren, dass sie die gespeicherten Dateien ändert, ohne dies in der Checkliste anzuzeigen.

Es gibt andere Indizierungen. Zum Beispiel könnten Sie die Basis-Prüfsummen benutzen. Obwohl Prüfsummen zuverlässiger sind als Zeit, Datum oder Datum der letzten Modifizierung, können auch sie geändert werden. Spezialisten schlagen vor, dass Sie bei Verwendung eines Basisprüfsummensystems Ihre Prüfsummenliste auf einem separaten Server oder gar einem separaten Medium aufbewahren sollten, das nur durch Root oder andere vertrauenswürdige Benutzer zugänglich ist. Prüfsummen funktionieren gut für die Überprüfung der Integrität einer Datei, die von Punkt A zu Punkt B übertragen wurde, aber das war's auch schon.

Sie fragen sich wahrscheinlich, ob es überhaupt eine Technik gibt, die hinreichend ist. Ich freue mich, diese Frage bejahen zu können. Es handelt sich hierbei um die Berechnung eines digitalen Fingerabdrucks für jede Datei unter Benutzung verschiedener Algorithmen. Eine Familie von Algorithmen namens MD series wird für diesen Zweck eingesetzt. Eine der beliebtesten Implementierungen ist ein System namens MD5.

 

12.6.1 MD5

MD5 gehört zu einer Familie von One- Way- Hash- Funktionen namens message digest algorithms . Das MD5-System wird im RFC 1321 definiert:

Der Algorithmus nimmt eine Nachricht von willkürlicher Länge als Eingabe und erzeugt einen 128-Bit-»Fingerabdruck« oder »message digest« der Eingabe als Ausgabe. Es wird gemutmaßt, dass es rechnerisch unmöglich ist, zwei Nachrichten zu erzeugen, die den gleichen Fingerabdruck haben, bzw. eine Nachricht zu erzeugen, die einen vorher bestimmten Ziel-Fingerabdruck hat. Der MD5-Algorithmus ist für Digitale- Signatur- Applikationen bestimmt, wenn eine große Datei in einer sicheren Weise »komprimiert« werden muss, bevor sie mit einem privaten (geheimen) Schlüssel in einem Public-Key- Verschlüsselungssystem wie RSA verschlüsselt wird.

Wenn Sie eine Datei durch MD5 laufen lassen, entsteht der Fingerabdruck als ein 32stelliger Wert, der so aussieht:

2d50b2bffb537cc4e637dd1f07a187f4


Viele Sites, die Unix-Software vertreiben, benutzen MD5, um digitale Fingerabdrücke für ihre Distributionen zu erzeugen. Während Sie durch Ihre Verzeichnisse blättern, können Sie sich den Original-Fingerabdruck jeder Datei genau ansehen. Eine typische Verzeichnisauflistung würde wie folgt aussehen:

MD5 (wn-1.17.8.tar.gz) = 2f52aadd1defeda5bad91da8efc0f980
MD5 (wn-1.17.7.tar.gz) = b92916d83f377b143360f068df6d8116
MD5 (wn-1.17.6.tar.gz) = 18d02b9f24a49dee239a78ecfaf9c6fa
MD5 (wn-1.17.5.tar.gz) = 0cf8f8d0145bb7678abcc518f0cb39e9
MD5 (wn-1.17.4.tar.gz) = 4afe7c522ebe0377269da0c7f26ef6b8
MD5 (wn-1.17.3.tar.gz) = aaf3c2b1c4eaa3ebb37e8227e3327856
MD5 (wn-1.17.2.tar.gz) = 9b29eaa366d4f4dc6de6489e1e844fb9
MD5 (wn-1.17.1.tar.gz) = 91759da54792f1cab743a034542107d0
MD5 (wn-1.17.0.tar.gz) = 32f6eb7f69b4bdc64a163bf744923b41

 

Wenn Sie eine Datei von solch einem Server herunterladen und feststellen, dass der digitale Fingerabdruck anders ist, gibt es eine 99,9999prozentige Chance, daß etwas nicht stimmt.

MD5 ist ein populärer Algorithmus und wurde in viele Applikationen eingefügt. Einige extreme Sicherheitsprogramme benutzen MD4- und MD5-Algorithmen. Eines dieser Programme ist S/Key von den Bell Laboratories. S/Key generiert Einmal- Passwörter und wird für Remote Logins benutzt. S/Key bietet fortgeschrittene Sicherheit für entfernte Arbeitssitzungen (wie Telnet oder Rlogin- Verbindungen). Die Vorteile von MD5 werden im »S/Key Overview« (Autor unbekannt) beschrieben:

S/Key benutzt entweder MD4 oder MD5 (One-Way-Hashing- Algorithmen, entwickelt von Ron Rivest), um ein Einmal-Passwort-Schema zu implementieren. In diesem System werden Passwörter in Klartext über das Netzwerk verschickt, aber nachdem ein Passwort benutzt wurde, ist es für einen Angreifer nicht mehr nützlich. Der größte Vorteil von S/Key ist, dass es ohne Modifizierung von Client-Software und nur unbedeutender Unbequemlichkeit für die Benutzer gegen Angreifer schützt.

Ob mit oder ohne MD5, Objektvergleich ist ein komplexer Prozess. Es ist richtig, dass Sie auf einer einzelnen Workstation mit wenigen Ressourcen jede Datei und jedes Verzeichnis per Hand vergleichen könnten. In größeren vernetzten Umgebungen ist dies jedoch schlicht unmöglich. Verschiedene Utilities wurden bereits entwickelt, um Objektvergleich durchzuführen. Das meistgelobte ist ein Produkt, das passenderweise Tripwire genannt wird.

Tripwire

 Tripwire (geschrieben im Jahr 1992) ist ein umfassendes Dateiintegritäts-Tool. Tripwire ist gut durchdacht, einfach zu verstehen und kann ohne große Schwierigkeiten implementiert werden.

Das System liest Ihre Umgebung von einer Konfigurationsdatei. Diese Datei enthält alle Dateimasken (die Arten der Dateien, die Sie überwachen wollen). Das System kann sehr genau sein. Zum Beispiel können Sie spezifizieren, welche Änderungen an Dateien einer bestimmten Klasse vorgenommen werden können, ohne dass Tripwire die Änderungen angibt (oder, für umfassendere Überwachungen, können Sie ein Verzeichnis als Ziel des Überwachungsprozesses festlegen). Die ursprünglichen Werte (digitale Fingerabdrücke) dieser Dateien werden in einer Datenbankdatei aufbewahrt. Auf diese Datenbankdatei (einfaches ASCII) wird immer dann zugegriffen, wenn eine Signatur kalkuliert werden muss. In der Distribution sind folgende Hash- Funktionen enthalten:

  • CRC32. Diese Hash- Methode wird cyclical redundancy checking (zyklische Redundanzprüfung) genannt. CRC wird dazu benutzt, die Integrität von Dateien zu prüfen, die digital übertragen werden. Am Anfang der Übertragung wird eine Datei in kleine Teile von vorherbestimmter Größe geteilt. Für jedes dieser Teile wird vor dem Senden ein kryptographischer Wert generiert. Wenn der jeweilige Teil sein Ziel erreicht, berechnet der Empfängerrechner den kryptographischen Wert noch einmal. Wenn die zwei Werte gleich sind, wurde die Datei ohne Fehler übertragen. Wenn sich die zwei Werte unterscheiden, werden die Daten wieder zurückgeschickt. CRC32 ist eine extreme 32-Bit-Implementierung von CRC und wird oft für das Überprüfen von Dateiintegrität benutzt.
  • MD2. MD2 ist in der MD5-Familie der message digest algorithms. Es ist sehr stark. Zum Beispiel wurde in seiner Spezifikation angegeben, daß »die Möglichkeit, zwei Nachrichten mit dem gleichen Fingerabdruck zu generieren, in einer Größenordnung von 264 Arbeitsschritten liegt und daß die Möglichkeit, eine Nachricht mit einem bekannten Fingerabdruck zu generieren, in der Größenordnung von 2128 Arbeitsschritten.
  • MD4. Für Dokumentation über MD4 - das in die Public Domain plaziert wurde - gehen Sie zu http://info.internet.isi.edu/in-notes/rfc/files/rfc1320.txt
  • MD5. MD5 ist ein langsamerer, aber sichererer Algorithmus als MD4 und stellt daher eine Verbesserung dar. Um mehr über die Entwicklung und den Zweck von MD5 zu erfahren, gehen Sie zu http://info.internet.isi.edu/in-notes/rfc/files/rfc1321.txt
  • SHA (der NIST Secure Hash Algorithm). SHA ist außergewöhnlich stark und wurde in Umgebungen der Verteidigungsbehörden benutzt. Zum Beispiel verlangt das Verteidigungsministerium (DoD), daß alle von ihm verwalteten Systeme sich an die Richtlinien der Multilevel Information System Security Initiative (MISSI) halten und nur Produkte verwenden, die von derselben freigegeben worden sind. SHA wird in einem der von der MISSI freigegebenen Produkte verwendet, der Fortezza Card, einer PCMCIA-Karte, die eine zusätzliche Sicherheitsschicht für E-Mail zur Verfügung stellt, die von DoD-Laptops verschickt wird. (SHA ist auch in das Secure Data Network System Message Security Protocol integriert, ein Protokoll, das dazu entwickelt wurde, Sicherheit für die X.400-Nachrichtenbearbeitungsumgebung zu bieten.) Um mehr über SHA zu erfahren, holen Sie sich die Federal Information Processing Standards Publication 180-1 unter http://www.itl.nist.gov/div897/pubs/fip180-1.htm
  • Snefru (Xerox Secure Hash Function). Snefru kann entweder 128-Bit- oder 256-Bit- Fingerabdrücke generieren. Snefru wurde von Xerox entwickelt und ist extrem stark. Derzeit ist es als Version 2.4 verfügbar. Sie finden Snefru (und die dazugehörende Dokumentation) unter ftp://ftp.parc.xerox.com/pub/hash/hash2.5a/.

Tripwire benutzt standardmäßig sowohl MD5 als auch Snefru, um digitale Fingerabdrücke für Dateien zu generieren. (Sie können jede dieser Hash-Funktionen auf jede einzelne Datei, einen Teil von Dateien oder alle Dateien anwenden.) Jeder Datei-Fingerabdruck ist absolut einzigartig. Es gibt wenig oder keine Chance, daß zwei Dateien den gleichen digitalen Fingerabdruck haben. Die Autoren erklären:

Es wurde ein Versuch gemacht, eine doppelte Snefru[16]-Signatur für das /bin/login- Programm mit Hilfe von 130 Sun-Workstations zu finden. Über einen Zeitraum von einigen Wochen wurden 17 Millionen Signaturen generiert und mit 10.000 gespeicherten Signaturen verglichen, der maximalen Anzahl von Signaturen, die in den Speicher passen, ohne bei jeder erneuten Suche Speicherseitenfehler hervorzurufen. Etwa 224 Signaturen wurden überprüft, ohne Übereinstimmungen zu finden, und etwa 1015 Signaturen blieben unüberprüft.

Idealerweise sollten Sie ein Tool wie Tripwire gleich nach einer Erstinstallation einsetzen. Dies gibt Ihnen 100prozentige Dateiintegrität als einen Anfangsbezugspunkt. Nachdem Sie die komplette Datenbank für Ihr Dateisystem generiert haben, können Sie andere Benutzer einführen (die Ihr System sofort mit Müll füllen werden, der auch verifiziert werden muß). Tripwire ist extrem gut geplant. Hier sind einige der interessanteren Funktionen:

  • Tripwire kann seine Aufgaben über Netzwerk-Verbindungen durchführen. Daher können Sie eine Datenbank mit digitalen Fingerabdrücken für ein gesamtes Netzwerk bei der Installierung generieren. 
  • Tripwire ist in C geschrieben, und an Portierung wurde gedacht. Es kann für die meisten Dialekte ohne Änderung kompiliert werden. 
  • Tripwire kommt mit einer Makro-Bearbeitungssprache, so daß Sie bestimmte Aufgaben automatisieren können.

Tripwire ist ein hervorragendes Tool, aber es gibt einige erwähnenswerte Punkte in Hinsicht auf Sicherheit. Einer dieser Punkte betrifft die Wertedatenbank, die generiert wird und erhalten bleibt. Im wesentlichen geht es um die gleichen Punkte, die ich vorher schon angesprochen habe: Ein Cracker kann Datenbanken verändern. Es ist daher empfehlenswert, daß Sie einige Maßnahmen ergreifen, um diese Datenbank zu schützen. Den Autoren des Tools waren dies von Anfang an klar:

Die Datenbank, die von dem Integritätsprüfer benutzt wird, sollte vor unautorisierten Modifikationen geschützt werden; ein Eindringling, der die Datenbank ändern kann, kann das gesamte Überprüfungssystem für die Integrität von Dateien untergraben.

Eine Methode zum Schutz der Datenbank ist extrem sicher: Speichern Sie die Datenbank auf einem schreibgeschützten Medium. Dies beseitigt fast jede Möglichkeit der Manipulation. Tatsächlich wird diese Technik zu einem starken Trend im Gebiet Sicherheit. In einer kürzlich stattgefundenen Sicherheitsberatung stellte ich überrascht fest, daß die Kunden (die ja gerade erst etwas über Sicherheit lernen sollten) sehr viel Interesse für schreibgeschützte Medien für ihre Web-basierten Datenbänke zeigten. Diese Datenbänke enthielten sensible Informationen, die im Fall einer Modifizierung ein Gefahrenpotential für die Sicherheit anderer Systeme darstellen könnten.

Kim und Spafford (die Autoren von Tripwire) empfehlen ebenfalls, die Datenbank auf diese Weise zu sichern, obwohl sie zugestehen, daß dies einige praktische Probleme in bezug auf die Prozedur hervorrufen könnte. Es hängt viel davon ab, wie oft die Datenbank aktualisiert wird, wie groß sie ist usw. Wenn Sie Tripwire auf einer großangelegten Basis implementieren (und in seiner Maximal-Applikation), könnte die Einrichtung einer schreibgeschützten Datenbank eine sehr gute Idee sein. Dies hängt wiederum vom Risikoniveau und der Notwendigkeit für erhöhte oder optimale Sicherheitsmaßnahmen ab.

 TAMU

Die TAMU- Programmfamilie (von der Texas A&M University) ist eine Sammlung von Tools, die die Sicherheit eines Unix-Rechners erheblich verbessern. Diese Tools wurden als Antwort auf ein sehr reales Problem entwickelt. Wie in der Zusammenfassung, die der Distribution beigelegt ist, erklärt wird:

Unix-Rechner der Texas A&M University wurden kürzlich von einer Gruppe von Internet-Crackern weitreichend angegriffen. Dieser Bericht gibt Ihnen einen Überblick über das Problem und unsere Antworten, darunter die Entwicklung von Richtlinien, Prozeduren und Tools für den Schutz der Universitätsrechner. Die entwickelten Tools umfassen »drawbridge«, eine fortschrittliche Internet-Filter-Bridge, »tiger scripts«, extrem mächtige aber einfach zu bedienende Programme für das Schützen individueller Hosts, und »xvefc« (Xview Etherfind Client), ein mächtiges Überwachungstool für verteilte Netzwerke.

Die TAMU-Distribution beinhaltet ein Paket von tiger scripts, die die Basis der digitalen Fingerabdruckauthentifizierung der Distribution bilden. Wie in der Zusammenfassung erklärt wird:

Der durchgeführte Überprüfungsvorgang deckt eine ganze Reihe von Dingen ab, darunter Dinge, die in CERT- Mitteilungen identifiziert wurden, und Dinge, die uns während der kürzlich stattgefundenen Angriffe aufgefallen sind. Die Skripte benutzen Xerox's Kryptographie-Prüfsummenprogramme, um sowohl modifizierte System- Binärdateien (mögliche Hintertüren/Trojaner) zu überprüfen, als auch zu prüfen, ob die erforderlichen sicherheitsrelevanten Patches vorhanden sind.

Die TAMU-Distribution ist umfassend. Sie können TAMU benutzen, um mehrere Sicherheitsprobleme zu lösen, unter anderem eben auch das Suchen nach Trojanern. TAMU beinhaltet ein Netzwerk-Überwachungstool und einen Paketfilter.

Tipp:

Die TAMU-Distribution finden Sie unter ftp://coast.cs.purdue.edu/pub/tools/unix/TAMU/.

 

ATP (Anti-Tampering Program)

ATP ist unbekannter als Tripwire oder die TAMU-Distribution, funktioniert aber so ähnlich wie Tripwire. Wie David Vincenzetti von der Universität Mailand, Italien, in ATP - Anti- Tampering Program erklärt:

ATP »macht eine Momentaufnahme« des Systems unter der Annahme, dass Sie sich in einer vertrauenswürdigen Konfiguration befinden, und führt einige Prüfungen durch, um mögliche Veränderungen an Dateien zu überwachen.

Wegweiser:

Sie finden ATP - Anti-Tampering Program unter http://www.cryptonet.it/docs/atp.html.

ATP etabliert eine Datenbank mit Werten für jede Datei. Einer dieser Werte (die Signatur) besteht aus zwei Prüfsummen. Die erste ist eine CRC32-Prüfsumme, die zweite eine MD5- Prüfsumme. Sie fragen sich vielleicht, warum das so ist, insbesondere da Sie wissen, dass CRC- Prüfsummen nicht ganz sicher oder zuverlässig sind. Aufgrund der Geschwindigkeit wird die CRC32-Prüfsumme benutzt für Überprüfungen, die regelmäßig (vielleicht täglich) durchgeführt werden. MD5, das umfangreicher ist (und deshalb mehr Ressourcen und Zeit braucht), ist für geplante, periodische Überprüfungen (vielleicht einmal wöchentlich) vorgesehen.

Die Datenbank wird unter Benutzung von DES verschlüsselt. ATP bietet eine flexible (aber recht sichere) Methode für die Überwachung Ihres Netzwerks und für das Aufdecken eventuell vorhandener Trojaner.

 

Hobgoblin

Hobgoblin ist eine interessante Implementierung einer Datei- und Systemintegrität- Überprüfungsmethode. Die Autoren des Definitionspapiers (Farmer und Spafford an der Purdue University) geben an, dass das Programm schneller und leichter konfigurierbar ist als COPS und generell detailliertere Informationen sammelt. Was Hobgoblin besonders interessant macht, ist, daß es sowohl eine Sprache als auch ein Interpreter ist. Die Programmierer haben ihre eigenen einzigartigen Deskriptoren und strukturellen Konventionen zur Verfügung gestellt.

Das Paket scheint leicht zu benutzen, aber es gibt einige Fallen. Obwohl Globbing-Konventionen (sowohl von csh als auch von sh/bash) zugelassen sind, benutzt der Hobgoblin- Interpreter bekannte und oft benutzte Metacharaktäre, die eine besondere Bedeutung haben. Wenn Sie dieses mächtige Tool also in der Praxis anwenden wollen, sollten Sie einige Stunden einplanen, um sich mit diesen Konventionen vertraut zu machen.

Insgesamt ist Hobgoblin ein extrem mächtiges Tool für die Überwachung von Dateisystemen. Allerdings wurde das Programm speziell für Systeme an der University of Rochester geschrieben, und obwohl es erfolgreich auf einer ganzen Reihe von Betriebssystemen kompiliert wurde, kann es Unterschiede in der Performance geben - vor allem wenn Sie keinen Sun3, Sun4 oder VAX mit Ultrix benutzen. Außerdem wurde bemängelt, daß Hobgoblin einige Elemente fehlen, die in anderen Tools zur Überwachung von Systemintegrität enthalten sind, obwohl ich denke, dass entsprechende Tools (und ihre Funktionen) in Hobgoblin integriert werden können.

Tipp:

Hobgoblin und seinen Source-Code finden Sie unter http://ftp.su.se/pub/security/tools/admin/hobgoblin/hobgoblin.shar.gz.

 

Auf anderen Plattformen

Es gibt Dateiintegrität- Monitoringtools auch für Windows, aber sie sind nicht so mächtig und zuverlässig wie die für andere Plattformen (sie sind auch nicht ausdrücklich für das Überprüfen mehrerer Rechner und Dateisysteme in Netzwerken entwickelt). Die meisten dieser Tools benutzen Prüfsummen als Überprüfungsbasis und sind daher nicht so umfassend wie die Tools, die MD5 benutzen. Die meisten sind zur Benutzung als Virenscanner gedacht. Das ist unglücklich, weil ein Trojaner ebenso leicht für die Microsoft-Plattform geschrieben werden kann wie für jede andere Plattform. Gerade jetzt, da Windows NT als Plattform für Internet-Server benutzt wird, wird es zu einer Hauptzielscheibe für Trojanische Pferde werden.

 

Zusammenfassung

Trojanische Pferde sind ein bedeutendes Sicherheitsrisiko für jedes Netzwerk. Da PC- basierte Server sich im Internet immer weiter verbreiten, müssen Entwickler Utilities (zusätzlich zu den schon vorhandenen Anti- Viren- Utilities) entwerfen, die Trojanische Pferde aufdecken können. Abhilfe finden Sie unter diesen Link

 

Home ] Nach oben ]

Senden Sie E-Mail mit Fragen oder Kommentaren zu dieser Website an: tos.computer@gmx.de 
Copyright © 2003 TOS Computer Systeme
Stand: 14. November 2004