Malware Flashcards
vernetztes System
nicht selbstreplizierend: Hostile, Applets, Hoaxes
selbstreplizierend: Würmer
Einzelsystem
nicht selbstreplizierend: Trojaner, Backdoors
selbstreplizierend: Viren
Virus
verbreitet sich meist durch auführen von bereits befallenem Code
Bootviren(Festplatten), Makroviren(.doc, .xls), Dateiviren(BS), Skriptviren(.js, .vbs)
Wurm
verbreitet sich meist selbstständig durch ausnutzen von Sicherheitslücken
Exploit(Code, der Schwachstelle ausnutzt), Patch(Korrekturauslieferung, um Sicherheitslücken zu schließen)
Trojaner
verbreitet sich gar nicht von selber, bosartiger Teil “von Hand” hinzugefügt
Verbreitung: Email Anhang, Drive-By Downloads, USB
Wie funktioniert ein Virus?
- Suchfunktion (suchen von zu befallenen Dateien)
- Infektionsroutine ( befallen von 1 oder mehreren Opferdatein
- Payload ( Schadcode, den der Virus mit sich bringt bzw. ausführt)
- Trigger (Bedingung/Gegebenheit, bei welcher der Virus seine Payload ausführt)
Techniken (Virus)
Polyorphismus, Verschlüsselung
Polyorphismus (Virus)
Der Virus ändert seinen Code bei jeder Infektion leicht
- hinzufügen von NOP Kommandos
- ändern der Reihenfolge von SubRoutinen im Code
Verschlüsselung (Virus)
Der Virus ist verschlüsselt + entschlüsselt sichc bei Ausführung als erstes, bevor der eigentliche Viruscode ausgeführt wird.
speicherresidente Viren
= bleiben im Speicher aktiv und befallen weitere Dateien
Interrupts in Betriebssystemen
= Unterbrechung des laufenden Programms durch BS
- Interrupt Vector Table (IVT): Tabelle im Hauptspeicher, in der die Adressen der eigentlichen Interrupt Routinen im Hauptspeicher eingetragen sind
Interrupt Hooking
= schreibt sich in Hauptspeicher
- “hakt” sich in bestimmten Interrupt ein → überschreiben Adressen im IVT
- bei Aktivierung des Interrupt, schaut BS im IVT nach Adresse führt Code des Virus dar
Beispiele Virus
Ambulance: zählt zähler hoch, letzte 3 bits 110
Michelangelo: Datum = 06.03 überschreibt erst 100 Sketoren von HD
Anna Kournikova: Doppelklick auf Anhang →versand emails
Wie funktioniert ein Wurm?
- baut Verbindung zu neuem Zielrechner auf
- versucht auf Port Lücke auszunutzen
- Erfolg: Wurm kopiert sich auf Rechner
→braucht kein Wirtsprogramm
Beispiele Wurm
Morris Worm: Rechner wird mit der Zeit langsam
Code Red 1 + 2
SQL Slammer
Blaster: Distributed DoS
Wie funktioniert ein Trojaner?
Trapdoor/Backdoor: Umgehung Zugriffssicherung Zugang zum Computer
Rootkit: SW-Werkzeuge, die nach EInbruch in SW-System auf System installiert wird, um zukünftige Logins zu verbergen und verstecken
Keylogger: zeichnet Tastatureingaben des Benutzers auf + sendet an Autor
Beispiele Trojaner
Locky: Verschlüsselung aller Dateien mit AES → Lösegeld
Stuxnet: via USB, verbreitet sich im Netzwerk
Erkennung / Schutz vor Malware
- Anti Virus / Malware SW: findet Malware durch Scannen von FIles / Dateien
- Firewalls: blockiert bestimmten Verkehr anhand Richtlinien
- Intrusion Detection Systems: überwacht Aktivitäten und alarmiert falls etwas verdächtig vorkommt
Anti-Virus SW:
On-demand: scannt Files und Dateien durch aufruf
On-Access: läuft im Hintergrunf, wennsie aufgerufen werden
Firewalls
Packet Screen / Screening Router: erlaubt bzw. blockiert Pakete anhand des Headers
Proxy: Gateway, der die Datenpakete der Internet-Dienste (HTTP, FTP, …) zwischenspeichert. → inhaltsbezogene Filterung der Daten
Application Layer Gateway: Filtert Austausch
Intrusion Detection Systems (IDS)
= aktive Überwachung von Computersystemen/-netzen
Methoden und Angriffserkennung:
-Anomalie durch Protokollanalyse, statistischer Daten
- Erkennung Angriffsmuster
BSP: SNORT
Buffer Overflow
Programmiersprache C: low Level Sprache, in Binärcode
no Memory → gehen direkt in RAM
Memory Management
Stack, leer, Heap, Code
bei heutiger x86er Architektur arbeitet jedes Programm in einem virtuellen Adressraum, das die MMU dem physikalischen Speicher zugeordnet. virtueller Adressraum in 3 Bereiche eingeteilt
Stack
Der Stack fängt am oberen Ende des Speichers (Bsp: 0xFFFFFFFF) an und wächst nach unten in Richtung 0x00000000.
Wenn etwas hinzugefügt wird, dann wird der Stapel erhöht und andersrum. Der Stackpointer (ESP) wird dabei immer auf die letzte Adresse des Stacks gelegt