Hơn 7,5 triệu USD bị mất trong cuộc tấn công bẫy MEV Bot: Phân tích và truy vết quỹ

icon MarsBit
Chia sẻ
AI summary iconTóm tắt

Ngày 21 tháng 6, một trong những MEV Bot hoạt động sôi nổi nhất trên mạng Ethereum, Jaredfromsubway.eth, đã trở thành mục tiêu của một cuộc tấn công “bẫy mật” (honeypot attack) được thiết kế tinh vi, gây tổn thất hơn 7,5 triệu USD tài sản tiền điện tử. Dưới đây là phân tích và theo dõi luồng tiền bị đánh cắp từ nhóm an ninh Beosin về cuộc tấn công này.

Phân tích quy trình tấn công

Attack contract family

- Hợp đồng điều phối (0xb84db016324e8f2bfdd8dd9c260338aee0a8df52): chịu trách nhiệm ghi lại trạng thái armed của khối hiện tại và gọi lặp lại các hợp đồng con trong giai đoạn cuối để rút tiền. - Hợp đồng kích hoạt (0x4de8c729a064ff6087cc84a4152969349e4feb98): chịu trách nhiệm thiết lập trạng thái cặp giao dịch giả trong cùng một khối, khiến các lộ trình arbitrage trông có vẻ có thể thực hiện được. - Hợp đồng con / Hợp đồng tiền giả: giả dạng là token ERC-20 bình thường để nhận quyền ủy quyền thật. - Hợp đồng Hub: chịu trách nhiệm thanh toán lợi nhuận thật nhỏ để khiến MEV Bot cảm thấy có lợi nhuận. - Cặp Ring V2: cặp giao dịch Uniswap v2 giả. - Hợp đồng tiền trung gian giả: dùng để xây dựng lộ trình arbitrage đa bước, như fCAP, fUSDC.

Chìa khóa của cuộc tấn công: lừa đảo cấp quyền

Bằng cách phân tích các giao dịch trên chuỗi, kẻ tấn công đã tạo ra nhiều nhóm giao dịch bẫy:

- USDC lớn: robot kiếm được khoảng 36,997120 USDC, nhưng giữ lại 20 USDC để cấp quyền. - USDT lớn: robot kiếm được khoảng 37,053440 USDT, nhưng giữ lại 20 USDT để cấp quyền. - WETH lớn: robot kiếm được khoảng 0,0179 WETH, nhưng giữ lại 16 WETH để cấp quyền. - Giao dịch nhỏ diễn ra bình thường, quyền được tiêu thụ trong cùng giao dịch để giảm sự nghi ngờ.

Trong các giao dịch nhỏ, sau khi robot được cấp quyền hạn mức token thật, hợp đồng con sẽ ngay lập tức chuyển đi token thật, quyền hạn bị tiêu hao và trông hoàn toàn bình thường.

Trong các giao dịch lớn, hợp đồng con không gọi transferFrom để chuyển các token thật, mà thay vào đó tạo ra các token giả thông qua giao dịch giả mạo. Robot nghĩ rằng nó đã hoàn thành các bước tiền xử lý swap bình thường, nhưng quyền hạn chuyển nhượng token thật vẫn được giữ nguyên.

Đây là cốt lõi của toàn bộ cuộc tấn công: các giao dịch nhỏ tiêu thụ quyền hạn bình thường, trong khi các giao dịch lớn giữ nguyên quyền hạn.

Quy trình tấn công

Ví dụ về giao dịch tấn công nhắm vào USDC:

(1) Kẻ tấn công gọi bộ điều phối để đặt khối hiện tại ở trạng thái armed (2) Kẻ tấn công gọi bộ kích hoạt để cập nhật trạng thái của nhiều cặp Ring V2 giả mạo (3) MEV Bot phát hiện cơ hội arbitrage và thực hiện giao dịch

Quy trình nội bộ của bot MEV như sau:

(1) Hợp đồng MEV Bot cấp quyền hạn lớn USDC cho một hợp đồng con (2) MEV Bot gọi hàm wrapTo/wrap của hợp đồng con (3) Do trạng thái hiện tại là armed, hợp đồng con không tiêu hao USDC thật, mà đúc token giả vào cặp giao dịch, giữ nguyên quyền hạn USDC (4) MEV Bot tiếp tục gọi swap trên cặp giao dịch giả (5) Cặp giao dịch nhảy thứ hai gửi token đến MEV Bot (6) Hợp đồng hub thanh toán một khoản lợi nhuận USDC thật nhỏ cho MEV Bot

