Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Systeme 1 Kapitel 10 Sicherheit WS 2009/10.

Ähnliche Präsentationen


Präsentation zum Thema: "Systeme 1 Kapitel 10 Sicherheit WS 2009/10."—  Präsentation transkript:

1 Systeme 1 Kapitel 10 Sicherheit WS 2009/10

2 Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität (data integrity): Unautorisierte Benutzer dürfen, ohne Erlaubnis des Besitzers, Daten nicht modifizieren. Systemverfügbarkeit (system availability): Niemand soll das System so stören können, dass es dadurch unbenutzbar wird. Datenschutz (privacy): Schutz von Personen vor dem Missbrauch ihrer persönlichen Daten. WS 2009/10

3 Angreifer Passive Angreifer Aktive Angreifer
lesen Daten, für die sie keine Leseberechtigung besitzen. Aktive Angreifer Ziel ist die unautorisierte Änderung von Daten. Systementwurf das vor Angreifern sicher sein soll unterscheidet zwischen verschiedenen Kategorien: Nichttechnische Benutzer ( s von anderen lesen) Insider Wirtschaftlichen Nutzen ziehen (Bankprogrammierer) Militärische Spionage oder Wirtschaftsspionage WS 2009/10

4 Inhalt Schutz Angriffe Abwehrmechanismen Kryptografie
Schutzmechanismen Authentifizierung Angriffe Insider-Angriffe Ausnutzen von Programmierfehlern Malware Abwehrmechanismen WS 2009/10

5 Grundlagen der Kryptografie
Kryptografie spielt eine wichtige Rolle in Bezug auf die Sicherheit. Ziel: Datei, die als Klartext (plaintext) vorliegt, als Chiffretext (ciphertext) zu verschlüsseln. Nur autorisierte Personen sollen den Chiffretext entschlüsseln können. Grundsatz: Ver- und Entschlüsselungsalgorithmen sollten immer öffentlich sein. Sicherheit durch Verschleierung der Funktionsweise (Security by Obscurity) ist eine falsche Sicherheit! Es sollten nur die Eingangsparameter des Algorithmus (= Schlüssel) geheim gehalten werden! WS 2009/10

6 Ver- und Entschlüsselung
P = Plaintext C = Chiffretext E = Verschlüsselungsalgorithmus KE = Schlüssel zur Verschlüsselung D = Entschlüsselungsalgorithmus KD = Schlüssel zur Entschlüsselung E P D Chiffretext Verschlüsselungs- algorithmus Entschlüsselungs- Ausgabe- Klartext Eingabe- Verschlüsselung Entschlüsselung KD Entschlüsselungsschlüssel KE Verschlüsselungsschlüssel WS 2009/10

7 Symmetrische Kryptografie
Sender und Empfänger nutzen jeweils gleichen Schlüssel. Beispiel: Monoalphabetische Substitution: Anzahl möglicher Schlüssel: Hört sich sicher an, ABER die Verschlüsselung kann leicht geknackt werden: Statistische Eigenschaften der Sprache Häufigkeit der Buchstaben z.B. im Englischen: e, t, o, a, n, i usw. Sicherheit erst ab 256-Bit-Schlüssel => Beispiele: DES (digital encryption standard), AES (advanced encryption standard) Problem: Austausch des Schlüssels Klartext A B C D E F G H I J K L M N O Chiffretext (=Schlüssel) Q W R T Y U P S WS 2009/10

8 Public-Key-Kryptografie
Kommunizierende Parteien besitzen keinen gemeinsamen Schlüssel. Asymmetrische Kryptografie Prinzip: Unterschiedliche Schlüssel für die Verschlüsselung und Entschlüsselung. Jeder besitzt eigenes Schlüsselpaar : (Köffentlich, Kprivat)Bob, (Köffentlich, Kprivat)Alice Verschlüsselungsschlüssel kann öffentlich sein. Entschlüsselungsschlüssel muss privat bleiben. Beispiel: RSA (Rivest, Shamir & Adleman) WS 2009/10

9 Public-Key-Kryptografie
Funktionsweise: Alice kennt öffentlichen Schlüssel von Bob Köffentlich und verschlüsselt damit den Klartext P. Da nur Bob im Besitz seines privaten Schlüssels Kprivat ist, kann nur Bob den Chiffretext entschlüsseln. Alice Bob (Köffentlich)Bob (Kprivat)Bob E D P P Chiffretext Eingabe- Klartext Ausgabe- Klartext Verschlüsselungs- algorithmus Entschlüsselungs- algorithmus WS 2009/10 Verschlüsselung Entschlüsselung

