Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

IPC SCHWÄCHEN UND OPTIMIERUNG INTERPROZESS KOMMUNIKATION Effizienz und Schwächen verfasst von Eyad Alkassar Seminar Ausgewählte Komponenten von Betriebssystemen.

Ähnliche Präsentationen


Präsentation zum Thema: "IPC SCHWÄCHEN UND OPTIMIERUNG INTERPROZESS KOMMUNIKATION Effizienz und Schwächen verfasst von Eyad Alkassar Seminar Ausgewählte Komponenten von Betriebssystemen."—  Präsentation transkript:

1 IPC SCHWÄCHEN UND OPTIMIERUNG INTERPROZESS KOMMUNIKATION Effizienz und Schwächen verfasst von Eyad Alkassar Seminar Ausgewählte Komponenten von Betriebssystemen

2 IPC SCHWÄCHEN UND OPTIMIERUNG INHALT 1. IPC - Überblick 2. Effiziente Implementierung 3. Schwächen von IPC 4. Zusammenfassung

3 IPC SCHWÄCHEN UND OPTIMIERUNG IPC - ÜBERBLICK Das Modell Adressräume als Mapping Threads und Prozesse IPC als Kommunikationmechanismus

4 IPC SCHWÄCHEN UND OPTIMIERUNG PAGING Prozesse können Virtual Memory anderen zumappen oder ganz überlassen IPC - ÜBERBLICK Prozesse die anderen Adressräume mappen heißen Pager Pager dienen gleichzeitig als Page Fault Handler Physical Memory Memory Manager Pager 1 Pager 2

5 IPC SCHWÄCHEN UND OPTIMIERUNG IPC IMPLEMENTIERUNG Vorüberlegungen Nach der 1. Kernel Generation Behauptung: IPC ist prinzipiell zu langsam Als Beispiel für eine schnelle Implementierung L3.3 bzw. L4 Dabei darf der Kernelansatz und die Sicherheit nicht verletzt werden Geschwindigkeit wichtigstes Kriterium Verwenden INTEL 486 Architektur als Grundlage

6 IPC SCHWÄCHEN UND OPTIMIERUNG Obere Grenze für Geschwindigkeit IPC IMPLEMENTIERUNG Wo liegt tatsächlich die prinzipielle Geschwindigkeitsgrenze für IPC? Dafür betrachten wir den einfachsten Aufruf lade id von B msg length:= 0 THREAD A (user mode) KERNEL THREAD B (user mode) Access thread B Switch adress space Load id of A Inspect received message 71 Zyklen 36 Zyklen call Kernel return user 172 Zyklen -> 3.5 mikros

7 IPC SCHWÄCHEN UND OPTIMIERUNG Kombinierte Systemaufrufe Eintreten und Verlassen des Kernels offensichtlich die teuersten Instruktionen IPC IMPLEMENTIERUNG Daher nach möglich vermeiden bei IPC-Aufruf Einführung kombinierter Primitive Call entspricht einem send und closed receive von Client Seite Reply & wait entspricht einem Antworten und open wait von Server Seite Optimierung

8 IPC SCHWÄCHEN UND OPTIMIERUNG Kombinierte Systemaufrufe IPC IMPLEMENTIERUNG Call entspricht einem send und closed receive von Client Seite Reply & wait entspricht einem Antworten und open wait von Server Seite THREAD ASERVER Sende Anfrage Call Nur noch zwei Kernelaufrufe benötigt Antworte Reply and Wait Optimierung

9 IPC SCHWÄCHEN UND OPTIMIERUNG Kopieren von großen Daten Prozess 1 und Prozess 2 mappen beide einen Kernelbereich IPC IMPLEMENTIERUNG naive Implementierung Prozess 1 kopiert aus seinem Adressraum in gemeinsamen Bereich Prozess 2 kopiert aus gemeinsamen Bereich in seinen Adressraum Prozess1 AR Prozess2 AR Kernel Space