Hình ảnh

ví dụ về sự chấp thuận

tx hash: 0x0121e07a916c06eea3e7daf11893f3f0b95b9e1684124545ae14c32aee6029bb

Kết quả mà MEV Bot nhìn thấy: Một giao dịch arbitrage thành công, mang lại lợi nhuận USDC thực tế. Tuy nhiên, quyền truy cập USDC đã bị hợp đồng con giữ lại. Quy trình này được lặp lại riêng biệt cho USDC, USDT và WETH, cuối cùng tạo ra một lượng lớn quyền truy cập.

Attack transaction hash:

0x2be8704f5a59b69e0b71f64aefdb99eb0e8ae9fb3926147c581910d71bcf3e65

Kẻ tấn công gọi hàm drain loop của hợp đồng điều phối, trong calldata chứa 66 địa chỉ hợp đồng con và địa chỉ hợp đồng MEV Bot. Chỉ cần hợp đồng MEV Bot trước đó đã cấp hạn mức ủy quyền cho các hợp đồng con, các hợp đồng con có thể trực tiếp chuyển các token thực tế tương ứng cho kẻ tấn công.

Kết quả cuối cùng:

- Đã sử dụng hết 20 khoản ủy quyền lớn USDC - Đã sử dụng hết 16 khoản ủy quyền lớn WETH - Vẫn còn một phần hạn mức ủy quyền USDT, nhưng số dư USDT không đủ

Fund Flow Analysis

Sau khi thành công trong cuộc tấn công, địa chỉ của kẻ tấn công (0x3e37f4A10d771Ba9dE44b6d301410b1BEdeA65d0) đã nhận được $2,87M USDC, $2,04M USDT và 1.474 WETH. Sau đó, kẻ tấn công đã đổi các tài sản ổn định thành ETH và chuyển đến 4 địa chỉ sau:

- 0xe3Da36E4bd1a5738fa5D6Ef4F0e4dF40bDeB5f17 (khoảng 1.000 ETH) - 0x74Dc5b93586D248D5Aec64b3586736FF0A0D0e65 (1.001 ETH) - 0xd8C125efCBc99408eC8723E9BBd81d1E8D39D845 (1.001 ETH) - 0x71d4416A7A85e08a5Fe7227Ca3B44Fc639e94e97 (1.423 ETH)

Trong đó, 0xe3Da3 đã chuyển 1.000 ETH đến Tornado Cash, còn ba địa chỉ khác không có thêm chuyển nhượng ETH nào. Dòng tiền của nó được hiển thị như sau:

Hình ảnh

Kết luận

Cuộc tấn công này cho thấy một phương thức tấn công tinh vi: kẻ tấn công không trực tiếp nhắm vào mã hợp đồng, mà dựa trên logic nghiệp vụ của MEV Bot, tạo ra các kịch bản arbitrage tương ứng để lừa MEV Bot thực hiện các quyền hạn trông có vẻ không có vấn đề, sau đó chuyển tài sản của nó. Đối với các bot arbitrage và MEV Bot, không nên chỉ dựa vào lợi nhuận mô phỏng để đánh giá tính an toàn của lộ trình, đặc biệt khi lộ trình arbitrage chứa các hợp đồng lạ, token giả mạo hoặc wrapper tùy chỉnh, cần thận trọng và xem xét thực hiện kiểm tra bắt buộc đối với sự thay đổi allowance sau giao dịch.

Xem bài gốc

Tuyên bố miễn trừ trách nhiệm: Thông tin trên trang này có thể được lấy từ bên thứ ba và không nhất thiết phản ánh quan điểm hoặc ý kiến của KuCoin. Nội dung này chỉ được cung cấp cho mục đích thông tin chung, không có bất kỳ đại diện hay bảo đảm nào dưới bất kỳ hình thức nào và cũng không được hiểu là lời khuyên tài chính hay đầu tư. KuCoin sẽ không chịu trách nhiệm về bất kỳ sai sót hoặc thiếu sót nào hoặc về bất kỳ kết quả nào phát sinh từ việc sử dụng thông tin này. Việc đầu tư vào tài sản kỹ thuật số có thể tiềm ẩn nhiều rủi ro. Vui lòng đánh giá cẩn thận rủi ro của sản phẩm và khả năng chấp nhận rủi ro của bạn dựa trên hoàn cảnh tài chính của chính bạn. Để biết thêm thông tin, vui lòng tham khảo Điều khoản sử dụngTiết lộ rủi ro của chúng tôi.