Détection de vulnérabilité à l'encre ! Langage de programmation
, conçu des méthodes pour les détecter et construit un ensemble d’outils de preuve de concept solide qui montre clairement qu’un encrer ! outil de détection de vulnérabilité est constructible, que cela peut être fait de manière itérative, et comment cela aiderait l’encre ! développeurs.
L’encre de la parité ! est un langage permettant de développer des contrats intelligents sur des blockchains basées sur Substrate. Dans le cas des parachains Substrate, comme Kusama et Polkadot, des contrats intelligents peuvent être déployés lorsque la parachain contient la palette Contracts, et dans ce cas, les contrats intelligents sont déployés dans l’environnement d’exécution dans WebAssembly. L’encre de Parity est un langage intégré spécifique au domaine pour Rust qui peut être compilé dans ce WebAssembly accepté par l’environnement d’exécution de Substarate.
Le génie logiciel, et en particulier l’analyse statique/dynamique, a fait de grands progrès dans la détection des vulnérabilités. Le processus de démarrage semble simple : obtenez une bonne quantité de programmes comprenant des vulnérabilités, obtenez une bonne quantité de programmes sans vulnérabilités, tous annotés avec des informations précises sur les vulnérabilités, construisez un outil qui a une bonne précision et un bon rappel et vous avez un début !
Ces dernières années ont vu la montée en puissance de nombreuses blockchains intéressantes liées à différents langages de programmation. Rust a été choisi par Polkadot, Kusama, Elrond, Solana, NEAR Protocol, Hyperledger Sawtooth.
Alors que Rust en tant que langage de programmation est là depuis un certain temps, évidemment plus que Solidity et ses autres pairs, il peut ne pas être considéré comme mature en tant que langage de programmation web3. C’est la situation, fondamentalement, de la famille complète des langages de programmation utilisés dans les blockchains.
telles que les applications de navigation pour conduire n’importe où les flux d’actualités, les applications de médias sociaux et de nombreuses autres applications provenant de serveurs Web. Mais même si les premiers signalements de vulnérabilités de cross-site scripting datent de plus de 20 ans (voir, par exemple, , ) le problème n’est pas résolu et les applications Web ne sont toujours pas sécurisées. Allez, même les vulnérabilités de sécurité de la mémoire ont persisté dans la sécurité du système 50 ans après le rapport séminal Kargr-Schell ().
code est qu’il n’y a aucune source à partir de laquelle nous pouvons obtenir de nombreux contrats intelligents vulnérables associés à des informations sur les vulnérabilités qu’ils incluent.
Nous avons sélectionné deux sources pour cela :
mais le résultat a été unanime : rien à signaler Nous avons heurté un barrage routier Nous avons sélectionné deux projets et confirmé les vulnérabilités de l’un d’entre eux (voir ceci) – enfin quelque chose !
Nous avons d’abord développé des contrats intelligents incluant des instances de ces vulnérabilités, leurs tests, puis corrigé les vulnérabilités et écrit plus de tests.
Il existe tout un assortiment d’outils d’analyse de code que nous pouvons utiliser pour analyser Rust ou Ink ! en particulier. Nous avons exigé de nos outils que :