38
Systeme 1 Kapitel 10 Sicherheit WS 2009/10 1

Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

Embed Size (px)

Citation preview

Page 1: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

1

Systeme 1

Kapitel 10 Sicherheit

WS 2009/10

Page 2: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 3: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

3

Angreifer

• Passive 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 (E-Mails von anderen lesen)– Insider– Wirtschaftlichen Nutzen ziehen (Bankprogrammierer)– Militärische Spionage oder Wirtschaftsspionage

WS 2009/10

Page 4: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

4

Inhalt

• Schutz– Kryptografie– Schutzmechanismen– Authentifizierung

• Angriffe– Insider-Angriffe– Ausnutzen von Programmierfehlern– Malware

• AbwehrmechanismenWS 2009/10

Page 5: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 6: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

6

Ver- und Entschlüsselung• P = Plaintext• C = Chiffretext• E = Verschlüsselungsalgorithmus• KE = Schlüssel zur Verschlüsselung

WS 2009/10

EP DChiffretext

Verschlüsselungs-algorithmus

Entschlüsselungs-algorithmus

PAusgabe-Klartext

Eingabe-Klartext

Verschlüsselung Entschlüsselung

KD

EntschlüsselungsschlüsselKE

Verschlüsselungsschlüssel

),( EKPEC ),( DKCDP

• D = Entschlüsselungsalgorithmus• KD = Schlüssel zur Entschlüsselung

Page 7: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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üsselsWS 2009/10

Klartext A B C D E F G H I J K L M N O …

Chiffretext(=Schlüssel)

Q W E R T Y U I O P A S D F G …

2610*4!26

77256 10*2,12

Page 8: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 9: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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.

WS 2009/10

EP DChiffretext

Verschlüsselungs-algorithmus

Entschlüsselungs-algorithmus

PAusgabe-Klartext

Eingabe-Klartext

Verschlüsselung Entschlüsselung

(Kprivat)Bob

Bob(Köffentlich)Bob

Alice

),( öffentlichKPEC ),( privatKCDP

Page 10: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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:

– E-Mail: 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

Page 11: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 12: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 13: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

13

Bell-LaPadula-Modell

WS 2009/10

5 E 6

C3 4 D

2B

1 A

4

3

2

1

Sicherheitsstufe

Lesen

Schreiben

Prozess Objekt

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.

Page 14: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 15: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 16: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 17: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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).

WS 2009/10Kern

ClientGekapselter

Server Kollaborateur

Verdeckte Kommunikation

Prozesse

Page 18: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 19: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 20: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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.WS 2009/10

Datei gesperrt

Datei freigegeben

1 1 0 1 0 1 0 0

Server

KollaborateurZeit

Page 21: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 22: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 23: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 24: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 25: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 26: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 27: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 28: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 29: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

29

Inhalt

• Schutz– Kryptografie– Schutzmechanismen– Authentifizierung

• Angriffe– Insider-Angriffe– Ausnutzen von Programmierfehlern– Malware

• AbwehrmechanismenWS 2009/10

Page 30: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 31: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

31

Insider-Angriffe — Falltüren

Lösung: Unternehmen müssen Codereviews einführen, in denen jeder Programmierer den anderen Programmierern jede Zeile des Codes erklärt.WS 2009/10

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)

if(v || strcmp(name, „zzzz“) == 0) break;

• 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:

strcmp überprüft zwei Stringsauf Gleichheit. Rückgabewertentspricht Anzahl an unterschied-lichen Zeichen.

Page 32: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 33: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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 11.000 Bytes vom Array c entfernt ein Byte überschrieben wird.

WS 2009/10

int i;char c[1000];i = 12000;c[i] = 0;

Page 34: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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.WS 2009/10

LokaleVariablen im

Hauptprogramm

Keller-register

0xFFFF…Virtueller Adressraum

Stack

Programm

LokaleVariablen im

Hauptprogramm

Keller-register

Programm

Rücksprungadr.

LokaleVariablen

in A

Puffer B

B

Virtueller Adressraum

Laufendes Hauptprogramm Nachdem die Prozedur Aaufgerufen wurde

Page 35: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

35

Pufferüberlaufangriffe

WS 2009/10

LokaleVariablen im

Hauptprogramm

Programm

Rücksprungadr.

LokaleVariablen

in A

Puffer B

Virtueller Adressraum

Keller-register

B

Pufferüberlauf (rot)

– Beim Programmieren ist es vermeintlich leichter, einen Puffer mit fester Größe zu reservieren (z.B. 1024 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.

Page 36: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 37: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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

Page 38: Systeme 1 Kapitel 10 Sicherheit WS 2009/101. Sicherheitsziele Vertraulichkeit der Daten (data confidentiality): Geheime Daten sollen geheim bleiben. Datenintegrität

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