Folien Kapitel10_2.pdf
Folien Kapitel10_2.pdf
Folien Kapitel10_2.pdf
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