18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

36
18 Janvier 2001 1 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL

Transcript of 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

Page 1: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 1

Mise en sécurité des Logiciels

Boulanger Jean-Louis

RATP

ESE/ICH/AQL

Page 2: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 2

Le Laboratoire ICH/AQL

Atelier de Qualification des Logiciels, Premier Laboratoire français à être

accrédité par le COFRAC dans le cadre du programme 152 pour les essais:

• SUR1, SUR2, (vérification de spécification)

• SUR 6, (traçabilité)

• SUR11, SUR 13 (vérification fonctionnelle)

• SUR14 (analyse d’impact)

Page 3: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 3

Sommaire• Hypothèses

– Processeur Sécuritaire Codé– La méthode B

• Processus de développement et de validation

• Et pour demain ...• Conclusions - Questions

Page 4: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 4

Hypothèses

Page 5: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 5

Hypothèses

Pour le métro, il existe un état de sécurité: l’arrêt.

La RATP fixe actuellement deux contraintes pour le développement des logiciels critiques (SSIL>2):– Utiliser la méthode formelle B,– Utiliser le processeur sécuritaire codé (PSC).

Page 6: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 6

Processeur Sécuritaire Codé

Page 7: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 7

PSC

Problèmes matériels dûs à l’environnement:– Perturbations électromagnétiques– Vibrations.

Solutions:– Transmissions numériques,– Processeurs codés.

Page 8: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 8

Principes La sécurité repose sur le codage des

informations et des traitements, Codage arithmétique séparable, Contrôle de signatures.

Page 9: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 9

Matériel

Architecture mono-processeur, Processeur standard,

– Famille des 68000 Matériel périphérique dédié.

Page 10: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 10

Codage

Chaque donnée est constituée de deux champs:– Le champ «information»,– Le champ «contrôle de longueur fixe» :

• Reste de la div entière de l’info par la clé du code,

• Signature statique Bx (trace des antécédents)

• Signature dynamique D (validité temporelle)

(2kx, -rkx +Bx +D) avec 2k>A

Page 11: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 11

Contrôle des signatures

Vérifier que les signatures statiques sont égales aux valeurs prédéterminées,

Vérifier que la signature dynamique évolue correctement à chaque itération.

Page 12: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 12

Ce qu’il prend en charge..

Le PSC peut détecter – les erreurs d’opération,

• bonne opérande et bon opérateur mais mauvais calcul

– les erreurs d’opérandes ou d’opérateur,• la présence d’une donnée erronnée,• la tentative d’exécution d’une instruction non prévue,

– les erreurs de rafraichissement,– les débordements de pile,– les mauvais accès de tableau,– ....

Page 13: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 13

Ce qu’il provoque ...

En cas de détection d’un problème, le PSC garantit l’arrêt du train.

Page 14: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 14

Utilisation

SACEM VAL de Chicago MAGGALY ... METEOR ASTREE

Page 15: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 15

La méthode B

Page 16: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 16

Historique

• 1979-1981– Z est développé lors du séjour de JR Abrial au sein du

Programming Research Group

• 1985– C. Morgan introduit le raffinement

• 1988-1991– JR Abrial développe la méthode B pour British Petroleum

• 1994-1995– industrialisation de la méthode B et application METEOR

Page 17: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 17

Caractéristiques (1)

• Orientée Modèle: – comme Z et VDM

• Séquentielle et ininterruptible• Orientée Objet:

– lien de structuration et module.

Page 18: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 18

Caractéristiques (2)

• La méthode B permet le développement incrémental de spécifications jusqu’à leurs implémentations.

• Une seule notation pour les trois niveaux

• La méthode est basée sur la PREUVE

Page 19: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 19

Concept (1)

• Les machines abstraites sont composées de trois parties: – la partie déclarative (description de l’état+propriétés):

• Théorie des ensembles

• Logique du premier ordre

– la partie de composition

– la partie exécutive (opération faisant évoluer l’état)• Substitution Généralisée

Page 20: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 20

Exemple: une pileMACHINE STACK ( max)

CONSTRAINTS max NAT1

SEES OBJECT

VARIABLES stack

INVARIANT stack seq(Object) size(stack) <= max

INITIALISATION stack := <>

OPERATIONS

PUSH (XX) =PRE XX Object size(stack) < max

THEN stack := stack XX END;

XX POP = PRE size(stack) > 0

THEN XX,stack := last(stack),front(stack) END

END

Page 21: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 21

De la spécification à l’implantation

• 3 niveaux de détail:– la MACHINE

• «non séquentielle, non déterministe»

– le(s) REFINEMENT• introduit plus de détail mais doit préserver les caractéristiques

«non séquentielles, non déterministes»

– l’IMPLEMENTATION• séquentielle et déterministe

Page 22: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 22

Validation du Modèle

Machine

Raffinement

Implementation

PO : Le modèle est consistant1. Modèle non vide2. Les Opérations préservent l’invariant

PO : cohérence du raffinement L’initialisation et les opérations préservent la sémantique du niveau supérieur

Page 23: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 23

Ce qu’elle prend en compte

Correction statique du typage, au travers des PO.– débordement,– accès hors borne,– mauvaise utilisation (division par 0, ...)

Correction de l’utilisation des opérations au travers de la vérification du respect des pré-conditions.

Page 24: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 24

Processus de développement

Page 25: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 25

Séparation code/donnéesSpécification

logicielle

EXECUTABLE

Description de la ligne

Modèle B

Invariant de BesoinCode ADA sécurisé

Caractéristiquedes trains

Page 26: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 26

Cycle de développement

spécification littéraledu logiciel

tests fonctionnels

ré-expressionformelle en B

conceptionformelle

génération deprogramme

(automatique)

intégrationlogicielle

preuve

preuvepreuve

Page 27: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 27

Procesus de Validation

Page 28: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 28

Processus RATP

• Le processus de validation des logiciels critiques de la RATP s’appuie sur deux activités:

– Un contrôle de l’industriel sur l’ensemble du processus.

– Une double validation• des logiciels critiques,

• des données manipulées par les logiciels critiques.

Page 29: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 29

Double Validation

Cahier des charges Fonctionnel

Spécification FonctionnelleEquipement

Spécification Logicielle

EXECUTABLE

Tests FonctionnelsModélisation

Page 30: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 30

Et pour demain ...

Page 31: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 31

Europe

Suite à l’ouverture des marchés dans le cadre de l’EUROPE, la RATP se doit de respecter la réglementation européenne pour les appels d’offre, la RATP ne peut donc plus avoir les mêmes exigences.

Page 32: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 32

D’autres architectures ..

Les industriels commencent à proposer l’utilisation d’une architecture matérielle 2 parmi 3 avec voteur logiciel ou matériel.

Page 33: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 33

D’autres langages ...

Dans le cadre des marchés européens, la RATP peut recommander l’utilisation d’une méthode formelle, mais pas l’exiger.

Page 34: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 34

D’autres techniques ..

L’outil PolySpace Verifier– Recherche des erreurs d’exécution,– Identification des opérations à risque,– Indépendant de l’architecture.

Page 35: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 35

PolySpace

La RATP a mené une étude sur un équipement en cours d’utilisation qui a déjà fait l’objet d’une validation.

Bilan:– Non respect de la norme ADA83 (non

initialisation de paramètres «in out»),– Une boucle infinie,– Du code mort.

Page 36: 18 Janvier 20011 Mise en sécurité des Logiciels Boulanger Jean-Louis RATP ESE/ICH/AQL.

18 Janvier 2001 36

Conclusions-

Questions