@book{Nicolai2005, author = {Nicolai, Johannes}, title = {Sichere Ausf{\"u}hrung nicht vertrauensw{\"u}rdiger Programme : Evaluation verschiedener Ans{\"a}tze und Einsatz an vier Fallbeispielen}, isbn = {978-3-937786-73-5}, url = {http://nbn-resolving.de/urn:nbn:de:kobv:517-opus-33101}, publisher = {Universit{\"a}t Potsdam}, year = {2005}, abstract = {Vorwort 1. Einleitung 2. Statische vs. dynamische Analyse 3. Kriterien f{\"u}r den Erfolg statischer Quellcodeanalysemethoden 3.1. Theoretische Vor{\"u}berlegungen 3.2. 1. Kriterium: Verf{\"u}gbarkeit des Quellcodes 3.3. 2. Kriterium: Unterst{\"u}tzung der Programmiersprache 3.4. 3. Kriterium: Zulassung von „echten" Programmen der Problemdom{\"a}ne 3.5. 4. Kriterium: Bew{\"a}ltigung der auftretenden Komplexit{\"a}t 3.6. 5. Kriterium: Schutz vor b{\"o}swilliger Speichermanipulation 3.7. 6. Kriterium: Garantie f{\"u}r die Umgebung des laufenden Prozesses 3.8. Fazit 3.9. Verwandte Arbeiten 4. Bewertung von statischen Methoden f{\"u}r C/C++ typische Programme 4.1. Hintergrund 4.2. Pr{\"a}missen 4.3. 1. Problemfeld: Programmgr{\"o}ße und Interferenz 4.4. 2. Problemfeld: Semantik 4.5. 3. Problemfeld: Programmfluss 4.6. 4. Problemfeld: Zeigerarithmetik 4.7. Dynamische Konzepte zur Erf{\"u}llung des f{\"u}nften Kriteriums auf Quellcodebasis 4.8. Fazit 4.9. Verwandte Arbeiten 5. Kriterien f{\"u}r den Erfolg dynamischer Ans{\"a}tze 5.1. Hintergrund 5.2. Verf{\"u}gbarkeit des Quellcodes 5.3. Unterst{\"u}tzung der Programmiersprache 5.4. Zulassung von „echten" Programmen aus der Problemdom{\"a}ne 5.5. Bew{\"a}ltigung der auftretenden Komplexit{\"a}t 5.6. Schutz vor b{\"o}swilliger Speichermanipulation 5.7. Garantie f{\"u}r die Umgebung des laufenden Prozesses 5.8. Fazit 6. Klassifikation und Evaluation dynamischer Ans{\"a}tze 6.1. Hintergrund 6.2. Quellcodesubstitution 6.3. Bin{\"a}rcodemodifikation/Binary-Rewriting 6.4. Maschinencodeinterpreter 6.5. Intrusion-Detection-Systeme 6.6. Virtuelle Maschinen/Safe Languages 6.7. Mechanismen zur „H{\"a}rtung" von bestehenden Code 6.8. SandBoxing/System-Call-Interposition 6.9. Herk{\"o}mmliche Betriebssystemmittel 6.10. Access-Control-Lists/Domain-Type-Enforcement 6.11. Fazit 7. Sichere Ausf{\"u}hrung nicht vertrauensw{\"u}rdiger Programme im Kontext von RealTimeBattle 7.1. Vorstellung von RealTimeBattle 7.2. Charakterisierung des Problems 7.3. Alternative L{\"o}sungsvarianten/Rekapitulation 7.4. {\"U}bertragung der Ergebnisse statischer Analysemethoden auf RealTimeBattle 7.5. {\"U}bertragung der Ergebnisse dynamischer Analysemethoden auf RealTimeBattle 7.5.1. Vorstellung der RSBAC basierten L{\"o}sung 7.5.2. Vorstellung der Systrace basierten L{\"o}sung 7.6. Fazit 7.7. Verwandte Arbeiten 8. Sichere Ausf{\"u}hrung nicht vertrauensw{\"u}rdiger Programme im Kontext von Asparagus 8.1. Vorstellung von Asparagus 8.2. Charakterisierung des Problems 8.3. L{\"o}sung des Problems 8.4. Fazit 8.5. Verwandte Arbeiten 9. Sichere Ausf{\"u}hrung nicht vertrauensw{\"u}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{\"o}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{\"u}hrung nicht vertrauensw{\"u}rdiger Programme im Kontext der semiautomatischen Korrektur von Betriebssystemarchitektur-{\"U}bungsaufgaben 10.1. Vorstellung des {\"U}bungsbetriebes zur Vorlesung „Betriebssystsemarchitektur 10.2. Charakterisierung des Problems 10.3. L{\"o}sungsvorschl{\"a}ge 10.3.1. L{\"o}sungsvorschl{\"a}ge f{\"u}r das Authentifizierungs-Problem 10.3.2. L{\"o}sungsvorschl{\"a}ge f{\"u}r das Transport-Problem 10.3.3. L{\"o}sungsvorschl{\"a}ge f{\"u}r das Build-Problem 10.3.4. L{\"o}sungsvorschl{\"a}ge f{\"u}r das Ausf{\"u}hrungs-Problem 10.3.5. L{\"o}sungsvorschl{\"a}ge f{\"u}r das Ressourcen-Problem 10.3.6. L{\"o}sungsvorschl{\"a}ge f{\"u}r das Portabilit{\"a}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{\"u}berlauf ausnutzbares Programm -exploit.c: Ein Beispielexploit f{\"u}r vuln.c. -aufg43.c: L{\"o}sung f{\"u}r eine Aufgabe im Rahmen der Betriebssystemarchitektur-{\"U}bung -Handout: Sichere Ausf{\"u}hrung nicht vertrauensw{\"u}rdiger Programme}, language = {de} }