15.12.2012 Aufrufe

Folien Kapitel10_2.pdf

Folien Kapitel10_2.pdf

Folien Kapitel10_2.pdf

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Systeme 1<br />

Kapitel 10<br />

Sicherheit<br />

WS 2009/10 1


IBM System Storage-Kompendium<br />

Die IBM Speichergeschichte von 1952 bis 2010<br />

http://www-03.ibm.com/systems/data/flash/de/resources/<br />

ibm_storage_compendium_de.pdf<br />

WS 2009/10 2


12“, 720 m: 1,4 MB<br />

1952 2009<br />

IBM 726 mit 4 Bändern: 5,6 MB<br />

1,3 PB<br />

3,5“: 1 TB bzw. 146 GB SSD


Inhalt<br />

• Schutz<br />

– Kryptografie<br />

– Schutzmechanismen<br />

– Authentifizierung<br />

• Angriffe<br />

– Insider-Angriffe<br />

– Ausnutzen von Programmierfehlern<br />

– Malware<br />

• Abwehrmechanismen<br />

WS 2009/10 4


Malware<br />

• Malware:<br />

– Trojanische Pferde<br />

– Viren<br />

– Würmer<br />

– Spyware<br />

– Rootkits<br />

• Ziel: So schnell wie möglich über das Internet zu verbreiten und<br />

dabei so viele Maschinen wie möglich infizieren.<br />

• Anschließend wird eine Software installiert, die die Adresse des<br />

Rechners meldet.<br />

• Zusätzlich wird eine Hintertür (backdoor) installiert um die<br />

Maschine zu kontrollieren.<br />

� Maschine ist ein Zombie.<br />

� Botnet = Sammlung solcher Zombies.<br />

� Ziel: Überwiegend kommerzielle Hintergründe (z.B. Spam Versand), DoS- bzw.<br />

DDoS-Angriffe, …<br />

WS 2009/10 5


Exkurs: Denial of Service<br />

• Denial of Service (DoS): Angriff auf ein Host (Server) in<br />

einem Datennetz mit dem Ziel einen oder mehrere<br />

Dienste durch Überlast arbeitsunfähig zu machen.<br />

� Erfolgt der Angriff koordiniert von einer großen Anzahl<br />

an Rechnern (z.B. Botnet) spricht man von Distributed<br />

Denial of Service (DDoS)<br />

• Funktionsweise: Der Host wird mit einer größeren<br />

Anzahl an Anfragen belastet als dieser verarbeiten<br />

kann. Daraufhin stellt dieser den Dienst ein (z.B. durch<br />

Absturz) oder kann reguläre Anfragen nur langsam<br />

bearbeiten, so dass diese abgebrochen werden.<br />

WS 2009/10 6


Malware<br />

• Weitere Ziele:<br />

– Installation eines Keyloggers<br />

• Passwortspionage<br />

• Spionage von Kreditkartendaten<br />

– Missbrauch beim Onlinebanking<br />

– Bei Konkurrenzunternehmen Produktionsprozess<br />

stören.<br />

– etc. …<br />

• Weshalb verbreitet sich Malware so leicht?<br />

– Ca. 90% der Leute nutzen ein System (Microsoft).<br />

�Attraktiv hierfür Malware zu entwickeln.<br />

WS 2009/10 7


Trojanische Pferde<br />

• Prinzip wie beim griechischen Mythos:<br />

Malware wird in ein kostenloses (nützliches)<br />

Programm (z.B. Spiele) eingebaut.<br />

• Beim Programmstart wird die Malware<br />

installiert und gestartet.<br />

�Angreifer muss nicht ins System eindringen!<br />

Benutzer öffnet den PC freiwillig.<br />

WS 2009/10 8


Viren<br />

• Definition: Ein Virus ist ein Programm (meistens in Assembler oder<br />

C geschrieben), dass sich vervielfältigt, indem es sich an den Code<br />

von anderen Programmen anhängt.<br />

• Funktionsweise:<br />

– Das Virus wird in ein Programm (Spiele, Raubkopien, …) eingefügt und<br />

verteilt.<br />

– Beim Start werden andere Programme auf der Maschine infiziert.<br />

– Anschließend wird der Schadcode (payload) ausgeführt.<br />

