Partager cet article

Comment les applications Ethereum obtiennent des notes de sécurité A+

Plus de 1,2 million d'applications Ethereum ont utilisé un outil de sécurité peu connu d'Amberdata pour aider à éviter les erreurs coûteuses des contrats intelligents.

Plus de 1,2 million d'applications Ethereum ont utilisé un outil de sécurité peu connu pour les aider à éviter les erreurs coûteuses résultant de lignes de code auto-exécutables appelées contrats intelligents.

Lancé en octobre par Amberdata, une start-up spécialisée dans la Technologies Ethereum , cet outil gratuit est accessible au grand public pour analyser la sécurité des applications actives sur la blockchain Ethereum . Les contrats intelligents dont les failles ont été exploitées ont entraîné des pertes colossales, allant jusqu'à 1 000 $.des centaines de millions.

La Suite Ci-Dessous
Ne manquez pas une autre histoire.Abonnez vous à la newsletter Crypto Long & Short aujourd. Voir Toutes les Newsletters

Le service automatisé recherche les vulnérabilités courantes trouvées dans le code des contrats intelligents et génère une note (par exemple A, B ou C) pour la sécurité d'une application décentralisée (dapp).

Cette fonctionnalité est ONEun des nombreux outils encourageant les meilleures pratiques et une transparence accrue entre les développeurs d’applications décentralisées et les utilisateurs finaux dans l’écosystème Ethereum .

De plus, cette fonctionnalité est présente sur le web depuis un certain temps. Le navigateur soucieux de la confidentialité DuckDuckGo a récemment lancé une extension Chrome permettant d'évaluer les sites web (et non les dapps) à l'aide d'une note alphabétique, offrant ainsi aux utilisateurs un aperçu clair de la protection de la Politique de confidentialité des utilisateurs par les administrateurs.

« Notre vision est d'élever le niveau de confiance en ligne », écrit DuckDuckGo dans unarticle de blogà partir de janvier 2017.

De même, la vision derrière l’outil de notation de sécurité d’Amberdata, comme l’a souligné le PDG d’Amberdata, Shawn Douglass, dans un communiqué de presse, est de fournir « un meilleur accès et une visibilité améliorée sur les contrats intelligents ».

Il a ajouté :

« Nous espérons qu’en fournissant ces outils à la communauté, nous pourrons réduire les dépendances extérieures et permettre à la communauté de se développer plus rapidement et en toute sécurité. »

Les notes

Mais comment ces applications sur Ethereum sont-elles exactement notées sur Amberdata ?

