La sécurité a toujours été l’un des aspects les plus importants des technologies de l’information. Aujourd’hui, de nombreuses organisations et leurs développeurs adoptent une approche privilégiant la sécurité dès la conception des applications. Ces principes et pratiques sont souvent regroupés sous le terme « DevSecOps », qui englobe l’ensemble de la culture et de l’approche en matière de sécurité des applications. DevSecOps signifie développement, sécurité et opérations. Cette démarche vise à intégrer une approche axée en priorité sur la sécurité dans tous les aspects des technologies de l’information et des infrastructures.
L’un des domaines les plus récents et les plus passionnants des technologies de l’information est la blockchain, qui s’accompagne d’un vaste écosystème de protocoles et d’applications décentralisés visant à nous faire entrer dans une nouvelle version du Web, que beaucoup appellent le Web3.
Qu’est-ce que le Web3 et qu’est-ce qu’une application décentralisée exactement ?
Le terme Web3 englobe différents concepts axés sur certains aspects de l’architecture des applications et de l’expérience utilisateur :
- Décentralisation
- Ouverture
- Immuabilité
- Programmabilité
- Transparence
Ces concepts fondamentaux visent à redonner aux utilisateurs le contrôle de leur identité grâce à la cryptographie à clé publique et à favoriser l’adoption d’une économie pair à pair au moyen de divers mécanismes et protocoles de blockchain. De nombreuses blockchains et les protocoles qui les entourent peuvent traiter des transactions avancées et gérer des états à l’aide de contrats intelligents exécutés dans des environnements virtualisés isolés.
Ces éléments sont ensuite synchronisés sur l’ensemble des 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 environnement distribué afin que tous les nœuds du système puissent s’accorder sur une source unique de vérité, même en cas de défaillance de certains acteurs. En outre, de nombreuses blockchains résistent à la censure en maintenant leurs protocoles ouverts et sans autorisation.
À quoi ressemble le paysage actuel ?
Une architecture fondée sur la blockchain présente un risque supplémentaire, car l’infrastructure centrale du réseau repose généralement sur une cryptomonnaie numérique basée sur des jetons, qui possède habituellement une valeur monétaire. Ces jetons sont détenus à des adresses, généralement stockées dans des comptes détenus en propre ou au sein de contrats intelligents. Et puisque la confiance est également distribuée grâce à la cryptographie à clé publique, chaque adresse du réseau est susceptible d’être attaquée.
Le solde de chaque compte est diffusé sur l’ensemble du réseau dans ce que l’on appelle le registre public, accessible à tous, ce qui offre aux pirates informatiques la possibilité de cibler des utilisateurs ou des contrats spécifiques. La confidentialité et l’anonymat revêtent donc une importance particulière dans le domaine de la blockchain. Souvent, les personnes qui gèrent ces comptes sont soit la cible d’attaques, soit en mesure, du fait de leur fonction, de se livrer à des activités illicites. Les menaces comprennent notamment :
- Ingénierie sociale
- Confiance ou clés mal gérées
- Détournement de fonds et fraude
- Arnaques
En outre, l’empreinte technologique de ces différentes technologies blockchain, de ces protocoles et de ces applications décentralisées est déjà importante et connaît une croissance rapide. Il est donc essentiel de réfléchir aux implications de cet écosystème en pleine expansion en matière de sécurité. Tout système reposant fondamentalement sur le principe de décentralisation présente une surface d’exposition plus étendue et, par conséquent, davantage de points d’attaque qui doivent être soigneusement analysés et sécurisés.
Voici quelques sujets à prendre en compte lors de l’audit de la sécurité de vos applications décentralisées et de votre infrastructure technologique :
- Blockchains de couche 1 (Bitcoin et Ethereum)
- Blockchains de couche 2 (chaînes latérales et rollups)
- Contrats intelligents
- Compilateurs
- Portefeuilles logiciels
- Portefeuilles matériels
- Clients blockchain (mineurs et validateurs)
- Plateformes d’échange dépositaires (centralisées)
- Plateformes d’échange DeFi (décentralisées)
- Fournisseurs
- Places de marché (NFT)
Vecteurs d’attaque courants dans les contrats intelligents
Lorsque nous parlons de DevSecOps dans le cycle de développement d’une application, nous faisons généralement référence au développement axé sur la sécurité. Cette approche est aussi communément appelée « décalage de la sécurité vers la gauche ». Il s’agit de l’un des aspects les plus importants de la culture DevSecOps, car elle amène les développeurs à considérer la sécurité comme du code dès le départ. Étant donné que les contrats intelligents basés sur la blockchain peuvent stocker de la valeur et faire office de banque, leur code est particulièrement vulnérable aux attaques et doit être écrit en accordant une attention rigoureuse à la sécurité.
Le secteur a connu plusieurs piratages ciblant les vulnérabilités des contrats intelligents, généralement dans le but d’exploiter leur code. L’un des plus importants piratages de l’histoire a eu lieu l’année dernière, lorsque Poly Network, un protocole interchaînes, a signalé qu’un attaquant avait piraté un contrat intelligent et transféré l’équivalent de 610 millions de dollars américains en déplaçant divers actifs vers des adresses de portefeuilles externes sous son contrôle.
Le développement de contrats intelligents présente de nombreuses vulnérabilités, mais les attaques les plus fréquentes sont notamment les suivantes :
- Dépassement de capacité par le bas et par le haut – Se produit généralement lorsque des opérations arithmétiques amènent des entiers non signés à atteindre la taille maximale en octets, ce qui entraîne un « bouclage » de la valeur et peut provoquer un comportement inattendu dans la logique métier de votre application.
- Réentrance de contrat – Action consistant à exploiter un contrat en y entrant à nouveau de manière répétée, l’attaquant retirant généralement plus de fonds que ce qui devrait être autorisé.
- Anticipation des transactions – Il s’agit du procédé par lequel une personne tire parti de la technologie ou d’un avantage sur le marché pour prendre connaissance à l’avance des transactions à venir.
- Secrets mal gérés.
- Contrôle d’accès mal implémenté.
Que pouvez-vous faire pour rétablir l’équilibre ?
- Instaurez une culture axée en priorité sur la sécurité. Les principes du DevSecOps constituent un excellent point de départ pour les organisations qui souhaitent développer une culture centrée sur la sécurité.
- Effectuez des audits. Les audits apportent un regard neuf sur la logique applicative et les processus opérationnels, aident à mettre au jour les vulnérabilités du code et renforcent la confiance des utilisateurs de votre application. MythX et Slither sont d’excellents outils pour auditer les contrats intelligents Ethereum.
- Proposez des primes aux bogues et effectuez des tests d’intrusion participatifs. La sécurité participative est une méthode éprouvée pour renforcer votre posture de sécurité. En inscrivant votre entreprise à des programmes de primes aux bogues et en effectuant des tests d’intrusion sur vos applications et votre infrastructure, vous pouvez anticiper les vulnérabilités et les piratages.
- Adoptez une stratégie open source. La transparence de votre application est essentielle dans le cadre d’une technologie telle que la blockchain, car elle permet aux participants de choisir d’y adhérer après vérification et audit de votre code. De plus, le fait de proposer des composants open source renforce la responsabilité de votre projet vis-à-vis de la communauté.
- Mettez en œuvre la multisignature pour les opérations administratives. La mise en œuvre de contrats intelligents reposant sur une architecture multisignature pour les fonctions administratives, telles que le transfert de propriété, de fonds et d’autres opérations critiques, renforcera la sécurité de votre application.
Conclusion
La blockchain, les applications décentralisées et les différents protocoles qui les entourent connaissent une croissance rapide. Ces nouvelles méthodes prometteuses de déploiement des applications pourraient bouleverser de nombreux secteurs. Toutefois, il est impératif d’adopter une approche axée en priorité sur la sécurité et d’instaurer une culture DevSecOps partout où cela est possible.
Pour aller plus loin
Pour toute personne qui découvre la blockchain, une bonne première étape consiste à consulter le livre blanc du protocole sur lequel elle développe :
Ensuite, étudiez les piratages et les vulnérabilités déjà recensés, quitte à tenter de reproduire l’attaque dans votre environnement de développement.
Pour acquérir une expérience pratique de la sécurité sur Ethereum, je recommande les programmes de capture du drapeau (CTF) suivants, dans lesquels des vulnérabilités ou des « drapeaux » sont dissimulés dans des programmes ou des sites web volontairement vulnérables afin d’enseigner les principes fondamentaux de la sécurité.
À propos de l’auteur

