Comment résoudre le problème de sécurité de l’infrastructure blockchain lors de la création d’un dApp

Lecture 14 minutes

La course au WEB3 a commencé. Les capital-risqueurs, les startups de crypto-monnaie, les ingénieurs et les visionnaires développent WEB3 (ou Web 3.0) alimenté par la blockchain. Une nouvelle frontière est apparue, plus démocratique, décentralisée, indépendante et idéale pour la récupération de données.

Mais tout est-il si parfait en matière de décentralisation et de sécurité des infrastructures ? Non, et de nombreux cas d’attaques man-in-the-middle en sont la preuve.

Mais pour résoudre le problème de sécurité, rappelons ce qu’est WEB3. Le concept de base de WEB3 est de résoudre les problèmes de sécurité causés par la centralisation et de donner aux personnes l’autorité sur leurs données et leur identification. Alors, à quel niveau de technologie ces malheureux incidents de failles de sécurité se produisent-ils dans votre infrastructure de blockchain ? Essayons de comprendre.

Pour se concentrer sur les aspects internes de WEB3, des technologies telles que EVM, Solidity et JavaScript jouent toujours un rôle énorme. Cependant, nous utilisons des fournisseurs de nœuds et des fournisseurs d’API WEB3 lorsque nous discutons des fonctionnalités de backend.

Fournisseurs de nœuds sont des entreprises qui vous permettent d’utiliser leurs services au lieu d’exécuter vos nœuds. C’est très pratique car au lieu de configurer votre nœud et de subir tout le stress et les dépenses qui l’accompagnent, vous pouvez envoyer vos demandes de transaction dApp sur Internet au fournisseur de nœud. Si vous êtes intéressé par le développement de contrats intelligents, vous pouvez utiliser un ou deux fournisseurs de nœuds (pour la redondance).

Il y a beaucoup de Fournisseurs d’API WEB3; cependant, dans de nombreux cas, ces entreprises travaillent avec des nœuds en coulisses. Avec ces outils appliqués, vous pouvez obtenir toutes les données pré-compilées et pré-calculées sur la chaîne.

De plus, il est simple d’établir une communication et une interaction fiables entre différentes applications grâce à ces API WEB3. De plus, des API de qualité assurent un codage cohérent et stable. Nous nous appuyons donc le plus sur des API WEB3 fiables lors de la création d’applications.

???? Différence entre les fournisseurs de nœuds et les fournisseurs d’API WEB3: Le fournisseur WEB3 permet à votre application de communiquer avec un nœud blockchain en soumettant des requêtes JSON-RPC à un serveur. Les fournisseurs de services de nœuds exécutent des clients de nœuds distribués dans les coulisses et les laissent écrire et lire à partir d’une blockchain à l’aide d’une clé API.

Quelle est la menace de sécurité pour les développeurs dApps ?

Les nœuds sont encore des technologies relativement primitives, mais ils sont toujours précieux. Par exemple, un nœud WEB3 ne peut pas vous dire ce que les utilisateurs ont déposé sur leurs comptes. En plus de simplement fournir des informations brutes sur la blockchain, les nœuds ne peuvent pas traiter plusieurs contrats intelligents. De plus, les nœuds ont des capacités limitées et ne peuvent traiter qu’une seule chaîne. Heureusement, il existe des API disponibles pour vous aider à contourner cette limitation.

Les API définissent et normalisent les interactions des applications, vous permettant d’utiliser les données brutes de la blockchain. C’est pourquoi les API WEB3 sont utiles pour le développement dApp. Les API WEB3 sont un élément clé dans le développement de dApps ; en plus d’offrir une interface simple, ils permettent à un logiciel d’interagir avec d’autres applications. Étant donné que des API fiables permettent un codage cohérent dans un environnement stable, les développeurs dApp n’ont pas besoin de réinventer la roue.

De plus, en utilisant ces API de fournisseur WEB3, vous pouvez facilement créer des liens vers des nœuds. Par conséquent, vous n’avez pas à vous soucier de vous connecter aux nœuds lorsque vous utilisez ces API. Lorsque vous interagissez avec ces fournisseurs, vous pouvez également recevoir toutes sortes de précieuses données en chaîne précalculées et précompilées.

Mais de tels services ne ferment pas entièrement les demandes des développeurs dans les plans de sécurité, et dans la plupart des cas, vous devez payer à l’avance pour leur utilisation.

Le fait est qu’il y a de plus en plus de cas de dApps piratés à l’aide de l’attaque de l’homme du milieu que nous avons mentionnée ci-dessus.

C’est lorsqu’un attaquant, utilisant des vulnérabilités dans les serveurs DNS (par exemple), a changé de serveur pour servir le trafic jsonrpc-endpoints.

Une victime est connue pour ont perdu 16,5 WBTC (~ 350 840 $). Et environ 23 projets de crypto-monnaie ont déjà rencontré une attaque DNS similaire.

Une solution très simple vous permet de vous protéger de telles attaques man-in-the-middle. Et nous y reviendrons.

De plus, si vous avez une équipe de développement, vous pouvez suivre votre propre chemin et essayer de créer votre solution, mais vous avez besoin d’une équipe super qualifiée de personnes partageant les mêmes idées pour que cela fonctionne.

La difficulté de ce processus est que vous pouvez surestimer considérablement votre force. Une tâche qui semble facile soulève alors de nombreuses questions, qui sont résolues par de nombreuses années d’expérience dans son travail. Par conséquent, si vous disposez de beaucoup de temps et de ressources, vous devez accepter cette voie.

