Folien - Freie Universität Berlin

Transcription

Folien - Freie Universität Berlin
Schutz und Sicherheit
Teil 3
Prof. Dr. Margarita Esponda
Freie Universität Berlin
WS 2011/2012
-
M. Esponda-Argüero
1
Gegenmaßnahme mit Hardware-Unterstützung
• Die NX-Bit Abkürzung von No eXecute-Bit ist eine einfache
Hardware-Unterstützung zur Verbesserung der Sicherheit eines
Computers.
• Zuerst von AMD mit dem Prozessor Athlon 64 x86-Markt
eingeführt mit dem Namen Enhanced Virus Protection (EVP)
• Intel verwendet in seinen neuesten Prozessoren die gleiche
Technik mit der Bezeichnung XD-Bit (Execute Disable).
• Andere Firmen verwenden ähnliche Techniken.
• Mit dem NX-Bit können Speichersegmente mit Daten von
Speichersegmenten mit Programmcode unterschieden werden.
• Dieser Schutz funktioniert allerdings nur mit Betriebssystemen,
die die Unterstützung des NX-Bit ausnutzen.
-
M. Esponda-Argüero
2
Offenlegung von Schwachstellen in
Betriebssystemen
120
Apple
100
Linux
80
Sun Solaris
60
Microsoft
40
BSD
20
0
2005
2006
2007
2008
2009
Quelle: IBM X-Force
-
M. Esponda-Argüero
3
Kritische Schwachstellen in Betriebssystemen
50
45
Apple
40
35
Linux
30
25
Sun Solaris
20
Microsoft
15
BSD
10
5
0
2005
2006
2007
2008
2009
Quelle: IBM X-Force
-
M. Esponda-Argüero
4
Warum gibt es so viele Schwachstellen?
-
-
Warum schreiben Programmierer unsichere Software?
-
Zu wenig Kurse über Sicherheit
-
Sicherheit wird oft in Programmier-Aufgaben nicht erwähnt
-
die Firmen wollen Geld sparen
C ist eine unsichere Programmiersprache
Programmierer machen sich eher sorgen über andere Probleme
Benutzer machen sich keine Sorgen über Sicherheit
Sicherheit ist teuer und nimmt Zeit in Anspruch
M. Esponda-Argüero
5
Viren
Ein Computer-Virus ist ein Programm, das sich vervielfältigt,
indem es sich an den Code von anderen Programmen anhängt.
Viren sind auf Betriebssysteme, Systemarchitektur oder
bestimmte Anwendungen spezialisiert
Ein virus dropper, der normalerweise ein Trojaner ist, fügt das
Virus in das System ein.
-
M. Esponda-Argüero
6
Viren
Es gibt eine lange Liste von Virussorten, von denen einige wichtige
hier aufgelistet sind:
•
•
•
•
•
•
•
•
•
•
-
File
Boot
Macro
Source code
Polymorphic
Encrypted
Stealth
Tunneling
Multipartite
Armored
M. Esponda-Argüero
7
Datei-Viren
Das Virus hängt sich an das Ende
einer Datei und ändert den Start des
Programms, so dass mit Hilfe eines
Sprungbefehls die Ausführung des
Programms mit dem neu eingefügten
Infiziertes
AusführbareCode
Code anfängt.
Nach der Ausführung des VirusCodes geht die Kontrolle zurück in
die normale Ausführung des
Programms.
-
Malware
M. Esponda-Argüero
8
Bootsektor-Viren
Infiziert den Boot-Sektor des Systems und wird jedes Mal ausgeführt,
bevor das Betriebssystem geladen wird.
Bootsektor-Viren suchen sich weitere Boot-Sektoren (andere
Festplatten, Memory-Sticks, usw.), um diese ebenfalls zu infizieren.
Auch bekannt als Speicherviren.
• Zuerst wird der echte Bootsektor auf einen sicheren Platz auf
der Platte kopiert.
• Das Virus kopiert sich selber in dem Bootsektor.
-
M. Esponda-Argüero
9
Bootsektor-Viren
• Wenn der Computer hochgefahren wird, kopiert sich das Virus
selbst im Speicher vorne oder zwischen unbenutzten InterruptVektoren.
• Diese erste Phase passiert im Kernmodus, bevor das
Betriebssystem, die MMU und Antiviren-Programme gestartet
werden.
• Zum Schluss fährt das Virus-Programm das Betriebssystem hoch
und bleibt im Speicher.
• Das Virusprogramm infiziert von da aus alle Speichermedien,
die in Sicht kommen.
-
M. Esponda-Argüero
10
Boot-Viren
-
M. Esponda-Argüero
11
Makro-Viren
Makroviren werden meistens in interpretierbaren Sprachen
geschrieben wie z.B. Visual Basic. Ein Makro ist ein Programm, das in
einem Dokument eingebettet ist.
Beispiel:
Sub AutoOpen()
Dim oFS
Set oFS = CreateObject( "Scripting.FileSystemObject" )
vs = Shell( "c:command.com /k format c:" ,vbHide)
End Sub
Eine überwiegende Anzahl wird in VBA und VBS geschrieben und
durch Office- und Staroffice-Dokumente verbreitet.
-
M. Esponda-Argüero
12
Makroviren
Beispiel:
• Das bekannte Melisa-Virus, das am 26. März 1999 gestartet
worden ist.
• Verbreitet sich durch Word-Dokumente, die per Email gesendet
worden sind.
• Die Word-Dokumente beinhalteten einen VBA-Macro, der aus dem
Outlook-Adressbuch neue Email-Adressen holte und weitere Emails
mit dem infizierten Word-Dokument sendete.
• Der "ILOVEYOU"-Virus wurde auch in VBS geschrieben und wurde
am 4.5.2000 gestartet.
• 328 Programmzeilen verursachten $10 Milliarden Schaden.
• Es ist kein schwieriges Programm gewesen, das vor allem die
Vulnerabilität des Windows Betriebssystems zeigte.
-
M. Esponda-Argüero
13
LoveLetter.VBS
sub spreadtoemail()
for ctrlists = 1 to mapi.AddressLists.Count
set a = mapi.AddressLists(ctrlists)
x=1
for ctrentries = 1 to a.AddressEntries.Count
malead = a.AddressEntries(x)
set male=out.CreateItem(0)
male.Recipients.Add( malead )
male.Subject = “ILOVEYOU”
male.Body = “kindly check the attached LOVELETTER coming from me.”
male.Attachments.Add(dirsystem&“\LOVE-LETTER-FOR-YOU.TXT.vbs”)
male.Send
x=x+1
next
next
end sub
-
M. Esponda-Argüero
14
Viren
Source code
Sucht nach Quellcode-Programm und verändert diese.
Polymorphic
Verändert sich, um zu vermeiden, dass Antiviren-Programme diese
erkennen. Programmviren haben eine Signatur.
Encrypted
Um von Antiviren-Programmen unerkannt zu bleiben, sind einige
Viren noch Mal verschlüsselt. Vor der Ausführung entschlüsseln sie
sich selber.
Stealth
Versucht das Viruserkennung-System zu verändern.
Multipartite
Infiziert mehrere Stellen wie Speicher, Boot-Sektors, Dateien und
erschwert damit die Erkennung.
Armored
Besonders schwer zu verstehen, weil dieses Virus manchmal
komprimiert oder versteckt hinter Dateiattributen oder Namen ist.
-
M. Esponda-Argüero
15
Viren
Gerätetreiberviren
• Unter Windows und einigen UNIX-Systemen sind
Gerätetreiber ausführbare Programme, die auf der Festplatte
leben und während des Bootvorgangs geladen werden.
• Gerätetreiber laufen im Kernmodus und besitzen damit dann
alle Möglichkeiten, das System zu beschädigen.
• Eine wichtige Einschränkung wäre es, Gerätetreiber nur im
Benutzermodus laufen zu lassen.
-
M. Esponda-Argüero
16
Quellcode-Viren
• Plattformunabhängig
• Sucht nach C-Quellprogrammen
• Die Zeile
#include <virus.h>
wird eingefügt.
• Um den Virus zu aktivieren, muss noch eine richtige
Stelle gefunden werden, um die Startfunktion
aufzurufen.
start_virus();
-
M. Esponda-Argüero
17
Polymorphe Viren
Beispiel:
X = ( A+B+C-4 )
Quelle: Tanenbaum
-
M. Esponda-Argüero
18
Würmer
Computerwürmer sind selbstreplizierende Programme, die
sich über das Netz verbreiten und damit größeren Schaden
anrichten können. Sie verbreiten sich meistens schneller als
Viren, weil sie sich selbst fortbewegen können.
-
M. Esponda-Argüero
19
Würmer
Beispiel:
• 2.11.1988 von Robert Tappan Morris
• Zwei Programme: Ladeprogramm und eigentliches
Wurmprogramm.
• Das Ladeprogramm (99 Zeilen C-Programm), von angegriffenen
Systemen übersetzt und ausgeführt, baute eine Verbindung zum
Stammrechner und holte dann das Wurmprogramm.
• Das Wurmprogramm durchsuchte die Routing-Tabellen, und
versuchte, in neuen Maschinen das Ladeprogramm zu verbreiten.
-
M. Esponda-Argüero
20
Würmer
• 3 Methoden wurden für die Verbreitung des Ladeprogramms
verwendet:
rsh-Schell,
Finger-Daemon (Pufferüberlauf)
sendmail (Debugging-Hintertür)
• Das Wurmprogramm selber versuchte Benutzer-Logins zu knacken in
einem 3-stufigen Suchverfahren:
- einfache Fälle ohne Passwort
- Wörterbuch mit den 432 beliebtesten Passwörtern
- jedes Wort aus dem standard-UNIX-on-line Wörterbuch
Das ermöglichte es dem Wurm, weitere Maschinen zu infizieren.
•
-
M. Esponda-Argüero
21
Der Morris-Internet-Wurm
• Der Wurm prüfte in jeder neu eroberten Maschine, ob dort bereits
ein Wurm lief und in 6 von 7 Fällen unterbrach er seine Ausführung
selbst.
• Das Verhältnis (1:7) führte zu einer Wurmüberschwemmung, die
viele Maschinen zum Stillstand brachte.
• 6000 Rechner wurden überfallen.
• Das waren 10% der damaligen vernetzten Rechner.
• Morris wurde verurteilt, bekam eine Geldstrafe von 10.000 Dollar,
3 Jahre auf Bewährung, und die Prozesskosten beliefen sich auf
mehr als 100.000 Dollar.
-
M. Esponda-Argüero
22
Der Morris-Internet-Wurm
-
M. Esponda-Argüero
23
Adware
-
M. Esponda-Argüero
24
Adware
-
enthält Code, der persönliche Informationen des Benutzers überwacht
-
die Internet-Verbindung des Benutzers wird im Hintergrund missbraucht,
indem mit Hilfe von sogenannten "Back channels" persönliche
Information gesendet wird.
-
Legal? oder Illegal?
Adware ohne ausdrückliche
Zustimmung des Benutzers
-
=
Spyware ⇒ illegal
M. Esponda-Argüero
25
Schnüffelprogramme (Spyware)
Definition von Barwinski et al. (2006)
• Versteckt sich, so dass das Opfer sie nicht leicht finden
kann
• Sammelt Daten über den Benutzer (z.B. besuchte
Websites, Passwörter, Kreditkartennummer, usw.)
• Sendet die gesammelte Information an ihre Urheber
• Es ist oft sehr schwierig aus dem System zu eliminieren
-
M. Esponda-Argüero
26
Spyware
nach Barwinski et al. (2006)
3 Kategorien von Spyware:
• Marketing
sammelt Information, um gezielte Werbung zu
erzeugen.
• Überwachung
von Unternehmen verwendet, um Angestellte zu
überwachen.
• Malware
Zombie-Prozesse liegen auf der Lauer, um
Benutzerinformation zu missbrauchen.
Hauptlieferanten:
Unterhaltung für Erwachsene, Warez (illegal beschaffte Software),
Online-Reisen und Immobilien
-
M. Esponda-Argüero
27
Spyware
Moshchuk et al. 2006
• 18 Millionen URLs wurden untersucht
• 6% hatten Spyware
• nach Studie von AOL/NSA sind 80% der PCs überfallen
• mit durchschnittlich 93 einzelnen Spyware-Programmen pro
Rechner
• viel größere Infektionsrate durch Websites mit
pornografischem Inhalt, kostenloser Software, Software zum
Austauschen von Dateien in Peer-2-Peer-Netzwerken, usw.
-
M. Esponda-Argüero
28
Spyware
Google Studie 2007
• in-depth Analysis von 4,5 Milliarden Websites
• Der Anteil potenziell gefährlicher Websites in den GoogleTrefferlisten ist demnach seit April 2007 von unter 0,4 Prozent auf
mehr als 1,5 Prozent im Dezember gestiegen.
• Der Trend zeigt nach oben (nach Niels Provos).
• Immer mehr legitime Websites werden gehackt und als MalwareSchleudern missbraucht.
• Die Täter nutzen dabei jede sich bietende Sicherheitslücke aus.
Schwachstellen gibt es überall, z.B. PHP-Anwendungen,
Datenbanken, Content-Management-Systemen (CMS) oder BlogSoftware.
-
M. Esponda-Argüero
29
Schnüffelprogramme (Spyware)
. . . Google Studie 2007
• Email ist nicht mehr die Hauptquelle von Malware, sondern Websites.
• 4 Verbreitungsmechanismen
• Infizieren von Webservern
• Webseiten mit Benutzerbeteiligung
• Eingefügte Werbung
• Third-party widgets
• Skriptsprachen (Javascript, VBScript, usw.) werden verwendet, um
zuerst die Angreifbarkeit eines Rechners herauszufinden. Diese
Information wird dann an Server weitergeleitet, um passende
Angreifer zu fordern.
• Bot-Netze und Techniken, um sich vor Antiviren-Software zu
verstecken.
-
M. Esponda-Argüero
30
Port Scanning
Wird verwendet, um Angriffsstellen zu finden.
Es gibt eine Reihe von Tools, die eine Untermenge der
typischen Programmierfehler und Schwachstellen in
einem System untersucht.
nmap
Nessus
http://www.insecure.org/nmap
http://www.nessus.org
Bei Angreifern und Administratoren sehr beliebt.
-
M. Esponda-Argüero
31
Rootkits
Eine Sammlung von Programmen und Dateien, die versucht, ihre
Existenz zu verbergen. Das Rootkit enthält Malware, oder
Hintertüren, die ebenfalls versteckt werden.
Sorten von Rootkits
-
Hypervisor
eine virtuelle Maschine als Rootkit
-
Speicher
existieren nur im Arbeitsspeicher des laufenden Systems
-
Kern
ersetzt Teile des Betriebssystemkerns
-
Bibliothek
versteckt sich in Bibliothekprogrammen (DLLs)
-
Anwendung
versteckt sich in modifizierten Systemprogrammen
-
Firmware
durch ein BIOS-Reflash oder Manipulation des ACPI
-
Advanced Configuration and Power Interface
M. Esponda-Argüero
32
Rootkits
Erstaunlich viele Firmen verwenden Rootkits als Kopierschutz von
ihren Produkten
• Sony BMG, XCP Extended Copy Protection für Musik-CDs
verwendete ein Rootkits, der sich in Windows-Systemen
installierte.
• USB-Stick mit Finger-Abdruckleser von Sony versteckte ein Rootkit
in Windows-Verzeichnissen.
• Kinowelt verkauft DVDs mit einem Kopierschutz, der unter
Windows ein Rootkit zum Verstecken von Prozessen installiert.
• Die Firma EA hat in ihrem Spiel Spore im DRM-Paket des
Programms ein Rootkit, um den Kopierschutz mit OnlineAuthentifizierung zu verbergen.
-
M. Esponda-Argüero
33
Das Sony-Rootkit
•
2005. Sony BMG
•
auroruninf-Datei in ca. 20 Millionen CDs, die ein 12 MB-Rootkit in den
Rechnern installierte
•
um die Musik zu hören, mussten die Benutzer eine Lizenzvereinbarung
akzeptieren. Dabei wurde das Rootkit installiert, unabhängig davon, ob die
Lizenz akzeptiert worden war oder nicht
•
Eine Reihe von $sys$-Dateien wurden installiert und eine davon war ein Filter,
der alle CD-ROM-Systemaufrufe abhörte und alle Musikprogramme außer
dem Sony-Programm verbot.
•
Der Rootkit überwachte Hörangewohnheiten von Benutzern und sendete die
Information an Sony.
•
Ein fehlerhafter Verbergungsmechanismus löschte alle Einträge, die mit $sys$
begannen.
•
Ein Deinstallationsprogramm mit technischen Fehlern hinterließ
angriffsanfällige Rechner.
•
Teilweise Code aus Open-Source
-
M. Esponda-Argüero
34
Rootkits
Verstecke
Anwendung
Anwendung
Anwendung
Anwendung
Anwendung
SystemBibliothek
SystemBibliothek
SystemBibliothek
SystemBibliothek
SystemBibliothek
Betriebssystem
Betriebssystem
Hypervisor
Betriebssystem
Betriebssystem
Betriebssystem
HW (BIOS)
HW (BIOS)
HW (BIOS)
HW (BIOS)
HW (BIOS)
-
M. Esponda-Argüero
35
Multilevel-Sicherheit
DAC Discretionary Access Control
• Die meisten Betriebssysteme bieten eine
benutzerbestimmbare Zugriffskontrolle (DAC)
• Nicht ausreichend an Stellen, wo stärkere Sicherheit
notwendig wird, z.B. Krankenhäuser, Polizei, Patentanmeldung,
usw.
Lösung:
MAC Mandatory Access Control.
• Systembestimmbare Zugriffskontrolle
• MAC-Mechanismen kontrollieren den Informationsfluss
-
M. Esponda-Argüero
36
Das Bell-LaPadula-Modell
• Am meisten verbreitetes Multilevel-Sicherheitsmodell
• Von Bell und LaPadula in Jahr 1973 vorgeschlagen
• Für Militärische Sicherheit entwickelt
• Dokumente (Objekte) haben Sicherheitsstufen
z.B.
• nicht klassifiziert
• vertraulich
• geheim
• streng geheim
• Benutzer bekommen dieselben Sicherheitsstufen zugeordnet
• Benutzer haben je nach zugeordneten Sicherheitsstufen
verschiedene Zugriffsrechte auf die Dokumente.
-
M. Esponda-Argüero
37
Das Bell-LaPadula-Modell
Regeln für den Informationsfluss
1. Simple-Security-Regel
Ein Prozess, der auf Sicherheitsstufe k läuft, kann nur
Objekte mit der Sicherheitsstufe k oder niedriger lesen.
2. *-Regel
Ein Prozess, der auf Sicherheitsstufe k läuft, kann nur auf
Objekte auf seiner oder einer höheren Stufe schreiben.
Prozesse dürfen nach unten lesen und nach oben schreiben.
-
M. Esponda-Argüero
38
Das Bell-LaPadula-Modell
Sicherheitsstufe
4
Prozess
Schreiben
3
Objekt
2
Lesen
1
niedrigste Priorität-Stufe
-
M. Esponda-Argüero
39
Das Bell-LaPadula-Modell
• Die Information kann nur horizontal oder aufwärts fließen
• Jedem Benutzer bekommt eine Sicherheitsstufe zugewiesen.
• Diese Stufe wird zusammen mit anderen benutzerspezifischen
Daten wie UID oder GID gespeichert.
• Beim Login bekommt die Shell des Benutzers diese
Sicherheitsstufe und kann an Kinderprozesse vererbt werden.
• Prozesse können Dateien nicht öffnen, die zu einer größeren
Sicherheitsstufe gehört.
Das Bell-LaPadula-Modell ist für das Bewahren von
Geheimnissen geeignet.
-
M. Esponda-Argüero
40
Das Biba-Modell
Das Bell-LaPadula-Modell ist nicht dafür entwickelt, um die
Integrität der Daten zu garantieren.
Wir benötigen dafür ein Modell, das genau die umgekehrten
Eigenschaften hat.
1. Simple-Integrity-Regel
Ein Prozess, der auf Sicherheitsstufe k läuft, kann nur auf
Objekte seiner oder einer niedrigeren Stufe schreiben.
2. Integrity-*Regel
Ein Prozess, der auf Sicherheitsstufe k läuft, kann nur
Objekte seiner oder einer höheren Stufe lesen
-
M. Esponda-Argüero
41
Authentifizierung
• Der meist verwendete Authentifizierung-Mechanismus
wird durch die Aufforderung vom Login-Namen und
Passwort realisiert.
• Das Passwortsystem ist die erste Verteidigung gegen
Angreifer.
• Die Login-ID wird für die DAC Discretionary Access
Control verwendet
• Der Eigentümer eines Objekts bestimmt, welche Rechte
andere Benutzer über das Objekt haben.
-
M. Esponda-Argüero
42
Authentifizierung
-
M. Esponda-Argüero
43
Schwachstellen von Passwortsystemen
Passworte können oft leicht geraten werden
•
mit einer Liste typischer Passworte
•
Morris und Thompson erstellten (1979) eine Liste von
wahrscheinlichen Passwörtern
- Vornamen, Nachnamen,
- Straßen, Städte,
- ein mittelgroßes Wörterbuch,
- Autokennzeichen,
- rückwärts geschriebene Wörter und
- kurze Ketten zufälliger Buchstaben.
• Mehr als 86% aller Passwörter waren in der Liste
• Ähnliche Ergebnisse von Klein 1990
• Andere Studie (Kabay 1997) konnte 82% Passwörter erraten
-
M. Esponda-Argüero
44
Schwachstellen von Passwortsystemen
• Das Wachstumm des Webs vergrößert das Problem,
zeigt eine Studie von Florencio und Herley. 2007
• Jede Person muss immer mehr Passwörter
auswendig lernen.
• Diese Überforderung führ zu einfachen und
schwächeren Passwörtern.
• Das Internet ist zu einer unglaublichen Beute
geworden.
-
M. Esponda-Argüero
45
Abwehrmechanismen
Defense-in-Depths-Strategie
• mehrere Sicherheitsschichten
Firewalls
• Zwei Varianten: Hardware und Software
• In einem Webserver kontrolliert die Firewall, dass die
Kommunikation nur mittels http stattfindet.
• Hier hätte den Morris-Wurm nicht durchgehen
können.
• Mit Hilfe von Firewalls können verschiedene
Sicherheits-Domänen definiert werden.
-
M. Esponda-Argüero
46
Firewall
Demilitarized Zone
Bildquelle: Silverschatz, Galvin und Gagne
-
M. Esponda-Argüero
47
Abwehrmechanismen
Hardware-Firewalls
Zustandslose
• Header jedes kommenden Pakets werden untersucht
• Quell- und Ziel-IP-Adresse, Quell- und Zielports
• Art des Dienstes und des Protokolls
• Apache-Webserver sind trotz Firewalls angreifbar
Zustandsbehaftete
• Verfolgen Verbindungen
• Angriffserkennungssystem (Intrusion Detection System IDS)
• Inhalte von Paketen werden auch untersucht
Software-Firewalls
Filter innerhalb des Betriebssystemkerns, die prinzipiell
das gleiche wie Hardware-Firewall leisten
-
M. Esponda-Argüero
48
Firewall
Probleme:
Tunneling
unerlaubtes Protokoll innerhalb erlaubtem Protokoll
(z.B. telnet innerhalb von HTTP)
IP-Spoofing
Das Versenden von IP-Paketen mit gefälschter
Absender-IP-Adresse
-
M. Esponda-Argüero
49
Firewall
Bridging-Firewall
Routing-Firewall
Proxy-Firewall
Personal firewall
oder Desktop Firewall
Application proxy firewall
führt weitere Prüfungen zur Zugriffssteuerung und
Protokollfunktionen
System-call firewall
Alle wichtige Systemaufrufe werden überwacht
-
M. Esponda-Argüero
50