Articles de blog associés

F5 NGINXaaS pour Google Cloud : des applications résilientes et évolutives
Découvrez comment NGINXaaS s’intègre à Google Cloud pour renforcer les performances et la sécurité, et préparer vos applications critiques à un avenir propulsé par l’IA.
L’intégration de F5 Web Application Firewall (WAF) à AWS est disponible dès aujourd’hui
En faisant appel à un partenaire de déploiement AWS WAF tel que F5, vous pouvez renforcer la sécurité de vos applications web grâce à des règles personnalisées qui bloquent les schémas d’attaque courants, comme les injections SQL ou les attaques par scripts intersites (XSS).
Appliquer le principe de Peter Parker à l’inspection TLS
« Un grand pouvoir implique de grandes responsabilités. » Si l’on en trouve des échos chez Voltaire et Churchill, cette citation est surtout connue grâce aux bandes dessinées Spider-Man, où elle est attribuée à l’oncle Ben. Bien entendu, si cette phrase est si répandue dans la culture populaire, c’est notamment parce qu’elle peut s’appliquer à une multitude de situations et de sujets, y compris à l’inspection TLS.
Le NetOps a besoin de défenseurs, pas d’adversaires
Il est important de reconnaître que les équipes NetOps ne sont pas toujours celles qui font obstacle au déploiement de la dernière nouveauté, application ou service. Les freins à la rapidité sont souvent dus au fait que les organisations n’adoptent pas tous les principes du DevOps lorsqu’elles cherchent à transformer leurs opérations informatiques.
Mise à jour des services applicatifs : sécurité, rapidité et visiteurs suspects
Il est de nouveau temps de nous pencher sur les services applicatifs que les entreprises utilisent réellement pour rendre leurs applications plus rapides et plus sûres. On constate notamment une hausse du recours aux services de protection contre les bots, ainsi que la progression lente mais régulière de HTTP/2. Bien qu’il ne s’agisse pas d’une application…
Les templates prennent le contrôle du cloud
Les modèles s’imposent dans le cloud. Lisez le blog de F5 pour découvrir comment l’infrastructure en tant que code et les API déclaratives automatisent la mise à disposition des applications.