markus jochim universität essen, institut für informatik verlässlichkeit von rechensystemen...
Post on 06-Apr-2015
107 Views
Preview:
TRANSCRIPT
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
Pessimistische Fehlerinjektion für automatisch erzeugte virtuelle
Duplexsysteme
Markus Jochim
Universität Essen
2
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
Virtuelles Duplexsystem (VDS) / DiversitätVirtuelles Duplexsystem (VDS) / Diversität
Source A,©2002 Schmidt
for (i=1; i<10; i++){ ... }
Compiler A
Source B,©2002 Müller
while (i++ <10){...}
Compiler B
ProgrammB
Eingabe
Ausgabe
Prozessor
VDS:1) Programm A2) Programm B3) Ergebnisvergleich
Problem:Identische fehlerhafte Ausgabewerte!
Fehler-injektor
ProgrammA
3
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
DIVERSI-ToolDIVERSI-Tool
4
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
DIVERSI-ToolDIVERSI-Tool
Eingabe:• Assembler Source (P0, P0)• Eingabewerte für P0• Fehlerspezifikation (FAIL)
Veränderungsregelauf VDS: (P0, Pi)
anwenden
Auswahlvon Veränderungs-
regel und VDS
Fehler inVDS: (P0, Pi+1)
injizieren
ErgebnisDatenbank
Ausgabe:• Erfolgreichstes VDS• erzielte Fehlererfassung
5
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
FehlerinjektionFehlerinjektion
Führe für jedes erzeugte VDS alle Injektions-Experimente für alle Eingabewerte aus.
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
Pessimistische Fehlerinjektion:• Beschleunigung der FI-Experimente• Konservative Bewertungsergebnisse
6
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
Fehlerspezifikation (FAIL)Fehlerspezifikation (FAIL)
Stuck-at-Fehlerin Register
Prozessor-Statuswort
Speicher-fehler
EndAllEndAll
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
EndAllEndAll
EndallEndall
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
• Insgesamt 49 Fehlerarten sind spezifiziert.• Neue Fehlerarten mittels FAIL spezifizierbar.
7
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
Harte Fehler / Weiche FehlerHarte Fehler / Weiche Fehler
• Abstürze• Timeouts• Falsche Ausgabeformat
• Fehlerhafte Ausgaben im richtigem Format
• Geringfügige Verzögerungen• Keine Fehlerwirkung
zu hart
zu weich
balanciert
8
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
Pessimistische FehlerPessimistische 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
MP
MP
MP
MP
P0 P0
Markierungspaare !
Versuche mit Markierungspunkten statt Markierungs-paaren waren erfolglos!
MP 1
MP 2
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
MP
MP 1
VDS 1
MP
MPMP 2
VDS 2
Inst. 1‘Inst. 1‘‘
Inst. 2
Inst. 3‘Inst. 3‘‘Inst. 3‘‘‘
Inst. 4
Inst. 5
Inst. 6‘Inst. 6‘‘
MP
MP
MP 3
MP 2
MP
Inst. 1
Inst. 2‘Inst. 2‘‘
Inst. 3
Inst. 4‘Inst. 4‘‘Inst. 4‘‘‘Inst. 4‘‘‘‘
Inst. 5
Inst. 6
MP 1
MP 3
DIVERSI
Markierungspaare über„VDS-Generationen“ hinweg pflegen !!!
10
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
Syntax-BeispielSyntax-Beispiel
Pair P1: (4*3m, 4*6m, 5*12m)Pair P2: (30*1m, 2*2) force "*esp*"
P1: <Beliebige FAIL-Anweisungsblöcke>
P2:<Beliebige FAIL-Anweisungsblöcke>
P_off
#-------------------------------# Fehler Nr. 128-151## Nr. 128-149:# MP-Forderung: 30 * 1M# MP-Realisierung: 22 * 1M (Reduziert!)## Nr. 150-151:# MP-Forderung: 2 * 2 M# MP-Realisierung: 2 * 2 M
Stuck-at 0 bit 0 register %ebx
FAIL-Spezifikation
Reduktion derAnforderungen
11
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
F-Typ Standard Pessimistisch
1 0 / 370 160 / 9250
2 0 / 360 90 / 4320
3 0 / 110 112 / 2200
4 0 / 110 66 / 2750
5 0 / 370 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 0 / 110 63 / 2750
5 0 / 370 64 / 9250
6 0 / 130 228 / 2600
VDS: „CRC“ VDS: „Hanoi“
Ergebnisse (absolut)Ergebnisse (absolut)
160 / 9250 = 160 von 9250 Injektionsläufe überlisteten das VDS.Legende:
• Experimente mit 6 verschiedenen Fehlerarten der Kategorie „zu hart“.• Zwei verschiedene VDSe. • Keine Diversität !!!
12
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
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 0,00% 2,69% 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 0,00% 2,69% 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“
Ergebnisse (relativ)Ergebnisse (relativ)
Pexp: 1,73% (= Anteil nicht aufgedeckter Fehler)Legende: 1,51% 1,73% 1,97%
Pmin: 1,51% Pmax: 1,97%
Falls Preal = 1,51% oder weniger: P (Pexp = 1,73%) 5%
13
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
ZusammenfassungZusammenfassung
Resümee: • 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
Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen
08.04.02
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 0,00% 2,69% 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 0,00% 2,69% 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“
Ergebnisse (relativ)Ergebnisse (relativ)
Pexp: 1,73% (=Anteil nicht aufgedeckter Fehler)Legende: 1,51% 1,73% 1,97%
Pmin: 1,51% Pmax: 1,97%
top related