• Aucun résultat trouvé

1.2 La sécurité dans l’Internet des Objets

1.2.1 Terminologie de la sécurité

La sûreté de fonctionnement définit les termes de sécurité-innocuité (safety) et

sécurité-immunité (security), dans laquelle nos travaux s’inscrivent. Nous

présen-tons ici le vocabulaire qui sera utilisé par la suite, en commençant par définir les

principaux concepts de la sûreté de fonctionnement, issus de [Laprie 1996] et mis à

jour dans [Avizienis 2004], puis en se focalisant sur les concepts liés à la

sécurité-immunité.

1.2.1.1 Sûreté de fonctionnement

La sûreté de fonctionnement d’un système informatique est définie comme « la

propriété qui permet aux utilisateurs d’un système de placer une confiance justifiée

dans le service qu’il leur délivre ». Le service délivré correspond au comportement du

système perçu par ses utilisateurs. La sûreté de fonctionnement comporte trois axes

principaux : les attributs qui la décrivent, les entraves qui empêchent sa réalisation

et les moyens d’atteindre celle-ci (figure 1.1).

La sûreté de fonctionnement associée à la sécurité-immunité définissent les

at-tributs et les propriétés complémentaires suivantes :

— La capacité d’un système à être prêt à l’utilisation se définit comme la

Dis-ponibilité.

— La continuité du service se définit comme la Fiabilité.

— La non-occurrence de conséquences catastrophiques pour l’environnement se

définit comme la Sécurité-innocuité.

— La non-occurrence de divulgations non autorisées de l’information se définit

comme la Confidentialité.

— La non-occurrence d’altérations inappropriées de l’information se définit

comme l’Intégrité.

Sureté de

fonctionnement

Attributs

Entraves

Moyens

Disponibilité Fiabilité Sécurité-innocuité Intégrité Confidentialité Maintenabilité Prévention des fautes Tolérance aux fautes Élimination des fautes Prévision des fautes

Fautes Erreurs Défaillances

Sécurité-immunité

Figure 1.1 – L’arbre de la sécurité de fonctionnement

— L’aptitude d’un système à être réparé ou à subir des évolutions se définit

comme la Maintenabilité.

La non-sûreté de fonctionnement correspond quant à elle à une perte de

confiance, qui ne peut plus ou ne pourra plus être placée dans le service délivré.

Les causes ou résultats de celle-ci sont les circonstances indésirables définies comme

étant lesentraves :

— Unedéfaillancesurvient lorsque le service délivré dévie de l’accomplissement

de la fonction du système.

— Une erreur est la partie de l’état du système qui est susceptible d’entraîner

une défaillance.

— Unefaute est la cause adjugée ou supposée d’une erreur.

Pour mettre en place la sûreté de fonctionnement dans un système, nous

dispo-sons de plusieursmoyens. Ces moyens sont des méthodes et techniques permettant

de fournir au système l’aptitude à délivrer un service conforme à l’accomplissement

de sa fonction, et de donner confiance dans cette aptitude. Le développement d’un

système sûr passe par l’utilisation combinée d’un ensemble de méthodes :

La prévention de fautesempêche l’occurrence ou l’introduction de fautes.

La tolérance aux fautes permet de fournir un service à même de remplir

la fonction du système en dépit des fautes.

1.2. La sécurité dans l’Internet des Objets 23

La prévision des fautesestime la présence, la création et les conséquences

des fautes.

Les travaux décrits et présentés dans ce manuscrit s’inscrivent dans le cadre de la

sécurité-immunité, qui se définit comme l’association des attributs de disponibilité

de confidentialité et d’intégrité. Dans la suite, nous détaillons les concepts liés à la

sécurité-immunité.

1.2.1.2 Sécurité-immunité

La sécurité-immunité a pour but de protéger un système contre les fautes définies

comme intentionnellement nuisibles, c’est-à-dire créées ou commises délibérément

pour nuire, appelées aussi malveillances. Dans cette section, nous allons appliquer

les attributs génériques définis précédemment au contexte de la sécurité-immunité.

Dans le reste de ce manuscrit, les termes de sécurité ou de sécurité informatique

seront utilisés comme alias à la sécurité-immunité, sauf exception explicitement

précisée.

Attributs Dans le contexte de la sécurité-immunité, les attributs de la sûreté de

fonctionnement peuvent être spécialisés de la manière suivante :

Disponibilité : prévention de rétentions d’information non autorisées.

Confidentialité: prévention de divulgations d’information non autorisées.

Intégrité : prévention de modifications d’information non autorisées.

Malveillances Le projet MAFTIA [Powell 2001] s’intéresse au concept de faute

due à l’homme pour la sécurité-immunité. Dans nos travaux, nous nous concentrons

principalement sur ces fautes, et notamment à deux classes de fautes

intentionnel-lement nuisibles, appelées égaintentionnel-lement malveillances : les logiques malignes et les

intrusions. Les logiques malignes sont des fautes internes intentionnelles, qui sont

conçues pour provoquer des dégâts (bombes logiques) ou pour faciliter les futures

intrusions par l’ajout de vulnérabilités (portes dérobées). Celles-ci peuvent être

pré-sentes dès la première utilisation du système, donc ajoutées par le concepteur du

système, ou durant son exploitation par l’installation d’un cheval de Troie ou par

un virus. Concernant les intrusions, celles-ci sont associées à deux causes :

— Un acte malveillant ou uneattaque essayant d’exploiter une faiblesse du

sys-tème. Une attaque étant une faute d’interaction, dont le but est de violer un

ou plusieurs des attributs de sécurité. Elle peut être aussi définie comme une

tentative d’intrusion.

— Une faiblesse ou une vulnérabilité placée dans les exigences, la spécification,