• Virusarten:<br />

– Companion-<br />

– Programm-<br />

– Speicher-<br />

– Bootsektor-<br />

– Gerätetreiber-<br />

– Makro-<br />

– Quellcodeviren<br />

WS 2009/10 9


Companion-Viren<br />

• Infiziert nicht wirklich ein Programm, sondern<br />

wird statt eines Programms ausgeführt.<br />

• Beispiel:<br />

– Verknüpfung (symbolische Links) zu einem<br />

Programm wird abgeändert, so dass das Virus<br />

ausgeführt wird.<br />

– Das Virus startet anschließend das original<br />

Programm, so dass der Benutzer nichts merkt.<br />

WS 2009/10 10


Programmviren<br />

• Überschreibende Viren (overwriting virus):<br />

– Ein ausführbares Programm wird mit einem Virus komplett<br />

überschrieben.<br />

– Um unentdeckt zu bleiben, könnten Maßnahmen getroffen<br />

werden, die Änderungszeit und die Dateigröße<br />

unverändert zu lassen.<br />

– Problem: Das überschriebene Programm erledigt nicht<br />

mehr seine Aufgabe und wird leicht entdeckt.<br />

• Parasitäre Viren (parasitic virus):<br />

– Hängen sich an ein Programm an.<br />

– Infiziertes Programm arbeitet „normal“ weiter.<br />

– Hierzu muss das Virus und das Programm in RAM geladen<br />

werden.<br />

WS 2009/10 11


Parasitäre Viren<br />

– Anschließend muss die Startadresse im Header auf<br />

das Virus zeigen und zurück auf die Platte kopiert<br />

werden.<br />

– Problem: Größe des Programms ändert sich, wenn das<br />

Virus an den Anfang oder das Ende kopiert wird.<br />

Ausführbares<br />

Programm<br />

Header<br />

Ausführbares<br />

Programm<br />

Virus<br />

Header<br />

Virus<br />

Ausführbares<br />

Programm<br />

Header<br />

WS 2009/10 12


Parasitäre Viren<br />

• Moderne Binärformate ermöglichen es,<br />

dass ein Programm aus mehreren<br />

Segmenten bestehen darf.<br />

• Meistens sind alle Segmente ein<br />

Vielfaches von 512 Byte (Windows).<br />

• Ist ein Segment nicht voll, wird es mit<br />

Nullen aufgefüllt.<br />

�Virus kann dies für sich ausnutzen,<br />

indem es sich in die Lücken kopiert.<br />

�Falls das Virus in die Lücken passt, bleibt<br />

die Dateigröße unverändert!<br />

Virus<br />

Virus<br />

Ausführbares<br />

Programm<br />

Virus<br />

Virus<br />

Header<br />

WS 2009/10 13


Speicherresidente Viren<br />

• Bisher: Virus wird mit ausführbaren Programm ausgeführt und gibt<br />

nach seiner Beendigung die Kontrolle an das eigentliche Programm<br />

ab.<br />

• Das speicherresidente Virus bleibt hingegen die ganze Zeit im RAM.<br />

• Vorgehensweise: Intelligente Viren modifizieren die Speicher-<br />

Bitmap um dem Betriebssystem vorzutäuschen, dass der<br />

Speicherbereich des Virus bereits belegt ist.<br />

� Virus wird nicht „ausversehen“ überschrieben.<br />

• Typischerweise erbeutet ein speicherresidenter Virus einen der<br />

Interruptvektoren z.B. für Systemaufrufe. Hierbei speichert er den<br />

Inhalt des Vektors.<br />

� Bei jedem Systemaufruf wird das Virus ausgeführt.<br />

� Nach seiner Ausführung startet das Virus den eigentlichen Vektor.<br />

– Beispiel: exec-Systemaufruf: Das Virus infiziert die als Parameter<br />

übergebene Datei, da das Virus weiß, dass es sich hierbei um ein<br />

ausführbares Programm handelt.<br />

� Virus muss nicht nach geeigneten Dateien suchen.<br />

WS 2009/10 14


Bootsektorviren<br />

• Rekapitulation des Bootprozesses:<br />

– BIOS lädt den Master Boot Record (MBR) vom Anfang der Boot-Platte in<br />

