14
Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von 08.04. 02 Pessimistische Fehlerinjektion für automatisch erzeugte virtuelle Duplexsysteme Markus Jochim Universität Essen

Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

Embed Size (px)

Citation preview

Page 1: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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

Page 2: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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

Page 3: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

3

Markus JochimUniversität Essen, Institut für InformatikVerlässlichkeit von Rechensystemen

08.04.02

DIVERSI-ToolDIVERSI-Tool

Page 4: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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

Page 5: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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

Page 6: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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.

Page 7: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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

Page 8: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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

Page 9: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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 !!!

Page 10: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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

Page 11: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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 !!!

Page 12: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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%

Page 13: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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!

Page 14: Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen 08.04.02 Pessimistische Fehlerinjektion für automatisch erzeugte

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%