Aller au contenu principal

Contrôles de sécurité pour les applications blockchain

La technologie blockchain a prouvé qu'elle allait au-delà des crypto-monnaies pour devenir une plateforme de transformation numérique. Cependant, le fait qu'il repose sur des primitives cryptographiques ne signifie pas qu'il est sécurisé par conception. Si les objectifs des contrôles de sécurité restent les mêmes pour les systèmes basés sur la blockchain, leur mise en œuvre doit être adaptée au paradigme de la blockchain.

Selon le rapport de Gartner intitulé "Top 10 Strategic Technology Trends for 2018", la blockchain évolue d'une infrastructure de monnaie numérique vers une plateforme de transformation numérique [1]. À ce titre, de nombreuses entreprises de divers secteurs ont investi dans cette technologie et commencent à dépasser le stade de la preuve de concept (PoC) pour entrer dans des environnements plus matures et commercialement pertinents.

Alors que les PoC commencent à être intégrés dans les écosystèmes d'applications et d'infrastructures existants, il est essentiel qu'ils soient protégés par un ensemble établi de contrôles de sécurité tels que ceux basés sur les cadres NIST, ISO 27002 ou ISF. Ceci est particulièrement important pour les industries hautement réglementées telles que les services financiers ou les soins de santé. En effet, bien que la blockchain trouve ses racines dans la cryptographie, les systèmes construits sur la technologie nécessitent toujours des contrôles pour fonctionner en toute sécurité. Dans notre précédent article "Protecting the distributed ledger"[2], nous avons mis en évidence l'idée fausse selon laquelle la technologie blockchain est intrinsèquement sûre. La blockchain offre effectivement une immutabilité inhérente, un ordre temporel des transactions et une tolérance aux pannes, mais les aspects tels que la conformité réglementaire, la confidentialité des données, la réponse aux incidents ou les capacités de résilience ne sont pas "prêts à l'emploi". Le "DAO hack"[3] est un exemple célèbre de défaillance de sécurité ayant entraîné des dommages financiers et des atteintes à la réputation. Un pirate a exploité une faille dans la conception d'un contrat intelligent* et s'est enfui avec 60 millions de dollars.

Dans ce qui suit, nous soulignons les principaux domaines de contrôle de la sécurité qui sont 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 essentielle pour tous les systèmes qui existent dans un cadre d'entreprise, qu'ils soient basés sur la blockchain ou non. En réalité, il est plus difficile de définir la gouvernance de la sécurité dans les environnements distribués que dans les environnements centralisés. Par exemple, dans le cas du piratage de la DAO, l'absence de politiques anticipées a obligé la communauté de la DAO à établir un processus ad hoc de réponse aux incidents en temps de crise.

Ci-dessous, nous soulignons l'impact de la blockchain sur trois aspects clés de la gouvernance de la sécurité et ce qu'il faut faire pour établir une bonne gouvernance dans les systèmes basés sur la blockchain.

1. Modèles de gouvernance

