95
Problèmes de sécurité avec le logiciel Novembre 2007

Problèmes de sécurité avec le logiciel

  • Upload
    bella

  • View
    38

  • Download
    2

Embed Size (px)

DESCRIPTION

Problèmes de sécurité avec le logiciel. Novembre 2007. Sécurité informatique. L’utilisation de microcontrôleurs (ou DSP), comme tout autre équipements programmés, introduit un risque qu’il est difficile de quantifier. - PowerPoint PPT Presentation

Citation preview

Page 1: Problèmes de sécurité avec le logiciel

Problèmes de sécurité avec le logiciel

Novembre 2007

Page 2: Problèmes de sécurité avec le logiciel

Sécurité informatique

L’utilisation de microcontrôleurs (ou DSP), comme tout autre équipements programmés, introduit un risque qu’il est difficile de quantifier.

Il est plus facile de faire une analyse de risque avec un système uniquement matériel (pas de logiciel).

Page 3: Problèmes de sécurité avec le logiciel

Défaillance des missiles Patriot

25 février 1991, guerre du Golfe, part I;28 morts suite à la non interception d’un

missile Scud !Ou était le bogue ?

Exemple

Page 4: Problèmes de sécurité avec le logiciel

Défaillance des missiles Patriot

Horloge interne du système Patriot. L’horloge interne additionnait à chaque 0.1 sec.

1/10. 1/10 exige en base 2 un nombre infini de

décimales. 0.00011001100110011001100110011001100…

Donc, à chaque 10e de seconde, l’erreur est de : 0.00000000000000000000000110011001100…

Page 5: Problèmes de sécurité avec le logiciel

Défaillance des missiles Patriot

Correspond à 0.000000095 seconde !

Semble négligeable, mais après 100 heures d’attente, cela devient:0.000000095×100×60×60×10=0.34

seconde

Vitesse d’un missile Scud = 1676 m/s.

L’interception du missile est raté par ½ km !

Page 6: Problèmes de sécurité avec le logiciel

Défaillance de la fusée Ariane 5

4 juin 1996;Premier lancement;Explosion de la fusée 40 secondes après le

lancement;Coût de recherche/développement de la

fusée:7 milliards

Perte de 500 M$ au lancement.

Exemple

Page 7: Problèmes de sécurité avec le logiciel

Système instable

Une fusée est un système instable.Tellement qu’un

ordinateur performant est nécessaire pour permettre à la fusée de suivre sa trajectoire.

Page 8: Problèmes de sécurité avec le logiciel

Système instable

La centrale inertielle mesure les vitesses et accélérations angulaires de la fusée.

L’ordinateur central a un algorithme de contrôle pour assurer le suivit de la trajectoire et la stabilité.

Page 9: Problèmes de sécurité avec le logiciel

Système instable

Il commande l’orientation des tuyères de la fusée.

Par sa dynamique, la fusée réagit aux poussées et orientations des tuyères.

Page 10: Problèmes de sécurité avec le logiciel

Système instable

L’histoire de l’astronautique montre que ça se passe généralement bien.

Du moins, si le software n’a pas de bug !!!

Page 11: Problèmes de sécurité avec le logiciel

Où est le bug ?

La centrale inertielle travaille sur un nombre en virgule flottante de 64 bits.

Une routine fait la convertion ce nombre en un entier sur 16 bits.

Ça fonctionnait bien sur l’Ariane 4.Donc, inutile de tester, réutilisons le même code.Mais, l’Ariane 5 est une plus grosse fusée

impliquant de plus grandes accélérations.

Page 12: Problèmes de sécurité avec le logiciel

Où est le bug ?

Il s’est produit une erreur dans la routine, car 16 bits n’étaient pas suffisants.

Cette erreur a entrainé un arrêt de la centrale inertielle.

Heureusement, il y a une seconde centrale inertielle en backup !!!Mais, elle utilise le même code.Elle subit donc le même sort que la

première.

Page 13: Problèmes de sécurité avec le logiciel

Un malheur n’arrive jamais seul

Le hardware des deux centrales inertielles envoie un rapport d’erreur à l’ordinateur central.Ce rapport est interprété, par l’ordinateur

central, comme des données valides, bien qu’extrêmes.

Résultat, les tuyères sont subitement commandées à leur angle maximal.

Page 14: Problèmes de sécurité avec le logiciel

Trop de contraintes

Le fuselage de la fusée a alors changé brusquement de direction et des contraintes indues se sont produites. Il n’était pas conçu pour supporter ce niveau