En évoquant 13 types de vulnérabilités analysées automatiquement par le programme, Joanes Espanol, directeur technique d'Amberdata, a comparé chacune d'entre elles à des « voyants de moteur sur le tableau de bord [d'une voiture] ».

« Cela signifie simplement que je dois vérifier ce qui se passe avec la voiture. Chacun de ces problèmes peut entraîner une erreur de sécurité », a expliqué Espanol à CoinDesk.

Plus l'analyse de sécurité d'Amberdata détecte d'erreurs de sécurité, plus la note attribuée à une DApp est basse. Ces notes vont de A+ à F.

Mais ils ne dépendent T strictement du nombre d'erreurs de sécurité. Chacune des 13 vulnérabilités présente un degré de gravité variable, explique Espanol, ce qui influencera la note finale d'une dApp. Deux vulnérabilités courantes de faible gravité, identifiées par Espanol, incluent « l'appel d'un délégué à une adresse fournie par l'utilisateur » et « l'appel d'un message à un contrat externe ».

Ce dernier peut présenter un risque potentiel de sécurité si une dapp, plutôt que d'être autonome dans un contrat intelligent, appelle des contrats supplémentaires possédant un code bogué.

De même, un appel délégué est une autre opération normalement utilisée pour diviser le code d’un contrat intelligent en plusieurs sous-contrats, de sorte que toutes les mises à niveau nécessaires du logiciel puissent être effectuées de manière fragmentaire sans mettre fin à l’ensemble de l’application.

« C'est l'avantage de ces appels délégués. Mais l'inconvénient, c'est qu'en tant que propriétaire du contrat, je pourrais commencer à faire des erreurs. Je pourrais donc remplacer des contrats qui modifient le comportement de l'application d'origine », explique Espanol.

Ainsi, sur les deux points, Espanol a décrit l’audit de sécurité comme envoyant des « avertissements », plutôt que de signaler des erreurs de code immédiates.

En effet, TrueUSD est ONEune de ces applications décentralisées qui exploite actuellement l'appel de messages et qui a déployé une mise à niveau de contrat intelligent utilisant l'appel délégué en janvier. Créé par la startup blockchain TrustToken, le stablecoin sur Ethereum , adossé au dollar américain, est actuellement classé au premier rang. Note de lettre C.

Bien que cela ne semble T bon, en examinant les vulnérabilités signalées pour TrueUSD, l'ingénieur en sécurité de TrustToken, William Morriss, a déclaré à CoinDesk dans une précédente interview que tous les problèmes identifiés n'étaient en fait pas « critiques ».

« Les vulnérabilités qui sont signalées ne constituent pas des moyens par lesquels nous pouvons être attaqués… Nous en sommes conscients et lorsque des personnes nous signalent des vulnérabilités, nous les traitons très au sérieux », a déclaré Morriss.

En élaborant spécifiquement sur la question des appels de messages, Morriss a ajouté que pour TrueUSD, tous les contrats externes sont détenus et exploités par les entreprises elles-mêmes, par opposition à des tiers avec des normes de sécurité potentiellement inférieures.

Comment obtenir un A+

Les erreurs de gravité « élevée » auront un impact plus important sur la note de sécurité de l'application, car elles indiquent un potentiel plus élevé d'erreur de code et d'exploitation.

ONEun des plus courants, le « dépassement d’entier », indique que les opérations effectuées dans un contrat intelligent pourraient générer des valeurs dépassant les limites du code, conduisant à un comportement farfelu et imprévisible qui, dans le pire des cas, pourrait entraîner une perte de fonds.

Le revers de la médaille est le « dépassement de capacité entier », une autre vulnérabilité de gravité « élevée », par laquelle l’inverse exact peut se produire et une valeur inférieure à la plage définie provoque également une sortie erronée.

Il existe également certaines fonctionnalités dans Solidity que les développeurs d'applications décentralisées devraient simplement éviter, selon le système de notation d'Amberdata, notamment « suicide() » et « tx.origin ». Ce dernier est décrit par Espanol comme un « code obsolète » qui peut être complètement supprimé du langage Solidity à une date ultérieure, tandis que le premier présente le risque d'être détourné par des parties extérieures pour geler les fonds des utilisateurs - qu'ils ne pourront jamais récupérer.

Comme il T présente aucune de ces quatre vulnérabilités, le tristement célèbre CryptoKitties, la dapp Ethereum populaire, dispose actuellement d'un A+Évaluation de sécurité d'Amberdata. Fabiano Soriani, ingénieur logiciel chez CryptoKitties, attribue cela à la « mise en œuvre d'un maximum de tests ».

Ajoutant que les « ressources passives » telles que la documentation écrite et les tutoriels vidéo sur le développement d'applications décentralisées ne suffisent pas à créer des applications sécurisées sur Ethereum, Soriani a déclaré à CoinDesk:

« Lorsqu'un audit est réalisé, on Pour vous signale des points importants. C'est une excellente ressource complémentaire [aux ressources passives], car les développeurs issus d'un environnement plus traditionnel ne sont T familiers avec la blockchain. »

« C'est une nouvelle série de problèmes »

En effet, lorsqu'il s'agit de créer des DApps, l'importance d'un code hermétique et impénétrable ne peut être sous-estimée. La raison CORE est double.

Premièrement, contrairement aux applications traditionnelles, les dapps sont généralement des programmes informatiques open source et, comme l’explique Morriss, « un niveau de prudence accru » est requis lors de l’exécution de code « public ».

« S'il y a un bug dans une application traditionnelle, vous pourriez vous en sortir pendant plusieurs années... mais si vous avez un bug dans votre contrat intelligent, les gens vont le trouver assez rapidement et en profiter, soit pour votre destruction, soit pour leur bénéfice », a déclaré Morriss.

Deuxièmement, les dApps sur Ethereum fonctionnent exclusivement sur des contrats intelligents. Spécialement codés dans le langage de programmation Solidity, ils sont exécutés dans le cœur de la blockchain, le Machine virtuelle Ethereum (EVM), l’un des principaux atouts des dapps est qu’elles ne peuvent T être modifiées.

L'inconvénient est évident : les programmeurs ne peuvent pas facilement corriger les erreurs ou les bugs du logiciel une fois déployé sur la blockchain.

Qualifiant de « grave erreur » le fait de sauter un audit ou une analyse de sécurité par un tiers pour ces raisons, Morriss a déclaré à CoinDesk qu'il était important pour les développeurs de ne pas devenir victimes de leur propre « orgueil » et de s'assurer que « les tests couvrent chaque branche de votre code ».

« Avec Ethereum, il s'agit d'un nouvel ensemble de problèmes dont les gens ne sont T conscients lorsqu'ils codent dans Solidity », a souligné Espanol à CoinDesk.

Image de programmationvia Shutterstock

Christine Kim

Christine est analyste de recherche chez CoinDesk. Elle se concentre sur la production d'analyses basées sur les données concernant les secteurs des Cryptomonnaie et de la blockchain. Avant cela, Christine était journaliste technique pour CoinDesk, couvrant principalement les développements de la blockchain Ethereum . Avoirs en Cryptomonnaie : Aucun.

Christine Kim