Le dernier hack du pont Horizon d'Harmony et son post-mortem technique

Harmonie, une blockchain de couche 1 ouverte et rapide offrant un Ethereum pont, souffert un piratage malheureux le 24 juin. Horizon, son pont inter-chaînes vers Ethereum, a enregistré cet exploit d'une valeur de près de 100 millions de dollars en ETH. Bien que la plate-forme ait stoppé le pont affecté, certaines questions restent sans réponse.

Pour mieux comprendre la situation, voici une plongée en profondeur dans ce qui a causé ce piratage.

Exposer le propriétaire, n'est-ce pas ?

Les experts en sécurité du CertiK team, dans un blog mis en ligne le 25 juin, commun une analyse approfondie mettant en évidence les événements clés qui ont conduit au braquage. Wu Blockchain, une célèbre agence de presse, a ensuite partagé ce développement sur son fil Twitter.

Analyse préliminaire présenté que l'adresse alléguée a fait 11 transactions du pont pour divers jetons. De plus, l'individu a envoyé des jetons à un différent portefeuille à échanger contre ETH sur le Uniswap échange décentralisé (DEX), puis a renvoyé ETH au portefeuille d'origine.

Après quelques complément d'enquête, l'analyse des experts a identifié 12 transactions d'attaque et trois adresses d'attaque. Au cours de ces transactions, l'attaquant a obtenu divers jetons sur le pont, notamment ETH, USDC, WBTC, USDT, DAI, BUSD, AAG, FXS, SUSHI, AAVE, WETH et FRAX.

"L'attaquant a accompli cela en contrôlant d'une manière ou d'une autre le propriétaire du MultiSigWallet pour appeler directement le confirmTransaction () pour transférer de grandes quantités de jetons depuis le pont sur Harmony. Cela a entraîné une perte totale d'environ 97 millions de dollars d'actifs sur la chaîne Harmony, que l'attaquant a consolidé en une seule adresse principale.

Cet événement s'est produit dans une séquence comme présenté ci-dessous.

La chaîne des événements

Le propriétaire du contrat MultiSigWallet (0xf845a7ee8477ad1fb446651e548901a2635a915) a appelé la fonction submitTransaction() pour soumettre une transaction. Il a incorporé la charge utile suivante pour générer l'ID de transaction 21106 dans la transaction.

Source : Certik

Ensuite, dans la transaction d'exploit, le propriétaire a appelé la fonction confirmTransaction() à partir du MultiSigWallet avec l'ID de transaction d'entrée 21106. La fonction executeTransaction() a appelé un appel externe avec des données d'entrée. Cette étape a déclenché la fonction unlockEth() sur le contrat Ethmanager.

Source : Certik

Étant donné que l'attaquant contrôlait l'autorité du propriétaire, le déverrouillage a ouvert la voie audit exploit de pont croisé. Le blog a également ajouté,

"l'attaquant a exécuté la transaction avec l'identifiant 21106, qui a transféré 13,100 XNUMX ETH à l'adresse de l'attaquant."

Mais ce n'est pas ça. Le pirate informatique présumé a poursuivi le processus précédent en utilisant différents identifiants de transaction sur d'autres contrats ERC20Manager pour transférer une énorme quantité de jetons ERC20 et de stablecoins.

Dans l'ensemble, de tels incidents ont aggravé l'ensemble du scénario sceptique autour de l'utilisation ponts à chaînes croisées. Plus tôt cette année, nous avons été témoins à la fois du Pont de Ronin exploiter et Wormhole exploit.

Source : https://ambcrypto.com/latest-in-harmonys-horizon-bridge-hack-and-its-technical-post-mortem/