10 Sichere Systeme Frage:
Ist es möglich, ein sicheres Computersystem zu bauen? Grundsätzlich JA! Warum wird das nicht getan? Benutzer lieben einfache Bedienung. Komplexe Programme mit vielen Funktionen erhöhen das Risiko von (sicherheitskritischen) Fehlern. Beispiele: als ASCII-Text = sicher; Allerdings wurde es ermöglicht andere Dokumenttypen anzuhängen. passive Webseiten = sicher; Dynamische Webseiten mit Applets (Programme) können sicherheitskritisch sein. WS 2009/10

11 Multilevel-Sicherheit
Die meisten Betriebssysteme ermöglichen es, dem Benutzer festzulegen, wer seine Dateien lesen und schreiben darf. Benutzerbestimmbare Zugriffskontrolle (DAC, Discretionary Access Controll) Für einfache Systeme ohne besondere Anforderungen ist dies ausreichend. Militär, Patentabteilungen oder Krankenhäuser benötigen allerdings stärkere Sicherheit. Organisation möchte zusätzlich Zugriffskontrolle festlegen. Systembestimmbare Zugriffskontrolle (MAC, Mandatory Access Control) Kontrollieren den Informationsfluss, damit keine Informationen nach außen dringen. WS 2009/10

12 Bell-LaPadula-Modell
Wurde zur Handhabung militärischer Sicherheit entwickelt. Dokumente (Objekte) haben Sicherheitsstufen: Nicht klassifiziert, vertraulich, geheim, streng geheim, … Benutzer haben die selbe Sicherheitsstufe. Beim Erstellen erhält das Dokument die gleiche Sicherheitsstufe. Regeln, wie Informationen fließen können: Simple-Security-Regel: Lesen ist nur auf selber Stufe oder darunter erlaubt. *-Regel: Schreiben ist nur auf selber oder höherer Stufe erlaubt. WS 2009/10

13 Bell-LaPadula-Modell
Ein General kann von der unteren Sicherheitsstufe lesen, aber nur in gleiche oder höhere Stufe schreiben, um keine Informationen nach unten fließen zu lassen. Sicherheitsstufe 5 E 6 4 Prozess Objekt 3 C 4 D 3 Lesen Schreiben B 2 2 1 A 1 WS 2009/10

14 Bell-LaPadula-Modell
Betriebssystem muss diese Regeln umsetzen. Beispiel: Sicherheitsstufe des Benutzers mit der UID oder der GID speichern. Beim Login bekommt die Shell die Sicherheitsstufe des Users und vererbt diese an alle Kinderprozesse. Wenn ein Prozess eine Datei / ein Objekt einer höheren Sicherheitsstufe öffnet, sollte das Betriebssystem dies zurückweisen. Analog gilt dies für das Schreiben von Dateien in eine niedrigere Sicherheitsstufe. WS 2009/10

15 Bell-LaPadula-Modell
Das Bell-LaPadula-Modell ist gut, um die Vertraulichkeit von Daten zu wahren. Nachteil: Für Unternehmen nicht wirklich praktikabel. Beispiel: Da Informationen nur nach oben geschrieben werden können, kann der Hausmeister in wichtige Unternehmensdokumente (z.B. Strategie) schreiben. Anderes Modell notwendig, z.B. Biba-Modell, welches die Integrität des Informationsflusses sichert und umgekehrte Regeln besitzt (kein Aufwärtsschreiben und kein Abwärtslesen). WS 2009/10

16 Sichere Systeme Funktionieren sichere Systeme, selbst wenn sie auf einem korrekten Sicherheitsmodell basieren, dessen Sicherheit bewiesen ist? NEIN, Informationen können nach außen dringen, obwohl mathematisch bewiesen werden kann, dass das System sicher ist. WS 2009/10

17 Lampsons Modell Client und Server misstrauen sich.
Server: Soll dem Client bei seiner Steuer helfen und misstraut dem Client, dass die Steuersoftware geklaut wird. Client: ist besorgt, dass seine Steuerdaten geklaut werden. Ziel: Server will die Steuerdaten tatsächlich an einen Kollaborateur weiterleiten (Angriff auf privacy). Kern Client Gekapselter Server Kollaborateur Verdeckte Kommunikation Prozesse WS 2009/10

