Points de vue
Contrôles de sécurité pour les applications de la blockchain
La technologie de la blockchain s’est avérée être bien plus qu’un réseau de cryptomonnaies: elle est devenue une véritable plateforme de transformation numérique. Cependant, le fait qu'elle repose sur des primitives cryptographiques ne signifie pas pour autant qu’elle est conçue pour être sécurisée. Bien que les objectifs de contrôle de sécurité restent inchangés pour les systèmes basés sur la technologie de la blockchain, leur mise en oeuvre doit s'adapter au paradigme de la blockchain.
Selon le rapport de Gartner intitulé Les 10 plus grandes tendances de technologie stratégique pour 2018, la blockchain évolue: l’infrastructure de monnaies numériques devient plateforme de transformation numérique. [1]. Ainsi, de nombreuses entreprises issues de secteurs variés ont investi dans cette technologie et commencent à dépasser le stade de la validation de principe (PoC, Proof of Concept) [2] pour établir des environnements plus matures et mieux adaptés sur le plan commercial.
Alors que les PoC commencent à être incorporées aux écosystèmes d'applications et d'infrastructures existants, il est essentiel de les protéger par un ensemble établi de contrôles de sécurité tels que ceux conformes aux normes NIST, ISO 27002 ou ISF. Ce processus est tout particulièrement important lorsqu’il s'agit de secteurs d’activité rigoureusement réglementés tels que les services financiers ou la santé. En effet, même si la cryptographie est mère de la blockchain, les systèmes conçus à partir de cette technologie nécessitent encore des contrôles pour fonctionner en toute sécurité. Notre newsletter précédente présentait un article intitulé « Protéger le registre distribué » [3], qui mettait au jour cette idée fausse répandue selon laquelle la technologie de la blockchain est, par essence, sécurisée. Si la blockchain offre une certaine immuabilité, une tolérance aux pannes et permet l’exécution des transactions selon un ordre chronologique, elle ne garantit pas certains aspects liés à la sécurité tels que la conformité réglementaire, la confidentialité des données, une réponse appropriée en cas d’incident ou encore des capacités de résilience. Un célèbre exemple de faille de sécurité ayant causé des dommages financiers et réputationnels est celui du « piratage de The DAO » [4] où un pirate a exploité un défaut de conception d’un smart contract* et s'est enfui avec 60 millions de dollars américains.
Dans les parties suivantes, nous présentons les principaux domaines de contrôles de sécurité nécessaires pour compléter les propriétés de sécurité inhérentes à la blockchain et protéger les applications de la blockchain.
Gouvernance de la sécurité
La gouvernance de la sécurité est fondamentale pour tous les systèmes qui existent au sein de l'entreprise, qu'ils soient basés ou non sur une technologie blockchain. En réalité, définir la gouvernance de la sécurité pour des environnements distribués représente un plus grand défi que pour ceux qui sont centralisés. Par exemple, dans le cas du piratage de The DAO, le manque de politiques d'anticipation a poussé la communauté de The DAO à établir un processus d’intervention ponctuel en cas d'incident en temps de crise.
Ci-dessous, nous traitons de l'impact de la blockchain sur trois aspects clés de la gouvernance de la sécurité, ainsi que des mesures à prendre pour établir une bonne gouvernance adaptée aux systèmes basés sur la blockchain.
1. Modèles de gouvernance
L'une des motivations premières à la base de l’existence de la blockchain est l'absence d'autorité dirigeante centrale. Cependant, dans le cadre d’une entreprise, une structure de gouvernance et un modèle opérationnel sont essentiels au bon fonctionnement et à l'adoption correcte de ce que l’on appelle des blockchains privées (permissioned). Pour ce type de blockchain, les noeuds doivent être contrôlés avant d'être admis sur le réseau. En réalité, le choix d'un modèle de gouvernance affecte les processus majeurs tels que la gestion des modifications (par exemple, la mise à jour du code principal ou la mise en place de patchs de sécurité) et les processus Know Your Customer (KYC). Par conséquent, la gouvernance de la sécurité doit être adaptée afin de correspondre à l'ensemble du modèle de gouvernance de la blockchain qui prend généralement la forme d'un consortium, d'une entreprise commune ou d'un organisme public[5]. Elle doit prendre en compte le mécanisme du consensus, le type de blockchain (privée/publique, avec/sans permission [6]) ainsi que le processus de contrôle des noeuds.
2. Exigences réglementaires
L'ensemble des exigences réglementaires applicables à un système basé sur la blockchain dépend du secteur d'activité. De par les fonctionnalités propres à la technologie, certaines de ces exigences seront plus compliquées à faire appliquer, contrairement aux systèmes centralisés standard. En effet, le respect des exigences en matière de protection de la vie privée équivalentes au RGPD, telles que la confidentialité des données, le droit à l'oubli et la suppression des données nécessitera des considérations spécifiques dès la conception. Il s’agira par exemple d’éviter de stocker des données personnelles sur la chaîne, d’utiliser des identifiants pseudonymes ou des preuves à divulgation nulle de connaissance (zero-knowledge proofs) [7]. Ainsi, il est fondamental de tirer parti du concept de respect de la vie privée dès la conception lors du développement de systèmes basés sur la blockchain et de prendre en considération, entre autres, les exigences de minimisation, de conservation et de suppression des données dès les premières étapes du processus de conception.
3. Gestion des risques liés aux tiers
La participation de tiers aux réseaux de la blockchain augmente le risque de sécurité qui leur est inhérent. Il est donc crucial que les tiers qui gèrent les noeuds de la blockchain soient tenus de respecter les mêmes normes de sécurité et que la diligence raisonnable spécifique à la blockchain (voir Contrôles de prévention et de résilience, ci-dessous) soit effectuée au cours du processus d'intégration. Selon le modèle de gouvernance (voir le paragraphe 1, ci-dessus), la diligence raisonnable peut être réalisée par un consortium, une entreprise commune ou un organisme public.
Prévention
Les contrôles de prévention servent à renforcer la capacité à défendre les avoirs importants contre les menaces connues et émergentes. Etant donné que le pilier de la blockchain est la cryptographie, il semble évident d’utiliser cette science pour mettre en oeuvre les contrôles de prévention. La clé est de s'assurer que des contrôles complémentaires sont effectués pour parfaire ceux fournis par défaut et que ces contrôles se font sur la totalité des noeuds participants.
Ci-dessous, nous présentons les principaux domaines de contrôles de prévention qui doivent être mis en place à travers les couches de données, d'applications et d'infrastructure lors de la conception d'applications basées sur la blockchain.
1. Protection des données
La technologie de la blockchain a été conçue à l'aide de primitives cryptographiques telles que les fonctions de hachage pour l'intégrité des données (immuabilité) et les signatures numériques à des fins d'authenticité et de non-répudiation. Alors que l'intégrité et l'authenticité des données sont présentes dès la conception, la blockchain ne garantit pas la confidentialité des données.
Les signatures numériques exploitent les infrastructures à clés publiques (ICP) qui peuvent être également utilisées pour protéger les données sur la chaîne, c’est-à-dire les données stockées sur la blockchain elle-même via cryptage. D'autres techniques cryptographiques peuvent être utilisées afin de réduire ou de supprimer la dépendance à des noeuds uniques. Il s'agit par exemple de faire en sorte que plusieurs noeuds décryptent collectivement à l'aide de clés partagées ou signent collectivement des données cruciales à l'aide de procédés par signatures multiples. Enfin, les données peuvent être mieux protégées grâce à l'application de la minimisation des données, c’est-à-dire en conservant les données sensibles en dehors de la chaîne et en permettant uniquement la présence des données non-critiques sur la chaîne.
Exploiter l'ICP existante pour garantir une confidentialité des données est tentant, mais cela induit un risque de disponibilité en raison de la forte dépendance à l'ICP pour divers usages, notamment les authentifications, les autorisations et la protection des données. Ce risque est expliqué en détail dans la section ci-dessous intitulée “Résilience”.
2. Protection des applications
L'un des principaux défis de la protection des applications basées sur la blockchain est de former les ingénieurs en sécurité afin qu'ils comprennent la technologie de la blockchain, ses propriétés et la manière dont celles-ci affectent la sécurité globale des systèmes qui sont développés à partir de cette technologie. En outre, les concepts basés sur la blockchain tels que les smart contracts peuvent comporter des codes complexes. La nécessité de mettre en place des politiques et des processus de développement sécurisés pour assurer l'utilisation des interfaces et bibliothèques logicielles pré-approuvées et testées, les vérifications des codes régulières et l'ajout de patchs, est exacerbée par le fait que les smart contracts sont entièrement automatisés. Dans le cas du piratage de The DAO, une vérification plus rigoureuse du code aurait pu permettre d'éviter le défaut de conception des smart contracts à l'origine de l'incident. De plus, ces contrats reçoivent généralement des entrées provenant de données externes à la blockchain comme les taux de change ou les mesures de capteurs intelligents. Ainsi, une validation d'entrée correcte et des vérifications d'intégrité des données doivent être effectuées afin de protéger les fonctionnalités et l'intégrité des systèmes.
3. Infrastructure Protection
Etant donné que la technologie de la blockchain est développée à l'aide de composants traditionnels, tous les vecteurs d'attaque d'infrastructures typiques tels que les logiciels malveillants et le piratage peuvent tout à fait atteindre les applications basées sur la blockchain. Les contrôles d'infrastructures traditionnels tels que les analyses de vulnérabilité et la gestion des patchs doivent donc être effectués sur tous les noeuds. Il peut s'avérer nécessaire d’utiliser des passerelles de réseaux privés virtuels (Virtual Private Network - VPN) pour mettre en place une connectivité entre les noeuds et permettre à ceux qui sont dispersés géographiquement de communiquer en toute sécurité.
Résilience
Lorsque The DAO a découvert que ses fonds avaient été dérobés, il n’avait aucun plan de redressement. De nombreuses tentatives ont été mises en place pour contenir l'incident, mais le réseau n'a pas été en mesure d'obtenir un consensus dans le court laps de temps disponible. Il aura fallu plus d'un mois pour se remettre de l'incident.[8].
Les contrôles de résilience permettent aux opérations d'une organisation de s'adapter et de réagir rapidement aux modifications internes et externes, aux demandes, aux perturbations et aux menaces afin que ces opérations puissent se poursuivre avec un impact limité sur l’entreprise. La résilience est l'une des motivations principales pour lesquelles les entreprises utilisent la technologie de la blockchain, bien que cette propriété ne lui soit pas nécessairement inhérente comme certains le pensent. En effet, la technologie de la blockchain élimine une panne localisée et offre une résilience opérationnelle grâce à sa redondance intégrée. D'autre part, elle dépend énormément de la connectivité Internet, de la répartition suffisante des noeuds (particulièrement dans les réseaux de la blockchain privée) et de l'ICP. Il est donc important de prendre en considération les exigences relatives à la résilience lors de la conception de systèmes basés sur la blockchain.
La mise en oeuvre de contrôles de continuité des activités et de plans de rétablissement est facilitée par la nature décentralisée de la technologie de la blockchain. Dans un tel contexte, il est important de comprendre quel mécanisme de consensus est utilisé et comment celui-ci affectera la disponibilité du système si un sous-ensemble de noeuds ne répond plus. Malgré la résilience inhérente à la blockchain, la continuité des activités est étroitement liée à la disponibilité de l'ICP. Si l'ICP d'un système n'est pas résiliente, le système lui-même ne le sera pas non plus. De ce fait, il est crucial de mettre en oeuvre des processus sécurisés et résilients de gestion de clés, et notamment des sauvegardes de clés sécurisées et des environnements matériels inviolables pour le stockage des clés privées. Enfin, étant donné que la technologie de la blockchain et que la cryptographie sont, par essence, une course contre la montre, les entreprises doivent suivre les avancées de la crypto-analyse à même de briser potentiellement certains protocoles ou d’affaiblir la sécurité des systèmes.
Les organisations qui envisagent de mettre en place un système basé sur la blockchain devraient prendre en considération les points susmentionnés au regard des structures de contrôle de sécurité de leur organisation afin d’être en mesure de gérer les risques juridiques, réglementaires, opérationnels et financiers.
Références :
* Ou une fonctionnalité, selon le point de vue.
[1]Top 10 Strategic Technology Trends for 2018, Gartner
[2]Blockchain solutions are moving beyond the proof of concept stage, Business Insider, July 2017 Online.
[3]Cyber Flash – Protecting the distributed ledger, Deloitte, Online.
[4]Inside the Bold Attempt to Reverse a $55 Million Digital Heist, Bloomberg Markets, June 2017, Online.
[5]Blockchain Control Principles in Financial Services, Deloitte, Online.
[6]The difference between public and private blockchain, IBM, May 2017 Online.
[7]Zero Knowledge Proofs, Ben Lynn, Stanford, Online.
[8]The DAO – Chronology of a daring heist, Deloitte Blockchain Institute.
Recommandations
Journeys to cyber security - what does it take?
Different perspectives, one passion