Blockchain, protocoles et applications décentralisés : l’importance de l’approche DevSecOps

Par :
Kevin Jones

mer, 16/11/2022 - 11:23

La sécurité a toujours été un aspect essentiel des technologies de l’information. Aujourd’hui, les développeurs de nombreuses organisations pensent « sécurité » dès la création d’une application. L’ensemble de ces principes et actions est souvent désigné par l’acronyme « DevSecOps » qui recouvre de manière globale la culture et l’approche de la sécurité des applications. Le DevSecOps englobe tout à la fois le développement, la sécurité et les opérations (exploitation). L’approche consiste à intégrer un état d’esprit orienté sécurité dans tous les aspects des technologies de l’information et des infrastructures.

L’un des marchés les plus récents et les plus passionnants des technologies de l’information est celui de la blockchain, qui s’accompagne d’un gigantesque écosystème de protocoles et d’applications décentralisés visant à nous faire entrer dans une nouvelle version du web, que beaucoup appellent web3.

Qu’est-ce que le web3 et qu’est-ce qu’une application décentralisée ?

Le terme « web3 » englobe différents concepts ciblant l’architecture des applications et l’expérience utilisateur. De la décentralisation, à l’ouverture en passant par l’immutabilité, la programmabilité et la transparence.

Ces notions centrales visent à redonner aux utilisateurs le contrôle de leur identité par la cryptographie à clé publique, et à promouvoir l’adoption des échanges peer-to-peer grâce aux différents mécanismes et protocoles de la blockchain. De nombreuses blockchains, et les protocoles qui les entourent, peuvent traiter des transactions complexes et en gérer l’état au moyen de contrats intelligents exécutés dans des environnements virtualisés isolés.

Ceux-ci sont ensuite synchronisés entre tous les nœuds du réseau grâce à un mécanisme appelé algorithme de consensus. Ce mécanisme permet aux utilisateurs ou aux nœuds de se coordonner dans un cadre distribué, afin de garantir que tous les nœuds du système puissent s’accorder sur une source fiable unique, même si certains agents sont défaillants. En outre, de nombreuses blockchains fonctionnent de manière à résister à la censure en maintenant leurs protocoles ouverts et sans autorisation.

À quoi ressemble le paysage ?

Une architecture basée sur la blockchain comporte un risque inhérent, car la colonne vertébrale du réseau est généralement alimentée par une cryptomonnaie numérique, basée sur des jetons, généralement associée à une valeur monétaire. Ces jetons sont détenus dans des adresses, généralement stockées dans des comptes appartenant à des tiers ou dans des contrats intelligents. Et comme la confiance est également distribuée par le recours à la cryptographie à clé publique, chaque adresse du réseau est susceptible d’être attaquée.

Le solde de chaque compte est réparti sur le réseau dans ce que l’on appelle le grand livre public, visible par tous, ce qui laisse aux cybercriminels une fenêtre ouverte pour cibler certains utilisateurs ou contrats. La vie privée et l’anonymat ont donc une importance toute particulière pour la blockchain. Souvent, les personnes qui gèrent ces comptes sont la cible d’attaques ou bénéficient d’une trop grande confiance qui leur permet d’agir de manière illicite (ingénierie sociale, mauvaise gestion de la confiance ou des clés, détournement de fonds et fraude, escroqueries).

En outre, l’empreinte IT de ces différentes technologies, protocoles et applications décentralisés de la blockchain est déjà forte et elle se développe rapidement. Il est donc important de réfléchir aux implications de cet écosystème en pleine expansion en matière de sécurité. Tout ce qui est construit à la base sur un concept de décentralisation offre un paysage élargi et donc plus de points vulnérables, qui doivent être soigneusement analysés et sécurisés.

Voici quelques points qui méritent d’être pris en compte dans l’audit de la sécurité des applications et infrastructures technologiques décentralisées :

  • Blockchains de niveau 1 (Bitcoin et Ethereum)
  • Blockchains de niveau 2 (Sidechains et Rollups)
  • Contrats intelligents
  • Compilateurs
  • Portefeuilles logiciels
  • Portefeuilles matériels
  • Clients de la blockchain (mineurs et validateurs)
  • Échanges en dépôt (centralisés)
  • Échanges DeFi (décentralisés)
  • Prestataires
  • Places de marché (NFT)

