Higit sa $7.5M ang nawala sa pag-atake ng MEV Bot Honeypot: Pagsusuri at Paghahanap ng Pondo

icon MarsBit
I-share
AI summary iconSummary

Iyunyo 21, ang isa sa mga pinakamalikhaing MEV Bot sa network ng Ethereum, ang Jaredfromsubway.eth, ay naging biktima ng isang maingat na isinaplanong “honeypot attack” at nawalan ng higit sa $7.5 milyon na cryptocurrency assets. Narito ang pagsusuri at pagsubaybay sa paggalaw ng mga pinagkukunan ng Beosin Security Team tungkol sa pag-atake na ito.

Pagsusuri sa proseso ng pag-atake

Attack contract family

- Coordinator Contract (0xb84db016324e8f2bfdd8dd9c260338aee0a8df52): Nagtutugon sa pag-record kung ang kasalukuyang block ay nasa armed state, at nagpapalipat ng pondo sa pamamagitan ng paulit-ulit na pagtawag sa sub-contract sa huling yugto. - Trigger Contract (0x4de8c729a064ff6087cc84a4152969349e4feb98): Nagtutugon sa pagtatayo ng maliit na estado ng trading pair sa loob ng parehong block upang gawing tila epektibo ang arbitrage path. - Sub-contract / Fake Token Contract: Nagpapakita bilang karaniwang ERC-20 token upang makakuha ng totoong pagkakaroon ng awtorisasyon. - Hub Contract: Nagtutugon sa pagbabayad ng kaunting totoong kita upang gawing tila makabuluhan ang MEV Bot. - Ring V2 pair: Maling Uniswap v2 trading pair. - Fake Intermediate Token Contract: Ginagamit upang bumuo ng multi-hop arbitrage path, tulad ng fCAP, fUSDC.

Pangunahing panganib: Pagpapahintulot na masisiil

Sa pamamagitan ng pagsusuri sa on-chain transactions, ang attacker ay nagbuo ng maraming grupo ng decoy transactions:

- Malaking USDC: Ang robot ay kumita ng humigit-kumulang 36.997120 USDC, ngunit iniwan ang 20 USDC na awtorisasyon. - Malaking USDT: Ang robot ay kumita ng humigit-kumulang 37.053440 USDT, ngunit iniwan ang 20 USDT na awtorisasyon. - Malaking WETH: Ang robot ay kumita ng humigit-kumulang 0.0179 WETH, ngunit iniwan ang 16 WETH na awtorisasyon. - Ang mga maliit na transaksyon ay nagtatrabaho nang maayos, at ang awtorisasyon ay napapagana sa loob ng parehong transaksyon upang bawasan ang pagdududa.

Sa mga maliit na transaksyon, agad na hinuhulihin ng sub-contract ang totoong token pagkatapos ng pagpapahintulot ng robot, at nababawasan ang pagpapahintulot, tila lubos na normal.

Sa malalaking transaksyon, ang sub-contract ay hindi nagtatawag ng transferFrom upang ilipat ang tunay na token, kundi direktang gumagawa ng fake na token sa pamamagitan ng pagpapalit ng transaksyon. Ang robot ay naniniwala na natapos na nito ang mga normal na hakbang bago ang swap, ngunit ang pagsasang-ayon sa tunay na token ay nananatili pa rin.

Ito ang core ng buong pag-atake: ang mga maliit na transaksyon ay normal na nagkakaroon ng awtorisasyon, habang ang mga malalaking transaksyon ay nananatiling awtorisado.

Proses ng pag-atake

Halimbawa ng pag-atake sa pamamagitan ng pag-trade gamit ang USDC:

(1) Ang attacker ay tumawag sa coordinator upang itakda ang kasalukuyang block bilang armed (2) Ang attacker ay tumawag sa trigger upang i-update ang estado ng maraming forged Ring V2 pair (3) Ang MEV Bot ay nakakita ng arbitrage opportunity at nag-execute ng transaction

Ang mga hakbang sa loob ng MEV Bot ay sumusunod:

(1) Ang MEV Bot contract ay nagbigay ng malaking pahintulot na USDC sa isang sub-contract (2) Ang MEV Bot ay tumawag sa wrapTo/wrap function ng sub-contract (3) Dahil sa kasalukuyang estado nito na armed, ang sub-contract ay hindi nagkakaltas ng totoong USDC, kundi nagmimint ng fake token sa pair, at ang pahintulot sa USDC ay nananatili (4) Ang MEV Bot ay patuloy na tumawag sa swap ng fake pair (5) Ang pangalawang hop pair ay nagpadala ng token sa MEV Bot (6) Ang hub contract ay nagbabayad ng kaunting totoong USDC na kita sa MEV Bot