de contraintes.Le fuselage s’est brisé et la fusée à

explosée.

Page 15: Problèmes de sécurité avec le logiciel

Leçons tirées

Toujours vérifier si les données reçues sont valides.« Sanity check ».

Les concepteurs d’Ariane ont assumés que les erreurs ne peuvent provenir que du « hardware ». Il peut y en avoir dans le logiciel aussi !

Page 16: Problèmes de sécurité avec le logiciel

Leçons tirées

Même si cette routine fonctionnait avec Ariane 4, elle aurait du être testée dans les conditions d’accélération que pouvait occasionner Ariane 5.On aurait alors découvert cette erreur.

Comment se fait-il qu’un rapport d’erreur a été considéré comme des mesures valides ?

Page 17: Problèmes de sécurité avec le logiciel

Crash du réseau d’AT&T

Le 15 janvier 1990, le réseau d’AT&T s’effondre totalement.

Un nouveau logiciel avait été installé à la mi-décembre dans la totalité de ses commutateurs 4ESS.La défaillance d’un commutateur à New

York va révéler une faille de ce logiciel.

Source: http://www.phworld.org/history/attcrash.htm

Exemple

Page 19: Problèmes de sécurité avec le logiciel

Crash du réseau d’AT&T

Problème technique

Réinitialisation de 6 secondes

Bloquer nouveaux appels

B note que A ne traite plus d’appels

Page 20: Problèmes de sécurité avec le logiciel

Crash du réseau d’AT&T

Recommence à traiter des

appels

1er appel traité

B se réinitialise suite au retour de

A

Page 21: Problèmes de sécurité avec le logiciel

Crash du réseau d’AT&T

2e appel

Réinitialisation non terminée

Page 22: Problèmes de sécurité avec le logiciel

Crash du réseau d’AT&T

2e appel

Le message de A perturbe le logiciel

B conclut que son processeur est viré « fou »

B arrête son processeur

Page 23: Problèmes de sécurité avec le logiciel

Crash du réseau d’AT&T

Réinitialisation de 6 secondes

Bloquer nouveaux appels

Bloquer nouveaux appels

C note que B ne traite plus d’appels

A note que B ne traite plus d’appels

Page 24: Problèmes de sécurité avec le logiciel

Crash du réseau d’AT&T

Recommence à traiter des

appels

1er appel traité

1er appel traité

A se réinitialise suite au retour de

B

C se réinitialise suite au retour de

B

Page 25: Problèmes de sécurité avec le logiciel

Crash du réseau d’AT&T

Recommence à traiter des

appels

2e appel traité

2e appel traité

Le message de B perturbe le logiciel

A conclut que son processeur est viré « fou »

A arrête son processeur

Le message de B perturbe le logiciel

C conclut que son processeur est viré « fou »

C arrête son processeur

Page 26: Problèmes de sécurité avec le logiciel

Crash du réseau d’AT&T

Et le problème s’est répandu comme une trainée de poudre à l’ensemble du réseau.

Si le second appel était arrivé après la période d’initialisation du commutateur, tout aurait bien fonctionné.Mais, la loi de Murphy s’applique ici.

Page 27: Problèmes de sécurité avec le logiciel

Black out du 14 août 2003

Nord-est des États-Unis + Ontario

Welcome to Toronto

Exemple

Page 28: Problèmes de sécurité avec le logiciel

Black out du 14 août 2003

Plus grand black out de l’histoire de l’Amérique du Nord.

Parmi les conséquences:A affecté 50 millions de personnes.Pertes financières de 10 G$.Défaite du gouvernement ontarien à

l’automne 2003.

Page 29: Problèmes de sécurité avec le logiciel

Séquence des événements

12h15Des données incorrectes rendent un

système de diagnostic non-fonctionnel en Ohio.

L’estimateur d’état du MISO génère de mauvaises données.

Aide les opérateurs à gérer le réseauUne ligne 230 kV hors service fausse les

données car le MISO SE assume qu’elle est en service.

Page 30: Problèmes de sécurité avec le logiciel

Séquence des événements

13h31La centrale Eastlake en Ohio s’arrête.

Page 31: Problèmes de sécurité avec le logiciel

Séquence des événements

14h02Défaillance d’une ligne 345 kV à cause d’un

arbre à Walton Hill en Ohio.A ce point pas de problèmes si le soft suit.

Mais la loi de Murphy va s’appliquer ici .