das RAM.<br />

– MBR wird ausgeführt und bestimmt welche Partition aktiv ist.<br />

– Anschließend wird der Bootsektor eingelesen und ausgeführt.<br />

– Das im Bootsektor enthaltene Programm lädt dann entweder das<br />

Betriebssystem oder einen Loader, der dann seinerseits das BS lädt.<br />

• Bootsektorviren überschreiben den Master Boot Record oder Bootsektor.<br />

• Bootsektorviren sichern hierzu den echten Bootsektor auf einen sicheren<br />

Platz auf der Platte, so dass das Virus das BS hochfahren kann.<br />

• Versteck des Virus:<br />

– Erste Plattenspur: Formatierungsprogramm fdisk von MS lässt diese aus.<br />

– Freier Plattensektor: Virus trägt den Sektor in die Liste der fehlerhaften<br />

Sektoren ein, um sein Versteck als defekt zu kennzeichnen.<br />

• Nach dem Booten, kopiert sich das Virus wieder in den RAM.<br />

WS 2009/10 15


Gerätetreiberviren<br />

• Ziel: Virus soll offiziell geladen werden.<br />

�Gerätetreiber infizieren<br />

• Gerätetreiber sind ausführbare Programme,<br />

die auf der Platte leben und während des<br />

Bootvorgangs geladen werden.<br />

�Treiber läuft im Kernmodus nachdem er<br />

geladen wurde.<br />

�Systemaufrufvektor kann leichter erobert<br />

werden.<br />

WS 2009/10 16


Verbreitung von Viren<br />

• Kostenloses Programm mit Virus schreiben und z.B. auf<br />

Shareware-Webseiten verteilen.<br />

• Infizierte Maschine über LAN weitere Maschinen<br />

infizieren lassen.<br />

• Dokumente infizieren und per E-Mail verteilen<br />

– Besser: Das Adressbuch der infizierten Maschine<br />

durchsuchen und an alle Kontakte schicken.<br />

– Im Jahr 2000 verbreitete sich das „I LOVE YOU“-Virus auf<br />

diese Art.<br />

• Über ein Internetcafé anonym zunächst das LAN<br />

infizieren, welches anschließend (mit Verzögerung) das<br />

Virus ins Internet freilässt.<br />

WS 2009/10 17


Würmer<br />

• Wurm = selbst replizierendes Programm<br />

• Der erste Wurm wurde am 2.11.1988 von Robert<br />

Tappan Morris freigelassen.<br />

� Heute Prof. am M.I.T.<br />

• Er entdeckte zwei Programmierfehler in UNIX, die es ihm erlaubte<br />

über das Internet unautorisierten Zugriff auf eine Maschine zu<br />

erlangen.<br />

• Der Wurm bestand aus zwei Teilen:<br />

– Ladeprogramm für den Wurm.<br />

– Der Wurm selbst.<br />

• Das Ladeprogramm wurde auf der Zielmaschine kompiliert und<br />

gestartet um den Wurm nachzuladen.<br />

• Der Wurm tarnte sich und durchsuchte die Routing-Tabelle seines<br />

neuen Wirts, um festzustellen, mit welchen Maschinen der<br />

Computer verbunden war, um weitere Maschinen zu infizieren.<br />

WS 2009/10 18


Würmer<br />

• Es wurden drei Methoden ausprobiert, um eine Maschine zu<br />

infizieren:<br />

– rsh (remote shell): Einige Maschinen trauten sich untereinander und<br />

verlangten keine Authentifizierung.<br />

– finger: Der finger-Daemon wurde mit einer 536 Byte langen<br />

Zeichenkette zu einem Pufferüberlauf gebracht (siehe letzte<br />

Vorlesung). Hierdurch wurde versucht sh zu starten.<br />

– sendmail: Ein Fehler erlaubte es das Wurmladeprogramm zu<br />

versenden und ausführen zu lassen.<br />

• Der Wurm versuchte die Passwörter der Benutzer zu knacken und<br />

sich anschließend in andere Systeme damit einzuloggen um den<br />

Wurm zu verbreiten.<br />

• Programmierfehler: Wurm prüfte ob er bereits auf dem System ist.<br />