Image

halimbawa ng pagpapahintulot

tx hash: 0x0121e07a916c06eea3e7daf11893f3f0b95b9e1684124545ae14c32aee6029bb

Mga resulta na nakita ng MEV Bot: isang matagumpay na arbitrage trade na nagdala ng tunay na kita sa USDC. Ngunit ang pagsasagawa ng USDC ay pinanatili ng sub-contract. Ipinapakita ang ganitong proseso para sa USDC, USDT, at WETH, at nagtatapos sa malaking dami ng pagsasagawa.

Ang attack transaction hash ay:

0x2be8704f5a59b69e0b71f64aefdb99eb0e8ae9fb3926147c581910d71bcf3e65

Inumin ng attacker ang drain loop ng coordinator contract, na naglalaman ng 66 na mga address ng sub-contract at ang address ng MEV Bot contract. Kung ang MEV Bot contract ay nagbigay na ng authorization para sa mga sub-contract, maaari nang i-transfer nang direkta ng mga sub-contract ang katumbas na tunay na token sa attacker.

Final result:

- Natapos lahat ng 20 na malalaking pagsasagawa ng USDC - Natapos lahat ng 16 na malalaking pagsasagawa ng WETH - Mayroon pa ring bahagyang pagsasagawa ng USDT, ngunit kulang na ang balanse ng USDT

Fund Flow Analysis

Pagkatapos ng pag-atake, natanggap ng address ng attacker (0x3e37f4A10d771Ba9dE44b6d301410b1BEdeA65d0) ang $2.87M USDC, $2.04M USDT, at 1,474 WETH. Pagkatapos ay isinwapo ng attacker ang mga stablecoin sa ETH at isinapag sa mga sumusunod na 4 na address:

- 0xe3Da36E4bd1a5738fa5D6Ef4F0e4dF40bDeB5f17 (halos 1,000 ETH) - 0x74Dc5b93586D248D5Aec64b3586736FF0A0D0e65 (1,001 ETH) - 0xd8C125efCBc99408eC8723E9BBd81d1E8D39D845 (1,001 ETH) - 0x71d4416A7A85e08a5Fe7227Ca3B44Fc639e94e97 (1,423 ETH)

Kung saan ang 0xe3Da3 ay nakapaglipat ng 1,000 ETH patungo sa Tornado Cash, habang ang iba pang tatlong address ay walang karagdagang paglipat ng ETH. Ang kanilang flow ng pondo ay ipinapakita sa ibaba:

Image

Wakas

Ipakita ng pagsalakay na ito ang isang mataas na presisyon na paraan ng pagsalakay: ang mga pagsalakay ay hindi direktang sumalakay sa code ng kontrata, kundi ayon sa lohika ng negosyo ng MEV Bot, ginawa nila ang mga kaukulang arbitrage scenario upang maliitin ang MEV Bot na magbigay ng awtorisasyon na tila walang problema, at sa huli ay ilipat ang kanilang mga ari-arian. Para sa mga arbitrage bot at MEV Bot, hindi sapat na batasan ang simulated profit upang matukoy ang kaligtasan ng ruta, lalo na kung ang arbitrage path ay may mga bagong kontrata, forged token, o custom wrapper; dapat maging maingat at isaisip ang pagsusuri sa pagbabago ng allowance pagkatapos ng transaksyon.

Tingnan ang orihinal na teksto

Disclaimer: Ang information sa page na ito ay maaaring nakuha mula sa mga third party at hindi necessary na nagre-reflect sa mga pananaw o opinyon ng KuCoin. Ibinigay ang content na ito para sa mga pangkalahatang informational purpose lang, nang walang anumang representation o warranty ng anumang uri, at hindi rin ito dapat ipakahulugan bilang financial o investment advice. Hindi mananagot ang KuCoin para sa anumang error o omission, o para sa anumang outcome na magreresulta mula sa paggamit ng information na ito. Maaaring maging risky ang mga investment sa mga digital asset. Pakisuri nang maigi ang mga risk ng isang produkto at ang risk tolerance mo batay sa iyong sariling kalagayang pinansyal. Para sa higit pang information, mag-refer sa aming Terms ng Paggamit at Disclosure ng Risk.