la conception ou la configuration du système, ou dans la manière dont il est

utilisé. Une vulnérabilité étant une faute accidentelle, ou une faute

intention-nellement malveillante ou non malveillante.

L’intrusion se définit donc comme étant une faute externe nuisible qui résulte

d’une attaque ayant réussi à exploiter une vulnérabilité.

Fautes dues à l’homme sans volonté de nuisance Le projet MAFTIA décrit

également deux autres types de fautes dues à l’homme n’étant pas des malveillances,

car sans volonté de nuisance, qui peuvent cependant être génératrices de

vulnéra-bilités ou d’intrusions dans les systèmes :

— Les fautes de conception sont ajoutées à la conception du système, ce sont

des fautes de développement accidentelles ou intentionnelles sans volonté de

nuire. Par exemple, l’implémentation d’un standard cryptographique ou d’un

protocole communication peut être vulnérable [Ronen 2018].

— Les fautes d’interactions sont des fautes externes, dues à la mauvaise

utilisa-tion du système. Par exemple, l’utilisateur d’un objet n’utilise pas les foncutilisa-tion-

fonction-nalités de sécurité proposées par le fabricant pour des questions d’ergonomie.

Les fautes dues à l’homme sans volonté de nuisance ajoutent principalement des

vulnérabilités au système et permettent donc, par transitivité, la réalisation

d’at-taques voire d’intrusions qui pourront par la suite amener des logiques malignes

en ajoutant de nouvelles vulnérabilités. Les fautes d’interaction humaines,

notam-ment dans l’IoT, peuvent être induites par une conception non sécurisée d’un objet,

par exemple en proposant un mode de fonctionnement sécurisé ainsi qu’un mode

dégradé (c’est par exemple le cas dans des implémentations du BLE ou du

Blue-tooth). Ces fautes, bien que très sensibles pour la sécurité des systèmes, ne font pas

l’objet de ces travaux, car elles dépendent souvent de la formation des utilisateurs.

Pour ce qui est des vulnérabilités ajoutées par les fautes de conception, elles seront

potentiellement exploitées de manière malveillante par des attaques. Il est donc

in-dispensable de lutter contre les malveillances pouvant aller à l’encontre des trois

attributs de la sécurité-immunité.

1.2.1.3 Moyens de lutte contre les malveillances

Nous pouvons encore une fois spécialiser les moyens permettant d’avoir un

sys-tème sûr de fonctionnement pour les appliquer à la sécurité-immunité.

Prévention des fautes La prévention des fautes peut se dériver en trois

mé-thodes pour les attaques, les vulnérabilités et les intrusions. La prévention des

at-taques consiste à dissuader les utilisateurs malveillants d’attaquer le système. Cela

est possible via la loi et la pression sociale par exemple. La prévention des

vulné-rabilités lutte contre l’introduction de vulnévulné-rabilités dans la conception du système

via l’application de méthodes semi-formelles ou formelles, mais aussi l’éducation de

l’utilisateur (choix de mot de passe robuste, utilisation correcte d’un certificat ou

d’une paire de clés par exemple). La prévention d’intrusions est mise en place via

les techniques d’authentification, d’autorisation et des pare-feu et par transitivité

aux préventions des attaques et des vulnérabilités.

Tolérance aux fautes Dans le cas de malveillances, on s’intéresse

principale-ment à la tolérance aux intrusions. Il s’agit d’un ensemble de méthodes que met en

1.2. La sécurité dans l’Internet des Objets 25

place un système pour être capable de détecter une intrusion, de se réparer et se

reconfigurer tout en continuant de garantir une disponibilité de service et/ou

l’in-tégrité des données pendant une attaque [Deswarte 1991]. Nous pouvons aussi citer

les mécanismes de redondance ou de diversification, qui garantissent qu’un certain

niveau de sécurité peut être assuré malgré la compromission de certains composants

du système. Nos travaux se concentrent sur cet aspect, en détectant les intrusions

via l’analyse des activités radios d’un environnement connecté à surveiller.

Élimination des fautes Seule l’élimination de vulnérabilités est réellement

per-tinente. En effet, on ne peut interdire formellement à un utilisateur d’attaquer un

système et à l’identique, si une vulnérabilité existe, une intrusion peut de toute façon

exister. Le développement d’un système est complexe, il est donc très difficile

d’éli-miner complètement les fautes d’un système. Les concepteurs peuvent donc tenter

de réduire leur nombre en appliquant, entre autres, de la vérification, du diagnostic

et de la correction. La vérification consistant à déterminer si le système satisfait des

propriétés, le diagnostic étant la recherche des fautes ayant empêché la satisfaction

des propriétés, et la correction correspondant aux modifications nécessaires.

Prévision des fautes Enfin, la prévision de fautes propose un ensemble de

mé-thodes permettant d’identifier les vulnérabilités, attaques, intrusions potentielles

d’un système et de mesurer l’impact des erreurs sur les attributs de la

sécurité-immunité sur le système, tout en reportant ces identifications.

1.2.1.4 Surfaces d’attaques et modèle de menaces

Pour permettre de mettre en place les moyens associés à un système sûr de

fonc-tionnement, il est nécessaire de comprendre deux éléments constitutifs du système

que nous cherchons à protéger :

Modèle de menaces : définit les menaces potentielles, de telle manière que

les vulnérabilités d’un système sont identifiées pour proposer des moyens

per-mettant de prévenir, tolérer, éliminer ou prévoir des malveillances.

Surface(s) d’attaques: définit les vecteurs d’attaques, c’est-à-dire les points

d’accès extérieurs au système pouvant contenir des vulnérabilités qu’un

atta-quant pourrait exploiter pour réaliser une intrusion.