Falls ja, beendete er sich, außer in einem von sieben Fällen.<br />

– Das Verhältnis 1:7 erzeugte zu viele Würmer, weshalb alle infizierte<br />

Maschinen zum Stillstand kamen.<br />

� Wurm wurde entdeckt<br />

WS 2009/10 19


Würmer<br />

• Konsequenz des ersten Wurms:<br />

– Einrichtung des CERT (Computer Emergency Response<br />

Team)<br />

• CERT:<br />

– Zentrale Anlaufstelle um Eindringversuche zu melden.<br />

– Experten analysieren Sicherheitsprobleme und entwickeln<br />

Gegenmaßnahmen.<br />

– Sammeln Informationen über Schwachstellen in Systemen.<br />

– Informationen werden an Systemadministratoren verteilt.<br />

� Problem: Angreifer erhalten die Fehlerberichte und<br />

können die Schlupflöcher nutzen, bis diese geschlossen<br />

sind.<br />

WS 2009/10 20


Unterschied Viren - Würmer<br />

• Viren infizieren ausführbare Dateien und<br />

verbreiten sich durch Weitergabe dieser<br />

Infizierten Dateien bzw. durch Programme die<br />

Viren enthalten.<br />

�Autarke Verbreitung<br />

• Würmer warten nicht passiv auf die<br />

Weiterverbreitung. Sie versuchen aktiv über<br />

das Netz Maschinen zu infizieren.<br />

WS 2009/10 21


Spyware<br />

• Wird ohne das Wissen des Besitzers auf seinen PC geladen und läuft<br />

im Hintergrund.<br />

• Eigenschaften von Spyware:<br />

1. Verstecken sich, damit der Benutzer sie nicht finden kann.<br />

2. Sammeln Daten über den Benutzer (besuchte Webseiten,<br />

Passwörter, Kreditkartendaten etc.)<br />

3. Senden die gesammelten Informationen zurück.<br />

4. Sind hartnäckig bemüht alle Löschversuche zu überleben.<br />

• Kategorien:<br />

1. Marketing: Über gesammelte Informationen soll gezielt Werbung<br />

eingesetzt werden.<br />

2. Überwachung: Unternehmen platzieren absichtlich Spyware um ihre<br />

Mitarbeiter zu kontrollieren.<br />

3. Zombie: Um Kontrolle über die Maschine (siehe Folie 5) zu erlangen.<br />

WS 2009/10 22


Rootkits<br />

• Definition: Programm, dass versucht seine<br />

Existenz zu verbergen, selbst wenn der Besitzer<br />

zielstrebige Anstrengungen unternimmt, das<br />

Rootkit zu finden und zu entfernen.<br />

• Ziel: Nach dem Einbruch in ein System das<br />

Rootkit installieren, um zukünftige Logins zu<br />

erleichtern sowie zu verbergen und Prozesse bzw.<br />

Dateien zu verstecken.<br />

�Rootkit dient dazu Malware vor dem Entdecken zu<br />

schützen.<br />

WS 2009/10 23


Rootkitarten<br />

• Firmware-Rootkits: Theoretisch könnte sich ein Rootkit durch ein<br />

BIOS-Reflash mit einer Kopie von sich selbst dort verstecken (bisher<br />

noch nicht aufgetreten).<br />

• Hypervisor-Rootkits: Verändert die Boot-Reihenfolge, so dass beim<br />

Anschalten der Hypervisor direkt auf der Hardware ausgeführt wird.<br />

Der Hypervisor startet dann das BS in einer virtuellen Maschine.<br />

� Rootkit-Detektoren finden kein Rootkit.<br />

• Kern-Rootkits: Infiziert das BS und versteckt sich darin als<br />

Gerätetreiber oder ladbares Kernmodul.<br />

• Bibliothek-Rootkits: Rootkit versteckt sich in der Systembibliothek<br />

(z.B. libc in Linux). Dies bietet die Möglichkeit die Argumente und<br />

Rückgabewerte von Systemaufrufen zu untersuchen und bei Bedarf<br />

zu modifizieren, um sich versteckt zu halten.<br />

• Anwendungs-Rootkits: Versteckt sich vorzugsweise in große<br />

