Aller au contenu
Dossier d'incident · · 2 min de lecture · 266 mots · Mis à jour ·Découvert ·Divulgué Résolu

Exploitation par rejeu du pont Nomad, août 2022 : ce qui s’est passé et ce qu’il faut vérifier

Une mise à niveau de routine a conduit Nomad à accepter n'importe quel message comme prouvé. Des centaines d'adresses ont copié la même transaction et vidé le pont en quelques heures.

Partager
Schéma de l'incident Nomad montrant l'étape de contrôle d'accès comme point de défaillance.
Schematic of the Nomad incident showing the access control stage as the failure point.

En un coup d'œil

ENTITÉ TOUCHÉE
Nomad
CHAÎNE(S)
Ethereum, Moonbeam
PERTES DÉCLARÉES
env. 190 millions de dollars américains(Nomad, 1 Août 2022)
RÉPONSE OFFICIELLE
medium.com

Un zéro à la place d’une racine

Nomad vérifiait les messages entrants en les confrontant à une racine de confiance. Une mise à niveau de routine a fixé cette racine à zéro. En raison de la manière dont la logique de vérification traitait la valeur zéro, chaque message — y compris ceux entièrement fabriqués — était évalué comme déjà prouvé.

Résultat : retirer des fonds du pont ne nécessitait aucun développement d’exploit. Un observateur pouvait copier une transaction réussie, remplacer l’adresse du destinataire par la sienne et la soumettre. C’est pourquoi plusieurs centaines d’adresses distinctes y ont participé en quelques heures. Ce fut, au sens le plus littéral, une file d’attente.

Pourquoi cela compte plus que le montant

La plupart des grandes exploitations exigent une réelle compétence et sont donc limitées par le nombre de personnes capables de les mener. Celle-ci ne l’était pas. Dès lors que le schéma était visible sur la chaîne, la population des participants potentiels correspondait à tous ceux qui regardaient. Tout défaut qui supprime l’exigence de compétence doit être traité comme catégoriquement plus urgent qu’un défaut de valeur nominale équivalente qui ne le fait pas.

Les mises à niveau sont la surface de risque

Le défaut a été introduit par une mise à niveau de routine, non par la conception initiale. Les contrats évolutifs déplacent la question de sécurité de « ceci a-t-il été audité ? » vers « que s’est-il passé lors de chaque déploiement ultérieur, et l’état obtenu a-t-il été vérifié ? ». Les valeurs d’initialisation sont exactement le genre d’élément qui passe la relecture comme du code passe-partout.

Chronologie

Ajout seulement. Les corrections sont ajoutées sous la forme d'une entrée datée distincte ; les entrées antérieures ne sont jamais réécrites.

  1. La première transaction d'exploitation est exécutée. En quelques heures, des centaines d'adresses la reproduisent en copiant les calldata et en y substituant leur propre adresse. Nomad
  2. Nomad confirme publiquement l'incident et demande la restitution des fonds. Nomad

Ce qu'il faut vérifier

Nomad a publié une analyse des causes profondes, dont le lien figure ci-dessous, décrivant l'erreur d'initialisation et la mise à niveau qui l'a introduite.

Conisec n'héberge ni ne relaie d'outils de récupération, de révocation ou de « vérification ». Après un incident public, les attaquants diffusent systématiquement ce type de liens en utilisant les noms des publications qui couvrent l'affaire. Utilisez le canal officiel du projet concerné, indiqué ci-dessus, et rien d'autre.

Sources

  1. Nomad, Nomad Bridge Hack Root Cause Analysis (1 Août 2022)

Pas un conseil. Ceci est un résumé de faits publiés, et non un conseil juridique, fiscal ou de sécurité. Vérifiez auprès des sources primaires indiquées ci-dessus.

Dernière vérification par Conisec Staff.

Pour aller plus loin