18 Lampsons Modell Confinement-Problem: System so konstruieren, dass es dem Server unmöglich macht, dem Kollaborateur-Prozess die Informationen zuzuspielen. Mit einem Schutzmatrixverfahren könnte garantiert werden, dass der Server in keine Datei schreiben kann, die der Kollaborateur lesen kann. Auch könnte sichergestellt werden, dass keine Interprozesskommunikation stattfinden kann. Problem dennoch nicht lösbar, da subtile Kommunikationskanäle (=verdeckte Kanäle) existieren können. WS 2009/10

19 Verdeckte Kanäle Modulation der CPU-Nutzung:
Server kann CPU Last für eine gewisse Zeit erzeugen, um ein 1-Bit zu übertragen. Um ein 0-Bit zu übertragen, legt sich der Server für die gleiche Zeitspanne schlafen. Kollaborateur muss Antwortzeit sorgfältig überwachen, um den Bit-Strom zu entdecken. Problem: Verrauschter Kanal => fehlerkorrigierender Code (z.B. Hamming-Code) Modulation der Paging-Rate (Seitenfehler) Viele Seitenfehler für ein 1-Bit. Keine Seitenfehler für ein 0-Bit. WS 2009/10

20 Verdeckte Kanäle Sperren von Dateien
Über ein festes Zeitintervall bestimmte Dateien sperren, um ein 1-Bit zu übertragen bzw. freizugeben, um ein 0-Bit zu übertragen. Kann um Empfangsbestätigung oder Synchronisation erweitert werden, indem der Kollaborateur ebenfalls Dateien sperrt. Verbesserung: Erhöhung der Datenrate je mehr Dateien verwendet werden. Datei gesperrt freigegeben 1 Server Kollaborateur Zeit WS 2009/10

21 Verdeckte Kanäle Es existieren noch viele weitere Möglichkeiten, Informationen auszuschleußen, wie z.B. Belegung von Betriebsmitteln, Erzeugung von Dateien und deren Löschung, Steganografie, … Es ist extrem schwierig, alle verdeckten Kanäle zu finden oder zu blockieren. WS 2009/10

22 Sichere Systeme Damit ein System ansatzweiße sicher sein kann, muss eine Zugangskontrolle erfolgen! Das System muss wissen: Um welche Person es sich handelt. Welche Rechte dem Benutzer gewährt werden müssen. Notwendigkeit der Authentifizierung WS 2009/10

23 Authentifizierung Sicheres Betriebssystem muss Benutzer beim Login authentifizieren, damit der Zugriff auf Dateien oder Betriebsmittel beschränkt werden kann. Wichtig auch für Internet-Banking, Online-Shopping und andere kommerzielle Aktivitäten. Methoden der Authentifizierung basieren auf einem von drei allgemeinen Prinzipien, nämlich der Identifikation von: etwas, das der Benutzer weiß (z.B. Passwort); etwas, das der Benutzer besitzt (z.B. Smart-Card); etwas, das der Benutzer ist (z.B. Biometrische Merkmale). Um zusätzliche Sicherheit zu garantieren, können diese Prinzipien kombiniert werden. Angreifer müssen zunächst die Authentifizierung umgehen, um sich Zugang zum System zu verschaffen. WS 2009/10

24 Authentifizierung durch Passwörter
Sicherheitscredo: Schweigen ist Gold. Ein System sollte nicht zu viele Informationen bei einem fehlgeschlagenen Login verraten: Invalid Login-Name: Angreifer muss solange Benutzernamen eingeben, bis ein gültiger Login-Name gefunden wird. Das System sollte nur die Kombination aus Login-Name und Passwort als fehlerhaft zurückgeben, um keine Rückschlüsse auf das Login zu ermöglichen! Es muss allerdings auch das Passwort erraten werden. Liste wahrscheinlicher Passwörter erstellen: Vor- und Nachnamen, Straßennamen, Städtenamen, Wörter aus einem Wörterbuch (auch rückwärts geschriebene), … Tests haben gezeigt, dass 86% aller Passwörter damit übereinstimmen. Erraten meistens leichter als gedacht! WS 2009/10

25 Authentifizierung durch Passwörter
Es sollte allerdings nicht nur ein Betriebssystem-Login eingestellt werden. Auch das BIOS sollte durch ein Passwort geschützt werden! Ansonsten kann die Bootreihenfolge geändert werden und mit Hilfe eines Live-Betriebssystems die Festplatte eingehängt und die Daten ausgelesen werden. Verschlüsselung der Platte oder von sensiblen Daten sinnvoll. WS 2009/10