Anwendungen die viele Dateien erzeugen (Benutzerprofile,<br />

Bildvorschauen, etc. …) und somit nicht auffällt.<br />

WS 2009/10 24


Erkennung von Rootkits<br />

• Beim Hypervisor: Performanz zwischen realer<br />

Maschine und virtueller Maschine vergleichen.<br />

• Allgemeine Suche nach Rootkit:<br />

Da ein Rootkit im Betriebssystem die Suche<br />

verfälschen könnte, sollte ein LiveBS verwendet<br />

werden.<br />

• Weitere Möglichkeit:<br />

Nach einer Neuinstallation Hashwerte aller<br />

Dateien bilden. Liste außerhalb speichern und bei<br />

einer Suche die Dateien und die Liste miteinander<br />

vergleichen.<br />

WS 2009/10 25


Prominentes Beispiel: Sony-Rootkit<br />

• 2005 wurden ca. 20 Mio. CD‘s mit einem Rootkit ausgeliefert.<br />

• In Windows wird beim Einlegen einer CD nach der autorun.inf<br />

gesucht, die eine Liste von möglichen auszuführenden<br />

Aktionen enthält.<br />

� Hierdurch wurde leise und ohne Einverständnis ein 12 MB<br />

Rootkit installiert und eine Lizenzvereinbarung ohne Hinweis auf<br />

das Rootkit angezeigt, sobald die CD eingelegt wurde.<br />

• Ziel: Rootkit sollte nach 200 bekannten Kopierprogrammen<br />

suchen. Falls eins gefunden wurde, wurde der Benutzer<br />

aufgefordert dieses zu beenden.<br />

� Nur wenn der Benutzer der Lizenzvereinbarung zustimmte und<br />

alle Kopierprogramme beendete konnte die Musik abgespielt<br />

werden.<br />

– Das Rootkit blieb jedoch installiert, selbst wenn der Lizenz nicht<br />

zugestimmt wurde!<br />

WS 2009/10 26


Sony-Rootkit: Funktionsweise<br />

• In den Windows-Kern wurde eine Anzahl von Dateien,<br />

deren Namen mit $sys$ begannen, eingefügt.<br />

• Eine Datei war ein Filter, der alle Systemaufrufe vom<br />

CD-Laufwerk abhörte und allen Programmen außer<br />

dem Musikprogramm von Sony verbot die CD zu lesen.<br />

� Ein (legales) Kopieren war somit nicht mehr möglich!<br />

• Ein anderer Filter fing alle Aufrufe zum Lesen von<br />

Dateien, Prozessen und Registrierungslisten ab und<br />

löschte alle Einträge, die mit $sys$ begannen.<br />

� Somit wurde das Rootkit versteckt.<br />

� Doch das Rootkit wurde entdeckt.<br />

WS 2009/10 27


Reaktion seitens Sony<br />

• Thomas Hesse (Präsident von Sony BMG):<br />

„Die meisten Menschen, denke ich, wissen noch nicht einmal, was ein<br />

Rootkit ist, also warum sollten sie sich daran stören.“<br />

• Sony war der Meinung, ihr geistiges Eigentum schützen zu können.<br />

• Nach öffentlichem Druck wurde ein Patch ausgeliefert, der das verbergen<br />

der $sys$-Dateien entfernte.<br />

� Das Rootkit blieb aber installiert!<br />

• Nach mehr öffentlichem Druck wurde ein Deinstallationsprogramm<br />

veröffentlicht.<br />

– Um dieses zu erhalten musste man seine E-Mail Adresse angeben und<br />

zustimmen Werbematerial zu erhalten (=Spam).<br />

� Das Deinstallationsprogramm hatte allerdings technische Fehler, wodurch der<br />

infizierte Rechner höchst anfällig für Angriffe aus dem Internet wurde!<br />

• Im nachhinein wurde bekannt, dass das Rootkit teilweise Code aus Open-<br />

Source-Projekten enthielt! => Urheberrecht verletzt<br />

• 2007 gab Sony zu, dass die Software auch Hörgewohnheiten überwachte<br />

und diese an Sony übermittelte. => Verletzung des Gesetzes.<br />

WS 2009/10 28


Inhalt<br />

• Schutz<br />

– Kryptografie<br />