Violation des 3 grands principes de la blockchain dans le WEB3

Reprenons donc notre souffle et examinons les défis de sécurité actuels dans le monde WEB3 du point de vue de l’infrastructure.

Les grands principes de la blockchain sont

  • décentralisation
  • transparence
  • manque de confiance

Mais est-ce que ça marche en pratique ? Jetez un oeil à la architecture dApp la plus populaire.

Architecture dApp la plus populaire
Architecture dApp la plus populaire

Comment résoudre le problème de sécurité de l'infrastructure blockchain lors de la création d'un dAppNous pouvons voir que les utilisateurs du front-end envoient des requêtes aux fournisseurs JSON-RPC (il peut s’agir d’Infura, d’Alchemy, de Quicknode, etc.).

Ainsi, les requêtes sont acheminées vers un environnement partagé où nous n’avons aucun contrôle sur la transformation des données au niveau de la passerelle API, du moteur de mise en cache, des nœuds de la blockchain ou de quoi que ce soit d’autre.

Et c’est là que se pose le premier problème car un environnement partagé signifie que de nombreux utilisateurs, bots et pirates, en particulier, travaillent dans le même environnement. Il s’agit d’une véritable boîte noire pour le développeur qui attire trop l’attention des attaquants.

Eh bien, cette approche contredit les 3 principes de WEB3 car :

  1. Il centralise l’accès à la Blockchain, en faisant passer le tout dans un environnement partagé ;
  2. Ce n’est pas transparent – nous ne pouvons pas vérifier les réponses d’une telle API ;
  3. On ne peut donc pas parler de véritable méfiance puisque les enjeux de sécurité d’une telle infrastructure reposent simplement sur la confiance. Voyez par vous-même dans le schéma suivant.
Problèmes d'architecture dApp
Problèmes d’architecture dApp

Comment résoudre le problème de sécurité de l'infrastructure blockchain lors de la création d'un dAppLe deuxième problème est que la version d’infrastructure décrite permet des attaques de l’homme du milieuque les criminels utilisent périodiquement.

Les services suivants peuvent être attaqués :

    • Registraires de domaine ou DNS
    • Fournisseurs JSON-RPC
    • Tous les services agrégés tiers

Un cluster auto-hébergé de nœuds blockchain est la seule solution

Mais y a-t-il une solution ? Oui — environnement sur site configuré.

Tout d’abord, il utilise un cluster auto-hébergé de nœuds blockchain. Tous les nœuds sont initialisés à partir de la genèse officielle et synchronisés à l’aide de p2p. Cela garantit la cohérence des données.

Les nœuds doivent être mis à jour périodiquement avec des instantanés réduits pour fonctionner aussi efficacement que possible. La solution idéale consiste à créer automatiquement de nouveaux nœuds à partir de l’instantané réduit lors du zoom. Si vous initialisez le nœud à partir de zéro, cette approche vous permet d’obtenir un nouveau nœud en 30 minutes au lieu de plusieurs jours.

Un autre point critique est la mise à jour automatique du logiciel blockchain après sa sortie, cela peut également être fait. L’essentiel est de créer un instantané avec la nouvelle version (car cela peut parfois nécessiter certaines opérations sur les données, ce qui peut prendre du temps), puis les nouveaux nœuds devraient démarrer automatiquement avec le nouvel instantané et le logiciel mis à jour.

Vous trouverez ci-dessous un schéma d’infrastructure qui résout la plupart des problèmes décrits.

Solution d'infrastructure dApp
solution d’infrastructure dApp

Il est également important de surveiller l’état de la synchronisation et d’exclure les nœuds qui se trouvent derrière le flux en amont. Cela peut être fait, par exemple, à l’aide de bilans de santé.

Outre le fait que l’accès peut être limité par l’adresse IP, il convient de mentionner que le bon vieux jeton JWT peut protéger contre les attaques du registraire de domaine ou du DNS. Le jeton JWT s’intègre facilement dans web3js et d’autres bibliothèques et doit être implémenté du côté de la passerelle API dans notre cluster blockchain.

De cette façon, nous rendons le point de terminaison de la blockchain sécurisé et décentralisé.

Résumé

Web3 en est encore à ses débuts. Mais la course à la décentralisation est déjà lancée. Et vous pourrez voir que les applications les plus sécurisées sont probablement celles qui utilisent les approches les plus innovantes et open-source.

Et par conséquent, vous ne devez pas ignorer les principes de base de WEB3, car votre dApp nouvellement créée ne fournira pas de sécurité aux autres participants. La seule option actuellement disponible est un cluster autonome de nœuds de blockchain géo-distribués.

Auteur:

Daniel Yavorovitch

Co-fondateur & CTO chez RPC Fast et Dysnix

Jeton LimeWire

Source https://cryptoslate.com/how-to-solve-the-blockchain-infrastructure-security-problem-while-creating-a-dapp/

Crypto Week

Avertissement : Crypto Week ne fournit pas de conseils financiers de quelque manière que ce soit. Nous ne vous recommandons pas d'investir de l'argent dans une crypto-monnaie ou un actif financier sans avoir effectué des recherches approfondies. Nous ne sommes pas responsables de vos décisions financières de quelque manière que ce soit.

Derniers articles de Featured Posts