Il y a encore de l’espoir pour la sécurité des objets connectés

de | 3 décembre 2016

Dans cet article, vous trouverez les principales activités à considérer dans la conception d’objets connectés sûres. Son contenu fait écho à la publication : « Future-proofing the Connected World: 13 Steps to Developing Secure IoT Products » qui a été réalisée, et à laquelle j’ai participé, par le groupe de travail Internet Of Things (IOT WG) du Cloud Security Alliance.

Au-delà de l’enrichissement personnel que m’a apporté la participation à la rédaction de cette publication, les attaques récentes à travers des objets connectés qui ont rendu indisponibles les infrastructures d’OVH et des grands acteurs de l’Internet m’ont également fortement motivé pour promouvoir cette publication en tant que professionnel de la cybersécurité, mais aussi en tant qu’usager de ces services et potentielle victime des négligences des entreprises qui les commercialisent. Effectivement force de constater qu’à l’air du tout digital et de l’utilisation des avancées technologiques, les entreprises ne prennent pas en compte la sécurité des produits qu’elles proposent, et cela, au détriment de leurs intérêts, de leurs utilisateurs, de leurs clients, mais aussi au détriment de l’intérêt public. Personnellement, j’ai beaucoup de mal à comprendre que, pour être au rendez-vous du time-to-market ou encore réduire les coûts de leurs projets, les entreprises rechignent sur la sécurité en acceptant un risque élevé de se discréditer, voire de mettre en danger, leurs clients, leurs employés et leurs partenaires (c’est mon côté un peu provoc qui s’est exprimé!)

D’un autre côté, les médias généralistes font de plus en plus l’écho des cyberattaques et n’hésitent plus à pointer du doigt les déficiences des entreprises en matière de sécurité informatique dans les produits qu’elles proposent, contribuant ainsi à la prise de conscience des clients et usagers.

Nous avons identifié 13 étapes pour concevoir des objets connectés sûres. Ces étapes adressent la sécurité des composants d’un objet connecté et son écosystème : le matériel, et notamment la protection des clés de chiffrement, le logiciel embarqué, les applications back-end et en particulier lorsque celles-ci sont dans le Cloud, les communications entre les objets connectés, le canal de mise à jour, etc.

La publication revient également sur les bonnes pratiques d’intégration de la sécurité dans le cycle de vie des projets : évaluation des menaces, les bonnes pratiques de sécurité dans les développements, le choix de la pile logicielle, etc.

Les recommandations présentées dans chaque étape sont majoritairement destinées aux concepteurs, aux développeurs et aux architectes qui interviennent dans les projets de conception de services proposés dans les objets connectés.

1. Intégrer la sécurité dans la méthodologie de gestion de projet : il s’agira dans cette étape d’intégrer dans le cycle projet des activités d’évaluation des exigences et du niveau de sécurité des composants conçus. Analyse des risques en identifiant les menaces et les impacts associés pour en identifier les mesures à mettre en œuvre tout au long du projet. Cette section de la publication présente les principales menaces à adresser lors de la conception de service pour des objets connectés. L’objectif étant d’adresser l’objet connecté ainsi les services avec lesquels il interagit : les applications mobiles qui contrôlent l’objet connecté, les applications backoffice, les interfaces réseaux, etc.

2. Utiliser un environnement de développement et d’intégration sûr : il s’agira dans cette étape de s’assurer que quel que soit le langage de développement utilisé, il est important d’en utiliser les bonnes pratiques de sécurité et d’éviter certains pièges… de débutant. De plus, l’automatisation des processus de tests, de packaging et de mise en production devient une composante essentielle des approches agiles, il est donc nécessaire d’y intégrer des tâches automatiques de revue de la sécurité et de la qualité du code des services développées. Dans cette section de la publication, des liens vers des guides de bonnes pratiques de sécurité des principaux langages utilisés dans le développement de services pour objet connectés. Des propositions de contrôles à mettre en place dans les chaînes d’intégration continues sont également présentées dans cette section du document.

3. Choisir la bonne plate-forme logicielle et le bon framework : les entreprises doivent bien choisir le système d’exploitation et les composants logiciels qui s’exécuteront dans les objets connectés ainsi que les frameworks accéléreront le développement et l’interopérabilité des services proposés dans les objets connectés. Il s’agira d’évaluer les fonctionnalités de sécurité de ces composants logiciels, mais aussi leur pérennité. Un premier niveau d’analyse des principaux composants logiciels du marché est proposé dans la publication.

4. Établir une politique de protection des données personnelles : les services qui s’exécutent dans un objet connecté sont destinés à interagir avec leur environnement et collecter des données. Une attention particulière doit être portée sur les données personnelles : pour rester conforme à la réglementation, il est nécessaire de collecter uniquement les données nécessaires à la fourniture du service. De plus, le stockage dans le dispositif matériel des données à caractère personnel doit être proscrit. Cette section de la publication reprend également les réglementations européennes et américaines relatives à la protection des données à caractère personnel.

