Malware Flashcards
Definition Malware:
Software mit bösartiger Wirkung
Einfache Einordnung von Malware:
- Replikation
- Populationswachstum
- Parasitismus
Replikation (Einordnung von Malware):
- Malware versucht sich aktiv zu verbreiten (z.B. Herstellen von Kopien oder neuen Instanzen)
Populationswachstum (Einordnung von Malware):
- beschreibt die Veränderung der Anzahl der Malware-Instanzen aufgrund von Replikation
Parasitismus: (Einordnung von Malware):
- Malware benötigt einen Wirt um zu existieren
- z.B. Bootblock-Code, Source-Code
Malware-Typ: logic Bomb
- Malware bestehend aus
- Nutzlast: beliebig böswillige Aktivität
- Auslöser: boolesche Bedingung, die entscheidet, ob die Nutzöast ausgeführt wird
- i.d.R. klein und schwer auffindbar im Source-Code verborgen
- Replikation: nein
- Populationswachstum: nein
- Parasitismus: möglich
Malware-Typ, Trojanisches Pferd:
- Programm, dass eine vom Nutzer gewünschte Funktionalität besitzt, sowie eine vom Benutzer nicht gewünschhte Funktionalität
- wird verborgen und ohne Einwilligung des Nutzers ausgeführt
- Replikation: nein
- Populationswachstum: nein
- Parasitismus: ja
Malware-Typ, Hintertür:
- ist speziell dafür vorgesehen die Sicherheitsmaßnahmen des Systems zu umgehen auf dem sie existiert
- Hintertüren könne in Programme eingefügt sein (Trojanisches Pferd) oder eigenständig existieren
- Replikation: nein
- Populationswachstum: nein
- Parasitismus: möglich
Malware-Typ, Virus:
- Malware die sicg beim Ausführen verbreitet, indem sie sich selbst in Wirten einnistet, diese also infiziert
- initiale Infektion von einem Dropper bezeichnet (trojaninsches Pferd)
- Replikation: ja
- Populationswachstum: positiv
- Parasitismus: ja
Malware-Typ, Wurm:
- Malware, die sich beim Ausführen verbreitet, indem sie sich über ein netzwerk in Wirtssystemen einnistet
- Wurm existiert eigenständig als Wirtssystem
- Replikation: ja
- Populationswachstum: positiv
- Parasitismus: nein
Malware Typ Kaninchen:
- Malware die sich möglichst schnell repliziert, um Ressourcen des Wirtssystems zu erschöpfen
- Replikation: ja
- Populationswachstum: positiv
- Parasitismus: nein
Malware-Typ, Spyware:
- Malware, die ohne Einwilligung des Nutzers vertrauliche oder sensitive Daten vom Wirtssystem über das Netzwerk zu einem verborgenen Empfänger sendet
- i.d.R. mit gutartiger Software gebündelt
- Replikation: nein
- Populationswachstum: keines
- Parasitismus: nein
Malware Typ, Adware:
- Marketingorientierte Spyware, die gelegentlich gezielte Werbung anzeigt
- das Konsumprofil des Nutzers ermittelt und ohne Einwilligung des Nutzers über ein Netzwerk versendet
- Replikation: nein
- Populationswachstum: keines
- Parasitismus: nein
Malware-Typ, Zombie und Botnetz:
- Malware die einem Angreifer bösartige Funktionalität über das Netzwerk fernsteuerbar zur Verfügung stellt (z.B. Spam versenden)
- Verbund von Zombies , der vom Angreifer wie eine Einheit ferngesteuert werden kann => Botnetz
- Replikation: nein
- Populationswachstum: nein
- Parasitismus: nein
Grundlegender Aufbau von Viren:
- Infektionsmechanismus: wie verbreitet sich ein Virus?
- Infektionsvektoren: verschiedene Verbreitungsansätze
multipartite Viren nutzen mehr Infektionsvektoren
- Infektionsvektoren: verschiedene Verbreitungsansätze
- Auslöser: (optional) wie wird entschieden ob die Nutzlast aktiv wird?
- Nutzlast: was tut der Virus noch, außer sich zu verbreiten? (Schadensfunktion)
Grob vereinfachter Bootvorgang:
- Computer anschalten
- Primärboot: BIOS startet, Selbsttest, Geräteerkennung und -initialisierung, Bootgerät identifizieren, Bootblock lesen und ausführen
- Sekundärboot: Bootblickprogramm lädt Code nach, der Dateisysteme lesen kann und führt diesen aus
- Betriebssystem wird geladen und ausgeführt
Infektion des Boot-Sektors:
- Virus (V) kopiert originalen Bootblock (Bb) und überschreibt den Bootblock
- V benötigt originalen bb zum weiteren Hochfahren des Systems => Kopie wird an fester Stelle gespeichert
- Virus erhält Kontrolle beim Bootvorgang noch bevor das Betriebssystem und Anti-Vires SW geladen werden
- Gegenmaßnahme: Blockschutz im BIOS
Problem bei der Infektion des Boot-Sektors:
- Mehrfachinfektion durch Viren, die den Bootblock „retten“ -> Kopie des originalen Bootblocks wird überschrieben
Infektion von Dateien:
- Zieldateien: ausführbare Dateien, Dokumente mit interpretierbarem Code
- Virus fügt sich an Datei an, bzw. verknüpft sich mit dieser
- Virus erhält Kontrolle beim Ausführen der Datei bzw des Programmcodes im Dokument
(Partielles) Überschreiben der Datei:
- Überschreibender Virus i.d.R. sehr kurz und ohne Nutzlast
- Dateianfang überschrieben: Dateigröße (Dg) unverändert, aber Wirtsprogramm zerstört
- in der Mitte überschrieben: Dateigröße unverändert => Wirtsprogramm läuft ggf anfangs, ist dennoch defekt
- Vollständig ersetzt: leicht entdeckbar durch identische Dg
Vorhängen vor die Datei:
- Bei Batch/Shell-Dateien praktikabel.
- Bei Binärdateien i.d.R. zu aufwendig (Relokation - Verschiebung).
- Veränderte Dateigröße
Anhängen an die Datei:
- Bei Binärdateien häufigster Fall.
- Veränderte Dateigröße
Einstreuuung in ungenutzte Füllbereiche:
- Dateigröße unverändert.
- Wirtsprogramm läuft korrekt
- nur bei Windwossystemen
Begleit-Viren:
- Virus trägt denselben Namen wie der ursprüngliche Wirt.
- Virus wird vor dem Wirtsprogramm aufgerufen:
- Liegt in früher durchsuchtem Pfad •
- Wirt umbenannt
- Overlay-Icon auf grafischer Oberfläche
- Virus ruft Wirtsprogramm auf.
- Wirtsprogramm bleibt unverändert
Quellcode Viren:
- Virus infiziert Quellcodes des Wirtsprogramms.
- Infektionsstelle des Quellcodes ist nicht offensichtlich.
- Wirtsprogramm muss erst kompiliert werden, bevor der Virus wirksam wird.
- Virus ist unabhängig von der Hardware-Plattform
Dokumenten Viren (Macro Issues):
- Virus infiziert spezifische, nicht-ausführbare Dokumente.
- Das Dokumentenformat umfasst eine interpretierbare Programmiersprache (Makrosprache).
- Applikationen, die das Dokumentenformat verstehen, interpretieren den enthaltenen Programmiercode.
- Diverse Applikationen führen bestimmte Makros bei spezifischen Funktionen aus (Dokument neu, öffnen, schließen, speichern, …).
- Der Virus infiziert diese Makros
passive Erkennungsvermeidung:
- Viren wollen unerkannt bleiben um sich in Ruhe verbreiten zu können
- zwei potentielle Erkenner:
- Benutzer (sieht Symptome von Infektion)
- Anti-Virus Programme: Wiedererkennbare Eigenschaften des Viruscodes
spuren verwischen:
-
statisch: Dateimerkmale anpassen
- Dateigröße, Zeitstempel, nicht kryptpgraphische Checksumme
-
dynamisch:
- ursprüngliche Datei-/ Bootblockmerkmale und Inhalte im Speicher dauerhaft vorhalten und bei I/O-Anfragen einspielen
Verschlüsselung Polymorphie:
- Einfache Verschlüsselung: kein Schlüssel, inkrementieren, dekrementieren, rotieren
- statischer Schlüssel: kurzer Schlüssel, parametrisierte umkehrbare Operationen
- variabler Schlüssel: kurzer Schlüssel wird in jeder Iteration deterministisch verändert
- Substitution
- Starke Verschlüsselung: langer Schlüssel => z.B. AES
Oligomorphie:
- verschlüsselter Teil stets verschieden
- Dekryptor statisch (zufällig ausgewählt) => erkennbar
Polymorphie:
- statische Dekryptoren => erkennbar
- Mutation des Dekryptor-Codes erlaubt große Zahl an Varianten
- Selbsterkennung zur Verhinderung von Überinfektion => muss unabhängig vom Viruscode funktionieren
Code-Mutation/-Obfuscation:
- Idee: randomisierte Ersetzung von Code Sequenz durch andere, äquivalente Code-Sequenz:
- => erschweren/ verhindern von Reverse Engineering
12 Beispiel Transformationen:
- äquivalente Befehle
- äquivalente Befehlssequenzen
- Befehlsumordnung
- Umbenennung von Registern und variablen
- Datenumordnung
- Spaghettifizierung
- unnötige Befehle (junk Code)
- Code Erneuerung zur Laufzeit
- Nebenläufigkeit
- Code Interpretation
- Ilining/ Outlining
- Interleaving
statische Virus-Erkennung durch Scanner:
- statische Erkennung erfordert nicht, dass der Virus-Code ausgeführt wird
- Viren Scanner: sucht Datenstrom nach Signaturen ab
- auf Anfrage: vom Nutzer explizit gestartet
- bei Zugriff: läufz im Hintergrund und durchsucht Daten beim Zugriff auf die Daten
statische Virus-Erkennung durch Heuristiken:
- Statische Heuristik: sucht nach Code der sich Virusähnlich verhält
- Datensammlung: sucht Anzeichen für oder gegen Virus
- einfache und komplexe Heuristiken
- Vorteil: erkennt bekannte und unbekannte Viren
- Nachteil: viele false positives
Verifikation der Datenintegrität:
- Idee der Integrirätsprüfung: Viren verändern Daten um sich zu verbreiten
- => unautorisierte Datenänderung sind Indix für Virus
- Vorteil: hohe Performance, erkennt bekannte und unbeaknnte Viren
- Nachteil: aufwendige Wartung
dynamiasche Virus-Erkennng durch Monitore:
- erfordert, dass der Code ausgeführt wird => Verhalten wird in Echtzeit nach Virus ähnlichem Verhalten hin untersucht
- Monitor:abstarhiert I/O und Systemaufrufe, da diese typisch sind für Virus
Grobkörnige Modellierung:
- sucht nur Oberflächlich => viele False positives
- Signaturen (wie Schablonen) sind kurze Zeichenfolgen, die Virus-Aktivität beschreiben
Missbrauchserkennung Arten:
- grobkörnig
- feinkörnig
- Beispielsigantur
Feinkörnige Modellierung:
- weniger oberflächlich
- erlaubt Modellierung von Merkmalen bzw. Parametern der Aktivitäten
Anomalieerkennung:
- Spezifizieren erlaubter Aktivitäten, davon abweichende Aktivität ist eine Anomalie
- Annahme: eine Anomalie ist ein Virus (allgemeiner: Angriff)
- Vorteil: erkennt bekannte und unbekannte Viren/Angriffe
Emulation:
- ausgewertet werden die vom Emulator zur Laufzeit gelieferte Beobachtungsdaten
- Vorteil: Virus befällt nur emulierte Umgebung, Echtsystem bleibt sauber. Erkennt bekannte und unbekannte, sowie polymorphe Viren
- Betriebssystem-Emulation: nur begrenzter und ergänzter Ausschnitt des Betriebssystems
- Hardware-Emulation: von Viren benötigte Hardware, z.B. Timer
aktive Erkennungsvermeidung:
- Methoden von Malware sich gezielt gegen Anti-Viren Programme zu wehren.
- Methoden um die aktive Analyse der Malware zu erschweren
Methoden von Viren im Kampf gegen Anti-Viren-SW:
Ziele:
- Funktionsfähigkeit der Anti-Viren-SW unterbinden/herabsetzen.
- Virenanalyse des Anti-Viren-SW-Herstellers erschweren/verzögern.
- Entdeckung vermeiden, indem Wissen über Funktionsweise der Anti-Viren-SW ausgenutzt wird.
Retroviren:
- Aktives abschalten/behindern vorhandener Anti-Viren-SW
Verscjleierung des Einsprungs in den Viruscode:
- Anti-Viren-Heuristik erkennt geringen Abstand zwischen Dateiende und Einsprung zum Programmstart
- Virus wählt per Heuristik später ausgeführten Wirtscode und ersetzt durch Sprung zum Viruscode
Emulationen umgehen:
- Aussitzen
- dynamische Heuristiken vermeiden
- Verteilen des Dekryptors
- merhrfaches Entschlüsseln
- Grenzen Testen
Reverse enginnering vermeiden/ Debugging erkennen:
- Virus ist aufgefallen und isoliert => Reverse Engineering verzögern => Debugging-Vorgang erkennen und unverdächtigen Code ausführen
Würmer:
- Gemeinsamkeiten mit Viren:
- verschiedene Infektionsvektoren, Multipartite Würmer.
- Tarnmechanismen
- Anti-Anti-Viren-SW-Methoden.
- Andere Infektionsvektoren:
- Verwundbarkeit ausnutzen (Exploit).
- Überredung / Social Engineering (Email-Anhang öffnen, IM-Datei öffnen).
- Vertrauensbeziehungen ausnutzen.
Gegenmaßnahmen:
-
Präventive Maßnahmen:
- Verkehrsnormalisierung zur Unterstützung von Netz-IDS.
- Ungenutzte Dienste deaktivieren / filtern.
-
Reaktive Maßnahmen:
- Aufmerksame Administratoren. •
- Anti-Viren-SW prüft nicht alle Wurm-Infektionsvektoren.
- Intrusion-Detection and Response,
- Honeypots: Einfangen von Würmern für Analyse
Allgemeine Empfehlung für den Kampf gegen Viren und Würmer:
- Verlagern von sensiblen Daten auf externe Speichermedien
- Sensible Daten verschlüsseln
- Rechte minimieren (mit welchen Rechten muss ein Programm/Prozess wirklich laufen, etc.)
- Integrität von Software und Softwareupdates durch digitale Signatur überprüfen
- Code-Inspektion (soweit möglich