10 IPC SCHWÄCHEN UND OPTIMIERUNG Kopieren von großen Daten Benötigt zwei Kopieroperationen: zu teuer IPC IMPLEMENTIERUNG Temporäres Mapping der Daten in den Kernel (Öffnet Fenster) Kernel kopiert dann die Daten nach B Optimierung

11 IPC SCHWÄCHEN UND OPTIMIERUNG Thread Control Blocks (TCB) Thread Control Blöcke zum Speichern des Zustandes des Threads IPC IMPLEMENTIERUNG Kernel Stack Register Status Bei Aktivierung Wiederherstellung des Threads aus TCB Speicherung im Kernel

12 IPC SCHWÄCHEN UND OPTIMIERUNG IPC - Timeouts IPC IMPLEMENTIERUNG Jeder IPC – Aufruf kann einen Timeoutwert t spezifizieren d.h. wenn nach t ms noch keine Nachrichtenübermittlung, dann weckt Kernel Thread wieder auf und Übertragung ist gescheitert Meistens werden die Werte 0 und unendlich benutzt deren Implementierung einfach ist

13 IPC SCHWÄCHEN UND OPTIMIERUNG IPC IMPLEMENTIERUNG naive Implementierung Andere Werte benötigen offensichtlich eine Wakeupqueue Meistens laufen die Timeouts nicht ab, daher Datenstruktur optimiert auf Einfügen und Löschen von Elementen naive Implementierung: großes Array von timeout values addressiert mit Thread ID bei jedem Zeitintervall muss komplettes Array durchsucht werden Das führt zu einer Belegung von Cache, etc. extrem schlechte Laufzeit IPC - Timeouts

14 IPC SCHWÄCHEN UND OPTIMIERUNG IPC IMPLEMENTIERUNG Neue Datenstruktur n unsortierte Wakeuplisten (doppelt verkettete Listen) Füge neuen Eintrag mit Aufweckwert x in Liste x mod n ein Scheduler überprüft zu Zeitpunkt T nur Liste T mod n Definiere Aufweckwert x = aktuelle Zeit + Timeout Wenn x >> T wird der betreffende Thread in eine Winterschlafqueue gelegt IPC - Timeouts Optimierung

15 IPC SCHWÄCHEN UND OPTIMIERUNG Beispiel n = 3 IPC IMPLEMENTIERUNG THREAD A T = 535 THREAD A T = 12 THREAD A T = 24 THREAD A T = 9 THREAD A T = 535 THREAD A T = 31 THREAD A T = 13 THREAD A T = 535 THREAD A T = 14 THREAD A T = 11 THREAD A T = 5 THREAD A T = 26 Optimierung 2 Queue 1 Queue 0 Queue

16 IPC SCHWÄCHEN UND OPTIMIERUNG Beispiel n = 3 IPC IMPLEMENTIERUNG THREAD A T = 535 THREAD A T = 31 THREAD A T = 13 THREAD A T = 535 THREAD A T = 14 THREAD A T = 11 THREAD A T = 5 THREAD A T = 26 Optimierung 2 Queue 1 Queue THREAD A T = 535 THREAD A T = 12 THREAD A T = 24 THREAD A T = 9 0 Queue T = 9

17 IPC SCHWÄCHEN UND OPTIMIERUNG Analyse der Queues IPC IMPLEMENTIERUNG Optimierung Gesamtzahl aller Threads sei k Erwartete Länge einer Liste k/n Sonst überprüft Scheduler nur k/n viele Einträge pro Zyklus Einfügen und Löschen beliebiger Threads in konstanter Zeit Worst case: Genausoschlecht wie erster Vorschlag

18 IPC SCHWÄCHEN UND OPTIMIERUNG Verwaltung der Threads Der Kernel führt Buch über den Status der Threads IPC IMPLEMENTIERUNG und muss den Status zu bestimmten Zeiten ändern einfachste Implementierung Verwendung von Queues 1. Busy-Queue 2. ready-Queue 3. polling-me Queue für jeden Thread

