Sûreté de fonctionnement des systèmes informatiques
Sûreté de fonctionnement des systèmes informatiques
Innocuité
Exemples de cas
Fiabilité
Confidentialité
Disponibilité/
Conception
Distribuées
Interaction
Localisées
Physiques
Sécurité-
réels observés
Juin 1980 : Fausses alertes à des attaques
✔ ✔ ✔
massives de fus ées soviétiques au NORAD
Juin 1985 - Janvier 1987 : Doses excessives de
radiothérapie (Therac -25)
✔ ✔ ✔
Août 1986 - 1987 : Le "Wily hacker" p énètre des
dizaines de centres informatiques sensibles
✔ ✔ ✔ ✔
15 Janvier 1990 : Indisponibilité totale du téléphone
✔ ✔ ✔
interurbain aux Etats -Unis , pendant 9 heures
Fé vrier 1991 : Scud raté par un Patriot à Dhahran ✔ ✔ ✔ ✔ ✔
Novembre 1992 : Ecroulement des communications
✔ ✔ ✔ ✔ ✔
du service d'ambulances de Londres
26 et 27 Juin 1993 : Refus des cartes de cr édit
dans les distributeurs de monnaie en France
✔ ✔ ✔ ✔
4 Juin 1996 : Défaillance du vol 501 d'Ariane 5 ✔ ✔ ✔
17 Juillet 1997: Mélange des adresses du ✔ ✔ ✔
domaine internet .com
13 Avril 1998 : Ecroulement du réseau de
données d'AT &T ✔ ✔ ✔ ✔
Fé vrier 2000 : Engorgement portails Web ✔ ✔ ✔ ✔
B-16
Coût de la non SdF
• Coût moyen d’indisponibilité (CA perdu dans les banques,
assurances, assurance maladie, commerce de gros, bourse,
réservations, etc.): 78000 $/h
• Coût des défaillances informatiques
— Fautes accidentelles $ France: 0,9 G € USA: 4 G $
— Malveillances $ France: 1 G € UK: 1,25 G £
• Cout de la maintenance:
— Logiciel embarqué de la navette spatiale: 100 M $ / an
• Coût des logiciels abandonnés
— Aux USA, de l’ordre de 80 G $
— Exemple: FAA AAS (contrôle aérien)
» 1983: 1 G$ - 1988: 4G$ - 1994: 7G$
» Dérapage temporel estimé en 1994 de l’ordre de 6-8 ans
B-17
Classification des fautes
FAUTES DE DEVELOPPEMENT Conception, réalisation
PHASE DE CREATION
OU D'OCCURENCE FAUTES OPERATIONNELLES En exploitation
FAUTES INTERNES Etat interne du système
FRONTIERES SYSTEME
FAUTES EXTERNES Provenant de l’environnement
FAUTES MATERIELLES Composants, liens physiques
DIMENSION
FAUTES LOGICIELLES Programmes ou données
FAUTES
CAUSE FAUTES NATURELLES Aggression, usure…
PHENOMENOLOGIQUE FAUTES DUES A L'HOMME Nobody’s perfect…
FAUTES ACCIDENTELLES OU DELIBEREES SANS MALVEILLANCE
INTENTION
FAUTES DELIBEREMENT MALVEILLANTES Bad Guys…
FAUTES PERMANENTES Non liées à des conditions
PERSISTENCE
FAUTES TEMPORAIRES Dépendantes de conditions
B-18
FAUTES FAUTES FAUTES
DE CONCEPTION PHYSIQUES D'INTERACTION
FAUTES DE DEVELOPPEMENT ! ! ! ! !
FAUTES OPERATIONELLES ! ! ! ! ! ! ! ! ! !
FAUTES INTERNES ! ! ! ! ! ! !
FAUTES EXTERNES ! ! ! ! ! ! ! !
FAUTES MATERIELLES ! ! ! ! ! ! ! ! ! !
FAUTES LOGICIELLES ! ! ! ! !
FAUTES NATURELLES ! ! ! ! !
FAUTES DUES A L'HOMME ! ! ! ! ! ! ! ! ! !
FAUTES ACCIDENTELLES OU ! ! ! ! ! ! ! ! !
DELIBEREES SANS MALVEILLANCE
FAUTES DELIBEREMENT
MALVEILLANTES ! ! ! ! ! !
FAUTES PERMANENTES ! ! ! ! ! ! ! ! !
FAUTES TEMPORAIRES ! ! ! ! ! !
DEFAULT
DEFAUT DETERIORATION VIRUS ENTREE
DEFAUT INTRUSION
LOGICIEL
LOFICEL MATERIEL PHYSIQUE & VER ERRONEE
LOGIQUE DEFAUT DE INTERFERENCE
ATTAQUE
MALIGNE PRODUCTION PHYSIQUE B-19
Les modes de défaillance
• Le système ne défaille pas toujours de la même façon
➠ modes de défaillance
DEFAILLANCES EN VALEUR
Factorielle de 3 = 975
DOMAINE
DEFAILLANCES TEMPORELLES
Déclenchement airbag 1h après choc
DEFAILLANCES CONTROLEES
Error status, exception, alarme
CONTROLABILITE
DEFAILLANCES INCONTROLEES
J’AI RIEN VU! Non détection!
DEFAILLANCES
DEFAILLANCES COHERENTES
Mode de défaillance admissible
COHERENCE
DEFAILLANCES INCOHERENTES
Mode de défaillance INadmissible
DEFAILLANCES BENIGNES
•
Pas grave!
CONSEQUENCES •
SUR ENVIRONNEMENT •
DEFAILLANCES CATASTROPHIQUES
DE GROS DEGATS!!!!! B-20
Les modes de défaillance
• Le système ne défaille pas toujours de la même façon
➠ modes de défaillance
DOMAINE DE DEFAILLANCE
Valeur Valeur et Temporisation
(temporisation temporisation (valeur
correcte) correcte)
Service Service Service en Service en
interrompu erratique avance retard
DEFAILLANCES DEFAILLANCES DEFAILLANCES DEFAILLANCES DEFAILLANCES
EN VALEUR PAR ARRET ERRATIQUES TEMPORELLES EN
AVANCE PERFORMANCE
B-21
Les modes de défaillance
• Le système ne défaille pas toujours de la même façon
➠ modes de défaillance
CONTROLABILITE DES DEFAILLANCES
Défaillances Défaillances
détectées non détectées
Service Service
correct incorrect
Service Service
selon modes selon modes
défaillance défaillance
admissibles inadmissibles
FAUSSE DEFAILLANCES DEFAILLANCES DEFAILLANCES
ALARME CONTROLEES SIGNALEES NON SIGNALEES
B-22
Systèmes à défaillance contrôlée
SYSTEMES A DEFAILLANCES CONTROLEES
DEFAILLANCES STOPPING DEFAILLANCES DEFAILLANCES
PAR ARRET FAILURE COHERENTES BENIGNES
FIGEMENT
ETAT SORTIES
SYSTEME FAIL-PASSIVE
A FIGEMENT SYSTEME A SYSTEME SUR
SYSTEM FAIL-SAFE
SUR DEFAILLANCE DEFAILLANCES EN PRESENCE DE
SYSTEM
COHERENTES DEFAILLANCE
SILENCE
(ABSENCE EVENEMENT)
SYSTEME FAIL-SILENT
A SILENCE SUR
DEFAILLANCE
SYSTEM Comment rendre un service acceptable
en dépit de l’occurrence de fautes?
SYSTEME
A ARRET SUR DEFAILLANCE
FAIL-HALT
SYSTEM
-Arrêt sur défaillance
-Défaillance contrôlée (mode dégradés)
-Sûreté en présence de défaillance
B-23
Statistiques de défaillances
• Défaillances accidentelles
— Causes Fautes physiques internes ≈10%
Fautes physiques environnementales ≈10%
Fautes d’interaction homme/système ≈20%
Fautes de conception ≈60%
Composant Système tolérant
— Fréquences
informatique les fautes
Fautes physiques permanentes ≈1 an 20-100 ans
Fautes intermittentes qq.h /qq sem. > 10 ans
— Densité de fautes de conception
» Fautes crées durant le développement: 10-300 / kLoC
» Fautes résiduelles en opération: 0,01 - 10 / kLoC
• Malveillances [Ernst &Young 1998; 1200 sociétés dans 32 pays]
— Sociétés ayant souffert d’au moins un fraude en un an: 66%
— Sociétés ayant souffert de plus de 5 fraudes en un an: 17%
» 85% de fraudes perpétrées par des employés
B-24
Les moyens
B-25
Les moyens
• Prévention des fautes
» Toutes les méthodes pour améliorer les processus de production du
logiciel et du matériel
• Tolérance aux fautes
» Mécanismes pour assurer un service correct en présence de fautes
• Elimination des fautes:
» Techniques permettant de réduire la présence des fautes
• Prévision des fautes:
» Techniques pour estimer le nombre et les conséquences de fautes
« résiduelles ».
B-26
La tolérance aux fautes
• Deux notions essentielles
— Le traitement d’erreur: éliminer l’erreur avant défaillance
détection
Traitement d’erreur
Latence
{ recouvrement
d’erreur
Faute Erreur Défaillance
Latence de faute
— Le traitement de faute: éviter la ré-activation des fautes
Traitement d’erreur + traitement de faute = tolérance aux fautes
B-27
Traitement d’erreur
• Détection,
— Identification d’un état erroné dans le système
• Diagnostic,
— Analyse permettant de déterminer les causes et les dommages
causés par l’erreur
• Recouvrement
» Recouvrement arrière:
- Ramener le système dans un état antérieur exempt de faute,obtenu
avant l’occurrence de l’erreur (notion de points de reprise)
» Recouvrement avant:
- Déterminer un nouvel état à partir duquel on sait que le système peut
fonctionner (notion de mode dégradé)
• Compensation:
— Disposer de suffisamment de redondance en dépit de l’état erroné
pour le transformer en un état exempt d’erreur (techniques de
masquage de faute, par vote majoritaire, par exemple)
B-28
Traitement d’erreur
Recouvrement arrière Recouvrement avant Compensation
Point de
reprise
Etat de
reprise
?
Nouvel Décision
État de
reprise
Service OK Service OK Service OK
B-29
Notion de modèle de faute
• Quelles sont les fautes que l’on souhaite traiter?
— Physiques, Conception, Malicieuses
— Quels sont leurs effets, c’est-à-dire les erreurs qu’elles provoquent
• Exemples vis-à-vis de fautes physiques
— Arrêt sur défaillance L’erreur a conduit a l’arrêt du composant ➠
basculement sur un composant identique correct
— Omissions L’erreur a conduit à la perte d’un message ➠
protocole de répétition ou de diffusion fiable
L’erreur a conduit à la corruption d’une valeur en
— Erreurs en valeur sortie ➠ mécanisme de compensation d’erreur
• Exemples vis-à-vis de fautes du logiciel
— Erreur de conception Faute de conception par rapport aux spécifications
“correctes” ➠ diversification
— Erreur de codage Faute de programmation ➠ diversification
— Erreur de ressources Défaut de ressource ➠ ré-exécution sur autre
support d’exécution
B-30
Techniques classiques
• Architecture duplex
crash
P S basculement P S
Fonctionnement normal Fonctionnement après basculement
• Remarques importantes sur les hypothèses:
— Les sorties du primaire P sont considérées comme correctes tant
qu’un crash n’a pas été détecté
— Si un crash est détecté, on considère que le composant P est à
silence sur défaillance, c’est-à-dire sans propagation d’erreur
— Ceci impose :
» que toute erreur interne est confinée dans P (idem S)
» un protocole de surveillance signalant à S le crash de P
B-31
Techniques classiques
• Architecture TMR (Triple Modular Redundancy)
crash
X
C1 Y
C2 Y
C3
V
Y
Fonctionnement normal
• Remarques importantes sur les hypothèses :
— Les entées sont identiques: valeurs et séquence d’entrée
— Le crash est considéré comme une absence de réponse
— Parmi les réponses fournies, la valeur majoritaire est considérée
comme le résultat correct
— Si les composants sont identiques, vote=comparaison
— Si les composants sont diversifiés, vote=algorithme de décision
B-32
Elimination des fautes
• Méthodes de test
— Identification des fautes dans le composants matériels et logiciels
— Approches
» Déterministes: choix sélectif pour couvrir un critère
» Aléatoires: tirage aléatoire des valeurs d’entrées, selon un critère
• Notion de critère :
— modèle structurel ou fonctionnel +
— éléments du modèle à activer
• Génération des vecteurs de test
— Exemple de critère: « toutes les branches »
» Cas déterministe: choix « a priori » des valeurs d’entrées qui
permettent de passer dans chaque branche
» Cas aléatoire: génération de valeurs d’entrée (e.g. branches
équiprobables) et analyse de la couverture (toutes les branches)
— Observation des sorties
» Comparaison avec une référence ➠ Notion d’Oracle de test
B-33
Techniques de vérification
Analyse statique (du code)
statique Preuve mathématique
Analyse du comportement
vérification
Exécution symbolique
dynamique
Test
• Application à la vérification du logiciel: pratiques actuelles
— Revue de code, inspections à l’aide d’outils (compilateurs,
analyseurs de code,etc.) ➠ identification d’erreur (var. non init.,
interfaces incompatibles, code mort, etc.)
— Spécification formelle + spécification formelle langage + règles
d’inférences
— Automates à états finis, réseaux de Petri, StateCharts
— Le test (en particulier du logiciel)
B-34
Test du logiciel
Structurel Fonctionnel
Boîte blanche Boîte noire
Complémentaire
t
me kpoin
mode
ges
PRIMARY
ssa
c
passive
che
I/P msg
mode updating the
object state
O/P msg CKP BACKUP(S)
O/P msg CKP À toutes les répliques: AMP
O/P msg CKP Au client et à toutes les répliques: AMP
C-40
LFR
request message
group
reply message
message copies delivery
to all correct members
ges on
active
i
me nisat
mode
LEADER
ssa
o
chr
object state
FOLLOWER(S)
Notification à toutes les répliques: AMP
O/P msg Au client et à toutes les répliques: AMP
C-41
TMR
request message
group
reply messages
• Propagate-before-validate
— Toutes les copies traitent les M1 M2 M3
messages d’entrée et produisent
un message de résultat
— Le vote à lieu à la destination
• Validate-before -propagate S2
— Toutes les copies traitent les M1
S3
messages d’entrée et produisent
un message de résultat Si Sig(M1)= S2 ou S3 alors
— Validation entre les serveurs send (M1)
» Échange de signatures Sinon
électroniques get(M2) ou leader(2)
» Notion de leader qui vote sur les send (M2)
signatures sur le NAC finsi Fail-silent NAC
» Emission d’un seul message au
client
C-42
Validation expérimentale
D Pred. T Pred.
100% T Predicate:
Protocole de réplication OK
80% (tolérance et confinement d’erreur)
60% NAC D Predicate:
"duplex"
Auto-extraction !
40% de la station injectée
NAC Std
20% !?
0%
10ms 100ms 1s 10s 100s Std Duplex
Errors tolerated,
12% but not detected
Injection Physique
(Pin-Level fault injection) 94% 85% 99%
–MESSALINE– F E D T
87 ms 1,8 s
6% 3% 1%
1) “Standard” Errors detected,
[autotest logiciel] Non significant Failure but not tolerated
experiments
2) Duplex Arch. Mean Latency and dormancy
[duplication/comparaison] C-43
Leçons
• Leçon 1
— Réplication active et connexion au monde réel
— Vote sur senseurs ou pilotage par vote d’actuateurs
— I/O sur nœud unique ➱ fail silence
— Couverture faible ➱ non disponibilité, etc.
• Leçon 2
— autotest duplex et comparaison ➱ couverture de détection 96%
— Difficulté majeure: low-level LAN controller chips
• Leçon 3
— implémentation AMP niveau 2 ➱ rapide
— implémentation AMP niveau 2 ➱ non distribution de Delta-4.
• Leçon 4
— Démonstration en vrai grandeur Software-implemented distributed FT
— Problème de performance / solutions matérielles
— Intérêt économique et flexibilité de la solution
C-44
Tolérance aux fautes du logiciel
• Redondance temporelle
— Répétition de l’exécution pour tolérer les fautes temporaires du
support d’exécution
— Exemple: exception “no more memory buffers is available at the time
of the call”.
— Deux types de répétition
» Répétition locale (fautes temporaires de ressources)
» Répétition sur autre support d’exécution pour des fautes persistantes
processing
step
checkpoints ! !
recovery re-start
point exception or execution
error status
Executive support Executive support
node 1 node 2
Time C-45
Redondance temporelle
• Détection
— mécanismes de détection d’erreur internes au composant,
conduisant à des exceptions
— assertions exécutables externes analysant la validité des résultats
produits et de leur cohérence vis-à-vis des entrées et du contexte
opérationnel.
• Ré-execution et tolérance aux fautes
— En fait, la ré-exécution s’effectue sous des conditions
opérationnelles différentes
— Ne tolère pas les fautes dures de conception
• Exemple
— Cette approche à été développée par AT&T Labs sous la forme
d’une bibliothèque de fonctions libft et d’un processus système
Unix watchd, et appliquée en particulier dans des systèmes de
télécom.
C-46
Tolérance aux fautes de conception
• Recovery blocks [Randell 1975]
— variantes sont appelées des « alternats »
— algorithme de décision ou « test d’acceptation » (acceptance test)
est appliqué séquentiellement aux résultats produits par les
alternats.
— Si le test d’acceptation déclare que les résultats sont erronés, le
second alternat est exécuté, ainsi de suite, jusqu’à épuisement des
alternats disponibles. Dans ce cas extrême, le bloc de
recouvrement est déclaré défaillant.
A1 A2 A3
Non
OK
Test d’acceptation
OK
C-47
Tolérance aux fautes de conception
• Recovery blocks [Randell 1975]
— variantes sont appelées des « alternats »
— algorithme de décision ou « test d’acceptation » (acceptance test)
est appliqué séquentiellement aux résultats produits par les
alternats.
— Si le test d’acceptation déclare que les résultats sont erronés, le
second alternat est exécuté, ainsi de suite, jusqu’à épuisement des
alternats disponibles. Dans ce cas extrême, le bloc de
recouvrement est déclaré défaillant.
A1 A2 A3
Non
OK
Test d’acceptation
OK
C-48
Tolérance aux fautes de conception
• Recovery blocks [Randell 1975]
— variantes sont appelées des « alternats »
— algorithme de décision ou « test d’acceptation » (acceptance test)
est appliqué séquentiellement aux résultats produits par les
alternats.
— Si le test d’acceptation déclare que les résultats sont erronés, le
second alternat est exécuté, ainsi de suite, jusqu’à épuisement des
alternats disponibles. Dans ce cas extrême, le bloc de
recouvrement est déclaré défaillant.
Défaillance
A1 A2 A3 ?
Non
OK
Test d’acceptation
OK
C-49
Tolérance aux fautes de conception
• N-version programming [Chen & Avizienis 1978]
— variantes sont dites des « versions »
— algorithme de décision = un vote sur les résultats produits par les
versions.
— Les algorithmes de décision effectuent, par exemple, des calculs
de médiane en rejetant les valeurs aberrantes.
A1 A2 A3
Algorithme de décision
Valeur
C-50
Tolérance aux fautes de conception
• N-self-checking programming [Laprie et al. 1990],
» au moins deux composants logiciels auto testables sont exécutés en
parallèle, chaque composant étant construit,
» soit sous la forme d’une variante et de son test d’acceptation,
» soit de deux versions avec un test de comparaison.
• Remarque
— Dans ce second cas, une seule variante peut être écrite dans le but de fournir des
résultats, l’autre effectuant la fonctions avec une précision plus faible, ou bien le calcul
inverse quand cela est possible, ou encore la vérification de résultats intermédiaires de
la variante principale (Certification Path Approach [Sullivan & Masson 1990]).
A1 A2 A1 A2
comparaison comparaison
Valeur OK sélection Valeur OK
C-51
Airbus 320
Commande 2 x ELAC ELevator and
Aileron Computer
28 V DC Thomson-CSF
68000
Mémoire Processeur E/S
3 x SEC Spoiler and
Elevator Computer
SFENA/Aérospatiale
Alimentation
80186
2 x SFCC Slats and Flaps
Computer
GEC Marconi
Alimentation 80C88 / 68000
2 x FAC Flight
Augmentation
Mémoire Processeur E/S Computer
SFENA
8086
Surveillance
C-52
Airbus 320
SFCC1
Becs et
volets SFCC2
ELAC1
Ailerons
ELAC2
SEC1
Spoilers
SEC2
SEC3
Plan horizontal
Gouvernes de
profondeur
FAC1
Gouverne
de direction FAC2
C-53
Boeing 777
Spécification
fonctionnelle
• Primary Flight Computer (PFC)
du système de commande de vol
électrique du Boeing 777 Outils et Équipe de
règles programmeurs
— Ce système comporte trois PFC
identiques dans une
configuration à vote majoritaire. Programme source
— Un PFC est basée sur
l’utilisation de trois voies
utilisant des processeurs COTS Compilateur A Compilateur B Compilateur C
diversifiés (en l’occurrence, un
AMD 29050, un Motorola 68040 Exécutable A Exécutable B Exécutable C
et un Intel 486).
— Ces trois processeurs Exécutif A Exécutif B Exécutif C
exécutent un même programme Processeur A Processeur B Processeur C
applicatif
» écrit en Ada, Exécution A Exécution B Exécution C
» compilé par trois compilateurs
Ada différents,
Comparaison
➠ programmes exécutables et Comparaison
des exécutifs (run-times Ada)
différents pour les 3 proc.
Sorties Erreur Erreur C-54
Boeing 777
Spécification
fonctionnelle
• Primary Flight Computer (PFC)
du système de commande de vol
électrique du Boeing 777 Outils et Équipe de
règles programmeurs
• En fonctionnement normal,
— l’une des voies du PFC joue le Programme source
rôle de voie de commande (une
voie différente est choisie dans
chaque PFC), Compilateur A Compilateur B Compilateur C
— les deux autres étant des voies
de surveillance. Exécutable A Exécutable B Exécutable C
Exécutif A Exécutif B Exécutif C
• En cas de désaccord,
Processeur A Processeur B Processeur C
— la voie fautive peut être
localisée et
Exécution A Exécution B Exécution C
— inhibée du fait de la présence
de deux voies de surveillance. Comparaison
Comparaison
Sorties Erreur Erreur C-55
ELEKTRA
• The Elektra Railway Signalling Spécification
fonctionnelle
Règles de sécurité
System
— Ce système est basé sur
Outils et Équipe de Équipe de Outils et
l’utilisation de deux chaînes de règles A programmeurs A programmeurs B règles B
traitement en tout point
identiques aux niveaux matériel
et exécutif Programme source Programme source
fonctionnel de contrôle
— Une des chaînes de traitement,
appelée « interlocking
processor » supporte le Compilateur A Compilateur B
traitement fonctionnel de Exécutable Exécutable de
signalisation fonctionnel contrôle
— L’autre chaîne, appelée Exécutif Exécutif
« safety bag processor », x3 x3
Processeur Processeur
exécute le traitement de
contrôle: assertions Exécution Exécution de
fonctionnelle contrôle
exécutables déduites des
règles de sécurité ferroviaires.
Comparaison
Sorties Erreur C-56
ELEKTRA
• The Elektra Railway Signalling Spécification
fonctionnelle
Règles de sécurité
System
— Toute commande élaborée par
Outils et Équipe de Équipe de Outils et
la chaîne fonctionnelle est règles A programmeurs A programmeurs B règles B
transmise vers la périphérie et
vers la chaîne de contrôle.
Programme source Programme source
— Cette dernière transmet aussi la fonctionnel de contrôle
commande vers la périphérie
après avoir vérifié la conformité
de la commande par rapport Compilateur A Compilateur B
aux règles de sécurité. Exécutable Exécutable de
fonctionnel contrôle
— L’action correspondante n’est
exécutée qu’en cas d’accord Exécutif Exécutif
entre les deux commandes x3 x3
Processeur Processeur
transmises vers la périphérie.
• En pratique, Exécution Exécution de
contrôle
fonctionnelle
— TMR Interlocking processor
— TMR Safety Bag
Comparaison
Sorties Erreur C-57
Système de contrôle – Nucléaire
• Niveau 0 ➠ application Spécification Spécification ••• Spécification
nominale niveau défense 1 niveau défense N
nominale
• Niveaux 1..N ➠hiérarchie
de défenses. Équipe de Outils et Équipe de Outils et Équipe de
Outils et
règles 0 programmeurs 0 règles 1 programmeurs 1 règles N programmeurs N
• Défense niveau k ➠
contrôle du
Source 0 Source 1 Source N
fonctionnement des
niveaux 0,…, k-1, et mise
en œuvre par une
commande simplifiée Compilateur 0 Compilateur 1 Compilateur N
mais plus fiable, voire
seulement la mise à l’état Exécutable 0 Exécutable 1 Exécutable N
sûr, en cas de défaillance
d’un niveau inférieur. Exécutif 0 Exécutif 1 Exécutif N
Processeur 0 Processeur 1 Processeur N
• Contrôle des niveaux
0,…, k-1 est en fait Exécution 1 ••• Exécution N
indirect ➠ mis en œuvre Exécution 0
Comparaison Comparaison
au moyen de la
N-1
surveillance de variables Erreur Sorties N
Sorties 0 Erreur Sorties 1
pertinentes du procédé
commandé. PROCÉDÉ Erreur
$ Cette approche constitue, en quelque sorte, une généralisation de la technique du « safety bag ». La principale
différence consiste en l’observation indirecte des sorties du niveau inférieur, au travers du procédé commandé.
C-58
Tolérance aux intrusions
• Problématique
— Garantir l’intégrité et la confidentialité de l’information
— La redondance est une entrave à la garantie de ces propriétés
L’idée
— Fragmenter l’information de façon à produire des fragments non
significatifs (non-confidentiel)
— Disperser l’information de façon redondante sur un réseau de
calculateurs
• Application
— À la messagerie: fragmenter et router les fragments par des liens
différents (fragmentation des communications de Koga)
— Aux clés: fragmenter les clés de façon à ce qu’un sous-ensemble
seulement soit nécessaire pour reconstruire une clé secrète
(notion de schémas à seuil de Shamir)
— Aux fichiers, à la gestion des autorisations, aux traitements (notion
de Fragmentation-Redondance-Dissémination)
C-59
Schéma à seuil de Shamir
• Le problème :
— stockage de clés secrètes ➠ confidentialité, disponibilité
• Une solution qui n’est est pas une!
— plusieurs zone protégées dans lesquelles on réplique la clé
$ violation d’une zone ➠ perte du secret
• L’idée des schémas à seuil:
— Stocker K sous la forme d’un ensemble de valeur Ki (appelées
images), telles que:
» S images permettent de reconstruire le secret
» S-1 images n’apportent aucune information
— Si l’on sait générer N images, avec N>S alors, N-S images peuvent
être perdues
C-60
Schéma à seuil de Shamir
• Exemple simple (S=2)
$ y = a x + b = P(x)
y4
» y0 = a x 0 + b
y3
» y1 = a x 1 + b
y
2 •••
y
1 » yn = a x n + b
y0 $ Posons a, b secrets et x1, x2,…
xn fixés
• Généralisation ➠ polynôme de
x0 x1 x2 x3 x4 degré S:
( x − xj ) mod q
∑ y ∏ ( )
1≤i≤k i1≤ j≠ i≤k ( xi − xj)
On sait générer autant de valeurs que l’on veut! P(x) =
Interpolation polynomiale de Lagrange C-61
Fragmentation-Redondance-Dissémination
Sites
Réseaux de utilisateurs
communication
.
..
...
Sites de ? ?
sécurité ?
? ?
? Sites
Sites de ? ? ... d'archivage
traitements ?
? ?
?
C-62
FRD (Fichiers)
Fragmentation Réplication Dissémination
s2drtz9t
Chiffrement nuazt8zt
adodh23e
Nommage •
•
h4sfg6g1 •
Fichier Fragments
Site utilisateur
Réseau à diffusion
Sites d'archivage
Chiffrement (F) ➠ distribution ➠ chiffrement des noms ➠ dissémination aléatoire (R copies)
C-63
Serveur de sécurité tolérant aux intrusions
AUDIT RECOUVREMENT
AUTHENTIFICATION GESTION des INFOS
SENSIBLES
AUTORISATION
SERVEUR
SITE
UTILISATEUR SERVEUR
C-64
Authentification
Vote
Site de Site de Site de
sécurité sécurité sécurité
C-65
Autorisation
Serveur de Sécurité
Site de Site de Site de
sécurité sécurité sécurité
(1) REQUETE (2) VOTE
(3) TICKET (5) TICKET
UTILISATEUR
SERVEUR
(4) AUTHENTIFIEUR
DE SESSION
Serveur Sécurisé
(6) SESSION
C-66
La tolérance aux intrusions
Un sujet d’actualité…
• Des programmes gigantesques:
Organically Assured and Survivable Information Systems (OASIS)
Defense Advanced Research Projects Agency (DARPA)
Tolérance aux fautes, tolérance aux intrusions, détection d’intrusions,etc.
• Des exemples de projets dans ce cadre
DARPA ISO Sponsored Research
2000 Project Summary
SRI,
Draper Labs,
« Dependable Intrusion Tolerance » Etc.
« Intrusion Tolerant Software Architectures »
« Intrusion Tolerant Distributed Object Systems »
« Intrusion Tolerance Using Masking, Redundancy and Dispersion »
C-67
Résumé
• Différentes techniques permettent de tolérer des fautes, en fait
l’effet de ces fautes sur le comportement du système (les erreurs)
• Fautes physiques ➠ techniques de réplication
— Hypothèses de fautes
— Couverture des hypothèses
— Notion de composant autotestable
— Techniques de réplication passive, semi-active, active
• Fautes du logiciel ➠ techniques de diversification
— Redondance temporelle (fautes transitoires de support) ➠ AT&T
— Recovery blocks
— N-Version programming ➠ Airbus 320, 330, 340, Boeing 777
— N-Self Checking programming ➠ Elektra
• Intrusions ➠ fragmentation-redondance-dissémination
C-68
Techniques de caractérisation
Techniques de base,
en particulier par injection de fautes,
Analyse de robustesse,
exemples d'outils et de résultats expérimentaux
D-1
Rappel Test de la tolérance aux fautes
• Les mécanismes de tolérance aux fautes sont à la fois
— Faillibles (fautes de conception et/ou de réalisation)
— Conçus pour traiter des entrées spécifiques: les fautes!
! leur vérification est essentielle!
• L’approche expérimentale par injection de fautes
— Simulation des fautes, ou plutôt de leurs effets, les erreurs
» physiques (bit-flip) ou du logiciel (mutation d’instruction)
— Cibles: un composant logiciel équipé de son mécanisme de TAF
» Boite blanche: visibilité structurelle (comment il est fait) et
comportementale (comment il agit/ré-agit)
» Boite noire: aucune connaissance, seules les interfaces sont visibles
— Les types d’injection:
» niveau physique(stuck-at), modèle (VHDL) ou par logiciel (SWIFI)
— Les problèmes:
» Représentativité des fautes
» Observation et analyse des résultats.
D-2
Les techniques d’injection de fautes
Rappel
système ➠ DEPEND, REACT, ...
niveau RTL ➠ ASPHALT, ... Nœuds ➠ ORCHESTRA
porte logique ➠ Zycad, Technost, ... tâche ➠ FIAT
circuit ➠ FOCUS, ... instr. ➠ FERRARI
... mém. ➠ DEF.I, DITA,
large spectre ➠ MEFISTO, SYSTÈME CIBLE MAFALDA
VERIFY(VHDL) Reg. ➠ Xception
Modèle Prototype
M Logique & injection injection
O Information en simulation en logiciel
Y
E ≈
injection
Physique
N physique
ions lourds ➠ Université Chalmers
perturbations EM ➠ TU Vienne
broches ➠ MESSALINE, Scorpion,
DEFOR, RIFLE, AFIT,...
D-3
Evaluation expérimentale
Sûreté de fonctionnement Tolérance aux fautes
(SdF) (TF)
# Impact sur mesures SdF # TF construction faillible
# Calibration des modèles # Estimation couverture TF
# Limites appr. formelles # Approche expérimentale
# Entrave événement rare # Expériences contrôlées
Injection de fautes
D-4
Les attributs de l'injection de
fautes
# Test des mécanismes de TF vis-à-vis d'entrées spécifiques : les
fautes
# Séquence de test = série d'expériences élémentaires
# Caractérisation d'une expérience
Faute Erreur Défaillance
tF Dormance tE Latence tD
Traitement Erreur/Faute approprié (Prédicat P)
Domaine d'entrée Domaine de sortie
• f ∈ F Fautes à injecter • r ∈ R Relevés et observations des
•a∈A Données d'entrée destinées prédicats caractérisant :
- les mécanismes de TF
à activer le système
- le système cible
Élaboration de mesures expérimentales : l'ensemble M D-5
Caractérisation des prédicats de
la TF
• Définition de prédicats et d'un ensemble d'états
F E D T OK
Défaillance
• Test des prédicats
Assertion de P
Faute
∅ P = faux P = vrai ∅ v0 v1
tF tP t Max P = faux P = vrai
Domaine d'observation : T
∅ P = vrai ∅ v1 v0
t Max P = vrai P = faux D-6
tF
Rôle de l’injection de fautes
VÉRIFICATION ÉVALUATION
Test de l'adéquation ... Estimation de l'efficacité
...
... de la conception et/ou mise en œuvre
des algorithmes/mécanismes de tolérance aux fautes ...
... par rapport aux hypothèses de facteur de couverture,
fautes dormance faute, latence erreur, ...
Élimination des fautes Prévision des fautes
(déficiences) de la TF (mesures de la SdF)
D-7
Elimination des fautes dans les MTF
Finj
Hpre
Hpost
Déficience Couverture Déficience
Couv. hyp. Nominale Fausse
alarme ?
[attendu?]
“Bonus” de Comport.
Déficience nominal
couverture couverture
Tests Tests
avec injection sans injection
de fautes de fautes
D-8
Distribution temporelle de la
couverture
Faute Succès
Traitement
Erreur/Faute
Échec 2ème Faute
Défaillance Défaillance
100%
Couverture C ≈ C(T) < C(∞)
C(t) facteur de
couverture
asymptotique
[ ] temps de
D-9
Domaine d'observation latence
E[TMTF ]
tf T
Estimation de la couverture
tf tp t max
t Expériences ≈
0 P T Épreuves de Bernouilli
F
n 0 d
X G MTFs y (tP, G)= événements
Exp. 1 significatifs
A
Var. aléatoire TP :
instant d’assertion
(tP ≤ T)
n d du prédicat P
n1 G1 d1 ➢ Distribution de la couverture :
n2
G2
d2 n
1 N(t)
Cˆ 1(t,G) = n ∑ y(t, Gi) = n
•
•
•
ni
Gi di
i=1
• ➢ Valeur asymptotique (facteur de couverture) :
•
• d
N(T)
GM C(∞,G) = C(G) ≈ Ĉ1(T,G) = =
nD-10
nM dM n
Influence du facteur de couverture
1ère défaillance (couverte)
2 unités 1 unité
C1 actives active
E S
réparation
2ème défaillance
C2
1ère défaillance
(non couverte) Défaillance
système
104
MTTFSyst.
3
MTTFComp. 10 c=1
c = .999
c = .995
10 2
c = .99
10
1 c = .95 MTTRComp.
c = .9 MTTFComp.
1 D-11
10-4 10-3 10-2
Evaluation de la robustesse
D-12
Architecture des systèmes
Objets d’application
Interagissant par
messages
Intergiciel (e.g. CORBA)
Intergiciel supportant la distribution
transparente des objets
Système opératoire Système opératoire
(e.g. POSIX)
Micro-noyau temps-réel Micro-noyau
Temps-réel
D-13
Intergiciels
Evaluation de la robustesse des Intergiciels
par injection de fautes
D-14
Intergiciel
• Injection avant encapsulation par TCP.
➣ Simulation de la proportion de paquets erronés délivrés par TCP
D-15
Comparaison d’intergiciels CORBA
Percentage per SUB
Non Reported Reported Failure
Failure (CORBA Exceptiion raised)
(No
diagnosis)
Bit flip dans les requêtes IIOP
D-16
Système opératoire
Evaluation de la robustesse des exécutifs POSIX
Avec Ballista
D-17
Carnegie Mellon
University, USA BALLISTA
• Objectif
— Test automatique des fonctions d’un système opératoire (API)
— La cible est l’ensemble des appels système invoqués par les
applications
Comportement Espace Espace réponse
attendu d’entrée
Correct Entrées Opération robuste
valides
posix
UNIX Défaillance
Indéfini répétable
Entrées
invalides Défaillance
Incorrect Non répétable
➠ erreur code
Ballista effectue l’injection de faute au niveau API en
utilisant un combinaison de paramètres valides et invalides
D-18
L’échelle CRASH
• Réponses incorrectes regroupées selon 5 niveaux
— C - Catastrophic: la défaillance n’est pas confinée à une seule
tâche (i.e., l’appel à une fonction de l’ OS a causé le crash ou le
hang d’une autre tâche ou du système)
— R - Restart: la tâche est bloquée et doit être re-démarrée
— A - Abort: terminaison anormale de tâche (e.g., segmentation
violation)
— S - Silent: la tâche termine sans signaler d’erreur (e.g., un appel à
openfile avec un nom de fichier NULL devrait retourner une erreur)
— H - Hindering: la tâche renvoie un code d’erreur incorrect
D-19
Expériences
Tests appliqué à 175-233 des appels POSIX sur chaque OS
• Exemples de paramètres invalides
— Type integer et descripteurs de fichier :
» not in range,0,1,-1,+maxint, -maxint
— Type pointer :
» null, -1, hors zone d’adressage de buffer mémoire
— Type string :
» large (64K), format incorrect (filenames, modes, printf)
• Résultats
— Comparaison sur l’échelle C-R-A-S-H
— Exemples de situations surprenantes :
» mmap sur HP-UX (dirty parameters) --> system panic
» setpgid sur LynxOS (parameters combination) --> system crash
— Seulement entre 37% et 58% des cas de test n’entraînent pas de
défaillance
D-20
Système opératoires POSIX
15 « (C)OTS » OSs
[Koopman & DeVale 99 (FTCS-29)]
AIX
AIX
FreeBSD
FreeBSD
HPUX
HP-UX 9.05
B.9.05
Abort
Abort %
HP-UXPUX 10.20
B.10.20
Silent
Silent %
Irix5.3
Irix 5.3 Restart
Restart %
Irix6.2
Irix 6.2 Catastrophic
Catastrophic
Linux
Linux
LynxOS
Lynx
NetBSD
NetBSD
OSF-13.2
OSF-1 3.2
OSF-1
OSF-14.0
4.0 9
QNX
QNX4.22
4.22
QNX
QNX4.24
4.24
SunOS
unOS4.13
4.13
SunOS5.5
SunOS 5.5
00% 10
10% 20
20% 30
30% 40
40% 50
50%
Normalized failure rate (%)
Paramètre invalide dans les appels systèmes POSIX D-21
Micro-noyaux temps-réel
Evaluation de la robustesse de micro-noyaux temps-réel
Avec Mafalda
D-22
Principe
Microkernel
Assessment
Detection by Fault injection Functional models
Executables assertions
Propagation
Failures
AnaLysis Wrappers
Reflexive
Execution traces implementation
Design Aid
MAFALDA
D-23
Description-1
Machines cibles
Machine contrôleur
Wp1 Wp2 Wp3
Campaign_FD controler
Workload_FD metakernel
Wrapping Injection Interception
Graph Exp. results Log. files Internal
Reflection COTS Function
mgr. Microkernel Call
Pilote de toutes les étapes:
1) Génération Oracle
Tableur 2*) Série d’expériences
3) Analyse
Information de
trace pour analyse
Modes de
a posteriori
défaillance D-24
Description-2
Machines cibles
Machine contrôleur
Wp1 Wp2 Wp3
Campaign_FD controler
Workload_FD metakernel
Wrapping Injection Interception
Graph Exp. results Log. files Internal
Reflection COTS Function
mgr. Microkernel Call
Vérification des
Interception
assertions exécutables Bit-flip: des system calls,
parameters, de leurs paramèters,
segments code et de quelques
Introspection
& data fonctions internes
Intercession D-25
Analyse des modes de défaillance
Evaluation Observation
• Robustesse de l’interface • Comportement d’un module
• Mécanismes de détection • Propagation inter-module
Cibles de l’injection Résultats
• Appels système • Statistiques
• Composants noyau • Analyse de trace a posteriori
Modèle de faute Workload
...
SYN COM MEM
• Corruption données d’entrée
Application
• Corruption du micronoyau Fault
(segments code & data) microkernel interface
propagation
Type de faute ... Error
SYN COM MEM
• Bit-flip Fault
• Aléatoire Microkernel components
D-26
Comportement en présence de fautes
Corruption
externe ! Défaillance Application
(Application) (valeur et ordonnancement)
! Application Hang
Application / middleware Propagation
API
Microkernel
Erreur
! Blocage noyau
Corruption
interne ! Signal (détection)
Propagation " Error Status
Erreur " Exceptions
µkCi µkCj
D-27
Caractérisation de micronoyaux temps-réels
Micro-noyaux Chorus and LynxOS
Chorus
LynxOS
45
40
35
30
% 25
20
15
10
5
0 Appli. Appli. Kernel Exception Error No Obs
Failure Hang Hang Status MAFALDA
Bit flips dans les segments de code du noyau
D-28
Exemple de mesures
D-29
Catégories d’observation comportementale
FAILURE
9%
Non Significant
Experiments APPFAIL
9,0% APPHANG
28.5% NO OBS.
6,0%
28,5%
SYSHANG
1,4%
HANG
3010 KDB
Exp. 13,9% 21.3%
ERROR
STATUS
3,0%
EXCEPTION
38,1%
DETECTION
41.1%
D-30
Kernel
Distribution d’erreur code
FAILURE
9%
Non sign.
28.5% HANG
3010 21.3%
exp.
DETECTION
41.1%
FAILURE FAILURE
2.4% SYNCHRONISATION
HANG 3.6% HANG
Non sign. 7% 10.3%
Non sign.
33% 31.3%
2924 2970
exp. exp.
DETECTION
57.7% DETECTION
55%
MEMORY COMMUNICATION
D-31
Kernel
Propagation d’erreur code
84,2% AF Application Failure
COM 0% EXC Exception
63.3 % 15,8% ES Error Status
(30/3010) SYN
36.7 % 100%AF
MEM 0% EXC
0% ES
8,9% AF (26/2970)
COM 77,2%EXC 57.7 % COM
13,9%ES
32,5%AF 100%AF
SYN 61,3%EXC SYN 0% EXC 43.3 %
6,2% ES 55,8 % 0% ES
100%AF
MEM MEM 0% EXC
44,2 %
(181/2924) 0% ES
D-32
Kernel
Latence des exceptions code
40 100
0 %
80
Cumulative Distr.
30
# EXceptions
%
0
60
20 %
0 40
%
10
0 20
%
0 0
0 1 2 3 4 5 6 7 8 9 1 %
0 >1
microseconds
0
D-33
MAFALDA in action
D-34
The Oracle
D-35
Fault Injection
D-36
Résultats
D-37
Synthèse (1)
• Définition de la charge applicative et Oracle
— Option 1: charge applicative indépendante d’une application
» Principes
- Activation de toutes les fonctions
- Séparation / partitionnement pour détecter la propagation d’erreur
- Conçu pour pouvoir obtenir un Oracle
» Intérêt
- Identifier des fautes de conception/programmation
- Identification de comportements/modules faibles
» Inconvénient
- Ne reflète pas le comportement / profil typique d’une application
— Option 2:
» Définition d’un profil d’application (application elle-même?)
» Définition de l’Oracle?
D-38
Synthèse (2)
• Injection de fautes
— Principes
» Sélection aléatoire du bit inversé (bit-flip)
— Injecteurs
» Noyau
- Utilisation des moyens de debug des processeurs modernes
- Octet aléatoire et sélection bit
- Optimisation:
! Frontière des composants
! Flot de contrôle du noyau
» Paramètres
- Interception des appels noyau (librairies & trap)
- Octet aléatoire et sélection bit
— Sélection pré-définie d’adresses, de valeurs, de différentes
combinaisons possibles
D-39
Synthèse (3)
• Assertions et wrappers de confinement
— Formalisation des comportements corrects attendus
— Implémentation: vérification en-ligne
» Dérivation d’assertions exécutables
» Dérivation de AFSM (Abstract Finite State Machine)
— Efficacité
» Précision du modèle
» Type de formalisme
— Performance
» Compromis entre modélisation et surcharge temporelle
— Expressions en logique temporelle interprétées par un Runtime
checker
-> MAFALDA-RT
D-40
Synthèse (4)
• Analyse de l’information brute observée
— Les résultats statistiques procurent des informations significatives
pour la sélection d’un candidat
— L’information détaillée permet:
» Identification des fautes de conception / programmation
» Compréhension du comportement réel en présence de fautes :
- Pourquoi une erreur conduit à la défaillance ?
- Pourquoi a-t-on observé un executive hang?
- Pourquoi l’erreur s’est-elle propagée d’un composant à un autre?
— Scripts permettant de filtrer les information brutes obtenir par les
mécanismes de traçage
— Les utilisateurs peuvent eux-même définir les modes de
défaillance.
D-41
Synthèse (5-6)
• Interprétation des résultats
— Une campagne cible :
» Une seule instance d’un micro-noyau temps-réel
» Un certain profil d’activation
— Variabilité des résultats
» Version Stand Alone vs. version Posix
» Application réactive vs. Application static
• Evolution des systèmes cibles
— Nouvelle instance -> Nouvelle campagne ?
— Est-ce que la nouvelle instance est compatible avec la solution
architecturale ?
D-42
Mafalda-RT
Limitation of
temporal intrusiveness Microkernel Formal spécification
(temporal logic)
Detection
Aut. translation
Propagation Assessment
On-line Checking
Failures by Fault injection Wrapping
(value & time)
mechanisms
Execution traces
AnaLysis • detection
Temporal • recovery
characteristics Reflective
of kernel
Design Aid implementation
(e.g., switching time)
Explicit analysis
Analysis of scheduling of temporal
of captured events overhead
for Real-Time systems D-43
Empaquettage
Notion de wrappers
D-44
Principe du wrapping
wrapper
Microkernel
Input Output
module
— Mécanismes d’encapsulation (wrappers), par classes fonctionnelles
— Modélisation du comportement de fonctions/services de base d’un
micro-noyau temps-réel en l’ absence de faute
➠ notion d’assertion exécutables, de prédicat vérifié en-ligne
» Observation de données et événements internes
» Contrôle de certaines actions du noyau
— Nécessité de mécanismes d’observation et de contrôle étendus ➠
notion d’implémentation réflexive (instrumentation)
— Mesure de l’efficacité des wrappers par injection de faute D-45
Exemple de wrapper fonctionnel: Synchronization
Sémaphores: Soit #P(s) et #V(s) le nombre total d’appels à
P(s) et V(S)
- integer [Link]
- process queue [Link] [Link]= init_value - #P(s) + #V(s)
Opérations: Soit #Suspended (s)
le nombre de threads dans [Link]
- Init: I (s)
- Get: P(s) #Suspended (s) = max(0, -[Link])
- Release:V (s)
Valeur init init_value
P(s) V(s)
Un prédicat peut être défini comme suit:
Wrapper
[[Link]= init_value - #P(s) + #V(s)] ξ
Micronoyau SYN [#Suspended(s) = max(0, -[Link]) ]
D-46
Exemple de wrapper comportemental: Scheduling
CREATE(Ready)
Stopped Ready to Run Running
CREATE(Stopped) START ()
STOP ()
DELAY(NoDelay)
SETPRIORITY()
SEMV() SEMP()
Internal preemption DELAY(TimeDelay)
Time-Out RECEIVE()
Event-Message
Waiting
Post-condition associée
à une transition correcte
Politique préemptif FIFO
After SEMV(S) :
t ∉ W(s) ∧ P_Sched (•) =
t∈ R∧ La tâche en cours est toujours la première
P_Sched (•) de celles de plus haute priorité dans la file
ready_to_run
D-47
Impact de l’encapsulation
~ 3000 expériences
Module de SYNCHRONISATION
100%
87%
Application failure
80%
External errors Internal errors
60%
Intérêt….
40%
• empêche la corruption de paramètres
• réduit le nb d’erreurs non-détectées et leur propagation
20%
9%
2.2%
0% 0.5%
0%
Standard SYN Wrapper SYN & SCH
Wrappers
D-48
Impact de l’encapsulation
Efficacité des wrappers
~ 3000 expériences
• tâches non réveillées
• violation de règle de préemption
• violation de règle d’élection
Module de SCHEDULING • manipulation incorrecte de files
25%
23%
20% Standard module Wrapped module
Cause des défaillances résiduelles 15%
15%
• mauvaise priorité
• non-capture d’événement
• thread hang
10%
• flot d’exécution incorrect
7%
5%
5% 4%
2% 3%
1%
0%
Application Application System hang Total
failure hang
D-49
Etalonnage de la SdF
Dependability
Assessment
≈ Dependability
Benchmarking
Performance
Benchmarking
Desired Properties
Agreement/Acceptance
Usefulness
Fairness
Usability
Portability
etc. D-50
Cadre conceptuel
Analyse
B
A
Modélisation Mesures de la
SdF
Fautes Système
Charge cible Mesures expérimentales
Expérimentation
DBench
Dependability Benchmarking
IST 2000 25425 D-51
[Link]
Résumé des techniques de base
Propag. Φ-device level ➠ RTL
-> Fautes physiques Simulation
Analyse
VHDL
Paramètre Bit-flip ds
-> Fautes du logiciel Bit-flip ds
d’appel Paramètre
paramètre invalide Fonct. Int.
(OS, micronoyau)
Fautes ds
Drivers
-> Fautes du logiciel Mutation Mutation
Bas-niveau haut-niveau
(Niveau application)
-> Fautes d’opérateur & Script Fautes
réelles
et d’administrateur d’émulation (field data)
DBench
Dependability Benchmarking D-52
Sûreté de fonctionnement
Résumé et conclusion
Jean-Charles Fabre
Méthodes et techniques permettant de considérer les fautes
comme des événements naturels et prévisibles!
Tel: 05 61 33 62 36 - Fax: 05 61 33 64 11 - E-mail: fabre@[Link]
E-1
Informatique sûre de fonctionnement
• Tolérance aux fautes : «zéro défaut » « zéro défaillance »
• Émergence d’autres classes de fautes :
— de Conception
— Interactions Homme-Système
— Malveillances
• Compromis entre [coût + fonctionnalité]
et sûreté de fonctionnement
— Hiérarchie de la tolérance aux fautes + confinement des erreurs
— Équilibre matériel/logiciel
— Transparence
— Généricité et réutilisation (composants “OTS”)
• Évaluation analytique & expérimentale du comportement
en présence de fautes “Benchmarking” de la SdF
E-2
Synthèse
Hypothèses et modèle de faute
Composant autotestable
Techniques de réplication
Diversification
Mécanisme de TAF
Modèle, Prototype Type de Fautes
Outillage de caractérisation Mesures (couverture,
modes de défaillance)E-3
Sûreté de fonctionnement
des systèmes informatiques
industriels
Jean-Charles Fabre
Méthodes et techniques permettant de considérer les fautes
comme des événements naturels et prévisibles!
Tel: 05 61 33 62 36 - Fax: 05 61 33 64 11 - E-mail: fabre@[Link]
E-4