Sichere Ausführung nicht vertrauenswürdiger Programme : Evaluation verschiedener Ansätze und Einsatz an vier Fallbeispielen
Vorwort 1. Einleitung 2. Statische vs. dynamische Analyse 3. Kriterien für den Erfolg statischer Quellcodeanalysemethoden 3.1. Theoretische Vorüberlegungen 3.2. 1. Kriterium: Verfügbarkeit des Quellcodes 3.3. 2. Kriterium: Unterstützung der Programmiersprache 3.4. 3. Kriterium: Zulassung von „ech...
Main Author: | |
---|---|
Format: | Others |
Language: | German |
Published: |
Universität Potsdam
2005
|
Subjects: | |
Online Access: | http://nbn-resolving.de/urn:nbn:de:kobv:517-opus-33101 http://opus.kobv.de/ubp/volltexte/2009/3310/ |
id |
ndltd-Potsdam-oai-kobv.de-opus-ubp-3310 |
---|---|
record_format |
oai_dc |
collection |
NDLTD |
language |
German |
format |
Others
|
sources |
NDLTD |
topic |
Data processing Computer science |
spellingShingle |
Data processing Computer science Nicolai, Johannes Sichere Ausführung nicht vertrauenswürdiger Programme : Evaluation verschiedener Ansätze und Einsatz an vier Fallbeispielen |
description |
Vorwort
1. Einleitung
2. Statische vs. dynamische Analyse
3. Kriterien für den Erfolg statischer Quellcodeanalysemethoden
3.1. Theoretische Vorüberlegungen
3.2. 1. Kriterium: Verfügbarkeit des Quellcodes
3.3. 2. Kriterium: Unterstützung der Programmiersprache
3.4. 3. Kriterium: Zulassung von „echten“ Programmen der Problemdomäne
3.5. 4. Kriterium: Bewältigung der auftretenden Komplexität
3.6. 5. Kriterium: Schutz vor böswilliger Speichermanipulation
3.7. 6. Kriterium: Garantie für die Umgebung des laufenden Prozesses
3.8. Fazit
3.9. Verwandte Arbeiten
4. Bewertung von statischen Methoden für C/C++ typische Programme
4.1. Hintergrund
4.2. Prämissen
4.3. 1. Problemfeld: Programmgröße und Interferenz
4.4. 2. Problemfeld: Semantik
4.5. 3. Problemfeld: Programmfluss
4.6. 4. Problemfeld: Zeigerarithmetik
4.7. Dynamische Konzepte zur Erfüllung des fünften Kriteriums auf Quellcodebasis
4.8. Fazit
4.9. Verwandte Arbeiten
5. Kriterien für den Erfolg dynamischer Ansätze
5.1. Hintergrund
5.2. Verfügbarkeit des Quellcodes
5.3. Unterstützung der Programmiersprache
5.4. Zulassung von „echten“ Programmen aus der Problemdomäne
5.5. Bewältigung der auftretenden Komplexität
5.6. Schutz vor böswilliger Speichermanipulation
5.7. Garantie für die Umgebung des laufenden Prozesses
5.8. Fazit
6. Klassifikation und Evaluation dynamischer Ansätze
6.1. Hintergrund
6.2. Quellcodesubstitution
6.3. Binärcodemodifikation/Binary-Rewriting
6.4. Maschinencodeinterpreter
6.5. Intrusion-Detection-Systeme
6.6. Virtuelle Maschinen/Safe Languages
6.7. Mechanismen zur „Härtung“ von bestehenden Code
6.8. SandBoxing/System-Call-Interposition
6.9. Herkömmliche Betriebssystemmittel
6.10. Access-Control-Lists/Domain-Type-Enforcement
6.11. Fazit
7. Sichere Ausführung nicht vertrauenswürdiger Programme im Kontext von RealTimeBattle
7.1. Vorstellung von RealTimeBattle
7.2. Charakterisierung des Problems
7.3. Alternative Lösungsvarianten/Rekapitulation
7.4. Übertragung der Ergebnisse statischer Analysemethoden auf RealTimeBattle
7.5. Übertragung der Ergebnisse dynamischer Analysemethoden auf RealTimeBattle
7.5.1. Vorstellung der RSBAC basierten Lösung
7.5.2. Vorstellung der Systrace basierten Lösung
7.6. Fazit
7.7. Verwandte Arbeiten
8. Sichere Ausführung nicht vertrauenswürdiger Programme im Kontext von Asparagus
8.1. Vorstellung von Asparagus
8.2. Charakterisierung des Problems
8.3. Lösung des Problems
8.4. Fazit
8.5. Verwandte Arbeiten
9. Sichere Ausführung nicht vertrauenswürdiger Programme im Kontext vom DCL
9.1. Vorstellung des DCL
9.2. Charakterisierung des Problems
9.3. Experimente im DCL und die jeweilige Lösung
9.3.1. Foucaultsches Pendel
9.3.2. Lego Mindstorm Roboter
9.3.3. Hau den Lukas
9.4. Fazit
9.5. Verwandte Arbeiten
10. Sichere Ausführung nicht vertrauenswürdiger Programme im Kontext der semiautomatischen
Korrektur von Betriebssystemarchitektur-Übungsaufgaben
10.1. Vorstellung des Übungsbetriebes zur Vorlesung „Betriebssystsemarchitektur
10.2. Charakterisierung des Problems
10.3. Lösungsvorschläge
10.3.1. Lösungsvorschläge für das Authentifizierungs-Problem
10.3.2. Lösungsvorschläge für das Transport-Problem
10.3.3. Lösungsvorschläge für das Build-Problem
10.3.4. Lösungsvorschläge für das Ausführungs-Problem
10.3.5. Lösungsvorschläge für das Ressourcen-Problem
10.3.6. Lösungsvorschläge für das Portabilitäts-Problem
10.4. Fazit
10.5. Verwandte Arbeiten
11. Schlussbetrachtungen
Literaturverzeichnis
Anhang
-create_guardedrobot.sh: Die RealTimeBattle Security Infrastructure
-vuln.c: Ein durch Pufferüberlauf ausnutzbares Programm
-exploit.c: Ein Beispielexploit für vuln.c.
-aufg43.c: Lösung für eine Aufgabe im Rahmen der Betriebssystemarchitektur-Übung
-Handout: Sichere Ausführung nicht vertrauenswürdiger Programme |
author |
Nicolai, Johannes |
author_facet |
Nicolai, Johannes |
author_sort |
Nicolai, Johannes |
title |
Sichere Ausführung nicht vertrauenswürdiger Programme : Evaluation verschiedener Ansätze und Einsatz an vier Fallbeispielen |
title_short |
Sichere Ausführung nicht vertrauenswürdiger Programme : Evaluation verschiedener Ansätze und Einsatz an vier Fallbeispielen |
title_full |
Sichere Ausführung nicht vertrauenswürdiger Programme : Evaluation verschiedener Ansätze und Einsatz an vier Fallbeispielen |
title_fullStr |
Sichere Ausführung nicht vertrauenswürdiger Programme : Evaluation verschiedener Ansätze und Einsatz an vier Fallbeispielen |
title_full_unstemmed |
Sichere Ausführung nicht vertrauenswürdiger Programme : Evaluation verschiedener Ansätze und Einsatz an vier Fallbeispielen |
title_sort |
sichere ausführung nicht vertrauenswürdiger programme : evaluation verschiedener ansätze und einsatz an vier fallbeispielen |
publisher |
Universität Potsdam |
publishDate |
2005 |
url |
http://nbn-resolving.de/urn:nbn:de:kobv:517-opus-33101 http://opus.kobv.de/ubp/volltexte/2009/3310/ |
work_keys_str_mv |
AT nicolaijohannes sichereausfuhrungnichtvertrauenswurdigerprogrammeevaluationverschiedeneransatzeundeinsatzanvierfallbeispielen |
_version_ |
1716500642860630016 |
spelling |
ndltd-Potsdam-oai-kobv.de-opus-ubp-33102013-01-08T00:44:43Z Sichere Ausführung nicht vertrauenswürdiger Programme : Evaluation verschiedener Ansätze und Einsatz an vier Fallbeispielen Nicolai, Johannes Data processing Computer science Vorwort 1. Einleitung 2. Statische vs. dynamische Analyse 3. Kriterien für den Erfolg statischer Quellcodeanalysemethoden 3.1. Theoretische Vorüberlegungen 3.2. 1. Kriterium: Verfügbarkeit des Quellcodes 3.3. 2. Kriterium: Unterstützung der Programmiersprache 3.4. 3. Kriterium: Zulassung von „echten“ Programmen der Problemdomäne 3.5. 4. Kriterium: Bewältigung der auftretenden Komplexität 3.6. 5. Kriterium: Schutz vor böswilliger Speichermanipulation 3.7. 6. Kriterium: Garantie für die Umgebung des laufenden Prozesses 3.8. Fazit 3.9. Verwandte Arbeiten 4. Bewertung von statischen Methoden für C/C++ typische Programme 4.1. Hintergrund 4.2. Prämissen 4.3. 1. Problemfeld: Programmgröße und Interferenz 4.4. 2. Problemfeld: Semantik 4.5. 3. Problemfeld: Programmfluss 4.6. 4. Problemfeld: Zeigerarithmetik 4.7. Dynamische Konzepte zur Erfüllung des fünften Kriteriums auf Quellcodebasis 4.8. Fazit 4.9. Verwandte Arbeiten 5. Kriterien für den Erfolg dynamischer Ansätze 5.1. Hintergrund 5.2. Verfügbarkeit des Quellcodes 5.3. Unterstützung der Programmiersprache 5.4. Zulassung von „echten“ Programmen aus der Problemdomäne 5.5. Bewältigung der auftretenden Komplexität 5.6. Schutz vor böswilliger Speichermanipulation 5.7. Garantie für die Umgebung des laufenden Prozesses 5.8. Fazit 6. Klassifikation und Evaluation dynamischer Ansätze 6.1. Hintergrund 6.2. Quellcodesubstitution 6.3. Binärcodemodifikation/Binary-Rewriting 6.4. Maschinencodeinterpreter 6.5. Intrusion-Detection-Systeme 6.6. Virtuelle Maschinen/Safe Languages 6.7. Mechanismen zur „Härtung“ von bestehenden Code 6.8. SandBoxing/System-Call-Interposition 6.9. Herkömmliche Betriebssystemmittel 6.10. Access-Control-Lists/Domain-Type-Enforcement 6.11. Fazit 7. Sichere Ausführung nicht vertrauenswürdiger Programme im Kontext von RealTimeBattle 7.1. Vorstellung von RealTimeBattle 7.2. Charakterisierung des Problems 7.3. Alternative Lösungsvarianten/Rekapitulation 7.4. Übertragung der Ergebnisse statischer Analysemethoden auf RealTimeBattle 7.5. Übertragung der Ergebnisse dynamischer Analysemethoden auf RealTimeBattle 7.5.1. Vorstellung der RSBAC basierten Lösung 7.5.2. Vorstellung der Systrace basierten Lösung 7.6. Fazit 7.7. Verwandte Arbeiten 8. Sichere Ausführung nicht vertrauenswürdiger Programme im Kontext von Asparagus 8.1. Vorstellung von Asparagus 8.2. Charakterisierung des Problems 8.3. Lösung des Problems 8.4. Fazit 8.5. Verwandte Arbeiten 9. Sichere Ausführung nicht vertrauenswürdiger Programme im Kontext vom DCL 9.1. Vorstellung des DCL 9.2. Charakterisierung des Problems 9.3. Experimente im DCL und die jeweilige Lösung 9.3.1. Foucaultsches Pendel 9.3.2. Lego Mindstorm Roboter 9.3.3. Hau den Lukas 9.4. Fazit 9.5. Verwandte Arbeiten 10. Sichere Ausführung nicht vertrauenswürdiger Programme im Kontext der semiautomatischen Korrektur von Betriebssystemarchitektur-Übungsaufgaben 10.1. Vorstellung des Übungsbetriebes zur Vorlesung „Betriebssystsemarchitektur 10.2. Charakterisierung des Problems 10.3. Lösungsvorschläge 10.3.1. Lösungsvorschläge für das Authentifizierungs-Problem 10.3.2. Lösungsvorschläge für das Transport-Problem 10.3.3. Lösungsvorschläge für das Build-Problem 10.3.4. Lösungsvorschläge für das Ausführungs-Problem 10.3.5. Lösungsvorschläge für das Ressourcen-Problem 10.3.6. Lösungsvorschläge für das Portabilitäts-Problem 10.4. Fazit 10.5. Verwandte Arbeiten 11. Schlussbetrachtungen Literaturverzeichnis Anhang -create_guardedrobot.sh: Die RealTimeBattle Security Infrastructure -vuln.c: Ein durch Pufferüberlauf ausnutzbares Programm -exploit.c: Ein Beispielexploit für vuln.c. -aufg43.c: Lösung für eine Aufgabe im Rahmen der Betriebssystemarchitektur-Übung -Handout: Sichere Ausführung nicht vertrauenswürdiger Programme Universität Potsdam An-Institute. Hasso-Plattner-Institut für Softwaresystemtechnik GMBH 2005 Book application/pdf urn:nbn:de:kobv:517-opus-33101 http://opus.kobv.de/ubp/volltexte/2009/3310/ ger http://opus.kobv.de/ubp/doku/urheberrecht.php |