19 IPC SCHWÄCHEN UND OPTIMIERUNG Scheduling von IPC-Befehlen Die IPC-Primitive call und reply & wait erfordern offensichtlich Arbeit durch den Scheduler: IPC IMPLEMENTIERUNG 1. Lösche den Sender-Thread von der Ready-Queue 2. Füge ihn ein in die Waiting-Queue 3. Löschen des empfangenden Threads von der Waiting Queue 4. Und Einfügen in die Readyqueue naive Implementierung

20 IPC SCHWÄCHEN UND OPTIMIERUNG Scheduling von IPC-Befehlen Die IPC-Primitive call und reply & wait erfordern offensichtlich Arbeit durch den Scheduler: IPC IMPLEMENTIERUNG naive Implementierung Sender Thread Empfänger Thread Readyqueue Waitingqueue

21 IPC SCHWÄCHEN UND OPTIMIERUNG Lazy Scheduling Es gelten jeweils nur noch folgende beide Invarianten: IPC IMPLEMENTIERUNG 1. Mindestens alle Ready-Threads bis auf den aktuellen müssen in der Readyqueue sein 2. Mindestens alle wartenden Threads müssen in der Waitingqueue sein Optimierung Nur noch alle Zeitabstände wird die Queue von falsche Einträgen gesäubert Ändere möglichst nur die Statuseintragung im TCB von wait nach ready

22 IPC SCHWÄCHEN UND OPTIMIERUNG Lazy Scheduling IPC IMPLEMENTIERUNG Nachteil: Threads können in mehreren Queues auftreten Theoretisch: Interferenz mit der k/n Optimierung von Warteschlagen Vorteil: Keine Löschoperationen mehr bei IPC Einfügen bei call und receive&wait wird nicht durchgeführt Nur das IPC Primitiv send führt zu Einfügeoperation. Optimierung

23 IPC SCHWÄCHEN UND OPTIMIERUNG Effizienz dieser Implementierung IPC IMPLEMENTIERUNG Entfernte OptimierungProzentuale Verschlechterung bei N-byte IPCs Kurze Nachrichten über Register 49% ---- Lazy Scheduling23%16%12%7%1% Reply & Wait 18%13%10%5%1% Unter einem Intel 486 mit 50 MHZ Taktung erreicht Liedke einen Wert von 5 Mikrosekunden im Vergleich zu 100 bei Mach bei Short Message IPC-Aufrufen Ergebnisse beziehen sich auf eine bestimmte Rechnerarchitektur

24 IPC SCHWÄCHEN UND OPTIMIERUNG Asymmetrisches Vertrauen Client kann vertrauen, dass Server Dienst nach Spezifikation ausführt IPC SCHWÄCHEN Server vertraut keinem Client, muss aber allen korrekt arbeitenden Clients seine Dienste anbieten Server verfügt nur über beschränkte Ressourcen Sender Prozess Client Prozess1 Client Prozess2 … Böser Client

25 IPC SCHWÄCHEN UND OPTIMIERUNG IPC SCHWÄCHEN Einfacher DOS-Angriff CLIENT: Anfrage -> SERVER (open wait)

26 IPC SCHWÄCHEN UND OPTIMIERUNG IPC SCHWÄCHEN Einfacher DOS-Angriff CLIENT: Anfrage -> SERVER (open wait) SERVER: Antwort -> CLIENT (nicht in Wartezustand)

27 IPC SCHWÄCHEN UND OPTIMIERUNG IPC SCHWÄCHEN CLIENT: Anfrage -> SERVER (open wait) SERVER: Antwort -> CLIENT (nicht in Wartezustand) SERVER blockiert, keine Annahme weiterer Anfragen Einfacher DOS-Angriff Hauptschwäche ist der synchrone Austausch

28 IPC SCHWÄCHEN UND OPTIMIERUNG Lösungsvorschläge Buffering IPC SCHWÄCHEN Multithreading Abbruch des IPC Verwendung von Timeouts

