詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

avatar
CertiK
6ヶ月前
本文は約6375字で,全文を読むには約8分かかります
最近、CertiK は 200 件を超える出口詐欺を監視しています。これは、大規模な自動化とハッカー チームが「出口詐欺」を通じて資産を収集していることを示している可能性があります。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

最近、CertiK セキュリティ専門家チームは、一般にラグ プルとして知られる、同じ戦術を用いた複数の「出口詐欺」を頻繁に検出しました。

さらに調査した結果、同じ手口による複数の事件が同じギャングを指しており、最終的には 200 件を超えるトークン出口詐欺に関連していることがわかりました。これは、「出口詐欺」を通じて資産を収集する大規模な自動ハッキング チームを発見した可能性があることを示しています。

これらの出口詐欺では、攻撃者は新しい ERC 20 トークンを作成し、作成時に事前にマイニングされたトークンに一定量の WETH を加えた Uniswap V2 流動性プールを作成します。

チェーン上の新しいロボットまたはユーザーが流動性プール内の新しいトークンを一定回数購入すると、攻撃者は何もないところから生成されたトークンを使用して、流動性プール内のすべての WETH を使い果たします。

攻撃者がどこからともなく取得したトークンは、総供給量 (totalSupply) に反映されず、Transfer イベントもトリガーされず、etherscan 上では表示されないため、外部の世界から認識することは困難です。

攻撃者はステルスを考慮しただけでなく、基本的な技術スキルとイーサスキャンの読み取り能力を持つユーザーを麻痺させるゲーム内ゲームを設計し、小さな問題を利用して真の目的を隠蔽しました...

詐欺の奥深くまで

ある事例を例に挙げて、この出国詐欺の詳細を説明しましょう。

実際に私たちが検出したのは、攻撃者が流動性プールを枯渇させて利益を上げるために大量のトークン (秘密裏に鋳造) を使用したトランザクションであり、このトランザクションでは、プロジェクト当事者は合計 416、483、104、164、 831 (約 416 兆) MUMI が約 9.736 WETH と交換され、プールの流動性が枯渇しました。

ただし、このトランザクションは詐欺全体の最後のリンクにすぎないため、詐欺全体を理解するには、引き続き追跡する必要があります。

トークンを展開する

3月6日午前7時52分(UTC時間、以下同じ)、攻撃者のアドレス(0x 8 AF 8)Rug Pullは、MUMI(正式名MultiMixer AI)という名前のERC 20トークン(アドレスは0x 4894)を展開し、 420,690,000 (約 4 億 2,000 万) のトークンが事前に採掘され、すべて契約の展開者に配布されました。詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

プレマイニングされたトークンの数は、コントラクトのソース コードに対応します。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

流動性を追加する

08:00 ちょうど (トークンが作成されてから 8 分後) に、攻撃者のアドレス (0x 8 AF 8) が流動性を追加し始めました。

攻撃者のアドレス (0x 8 AF 8) は、トークン コントラクトの openTrading 関数を呼び出し、uniswap v2 ファクトリを通じて MUMI-WETH 流動性プールを作成し、事前に採掘されたすべてのトークンと 3 ETH を流動性プールに追加し、最終的に約 1.036 LP を取得します。トークン。詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

トランザクションの詳細を見ると、当初流動性を追加するために使用された 420,690,000 (約 4 億 2,000 万) トークンのうち、約 63,103,500 (約 6,300 万) トークンがトークン コントラクト (アドレス 0x 4894) に返送されたことがわかります。ソースコードを確認したところ、トークンコントラクトは転送ごとに一定の手数料を請求し、手数料を請求するアドレスはトークンコントラクト自体(具体的には「_transfer関数」で実装)であることがわかりました。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

奇妙なのは、納税アドレス 0x 7 ffb (送金手数料を徴収するアドレス) がコントラクトに設定されているのに、最終的な料金はトークン コントラクト自体に送信されていることです。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

したがって、流動性プールに追加されたMUMIトークンの最終的な数は、4億2,069万(約4億3,000万)ではなく、非課税の3億5,758万6,500(約3億5,000万)となりました。

流動性を確保する

8:01 (流動性プールが作成されてから 1 分後) に、攻撃者のアドレス (0x 8 AF 8) により、流動性の追加によって取得された 1.036 LP トークンがすべてロックアップされました。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

LPがロックされた後は、理論上、攻撃者のアドレス(0x 8 AF 8)が所有するすべてのMUMIトークンが流動性プールにロックされる(手数料として使用される部分を除く)ため、攻撃者のアドレス(0x 8 AF 8)も存在する流動性を除去してラグプルを実行する機能はありません。新しく発売されたトークンを安心して購入できるように、多くのプロジェクト関係者はLPにロックをかけており、これはプロジェクト関係者が「逃げないからみんな安心して買える!」と言っていることを意味しますが、本当にそうなのでしょうか? ?明らかにそうではありません。これは事実です。分析を続けましょう。

