Nền tảng

Trong một bài viết trước đó của CertiK có tiêu đề "Tiết lộ một Kế hoạch Lừa đảo Quy mô Lớn Nhắm vào Các Robot Mới trên Chuỗi," đã tiết lộ một địa chỉ máy thu hoạch tự động 0xdf1a cho một kế hoạch lừa đảo quy mô lớn (được gọi là RugPull) đã hoàn thành hơn 200 lần RugPull chỉ trong khoảng hai tháng. Tuy nhiên, nhóm này không chỉ sử dụng một kỹ thuật RugPull.

Bài viết trước đó đã sử dụng token MUMI làm ví dụ để mô tả kỹ thuật RugPull của nhóm đứng sau địa chỉ đó: bằng cách trực tiếp sửa đổi số dư token của địa chỉ thu thuế thông qua một lỗ hổng mã, mà không thay đổi tổng nguồn cung token hoặc gửi một sự kiện Chuyển khoản, khiến cho người dùng xem etherscan không thể phát hiện hành vi đào token bí mật của nhóm dự án.

Bài viết hôm nay phân tích một kỹ thuật RugPull khác của nhóm sử dụng token "ZhongHua" làm ví dụ: che giấu chức năng chuyển giao có thể được sử dụng cho RugPull với logic chức năng thuế phức tạp. Tiếp theo, chúng ta sẽ phân tích chi tiết về một kỹ thuật RugPull khác của địa chỉ 0xdf1a thông qua trường hợp token "ZhongHua".

Sâu vào Vụ lừa đảo

Trong trường hợp này, nhóm dự án đã trao đổi tổng cộng 9,99 nghìn tỷ ZhongHua cho khoảng 5,884 WETH, làm cạn kiệt thanh khoản của hồ bơi. Để đào sâu vào vụ lừa đảo RugPull toàn diện, hãy xem xét lại các sự kiện từ đầu.

Triển khai Token

Lúc 1:40 sáng ngày 18 tháng 1 (giờ UTC, tương tự ở dưới), địa chỉ tấn công (😈0x74fc) triển khai một token ERC20 mang tên ZhongHua (🪙0x71d7) và đào trước 10 tỷ token để gửi cho địa chỉ tấn công (😈0x74fcfc).

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 0

Số lượng token đào trước khớp với số lượng được xác định trong mã nguồn hợp đồng.

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 1

Thêm Thanh khoản

Lúc 1:50 (10 phút sau khi tạo token), địa chỉ tấn công (😈0x74fc) cấp quyền cho Bộ định tuyến Uniswap V2 cho token ZhongHua để chuẩn bị thêm thanh khoản.

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 2

Một phút sau đó, địa chỉ tấn công (😈0x74fc) gọi hàm addLiquidityETH trong Bộ định tuyến để thêm thanh khoản tạo hồ bơi thanh khoản ZhongHua-WETH (🦄0x5c8b), thêm tất cả các token đào trước và 1,5 ETH vào hồ bơi thanh khoản, cuối cùng thu được khoảng 1,225 LP token.

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 3

Từ các bản ghi chuyển token trên, chúng ta có thể thấy rằng một chuyển giao là địa chỉ tấn công (😈0x74fc) gửi 0 token đến chính hợp đồng token ZhongHua.

Chuyển giao này không phải là chuyển giao thông thường để thêm thanh khoản. Bằng cách kiểm tra mã nguồn hợp đồng token, đã phát hiện rằng có một hàm _getAmount chịu trách nhiệm trừ tiền từ địa chỉ người gửi và tính phí sẽ được thu, sau đó gửi phí đến địa chỉ token, và kích hoạt sự kiện Chuyển khoản chỉ ra rằng địa chỉ token đã nhận được phí.

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 4

Hàm _getAmount sẽ kiểm tra xem người gửi của chuyển giao có phải là _owner không, và nếu đúng, nó sẽ đặt phí là 0. _owner được gán khi hợp đồng Ownable được triển khai bởi tham số đầu vào của hàm constructor.

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 5

Hợp đồng token ZhongHua kế thừa hợp đồng Ownable và gán msg.sender của người triển khai làm tham số đầu vào của hàm constructor của Ownable khi triển khai.

Do đó, địa chỉ tấn công (😈0x74fc) là _owner của hợp đồng token. Số 0 token

Trong quá trình thêm thanh khoản, việc chuyển giao trong hàm _getAmount được thực hiện vì hàm _getAmount được gọi trong các hàm transfer và transferFrom.

Khoá Thanh Khoản Vĩnh Viễn

Lúc 1:51 (trong vòng 1 phút sau khi tạo hồ bơi thanh khoản), địa chỉ của kẻ tấn công (😈0x74fc) đã trực tiếp chuyển gửi tất cả 1.225 token LP thu được từ việc thêm thanh khoản đến địa chỉ 0xdead để khoá vĩnh viễn các token LP.

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 6

Tương tự như trường hợp token MUMI, khi LP bị khoá, lý thuyết thì địa chỉ của kẻ tấn công (😈0x74fc) sẽ không còn khả năng thực hiện RugPull bằng cách rút thanh khoản. Trong vụ lừa đảo RugPull nhắm vào các robot mới do địa chỉ 0xdf1a dẫn đầu, bước này chủ yếu được sử dụng để đánh lừa các kịch bản chống gian lận của các robot mới.

Cho đến nay, từ góc nhìn của người dùng, tất cả token được đào trước đã được sử dụng để thêm vào hồ bơi thanh khoản, và không có tình huống bất thường nào xảy ra.

RugPull

Lúc 2:10 sáng (khoảng 30 phút sau khi tạo token ZhongHua), địa chỉ của kẻ tấn công 2 (👹0x5100) triển khai một hợp đồng tấn công (🔪0xc403) dành riêng cho RugPull.

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 7

Tương tự như trường hợp token MUMI, nhóm dự án không sử dụng địa chỉ tấn công đã triển khai hợp đồng token ZhongHua, và hợp đồng tấn công được sử dụng cho RugPull không phải là mã nguồn mở. Mục đích là tăng độ khó trong việc truy vết bởi nhân viên kỹ thuật, một đặc điểm phổ biến trong hầu hết các vụ lừa đảo RugPull.

Lúc 7:46 sáng (khoảng 6 giờ sau khi hợp đồng token được tạo), địa chỉ của kẻ tấn công 2 (👹0x5100) thực hiện RugPull.

Bằng cách gọi phương thức "swapExactETHForTokens" của hợp đồng tấn công (🔪0xc403), họ đã trao đổi khoảng 9.99 nghìn tỷ token ZhongHua cho khoảng 5.884 ETH và tiêu tốn hầu hết thanh khoản trong hồ bơi.

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 8

Vì hợp đồng tấn công (🔪0xc403) không phải là mã nguồn mở, chúng tôi đã giải mã bytecode của nó, và kết quả như sau:

https://app.dedaub.com/ethereum/address/0xc40343c5d0e9744a7dfd8eb7cd311e9cec49bd2e/decompiled

Chức năng chính của phương thức "swapExactETHForTokens" trong hợp đồng tấn công (🔪0xc403) là trao quyền chuyển giao tối đa của token ZhongHua cho UniswapV2 Router, sau đó trao đổi số lượng cụ thể "xt" token ZhongHua (do hợp đồng tấn công (🔪0xc403) sở hữu) cho ETH thông qua Router và gửi đến địa chỉ "rescue" được khai báo trong hợp đồng tấn công (🔪0xc403).

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 9

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 10

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 11

Web3 Cảnh báo an ninh: Trò chơi mới của Mèo và Chuột trên Chuỗi, Bot Bắn Súng Nhắm Mục Tiêu vào Người Đóng Thuế image 12