Trojan horses, Backdoors, …
Transcription
Trojan horses, Backdoors, …
Trojan horses, Backdoors, … Igor Chauskyy Technische Universität München 11.05.2009 Zusammenfassung Die vorliegende Seminararbeit beschäftigt sich mit den Trojanern und jeglicher Malware, die mit dieser Klasse im engeren Zusammenhang steht. Nach einer Definition des Begriffes „Trojaner“ und einem Versuch diese Malware von der restlichen abzugrenzen, wird auf die Techniken mit denen sie sich verbreiten, vermehren, tarnen und Schaden anrichten, eingegangen. Anschließend werden Techniken aufgeführt, mit denen man gegen Angriffe von Trojanern wehren kann. Am Ende dieser Arbeit wird an einem, vor kurzem für viel Auffuhr verantwortlichen, Beispiel die Funktionsweise veranschaulicht. 2 Igor Chauskyy Inhaltsverzeichnis 1 Einleitung 2 Begriffsdefinition 3 Klassifizierung 3.1 Logische Bomben 3.2 Dropper 4 Funktionsweise und Aufbau 4.1 Verbreitung 4.1.1 Durch den User 4.1.2 Durch den unerlaubten Zugang zum System 4.2 Tarnmechanismen 4.2.1 Rootkits 4.3 Auslöser für die Schadfunktion 4.4 Schadfunktion 4.4.1 Backdoors 5 TrojanerBekämpfung 5.1 Entdecken eines Trojaners 5.2 Beseitigung eines Trojaners 6 Beispiel: Conficker 6.1 Klassifizierung 6.2 Funktionsweise und Aufbau 6.2.1 Verbreitung 6.2.2 Tarnmechanismen und Selbstschutz 6.2.3 Auslöser für die Schadfunktion 6.2.4 Schadfunktion 6.3 Bekämpfung 6.3.1 Entdecken 6.3.2 Beseitigung 7 Schluss 8 Quellenangabe Trojan horses, Backdoors, … 3 1 Einleitung Experten halten es für die schlimmste Infektion, seit SQL Slammer. Schätzungen zu folge liegt die Anzahl der Computer, die vom diesem Wurm infiziert wurden zwischen 9 und 15 Millionen. Die Anzahl der heute noch infizierten PCs liegt jedoch bei ca. 3 Millionen, was aber mehr als genug ist, um großen Schaden zu verursachen. Conficker, ein Trojaner/Wurm, der nicht nur dafür gesorgt hat, dass Microsoft am 12. Februar 2009 den Anfang einer Zusammenarbeit der TechnologieKonzerne verkündet, die den Auswirkungen von Conficker gegenübertreten (Organisationen, die bei diesem Projekt mitmachen sind unter anderem Microsoft, Afilias, ICANN, Neustar, Verisign, CNNIC, Public Internet Registry, Global Domains International, Inc., M1D Global, AOL, Symantec, FSecure, ISC, researchers from Georgia Tech, The Shadowserver Foundation, Arbor Networks und Support Intelligence), seit dem 13. Februar 2009, bietet Microsoft auch noch eine Belohnung über 250.000 USD für Informationen, die zur einer Verhaftung und Verurteilung der Erschaffer und/oder der Verbreiter von Conficker. Diese Maßnahme wurde seit 2004 (Sasser) nicht mehr ergriffen. [7] 2 Begriffsdefinition „Ein Trojaner [der Name wurde in dieser Bedeutung zum ersten Mal von Dan Edwards im Jahre 1972 gebraucht] ist ein Programm, das vorgibt, eine wünschenswerte oder notwendige Funktion auszuführen und dies möglicherweise auch tut, aber außerdem eine oder mehrere Funktionen ausführt, die die Person, die das Programm ausführt, weder erwartet noch wünscht.“ [6 : p.417] Die in dieser Definition erwähnten unerwünschten Funktionen laufen zu dem in der Regel ohne das Wissen der Nutzer ab. Sie sind oft böswillig, auch wenn das in manchen Fällen nicht von ihrem Erschaffer beabsichtigt war. Vor allem alltäglich genutzte Tools oder Programme werden als Tarnobjekte für Trojaner verwendet. In Abgrenzung zu Würmern und Viren können sie sich nicht selbst replizieren. Das allein reicht aber für eine Definition nicht aus. Man muss auch die Payload und aber vor allem die Absicht hinter so einem Programm berücksichtigen. So ist ein Programm, das die Festplatte formatiert (z.B. FORMAT), zu einem Trojaner, wenn man es als ein anderes tarnt oder ihr eine andere Funktion zuschreibt. [6] 1 2 3 1 2 3 Wobei Mail/Würmer oft auch als Trojaner bezeichnet werden, da sie „das Opfer mithilfe von SocialEngineeringMethoden befallen[…], und zwar unabhängig von ihrer Fähigkeit, sich zu replizieren.“ [6 : p.419] Siehe Punkt 3.4 4 Igor Chauskyy Mögliche Funtionen eines Trojaners: • Deaktivierung von Firewalls, Virenscannern oder anderen Sicherungssystemen • Installation eines Keyloggers zum Protokollieren von Tastatureingaben • Versuchen ein Backdoor zu installieren • Integration des PC in ein fernsteuerbares „Botnet“, um zusammen mit anderen befallenen Systemen Spam zu versenden oder DoSAngriffe (DenialofService) durchzuführen • Screenshotmodul installieren, Screenshots erstellen • Aktivieren von angeschlossener Hardware (Webcam) • Zugriff (samt Schreibrechten) auf Dateien • Downloaden von weiterer Malware oder sonstigen Programmen • Logs mit Tastatureingaben erstellen 3 Klassifizierung Eine Möglichkeit Trojaner zu Klassifizieren wäre sie in destruktive Trojaner und Trojaner, die die Privatsphäre verletzen, unterteilen. Dabei sind destruktive Trojaner, die, deren Hauptabsicht ist Daten oder ganze Festplatten zu beschädigen oder unbrauchbar zu machen. Hier wird der Schaden sofort nach der Ausführung angerichtet. Logische Bomben sind z.B. eine gut vertretene Unterklasse von Trojanern. „Die Privatsphäre verletzenden Trojaner führen [oder verbergen] in der Regel eine Funktion aus, die dem Programmierer wichtige und besondere Informationen über ein System vermittelt oder dieses System auf andere Art und Weise gefährdet.“ [6 : p.425] Zu dieser Art gehört jeglicher Informationsdiebstahl. Dropper gehören zu dieser Klasse, da sie ja selber keinen Schaden anrichten, sondern nur ein Transportmittel sind. 3.1 Logische Bomben Logische Bomben sind eine spezielle Art von Trojaner, die erst nach der Erfüllung einer bestimmten Bedingung „losgeht“. Solche Bedingungen können z.B. • ein bestimmtes Systemdatum (z.B. Freitag, der 13), • Eingeben bestimmter Worte, • Zugriff durch einen Virenscanner oder • eine bestimmte Anzahl von Systemstarts sein. Im Fall einer Zeit oder Datumsbedingung wird auch von einer „Zeitbombe“ gesprochen. So findet man bei einem Ablauf einer SharewareTestversion eine ähnliche Funktionsweise vor, wie bei einer Logischen Bombe, die eine „Sperrung“ Trojan horses, Backdoors, … 5 vom Programm zu Folge hat. Da es aber von dem User erwartet war, kann es nicht zu den Trojanern gezählt werden. 3.2 Dropper Dropper sind eine spezielle Art eines Trojanischen Pferdes, die einen Virus transportieren. Es ist eine ausführbare Datei, welche Viruscode enthält, aber kein Virus ist. Dieser Viruscode stammt nicht von einer Infektion, sondern wurde gewollt in diese Datei eingefügt. Dropper dienen zur Installation anderer schädlicher Software, z. B. Viren bzw. bösartiger Trojaner. Sie sollen die schädlichen Programme heimlich einschleusen. Wenn aufgerufen, wird zuerst der BootSektor an einen anderen Platz auf dem Datenträger kopiert, dann wird der BootSektorVirus an die Stelle des BootSektors des Datenträgers kopiert und anschließend die aufgerufene Datei ausgeführt. 4 Funktionsweise und Aufbau Da Trojaner sich nicht in Programme oder andere Dateien hineinkopieren, müssen sie sich zum Überleben so im System verankern, dass sie beim Hochfahren des Systems oder bei der Anmeldung eines Benutzers gestartet werden. Schafft ein Trojaner das nicht, so ist er nach einem Herunterfahren des Systems unschädlich. [4] Der Startmechanismus der Trojaner ist meist ein zusätzlicher Eintrag in die Listen der beim Booten oder einer Anmeldung gestarteten Programme. Unter Windows beiliebt ist die Sektion der Registry HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVe rsion\Run Damit ein Rechner nicht mehrmals infiziert wird setzt sich ein Trojaner einen Merker in Form einer harmlos aussehenden Datei oder eines RegistryEintrags. Wird so ein Eintrag gefunden, bricht die Infektionsroutine ab. Da viele Trojaner auch als RATs agieren, kommen sie heutzutage in einem Packet, bestehend aus einem Servermodul (das unbemerkt auf den Rechner des Opfers gelangt), einem Clientmodul (mit dem das Servermodul ferngesteuert wird) und das Editmodul, mit dem man das Servermodul generiert (falls dies nicht vom Clientmodul erledigt wird). • Der Server: ermöglicht die Fernsteuerung eines fremden Rechners durch eine Verbindung mittels IPAdresse, wenn aktiv. Muss zuerst auf den Rechner gelangen und dann zum aktivieren ausgeführt werden. Die IPAdresse muss irgendwie zu dem ClientNutzer gelangen. Damit die Verbindung im Hintergrund jederzeit besteht, muss der Server automatisch mit dem Betriebssystem starten. 6 Igor Chauskyy • Der Client: Steuert den Server fern, indem er den Server über die IPAdresse anspricht. Die verwendeten Funktionen hängen von dem verwendeten Trojaner ab. • Der Editor: Dient zur Einstellung des Servers. So kann hier ein anderes Icon, Format, und Funktionen des Servers gewählt und verändert werden. Damit der Client mit dem Server eine Verbindung aufbauen kann, benötigt er die IPAdresse des infizierten Rechners. Da nicht alle Server über eine Mitteilungs Funktion verfügen stehen dem Angreifer verschiedene Möglichkeiten zur IP Ermittlung zur Verfügung: Die einfachste Variante ist bereits mit dem infiziertem Rechner verbunden zu sein (über ICQ, IRC etc.). Durch das Eingeben von „netstat –n“ in der Eingabeaufforderung kann man alle aktiven Verbindungen einsehen. Der Server wird eine der RemoteAdressen sein (meistens „wartend“ oder „listening“). Eine weitere Variante ist es einen TrojanerServer zu verwenden, der über eine Benachrichtigungsfunktion verfügt (z.B. SubSeven). In dem Fall sendet der Server, sobald der infizierte Rechner eine Verbindung zum Internet herstellt, die aktuelle IP Adresse an den Client/eine voreingestellte EMail/ICQ/etc. 4.1 Verbreitung In den meisten Fällen werden Trojaner von dem ahnungslosen Benutzer selbst auf seinen Computer geholt. Daher sind Methoden der sozialen Beeinflussung eine wichtige Komponente eines Trojaners. Mit diesen werden die Erwartungen des Opfers manipuliert. 4.1.1 Durch den User • Eine Möglichkeit ist es den Trojaner (damit ist im weiteren Verlauf der Server gemeint) in eine ausführbare Datei zu integrieren. Es gibt eine Menge Programme dafür, wie z.B. Joiner oder Binder. Manche Trojanerkits besitzen solche Funktionen bereits (z.B. SubSeven). Wenn die Datei ausgeführt wird, wird sie in den Speicher geladen, wo der Trojaner vor dem tatsächlichen Programm ausgeführt/installiert wird. Damit der Trojaner unbemerkt bleibt wird im Anschluss an die Trojanerausführung das tatsächliche Programm/Datei ausgeführt/Angezeigt. • Eine andere Möglichkeit ist es den Trojaner als eine nützliche Datei aussehen zu lassen, indem man das Icon des Servers verändert (z.B. in das eines bekannten Spiels oder Screensavers) oder die .EXE Endung verbirgt, indem man an den Dateinamen eine andere Endung anfügt (z.B. Server.jpg.exe). Falls der Rechner so eingestellt ist, dass der vollständige Dateiname samt allen Endungen angezeigt wird, kann man dennoch die meisten Programme (z.B. ICQ oder Outlook) dadurch täuschen, dass man mehrere Leerzeichen vor .EXE einfügt (Server.jpg .exe). Da bei dieser Möglichkeit die Datei nicht die vom Nutzer erwartete Funktion ausführt, muss dafür gesorgt werden, dass eine sinnvolle Fehlermeldung angezeigt Trojan horses, Backdoors, … 7 wird, damit der Nutzer keinen bzw. so wenig wie möglich verdacht schöpft (z.B. „Memory error!“ oder „Fehler bei der Installation aufgetreten“ etc.). • Tarnung mit WinZip (bzw. einem anderen Packprogramm): Es wird ein Archiv erzeugt und der Server mit anderen Dateien (z.B. Bilder) hineingepackt. Das Kommando „run command after unzipping“ startet den Server gleich nach dem Entpacken aus dem Archiv. Die (meist verfügbare) ServerOption „melt server after installation“ löscht den Server nach erfolgreicher Installation und hinterlässt somit keine sichtbaren Spuren einer Infektion. Statistisch gesehen handelt sich in den meisten Fällen um eine Infektion per E Mail (ca. 90%), durch einen Anhang, der den Trojaner enthält. [4] Die gefährlichste Art der Verbreitung sind Würmer. Diese können sich sehr schnell verbreiten, z.B. per EMail, und können Trojaner transportieren. Alle drei dieser Methoden setzen voraus, dass der User sich die infizierte Datei selber auf den PC holt. Als Quellen bieten sich vor allem Internetgruppen an, in denen kopierte Software (Warez) oder pornografisches Material kursiert. Auch über EMail und MessagingDienste können Trojaner verteilt werden. 4.1.2 Durch den unerlaubten Zugang zum System Eine Möglichkeit einen Trojaner unbemerkt einzuschleusen ist die AutoplayFunktion eines CDLaufwerks. Dabei werden meist Raubkopien gefragter Medien benutzt (z.B. Spiele). Dazu manipuliert man den AutorunEintrag so, dass auch der Server automatisch ausgeführt wird Ein eher exotischer Ansatz zur Verbreitung eines Trojaners ist das Manipulieren eines Compilers selbst, statt des SourceCode, denn bevor eine Anweisung ausgeführt wird, wird sie zuerst von dem Compiler in ObjectCode übersetzt. Da in beiden Fällen der Code eines bestimmten Prozesses (z.B. der von login) gut geschützt sein kann, ist eine Manipulation des Compilers eine gute „Lösung“. Bei diesem Vorgehen wartet der Schädling bis dieser bestimmte Code kompiliert wird und wenn das der Fall ist, fügt er den schädlichen Code an einer bestimmten Stelle des ein. Dazu muss der Hacker natürlich wissen, wie der Code, in den er den Trojaner pflanzen will, aussieht oder er muss extra ein Erkennungsprogramm benutzen. Hier ein kleines Beispiel, wie man einen CCompiler dazu bringt einen Trojaner in den loginProzess einzufügen: Das ist eine Kurzversion der Subrutine, die die nächste Codezeile des Source Programms kompiliert compile(s){ … normales kompilieren if (match(s, „check(username, password) {„)) 8 Igor Chauskyy compile(“if ( match(password, \”trojan horse\”)) return OK;”); } [1] Nun kann sich jeder mit dem Passwort „trojanhorse“ anmelden! 4 Eine der Gefahren stellen folgende HTMLErweiterungen dar. Sie sind für den Anwender zunächst unsichtbar und können wichtige Daten ausspionieren, was beträchtlichen Schaden verursachen kann. Mobile Codes sind in Internetseiten integriert und werden durch den Aufruf mittels Browser ausgeführt. Die eigentliche Gefahr besteht darin, dass wichtige Inhalte nicht nur ausgespäht (Kennwörter, Kontodaten), sondern auch via Internet weitergeleitet werden können und konkreten Schaden auf dem Rechner anrichten. Zu dieser Kategorie gehören: • JavaScript: Eine Makrosprache von Netscape, die sich in HTML einbinden lässt. Sie wird auf dem Browser des ClientRechners interpretiert • JavaApplets: Kleine Programme/Anwendungen, in Java geschrieben. Befinden sich auf einem Server, werden aber auf dem ClientRechner ausgeführt. • ActiveX: Erleichtert die Freigabe von Informationen zwischen Anwendungen und die Einbettung beliebiger Objekte in fremden Dokumenten, wie z.B. WebSeiten. Zwar lassen sich alle erwähnten Elemente in dem benutzen Browser abschalten, jedoch wird es selten gemacht, denn heutzutage sind diese in den meisten Web Seiten ethalten. Besonders gefährlich sind hierbei die Sicherheitslücken im Internet Explorer oder bei ActiveXControls, die auf dem Rechner bereits vorliegen und als „safe for scripting“ (also bei einer Nutzung im Browser sicher sind) markiert sind. Dadurch können bösartige Programme oder manipulierte lokale Controls im Sicherheitskontext des Arbeitsplatzes ausgeführt werden. Genauso gut können Programme in das lokale temporäre Verzeichnis kopiert werden und von dort auf dem Rechner ausgeführt werden. PHP bietet viele Möglichkeiten ungewünschte Files auf einem Webserver zu platzieren: $yourName = $_GET['name']; exec("echo $yourName"); befördert man nun den Browser zu dieser Anwendung auf der URL "application.php? name=Magoo", so wird die Webseite aufgerufen, die das Wort „Magoo“ enthällt. Bei Es könnte sich allerdings als schwierig erweisen an den Compiler ranzukommen. Dazu bräuchte man einen zusätzlichen Virus bzw. Trojaner, der fähig wäre zu prüfen, ob der User Schreibrechte zu irgendeinem Compiler hat, und einen vorkonfigurierten Compiler als Systemcompiler installieren könnte. 4 Trojan horses, Backdoors, … 9 "Magoo; wget 1.2.3.4/toolkit.c" jedoch führt der 2. Teil dazu, dass ein File auf den Server downgeloadet wird. Eine weitere Möglichkeit einen Trojaner zu installieren ist die Ausnutzung des Bufferoverflows. Dabei werden Funktionen ausgenutzt, die die Größe des Inputs nicht prüfen/beschränken. Durch einen unerwartet großen Input, wird der Buffer „überladen“ und wichtige Teile des Speichers werden überschrieben, wodurch sich das Verhalten des Programms ändert oder Funktionen überschrieben werden. Das führt dazu, dass das Programm unerwünschte Funktionen ausführt, die das Installieren eines Trojaners ermöglichen. [5] 4.2 Tarnmechanismen Da Trojaner und lizenzierte RATs auf eine sehr ähnliche Weise funktionieren, hat herkömmliche Antivirensoftware keine Möglichkeit sie voneinander zu unterscheiden. Das liegt vor allem an der Rechtslage – da diese „professionelle“ RATs ein offizieller Produkt ist, können sich deren Entwickler sich auch darüber beschweren, dass ihre legitime Software von AVSoftware als ein Schädling bezeichnet oder sogar entfernt wird. Auch kann ein Trojaner, nach seiner Ausführung mehrere Prozesse laufen lassen. Einer von denen versteckt den Trojaner und den anderen Prozess, wobei der 2. Prozess dafür sorgt, dass der 1. Prozess nicht entfernt oder beendet werden kann. Wird ein Trojaner vom svhost.exe als Service ausgeführt, bewirkt dies, dass er aus der TaskListe entfernt wird bzw. nur als „svhost.exe“ erscheint. Wird der Dienst jetzt auch im DienstManager unsichtbar gemacht, ist er mit herkömmlichen Mitteln nicht mehr zu finden. Die meisten Servermodule laufen durch ein externes Verschlüsselungsmodul und sind für ein AV beim Check meist völlig unauffällig, und somit auch für den User. 4.2.1 Rootkits Rootkits: sind Tarnvorrichtungen für die eigentlichen Schädlinge, z.B. Trojaner, die Firmengeheimnisse, Passwörter etc. ausspionieren. Beide kommen meist zusammen als EMail und getarnt als harmloses Programm, z.B. eine Präsentation oder Bildschirmschoner. Alle Dateien und Services, die den Namen des Rootkits tragen, werden mit versteckt (auch die Registrykeys). Arten von Rootkits 10 Igor Chauskyy • KernelRootkits manipulieren Kernbestandteile des Betriebssystems, indem sie Manipulationen auf einer sehr tief liegenden Schicht des Betriebsystems vornehmen. Sie nutzen die Native API (Application Programming Interface) als Schnittstelle zum Kern des Betriebsystems und sind damit in der Lage, Befehle, die aus höher gelegenen APIS wie der Win32 API stammen, abzufangen und zu modifizieren. Im Kernel verankert, können Rootkits alle Befehle von AVsoftware, Firewalls, AntiTrojanerProgrammen, Prozessmanagern, die auf einer höheren Schicht aufsetzen, abfangen und manipulieren. Sind fast immer bestrebt ihren Code im Kernel zu verankern, z.B. als Gerätetreiber. • UserlandRootkits sind vor allem unter Windows populär, da sie keinen Zugriff auf der KernelEbene benötigen. Sie stellen jeweils eine DLL bereit, die sich anhand verschiedener APIMethoden (SetWindowsHookEx, ForceLibrary) direkt in alle Prozesse einklinkt. Ist diese DLL einmal im System geladen, modifiziert sie ausgewählte APIFunktionen und leitet deren Ausführung auf sich selbst um. Dadurch gelangt das Rootkit gezielt an Informationen, welche dann gefiltert oder modifiziert werden können. Es gibt auch HybridRootkits, die beide dieser Methoden verwenden. Tarnmechanismen Wenn man einen Rootkit z.B. mit einem Task oder Dateimanager entdecken will passiert folgendes: Die Anfrage, welche Prozesse laufen bzw. welche Dateien vorhanden sind, wird normalerweise an entsprechende Module im Kernel weitergeleitet, beantwortet und an die Win API weitergeleitet. Hat sich ein Rootkit z.B. als Gerätetreiber im Kernel verankert, nimmt es die Anfrage entgegen, leitet sie weiter, filtert das Ergebnis, d.h. filtert seine Aktivitäten heraus und leitet das Ergebnis dann entsprechend weiter. Da die meisten Sicherheitsprogramme auf die Win API aufbauen, hat man keine Chance, die Tarnung der Rootkits auffliegen zu lassen. Beispiel Rootkit „Vanquish“: besteht aus zwei Binärdateien: Vanquish.exe (Autoloader) und Vanquish.dll. Nach der Installation schleust der Autoloader die Vanquish.dll in die gerade laufenden Systemprozesse von Windows ein und verankert sich selbst in der Registry. Der eingeschleuste Code sorgt dafür, dass alle Systemaufrufe und Systemprozesse der Win API über Vanquish gefiltert werden. Dadurch gelingt es dem Rootkit, alle Funktionen außer Kraft zu setzen, die ihm gefährlich werden könnten. In der Folge sind sowohl Dateien und Verzeichnisse, die als Namensbestandteil „vanquish“ tragen, als auch alle Registrierungsschlüssel und – werte mit diesem Namen unsichtbar. Der Autoloader Vanquish.exe wird mit der Vanquish.dll unsichtbar im WindowsVerzeichnis abgelegt. Als Prozess kann Vanquish schon deshalb nicht mehr entdeckt werden, weil der Autoloader nach getaner Arbeit aus dem Speicher verschwindet. Normale Prozessviewer und TaskManager zeigen nur die normalen WindowsProzesse an. Klassische AntiTrojaner wie klassische Trojan horses, Backdoors, … 11 AVscanner sind nicht in der Lage, die Infektion anzuzeigen. Allein mit Spezialtools und nur, wenn man auf den Namen achtet, kann man die injizierte DLLDatei in den WindowsProzessen ausfindig machen. Aufgrund der Funktionsweise, sich sehr tief im Betriebssystemkernel zu verankern, sind Rootkits auf eine bestimmte Betriebssystemvariante festgelegt und funktionieren nicht mit allen WindowsBetriebssystemen. So ist man mit einem älteren Betriebssystem wie Win 98 oder Win Me vor solchen Rootkits sicher. 4.3 Auslöser für die Schadfunktion Bei den meisten Trojanern wird die Schadfunktion gleich nach der Ausführung ausgelöst. Jedoch gibt es auch andere Möglichkeiten die Schadfunktion einzuleiten. So wird bei einer logischen Bombe die Schadfunktion erst nach der Erfüllung einer bestimmten Bedingung wirksam. Es gibt aber auch Trojaner, die weder ausgeführt werden müssen, noch auf eine Bedingung warten. Bei erstmaligem Aufruf des Betriebssystems nistet sich so ein Trojaner resident in den Speicher ein und schreibt sich an eine freie Stelle auf der Festplatte. Beim Aufruf von ausführbaren Dateien verschlüsselt Trojaner deren Einträge in der FAT und hängt sich mit in deren Eintrag. Ruft man nun das gewünschte Programm auf, wird automatisch auch der Trojaner gestartet. Er befindet sich nun im Speicher des Rechners und kann ungehindert seine Tätigkeit aufnehmen. 5 4.4 Schadfunktion Die Schadfunktion, auch Payload genannt, ist der Teil eines Trojaners, der die eigentliche, von dem Erschaffer gewünschte Funktion enthält. Die Payloads können nach Arten unterschieden werden. Hier sind ein paar davon: • Downloader: Dieser Trojaner ist für das Downloaden und Verstecken schädlicher Software zuständig. So können SPAM bzw. WerbeSysteme bis hin zu Spy Programmen den betroffenen Rechner befallen. • Clicker: In diesem Fall veranlasst der Trojaner einen Zugriff auf bestimmte Internetseiten. So können Werbung bzw. auch kostenpflichtige Seiten das Ziel sein. Paradebeispiel hierfür wäre Klickbetrug im Google AdWords / AdSense Programm (Clickfraud). • Spy: Wie der Name schon vermuten lässt, handelt es sich hierbei um Trojaner, welche für das Ausspionieren des betroffenen UserPCs und der entsprechenden 5 FAT: File Allocation Table. Ordnet den Dateien die zugehörigen Cluster des Datenträgers zu und sammelt die freien Cluster. Ermöglicht es dem Betriebssystem, anhand eines Dateinamens die Bereiche der Festplatte wiederzufinden, in denen die Daten gespeichert sind. 12 Igor Chauskyy UserDaten eingesetzt werden. So können hierbei Screenshots, Tastatureingaben, Festplatteninhalte etc. ausspioniert werden. Transport von Malware (wie z.B. im Fall eines Droppers) • Datenzerstörung (manchmal im Fall einer logischen Bombe) • AVSoftware deaktivierung • Jeglicher ausführbarer Code 4.4.1 Backdoors Backdoors sind ein Schlupfloch in einem System, das von ihrem Erschaffer mit Absicht auf dem Rechner positioniert wurde. Sie bieten einen geheimen Zugang, über den von außen und unbemerkt auf den häuslichen Rechner zugegriffen werden kann. Programme, die diese Backdoors, manchmal auch RATs – Remote Access Tools – genannt, installieren, sind Trojaner. So kann man das Resultat der Ausführung des oben beschriebenen modifizierten CompilerCodes auch als eine Backdoor betrachten, da sie einem Eindringling jederzeit Zugang verschafft. Backdoors unterscheiden sich in zwei Gruppen: symmetrische Backdoors und asymmetrische Backdoors. Die ersten sind mehr verbreitet. Sie können von jedem, der sie findet Benutzt werden. Die letzteren können nur von dem Angreifer benutzt werden, der sie gesetzt hat. 5 TrojanerBekämpfung Die Grundlegendsten Maßnahmen zur Bekämpfung von Trojanern ist eine Firewall, die alle Zugriffe auf das und vom Internet überwacht, ein AV mit einer aktuellen Datenbank. Da ein Trojaner aber sich eben durch seine Tarnung von anderer Malware unterscheidet, muss man zu komplizierteren Techniken greifen. Zur Vorbeugung sollte man es vermeiden Raubkopien zu verwenden und Programme und Daten aus nicht sicheren Internetseiten oder P2PServern runterzuladen. 5.1 Entdecken eines Trojaners Prüfsummenverfahren: Alle Dateien werden mit dem MD5Algorithmus signiert, der eine Art Quersumme der Bytes der jeweiligen Datei enthält. Bei Manipulationsverdacht kann man die Signaturen überprüfen. Dabei wird der Hash Wert erneut berechnet und mit dem alten Wert verglichen. Stimmen die Signaturen der jeweiligen Dateien nicht mehr überein, so muss die Datei in dem Zeitraum manipuliert worden sein. Allerdings werden Infektionen, die vor dem erstmaligen Bilden der HashWerte stattgefunden haben, nicht erkannt. 6 6 Für mehr Information siehe RFC 1321 Trojan horses, Backdoors, … 13 HintegrundScanner: Sind speicherresidente Programme, die eine Datei im dem Moment, in dem auf sie zugegriffen wird, online nach Viren durchsuchen. Das erlaubt das Erkennen z.B. eines Trojaners vor seiner Ausführung. Lockvögel: Sind kleine Programme, die sich selbst, als ein potenzielles Opfer anbieten und sich selbst mit kryptografisch abgesicherten HashFunktionen prüfen. Wird ein Lockvogel befallen, warnt er den Nutzer mit einer Nachricht. [4] 5.2 Beseitigen eines Trojaners Vor allem bei versteckten Vorgängen oder neuartigen Schädlingen erweisen sich Programme, die das Verhalten eines Programms untersuchen, die so genannten BehaviorBlocker, als nützlich. Sie kontrollieren im Hintergrund den Programmablauf. Entdecken sie dabei ein Verhalten, das mit hoher Wahrscheinlichkeit auf Malware zurückzuführen ist, wie z.B. das Anfügen von Code an das Ende einer Datei und das Einfügen eines Sprunges, der auf das der Datei zugefügte Segment weist, so wird es blockiert und rückgängig gemacht. Bei Feststellung einer Infektion durch den AV sollte man, um Schäden zu vermeiden, die betroffenen Dateien erstmal nicht löschen, sondern nur isolieren (z.B. Quarantäne). Da es aber, aus bereits erläuterten Gründen, nicht immer möglich ist einen Trojaner mit einem AV loszuwerden, gibt es noch die Möglichkeit die AutoRunEinträge zu kontrollieren, denn ein Trojaner funktioniert nur dann, wenn er mit dem Systemstart ausgeführt wird (da der Server ständig im Hintergrund des Systems laufen muss, um sich immer mit dem Client verbinden zu können). Dazu wird eine Verknüpfung eines Servers z.B in dem AutostartOrdner, Win.ini, System.ini, autoexec.bat oder Config.sys erstellt. Das Durchsuchen dieser Instanzen nach Ausführanweisungen (load=…, run=…, shell=… etc.) von unbekannten/verdächtigen Dateien kann in manchen Fällen einen Trojaner offenbaren. Ein weiterer VersteckOrt der Trojaner kann die WindowsRegistrierung sein. So kann Programmname in Einträgen, wie HKEY_…\@=“\“%1\“ %*“ auf einen Trojaner deuten. Diese Art Trojaner zu entdecken braucht aber einen gewissen Wissensstand, denn sonst kann man sich in der Registry verirren und sogar Schaden anrichten. Falls nichts hilft den Schädling zu finden, weil er so gut getarnt ist, sollte man versuchen den PC von einer sauberen Umgebung aus zu starten, z.B. von einer Boot Diskette oder RecoveryCD. Da dabei nur die notwendigsten Prozesse laufen, gibt es keine Prozesse mehr, die den Schädling verstecken könnten. Ein AVScan bzw. eine besondere AntiTrojanerSoftware könnte ihn jetzt finden. Auch das Löschen ist nun nicht weiter schwierig, da die Dateien von keinem gesicherten Prozess mehr verwendet werden und können somit problemlos entfernt werden. 14 Igor Chauskyy 6 Beispiel: Conficker [7,8] 20. November 2008 war das Erscheinungsdatum des Confickers. Conficker ist ein Anagram vom “trafficconverter” – einer Webseite zu der die erste Version Verbindung aufnahm. Davor hieß es Downadup. 6.1. Klassifizierung Conflicker ist eine Mischart zwischen Wurm und Trojaner. Da er sich selber weiterverbreitet, und zwar durch das Netzwerk, gehört er eigentlich der Klasse „Wurm“ an. Die Tarnmechanismen, die er nutzt, sind aber eindeutig die eines „Trojaners“. An diesem Beispiel sieht man am besten, dass eine klare Abgrenzung heutzutage sehr schwierig ist. 6.2 Funktionsweise und Aufbau Angefangen mit Conficker.A gab es immer wieder neuere Versionen von dem Schädling, bis zu der aktuellen Version Conficker.D (März 2009). Das Update auf die letzte Version geschah durch das zugreifen von Conficker.B auf bestimmte Domänen, die von einem in ihm eingebauten Algorithmus berechnet wurden, auf denen die aktuelle Version enthalten war. Hat er eine Verbindung mit so einer Seite aufgebaut, überträgt er außerdem die Anzahl der Rechner, die Infiziert wurden. 6.2.1 Verbreitung Der Conficker verbreitet sich durch eine BufferOverflowSchwachstelle in dem Server Service der Windows Computer, als ein mit dem UPX Packer doppelt verpackte DLL Datei. Der Wurm benutzt dazu einen, speziell entwickelten RPC (remote procedure call) über den Port 445/TCP, der Windows 2000, XP, 2003 und Vista dazu bringt ohne Authentifizierung einen beliebigen Code auszuführen. Dieser Code bringt den Rechner dazu sich mit einer HTTP zu verbinden, wo eine Kopie der WurmDLL von dem PC zum Download bereitgestellt wird, der den BufferOverflow verursacht hat. Diese Schwachstelle kann sogar bei Systemen ausgenutzt werden, bei denen Firewalls aktiviert sind. Allerdings muss Dateiübertragung (file sharing) möglich sein. Da die Versionen B und C sich über USB Treiber ausbreiten und AutoRun auslösen kann, ist es empfohlen die AutoRunEigenschaft für externe Datenträger zu deaktivieren. Außerdem haben sie die Möglichkeit durch einen Brute Force Angriff das AdministratorPasswort (ADMIN$ shares) zu knacken und sich so in einem Netzwerk verbreiten. Seit der neusten Version (D) verfügt der Conficker über eine P2PMöglichkeit zum Update. Daher ist das Update nun auch von einem anderen Infizierten Rechner möglich. Allerdings versucht sich die letzte ConfickerVersion nicht mehr weiterzuverbreiten. Trojan horses, Backdoors, … 15 6.2.2 Tarnmechanismen und Selbstschutz Wenn auf einem Rechner ausgeführt, deaktiviert Conficker(C) bestimmte Systemdienste, wie Windows Automatic Update, Windows Security Center, Windows Defender und Windows Error Reporting oder auch bestimmte AVSoftware und setzt alle Wiederherstellungspunkte zurück. Dazu verbietet er Zugang zu Internetseiten von AVSoftware und Windows Update. Die DLL wird mit einem zufälligen Namen in dem system32Verzeichnis abgelegt. Um diese DLL zu tarnen wird ihr Zeitstempel gleich dem von kernel32.dll umgeändert. Die DLL wird nun als ein Teil des svhost.exe, service.exe oder explorer.exe Prozesses ausgeführt (als ein Dienst) und wird somit bei jedem Systemstart mitgestartet. Dazu fügt Conficker auch noch einen Regitry Key in SOFTWARE\Microsoft Windows NT\CurrentVersion\“DLLName“ ein. Um den „Dienst“ im DienstManager unsichtbar zu machen wird der Dienstname auf leer gesetzt und der Typ auf unsichtbar. Um Spuren zu verwischen werden jetzt der RegistryEintrag und die DLL gelöscht und der Rechner neugestartet. 6.2.3 Auslöser für die Schadfunktion Die letzte Version hat am 01.04.09 anfangen nach einem PayloadDownload zu suchen. Die Zeitangaben wurden von Seiten, wie google.com, yahoo.com und facebook.com erfahren. Conficker.A und Conficker.B Versionen werden weiterhin nach Payloads suchen, und zwar jeder mit einem anderen DomäneAlgorithmus, da deren Payload bereits früher (2008) ausgelöst aber noch nicht erfühlt wurde. 6.2.4 Schadfunktion Die A und B Versionen des Conficker generieren 250 HTTPSeiten jeden Tag (mit einem datumsbasiertem Algorithmus) und öffnen einen zufälligen Port (zwischen 1025 und 10000). Wenn sie erfolgreich eine Verbindung zu der Seite aufbauen können, bzw. wenn eine von den Seiten existiert, lädt er eine Kopie von sich selbst auf die Seite. Außerdem kann Dateien er auf den infizierten PC runterladen. Die Anweisungen, die er bekommt können sein sich weiterzuverbreiten, Informationen zu sammeln, oder zusätzliche Malware auf den befallenen PC runterzuladen und zu installieren. 6.3 Bekämpfung Der Patch für diese Schwachstelle wurde am 23. Oktober 2008 von Microsoft online gestellt. WindowsRechner, die automatische Sicherheitsupdates erhielten waren nicht durch die Schwachstelle angreifbar. Jedoch hat ein gewisser Prozentsatz von Usern diesen Patch ignoriert, was zu weiteren Infektionen geführt hat. 6.3.1 Endecken Beispiele für Symptome: 16 Igor Chauskyy • Bestimmte Microsoft Windows Dienste, wie Automatic Updates, BITS, Windows Defender, und Error Reporting Services sind automatisch deaktiviert. • Domain Controller reagiert langsam auf Anfragen von dem Client • SystemNetzwerk ist ungewöhnlich stark ausgelastet. Das kann man z.B. mit dem Windows Task Manager überprüfen. • Der Zugang zu den Internetseiten der AVSoftwareUnternehmen oder Windows UpdateSeiten ist blockiert. • TCP und UDP P2P Aktivitäten bei Ports mit höheren Nummern 6.3.2 Beseitigen BeseitigungsTools sind erhältilich von Microsoft, BitDefender, ESET, Symantec, Sophos, und Kaspersky Lab, wobei McAfee und AVG die Infektion bereits mit einem OndemandScan beseitigen können. Trojan horses, Backdoors, … 17 7 Schluss 18 Igor Chauskyy 8 Quellenangabe [1] Peter J. Denning. Computers under attack: intruders, worms, and viruses. ACM Press 1990 [2] Thomas Vosseberg. hackerz book, 2. Auflage. Franzis’ Verlag 2003 [3] Dr. Peter Bernhard Kraft. Anti Hackerz Book 2007, 2. Auflage. Franzis’ Verlag 2007 [4] Dr. Markus a Campo. Antiviruskonzepte: Schutz vor Viren, Würmern und Trojanern. WEKA MEDIA 2007 [5] Lance J. Hoffmann. Rogue Programs: Viruses, Worms, and Trojan Horses. New York 1990 [6] Anonymous. Hacker’s Guide: Sicherheit im Internet und im lokalen Netz. Markt+Technik Verlag 2003 [7] http://www.confickerworkinggroup.org/wiki/ letzter Zugriff am 07.05.2009 [8] http://mtc.sri.com/Conficker/ letzter Zugriff am 07.05.2009