« N’importe qui peut constituer une proie. Soyez paranoïaques ».
C’est avec ces mots que Martin Swende, responsable de la sécurité au sein de la Fondation Ethereum, a conclu sa conférence portant sur la sécurité des smart contracts, lors de la Devcon3.
Jusqu’ici, le développeur a pu assister à de nombreuses attaques menées sur le réseau Ethereum.
Il y a eu le hack de TheDAO, suite auquel des millions de dollars d’Ethers ont été dérobés – un hack qui s’appuyait sur les failles d’un smart contract mal sécurisé. Il y a eu ensuite le ralentissement des transactions sur Ethereum, à cause d’un pirate resté inconnu – survenu alors que M. Swende venait tout juste de commencer à travailler sur le protocole. Et, il y a seulement quelques mois, un utilisateur s’était fait voler 30 millions de dollars d’Ethers à cause d’une faille de sécurité sur le wallet Parity.
Ajoutez à cela les différents piratages liés au Bitcoin, et vous comprendrez vite en quoi la problématique de la sécurité est décisive pour l’ensemble des réseaux Blockchain.
Les développeurs ont expliqué que, même si Ethereum était révolutionnaire, il persistait de nombreux problèmes de sécurité à résoudre. C’est l’une des raisons pour lesquelles la deuxième journée de la conférence Devcon3 a mis l’accent sur la sécurité, visant notamment à faire prendre conscience à la communauté de la nécessité d’améliorer celle des smart contract.
Mais en dépit de ces attaques majeures, les développeurs semblent rester optimistes quant à leurs chances de mieux sécuriser, à l’avenir, les smart contracts.
Sergio Demian Lerner, un scientifique travaillant pour le RSK Labs, une plateforme de smart contracts s’appuyant sur le réseau Bitcoin, a ainsi expliqué :
« L’écosystème tout entier est en train d’acquérir une plus grande maturité en termes de sécurité. »
La nécessité de disposer des bons outils
Alors que de nombreux éléments d’Ethereum nécessitent la mise en place de dispositifs de sécurité, le deuxième jour de la Devcon s’est focalisé sur les smart contrats, dans la mesure où les vulnérabilités qu’ils peuvent comporter sont susceptibles de provoquer des pertes d’Ethers pour les utilisateurs.
Manuel Araoz, chef de la direction technique de Zeppelin, une société qui propose des services d’audit de smart contracts, a expliqué que l’année 2016 constituait un « âge préhistorique » pour la sécurité d’Ethereum – la situation semble être en train d’évoluer.
Tout d’abord, le fait de « mettre à jour » des smart contracts, une fois qu’ils sont déployés sur Ethereum, apporte de nombreuses problématiques. En effet, contrairement aux logiciels traditionnels qui peuvent facilement être corrigés, le code d’un smart contract ne peut être mis à jour en cas de bug.
Mais Manuel Araoz et ses équipes ont commencé à travailler sur un outil qui devrait s’avérer particulièrement utile pour les développeurs. Ils ont ainsi récemment dévoilé l’élaboration d’un nouveau système d’exploitation qui vise à permettre des l’apport de modification au code d’un smart contract, même si celui-ci est déjà en cours d’exécution.
« Si nous trouvons un bug, ou que nous avons besoin d’améliorer un programme, nous pouvons le faire. » a‑t-il expliqué.
Même si ce projet ne permet pas totalement de résoudre la problématique des mises à jours, il offre un nouvel outil aux développeurs, qui pourra s’avérer précieux à l’avenir.
Un autre projet, Securify, a également été dévoilé lors de la conférence. Il agit comme un « bouton d’audit de sécurité » :

Dévoilé au cours d’un atelier intitulé « Not Your Grandma’s Smart Contract Verification », il offre aux développeurs l’accès à une interface simple, permettant de localiser des bugs et des vulnérabilités en un seul clic.
Quentin Hibon, chercheur au Software Reliability Lab d’ETH Zurich, a expliqué que Securify apportait « une forte garantie de sécurité ».
Pour Sergio Demian Lerner de RSK Labs, de tels développements sont plus qu’encourageants, et montrent que la communauté avance dans la bonne direction.
Il a également expliqué « que la machine virtuelle d’Ethereum (« EVM ») [avait] été améliorée en termes de sécurité ».
« Un système de vérification formelle y a été ajouté – un système qui utilise des preuves mathématiques pour détecter si les smart contracts fonctionnent correctement » a‑t-il poursuivi.
Il a ainsi conclu : « Solidity, le principal langage de programmation des smart contracts, est devenu plus mature – de nombreuses erreurs qui existaient auparavant ont été corrigées ».
« Je suis toujours inquiet »
Il ne s’agit pas de dire qu’il n’y aura plus jamais aucun problème avec les smart contracts.
La quasi-totalité des conférences dédiées à la sécurité se sont d’ailleurs conclues par un « appel à l’action », un avertissement ou une liste des défis auxquels devra répondre la deuxième Blockchain au monde en termes de capitalisation.
Sergio Demian Lerner a évoqué le fait qu’il examinait les contrats d’ICOs dans son temps libre, et qu’il était en mesure d’y déceler de nombreux bugs. « Le fait que les émetteurs de tokens cherchent désormais à s’appuyer sur l’aide d’experts en sécurité pour vérifier le code de leur contrat constitue un signe encourageant » a‑t-il expliqué.
Il s’agit également de proposer des bugs bounties pour inciter les hackers à alerter quant à d’éventuelles failles, plutôt que de tenter de les exploiter.
Mais de nombreuses initiatives n’en sont encore qu’à l’état de projet.
Ethereum – et les crypto-monnaies de manière plus générale – constituent, selon certains, un « paradis pour les hackers ».
« Le monde du hacking a profondément changé. Les sources de revenus des hackers se limitaient auparavant aux agissements de botnets, destinés à perpétrer des attaques par déni de service, ce qui est particulièrement complexe à mettre en place. Aujourd’hui, avec les crypto-monnaies, les attaques des hackers sont plus facilement monétisables, et n’impliquent que de faibles prises de risques. » a souligné Martin Swende.
Ceci suppose de nouveaux défis à relever pour les développeurs, ce qui amène M.Swende a appeler à plus de vigilance.
Il conclut :
« Je suis toujours inquiet. »
Référence : CoinDesk