Kapitel 13:
Malware-Erkennung und -Analyse

In den meisten Unternehmen genießt der Schutz vor Malware eine gewisse Priorität. Neben einer Firewall zum Schutz vor gefährlichen Netzwerkaktivitäten findet sich auf den Computern von Unternehmensnetzwerken fast immer eine Virenschutz-Software. Allerdings lassen es viele Administratoren damit auch auf sich bewenden. Für sensible Umgebungen ist dies allerdings bei Weitem nicht genug, um einen ausreichenden Schutz zu implementieren. In diesem Kapitel werden wir daher zum einen darstellen, über welche Aktivitäten Malware erkannt und analysiert werden kann, und zum anderen schauen wir uns professionelle Ansätze zum Schutz vor Malware an. Diese Themen greifen Hand in Hand ineinander. Dazu betrachten wir folgende Punkte:

Wie Sie erkennen können, geht es in diesem Kapitel ausnahmsweise nicht um Angriffsformen und -techniken. Stattdessen gehen wir in die Analyse und damit ein Stück weit in den Bereich der Forensik. Neben dem praktischen Aspekt und der Notwendigkeit, verdächtige Aktivitäten und Prozesse auf Computern erkennen zu können, legt auch der CEH hier einen Schwerpunkt auf bestimmte Tools und Konzepte. Da die meiste Malware für Windows geschrieben wird, liegt hier naturgemäß unser Schwerpunkt. Doch die Ansätze sind für alle Betriebssysteme gleich und vereinzelt gehen wir auch auf Linux-Plattformen ein.

13.1   Grundlagen der Malware-Analyse

Wie Sie bereits im vorhergehenden Kapitel erfahren haben, gibt es unzählige Varianten an Malware und es kommen täglich Tausende Viren, Würmer, Trojaner und Ähnliche dazu. Auf der anderen Seite gibt es Sicherheitsforscher, deren Ziel es ist, Schadcode zu identifizieren und ihn auf seine Herkunft, seine Funktionalität und seine Auswirkungen auf das infizierte System zu untersuchen. Hierzu existieren unterschiedliche Ansätze, die wir Ihnen im Folgenden kurz vorstellen werden.

Hinweis: Malware-Analyse und Reverse Engineering

Malware-Analyse hängt eng mit dem Begriff »Reverse Engineering« zusammen. Dabei geht es um die Rückgewinnung des Quellcodes aus einem ausführbaren Programm und die anschließende Analyse des Codes. Diese Rückgewinnung kann über verschiedene Wege erfolgen. Neben Decompilern kommen auch Disassembler und, wenn es um Netzwerk-Kommunikation geht, Sniffer zum Einsatz.

13.1.1   Statische Malware-Analyse

Die statische Analyse existiert schon sehr lange und wird auch als Code-Analyse bezeichnet. Sie untersucht den Binärcode des Malware-Programms, ohne das Programm selbst direkt auszuführen. Im Grunde gehören viele statische Analyse-Methoden zum Standardrepertoire von Software-Entwicklern. Allein das Kompilieren von Quellcode involviert Analysetechniken des Compilers, der z.B. Variablen, Funktionen und Zuordnungen prüft, um Fehler zu finden. Einige Compiler verfügen über umfangreiche Analysefähigkeiten, die durch Plug-ins sogar noch erweitert werden können. Dies kann man sich bei der Analyse von Malware zunutze machen.

Der zunächst wichtigste Schritt in der statischen Analyse ist allerdings das genaue Gegenteil, nämlich das Dekompilieren von Maschinencode in den Quellcode einer Hochsprache, wie C oder C++. Auch leistungsfähige Decompiler sind jedoch nicht in der Lage, den Original-Quellcode wiederherzustellen. Der Analyst muss hier häufig manuell eingreifen, damit der Prozess sauber abgeschlossen werden kann und eindeutiger Code entsteht.

Ist dies nicht durchgehend möglich, kann der Binärcode auch von Disassemblern verarbeitet werden, um Maschinencode (also Assemblercode) zu erhalten. Dieser ist allerdings deutlich schwerer zu analysieren als normaler Quellcode einer Hochsprache wie C oder Java. Abbildung 13.1 verbildlicht dies noch einmal.

[Bild]

Abb. 13.1: Reverse Engineering von Maschinencode

Strings – Zeichenketten extrahieren