5. Intégrer des mesures de sécurité au niveau du matériel : les services développés dans les objets connectés ne sont pas les seuls vecteurs d’attaque. Une personne malveillante tentera d’analyser le firmware pour y détecter des failles voire le remplacer par une version qui lui permettra de prendre le contrôle de l’objet connecté et d’en changer l’usage. Cette section du document présente les dispositifs techniques à considérer dans un objet connecter. Vous y trouverez également les références de composants électroniques qui permettre de doter les objets connectés de dispositifs électroniques de sécurité et notamment les modules de chiffrement.

6. Protéger les données : les objets connectés sont destinés à communiquer avec des services en périphérie. Il est nécessaire de choisir le protocole de communication adapté en activant les mécanismes de sécurité associés. Dans cette section, les protocoles les plus utilisés sont décrits ainsi que les mécanismes de sécurité intégrés. La description va du Bluetooth 4 jusqu’au LTE en passant pas Sigfox ou encore Zigbee.

7. Sécuriser les interactions avec les applications et les services associés aux objets connectés : la sécurité ne doit pas se limiter aux objets connectés : elle doit être étendue à l’ensemble des composants de son écosystème que se soit les applications mobiles, mais aussi les applications dans le cloud. Deux publications du Cloud Security Alliance sont mises en avant dans cette section :

  • Mobile Application Security Testing (MAST) pour la sécurisation des applications mobiles

  • Cloud Controls Matrix (CCM) pour l’évaluation de la sécurité des services dans le Cloud

8. Protéger les interfaces d’accès aux objets connectés et notamment les API : les objets connectés communiqueront avec des services distants hébergés dans le Système d’Information de l’entreprise ou dans le Cloud : il est nécessaire de sécuriser les interfaces et API d’accès à ces services. Sans oublier le chiffrement des communications en utilisant TLS pour les communications TCP ou DTLS pour les communications UDP. Cette section renvoi à la publication « OWASP REST Security Cheat Sheet » qui présente les mécanismes de sécurité à implémenter lors du développement de web services de type REST. Elle décrit rapidement quelques mécanismes de protection des API proposés dans les offres IoT de Amazon Web Services et de Microsoft Azure.

9. Protéger le canal de mise à jour : le déploiement des mises à jour est un autre vecteur d’attaque contre les objets connectés. En effet, une personne malveillante tentera d‘exploiter de potentielles failles dans le canal de mise à jour pour implanter un micro-logiciel (firmware) modifié qui désactivera les fonctions de sécurité, modifiera le fonctionnement de l’objet ou exfiltrera des données. Cette section présente des bonnes pratiques pour sécuriser le processus de mise à jour d’un réseau d’objets connectés. Elle renvoie au framework The Update Framework (TUF) qui propose des librairies génériques de sécurisation du processus de mise à jour des applications.

10. Implémenter des mécanismes d’authentification, d’autorisation et de contrôle d’accès : point de communications sans authentification préalable, cette section du document reprend les principaux protocoles de communication utilisés par les objets connectés pour communiquer entre eux, mais aussi vers des applications quelles soient sur des mobiles ou dans le Cloud. Les méthodes d’authentification de chaque protocole sont présentées. Une nouvelle méthode est présentée dans cette section : Certificate-Less Authenticated Encryption (CLAE) qui permet d’authentifier l’émetteur d’un message et de générer des clés de chiffrement publiques en se basant sur des informations de son identité (Identity Based Encryption -IBE). Ces clés sont générées uniquement lorsque le système doit chiffrer une donnée, évitant ainsi le stockage de clés au niveau de l’objet connecté.

11. Sécuriser le système de gestion des clés de chiffrement : la protection des clés de chiffrement dans les objets connectés n’est pas suffisante. Il est nécessaire de s’assurer que l’ensemble du processus de délivrance des certificats soit sûr, depuis le premier démarrage d’un objet connecté jusqu’à sa mise eu rébus en passant par les renouvellements. Cette section liste les points clés à sécuriser dans la gestion du cycle de vie des certificats de sécurité dans un réseau d’objets connectés.

12. Tracer les événements liés au fonctionnement de l’objet connecté et des services associés : le développement des services sur des objets connectés et des applications avec lesquelles ils interagissent doivent comprendre une partie génération de traces sur des événements spécifiques. Ces traces sont destinées à être analysées par un administrateur ou corrélées avec d’autres traces dans un Security Information and Event Manager (SIEM) pour détecter des anomalies à investiguer. Cette section présente une liste des événements essentiels à journaliser pour disposer d’un minimum de visibilité sur la sécurité des activités d’un objet connecté et sur les applications avec lesquelles ils interagissent.

13. Réaliser des revues internes et externes de sécurité : cette section renvoi aux bonnes pratiques de l’Open Web Application Security Project (OWASP) pour l’intégration de la sécurité dans les phases de tests et de recettes des composants logiciels d’un objet connecté et des applications de son écosystème. Cette section recommande également le recours à des tiers pour notamment la validation de la sécurité du matériel à travers une approche Critères Communs tel que proposée par l’ICSA Labs.

Je vous partage le lien vers la publication qui détaille ces 13 étapes : https://cloudsecurityalliance.org/download/future-proofing-the-connected-world/

Pensez-vous que ces 13 étapes sont suffisantes pour concevoir des services sécurisés ?

N’hésitez pas à donner de nouvelles orientations ou demandes d’approfondissement de certain points dans les commentaires que je relaierai au groupe de travail.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *