Compounder Finance - REKT



La Faucheuse rekt sait s’y prendre pour faire parler les gens.

Dans les derniers instants, alors que la TVL approche de zéro, et que le désastre économique devient insupportable, une figure sans visage entre dans le chat.

Lorsqu’un protocole est mortellement blessé, et qu‘il est temps de préparer ses linges mortuaires, le quatrième et dernier cavalier de l’Apocalypse arrive pour le guider vers la vie après la mort, se présentant lui-même sous le format en .gif.

Compounder.finance a été rugpull pour plus de 12,000,000 $.

Dans notre communauté instable, la cupidité et le désespoir sont punis et récompensés de manière égale mais imprévisible.

Ici, il y a de l'espoir pour le pécheur, dont les transgressions sont oubliées dès que celui-ci s’échappe de la blockchain en revêtant sa cape d’anonymat.

Rekt est là pour offrir aux pécheurs une opportunité de confession publique - pour dévoiler leurs méthodes afin que nous puissions tous apprendre.

Le site compounder.finance et son compte Twitter ont été supprimés instantanément.

La seule piste offerte à nos détectives fut un audit de sécurité réalisé en entier.

Il y a beaucoup de travail au RektHQ, et à peine quelques heures s'étaient écoulées lorsque nous avons commencé à enquêter… Lorsque nous avons contacté les auditeurs pour discuter, ils n'étaient pas très contents de nous voir.

S’il vous plaît ne nous envoyez pas des trucs morbides comme ça, j’ai vraiment eu peur pour ma sécurité pendant une minute, et des gars plus fragiles pourraient report ça ou faire d’autres trucs dans ce genre.

Après que nos enquêteurs les ont rassurés, Solidity.finance nous a fourni l'historique entier du chat de leur conversation avec compounder.finance.

D'autres victimes nous ont également contactés, partageant leurs premières conversations avec les admins de compounder où ils exprimaient déjà leur inquiétude.

Solidity.finance nous ont dit n’avoir parlé que brièvement avec les admins, et bien qu’ils aient en effet audité le contrat, ils concluent dans leur document que même si les trésoreries des pools étaient contrôlées par un timelock, celle-ci n’offrait en réalité aucune protection.

Le message suivant provient de leur copie du chat :

À ce stade de notre enquête, solidity.finance restait suspect. Nous voulions savoir pourquoi ils avaient cru que l'équipe de compounder.finance était apparemment "vraiment digne de confiance".

En lisant la copie du chat, nous avons remarqué que bien que les comptes aient été supprimés, il restait un nom d’utilisateur - “keccak”.

Bien que solidity.finance ait déclaré que keccak avait supprimé son compte, nous avions déjà trouvé son compte et tenté de le contacter.

Malheureusement, Vlad ne souhaitait pas parler au téléphone, et nous lui avons donc envoyé un message, sans vraiment s'attendre à ce qu'il réponde.

Jusqu’à ce que…

Vlad était prêt à parler. Malheureusement, il n’était pas très coopératif.

Vlad / keccak est toujours joignable sur Telegram via @keccak, mais il ne répond plus, et a depuis supprimé les images sur son compte. Nous joignons ici ses anciens avatars pour que vous ayez toutes les informations en main au cas où vous vouliez creuser l'affaire.

Nous avons été informés que - Celui du loup est tiré d'un célèbre dessin animé ukrainien en russe, qui dit “passe donc à l’occasion”.

Celui de gauche est une affiche anti-armes nucléaires.

Ça n'avance malheureusement pas beaucoup les utilisateurs affectés.

Une fois qu’il était devenu évident que Vlad ne voulait pas parler, nous avons rejoint le groupe Telegram officiel de Compounder, où il était clair que notre réputation nous précédait.

Alors que nous scrollions à travers le fil du chat, nous avons observé tous les comportements typiques causés par un rugpull tout frais.

Même des gros joueurs font profil bas face au pouvoir d’un rugpull. Ce chef de groupe a perdu 1,000,000 $ et a ouvert son propre groupe d'investigation (686 membres) pour tenter de se venger.

Le fil peut être consulté ici.

Les statistiques

Dans le cadre de notre enquête, nous avons présenté Solidity.finance à @vasa_develop de Stake Capital et lui avons demandé de travailler ensemble pour créer un post-mortem complet de l'incident.

Les données suivantes sont tirées de son rapport.

Actifs Ruggés (8):

  • 8,077.540667 Wrapped Ether ($4,820,030.07)
  • 1,300,610.936154161964594323 yearn: yCRV Vault (1,521,714.80 $)
  • 0.016390153857154838 Compound (COMP) (1.79 $)
  • 105,102,172.66293264 Compound USDT (2,169,782.85 $)
  • 97,944,481.39815207 Compound USD Coin (2,096,403.68 $)
  • 1,934.23347357 Compound Wrapped BTC (744,396.89 $)
  • 23.368131489683158482 Aave Interest bearing YFI (628,650.174379401 $)
  • 6,230,432.06773805 Compound Uniswap (466,378.99 $)

Les portefeuilles avec les fonds après le rug-pull :

Les 7 malicious strategy contracts qui ont été ajoutés à la codebase après l'audit étaient le(s) principal(aux) coupable(s) de ce hack.

Une non-malicious withdraw() function d'un Strategy contract ressemble à quelque chose de ce genre :

Notez que nous avons des checks comme :

Ces checks n’étaient pas là dans les 7 malicious strategy contracts. Cela permet au contrôleur du contrat (qui était contrôlé par le strategist du rug-pull) de retirer ses actifs du Strategy contract.

(Notez les checks manquant ci-dessous dans la fonction withdraw malveillante)

Le rug-pull complet peut être expliqué en 4 étapes.

Etape 1

Compounder.Finance: Deployera deployé 7 Malicious Strategies avec des fonctions withdraw() manipulées.

Etape 2

Compounder.Finance: Deployer Set et Approve 7 Malicious Strategies dans StrategyController via Timelock (24h) transactions.

Etape 3

Compounder.Finance: Deployer (strategist) a call inCaseStrategyTokenGetStuck() sur StrategyController qui abuse la fonction manipulée withdraw() de la Malicious Strategies pour transférer les tokens de Strategies à StrategyController. Il le fait pour les 7 Malicious Strategies.

Etape 4

Compounder.Finance: Deployer (strategist) a call inCaseTokensGetStuck() sur StrategyController ce qui transfère les tokens de StrategyController à l’adresse de Compounder.Finance: Deployer (strategist). Le Compounder.Finance: Deployer (strategist) a maintenant un contrôle total sur les 8 actifs qui ont une valeur de 12,464,316.329 $.

De là, les actifs ont été transférés à plusieurs adresses répertoriées ici.

Excellent travail de la part de @vasa_develop.

Si vous êtes un lanceur d’alerte, un cyberdétective ou un détective spécialisé en Etherscan et que vous avez quelque chose à apporter, contactez-nous.


Jugement Dernier :

Qui est à blâmer ?

A la lumière de nos analyses, nous pouvons dire que ce ne sont pas les auditeurs, eux qui ont accompli consciencieusement leur tâche en veillant à ce que Compounder Finance reste à l'abri des attaques externes, tout en exprimant leurs préoccupations dans leur rapport d'audit et sur le chat Telegram.

Peut-être auraient-ils pu exprimer leurs préoccupations avec un peu plus de véhémence, mais, en fin de compte, la responsabilité ultime incombera toujours au déposant.

Compouder.finance a utilisé un timelock comme élément censé prouver qu’ils ne feront pas de rug pull. Nous savons que cette méthode n’est pas digne de confiance. Si elle est employée, un système ou un dashboard d’alerte automatique se doit d’être mis en place pour monitorer les transactions à cette adresse.

24 heures ne semblent pas être assez pour donner une mise en garde suffisante aux utilisateurs pour pouvoir retirer leurs fonds.

Tous les projets avec des fondateurs anonymes ne sont pas des scams. Cette industrie toute entière a été fondée par des anonymes.

Toutefois, presque tous les scams sont des projets avec des fondateurs anonymes. En tant que communauté, nous devons nous méfier de ces projets ; et tout particulièrement de ceux qui utilisent des sources de fonds intraçables comme Tornado.cash.

La simple existence d'un rapport d'audit n'est pas suffisante pour assurer la sécurité ou la légitimité d'un projet. Les audits se concentrent souvent sur les risques liés aux assaillants externes plus qu'à ceux internes - c'est peut-être quelque chose que les auditeurs devraient améliorer.

Même avec des audits, des timelocks et des burn de clés, les déposants sont toujours à la merci d’autres utilisateurs, qui peuvent à tout moment dumper d’énormes quantité de tokens sur le marché.

Solidity.Finance : la déclaration officielle

L’équipe de Compounder a échangé les Strategy contracts sûrs et audités et les a remplacés avec des “Evil Strategy” contracts malicieux qui lui ont permis de voler les fonds de ses utilisateurs. Ils l'ont fait grâce à un timelock public, bien que clairement non monitoré, de 24 heures.

Ce problème de contrôle centralisé par l'équipe de C3PR a été soulevé dans notre rapport d'audit et nos discussions avec leur équipe. L’équipe a le pouvoir de mettre à jour les strategy pools et l’ont fait ici avec beaucoup de malveillance afin de voler les fonds de leurs utilisateurs. Dans un souci de transparence, n’importe qui peut aller regarder l’historique de notre chat avec l’équipe de C3PR ici.

Historiquement, nos audits se sont concentrés sur les risques liés aux attaques externes sur les projets, avec quelques discussions sur les risques posés par les équipes de projet comme nous l'avons fait ici. Nous allons nous servir de cette expérience malheureuse comme une opportunité pour apprendre, et aller de l’avant nous fournira d’avantages de détails solides dans un langage plus aisé à comprendre sur les risques découlant du contrôle des développeurs.

Nous savons tous que nous devrions être capable de lire des smart contracts avant d’investir, mais la barrière de connaissances requise est élevée. Tout le monde ne sait pas quoi rechercher et ceux qui le font ne sont pas incités à partager leurs découvertes.

Dans le cas de C3PR, les utilisateurs qui avaient écouté avaient conscience du danger depuis le début, et le code qui a permis le rug pull a toujours été là.

Malgré cela, plus de 12,000,000$ ont été accumulés dans le contrat, pour ce que l’on peut qualifier dorénavant de l’un des plus gros rug pulls de tous les temps.


partager cet article

REKT sert de plateforme publique pour des auteurs anonymes, nous déclinons toute responsabilité quant aux opinions ou contenus hébergés sur REKT.

faites un don (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

avertissement:

REKT n'est responsable en aucune manière du contenu publié sur notre site Web ou en lien avec nos Services, qu'il soit publié ou occasionné par l'Auteur Anon de notre site Web, ou par REKT. Bien que nous fournissions des règles pour la conduite et les publications de l'Auteur Anon, nous ne contrôlons pas et ne sommes pas responsables de ce que l'Auteur Anon publie, transmet ou partage sur notre site Web ou nos Services, et ne sommes pas responsables de tout contenu offensant, inapproprié, obscène, illégal ou autrement répréhensible que vous pourriez rencontrer sur notre site Web ou nos Services. REKT ne saurait être tenu responsable de la conduite, en ligne ou hors ligne, de tout utilisateur de notre site Web ou de nos services.