Title | Retake-2017-solution |
---|---|
Course | Grundlagen Betriebssysteme und Systemsoftware (IN0009) |
Institution | Technische Universität München |
Pages | 16 |
File Size | 595.1 KB |
File Type | |
Total Downloads | 77 |
Total Views | 154 |
Lösungsvorschlag####### Lehrstuhl für Sicherheit in der Informatik####### Fakultät für Informatik####### Technische Universität MünchenHinweise zur Personalisierung: - Ihre Prüfung wird bei der Anwesenheitskontrolle durch Aufkleben eines Codes personalisiert. - Dieser enthält lediglich eine fortlauf...
Lehrstuhl für Sicherheit in der Informatik Fakultät für Informatik Technische Universität München
ag
Hinweise zur Personalisierung: • Ihre Prüfung wird bei der Anwesenheitskontrolle durch Aufkleben eines Codes personalisiert. • Dieser enthält lediglich eine fortlaufende Nummer, welche auch auf der Anwesenheitsliste neben dem Unterschriftenfeld vermerkt ist. • Diese wird als Pseudonym verwendet, um eine eindeutige Zuordnung Ihrer Prüfung zu ermöglichen.
Grundlagen Betriebssysteme und Systemsoftware IN0009 / Wiederholungsklausur
Datum:
Donnerstag, 29. März 2018
Prüfer:
Prof. Dr. Claudia Eckert
Uhrzeit:
08:00 – 09:30
A1 I II
gs vo rs ch l
Klausur:
A2
A3
A4
A5
A6
A7
Bearbeitungshinweise
• Diese Klausur umfasst 16 Seiten mit insgesamt 7 Aufgaben. Bitte kontrollieren Sie jetzt, dass Sie eine vollständige Angabe erhalten haben.
su n
• Das Heraustrennen von Seiten aus der Prüfung ist untersagt.
• Mit * gekennzeichnete Teilaufgaben sind ohne Kenntnis der Ergebnisse vorheriger Teilaufgaben lösbar. • Es werden nur solche Ergebnisse gewertet, bei denen der Lösungsweg erkennbar ist. Auch Textaufgaben sind grundsätzlich zu begründen, sofern es in der jeweiligen Teilaufgabe nicht ausdrücklich anders vermerkt ist.
Lö
• Schreiben Sie weder mit roter / grüner Farbe noch mit Bleistift. • Die Gesamtpunktzahl in dieser Prüfung beträgt 90 Punkte. • Als Hilfsmittel sind zugelassen: – ein nicht-programmierbarer Taschenrechner – ein analoges Wörterbuch Deutsch ↔ Muttersprache ohne Anmerkungen
• Schalten Sie alle anderen mitgeführten elektronischen Geräte vollständig aus, verstauen Sie diese in Ihrer Tasche und verschließen Sie diese.
Hörsaal verlassen von
bis
/
– Seite 1 / 16 –
Vorzeitige Abgabe um
Aufgabe 1
Allgemeine Fragen (18 Punkte)
Beantworten Sie kurz die folgenden Fragen. Begründen Sie, wenn nicht anders angegeben, Ihre Antwort. 0
a)* Nennen Sie zwei Arbeitsmodi eines Betriebssystems und beschreiben Sie zwei Unterschiede zwischen den beiden Modi.
1 2
• Ausführung von Benutzer Prozessen im Benutzermodus; Ausführung des Betriebssystemkerns im Systemmodus . • Kein direkter Zugriff auf die Hardware im Benutzermodus. • Ausführung von privilegierten Befehlen im Benutzermodus nicht erlaubt. • Kein oder nur lesender Zugriff auf Systemcode oder Daten im Benutzermodus.
0
gs vo rs ch l
ag
3
Benutzermodus (User-Space) und Systemmodus (Kernel-Space).
b)* Was versteht man unter einem Deadlock? Gehen Sie dabei kurz auf die Begriffe Deadlock-Prevention (Deadlock-Verhinderung) und Deadlock-Avoidance (Deadlock-Vermeidung) ein.
1
3
0 1 2 3
• Ein Deadlock ist ein Zustand und beschreibt eine Menge von Prozessen, in der jeder Prozess auf eine Ressource wartet, die nur ein anderer Prozess aus dieser Menge freigeben kann. • Deadlock Prevention: Dafür sorgen, dass eine der vier Deadlock Bedingungen nicht erfüllt ist (die Bedingungen müssen nicht genannt werden sondern nur schreiben dass es sie gibt) • Deadlock Avoidance: Das Betriebssystem prüft dynamisch, ob eine Ressourcen-Anforderung erfolgen kann oder nicht (gegebenenfalls werden Ressourcen zurückgehalten, bis das der Fall ist).
c)* Ordnen Sie den folgenden drei Funktionstypen jeweils eine Relocation-Klasse zu:
su n
2
• (Exportierte) Bibliotheksfunktionen • Funktionen einer Compilation Unit mit Keyword static • Funktionen einer Compilation Unit ohne Keyword static
Lö
Gehen Sie hierbei von gcc auf Linux unter x86_64 als Referenzsystem aus. Begründen Sie Ihre Antwort, falls Sie einem Funktionstypen keine Relocation-Klasse zugeordnet haben sollten.
• Bibliotheksfunktionen: Load-Time-Relocation • Statische Funktionen gehören zu keiner Relocation-Klasse. Sie werden vom Assembler direkt aufgelöst. • Nicht-Statische Funktionen: Link-Time-Relocation
– Seite 2 / 16 –
d)* Nennen Sie zwei gängige Schutzmaßnahmen auf Betriebssystemebene gegen Buffer-Overflow Angriffe und beschreiben Sie kurz ihre Funktionsweise.
0 1 2 3
gs vo rs ch l
ag
• Stack Canaries werden vom Compiler zwischen der Return Adresse und lokalen Variablen auf dem Stack einer Funktion eingefügt. Das Betriebssystem überprüft die Integrität des Stack Canaries, bevor die Funktion returned. • Data Execution Prevention (DEP). Der Stack wird vom Betriebssystem durch das NX-Bit (XN) als non-executable markiert und verhindert somit die Ausführung vom einem potenziell eingeschleusten Shellcode auf dem Stack. • Address Space Layout Randomization (ASLR) randomisiert die Adresse des Stacks und erschwert dem Angreifer diesen zu finden.
e)* Schildern und erläutern Sie kurz zwei Bestandteile von Containern unter Linux.
• Namespaces: Bieten per Namespace eine isolierte Sicht auf globale Ressourcen (Prozesse, Netzwerk, Mount-Points, etc.). • Control Groups: Systemressourcen werden für Prozessgruppen allokiert/limitiert und überwacht.
0 1 2 3
su n
• SECCOMP: Ein auf den BPF basierter Mechanismus, um Systemcalls für Prozesse einzuschränken.
f)* Beschreiben Sie kurz den Begriff Fragmentierung und gehen Sie explizit auf den Unterschied zwischen interner und externer Fragmentierung ein.
0 1
Lö
• Bei der Fragmentierung handelt es sich um Speicherbereiche, die nicht mehr verwendet werden können. • Interne Fragmentierung: Ungenutzte Bereiche eines Blocks (wenn Dateigröße...