Page 32: Problèmes de sécurité avec le logiciel

Séquence des événements

14h14: Une condition de course entre des portions

de logiciel corrompt les données.Cela aura de graves conséquences, car les

opérateurs de la salle de contrôle du réseau électrique de l’Ohio ne recevront bientôt plus aucun signal d’alarme!

Ce problème surgit au pire moment…

Page 33: Problèmes de sécurité avec le logiciel

Séquence des événements

14h27Un second arbre entraîne la défaillance

d’une autre ligne de 345 kV.Les opérateurs ne voient rien sur leur

écrans.La ligne se réenclenche.

Page 34: Problèmes de sécurité avec le logiciel

Séquence des événements

Grosse erreur des opérateurs:À 14h32, un opérateur d’un autre réseau

averti les opérateurs en Ohio qu’une ligne s’est déconnectée puis s’est rebranchée.

Ces derniers n’ont rien vu, leur système de gestion des alarmes est corrompu.

Ce premier signe d’un problème n’a pas été pris en compte !!!

Page 35: Problèmes de sécurité avec le logiciel

Séquence des événements

14h41Le serveur en charge des alarmes entre en

« shutdown ». Mise en marche du système de secours (gestion des alarmes).

14h54: Défaillance de ce système. On tente de le

redémarrer, mais en vain.

Page 36: Problèmes de sécurité avec le logiciel

Séquence des événements

15h05: Un autre arbre entraîne la défaillance d’une ligne 345 kV à Parma.

Page 37: Problèmes de sécurité avec le logiciel

Séquence des événements

15h08: Redémarrage du serveur de gestion des

alarmes. Les opérateurs pensent avoir un système opérationnel ! Ce n’est pas le cas.

La perte de la ligne de Parma n’étant pas signalée, ils ne peuvent la corriger.

Page 38: Problèmes de sécurité avec le logiciel

Séquence des événements

15h17Baisse de tension sur le réseau électrique

en Ohio. Les opérateurs ne font rien.

Page 39: Problèmes de sécurité avec le logiciel

Séquence des événements

15h17Baisse de tension sur le réseau électrique

en Ohio. Les opérateurs ne font rien.

Page 40: Problèmes de sécurité avec le logiciel

Séquence des événements

15h19Le téléphone sonne à nouveau. Un

opérateur d’un réseau voisin annonce qu’une ligne est en probablement en défaillance (voir 15h05). Mais les opérateurs en Ohio indiquent que tout est normal. Sauf que leurs données sont fausses…

Page 41: Problèmes de sécurité avec le logiciel

Séquence des événements

15h32 A cause des transferts de puissance une

ligne de 345 kV entre en oscillation et touche un arbre.

1200 MVA de puissance doit passer ailleurs.

Page 42: Problèmes de sécurité avec le logiciel

Séquence des événements

15h35Le téléphone sonne encore. On commence

enfin à comprendre que ça ne va pas.15h39

Perte d’une ligne de 138 kV en Ohio.

Page 43: Problèmes de sécurité avec le logiciel

Séquence des événements

15h41:La ligne qui avait eu une défaillance vers

14h27 tombe définitivement.

Page 44: Problèmes de sécurité avec le logiciel

Séquence des événements

Les effets des pannes cumulatives commencent à se faire sentir sur le réseau.

Page 45: Problèmes de sécurité avec le logiciel

Séquence des événements

15h41 et 15h46: Deux sectionneurs se déclenchent au nord de l’Ohio, le coupant du réseau voisin, en raison de la défaillance d’une ligne à 345 kV et de 15 lignes à 138 kV. A ce moment, c'eut été la dernière chance

de sauver le réseau en déconnectant la ville de Cleveland.

Page 46: Problèmes de sécurité avec le logiciel

Séquence des événements

16h06 : La tension sur le réseau de l’Ohio est très instable. Perte totale du contrôle du réseau. Une autre ligne de 345 kV tombe.Le sort en est jeté.

Page 47: Problèmes de sécurité avec le logiciel

Séquence des événements

16h09m02: Grosse oscillation de voltage. Le réseau de l’Ohio pompe 2 GW de puissance du Michigan.

Page 48: Problèmes de sécurité avec le logiciel

Séquence des événements

16h10m34: Défaillance de plusieurs lignes au Michigan et en Ohio. Gros déficit de puissance. Grandes surtensions dans l’est entrainant la déconnection automatique de centrales électriques pour les protéger.