29 IPC SCHWÄCHEN UND OPTIMIERUNG Buffering Einrichtung von Buffern im Kernel IPC SCHWÄCHEN Dadurch im Grunde asynchrone Übertragung Verlagerung eines lokalen Diensteproblem auf ein globales Platzproblem Damit ist zwar nicht mehr der Server angreifbar dafür aber der Kernel

30 IPC SCHWÄCHEN UND OPTIMIERUNG Multithreading IPC SCHWÄCHEN Anfrage von Prozessen wird durch je einen Thread des Servers behandelt Keine wirkliche Lösung: Angriff durch mehr bösartige Prozesse Dadurch sogar Angriff auf den Kernel möglich (siehe TCB) Multithreading von Servern führt zu einer erhöhten Komplexität und zu langsameren Ausführungen

31 IPC SCHWÄCHEN UND OPTIMIERUNG Weiteres Vorgehen IPC SCHWÄCHEN Buffering Multithreading Komplexität auf Serverseite muss vermieden werden Keine Transformation von lokalem DOS zu globalen DOR Nicht der Server trägt Kosten zur Erkennung bösartiger Aktionen, sondern Client

32 IPC SCHWÄCHEN UND OPTIMIERUNG Weiteres Vorgehen IPC SCHWÄCHEN 2. Komplexität auf Serverseite muss vermieden werden 1. Keine Transformation von lokalem DOS zu globalen DOR 3. Nicht der Server trägt Kosten zur Erkennung bösartiger Aktionen, sondern Client

33 IPC SCHWÄCHEN UND OPTIMIERUNG Abbruch der Nachrichtenübertragung Implementiert in Kernel EROS (J. S. Shapiro) IPC SCHWÄCHEN IPC send von Server geschieht prompt, oder Abbruch Client muss also direkt in der Lage sein zu empfangen

34 IPC SCHWÄCHEN UND OPTIMIERUNG ZUSAMMENFASSUNG DOS-Angriff durch Blockieren Prompt Receive EROS EROSL4

35 IPC SCHWÄCHEN UND OPTIMIERUNG Verwendung von Timeouts Die Verwendung von Timeouts hat Nachteile Die Simulation eines solchen Systems ist sehr schwierig Debugging wird wesentlich komplizierter IPC SCHWÄCHEN Server setzt IPC-send Timeout auf 0, oder einen kleinen Wert

36 IPC SCHWÄCHEN UND OPTIMIERUNG ZUSAMMENFASSUNG DOS-Angriff durch Blockieren Timeout Prompt Receive EROS Debugging & Testprobleme EROSL4

37 IPC SCHWÄCHEN UND OPTIMIERUNG Pager Angriffe IPC SCHWÄCHEN Prompt/ Timeout läßt weitere Schwäche zu falls Pager von Client bösartig CLIENT: Adressen nicht in seinem AS -> SERVER

38 IPC SCHWÄCHEN UND OPTIMIERUNG Pager Angriffe IPC SCHWÄCHEN Prompt/ Timeout läßt weitere Schwäche zu falls Pager von Client bösartig CLIENT: Adressen nicht in seinem AS -> SERVER SERVER reagiert auf IPC -> in Warteschlange

39 IPC SCHWÄCHEN UND OPTIMIERUNG Pager Angriffe IPC SCHWÄCHEN Prompt/ Timeout läßt weitere Schwäche zu falls Pager von Client bösartig CLIENT: Adressen nicht in seinem AS -> SERVER SERVER reagiert auf IPC -> in Warteschlange KERNEL versucht Daten zu Kopieren -> Page Fault

40 IPC SCHWÄCHEN UND OPTIMIERUNG Pager Angriffe IPC SCHWÄCHEN Prompt/ Timeout läßt weitere Schwäche zu falls Pager von Client bösartig CLIENT: Adressen nicht in seinem AS -> SERVER SERVER reagiert auf IPC -> in Warteschlange KERNEL versucht Daten zu Kopieren -> Page Fault IPC an bösen PAGER, der nicht reagiert