Vecteurs d’attaque courants dans les contrats intelligents

En ce qui concerne le cycle de vie du développement d’une application, l’approche DevSecOps fait généralement référence au développement orienté sécurité. On pourrait également parler de transfert de sécurité vers l’amont. C’est l’un des aspects les plus importants de la culture DevSecOps, qui commence avec les développeurs, qui considèrent la sécurité comme du code. Comme les contrats intelligents basés sur la blockchain peuvent stocker de la valeur et agir comme une banque, cela rend le code qu’ils contiennent extrêmement vulnérable aux attaques. Ils doivent donc être écrits avec à l’esprit une stricte exigence de sécurité.

Nous avons vu plusieurs cyberattaques ciblant les contrats intelligents. Les vulnérabilités sont généralement axées sur l’exploitation du code. L’une des plus grandes attaques de l’histoire a eu lieu l’année dernière lorsque Poly Network, un protocole cross-chain, a signalé qu’un cybercriminel avait piraté un contrat intelligent, transférant l’équivalent de 610 millions de dollars en déplaçant différents actifs vers des adresses de portefeuilles externes qu’il contrôlait.

Les vulnérabilités du développement des contrats intelligents sont nombreuses, mais les attaques ciblent le plus souvent les points suivants :

  • Souspassement et dépassement. Se produit généralement lorsque des opérations arithmétiques font que des entiers non signés atteignent leur taille maximale en octets, la valeur « s’enroule » alors et peut provoquer un comportement inattendu dans la logique commerciale de votre application.
  • Réentrée du contrat. Désigne l’exploitation d’un contrat en le réintroduisant à plusieurs reprises, le cybercriminel retirant généralement plus de fonds que ce qui devrait être autorisé.
  • Antétransaction. Processus par lequel quelqu’un utilise une technologie ou un avantage sur le marché pour obtenir une connaissance préalable de transactions futures.
  • Des secrets mal gérés.
  • Un mauvais déploiement des contrôles d’accès.

Qu’est-il possible de faire pour équilibrer les forces en présence ?

  • Instaurer une culture de la sécurité avant tout. L’approche DevSecOps constitue un excellent point de départ pour les organisations qui cherchent à instaurer une culture de la sécurité.
  • Effectuer des audits. Les audits ouvrent de nouvelles perspectives sur la logique de l’application et les processus opérationnels, font apparaître les vulnérabilités du code et inspirent confiance aux utilisateurs de votre application. MythX et Slither sont d’excellents outils pour auditer les contrats intelligents Ethereum.
  • Proposer des primes aux bogues et effectuer des tests d’intrusion citoyenne. La sécurité citoyenne est une méthode éprouvée qui aide à renforcer votre empreinte de sécurité. En plaçant votre entreprise dans des programmes de primes aux bogues et en effectuant des tests de pénétration de vos applications et de votre infrastructure, vous pouvez garder une longueur d’avance sur les vulnérabilités et les cyberattaques.
  • Adopter une stratégie open-source. La transparence de votre application est importante dans une technologie comme la blockchain, car elle permet aux participants de choisir d’adhérer en se fondant sur la vérification et les audits de votre code. De plus, le fait d’avoir des composants open-source permet de mieux rendre compte de votre projet dans un cadre communautaire.
  • Mettre en œuvre la multisignature pour les opérations administratives. La mise en œuvre de contrats intelligents adoptant une architecture multisignature pour les fonctions administratives telles que le transfert de propriété, de fonds et d’autres opérations critiques apportera une couche supplémentaire de sécurité pour votre application.

La blockchain, les applications décentralisées et les différents protocoles qui les entourent connaissent une croissance rapide. Ces nouveaux modes de déploiement des applications peuvent bouleverser de nombreux secteurs d’activité. Nous devons toutefois conserver une approche orientée sécurité, et mettre en œuvre autant que possible une véritable culture DevSecOps.

 

A propos de l'auteur

Kevin Jones

Chef de produit senior pour NGINX chez F5