Page 49: Problèmes de sécurité avec le logiciel

Séquence des événements

Page 50: Problèmes de sécurité avec le logiciel

Séquence des événements

16h10m37: L’est et l’ouest du Michigan ne sont plus connectés ensemble.

Page 51: Problèmes de sécurité avec le logiciel

Séquence des événements

16h10m38: Cleveland se détache du réseau (trop tard).

Page 52: Problèmes de sécurité avec le logiciel

Séquence des événements

16h10m393.7 GW est sucé de l’est à partir de l’Ontario

vers le nord de l’Ohio et le sud du Michigan.

Page 53: Problèmes de sécurité avec le logiciel

Séquence des événements

16h10m40: Inversion du flot de puissance. 2GW entre en Ontario. Et revient une demie seconde plus tard !!!

Page 54: Problèmes de sécurité avec le logiciel

Séquence des événements

16h10m45: L’ouest de l’Ontario n’est plus branché à l’est. Arrêt d’une première centrale en Ontario.

Page 55: Problèmes de sécurité avec le logiciel

Séquence des événements

16h10m46: Le réseau de l’état de New York se sépare de celui de la Nouvelle Angleterre.

Page 56: Problèmes de sécurité avec le logiciel

Séquence des événements

16h11m57: Dernières lignes se déconnectent entre l’Ontario et le Michigan.

16h13: Fin de la cascade. Black out !256 centrales se sont déconnectées du réseau

pour se protéger. 85% après la déconnection des différents réseaux électriques.

Les américains blâmeront les canadiens!Mais c’est un problème logiciel en Ohio qui

est la source de ce gros bordel !

Page 57: Problèmes de sécurité avec le logiciel

Les centrales qui sont tombées au combat !

Page 58: Problèmes de sécurité avec le logiciel

Le logiciel avait été testé en simulation

Mais faut croire que cette situation n’avait pas été simulée !

Page 59: Problèmes de sécurité avec le logiciel

Therac 25

Un traitement anti-cancer mortel !11 de ces machines installées au

Canada et aux États-Unis.

6 personnes ont été victime d’overdose de radiations.

Pire accident de l’histoire des accélérateurs appliqués aux traitements médicaux.

Exemple

Page 60: Problèmes de sécurité avec le logiciel

Therac 25

Cette machine de 3e génération avait deux modes de fonctionnement:Mode rayon X;Mode électrons rapides.

Ce dernier mode est utilisé pour obtenir des doses profondes.

Page 61: Problèmes de sécurité avec le logiciel

L’installation

Page 62: Problèmes de sécurité avec le logiciel

La table tournante

Page 63: Problèmes de sécurité avec le logiciel

Modes de fonctionnement

En mode électrons:Niveau d’énergie ajustable de 5 à 25 MeV.

Des aimants dispersent le faisceau d’électrons à un niveau sécuritaire.

En mode photon (ou rayon X):Niveau d’énergie de 25 MeV. Requiert la

présence d’un atténuateur pour disperser et rendre uniforme le faisceau de rayon X.

Page 65: Problèmes de sécurité avec le logiciel

L’accident de Tyler (au Texas)

Page 66: Problèmes de sécurité avec le logiciel

Treatment monitor task (Treat)

Utilise la variable Tphase pour savoir à quelle étape on est dans le traitement.Tphase sélectionne la routine à exécuter.

Tphase = 1:Datent : Data Entry;

Communique avec le Keyboard handler task;

Page 67: Problèmes de sécurité avec le logiciel

Entrée de la prescription

Page 68: Problèmes de sécurité avec le logiciel

Variable globale commune

Data Entry Complete Flag. Indique quand la prescription correcte est

entrée.

Si activé, ce bit indique à la routine Treat de passer de Tphase = 1 à Tphase = 3.

Page 69: Problèmes de sécurité avec le logiciel

Quand tout se passe bien…

Page 70: Problèmes de sécurité avec le logiciel

Variable globale commune

Par contre, n’assure pas que la prescription à été toute entrée !Si accidentellement l’opérateur retourne le

curseur sur la ligne de commande Data Entry Complete Flag devient vrai.

Page 71: Problèmes de sécurité avec le logiciel

Quand le bug arrive !!!

Page 72: Problèmes de sécurité avec le logiciel

Quand le bug arrive !!!

Ce qu’affiche l’interface

Page 73: Problèmes de sécurité avec le logiciel

Quand le bug arrive !!!