41 IPC SCHWÄCHEN UND OPTIMIERUNG Pager Angriffe IPC SCHWÄCHEN Prompt/ Timeout läßt weitere Schwäche zu falls Pager von Client bösartig CLIENT: Adressen nicht in seinem AS -> SERVER SERVER reagiert auf IPC -> in Warteschlange KERNEL versucht Daten zu Kopieren -> Page Fault IPC an bösen PAGER, der nicht reagiert SERVER & CLIENT blockiert

42 IPC SCHWÄCHEN UND OPTIMIERUNG ZUSAMMENFASSUNG DOS-Angriff durch Blockieren Timeout Prompt Receive EROS Page fault Attacken aufrufen Page fault Attacken aufgerufen Debugging & Testprobleme Page fault Attacken EROSL4

43 IPC SCHWÄCHEN UND OPTIMIERUNG Lösung für Pager Angriff IPC SCHWÄCHEN In L4 können Pager Timeoutwerte zu Beginn der IPC festgelegt werden (erwartete Zeit um Pagefault zu handeln) EROS Lösung: IPC zwingt Client zu einem Probelauf über Adressen bevor Receive oder Send Primitiv ausgeführt wird. Treten danach während des IPC Pagefaults auf wird dieser abgebrochen Problem: Mehrere bösartige Clients können Server blockieren

44 IPC SCHWÄCHEN UND OPTIMIERUNG ZUSAMMENFASSUNG DOS-Angriff durch Blockieren Timeout Prompt Receive EROS Page fault Attacken aufrufen Page fault Attacken aufgerufen -Probelauf -IPC-Abbruch -Probelauf -IPC-Abbruch Debugging & Testprobleme Page fault Attacken Pagerfault Timeout EROSL4 Angriff durch viele bösartige Clients

45 IPC SCHWÄCHEN UND OPTIMIERUNG Dynamisch große Nachrichten empfangen IPC SCHWÄCHEN EROS Ansatz birgt neues Problem Wenn Client Daten empfangen soll, aber nicht weiß wie groß diese sind, kann er keinen Probelauf durchführen Lösung in EROS: Einführung eines vertraunswürdigen Buffer TBO (trusted object buffer), der mit Server kommuniziert Client trägt Kosten für TBO

46 IPC SCHWÄCHEN UND OPTIMIERUNG ZUSAMMENFASSUNG DOS-Angriff durch Blockieren Timeout Prompt Receive EROS Page fault Attacken aufrufen Page fault Attacken aufgerufen -Probelauf -IPC-Abbruch -Probelauf -IPC-Abbruch Problem Nachrichten Dynamischer Größe Debugging & Testprobleme Page fault Attacken Pagerfault Timeout EROSL4 Einführung von trusted buffer objects Angriff durch viele bösartige Clients

47 IPC SCHWÄCHEN UND OPTIMIERUNG ZUSAMMENFASSUNG Kurz: Mikrokernels können schnell & sicher geschrieben werden

48 IPC SCHWÄCHEN UND OPTIMIERUNG Literatur VULNERABILITIES IN SYNCHRONOUS IPC DESIGNS Jonathan S. Shapiro, Department of Computer Science John Hopkins University, Oakland, California USA 2003 IMPROVING IPC BY KERNEL DESIGN Jochen Liedke German National Research Center for Computer Science (GMD) 1993

49 IPC SCHWÄCHEN UND OPTIMIERUNG THE END DANKE!


Herunterladen ppt "IPC SCHWÄCHEN UND OPTIMIERUNG INTERPROZESS KOMMUNIKATION Effizienz und Schwächen verfasst von Eyad Alkassar Seminar Ausgewählte Komponenten von Betriebssystemen."

Ähnliche Präsentationen


Google-Anzeigen