Einen einfachen Einstieg in die statische Codeanalyse bietet das Tool Strings von Sysinternals (Download unter: https://docs.microsoft.com/en-us/sysinternals/downloads/strings). Damit können Sie innerhalb ausführbarer Dateien nach Unicode- oder ASCII-Zeichenfolgen suchen. Strings ist ein Kommandozeilen-Tool und lässt sich sehr einfach bedienen. Starten Sie die heruntergeladene Programmdatei strings.exe über die Eingabeaufforderung und geben Sie im Folgenden die zu analysierende Datei an. Im Anschluss wird die Datei nach Zeichenfolgen durchsucht. Dies wird in der Konsole ausgegeben, wie in Abbildung 13.2 beispielhaft gezeigt.

[Bild]

Abb. 13.2: Einfache Analyse unter Einsatz des Tools Strings

Sie können die Ausgabe der enthaltenen Strings einer Programmdatei Programm1.exe aber auch z.B. mit dem Befehl strings.exe Programm1.exe > Programm1-Strings.txt in eine Textdatei umleiten und diese im Anschluss in einem Texteditor analysieren. Beachten Sie nur, dass Sie im aktuellen Verzeichnis auch Schreibrechte besitzen müssen.

Haben Sie die Strings ausgelesen, können Sie mit der Analyse beginnen. Zwischen den Zeichenstrings, die Sie nicht weiter interpretieren können, sollten Sie zum Beispiel nach Folgendem Ausschau halten:

  • URLs: Schadcode wird häufig noch nachgeladen, damit die schadhafte Datei nicht sofort identifiziert wird.

  • Serveradressen: Sie ermöglichen den Upload von Daten oder Steuerungsmechanismen von externen Quellen, wie z.B. einem C&C-Server.

  • Sicherheitskritische Befehle: Zum Beispiel Deaktivierung von Windows-Update, Aktivierung von Makros etc.

  • Registry-Pfade: Zum Beispiel Start eines Dienstes beim Systemstart

  • Verzeichnisse und Dateien, die mit der Funktion des Tools nichts zu tun haben und Ihnen verdächtig vorkommen.

Dafür müssen Sie nicht im Detail jeden String verstehen, oft genügt ein sicherheitskritischer Blick, um festzustellen, ob hier ungewollte Aktionen durchgeführt werden. Die oben genannten Punkte sind nur Beispiele leicht zu erkennender Hinweise, bei denen Sie misstrauisch werden sollten.

Tipp: Strings als Funktion in anderen Tools

Wie Sie etwas später noch feststellen werden, ist die Funktion, Strings aus einer Programmdatei zu extrahieren, auch in anderen Tools, namentlich dem Process Explorer, enthalten. Dieses Tool betrachten wir in Abschnitt 13.2.2.

pestudio – Funktionsanalyse einer Programmdatei

Einen umfassenderen Einblick in eine ausführbare Datei bietet das Programm pestudio. Sie können es auf www.winitor.com herunterladen und ohne Installation ausführen. Nach dem Start erscheint ein leeres Fenster, in das Sie die zu analysierende Datei per Drag & Drop hineinziehen können. Die Analyse beginnt daraufhin automatisch.

Die Ergebnisse der Analyse werden nach Kategorien sortiert angezeigt. Rot markierte Einträge sollten Sie sich auf jeden Fall anschauen, denn hier wurde ein Sachverhalt, eine Funktion oder ein Verhalten identifiziert, der/die/das auf Schadsoftware hinweist. Unter anderem wird auch eine Überprüfung bei VirusTotal durchgeführt. Eine Zusammenfassung der kritischen Aspekte erhalten Sie in der Kategorie indicators unter Angabe des Schweregrads (siehe Abbildung 13.3).

[Bild]

Abb. 13.3: Statische Analyse einer Datei mit pestudio

Statische Malware-Analyse kann den Aufbau und die Struktur eines Schadprogramms effektiv untersuchen. Allerdings versuchen viele Malware-Autoren, ihre Software gegen derartige Analysen zu schützen: Durch Laufzeit-Packer, wie UPX, ASPack & Co. sowie dem Einsatz von Cryptern, Obfuscatern und anderen Methoden verändern sie das Aussehen der Binärdatei, sodass ein Reverse Engineering bzw. das Dekompilieren oder Disassemblieren deutlich erschwert wird. Zudem kann die statische Analyse nicht erkennen, welche Auswirkungen ein Programm im Kontext mit anderen Komponenten auf dem System haben kann. Weiterhin wird in der Realität oftmals Schadcode nachgeladen. Hier kann nur ein Live-Test helfen. Und damit kommen wir zum zweiten Ansatz der Malware-Analyse.

13.1.2   Dynamische Malware-Analyse

Bei der dynamischen Analyse beobachten wir das Verhalten des Programms zur Laufzeit. Sie wird daher auch als Verhaltens- oder Laufzeitanalyse bezeichnet. Dabei wird das Programm in einer kontrollierten Umgebung ausgeführt. Dies kann entweder innerhalb einer Sandbox (siehe Abschnitt 13.4), eines Emulators (also einer VM) oder mittels Debugger geschehen.

Auch hier existieren zahlreiche Tools, die zur Unterstützung der dynamischen Analyse herangezogen werden können. Neben Debuggern, wie OllyDbg oder IDA Pro, können diverse Programme aus dem Sysinternals Toolset, wie z.B. der Process Explorer bzw. Process Monitor, oder auch Netzwerk-Sniffer wie Wireshark einen wertvollen Beitrag zur Beobachtung der Malware liefern. Auf einige dieser Tools gehen wir in diesem und den folgenden Kapiteln noch genauer ein.

Tipp: Online-Analyse-Plattformen nutzen

Wer übrigens den Aufwand scheut, eine eigene Umgebung für die Analyse aufzusetzen, kann sich auch einer der zahlreichen Online-Plattformen bedienen. So analysieren z.B. die JOESandbox (www.joesandbox.com) oder Any Run (https://any.run) hochgeladene Malware-Samples und stellen teilweise umfangreiche Auswertungen zur Verfügung.

Doch auch die dynamische Malware-Analyse weist einige Schwachpunkte auf. So kann nur der Teil des Programms beobachtet werden, der gerade ausgeführt wird. Versteckt sich die Payload zum Beispiel, bis ein entsprechender Trigger sie auslöst, so kann sie in einer Laufzeitanalyse nicht entdeckt werden. Außerdem versuchen auch hier wieder viele Malware-Autoren, ihre Machwerke durch bestimmte Techniken vor der Analyse zu schützen. So erkennen z.B. einige Schadprogramme das Ausführen eines Debuggers und verhalten sich dann anders. Ebenso werden Sandboxing-Umgebungen und virtuelle Maschinen erkannt, sodass der Schadcode dann nicht zur Ausführung kommt.

Dennoch ist der Einsatz von Methoden der statischen und dynamischen Malware-Analyse ein wichtiger Bestandteil der Malware-Bekämpfung. Voraussetzung für diese Analyse ist jedoch, dass bereits ein isoliertes Schadprogramm, Sample genannt, vorliegt. Im nachfolgenden Abschnitt werden wir uns nun dem eher praktischen Szenario widmen, wie wir vorgehen können, um eine Infektion überhaupt erst einmal zu identifizieren.

13.2   Verdächtiges Verhalten analysieren

Starten wir ganz profan: Ein Computer in Ihrem Netzwerk verhält sich »irgendwie anders«. Oftmals lässt sich das gar nicht so konkret ausmachen. Vielleicht hat sich mal kurz ein Terminalfenster geöffnet, der ganze Rechner reagiert plötzlich spürbar langsamer, die Prozessorauslastung geht ohne Grund nach oben oder die Festplatte arbeitet immer wieder, obwohl scheinbar gar kein Programm aktiv ist, das dafür verantwortlich sein könnte.

Natürlich können die genannten Verhaltensauffälligkeiten ganz verschiedene, durchaus valide Gründe haben. Dennoch empfiehlt es sich oft, zu reagieren und das System einer gründlichen Prüfung zu unterziehen. Hierzu werden zunächst Antiviren-Programme aktiviert und ggf. ein Offline-Scan mithilfe einer Rescue-Disk (werden wir im Folgenden noch erläutern) durchgeführt. Außerdem können diverse Aspekte des Systems genau unter die Lupe genommen werden. Dazu stellt Windows jede Menge Bordmittel zur Verfügung und zudem gibt es zahlreiche Tools, die den Security-Analysten bei der Arbeit unterstützen.

13.2.1   Virencheck durchführen

Der erste Schritt ist der Virencheck. Wie bereits früher ausgeführt, verstehen wir unter »Viren« auch alle artverwandten Malware-Typen.

Standard-Virencheck

Meistens ist bereits eine AV-Software von Anbietern wie Kaspersky, Norton, BitDefender, Avira, McAfee oder Ähnliches installiert. Stellen Sie sicher, dass die aktuellen Signaturdateien geladen sind, und führen Sie einen Vollscan durch. Dabei sollten Sie darauf achten, dass beim Scan möglichst alle Dateitypen berücksichtigt werden. In der Standard-Konfiguration werden teilweise einige durchaus relevante Dateitypen und Ordnerstrukturen ausgelassen. Überprüfen Sie daher auf jeden Fall die Konfiguration des Scanners.

Ein wichtiger Bonus besteht darin, einen zweiten AV-Hersteller zu involvieren. Wie Sie in unseren Tests mit VirusTotal gesehen haben, ist das Scanergebnis diverser AV-Anbieter keineswegs kongruent. Daher ist es auf jeden Fall empfehlenswert, mehr als einen Scanner über das betreffende System laufen zu lassen. Mittlerweile gehört der mit Windows mitgelieferte Windows Defender im Übrigen zu den Scannern mit den besten Erkennungsraten, sodass einige Experten mittlerweile die Notwendigkeit externer AV-Programme in Zweifel ziehen. Für mehrfache Scans im konkreten Verdachtsfall sind sie in jedem Fall unentbehrlich.

Rescue-Disk

Eine etwas sicherere Methode, das lokale System zu überprüfen, sind die Rescue-Disks. Sie basieren meistens auf Linux und werden von vielen AV-Anbietern kostenfrei angeboten. Sie ermöglichen einen Offline-Check des Systems. Im laufenden Betrieb (online) könnte es sein, dass die Malware durch Rootkits oder andere Mechanismen gut versteckt wird und dadurch für das AV-System schwer zu entdecken ist. Eine Rescue-Disk (installierbar auf USB-Stick oder CD-ROM) stellt ein bootfähiges Image bereit, über das das System gestartet werden kann.

Der normale Bootvorgang des Betriebssystems wird somit komplett ausgehebelt. Das führt dazu, dass Malware sich während dieses Prozesses nicht schützen kann und – ohne eingreifen zu können – passiv auf dem Datenträger liegt. Das Rescue-System enthält eine Virenscanner-Engine, die sich zunächst einmal selbst direkt aus dem Internet updaten kann. Damit ist sichergestellt, dass das AV-System auf dem tagesaktuellen Stand ist.

Nun werden die lokalen Datenträger automatisch eingebunden (gemountet) und können in aller Ruhe gescannt werden, siehe Abbildung 13.4. Auf diese Art wird verhindert, dass Malware sich im laufenden System vor den Scannern verstecken kann, da zudem – im Gegensatz zu Scans im aktiven Betrieb – auch der Arbeitsspeicher nicht geprüft werden muss.

[Bild]

Abb. 13.4: Kaspkersky-Rescue-Disk in Aktion

Der Einsatz einer Rescue-Disk als ergänzendes Mittel ist auf jeden Fall empfehlenswert, sollte Sie allerdings auch nicht in falscher Sicherheit wiegen. Nur, weil der Scanner des Rescue-Systems nichts findet, sind Sie noch lange nicht auf der sicheren Seite.

Vorsicht! Warnung vor Kaspersky AV-Software

Das BSI hat am 15. März 2022, zu Beginn des Ukrainekrieges, eine Warnung vor Kaspersky-Software ausgegeben. Es könne nicht ausgeschlossen werden, dass die aus Russland stammende Software nicht manipuliert und für Spionagezwecke genutzt wird. Außer einem Generalverdacht gibt es jedoch bislang keinerlei Anhaltspunkte, Indizien oder Beweise für eine tatsächliche Gefahr, die durch Kaspersky-Software ausgeht. Letztlich ist es eine Frage des Vertrauens. Kaspersky hat große Anstrengungen unternommen, diesen Generalverdacht zu entkräften, bislang jedoch ohne Erfolg.

Erweiterte Malware-Detection

Die meisten AV-Produkte bieten neben einem klassischen Virenscanner noch diverse weitere Features an, die ggf. gegen Aufpreis (Premium-Version etc.) für zusätzlichen Schutz sorgen. Neben dem fast schon obligatorischen Echtzeitschutz, bei dem – je nach Konfiguration – Lese- und Schreibzugriffe geprüft werden, gibt es Surf- bzw. Browserschutz, bei dem als gefährlich eingestufte Websites sowie ungewollte Downloads und Werbung blockiert werden.

Die Verhaltensanalyse überwacht alle aktiven Programme und warnt den Anwender, sobald sich eine Software verdächtig verhält. Dazu gehört auch das Stoppen von Ransomware. Das Tool versucht, Verhaltensmuster zu erkennen, und stoppt den Vorgang, bevor Ihre Daten verschlüsselt werden.

Einige Virenschutzlösungen bieten auch in ihren Privatkunden-Produkten mittlerweile schon Sandboxing-Lösungen an, mit denen verdächtige Dateien und Programme in einer virtuellen Umgebung geprüft werden können. Auf professionelle Sandboxing-Systeme kommen wir später in diesem Kapitel noch zurück.

Hinweis: Manuelle Verhaltensanalyse mit Debuggern

Neben der automatisierten Analyse der Verhaltensweise von Programmen können Sie auch manuell Programme analysieren. Hierzu dienen sogenannte Debugger, die ein Reverse Engineering ermöglichen. Wir gehen in Kapitel 27 Buffer-Overflow-Angriffe im Detail auf Debugger wie OllyDbg und Immunity Debugger ein und zeigen Ihnen, wie Sie dieses Tools im Rahmen eines Buffer Overflows einsetzen können. Analog dazu können Sie diese Kenntnisse einsetzen, um die Verhaltensweise von Malware zu analysieren.

Darüber hinaus bieten die Internet-Security-Suiten diverse Zusatzfunktionen wie Passwort-Schutz, Online-Banking-Schutz, Secure-Updater, Kindersicherung etc. Jeder Hersteller versucht, Alleinstellungsmerkmale bereitzustellen, aber häufig sind nur die Bezeichnungen unterschiedlich, während die grundlegenden Funktionen ähnlich sind. Schauen Sie also hinter die Kulissen und prüfen Sie, welchen Mehrwert die zusätzlichen Features für einen umfassenden Malware-Check und den Schutz Ihrer Systeme bieten.

Beachten Sie jedoch dabei, dass nicht alles Gold ist, was glänzt: Nicht selten steckt hinter den markanten Begriffen nicht viel Substanz – im Gegenteil können die Zusatz-Features das System ausbremsen und den Benutzer in falscher Sicherheit wiegen. Zudem können unerklärliche Nebeneffekte entstehen, und nicht zuletzt bieten diese Software-Komponenten auch ein hervorragendes Angriffsziel, da sie üblicherweise mit weitreichenden Rechten auf dem System ausgestattet sind.

Wichtig: Malware erkennt oft Antiviren-Software!

Diverse Schädlinge versuchen (oft erfolgreich), AV-Systeme zu umgehen. Eine AV-Software, die auf einem bereits infizierten System installiert wird, kann zudem leichter ausgehebelt werden. Stellen Sie also sicher, dass die AV-Software auf dem frischen System installiert wird, wenn Sie noch sicher sein können, sich keine Malware eingefangen zu haben – also im Zweifel vor der ersten Verbindung mit dem Internet. Sollte es hierfür zu spät sein, sind Offline-Scans mit Rescue-Disks eine gute Option.

Die EICAR-Testdatei

Sie haben die Möglichkeit, mit einer ungefährlichen Testdatei die Funktion Ihrer Virusabwehr zu testen. Dafür hat das European Institute for Computer Antivirus Research (EICAR) und die Computer AntiVirus Research Organization ein Testmuster entwickelt, auf das jedes Antivirenprogramm anspringen sollte. Dabei handelt es sich um einen String aus 68 ASCII-Zeichen. Diese Zeichenfolge ist allen Antivirus-Entwicklern bekannt und muss einen entsprechenden Alarm auslösen. So können Sie sicherstellen, dass Ihr Antivirus-System korrekt funktioniert und nicht durch falsche Einstellungen oder gar einer Malware deaktiviert wurde. Der String stellt sich folgendermaßen dar und wird in verschiedenen Dateiformaten zum Download angeboten:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Stellen Sie nun einmal Ihren Virenschutz auf den Prüfstand und surfen Sie auf https://www.eicar.org/download-anti-malware-testfile. Hier finden Sie verschiedene Versionen der Datei. Lassen sie sich den String z.B. anzeigen, indem Sie auf eicar.com.txt klicken.

Markieren Sie den String und kopieren Sie diesen in Ihre Zwischenablage und damit in den flüchtigen Speicher (RAM) Ihres Systems. Wird dieser von der Antivirus-Software überprüft, so sollten Sie damit schon einen entsprechenden Warnhinweis auf einen identifizierten Virus erhalten. Ist dies nicht der Fall, kopieren Sie den String in einen Texteditor und speichern Sie die Datei unter beliebigem Dateinamen. Testen Sie zuerst die Endung .txt, um herauszufinden, ob der aktive Virenschutz das Textformat untersucht. Herrscht auch hier Funkstille, speichern Sie unter dem Dateiformat .com (ausführbar in MS-DOS) ab. Spätestens jetzt sollte Ihre Virenerkennung die Alarmglocken läuten!

[Bild]

Abb. 13.5: Der Internetauftritt des European Institute for Computer Antivirus Research (EICAR)

[Bild]

Abb. 13.6: Die Dateien werden als EICAR-Testfile korrekt erkannt.

Um Ihren Test noch etwas weiter auszudehnen, führen Sie auch einen Download der angebotenen EICAR-Dateien durch. Um die Erkennung zu erschweren, werden diese zusätzlich zur COM-Datei auch als komprimierte ZIP-Archive im Downloadbereich angeboten.

Mit diesen einfachen Tests können Sie das Schutzverhalten Ihres Virenscanners beobachten und im Bedarfsfall erweiterte Einstellungen vornehmen. Abbildung 13.6 zeigt eine korrekte Erkennung der EICAR-Datei durch einen Virenscanner.

13.2.2   Prozesse überprüfen

Malware basiert auf Programmen. Programme laufen im System letztlich in Form von Prozessen. Wird ein Prozess nicht gerade über Rootkit-Mechanismen vor Entdeckung geschützt, tauchen die Malware-Prozesse in der regulären Prozessliste auf. Die Prozessliste sollten Sie daher als einen der ersten Punkte im Rahmen der Malware-Analyse prüfen.

Das Windows-Bordmittel hierzu ist der Task-Manager. Sie können ihn über Rechtsklick auf die Taskleiste aufrufen – alternativ über die Tastenkombination Strg+Shift+Esc. Hier können Sie sich bei Windows 10 oder 11 zum einen die Prozesse über das gleichnamige Register anzeigen lassen. Dies ist allerdings nur ein High-Level-Überblick, der zudem einen Einblick gibt, welche Prozesse bzw. Anwendungen welche Ressourcen in Anspruch nehmen (siehe Abbildung 13.7).

[Bild]

Abb. 13.7: Ressourcenbeanspruchung einzelner Anwendungen

Die Darstellung unterscheidet zwischen Apps, Hintergrund- und Windows-Prozessen. Über Linksklick auf den Pfeil vor den Einträgen lassen sich die Details der aufgerufenen Programme anzeigen. Klicken Sie mit der rechten Maustaste auf eine der Spalten, um das Spaltenmenü aufzurufen. Hier sind ggf. die Spalten Prozessname und Befehlszeile interessant.

Eine detaillierte Übersicht über die laufenden Prozesse liefert das Register Details. Hier finden sich auch »geforkte«, also von einem Hauptprozess aufgerufene Subprozesse. In Abbildung 13.8 sehen Sie zum einen den Prozess der Eingabeaufforderung (cmd.exe) und zum anderen einen zweiten Prozess namens conhost.exe, der zur Eingabeaufforderung gehört. Er realisiert die Einbettung der Kommandozeile in der Windows-Umgebung.

Tatsächlich ist im regulären Task-Manager von Windows allerdings nicht zu erkennen, welche Abhängigkeiten bestehen, da der Prozessbaum nicht hierarchisch dargestellt wird. Mit dem Process Explorer von Sysinternals (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer) erhalten Sie einen alternativen Task-Manager mit einigen interessanten Zusatzfunktionen. Hierzu zählt auch die Darstellung der Prozess-Hierarchie. In Abbildung 13.9 wird deutlich, dass der Prozess conhost.exe von cmd.exe aufgerufen wurde.

[Bild]

Abb. 13.8: Eine Anwendung kann durchaus mit mehreren Prozessen arbeiten.

[Bild]

Abb. 13.9: Der Process Explorer zeigt Prozessabhängigkeiten an.

Neben der automatischen farblichen Codierung in User- und Systemprozesse sowie andere Kategorien (einstellbar über das Menü Options|Configure Colors) können Sie z.B. per Kontextmenü auch einen Prozess von VirusTotal prüfen lassen, wie Abbildung 13.10 zeigt.

[Bild]

Abb. 13.10: Die Überprüfung eines Prozesses mithilfe von VirusTotal

Nicht immer führt der Blick in die Prozessliste zu einem klaren Ergebnis. So taucht unser PuTTY-Trojaner auch im Process Explorer nur als scheinbar harmloser Prozess putty.exe auf. Erst der Check über VirusTotal zeigt die Gefahr, wie in Abbildung 13.11 dargestellt.

[Bild]

Abb. 13.11: PuTTY wird durch VirusTotal entlarvt.

Einen deutlich umfassenderen Einblick in die Aktivitäten von Prozessen ermöglicht der kostenfreie Process Monitor ebenfalls von Sysinternals, den Sie sich von der Microsoft-Seite unter https://docs.microsoft.com/de-de/sysinternals/downloads/procmon herunterladen können. Der Process Monitor zeigt Input- und Output-Aktivitäten, Dateizugriffe, Zugriffe auf Registry-Schlüssel, zeigt das Starten und Beenden von Prozessen und Threads sowie TCP/IP-Verbindungsauf- und -abbauvorgänge (siehe Abbildung 13.12).

[Bild]

Abb. 13.12: Der Process-Monitor macht alle Vorgänge sichtbar.

Eine umfassende Filter- und Suchfunktion ermöglicht eine übersichtlichere Ansicht. Dies ist auch dringend nötig, da die Informationen sonst schnell überborden und das Tool doch einige Einarbeitungszeit erfordert, um die zahlreichen Möglichkeiten ausschöpfen zu können. Der in Abbildung 13.13 dargestellte Filter betrachtet ausschließlich Prozesse mit dem Namen putty.exe.

Starten Sie im nächsten Schritt den PuTTY-Trojaner, so zeigt der Process Monitor zahlreiche Einträge an. Über die entsprechenden Schaltflächen in der Symbolleiste können Sie alle Einträge außer den Netzwerkaktivitäten deaktivieren. Im Ergebnis wird sichtbar, dass hier Verbindungen im Hintergrund hergestellt werden, die wir nicht explizit angefordert haben, wie Abbildung 13.14 zeigt.

[Bild]

Abb. 13.13: Filter auf putty.exe

[Bild]

Abb. 13.14: Durch die Filterschaltflächen werden die Netzwerkaktivitäten sichtbar.

Der Process Monitor liefert umfassende Ausgaben zu diversen Interaktionen eines Prozesses mit dem Betriebssystem. Ein entsprechender Filter ist allerdings notwendig, um die Übersicht zu behalten. Der Process Monitor sollte in keinem Werkzeugkasten fehlen.

Vorsicht: Malware versteckt sich gern!

Nicht immer wird Malware in den oben genannten Tools identifizierbar. Unter Umständen bindet sich ein schädlicher Prozess z.B. als DLL an einen regulären Prozess, wie z.B. Explorer.exe, und ist damit nicht als eigenständiger Prozess sichtbar. Wie im vorhergehenden Kapitel dargelegt, bedienen sich Rootkits gern derartiger Techniken. Daher sollten Sie sich nicht in Sicherheit wiegen, wenn Sie keinen verdächtigen Prozess finden können, sondern weitere Analysen durchführen. In derartigen Szenarien geht es häufig um Indizien, ähnlich wie bei einem Kriminalfall.

13.2.3   Netzwerkaktivitäten prüfen

Viele Varianten von Malware kommunizieren mit dem Angreifer-System bzw. den Command & Control-Servern. Sei es, um einen Remote-Zugriff für einen Hacker bereitzustellen oder ermittelte Daten über das Opfer zu transferieren, oder auch, um als Spam-Schleudern unerwünschte Mails in die Welt zu bringen. Die dadurch entstehenden Botnetze werden oftmals auch dazu genutzt, um Distributed-Denial-of-Service-Angriffe (DDoS-Attacken) durchführen. Hier baut der lokale Bot eine Vielzahl von Verbindungen zum Opfer-System auf, um dieses, gemeinsam mit vielen Tausend anderen Bots, zum Versagen zu bringen und dessen Erreichbarkeit zu verhindern. Mehr dazu erfahren Sie in Kapitel 22 DoS- und DDoS-Angriffe, in dem wir uns den (D)DoS-Angriffen im Detail zuwenden.

Aus diesen Gründen sollten Sie verdächtige Systeme auch immer auf ihre Netzwerkaktivitäten überprüfen. Das Bordmittel hierfür ist in erster Linie Netstat. Mit netstat -nap tcp lassen Sie sich auf einem Windows-System numerisch (-n) alle gebundenen TCP-Ports (-p tcp), egal in welchem Status sich diese befinden (-a), anzeigen. Abbildung 13.15 zeigt den Befehl inklusive Ausgabe in der Eingabeaufforderung.

[Bild]

Abb. 13.15: Netstat zeigt gebundene Ports und hergestellte Verbindungen an.

Natürlich sollten Sie sich die gebundenen Ports genau anschauen und ggf. recherchieren, welche Ports zu bekannten Anwendungen gehören und welche nicht. Darüber hinaus können die hergestellten Verbindungen ebenfalls sehr aufschlussreich sein. Suchen Sie einfach einmal nach den angezeigten Remote-IP-Adressen im Internet. Wenn Ihnen da eine Adresse merkwürdig vorkommt, sollten Sie dieser Verbindung auf den Grund gehen. Mit dem zusätzlichen Parameter -b können Sie sich den zu einer Verbindung zugehörigen Prozess anzeigen lassen – vorausgesetzt, Sie nutzen eine Administrator-Eingabeaufforderung.

Falls Sie sich die gebundenen Ports und Verbindungen auf einem Linux-System anschauen möchten, nutzen Sie den gleichen Befehl, allerdings mit anderen Optionen. So zeigt netstat -tlpn eine analoge Ausgabe zur Windows-Version wie oben dargestellt. Sollte netstat nicht mehr auf Ihrem Linux-System vorhanden sein, können Sie es durch den Befehl ss ersetzen, die Optionen bleiben gleich.

Vorsicht: Systemtools können manipuliert werden!

Sie können sich nicht zwangsläufig auf die Ausgabe von netstat verlassen. Fähige Malware patcht ggf. entweder das Tool oder verschleiert anderweitig die Ausgabe.

Eine erweiterte Übersicht bietet das kostenlose Programm CurrPorts von NirSoft. Sie können es von der Website des Herstellers www.nirsoft.net herunterladen. Wie Sie auf Abbildung 13.16 erkennen können, zeigt es übersichtlich die vorhandenen, gebundenen Ports sowie die aktiven Verbindungen und deren zugehörige Prozesse an.

Die Übersicht aktualisiert sich automatisch. Zu jedem Prozess wird der komplette Pfad zum Programm angezeigt. CurrPorts ermöglicht es zudem, unerwünschte Verbindungen zu schließen und Verbindungen über eine Logdatei aufzuzeichnen.

[Bild]

Abb. 13.16: CurrPorts zeigt Netzwerkaktivität.

[Bild]

Abb. 13.17: Capsa bringt viele Funktionen und Auswertungen mit.

Ein umfassendes Tool zur Netzwerkanalyse ist Capsa von Colasoft. Unter www.colasoft.com/capsa werden mehrere Editionen angeboten. Im Gegensatz zu den teilweise recht teuren kommerziellen Versionen bietet die Freeware-Version einen leicht abgespeckten Funktionsumfang, der jedoch für einzelne Analysen im Rahmen der Malware-Erkennung nicht unbedingt ins Gewicht fallen muss. Auch für die Freeware-Version ist eine Registrierung und Aktivierung (mit einem Key, der Ihnen per Mail zugesandt wird) notwendig. Abbildung 13.17 zeigt das Programm mit dem Dashboard im Hauptfenster.

Die Einarbeitung geht recht schnell, auch wenn der Funktionsumfang von Capsa erheblich ist. Das Programm bringt diverse Auswertungsübersichten mit sich. Sogar eine Kommunikationsmatrix ist vorhanden, die verdeutlichen kann, welche Verbindungen die größte Bandbreite in Anspruch nehmen (siehe Abbildung 13.18).

[Bild]

Abb. 13.18: Capsa-Kommunikationsmatrix

Diese Auswertungsfunktionen ermöglichen es, leichter Zusammenhänge zu erkennen. Insbesondere bei einer Infektion mit einem Internet-Wurm kann dies eine wertvolle Hilfe bei der Identifikation der Malware bedeuten.

Hinweis: Manuelle Netzwerk-Analyse mit Wireshark

Ein universelles Netzwerk-Analysetool ist Wireshark. Der Netzwerk-Sniffer kann auch zur Malware-Analyse nutzbringend eingesetzt werden. In Kapitel 16 Network Sniffing mit Wireshark & Co. erhalten Sie eine fundierte Einführung zu Wireshark.

Last, but not least sollten Sie die DNS-Konfiguration und -Auflösung mithilfe von nslookup, dig und Co. prüfen. Zum einen gibt es Malware, die die eingetragenen DNS-Server-Adressen in der IP-Konfiguration manipuliert bzw. durch eigene ersetzt. Damit ist es möglich, DNS-Anfragen auf die vom Angreifer kontrollierten Server umzuleiten und die Antworten nach Belieben zu manipulieren. Zum anderen sollten Sie die Datei C:\Windows\System32\Drivers\etc\hosts prüfen. Sie ist für die lokale Namensauflösung zuständig und hat sogar eine höhere Priorität als die Auflösung via DNS-Server. Sind dort manipulierte Einträge vorhanden, so wird eine Verbindung zu dem betreffenden Host auf die in der Datei hosts eingetragene IP-Adresse aufgebaut. Im Beispiel in Abbildung 13.19 wird jeder Versuch, die Website www.hacking-akademie.de zu erreichen, auf die IP-Adresse 1.2.3.4 umgeleitet.

[Bild]

Abb. 13.19: Ein manipulierter Hosteintrag in der Datei hosts

Darüber hinaus versuchen Schadprogramme häufig, mit C&C-Servern oder anderen Systemen im Internet in Verbindung zu treten, um Befehle zu erhalten, Daten hochzuladen oder Payload nachzuladen bzw. sich upzudaten. In der Regel werden hierzu entsprechende DNS-Namen aufgelöst, da dies viel flexibler ist, als eine IP-Adresse fest zu codieren. Möchten Sie verdächtige DNS-Aktivitäten feststellen, bietet sich neben dem Beobachten des Traffics via Wireshark & Co. der Einsatz spezialisierter Tools, wie z.B. DNSQuerySniffer von Nirsoft, an (siehe Abbildung 13.20).

[Bild]

Abb. 13.20: DNSQuerySniffer im Einsatz

Das kostenlose Programm fängt jeden DNS-Request ab und liefert detaillierte Informationen. Beachten Sie den horizontalen Scroll-Balken, den Sie sehr weit nach rechts ziehen können, um die aktuell nicht angezeigten Informationen sichtbar zu machen, siehe Abbildung 13.20.

13.2.4   Die Windows-Registrierung checken

In der Windows-Registrierungsdatenbank (oftmals einfach als »Registry« bezeichnet) können so ziemlich alle Aspekte von Windows gesteuert werden. Auch Programme legen hier ihre Informationen ab.

Vorsicht: Die Registry ist kein Ort für Experimente!

Nehmen Sie keine unbedarften Änderungen an der Registry vor! Sie stellt das Herzstück von Windows dar. Jede Änderung wird sofort aktiv. Erstellen Sie ggf. zunächst über den Registrierungs-Editor eine Sicherungskopie von der Registry, bevor Sie Änderungen vornehmen.

Die Registry besteht aus mehreren Hunderttausend Einträgen und ist hierarchisch aufgebaut. Die fünf Hauptschlüssel unterteilen die Registry grundlegend folgendermaßen:

[Bild]

Abb. 13.21: Der Registrierungs-Editor ist das Standardwerkzeug von Windows.

Das Bordmittel, um die Registry zu betrachten und zu manipulieren, ist der Registrierungs-Editor (regedit.exe). Er enthält eine einfache Suchfunktion und ermöglicht das einfache Hinzufügen von Schlüsseln und Einträgen. Dabei werden verschiedene Eintragstypen, wie Zeichenfolgen, Binärwerte oder DWORD-Werte, unterschieden.

Die Suchfunktion zeigt die Fundstellen hintereinander an. Für den Sprung zur nächsten Fundstelle müssen Sie aktiv weitersuchen. Möchten Sie die Registrierung jedoch komfortabler durchsuchen, bietet sich der kostenlose RegScanner von Nirsoft an, zu finden unter www.nirsoft.net/utils/regscanner.html. Er zeigt alle Fundstellen in einer Liste an und erhöht somit die Übersicht darüber.

Haben Sie sich z.B. schon einmal gefragt, wo das Terminalprogramm PuTTY seine Daten speichert, obwohl es doch keine Installation unter Windows erfordert? Hierzu bedient es sich der Registry. Suchen wir im RegScanner nach dem Begriff »putty«, so finden wir zahlreichen Einstellungen, die PuTTY in der Registry für erstellte Profile speichert. Abbildung 13.22 zeigt, wo die IP-Adresse unseres Kali-Systems aus dem PuTTY-Profil Kali abgespeichert ist.

[Bild]

Abb. 13.22: RegScanner hilft bei der Suche in der Registry.

[Bild]

Abb. 13.23: Änderungen an der Registry mit Regshot nachvollziehen

Um Änderungen an der Registry zu erkennen, bietet sich das sehr nützliche Tool Regshot an. Damit erstellen Sie eine Momentaufnahme der Registry und vergleichen diesen Stand zu einem späteren Zeitpunkt mit den aktuellen Einträgen. Das Delta wird in einem entsprechenden Report ausgegeben. So können Sie nachvollziehen, ob die Ausführung eines bestimmten Programms Spuren in der Registry hinterlassen hat, wenn Sie unmittelbar vor und nach der Ausführung jeweils einen »Regshot« erstellen und diese miteinander vergleichen.

Aufgabe: Regshot in Aktion

Laden Sie das Tool Regshot von https://sourceforge.net/projects/regshot herunter und erstellen Sie einen ersten Shot Ihrer Registry. Führen Sie im Anschluss die portable Version von PuTTY aus und ändern Sie dabei etwas an den Einstellungen eines Profils. Erstellen Sie darauf einen zweiten Shot und vergleichen Sie zum Ende die beiden Momentaufnahmen miteinander. Abbildung 13.23 verdeutlicht die Vorgehensweise.

Nicht nur erwünschte Programme hinterlassen ihre Spuren in der Registry. Oftmals verewigt sich hier auch Malware. Es gibt zahlreiche Tools, die die Registry auf überflüssige oder verdächtige Einträge durchsuchen. Eines dieser Programme ist der CCleaner, den wir bereits früher erwähnt haben (www.ccleaner.com). Er ist aktuell und kann auch für Windows 10/11 verwendet werden, was leider für viele andere Tools nicht uneingeschränkt gilt. Der altehrwürdige RegCleaner wird seit vielen Jahren nicht mehr weiterentwickelt bzw. ist in das Nachfolgeprodukt JV16 Powertools eingeflossen (siehe Abbildung 13.24). Dieses kann zwar 60 Tage kostenlos getestet werden, erfordert dann aber eine kostenpflichtige Registrierung. JV16 Powertools ist eine Sammlung von Cleaner-Tools, wobei die Säuberung der Registry nur einen Teilbereich einnimmt. Das Programm JV16-Powertools greift ziemlich weit in das System ein und kann unter https://jv16powertools.com bezogen werden.

[Bild]

Abb. 13.24: JV16 PowerTools Registry-Cleaner

Ein auf Malware spezialisiertes Tool ist AdwCleaner (www.malwarebytes.com/adwcleaner). Das Programm darf im privaten und Small-Business-Umfeld kostenlos eingesetzt werden und erkennt sehr viele PUPs (Potential Unwanted Programs) bzw. PUAs (Potential Unwanted Applications). Dazu gehören Adware, Spyware und ähnliche Malware, die vielleicht nicht wirklich gefährlich, aber mindestens sehr lästig sind.

[Bild]

Abb. 13.25: Der AdwCleaner erkennt lästige Software.

Das Programm HijackThis wurde von TrendMicro für Windows-Systeme entwickelt und wird derzeit als Fork von Alex Dragokas weitergeführt. Es ist auf https://github.com/dragokas/hijackthis, der GitHub-Seite des Projekts erhältlich. HijackThis überprüft, ob die Betriebssystem-Einstellungen von Malware manipuliert bzw. geändert wurden, und zeigt verdächtige Einträge in der Datei C:\Windows\System32\drivers\etc\hosts, in den Browsereinstellungen und der Registry an (siehe Abbildung 13.26).

[Bild]

Abb. 13.26: HijackThis untersucht das System.

Die Ergebnisse können optional in einer Textdatei gespeichert werden. Die verdächtigen Fundstellen können durch HijackThis gelöscht oder ggf. repariert werden.

Oftmals ist es nicht einfach, die Ausgabe von HijackThis zu interpretieren. Daher existieren im Internet diverse aktive Foren, in denen Sie Ihre Ergebnisse posten können, um die Einträge von erfahrenen Usern analysieren zu lassen. Auf der GitHub-Seite des Projekts finden sich Links zu entsprechenden Internet-Seiten. Über den Button AnalyzeThis im Tool gelangen Sie auf eine GitHub-Seite, auf der eine Anleitung zu finden ist, wie HijackThis-Logs aufbereitet und der Community bereitgestellt werden können, um Hilfe zu erhalten. Darüber hinaus gibt es Hilfe-Seiten, die Anleitungen zur Analyse der Ausgabe von HijackThis enthalten.

13.2.5   Autostart-Einträge unter Kontrolle

Einer der wichtigsten Punkte, die Sie in den Systemeinstellungen und in der Registry prüfen sollten, sind die Autostart-Einträge. Es gibt verschiedene Stellen in der Registry, in denen sich Malware einnisten kann, um beim Systemstart ebenfalls gestartet zu werden.

Während Sie bei Windows 7 noch über Eingabe von msconfig die Systemkonfiguration starten und dort die Autostart-Einträge kontrollieren konnten, wurde dieser Bereich bei Windows 10/11 in den Task-Manager ausgegliedert. Abbildung 13.27 zeigt das entsprechende Register.

[Bild]

Abb. 13.27: Autostart im Task-Manager unter Windows 10

Prinzipiell hat sich allerdings nichts geändert. Möchten Sie einen der Autostart-Einträge deaktivieren, klicken Sie mit der rechten Maustaste auf den Eintrag und wählen die Option Deaktivieren. Zum Aktivieren gehen Sie analog vor.

Mit Security Autorun erhalten Sie ein Freeware-Tool, mit dem Sie den automatischen Start von Komponenten überprüfen und Einträge ggf. löschen können. Das Programm prüft die üblichen Stellen in der Registry unter CurrentUser und Local Machine und kontrolliert darüber hinaus noch viele weitere Orte, in denen Komponenten festgelegt werden können, die unter bestimmten Bedingungen, insbesondere natürlich beim Systemstart, automatisch aufgerufen werden. Abbildung 13.28 gibt einen Einblick.

[Bild]

Abb. 13.28: Autostart-Einträge im Blick mit Security Autorun

Ebenfalls ein hervorragendes Programm zur Analyse der Autostart-Einträge ist das Sysinternals-Tool Autoruns. Es listet alle automatisch beim Systemstart aktivierten Prozesse und ordnet diese dem jeweiligen Registry-Zweig zu. Das Tool ist sehr vielseitig. So ist es z.B. auch möglich, einen Prozess über das Kontextmenü genauer zu untersuchen, zu löschen oder mit VirusTotal prüfen zu lassen (siehe Abbildung 13.29).

Ist der Process Explorer installiert, können Sie ihn direkt über das Kontextmenü des entsprechenden Eintrags aufrufen und den Prozess weiterführend analysieren.

[Bild]

Abb. 13.29: Autoruns aus der Sysinternals-Toolsammlung

13.2.6   Windows-Dienste checken

Ein Dienst ist ein Programm, das in der Regel im Hintergrund läuft und Funktionen Dritten zur Verfügung stellt, z.B. der Druckdienst. Je nach Konfiguration startet der Dienst automatisch oder manuell. Dies machen sich insbesondere Trojaner gern zunutze. So könnte z.B. ein Backdoor-Programm als Windows-Dienst getarnt einen TCP-Port binden, über den ein Angreifer auf das System zugreifen kann.

Sie können sich mit Windows-Bordmitteln einen Überblick über die vorhandenen Dienste Ihres Windows-Systems verschaffen. Dazu benötigen Sie die Management-Konsole Dienste. Diese ist an verschiedenen Stellen im System integriert, u.a. in der Computerverwaltung oder in der Systemsteuerung. Sie können die Konsole auch direkt aufrufen über Eingabe von services.msc. Die Übersicht auf Abbildung 13.30 zeigt den Dienstnamen, eine Beschreibung und insbesondere, ob der Dienst gegenwärtig gestartet ist oder nicht (siehe Spalte Status). Der Starttyp bestimmt, ob und unter welchen Bedingungen ein Dienst gestartet wird. Dienste arbeiten im Kontext eines lokalen Benutzerkontos, das in der Spalte Anmelden als angezeigt wird.

In dieser Konsole können Sie die Dienste auch konfigurieren und z.B. den Starttyp ändern oder auch den zu verwendenden Benutzer anpassen. In jedem Fall sollten Sie einen gründlichen Blick in die Liste der aktiven Dienste werfen, um Einträge auszumachen, die ggf. nicht dorthin gehören. Die meisten Dienste verfügen über eine Beschreibung. Dienste ohne Beschreibung sind oftmals keine Microsoft-Dienste und sollten näher unter die Lupe genommen werden. Hierzu können Sie die Liste nach der Spalte Beschreibung sortieren.

Kommt Ihnen ein Eintrag verdächtig vor, so können Sie über Doppelklick darauf seine Eigenschaften aufrufen. Hier findet sich auch der Pfad zur EXE-Datei. In Abbildung 13.31 überprüfen wir einen verdächtigen Dienst namens GamingApp_Service, stellen aber fest, dass dieser Dienst offensichtlich zur MSI-NVIDIA-Grafikkarten-Software gehört. Eine kurze Recherche im Internet gibt uns Sicherheit, es hier mit einem regulären Dienst zu tun zu haben.

Auch für die Verwaltung der Dienste existieren zahlreiche Tools. Ein nützliches Freeware-Tool ist der Service-Manager von Martin Fuchs. Er ist auf www.foxplanet.de/servicemgr zum Download verfügbar und zeigt die Informationen zu den einzelnen Diensten übersichtlich an. Durch einfaches Setzen der entsprechenden Häkchen kann die Liste gefiltert werden, sodass z.B. nur aktive oder inaktive oder keine Microsoft-Dienste angezeigt werden.

[Bild]

Abb. 13.30: Die Dienste-Management-Konsole

[Bild]

Abb. 13.31: Der Pfad kann Hinweise auf die Herkunft des Treibers geben.

Über den Button Administrative Aktionen können Dienste gestartet, gestoppt, konfiguriert und sogar entfernt werden. Abbildung 13.32 zeigt den Service-Manager in Aktion.

[Bild]

Abb. 13.32: Service-Manager von Martin Fuchs

13.2.7   Treiber überprüfen

Malware nutzt gern Gerätetreiber, um sich und seine Aktivitäten zu verstecken. Ein »Treiber« ist ein Stückchen Software, das als Schnittstelle zwischen dem Betriebssystem oder der Anwendung auf dem Computer und einer bestimmten Hardware-Komponente dient und somit die Interaktion mit der physischen oder virtuellen Hardware ermöglicht.

Gelingt es einem Schädling, einen manipulierten Treiber im System zu installieren, so hat er unter Umständen auf einer kernelnahen Ebene Zugriff auf Systemfunktionen. Dies kann er nutzen, um seine Aktivitäten und Prozesse zu tarnen und weitere Komponenten zu installieren. Hier bewegen wir uns also bereits auf dem Level der Rootkits.

Möchten Sie sich die Systemtreiber Ihres Computers anschauen, stellt Windows als Bordmittel das Werkzeug Systeminformationen bereit, das Sie über Eingabe von msinfo32.exe aufrufen können. Unter Softwareumgebung finden sich die Systemtreiber, wie Abbildung 13.33 zeigt.

Der Standard-Pfad für Systemtreiber von Windows ist C:\Windows\System32\Drivers. Dieser Pfad ist durch restriktive Zugangsberechtigungen gut geschützt. Allerdings können Treiber auch an anderen Stellen im Dateisystem abgelegt und von dort aus aufgerufen werden.

Ein nützliches und kostenloses Tool, mit dem Sie sich die aktuell geladenen Treiber anschauen können, ist DriverView von Nirsoft (www.nirsoft.net/utils/driverview.html). Es zeigt diverse zusätzliche Informationen zu den Treibern an. Neben der Beschreibung und dem Hersteller (Company) finden Sie die Treiber-Version sowie einige Low-Level-Daten wie die Speicheradresse des geladenen Treibers.

[Bild]

Abb. 13.33: Die Windows-Systemtreiber

Eine interessante Funktion von DriverView ist die Möglichkeit, Microsoft-Treiber auszublenden, um eine bereinigte Liste aller externen Treiber zu erhalten. Hier wird es in der Regel interessant. Insbesondere Treiber ohne Beschreibung, Version und andere Metadaten sollten Sie genauer in Augenschein nehmen. Aber Achtung: Es gibt auch virtuelle Gerätetreiber, die ganz regulär zum Einsatz kommen, aber keine Metadaten zur Verfügung stellen. In Abbildung 13.34 findet sich ein Eintrag für ftser2k.sys, der zunächst einmal verdächtig aussieht. Eine Internet-Recherche ergibt jedoch, dass es sich um einen virtuellen Treiber für einen Serial-to-USB-Adapter handelt, der serielle Anschlüsse über einen USB-Port bereitstellt, wie sie z.B. für die Erstkonfiguration von Netzwerk-Komponenten wie Switches und Router verwendet werden. Wichtig ist also, verdächtige Treibereinträge zunächst im Internet zu recherchieren.

[Bild]

Abb. 13.34: Übersicht über die Nicht-Microsoft-Treiber

Vorsicht: Driver-Updater laden manchmal unerwünschte Programme!

Verschiedene Anbieter stellen Driver-Update-Utilities zur Verfügung. Dazu gehören z.B. Intel Driver Update Utility, Driver Booster Free, WinZip Driver Updater und viele mehr. Der Vorteil dieser Tools liegt darin, dass automatisch veraltete Treiber aktualisiert werden.

Allerdings gibt es auch schwarze Schafe. Ein Tool, das sich schlicht DriverUpdate nennt, erkennt z.B. ständig veraltete Software, wie Java, Flash-Player und so weiter, die angeblich aktualisiert werden muss. Nachgeladen werden jedoch keine aktuellen Treiber bzw. Updates, sondern eher unerwünschte Programme, also Potential Unwanted Programs (PUPs). Diese »hijacken« den Browser, sorgen für Banner-Werbung, bringen weitere Fake-Meldungen auf den Bildschirm und so weiter. Vorsicht also bei derartigen kleinen Helfer-Tools, die Sie sich auf den Rechner laden. Es ist grundsätzlich sicherer, die Treiber von den Herstellerseiten direkt herunterzuladen.

13.2.8   Integrität der Systemdateien prüfen

Im Zusammenhang mit den Gerätetreibern ist eine spannende Frage, wie wir prüfen können, ob Systemdateien geändert wurden. Zu diesem Zweck hat Microsoft wichtige Systemdateien und Treiber digital signiert, sodass Änderungen an diesen Dateien einfach erkannt werden können.

Zur Prüfung der Signaturen stellt Windows das Programm Dateisignaturverifizierung bereit, das Sie über Eingabe von sigverif.exe aufrufen können. Das Ergebnis der Prüfung wird in einer Textdatei namens SIGVERIF.TXT erfasst und kann aus dem Programm heraus aufgerufen werden (siehe Abbildung 13.35).

[Bild]

Abb. 13.35: Sigverif.exe prüft die Signaturen der Systemdateien.

Sollte die Dateisignaturverifizierung zu dem Ergebnis kommen, dass einzelne Treiber und Dateien nicht signiert sind oder ihre Signaturen nicht geprüft werden konnten, ist Vorsicht angesagt. Hier sollten Sie in einer Einzelprüfung jeden verdächtigen Eintrag untersuchen.

13.2.9   Datei-Integrität durch Prüfsummen-Check

Oftmals werden durch Schadsoftware Dateien ohne Zutun und Wissen des Anwenders modifiziert. Dieses Verhalten kann allerdings durch einen Integritätscheck der Dateien schnell und zuverlässig aufgedeckt werden.

Wie Sie bereits in Kapitel 5 Kryptografie und ihre Schwachstellen gesehen haben, können Sie mit Hash-Funktionen Prüfsummen über beliebige Dateien bilden. Wenn Sie diese Hashwerte archivieren und zu einem späteren Zeitpunkt erneut eine Prüfsumme bilden, können Sie die Werte miteinander vergleichen und damit verifizieren, ob diese sich unterscheiden. Ist das der Fall, wurde die Datei modifiziert.

Für Windows-Systeme gab es von Microsoft ein Tool mit dem Namen FCIV (File Checksum Integrity Verifier), leider wird dies nicht mehr angeboten. Eine Alternative ist WinMd5.exe, das auch als WinHashbezeichnet wird. Es ist unter der folgenden URL zum freien Download verfügbar: https://github.com/tualatin/winmd5checksum/releases.

Das Tool ist sehr einfach, aber nützlich. Dateien können ausgewählt und einzeln importiert, oder per Drag & Drop in die Oberfläche gezogen werden. WinHash unterstützt diverse Hash-Algorithmen, die wir wahlweise aktivieren oder deaktivieren können. Meistens reicht eine einzelne Checksumme.

In unserem Beispiel haben wir ein Testverzeichnis mit drei Textdateien erstellt und diese per Drag & Drop in das Programm importiert. Nach Klick auf Start werden die Hashwerte berechnet und über den Speichern-Button werden die Hashwerte zu den jeweiligen Dateien im selben Ordner gespeichert (siehe Abbildung 12.36).

[Bild]

Abb. 13.36: Verschiedene Hashalgorithmen werden berechnet und gespeichert.

Über den roten X-Button kann die Liste anschließend wieder geleert werden. Die Hashwert-Dateien können (manuell) auch in einem zweiten Schritt an einem anderen Ort gesichert werden, um sie vor Manipulation zu schützen. Sollte jetzt eine der Dateien geändert werden, wirkt sich das auch bei der geringsten Änderung auf den jeweiligen Prüfsummenwert aus. Der alte Hashwert aus der gespeicherten Datei wird in der Spalte Compare eingetragen und ermöglicht eine einfache Vergleichsprüfung. In Abbildung 12.37 sehen wir, wie sich das dann darstellt.

[Bild]

Abb. 13.37: Die Prüfsummen stimmen nicht überein, die Datei wurde also zwischenzeitlich geändert.

WinHash ist ein kleines Tool, das es ermöglicht, für einzelne Dateien Hashwerte zu erstellen und diese zu prüfen. Sobald es sich um mehr als ein paar einzelne Dateien handelt, ist das Tool jedoch nicht mehr ausreichend.

13.2.10   System-Integrität mit Tripwire sichern

Für einen umfassenden Schutz vor unerwünschten Veränderungen von Dateien benötigen wir einen Ansatz, der automatisch alle gewünschten Dateien und Verzeichnisse als Hashwerte erfasst und regelmäßig abgleicht. Hierfür gibt es spezielle, ausgereifte Tools.

Mit Tripwire können wir die Datei-Integrität auf einem Linux-System sicherstellen. Der Programmcode zu dieser Software wurde ursprünglich von Tripwire Inc. entwickelt und später in einer Enterprise-Version vom Unternehmen kostenpflichtig weitergeführt. Nachdem allerdings im Jahr 2000 der Quellcode veröffentlich wurde, steht er als freie Software unter dem Namen Open Source Tripwire zur Verfügung. Mehr Informationen erhalten Sie auf der entsprechenden GitHub-Seite des Projekts: https://github.com/Tripwire/tripwire-open-source.

Open Source Tripwire funktioniert als hostbasiertes Intrusion-Detection-System (HIDS) und überprüft definierte Dateien auf Veränderungen. Dazu führt die Software bei der ersten Ausführung einen Scan nach den von Ihnen festgelegten Regeln durch, erstellt Prüfsummen für alle erfassten Dateien und speichert diese Informationen in einer Datenbank. Zu späteren Zeitpunkten werden die Dateien erneut gescannt und mit den früheren Ergebnissen der Datenbank verglichen. Dieses Prinzip kennen Sie bereits von FCIV.

Tripwire ist ein Programm, das sehr viel Tuning und Optimierungsaufwand benötigt. Um Tripwire zu optimieren, benötigen Sie Zeit, um die Konfigurationsdatei entsprechend Ihren Anforderungen anzupassen. In der Praxis haben Sie erfahrungsgemäß mit zahlreichen False Positives zu kämpfen, also ein Zustand, der fälschlicherweise als Bedrohung erkannt wird. Tripwire ist daher hauptsächlich in eher statischen Umgebungen nützlich.

Ein weiterer Nachteil ist, dass Tripwire die Prüfungen mittels Cronjob nur in periodischen Abständen vornimmt, sodass es einem Angreifer möglich ist, zwischen den Prüfungen Dateien zu manipulieren und vor der nächsten Prüfung den Ausgangszustand wiederherzustellen.

13.3   Sheep-Dip-Systeme

Ein grundlegendes Konzept zur Prüfung von Dateien bzw. Wechselmedien ist das »Sheep-Dipping«. Dabei geht es darum, einen gründlichen Malware-Scan durchzuführen und ggf. das Verhalten von Dateien bzw. Programmen zu prüfen – und zwar, bevor diese in das Unternehmensnetzwerk gelangen.

13.3.1   Einführung

Der Begriff »Sheep-Dipping« bedeutet wörtlich übersetzt in etwa »Schafe eintauchen«. Dahinter steckt eine Prozedur, bei der Schafe in ein Becken geführt werden, dessen Wasser mit bestimmten desinfizierenden Chemikalien angereichert ist. Dabei werden das Fell und die Haut der Schafe effektiv von Ungeziefer, Parasiten und anderen Schädlingen befreit. Damit wird verhindert, dass ein infiziertes Schaf die ganze Herde ansteckt (siehe Abbildung 13.38).

[Bild]

Abb. 13.38: Sheep-Dipping im »Real Life« (Foto mit freundlicher Genehmigung von Arvid Perry Jones)

Ein entsprechendes Konzept existiert auch für zu prüfende Dateien, die über die verschiedenen Wege in das Unternehmensnetzwerk gelangen können:

  • Download von Websites

  • E-Mail-Anhänge

  • Dateiübertragungen via Messenger & Co.

  • USB-Sticks und andere Wechselmedien

  • und so weiter

Natürlich können diese Dateien auch durch die ganz regulären AV-Systeme geprüft werden. Aber in einigen Fällen ist dies nicht genug. Wenn die AV-Erkennung fehlschlägt und der betreffende Computer sich kurze Zeit später auffällig verhält, ist das Kind bereits in den Brunnen gefallen und die Malware im Unternehmensnetzwerk gelandet. Um dies zu verhindern, werden Sheep-Dip-Systeme aufgesetzt, die als dedizierte Prüfsysteme zunächst in einer isolierten Umgebung eine detaillierte Analyse der betreffenden Dateien ermöglichen. Sie dienen als Perimeter-Schutz (first line of defense) vor dem Eintritt in das zu schützende Netzwerk.

Hinweis: Der historische Einsatz von Sheep-Dip-Computern

In früheren Zeiten wurden Sheep-Dip-Systeme als Stand-alone-Computer insbesondere als Schutz gegen Bootsektorviren auf Floppy Disks eingesetzt.

Heute verwenden viele Unternehmen derartige Systeme hauptsächlich, um beliebige Wechselmedien, wie USB-Sticks, Memory Cards, optische Medien oder Portable SSDs/HDDs, zu prüfen. Darüber hinaus können auch gezielt einzelne Dateien überprüft werden.

Für größere Umgebungen sind Sheep-Dip-Systeme allerdings oftmals als einziger Perimeterschutz nicht praktikabel, da sie manuell durch den Administrator angewendet werden und nicht automatisch zur Anwendung kommen. Hier eröffnet sich ein gewisses Fehlerpotenzial.

13.3.2   Aufbau eines Sheep-Dip-Systems

Sheep-Dip-Computer sind keine regulär in das Netzwerk eingebundenen Systeme, sondern laufen isoliert, in der Regel als virtuelle Maschine. Meistens wird ein Windows-System aufgesetzt, der virtuelle Adapter wird in den Host-only-Modus gesetzt, um Kommunikation nach außen zu vermeiden. Das System wird entsprechend gehärtet, also insbesondere bestimmte Sollbruchstellen, wie automatische Netzwerksuche und -erkennung, Freigaben und natürlich auch unnötige Dienste werden deaktiviert. Da ein Sheep-Dip-System ähnlich wie ein Minensucher fast zwangsläufig mit Malware konfrontiert wird, muss das System so gut wie möglich abgesichert werden.

Das Prüfsystem wird nun mit allerlei Sicherheits- und Monitoring-Software ausgestattet, wie wir es bisher schon im Einzelnen vorgestellt haben:

  • AV-Software mit aktuellen Signaturen

  • File Integrity Verifier (Prüfsummen-Checker)

  • Prozess-Monitoring

  • Port-Monitoring

  • Netzwerk-Monitoring

  • Service-Monitoring

  • Driver-Monitoring

  • Registry-Monitoring

  • Reverse-Engineering-Tools (Debugger)

  • und so weiter

Ein Sheep-Dip-System kann entweder schlicht zur Prüfung von Wechselmedien verwendet werden – in diesem Fall wird das eingelegte Wechselmedium explizit durch die AV-Software überprüft – oder aber für ausgiebige Analysen bekannter Malware eingesetzt werden. Wichtig ist, dass das Testsystem einen klar definierten Status vor Beginn des Tests hat und natürlich nicht bereits infiziert ist.

Der einfachste Weg, um dies sicherzustellen, ist das Erstellen eines Snapshots der VM bzw. eine Image-Sicherung des Stand-alone-Computers nach der Installation aller benötigten Tools und Patches. Hinsichtlich der AV-Signaturen, die tagesaktuell eingespielt werden müssen, sollte ein Prozess festgelegt werden, der sicherstellt, dass die AV-Systeme immer über den aktuellen Stand der Engine und der Pattern-Version verfügen. Dies muss ggf. regelmäßig neu vom Snapshot-Punkt aus aktualisiert werden.

Je nach Größe des Netzwerks ist es ggf. erforderlich, mehrere Sheep-Dip-Systeme an strategisch günstigen Standorten des Unternehmens zu platzieren. Diese Systeme sollten alle identisch konfiguriert sein, sodass hier auch ein entsprechender Prozess definiert werden sollte. Hier wird auch der Nachteil dieses Ansatzes deutlich: Durch den manuellen Betrieb der Sheep-Dip-Systeme ist das Verfahren fehleranfällig. Werfen wir nachfolgend einen Blick auf weitere Ansätze und schauen uns an, wo wir Verbesserungspotenzial identifizieren.

13.4   Schutz durch Sandbox

Als Kinder konnten wir uns im Sandkasten austoben. Analog dazu stellen wir einen solchen virtuellen Sandkasten für potenzielle Malware bereit, damit sie sich beim Start austoben kann, ohne Schaden am System anzurichten.

Eine sogenannte Sandbox (englisch für Sandkasten) bezeichnet einen speziell isolierten Bereich innerhalb eines Systems. Ereignisse in diesem Bereich haben keine Auswirkung auf die äußere Umgebung. Diese abgeschotteten Bereiche können Sie zum Beispiel zum Testen von Anwendungen nutzen, aber auch, um potenzielle Schadsoftware auszuführen, ohne Ihrem System zu schaden. Darüber hinaus können Sie das Verhalten einer Datei bzw. eines Programms in der Sandbox protokollieren und analysieren, um die Wahrscheinlichkeit festzustellen, mit der es sich um Malware handelt.

13.4.1   Sandboxie

Es gibt mehrere Möglichkeiten, eine solche Sandbox auf Ihrem System einzurichten. Eine davon ist die Installation der Software Sandboxie. Sie können das Tool unter https://sandboxie-plus.com/ herunterladen. Früher war es ein kommerzielles Produkt. Seit einiger Zeit wird es als Freeware-Tool angeboten und ist mittlerweile in zwei Varianten verfügbar: Sandboxie Classic und Plus. Letzteres nutzt eine modernere QT-basierende Oberfläche. Während der Installation bekommen Sie weitere Informationen zur Funktionsweise und zur Bedienung von Sandboxie angezeigt.

Sie können Sandboxie nutzen, um z.B. einen Browser isoliert zu starten. Somit schützen Sie sich beim Surfen auf Seiten mit potenziell schadhaften Inhalten. Oftmals kann es auch Sinn machen, Ihren E-Mail-Client in einer Sandbox auszuführen, um beispielsweise fragwürdige Anhänge zu öffnen. Ein weiterer Anwendungsfall sind Programm-Downloads aus nicht einhundertprozentig sicheren Quellen. Weitere Anwendungsfälle können Sie mit Sicherheit für sich ableiten: Immer dann, wenn Sie »auf Nummer sicher« gehen wollen, starten Sie das betreffende Programm innerhalb einer Sandbox. Damit haben Sie einen einfachen, aber effektiven Schutz für Ihr System geschaffen.

Um ein Programm innerhalb einer Sandbox zu starten, klicken Sie mit der rechten Maustaste auf das Objekt Sandbox DefaultBox und wählen dort die entsprechende Option aus, wie in Abbildung 13.39 gezeigt.

[Bild]

Abb. 13.39: Ein Programm innerhalb einer Sandbox öffnen (Sandboxie Classic)

Durch einen gelben Rahmen um die Applikation können Sie erkennen, ob eine Ausführung innerhalb der Sandbox stattfindet. In Abbildung 13.40 haben wir HijackThis in einer Sandbox gestartet.

[Bild]

Abb. 13.40: Das Tool HijackThis innerhalb einer Sandbox, gekennzeichnet durch einen gelben Rahmen

Handeln Sie sich nun Malware ein und starten diese innerhalb einer Sandbox, hat sie keine Chance, sich im System zu etablieren. Löschen Sie die Sandbox regelmäßig, so verschwinden gleichzeitig auch die Schadprogramme, ohne dass auf dem System Spuren zurückbleiben.

In Sandboxie können Sie auch mehrere Sandboxen getrennt unter verschiedenen Einstellungen betreiben. In den Einstellungen der einzelnen Sandboxes haben Sie diverse Möglichkeiten, Zugriffsrechte und Umleitungen in oder aus der Sandbox zu konfigurieren. Das Tool ist auf jeden Fall einen Blick wert. Testen Sie es doch auch mal, vielleicht gehört Sandboxie dann bald auch zu Ihrem Werkzeugkasten.

Ein Nachteil von Sandboxie ist die fehlende Protokollierung und Analyse der Ereignisse in der Sandbox. Tatsächlich bemerken Sie es unter Umständen nicht, wenn Malware ausgeführt wird, da sich die Anwendung in der Sandbox ganz normal verhält und das Hostsystem in keiner Weise beeinträchtigt oder manipuliert wird. Sandboxie ist also ein schützendes Programm für den Alltag, nützt uns im Rahmen der Malware-Erkennung und -Analyse aber nur bedingt.

13.4.2   Cuckoo

Eine vollwertige Malware-Analyse-Lösung auf Sandboxing-Basis ist Cuckoo (sprich: kuku). Sie ist Open Source und kann von https://cuckoosandbox.org bezogen werden. Abbildung 13.41 zeigt die Projekt-Webseite. Da die Host-Komponenten von Cuckoo in Python programmiert sind, ist eine entsprechende Python-Umgebung notwendig.

[Bild]

Abb. 13.41: Projekt-Website von Cuckoo

Die Installationsanleitung auf der Website bezieht sich auf Ubuntu-Linux, es werden jedoch auch macOS und Windows als Host-Plattformen unterstützt. Wie Sie sich denken können, basiert das Sandboxing bei Cuckoo auf virtuellen Maschinen. Daher werden diverse gängige Virtualisierungslösungen unterstützt, wie z.B. VMware, VirtualBox, Xen, KVM und so weiter.

Was macht Cuckoo nun eigentlich genau? Das System nimmt über die Kommandozeile oder ein Webinterface eine zu prüfende Datei bzw. ein Programm (»Sample« genannt) entgegen und führt dieses automatisch in der Sandbox, sprich: in einer virtuellen Maschine, aus. Neben normalen, ausführbaren Programmen und Skripts werden auch diverse Dateitypen, wie Office-, PDF- und andere Dateien unterstützt. Dazu müssen die entsprechenden Interpreter bzw. Programme in der VM installiert und mit den jeweiligen Dateitypen assoziiert sein.

Während der Ausführung werden für eine gewisse Zeitspanne (abhängig von der Konfiguration und der Laufzeit des Samples) alle Aktivitäten protokolliert und analysiert. Dabei kann der Analyst mit der VM interagieren und z.B. Eingaben vornehmen oder Mausklicks tätigen.

Zu den protokollierten Aktivitäten gehören die üblichen Verdächtigen:

  • Aufgerufene und erzeugte Prozesse

  • Angefragte DNS-Namen und Netzwerk-Verbindungen

  • Netzwerk-Mitschnitte (pcap-Dumps)

  • Ergebnis der Prüfung des Samples bei VirusTotal

  • Screenshots der VM

  • Zugriff auf Registry Keys

  • Zugriff auf Dateien

  • und vieles mehr

Im Ergebnis liefert Cuckoo ein Protokoll, das dem Analysten eine Einschätzung ermöglicht, ob es sich um Malware handelt oder nicht. Auf der einen Seite kann so ziemlich jeder Benutzer ohne vertiefte Kenntnisse auf einem konfigurierten Cuckoo-System eine automatische Analyse initiieren. Auf der anderen Seite liefert Cuckoo nicht einfach eine Antwort, »Sample ist Malware« oder »Sample ist keine Malware«, zurück. Das Ergebnisprotokoll muss interpretiert werden, sodass hier ein geschultes Auge erforderlich ist, um zu erkennen, ob es sich um Malware handelt oder nicht. Fundiertes Know-how ist also notwendig, um Cuckoo effektiv zu betreiben.

Cuckoo erfordert diverse Software-Pakete als Voraussetzung und muss aufwendig installiert und konfiguriert werden – es dauert einige Zeit, bis alle Komponenten korrekt installiert und konfiguriert sind. Eine Installationsanleitung und ein praktischer Workshop würden den Rahmen dieses Kapitel sprengen, daher möchten wir Ihnen an dieser Stelle Cuckoo zunächst nur als Produkt vorstellen und Ihnen vorschlagen, sich einmal näher mit dem Projekt zu beschäftigen.

13.5   Allgemeine Schutzmaßnahmen vor Malware-Infektion

Sie haben in diesem Kapitel eine ganze Reihe von Möglichkeiten kennengelernt, wie Malware erkannt und deren Treiben analysiert werden kann. Werfen wir abschließend noch einen Blick auf wichtige Schutzmaßnahmen, die vor eine Infektion durch Malware schützen können. Diese Maßnahmen sollten ggf. als Regeln im Rahmen der Security Policy festgelegt werden:

Wie Sie sicherlich schon bemerkt haben, wiederholen sich die gängigen Sicherheitstipps. Der Vorteil ist jedoch, dass diese grundlegenden Maßnahmen dann auch vor vielen Angriffsvektoren schützen. Wie immer lässt sich diese Liste noch weiter fortführen. Die genannten Maßnahmen unterstützen Sie beim Einrichten einer sicheren IT-Umgebung, müssen aber an die Besonderheiten des jeweiligen Szenarios angepasst werden.

13.6   Zusammenfassung und Prüfungstipps

Werfen wir einen Blick zurück: Was haben Sie gelernt, wo stehen Sie und wie geht es weiter?

13.6.1   Zusammenfassung und Weiterführendes

In diesem Kapitel haben wir thematisch am vorhergehenden Kapitel angeknüpft. Nachdem wir dort die verschiedenen Formen der Malware beschrieben und Ihnen zahlreiche Praxisbeispiele gezeigt haben, ging es in diesem Kapitel darum, wie Malware-Erkennung und -Analyse funktioniert. Tatsächlich gehört es ggf. auch zu den Aufgaben eines Penetration-Testers, herauszufinden, ob und wie ein System mit Malware infiziert ist. Als Security-Experte wird ein Ethical Hacker hinzugezogen, wenn es darum geht, Malware auf einem System zu finden und ggf. zu beseitigen.

Dabei haben wir zunächst die Möglichkeiten betrachtet, mit Anti-Malware-Produkten Schädlinge zu finden und zu eliminieren. Neben den herkömmlichen Virenscannern, die auf Endgeräten installiert sind, gibt es die Möglichkeit, Offline-Scans über Rescue-Disks durchzuführen, um die Erkennungsrate zu erhöhen. Außerdem bieten die meisten AV-Hersteller mittlerweile diverse zusätzliche Technologien und Dienste an, um den Computer zu schützen und Malware zu erkennen. Hierzu gehört die Verhaltensanalyse, die in modernen Lösungen oftmals in einer Sandbox durchgeführt wird.

Aber auch wenn die AV-Scanner nicht anschlagen, können erfahrene Security-Analysten verschiedene Aspekte der Systemumgebung prüfen, um festzustellen, ob eine Malware-Infektion vorliegt oder nicht. Dazu werden zahlreiche Systemkomponenten betrachtet. Angefangen von Prozessen, über die Netzwerkaktivität bis hin zu Treibern und Diensten, der Windows-Registrierung und den Autostart-Einträgen gibt es viele Stellen, an denen sich Malware im System einnisten kann.

Durch Prüfsummen in Form von Hashwerten können wichtige Systemdateien geschützt bzw. deren Manipulation oder Austausch einfach entdeckt werden. Neben manuellen Lösungen, wie FCIV (Windows) können Sie mit Tripwire (Linux) automatisiert die Systemintegrität prüfen lassen.

Mit Sheep-Dip-Systemen lassen sich Dateien und Programme im Detail prüfen, ohne die Integrität von Produktivsystemen zu gefährden. Sheep-Dip-Systeme können z.B. als virtuelle Maschinen eine isolierte Umgebung bereitstellen, in der potenzielle Malware gefahrlos auf Herz und Nieren geprüft werden kann. Sollte sich das »Sample« als gefährlich erweisen, ist es in der isolierten VM eingesperrt und kann keinen Schaden außerhalb anrichten. Die VM wird per Snapshot zurückgesetzt und ist somit auch wieder bereinigt.

Dieses Prinzip einer Sandbox wird in verschiedenen Szenarien verwendet. Mit Sandboxie ist es möglich, beliebige Programme in einer Sandbox isoliert zu starten, sodass das System keinen Schaden nehmen kann, wenn das Programm oder dessen Dateien infiziert sind. Cuckoo ist eine Open-Source-Lösung, mit der nach dem Sandboxing-Prinzip Samples ausgeführt und alle Systemaktivitäten automatisch protokolliert werden können. Das Aktivitäten-Protokoll dient dem Analysten dazu, zu entscheiden, ob es sich um Malware handelt oder nicht.

Aufgrund der vielfältigen Gefahren, Angriffsvektoren und Einfallstore ist es heutzutage notwendig, in professionellen Umgebungen eine Anti-Malware-Infrastruktur zu betreiben, deren Komponenten ineinandergreifen und miteinander kommunizieren. Zentrales Management und zentrale Scanning-Komponenten inklusive Sandboxing-Analyse und Prüfung in der Cloud ergänzen die traditionellen Virenscanner auf den Endgeräten sowie klassische Komponenten wie Firewalls und IDS/IPS.

Unter dem Strich helfen neben den Anti-Malware-Komponenten stringente Prozesse, das Härten der Systeme und insbesondere die Schulung der Mitarbeiter effektiv vor der Infektion mit Malware.

13.6.2   CEH-Prüfungsgstipps

Beim Thema Malware legt der CEH besonderen Wert auf die Schutzmechanismen. Sie sollten die Angriffsvektoren von Malware und die passenden Gegenmaßnahmen verstanden haben. Darüber hinaus geht es natürlich – wie immer – um Konzepte, Begriffe und wichtige Tools. Prägen Sie sich die Systemkomponenten ein, die bei Verdacht auf Schädlingsbefall überprüft werden sollten. Grundsätzliche Registry-Schlüssel sollten Ihnen ebenso bekannt sein, wie die Bedeutung der Manipulation der Datei hosts.

Stellen Sie sicher, dass Sie das Prinzip eines Sheep-Dip-Systems verstanden haben und wissen, wie das Sandboxing-Prinzip funktioniert. Schließlich sollten Sie verstanden haben, wie Malware-Bekämpfung funktioniert und welche konkreten Möglichkeiten Sie haben, um einen infizierten Computer zu säubern und zu retten.

13.6.3   Fragen zur CEH-Prüfungsvorbereitung

Mit den nachfolgenden Fragen können Sie Ihr Wissen überprüfen. Die Fragestellungen sind teilweise ähnlich zum CEH-Examen und können daher gut zur ergänzenden Vorbereitung auf das Examen genutzt werden. Die Lösungen zu den Fragen finden Sie in Anhang A.

  1. Wie wird die Variante der Malware-Analyse genannt, bei der das Programm nicht ausgeführt wird?

    1. Dynamische Malware-Analyse

    2. Sandbox-Malware-Analyse

    3. Statische Malware-Analyse

    4. Passive Malware-Analyse

  2. Mit welchem Werkzeug ist es bei der statischen Codeanalyse möglich, den Quellcode annähernd wiederherzustellen?

    1. Decompiler

    2. Sandbox

    3. Netzwerk-Sniffer

    4. Statischer Compiler

    5. Assembler

  3. Welches der folgenden Tools ist in der Lage, eine Programmdatei sehr einfach einer ersten statischen Analyse zu unterziehen, um ggf. Indikatoren einer Schadsoftware zu identifizieren?

    1. UPX

    2. ASPack

    3. pestudio

    4. Sigverif

  4. Ihr System verhält sich seltsam: Die Festplatten-LED leuchtet ohne Unterbrechung, die Lüfter drehen hoch und irgendwie haben Sie das Gefühl, dass das ganze System langsamer ist als sonst. Sie befürchten einen Malware-Befall und starten einen Scan mit Ihrem installierten Virenscanner, doch dieser kann keine Schadsoftware identifizieren. Welches Vorgehen wäre der nächste logische Schritt?

    1. Virencheck mit Rescue-Disc

    2. Das System muss neu aufgesetzt werden.

    3. Es sind keine weiteren Aktionen notwendig.

    4. Einen Nmap-Scan durchführen

  5. Wie können Sie die Funktion und die korrekte Einstellung Ihres Virenscanners überprüfen?

    1. Mittels EICAR-Testdatei

    2. Durch den CARO-Updater

    3. Mit einer AVIRA-Testdatei

    4. Mittels SIGVERIF-Scan

  6. Was versteht man unter einem »geforkten« Prozess?

    1. Ein Prozess, der sich als ein anderer tarnt

    2. Ein Prozess, der sich immer wieder selbst startet

    3. Ein Prozess, der andere Prozesse beendet

    4. Ein Prozess, der von einem anderen Prozess aufgerufen wurde

  7. Über welche Datei kann die lokale DNS-Auflösung unter Windows manipuliert werden?

    1. Benutzer/AppData/local/DNS

    2. Windows/System32/drivers/etc/hosts

    3. Windows/System32/config/resolve

    4. Windows/hosts

  8. Mit welchem Befehl können Sie über die Windows-Eingabeaufforderung die TCP-Netzwerkzugriffe überprüfen und sich die dazugehörenden Prozesse anzeigen lassen?

    1. systeminfo -tcp

    2. netstat -tlpn

    3. netstat -nabp tcp

    4. netsh -all

  9. Unter welchem Registrierungsschlüssel befinden sich die Einstellungen, die für das gesamte System gelten?

    1. HKEY_CURRENT_USER

    2. HKEY_LOCAL_MACHINE

    3. HKEY_CLASSES_ROOT

    4. HKEY_CURRENT_CONFIG

  10. Mit welchem der folgenden Tools kann die Systemintegrität umfassend geprüft werden?

    1. Sandboxie

    2. Tripwire

    3. Any-run

    4. Sigverif