Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Markus Jochim Universität Essen

Ähnliche Präsentationen


Präsentation zum Thema: "Markus Jochim Universität Essen"—  Präsentation transkript:

1 Markus Jochim Universität Essen
Pessimistische Fehlerinjektion für automatisch erzeugte virtuelle Duplexsysteme Markus Jochim Universität Essen

2 Virtuelles Duplexsystem (VDS) / Diversität
Compiler A Compiler B Eingabe Source A, ©2002 Schmidt for (i=1; i<10; i++) { ... } Source B, ©2002 Müller while (i++ <10) {...} Programm A Programm B Folie vom Zentrum ausgehend erläutern. Ausgabe VDS: 1) Programm A 2) Programm B 3) Ergebnisvergleich Problem: Identische fehlerhafte Ausgabewerte! Fehler- injektor Prozessor

3 DIVERSI-Tool

4 DIVERSI-Tool Veränderungsregel auf VDS: (P0, Pi) anwenden Auswahl
Modifizierer Veränderungsregel auf VDS: (P0, Pi) anwenden Eingabe: Assembler Source (P0, P0) Eingabewerte für P0 Fehlerspezifikation (FAIL) Ergebnis Datenbank Optimierer Auswahl von Veränderungs- regel und VDS Fehler Injektor Fehler in VDS: (P0, Pi+1) injizieren Ausgabe: Erfolgreichstes VDS erzielte Fehlererfassung

5 "Fehlerinjektion muß sehr schnell sein !"
Viele “jedes“ and “alle“ bedeutet: "Fehlerinjektion muß sehr schnell sein !" Host & Target auf selbem System Einfügen von FI-Code in VDS Manipulation ausführbarer VDSe “Energiespar-Modus“ Pessimistische Fehlerinjektion Führe für jedes erzeugte VDS alle Injektions-Experimente für alle Eingabewerte aus. Pessimistische Fehlerinjektion: Beschleunigung der FI-Experimente Konservative Bewertungsergebnisse

6 Fehlerspezifikation (FAIL)
EndAll All myVar3 substitute by {Carry,Zero,Sign,Overflow} All myVar4 substitute by {cleared, inverted, set} All myVar1 substitute by {%eax,%ecx,%edx,%edi,%ebp} All myVar2 substitute by {0,1,2,6,7,8,9,15,16,22,23,28,31} Stuck-at dice{0,1} Bit myVar2 Register myVar1 Endall All myVar5 substitute by {text,rodata} All myVar6 substitute by {1,3,5,9,20,30,40,50,60,75,95,100,200,300} FlagProblemAfter dice {addl, subl, cmpl} Instruction myVar3 is myVar4 MemoryError randomly inject myVar5 Errors into myVar6 Segment Stuck-at-Fehler in Register Prozessor- Statuswort Speicher- fehler Insgesamt 49 Fehlerarten sind spezifiziert. Neue Fehlerarten mittels FAIL spezifizierbar.

7 Harte Fehler / Weiche Fehler
Abstürze Timeouts Falsche Ausgabeformat zu hart Fehlerhafte Ausgaben im richtigem Format balanciert Geringfügige Verzögerungen Keine Fehlerwirkung zu weich

8 Pessimistische Fehler
Idee: Zu weiche Fehler verschärfen. Zu harte Fehler abschwächen. Mehr balancierte Fehler = Pessimistische Injektions-ergebnisse Wie kann man Fehler abschwächen? Lösung: Nicht bei jeder Gelegenheit injizieren! MOVL ADDL XORL PUSHFL JMP ASL MOVL ADDL XORL PUSHFL JMP ASL Markierungspaare ! MP 1 MP MP Versuche mit Markierungspunkten statt Markierungs- paaren waren erfolglos! MP 2 MP MP P0 P0

9 VDS 1 VDS 2 DIVERSI Markierungspaare über „VDS-Generationen“
Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6 Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6 MP MP MP 1 Markierungspaare über „VDS-Generationen“ hinweg pflegen !!! MP MP MP 2 MP MP MP 3 VDS 1 Inst. 1‘ Inst. 1‘‘ Inst. 1 MP Inst. 2‘ Inst. 2‘‘ Inst. 2 MP 1 Inst. 3‘ Inst. 3‘‘ Inst. 3‘‘‘ Inst. 3 MP 2 DIVERSI Inst. 4‘ Inst. 4‘‘ Inst. 4‘‘‘ Inst. 4‘‘‘‘ MP Inst. 4 MP 3 MP Inst. 5 Inst. 5 Inst. 6‘ Inst. 6‘‘ Inst. 6 VDS 2