Rug Pull

8:10に新たな攻撃者アドレス②(0x 9 DF 4)が出現し、Taはトークンコントラクトで宣言した納税者アドレス0x 7 ffbを展開しました。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

ここで言及する価値のあるポイントは次の 3 つです。

1. 税務アドレスが展開されるアドレスは、トークンが展開されるアドレスと同じではありません。これは、プロジェクト関係者が各操作とアドレスの間の相関関係を意図的に減らし、動作の追跡をより困難にしていることを示している可能性があります。

2. 納税者住所の契約はオープンソースではないため、納税者住所には公開したくない隠された操作が存在する可能性があります。

3. 税コントラクトはトークン コントラクトよりも後にデプロイされ、トークン コントラクト内の税アドレスはハードコーディングされているため、プロジェクト当事者は税コントラクトのアドレスを予測できます。CREATE 命令によって作成者のアドレスが決定されるため、 and nonce、デプロイメント 契約アドレスが決まっているため、プロジェクトチームは作成者のアドレスを使用して事前に契約アドレスをシミュレートしました。

実際、多くの出国詐欺は納税者住所を通じて行われており、納税者住所の展開モードの特徴は上記のポイント 1 と 2 に準拠しています。

午前 11 時 (トークン作成から 3 時間後)、攻撃者のアドレス② (0x 9 DF 4) が Rug Pull を実行しました。納税契約 (0x 77 fb) の「swapExactETHForTokens」メソッドを呼び出すことにより、納税者アドレスにある 416、483、104、164、831 (約 416 兆) の MUMI トークンを約 9.736 ETH と交換し、流動性を使い果たしました。プール。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

税金契約書 (0x 77 fb) はオープンソースではないため、そのバイトコードを逆コンパイルしました。逆コンパイル結果は次のとおりです。 https://app.dedaub.com/decompile?md5=01e2888c7691219bb7ea8c6b6befe11c 税金契約書 (0x 77 fb) を表示した後) 「swapExactETHForTokens」メソッドのコードを逆コンパイルした後、この関数の主な機能は、税務契約 (0x 77 fb) が所有する MUMI トークンを、金額「xt」(呼び出し元によって指定) と交換することであることがわかりました。 uniswap V2 ルーターを ETH に転送し、納税者住所で宣言された「_manualSwap」アドレスに送信します。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

_manualSwap アドレスが配置されているストレージ アドレスは 0x 0 です。json-rpc の getStorageAt コマンドでクエリを実行したところ、_manualSwap に対応するアドレスがまさに税務契約の展開者 (0x 77 fb) であることがわかりました: 攻撃者② (0x) 9DF4)。詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

この RugPull トランザクションの入力パラメータ xt は 420, 690, 000, 000, 000, 000, 000, 000 で、420, 690, 000, 000, 000 (約 420 兆) の MUMI トークンに対応します (MUMI トークンの 10 進数は 9)。 。詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する言い換えれば、プロジェクトは最終的に 420,690,000,000,000 (約 420 兆) MUMI を使用して流動性プールの WETH を排出し、出口詐欺全体を完了しました。

しかし、ここで重要な疑問があります。それは、税金契約 (0x 77 fb) はどこから非常に多くの MUMI トークンから来たのかということです。

前の内容から、トークン コントラクトの展開時の MUMI トークンの総供給量は 420,690,000 (約 4 億 2,000 万) であることがわかり、出口詐欺が終わった後、MUMI トークン コントラクトでクエリを実行します。総供給量はまだ 420, 690, 000 です (下の図では 420, 690, 000, 000, 000, 000 と表示されています。小数点に対応する 0 を引く必要があります。小数点は 9 です)。税金契約 ( 0x 77 fb) は、トークンの総供給量 (420, 690, 000, 000, 000、約 420 兆) をはるかに上回っており、まるで何もないところから現れたかのように、0x 77 fb は税金であることを知っておく必要があります。アドレスさえ MUMI トークンの転送中に発生する手数料は税金の受け取りには使用されず、税金はトークン契約によって受け取られます。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

テクニック公開

  • 納税契約はどこから来たのですか?

税金契約 (0x 7 ffb) のトークンの起源を調査するために、その ERC 20 転送イベント履歴を調べました。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

0x 77 fb に関連する 6 つの転送イベントすべてのうち、税金コントラクト (0x 7 ffb) からの転送イベントのみが存在し、MUMI トークンの転送イベントは存在しないことがわかりました。一見すると、税金コントラクト (0x 7 ffb) 7 ffb) ) トークンは本当に何もないところから現れました。