L'une des motivations fondamentales de la blockchain est l'absence d'autorité centrale. Toutefois, dans le cadre d'une entreprise, une structure de gouvernance et un modèle opérationnel sont essentiels pour permettre le bon fonctionnement et l'adoption de ce que l'on appelle les blockchains à autorisation, où les nœuds doivent être contrôlés avant d'être admis dans le réseau. En fait, le choix d'un modèle de gouvernance a une incidence sur des processus majeurs tels que la gestion du changement (par exemple la mise à jour du code de base ou l'application de correctifs de sécurité) et les processus de connaissance du client (KYC). Par conséquent, la gouvernance de la sécurité doit être adaptée au modèle global de gouvernance de la blockchain, qui prend généralement la forme d'un consortium, d'une coentreprise ou d'une organisation statutaire, et doit tenir compte du mécanisme de consensus, du type de blockchain (privée/publique, avec ou sans permission [4]) et du processus d'approbation des nœuds.

2. Exigences réglementaires

L'ensemble des exigences réglementaires applicables à un système basé sur la blockchain est spécifique à l'industrie. En raison des caractéristiques intrinsèques de la technologie, certaines de ces exigences seront plus difficiles à appliquer par rapport aux systèmes centralisés standard. En effet, le respect des exigences de confidentialité équivalentes au GDPR, telles que la confidentialité des données, le droit à l'oubli et la suppression des données, nécessitera certaines considérations de conception spécifiques, telles qu'éviter le stockage de données privées sur la chaîne, l'utilisation d'identifiants pseudonymes ou de preuves de connaissance zéro [5]. Par conséquent, il est essentiel de tirer parti du concept de protection 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 compte, entre autres, les exigences en matière 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

Le fait que des tiers participent aux réseaux de blockchain augmente le risque inhérent à la sécurité des tiers. Il est donc essentiel que les tiers qui gèrent des nœuds dans la blockchain soient tenus de respecter les mêmes normes de sécurité et qu'une diligence raisonnable spécifique à la blockchain (voir les contrôles de prévention et de résilience ci-dessous) soit effectuée lors de l'intégration. En fonction du modèle de gouvernance (voir point 1 ci-dessus), la diligence raisonnable peut être effectuée par un consortium, une coentreprise ou une organisation statutaire. 

La prévention

 

Les contrôles de prévention permettent de défendre les actifs critiques contre les menaces connues et émergentes. L'épine dorsale de la blockchain étant la cryptographie, l'utilisation de cette science pour mettre en œuvre des contrôles de prévention semble évidente ; la clé est de s'assurer que des contrôles complémentaires sont ajoutés pour compléter ceux fournis par défaut et que ces contrôles sont présents sur tous les nœuds participants.

Ci-dessous, nous attirons l'attention sur les principaux domaines de contrôles de prévention qui devraient être mis en place à travers les couches de données, d'application et d'infrastructure lors de la conception d'applications basées sur la blockchain.

1. Protection des données
 

La technologie blockchain a été conçue en utilisant des primitives cryptographiques telles que les fonctions de hachage pour l'intégrité des données (immutabilité) et les signatures numériques pour la non-répudiation et l'authenticité. Si l'intégrité et l'authenticité des données sont assurées de par leur conception, la blockchain n'assure pas la confidentialité des données.

Les signatures numériques s'appuient sur l'infrastructure à clé publique (PKI) qui peut également être utilisée pour protéger les données sur la chaîne, c'est-à-dire les données stockées sur la blockchain elle-même, par le biais du cryptage. D'autres techniques cryptographiques peuvent être utilisées pour réduire ou supprimer les dépendances à l'égard de nœuds uniques, par exemple en demandant à plusieurs nœuds de décrypter collectivement à l'aide de clés partagées ou de signer collectivement des données critiques à l'aide de schémas de multi-signature.

Enfin, les données peuvent être davantage protégées en appliquant la minimisation des données, c'est-à-dire en conservant les données sensibles de manière sécurisée en dehors de la chaîne et en n'autorisant que les données non critiques sur la chaîne.

L'utilisation de l'ICP existante pour assurer la confidentialité des données est intéressante, mais elle présente un risque de disponibilité en raison de la forte dépendance à l'égard de l'ICP à des fins multiples, notamment l'authentification, l'autorisation et la protection des données. Ce risque est décrit plus en détail dans la section Résilience ci-dessous.

2. Protection de l'application
 

L'un des principaux défis en matière de protection des applications basées sur la blockchain est de former les ingénieurs en sécurité à comprendre la technologie de la blockchain, ses propriétés et la manière dont elles affectent la sécurité globale des systèmes construits au-dessus d'elle. En outre, les concepts basés sur la blockchain, tels que les contrats intelligents, peuvent inclure un code complexe. La nécessité de mettre en place des processus et des politiques de développement sécurisés pour garantir l'utilisation de bibliothèques et d'interfaces logicielles pré-approuvées et testées, des révisions régulières du code et des correctifs est exacerbée par le fait que les contrats intelligents sont entièrement automatisés. Dans l'exemple du "piratage de la DAO", un examen plus approfondi du code aurait pu permettre d'éviter le défaut de conception du contrat intelligent qui était au cœur de l'incident. En outre, les contrats intelligents sont généralement alimentés par des données extérieures à la blockchain, par exemple des taux de change ou des mesures provenant de capteurs intelligents. Par conséquent, une validation appropriée des entrées et des contrôles d'intégrité des données doivent être effectués pour protéger la fonctionnalité et l'intégrité des systèmes.

3. Protection des infrastructures
 

La technologie blockchain étant construite à partir de composants traditionnels, tous les vecteurs d'attaque typiques de l'infrastructure, tels que les logiciels malveillants et le piratage, restent pertinents pour les applications basées sur la blockchain. Ainsi, les contrôles d'infrastructure traditionnels tels que l'analyse des vulnérabilités et la gestion des correctifs doivent être appliqués sur tous les nœuds. Il peut être nécessaire de mettre en œuvre des passerelles de réseau privé virtuel (VPN) dédiées pour mettre en œuvre la connectivité entre les nœuds et permettre aux nœuds qui sont géographiquement dispersés de communiquer en toute sécurité.

La résilience

 

Lorsque la DAO a découvert que ses fonds étaient siphonnés, elle n'avait pas de plan de reprise. Il y a eu de nombreuses tentatives 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 a 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épondre rapidement aux changements internes et externes, aux demandes, aux perturbations et aux menaces, de manière à poursuivre les opérations avec un impact limité sur l'entreprise. La résilience est l'une des principales motivations des entreprises pour utiliser la technologie blockchain, bien que cette propriété ne soit peut-être pas aussi inhérente que certains le pensent. En effet, la technologie blockchain élimine un point de défaillance unique et offre une résilience opérationnelle grâce à sa redondance intégrée. D'un autre côté, elle dépend fortement de la connectivité internet, d'une distribution suffisante des nœuds (en particulier dans les réseaux blockchain privés) et de l'ICP, de sorte qu'il est toujours important de prendre en compte les exigences en matière de résilience lors de la conception de systèmes basés sur la blockchain.

La mise en œuvre des contrôles de continuité des activités et de reprise après sinistre est facilitée par la nature décentralisée de la technologie blockchain. Dans ce contexte, il est important de comprendre quel mécanisme de consensus est utilisé et quel sera l'impact sur la disponibilité du système si un sous-ensemble de nœuds 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. Il est donc essentiel de mettre en œuvre des processus de gestion des clés sûrs et résilients, y compris des sauvegardes sécurisées des clés et des environnements matériels inviolables pour le stockage des clés privées. Enfin, la cryptographie, fondement de la technologie blockchain, étant une course aux armements, les entreprises doivent suivre les progrès de la cryptoanalyse qui pourraient potentiellement briser certains protocoles ou réduire la sécurité des systèmes.

Les organisations qui prévoient de mettre en service un système basé sur la blockchain peuvent souhaiter examiner les points ci-dessus dans le contexte de leurs cadres de contrôle de la sécurité afin de gérer les risques juridiques, réglementaires, opérationnels et financiers.

Références :
 

* Ou caractéristique, selon le point de vue.

[1]Les 10 principales tendances technologiques stratégiques pour 2018, Gartner

[2]Cyber Flash - Protecting the distributed ledger, Deloitte, en ligne.

[3]Inside the Bold Attempt to Reverse a $55 Million Digital Heist, Bloomberg Markets, juin 2017, en ligne.

[4]La différence entre blockchain publique et privée, IBM, mai 2017 en ligne.

[5]Zero Knowledge Proofs, Ben Lynn, Stanford, en ligne.

[6]La DAO - Chronologie d'un casse audacieux, Deloitte Blockchain Institute.

Did you find this useful?

Thanks for your feedback

Si vous souhaitez contribuer à l'amélioration de Deloitte.com, veuillez remplir un formulaire de demande d'information. Enquête de 3 minutes