26 Authentifizierung durch Passwörter
Doch selbst wenn das eigene Passwort sicher ist, kann in einem Mehrbenutzersystem (Uni-Rechner) keine vollständige Sicherheit garantiert werden. Falls ein Angreifer in ein System eingedrungen und zum Superuser geworden ist, kann er einen Paket-Sniffer installieren und damit remote Passwörter ausspionieren. Auf diese Weise kann ein Angreifer, der in eine Maschine mit schwacher Sicherheit einbricht, dies dazu ausnutzen, um in Maschinen mit stärkerer Sicherheit einzudringen. WS 2009/10

27 Passwortsicherheit in UNIX
Nach Festlegung des Passworts, wird dieses verschlüsselt und zusammen mit dem Benutzernamen in einer Datei hinterlegt. Problem: Ein Angreifer könnte eine Liste von wahrscheinlichen Passwörtern mit dem selben Verfahren verschlüsseln. Anschließend muss der Angreifer die öffentlich einsehbare Passwortdatei durchlaufen und die verschlüsselten Passwörter vergleichen. Bei einem Match muss lediglich der Benutzername ausgelesen werden. WS 2009/10

28 Passwortsicherheit in UNIX
Lösung: Kombination des Passwortes mit einer n-Bit-Zufallszahl (=Salt). Salt wird unverschlüsselt in die Passwortdatei gespeichert. Falls als Passwort „hallo“ vermutet wird, muss der Angreifer anschließend 2n Zeichenketten verschlüsseln („hallo0000“, „hallo0001“, …). Salt erhöht somit den Aufwand solcher Wörterbuch-Angriffe. Weiterer Seiteneffekt: Falls mehrere Benutzer das selbe Passwort gewählt haben, wird die Informationssicherheit erhöht, da durch die Zufallszahl der Chiffretext (mit hoher Wahrscheinlichkeit) verschieden ist. Moderne Betriebssysteme sollten außerdem die Passwortdatei unlesbar machen und auf Anfrage durch ein Programm, die Einträge nachschlagen. Hierdurch entsteht eine Verzögerung, die ausreicht, um einen Angreifer entscheidend zu bremsen. WS 2009/10

29 Inhalt Schutz Angriffe Abwehrmechanismen Kryptografie
Schutzmechanismen Authentifizierung Angriffe Insider-Angriffe Ausnutzen von Programmierfehlern Malware Abwehrmechanismen WS 2009/10

30 Insider-Angriffe — Login-Spoofing
Angriff: Rechtmäßiger Benutzer des Systems versucht die Passwörter anderer Benutzer zu sammeln. Beispiel: Uni-Rechner Ablauf: Der Angreifer schreibt ein Programm, dass dem Login-Fenster ähnlich sieht. Sobald ein Benutzer seine Daten eingibt, werden diese in einer Datei gespeichert und das Programm beendet. Anschließend wird der originale Login-Screen angezeigt. Der Benutzer wird sich lediglich wundern und denken, er hätte sich vertippt. Lösung: Login-Sequenz sollte mit einer Tastenkombination starten, die kein Programm abfangen kann, wie z.B. STRG-ALT-ENTF. WS 2009/10

31 Insider-Angriffe — Falltüren
Systemprogrammierer könnte Code einfügen, um Kontrollmechanismus zu umgehen. Problematisch, da ein Quelltext aus tausenden von Codezeilen besteht und kleine Änderungen nicht auffallen. Beispiel: while(TRUE){ printf(„login: „); get_string(name); disable_echoing( ); printf(„password:“); get_string(password); enable_echoing( ); v = check_validity(name,password); if(v) break; } execute_shell(name) strcmp überprüft zwei Strings auf Gleichheit. Rückgabewert entspricht Anzahl an unterschied- lichen Zeichen. if(v || strcmp(name, „zzzz“) == 0) break; Lösung: Unternehmen müssen Codereviews einführen, in denen jeder Programmierer den anderen Programmierern jede Zeile des Codes erklärt. WS 2009/10

32 Ausnutzen von Programmierfehlern
Wie können Außenstehende das Betriebssystem angreifen? Fast alle Angriffsmechanismen ziehen Nutzen aus Programmierfehlern im Betriebssystem oder in Anwendungsprogrammen, wie dem IE, MS Office etc. Es existieren eine Vielzahl von Angriffsarten: Pufferüberlaufangriffe Formatstring-Angriffe Return-to-libc-Angriffe Angriff durch Code-Injektion Privilege-Escalation-Angriff WS 2009/10