したがって、税務契約 (0x 7 ffb) アドレスに何もないところから出現した巨大な MUMI トークンには 2 つの特徴があります。

1. MUMI契約の総供給量には影響しない

2. トークンの増加によって転送イベントがトリガーされない

したがって、アイデアは非常に明確です。つまり、MUMI トークン コントラクトにバックドアが存在する必要があります。このバックドアは、balance 変数を直接変更し、balabce を変更する場合、totalSupply を変更することはなく、Transfer イベントをトリガーすることもありません。

言い換えれば、これは ERC 20 トークンの非標準または悪意のある実装であり、総供給量やイベントの変化からプロジェクト側が秘密裏にトークンを鋳造していることをユーザーは感知することができません。

次のステップでは、上記のアイデアを検証するために、MUMI トークン コントラクトのソース コード内でキーワード「残高」を直接検索します。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

その結果、コントラクトにはプライベート型の「swapTokensForEth」関数があり、入力パラメータはuint 256型のtokenAmountであり、関数の5行目で税金である_taxWalletをプロジェクト当事者が直接変更していることが分かりました。 Contract (0x 7 ffb) MUMI 残高は、tokenAmount の 1, 000, 000, 000 (約 10 億) 倍である tokenAmount * 10**_Decimals に変更され、MUMI の tokenAmount 金額が ETH に変換されます。流動性プールに保存され、トークン コントラクト (0x 4894) に保存されます。

次に、キーワード「swapTokenForEth」を検索します。

「_transfer」関数内で「swapTokenForEth」関数が呼び出されているのですが、呼び出し条件をよく見ると以下のようなことがわかります。

1. 送金受取アドレスがMUMI-WETH流動性プールの場合。

2. 他のアドレスが流動性プール内の MUMI トークンを _preventSwapBefore (5 回) を超えて購入すると、「swapTokenForEth」関数が呼び出されます。

3. 受信する tokenAmount は、トークン アドレスが所有する MUMI トークン残高と _maxTaxSwap の間の小さい方の値です。

つまり、ユーザーがプール内のWETHをMUMIトークンに5回以上交換したことをコントラクトが検出すると、納税者住所用に秘密裏に大量のトークンを鋳造し、トークンの一部をETHに変換して保管します。それらをトークンコントラクトに含めます。

一方で、プロジェクト当事者は表向き税金を徴収し、それを定期的に自動で少額のETHに交換してトークンコントラクトに組み込んでおり、それがユーザーに示され、これがプロジェクト当事者の利益の源泉であると誰もが思い込まされます。

一方、プロジェクトチームが実際に行っていることは、ユーザーの取引回数が5回に達した後に口座残高を直接変更し、流動性プールをすべて排出することです。

  • 利益を上げる方法

「swapTokenForEth」関数を実行した後、「_transfer」関数もsendETHToFeeを実行して、トークンアドレスの徴税から取得したETHを税務コントラクト(0x 77 fb)に送信します。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

税コントラクト内の ETH (0x 77 fb) は、そのコントラクトに実装されている「レスキュー」機能によって取り出すことができます。

ここで、出口詐欺全体の中で最後に利益を上げた取引の償還記録を振り返ってみましょう。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

収益性の高い取引では合計 2 回の交換が行われ、最初の交換は 4,164,831 (約 416 万) MUMI トークンで 0.349 ETH、2 回目の交換は 416,483,100,000,000 (約 416 万) MUMI でした。 9.368 ETHのトークン。 2 番目の交換は、税務契約 (0x 7 ffb) の「swapExactETHForTokens」関数内で開始された交換であり、その数は、入力パラメーターで表される 420, 690, 000, 000, 000 (約 420 兆) トークンと同じです不一致の理由は、以下の図に示すように、一部のトークンが税金としてトークン コントラクト (0x 4894) に送信されるためです。

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する

1 回目の交換は 2 回目の交換プロセスに対応します。トークンが税コントラクト (0x 7 ffb) からルーター コントラクトに送信されると、トークン コントラクト内のバックドア機能のトリガー条件が満たされ、「トークン コントラクトによって開始される交換」が発生します。 「swapTokensForEth」関数は重要な操作ではありません。

  • 後ろの大鎌

上記からわかるように、展開から流動性プールの作成、MUMI トークンのラグプルまでの出口詐欺サイクル全体にかかる時間はわずか約 3 時間ですが、コストは約 6.5 ETH 未満です (追加するには 3 ETH流動性、誘導のために流動性プールから MUMI を交換するために 3 ETH が使用され、契約の展開とトランザクションの開始には 0.5 ETH 未満が使用されました)、9.7 ETH を獲得し、50% 以上の利益を得ました。