Ce qu’affiche l’interface

Position tabletournante

Page 74: Problèmes de sécurité avec le logiciel

Quand le bug arrive !!!

Ce qu’affiche l’interface

Position tabletournante

Ajustement du faisceau

Page 75: Problèmes de sécurité avec le logiciel

Routine Datent

Transferts à des convertisseurs N/A

Page 76: Problèmes de sécurité avec le logiciel

Routine Magnet

Prend 8 secondesà s’exécuter

Remis à 0 lors dela première

exécution !!!

Page 77: Problèmes de sécurité avec le logiciel

Routine Magnet

Ce bout de coden’est plus exécuté !!!

Page 78: Problèmes de sécurité avec le logiciel

C’est la course à la catastrophe

L’opérateur descend le curseur à la ligne de commande avant la fin de l’édition des paramètres. Data Entry Complete=true.

La routine Ptime s’est exécutée au moins une fois. Bending magnet flag=false.

Page 79: Problèmes de sécurité avec le logiciel

C’est la course à la catastrophe

L’édition du mode et de l’énergie arrive trop tard.Car sorti de Datent et Tphase=3.

Page 80: Problèmes de sécurité avec le logiciel

C’est la course à la catastrophe

L’ajustement est alors incorrect et non conforme avec ce qui est affiché sur l’interface homme machine.

Donc, pas la bonne dose et pas le bon mode.

Risque d’ « underdose » ou d’overdose !

Page 81: Problèmes de sécurité avec le logiciel

Mais en plus(comme si c’était pas assez)

Le registre MEOS est sur 2 octets. La partie haute est utilisée par Datent pour ajuster les paramètres de fonctionnement.

La partie basse est utilisée par la routine Hand qui ajuste la table tournante et les collimateurs en fonction du mode et de l’énergie sélectionné.

Page 82: Problèmes de sécurité avec le logiciel

Mais en plus(comme si c’était pas assez)

Donc, avec le bug précédent, si on change le mode/énergie, Hand fait les changements, mais pas Datent.

Et aucune détection de l’inconsistance des ajustements est fait, car il est connu qu’un logiciel ne fait pas d’erreur…

Page 83: Problèmes de sécurité avec le logiciel

Mais en plus(comme si c’était pas assez)

Et si le mode par défaut dans Datent envoie 25 MeV (mode rayons-X – ou photons) alors que Hand est ajusté dans le mode électrons, le patient recevra une dose extrême de radiation.

Page 84: Problèmes de sécurité avec le logiciel

Et ainsi

Page 85: Problèmes de sécurité avec le logiciel

Et, ce ne sera pas le seul bug que l’on trouvera sur Therac 25

Page 86: Problèmes de sécurité avec le logiciel

Et, ce ne sera pas le seul bug que l’on trouvera sur Therac 25

Page 87: Problèmes de sécurité avec le logiciel

Et, ce ne sera pas le seul bug que l’on trouvera sur Therac 25

Page 88: Problèmes de sécurité avec le logiciel

L’incident de Yakima (état de Washington)

Page 89: Problèmes de sécurité avec le logiciel

C’est encore la course à la catastrophe

Registre Class3 à 8 bits.Routine Set Up Test appelée

continuellement tant que non complétée. Incrémentation de Class3 à chaque appel;

Mais: 255 + 1 = 256 0 sur 8 bits.Regardez le test fait dans Lmtchk.Vérification pas faite et…

Page 90: Problèmes de sécurité avec le logiciel

Était-ce évitable ?

Bonne question.

Le problème majeur est de tester toutes les conditions possibles que le logiciel peut rencontrer.

Impossible parfois de découvrir les failles en simulation.

Page 91: Problèmes de sécurité avec le logiciel

Voyons d’autres exemples…

Page 92: Problèmes de sécurité avec le logiciel

Un risque de course (race hazard)

Bien connu en électronique.A la source des “glitches”.

A

B

C

Y

Page 93: Problèmes de sécurité avec le logiciel

Un risque de course (race hazard)

Table de Karnaugh:

On ajoute une porte logique de plus:

0 0 0 1

0 1 1 1A

B

C

Y

0 0 0 1

0 1 1 1A

B

C

Y

Page 94: Problèmes de sécurité avec le logiciel

Un risque de course (race hazard)

Problème réglé:

A

B

C

Y

Page 95: Problèmes de sécurité avec le logiciel

Un risque de course (race hazard)

Malheureusement pas aussi simple au niveau software !