33 Pufferüberlaufangriffe
Viele Systemprogramme sind in C geschrieben (aus Beliebtheit und Effizienzgründen). Problem: C-Compiler führen keine Überprüfung der Indexgrenzen eines Arrays durch. Beispiel: Dies führt dazu, dass Bytes vom Array c entfernt ein Byte überschrieben wird. int i; char c[1000]; i = 12000; c[i] = 0; WS 2009/10

34 Pufferüberlaufangriffe
Standard Programmablauf: Laufendes Hauptprogramm legt seine lokalen Variablen auf dem Stack ab. Beim Aufruf einer Prozedur A wird die Rücksprungadresse auf dem Stack abgelegt, um nach Abarbeitung von A im Hauptprogramm fortzufahren. Anschließend wird die Kontrolle an A übergeben, welches das Kellerregister dekrementiert, um Speicher für seine lokalen Variablen zu reservieren. Angenommen: Prozedur A braucht einen Puffer B, um seine Aufgabe (z.B. Aufnahme eines Dateinamens, welche anschließend geöffnet werden soll) zu erfüllen. Virtueller Adressraum Virtueller Adressraum 0xFFFF… Lokale Variablen im Hauptprogramm Lokale Variablen im Hauptprogramm Stack Rücksprungadr. Lokale Variablen in A B Keller- register Keller- register Puffer B Programm Programm Laufendes Hauptprogramm Nachdem die Prozedur A aufgerufen wurde WS 2009/10

35 Pufferüberlaufangriffe
Beim Programmieren ist es vermeintlich leichter, einen Puffer mit fester Größe zu reservieren (z.B Bytes), als die Größe zur Laufzeit dynamisch zu ermitteln und genügend Speicher zu reservieren. Hierbei wird fälschlicherweise angenommen, dass 1024 Bytes groß genug sind, da Dateinamen sowieso nicht länger als 255 Zeichen sein dürfen. Angreifer gibt einen Dateinamen an, der 2000 Zeichen lang ist. Puffer läuft über und überschreibt die Rücksprungadresse. Lokale Variablen im Hauptprogramm Programm Rücksprungadr. Variablen in A Puffer B Virtueller Adressraum Keller- register B Pufferüberlauf (rot) WS 2009/10

36 Pufferüberlaufangriffe
Anstatt eines Dateinamens wird ein Binärprogramm eingegeben, das ein Wort beinhaltet, welches die Rücksprungadresse genau auf den Anfang dieses Programms überschreibt. Sobald A beendet wird und zurückspringt, wird das Programm ausgeführt, das sich jetzt in B befindet. Der Angreifer hat somit den Speicher mit seinem eigenen Code überschrieben und diesen zur Ausführung gebracht. Funktioniert an allen Stellen, an denen ein Programmierer einen Puffer fester Größe angelegt hat, welches mit Benutzerdaten gefüllt wird. Falls das Hauptprogramm mit gesetztem SETUID-Bit ausgeführt wird, besitzt das Binärprogramm Superuser-Rechte! WS 2009/10

37 Pufferüberlaufangriffe
Das Programm kann ebenfalls ein Skript aus dem Internet herunterladen und einen Prozess erzeugen, welches dieses Skript ausführt. Hohes Schadenspotenzial Schutz Angreifer muss das Programm auf den Stack legen und es dort zur Ausführung bringen. Stack nur zum Lesen und Schreiben, aber nicht zum Ausführen markieren. Moderne CPU‘s erlauben diese Funktionalität. Dies wird allerdings meistens vom Betriebssystem nicht verwendet! WS 2009/10

38 Return-to-libc-Angriffe
Selbst wenn auf dem Stack keine Programme ausgeführt werden dürfen, gibt es Möglichkeiten dies zu umgehen. Fast alle C-Programme sind mit der Bibliothek libc verbunden, die alle Schlüsselfunktionen der meisten C-Programme enthält. Ziel: Mit Hilfe von strcpy, welches eine beliebige Bytefolge von einer Adresse zu einer anderen kopiert, das Programm in das Datensegment kopieren. Rücksprungadresse muss dann auf das Datensegment zeigen, um das Programm zur Ausführung zu bringen. WS 2009/10


Herunterladen ppt "Systeme 1 Kapitel 10 Sicherheit WS 2009/10."

Ähnliche Präsentationen


Google-Anzeigen