10 Syntax-Beispiel Pair P1: (4*3m, 4*6m, 5*12m)
Pair P2: (30*1m, 2*2) force "*esp*" P1: <Beliebige FAIL-Anweisungsblöcke> P2: P_off FAIL-Spezifikation # # Fehler Nr # # Nr : # MP-Forderung: * 1M # MP-Realisierung: 22 * 1M (Reduziert!) # Nr : # MP-Forderung: 2 * 2 M # MP-Realisierung: 2 * 2 M Stuck-at 0 bit 0 register %ebx Reduktion der Anforderungen

11 Ergebnisse (absolut) Experimente mit 6 verschiedenen Fehlerarten der Kategorie „zu hart“. Zwei verschiedene VDSe. Keine Diversität !!! F-Typ Standard Pessimistisch 1 0 / 370 160 / 9250 2 0 / 360 90 / 4320 3 0 / 110 112 / 2200 4 66 / 2750 5 70 / 9250 6 0 / 130 129 / 3250 F-Typ Standard Pessimistisch 1 0 / 370 263 / 9250 2 0 / 360 132 / 3120 3 0 / 110 80 / 1650 4 63 / 2750 5 64 / 9250 6 0 / 130 228 / 2600 VDS: „CRC“ VDS: „Hanoi“ 160 / 9250 Legende: = 160 von 9250 Injektionsläufe überlisteten das VDS.

12 Ergebnisse (relativ) VDS: „CRC“ VDS: „Hanoi“
F-Typ Standard Pessimistisch 1 0,00% 0,81% 1,51% 1,73% 1,97% 2 0,00% 0,83% 1,74% 2,08% 2,48% 3 0,00% 2,69% 4,34% 5,09% 5,93% 4 1,94% 2,40% 2,94% 5 0,00% 0,81% 0,61% 0,76% 0,92% 6 0,00% 2,28% 3,42% 3,97% 4,58% F-Typ Standard Pessimistisch 1 0,00% 0,81% 2,56% 2,84% 3,14% 2 0,00% 0,83% 3,56% 4,23% 4,87% 3 0,00% 2,69% 4,01% 4,85% 5,81% 4 1,84% 2,29% 2,82% 5 0,00% 0,81% 0,56% 0,69% 0,85% 6 0,00% 2,28% 7,87% 8,77% 9,74% VDS: „CRC“ VDS: „Hanoi“ Pexp: 1,73% (= Anteil nicht aufgedeckter Fehler) 1,51% 1,73% 1,97% Legende: Pmin: 1,51% Pmax: 1,97% Falls Preal = 1,51% oder weniger: P (Pexp = 1,73%)  5%

13 Zusammenfassung Resümee: Weitere Ergebnisse:
Pessimistische Fehlerinjektion ist möglich! Anwendungsfall: VDS Anwendbarkeit für verschiedene Diversitätstechniken denkbar Anwendbar um: 1) Injektionsläufe zu beschleunigen! 2) Konservative Ergebnisse zu erzielen. Weitere Ergebnisse: Pessimistische Fehler bieten DIVERSI Widerstand! Bereits wirksame Fehler konnten gefährlicher gestaltet werden!

14 Ergebnisse (relativ) VDS: „CRC“ VDS: „Hanoi“
F-Typ Standard Pessimistisch 1 0,00% 0,81% 1,51% 1,73% 1,97% 2 0,00% 0,83% 1,74% 2,08% 2,48% 3 0,00% 2,69% 4,34% 5,09% 5,93% 4 1,94% 2,40% 2,94% 5 0,00% 0,81% 0,61% 0,76% 0,92% 6 0,00% 2,28% 3,42% 3,97% 4,58% F-Typ Standard Pessimistisch 1 0,00% 0,81% 2,56% 2,84% 3,14% 2 0,00% 0,83% 3,56% 4,23% 4,87% 3 0,00% 2,69% 4,01% 4,85% 5,81% 4 1,84% 2,29% 2,82% 5 0,00% 0,81% 0,56% 0,69% 0,85% 6 0,00% 2,28% 7,87% 8,77% 9,74% VDS: „CRC“ VDS: „Hanoi“ Pexp: 1,73% (=Anteil nicht aufgedeckter Fehler) 1,51% 1,73% 1,97% Legende: Pmin: 1,51% Pmax: 1,97%


Herunterladen ppt "Markus Jochim Universität Essen"

Ähnliche Präsentationen


Google-Anzeigen