– Schutzmechanismen<br />

– Authentifizierung<br />

• Angriffe<br />

– Insider-Angriffe<br />

– Ausnutzen von Programmierfehlern<br />

– Malware<br />

• Abwehrmechanismen<br />

WS 2009/10 29


Abwehrmechanismen<br />

• Konzept der Defense-in-Depths-Strategie:<br />

– Es sollten mehrere Sicherheitsschichten<br />

vorhanden sein, so dass bei einem Ausfall einer<br />

Schicht noch andere Schichten existieren, die<br />

überwunden werden müssen.<br />

• Methoden:<br />

– Firewalls<br />

– Virenscanner<br />

– Modellbasierte Angriffserkennung<br />

WS 2009/10 30


Firewalls<br />

• Gefahren durch das Internet: ankommende und<br />

abgehende Verbindungen.<br />

• Ankommende:<br />

– Angreifer, die versuchen in den Computer einzudringen.<br />

– Viren, Spyware bzw. andere Malware<br />

• Abgehende:<br />

– Bekanntwerden von vertraulichen Informationen wie<br />

Kreditkartendaten, Passwörter, Persönliche- oder Firmendaten.<br />

• Firewallvarianten: Software- und Hardware-Firewalls<br />

Hardware-Firewall:<br />

Firewall Webserver<br />

Netzwerkverbindung<br />

E-Mail-<br />

Server<br />

FTP-Server<br />

WS 2009/10 31<br />

LAN


Firewalls<br />

• Es können keine Pakete das LAN betreten oder verlassen, ohne die<br />

Firewall zu passieren.<br />

• Hierzu werden Firewalls mit Regeln konfiguriert, die beschreiben,<br />

welche Ein- und Ausgänge erlaubt sind.<br />

• Zustandslose Firewall (stateless firewall): Der Header jedes<br />

durchkommende Pakets wird untersucht und auf Grund dessen und<br />

auf Basis der Firewallregeln die Entscheidung getroffen. Im Header<br />

stehen unter anderem die Quell- und Zieladresse, der Quell- und<br />

Zielport, Art des Dienstes und des Protokolls.<br />

• Zustandsbehaftete Firewall (stateful firewall): Die Verbindung wird<br />

nachverfolgt und die Firewall weiß, in welchem Zustand sich die<br />

Verbindung befindet.<br />

• Angriffserkennungssystem (intrusion detection system): Nicht nur<br />

Paket-Header, sondern auch der Inhalt wird untersucht.<br />

WS 2009/10 32


Virenscanner<br />

• Firewalls versuchen Angreifer fernzuhalten.<br />

Falls dies allerdings misslingt, sollte ein<br />

Virenscanner zum Einsatz kommen.<br />

• Entdeckung neuer Viren:<br />

– Im Labor wird das Virus isoliert. Anschließend wird<br />

ein Listing seines Codes in eine Datenbank<br />

eingetragen.<br />

– Antivirenprogramm durchsucht auf dem System<br />

alle ausführbaren Dateien nach Viren aus der<br />

Datenbank.<br />

WS 2009/10 33


Virenscanner<br />

• Da Varianten bekannter Viren auftauchen, die nur geringfügige<br />

Änderungen aufweisen, ist eine „unscharfe“ Suche erforderlich.<br />

– Verfahren ist langsamer<br />

– Können falschen Alarm (false positive) auslösen, falls ein Programm<br />

vage Codeähnlichkeit besitzt.<br />

– Falls aber zu genaue Codeähnlichkeit vorhanden sein muss, können<br />

Viren die leicht verändert sind übersehen werden.<br />

� Balance zu finden ist schwer. Es sollte daher der Kerncode des Virus<br />

herausgefunden werden, welcher als Signatur dient und sich<br />

höchstwahrscheinlich nicht ändert!<br />

• Um Sicherheit zu gewährleisten, sollte der Virenscanner häufig<br />

laufen.<br />

• Da die Suche langsam ist, besteht eine Strategie darin nur Dateien<br />

zu durchsuchen, die seit dem letzten mal verändert wurden.<br />

� Allerdings kann das Virus das Änderungsdatum fälschen.<br />

WS 2009/10 34


Virenscanner<br />

