Auteur original : Carl Hua, associé et CTO de Shima Capital
Après le récent exploit de réentrance de Curve, je repense à mon passage au JPL NASA, où j'ai appris les principes clés du développement de logiciels fiables et résilients. Pour l’industrie de la cryptographie, ces informations sont désormais plus importantes que jamais, et voici pourquoi :
En fin de compte, il n’existe que deux types de logiciels qui intéressent vraiment les gens : les logiciels qui peuvent vous tuer et les logiciels qui peuvent vous faire perdre de l’argent.
La majorité du budget (plus de 80 %) des logiciels critiques de toute machine aérospatiale n'est pas allouée au développement lui-même, mais à l'intégration et aux tests. Si le logiciel tombe en panne, des véhicules volants tombent du ciel - avions de chasse, drones, vaisseaux spatiaux, etc.
La plupart du code des logiciels aérospatiaux (s'il est classé comme module critique) adhère à des normes de test/développement extrêmement strictes, telles que DO-178 Level BA. Non seulement chaque ligne de code doit être testée, mais s’il existe une logique imbriquée, chaque condition logique est également spécifiquement testée.
Au JPL NASA, la philosophie d'écriture de logiciels avancés de vols spatiaux n'est pas d'écrire le code le plus joli et le plus propre, mais d'écrire un code facile à tester unitairement. Pourquoi? C'est simple : lorsque vous envoyez un vaisseau spatial dans l'espace, vous n'avez qu'une seule chance, et personne ne veut prendre un risque avec une forte probabilité d'échec. C'est la même logique que les blockchains, puisque le code immuable est leur caractéristique importante et que nous n'avons qu'une seule chance de dépenser nos fonds correctement dans chaque transaction, alors pourquoi ne prenons-nous pas plus au sérieux le processus de développement des dApps ?
Malgré des processus de développement, de test et d'audit de code rigoureux, ces moyens ne sont clairement pas suffisants pour atténuer tous les bogues et attaques, car en fait, éliminer tous les bogues d'exécution par des tests et des audits est presque impossible. Alors, comment pouvons-nous protéger nos logiciels contre les pannes ?
Protection d'exécution
La protection d'exécution est une technique de sécurité qui protège les applications logicielles contre les attaques malveillantes pendant leur exécution. Son principe est d'effectuer une détection en temps réel lorsque le code est en cours d'exécution et d'analyser le comportement réel du programme pour protéger le programme des données malveillantes et des attaques.
Les protections d'exécution pour les logiciels haute fiabilité nécessitent des efforts et une conception importants, car elles constituent la dernière ligne de défense pour garantir que les logiciels n'entrent pas dans des états inconnus ou ne tombent pas en panne. Ce n’est pas seulement un argument, mais des décennies de pratique éprouvée.
Aujourd'hui, dans le Web3, je pense que les applications DeFi ont besoin de la même fiabilité élevée et devraient envisager la même approche. Cependant, en raison de ses limites potentielles, l'EVM n'a pas été conçu pour gérer des tâches complexes telles que la protection de l'exécution. Alors, comment pouvons-nous fournir une protection d’exécution ?
L'une d'entre elles consiste à utiliser la programmation Aspect, Aspects est conçu par le réseau de chaînes de blocs Artela, qui est capable de changer le contexte d'exécution pendant le cycle de vie de toute transaction de contrat intelligent pour effectuer des vérifications avancées sur l'état en temps réel du programme. Artela fournit une conception unique de protection d'exécution grâce à la compatibilité Aspect et EVM, et il a l'opportunité de devenir la future base de la sécurité des contrats intelligents cryptés.
Artela a annoncé l'utilisation spécifique d'Aspects pour prévenir les attaques de réentrance Curve dans l'article suivant, et espère communiquer ensemble !
"Vulnérabilité du compilateur non résolue ? Runtime Protection réalise le contrôle et la protection des risques sur la chaîne DeFi》
Lien d'origine
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
Shima Capital CTO : En réfléchissant à l'événement Curve, pourquoi avons-nous besoin d'une protection contre l'exécution ?
Auteur original : Carl Hua, associé et CTO de Shima Capital
Après le récent exploit de réentrance de Curve, je repense à mon passage au JPL NASA, où j'ai appris les principes clés du développement de logiciels fiables et résilients. Pour l’industrie de la cryptographie, ces informations sont désormais plus importantes que jamais, et voici pourquoi :
En fin de compte, il n’existe que deux types de logiciels qui intéressent vraiment les gens : les logiciels qui peuvent vous tuer et les logiciels qui peuvent vous faire perdre de l’argent.
La majorité du budget (plus de 80 %) des logiciels critiques de toute machine aérospatiale n'est pas allouée au développement lui-même, mais à l'intégration et aux tests. Si le logiciel tombe en panne, des véhicules volants tombent du ciel - avions de chasse, drones, vaisseaux spatiaux, etc.
La plupart du code des logiciels aérospatiaux (s'il est classé comme module critique) adhère à des normes de test/développement extrêmement strictes, telles que DO-178 Level BA. Non seulement chaque ligne de code doit être testée, mais s’il existe une logique imbriquée, chaque condition logique est également spécifiquement testée.
Au JPL NASA, la philosophie d'écriture de logiciels avancés de vols spatiaux n'est pas d'écrire le code le plus joli et le plus propre, mais d'écrire un code facile à tester unitairement. Pourquoi? C'est simple : lorsque vous envoyez un vaisseau spatial dans l'espace, vous n'avez qu'une seule chance, et personne ne veut prendre un risque avec une forte probabilité d'échec. C'est la même logique que les blockchains, puisque le code immuable est leur caractéristique importante et que nous n'avons qu'une seule chance de dépenser nos fonds correctement dans chaque transaction, alors pourquoi ne prenons-nous pas plus au sérieux le processus de développement des dApps ?
Malgré des processus de développement, de test et d'audit de code rigoureux, ces moyens ne sont clairement pas suffisants pour atténuer tous les bogues et attaques, car en fait, éliminer tous les bogues d'exécution par des tests et des audits est presque impossible. Alors, comment pouvons-nous protéger nos logiciels contre les pannes ?
Protection d'exécution
La protection d'exécution est une technique de sécurité qui protège les applications logicielles contre les attaques malveillantes pendant leur exécution. Son principe est d'effectuer une détection en temps réel lorsque le code est en cours d'exécution et d'analyser le comportement réel du programme pour protéger le programme des données malveillantes et des attaques.
Les protections d'exécution pour les logiciels haute fiabilité nécessitent des efforts et une conception importants, car elles constituent la dernière ligne de défense pour garantir que les logiciels n'entrent pas dans des états inconnus ou ne tombent pas en panne. Ce n’est pas seulement un argument, mais des décennies de pratique éprouvée.
Aujourd'hui, dans le Web3, je pense que les applications DeFi ont besoin de la même fiabilité élevée et devraient envisager la même approche. Cependant, en raison de ses limites potentielles, l'EVM n'a pas été conçu pour gérer des tâches complexes telles que la protection de l'exécution. Alors, comment pouvons-nous fournir une protection d’exécution ?
L'une d'entre elles consiste à utiliser la programmation Aspect, Aspects est conçu par le réseau de chaînes de blocs Artela, qui est capable de changer le contexte d'exécution pendant le cycle de vie de toute transaction de contrat intelligent pour effectuer des vérifications avancées sur l'état en temps réel du programme. Artela fournit une conception unique de protection d'exécution grâce à la compatibilité Aspect et EVM, et il a l'opportunité de devenir la future base de la sécurité des contrats intelligents cryptés.
Artela a annoncé l'utilisation spécifique d'Aspects pour prévenir les attaques de réentrance Curve dans l'article suivant, et espère communiquer ensemble !
"Vulnérabilité du compilateur non résolue ? Runtime Protection réalise le contrôle et la protection des risques sur la chaîne DeFi》
Lien d'origine