前回の記事では触れていませんでしたが、攻撃者がETHをMUMIに交換したトランザクションは5件あり、トランザクション情報は以下の通りです。

  • https://etherscan.io/tx/0x62a59ba219e9b2b6ac14a1c35cb99a5683538379235a68b3a607182d7c814817

  • https://etherscan.io/tx/0x0c9af78f983aba6fef85bf2ecccd6cd68a5a5d4e5ef3a4b1e94fb10898fa597e

  • https://etherscan.io/tx/0xc0a048e993409d0d68450db6ff3fdc1f13474314c49b734bac3f1b3e0ef39525

  • https://etherscan.io/tx/0x9874c19cedafec351939a570ef392140c46a7f7da89b8d125cabc14dc54e7306

  • https://etherscan.io/tx/0x9ee3928dc782e54eb99f907fcdddc9fe6232b969a080bc79caa53ca143736f75

流動性の中で動作している eoa アドレスを分析した結果、アドレスのかなりの部分がチェーン上の「新しいロボット」であることがわかりました。出入りが速いという詐欺全体の特徴と組み合わせると、次のように考える理由があります。この詐欺全体のターゲットは正しいものであり、チェーン上で非常に活発に活動しているさまざまな新しいロボットや新しいスクリプトです。

したがって、一見不必要だが複雑な契約設計、契約展開、トークンの流動性ロックプロセス、または攻撃者の関連アドレスが積極的にETHをMUMIトークンと交換する不審な動作など、攻撃者が次のことを試みていることが理解できます。欺瞞 チェーン上のさまざまな新しいロボットの不正行為防止手順を通じて偽装します。

資金の流れを追跡したところ、攻撃による収益はすべて、最終的に攻撃アドレス②(0x 9 dF 4)によってアドレス資金決済アドレス(0x DF 1 a)に送金されたことがわかりました。詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読する実際、最近検出した多くの出口詐欺の最初の資金源と最終的な資金の宛先はこのアドレスを指しているため、このアドレスでの取引に関する大まかな分析と統計を実施しました。

最終的に、このアドレスは約 2 か月前にアクティブになり、今日の時点で 7,000 を超えるトランザクションを開始し、200 を超えるトークンとやり取りしていることが判明しました。

私たちが約 40 件のトークン取引記録を分析したところ、調べたほとんどすべてのトークンに対応する流動性プールの中で、最終的にはトークンの総供給量よりもはるかに大きな投入量の交換取引が存在することがわかりました。入力された ETH が枯渇し、出口詐欺の期間全体が短くなります。

一部のトークン(Mingyan China)の展開トランザクションは次のとおりです。https://etherscan.io/tx/0x324d7c133f079a2318c892ee49a2bcf1cbe9b20a2f5a1f36948641a902a83e17

詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読するhttps://etherscan.io/tx/0x 0 ca 86151 3d c 68 eaef 3017 e 7118 e 7538 d 999 f 9 b 4 a 53 e 1 b 477 f 1 f 1 ce 07 d 98 2d c 3 f詳細な技術説明: チェーン上で新しいゲームをプレイし、大規模な Rug Pull テクニックを解読するしたがって、このアドレスは実際には大規模な自動「出口詐欺」ハーベスターであり、ハーベスティングのターゲットはチェーン上の新しいロボットであると結論付けることができます。

このアドレスはまだ有効です。

最後に書きます

トークンが鋳造時に totalSupply を変更せず、Transfer イベントをトリガーしない場合、プロジェクト側が秘密裏にトークンを鋳造しているかどうかを検出することが難しく、トークンが安全かどうかという問題も深刻になります。完全にプロジェクト側に依存する。意識的か否か」現状。

したがって、トークン量の変化のオープン性と透明性を確保するために、既存のトークン メカニズムを改善するか、効果的なトークン合計検出ソリューションの導入を検討する必要があるかもしれませんが、現時点では、トークンのステータス変化をイベントで捕捉するだけでは十分ではありません。

そして、私たちが注意する必要があるのは、全員の不正行為に対する意識が向上している一方で、攻撃者の不正行為対策手法も向上しているということです。これは終わりのないゲームです。これを行うには、学び、考え続ける必要があります。 . ゲームでは自分の身を守りましょう。

  • この記事で使用したツール

基本的なトランザクション情報を表示します。https://etherscan.io/

コントラクトの逆コンパイル:app.dedaub.com/decompilejson-rpc:

https://www.quicknode.com/docs/ethereum/eth_getStorageAt

オリジナル記事、著者:CertiK。転載/コンテンツ連携/記事探しはご連絡ください report@odaily.email;法に違反して転載するには必ず追究しなければならない

ODAILYは、多くの読者が正しい貨幣観念と投資理念を確立し、ブロックチェーンを理性的に見て、リスク意識を確実に高めてください、発見された違法犯罪の手がかりについては、積極的に関係部門に通報することができる。

おすすめの読み物
編集者の選択