• Eine weitere Methode ist, die Länge aller Dateien<br />

zu protokollieren und auf der Platte zu speichern.<br />

�Virus kann seine Entdeckung vermeiden, indem er das<br />

Programm komprimiert und auffüllt. Datei ist länger<br />

Virus<br />

– Hierzu muss das Virus<br />

sowohl die Kompressionsals<br />

auch die Dekompressionsroutinen<br />

enthalten.<br />

Ausführbares<br />

Programm<br />

Header<br />

Ausführbares<br />

Programm<br />

Header<br />

Originalgröße<br />

ungenutzt<br />

Virus<br />

Dekompressor<br />

Kompressor<br />

Komprimiertes<br />

ausführbares<br />

Programm<br />

Header<br />

WS 2009/10 35


Virenscanner<br />

• Um der Entdeckung zu entgehen muss das Virus seine<br />

Repräsentation auf der Platte anders als den Eintrag in der<br />

Datenbank aussehen lassen.<br />

• Hierzu kann sich das Virus mit einem Schlüssel<br />

verschlüsseln, der für jede Datei unterschiedlich ist.<br />

– Dieser Schlüssel (z.B. 32-Bit<br />

Zufallszahl) muss zusammen mit<br />

einem Ver- und Entschlüssler<br />

abgespeichert werden.<br />

– De- und Kompressor, sowie<br />

Verschlüssler ist allerdings in jeder<br />

Datei gleich und kann dem<br />

Virenscanner als Signatur dienen.<br />

� Auch diese Komponenten sollten<br />

verschlüsselt werden.<br />

Originalgröße Originalgröße<br />

ungenutzt<br />

Verschlüsselter<br />

Virus<br />

Dekompressor<br />

Kompressor<br />

Verschlüssler<br />

Schlüssel<br />

Entschlüssler<br />

Komprimiertes<br />

ausführbares<br />

Programm<br />

Header<br />

ungenutzt<br />

Verschlüsselter<br />

Virus<br />

Dekompressor<br />

Kompressor<br />

Verschlüssler<br />

Schlüssel<br />

Entschlüssler<br />

Komprimiertes<br />

ausführbares<br />

Programm<br />

Header<br />

WS 2009/10 36<br />

Verschlüsselt


Virenscanner<br />

• Die Entschlüsselungsfunktion kann allerdings nicht<br />

verschlüsselt werden.<br />

– Virenscanner muss nach Entschlüsselungsfunktion suchen.<br />

– Als Gegenmaßnahme versucht das Virus die Funktion zu<br />

verschleiern:<br />

• NOP (no operation) einfügen, Addition +0, Verschiebung um 0-Bit,<br />

nutzlosen Code einfügen, etc.<br />

– Bei jeder Kopie könnte sich das Virus selbst verändern, so dass<br />

die Funktion allerdings funktional erhalten bleibt.<br />

�Polymorpher Virus<br />

� Problem: Virenscanner kann nicht in einer angemessenen<br />

Zeitspanne tausende Dateien analysieren.<br />

� Weiteres Problem: Speicherresidente Viren und Viren,<br />

die Systemaufrufe überwachen, können<br />

Antivirenprogramm behindern.<br />

WS 2009/10 37


Modellbasierte Angriffserkennung<br />

• Ein Angriffserkennungssystem untersucht Anomalien der<br />

CPU.<br />

• Hierzu müssen alle möglichen Systemaufrufe des<br />

Programms im voraus bekannt sein.<br />

• Beispiel (Systemaufrufgraph):<br />

Programm, dass eine Datei Zeichen für Zeichen<br />

einließt (read) und den Inhalt ausgibt (write).<br />

• Falls ein Angreifer ein Pufferüberlauf auslösen<br />

kann, und beispielsweise versucht Dateien zu<br />

kopieren oder eine Netzwerkverbindung zu<br />

öffnen, weichen die Systemaufrufe vom Graph<br />

ab.<br />

� System merkt bei der ersten Abweichung, dass ein<br />

Angriff stattfindet und wird den Prozess beenden.<br />

read<br />

close<br />

write<br />

open<br />

WS 2009/10 38<br />

exit<br />

write<br />

exit<br />

Datei<br />

nicht<br />

gefunden

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!