Markus Jochim Universität Essen, Institut für Informatik Verlässlichkeit von Rechensystemen...

Preview:

Citation preview

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%

Recommended