Tác giả: Beosin
Vào rạng sáng ngày 9 tháng 1, một hợp đồng chưa được mã nguồn mở mà Truebit Protocol đã triển khai cách đây 5 năm đã bị tấn công, gây mất 8.535,36 ETH (tương đương khoảng 26,4 triệu USD). Nhóm an ninh Beosin đã tiến hành phân tích lỗ hổng và theo dõi nguồn tiền trong sự kiện an ninh lần này, và chia sẻ kết quả như sau:

Phân tích phương pháp tấn công
Trong sự kiện này, chúng ta sẽ phân tích giao dịch tấn công chính, mã băm giao dịch là: 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
1. Người tấn công gọi getPurchasePrice() để lấy giá.

2. Sau đó gọi hàm có lỗi 0xa0296215() và thiết lập giá trị msg.value rất nhỏ

Do hợp đồng chưa được công khai mã nguồn, người ta suy đoán rằng hàm này có lỗ hổng logic số học thông qua việc phân tích mã được phản biên dịch, ví dụ như lỗi cắt bớt số nguyên, dẫn đến việc người tấn công đã đúc thành công một lượng lớn token TRU.
3. Kẻ tấn công sử dụng hàm burn để "bán lại" các đồng tiền đã đúc cho hợp đồng, rút một lượng lớn ETH từ quỹ dự trữ của hợp đồng.

Quy trình này được lặp lại thêm 4 lần, mỗi lần giá trị msg.value tăng lên, cho đến khi hầu như toàn bộ ETH trong hợp đồng bị rút sạch.
Theo dõi tiền bị đánh cắp
Dựa trên dữ liệu giao dịch trên chuỗi, Beosin đã tiến hành theo dõi và điều tra chi tiết các khoản tiền thông qua nền tảng điều tra và theo dõi chuỗi khối BeosinTrace của mình, và chia sẻ kết quả như sau:
Hiện tại, 8.535,36 ETH bị đánh cắp sau khi được chuyển đi, phần lớn đã được lưu trữ lần lượt tại 0xd12f6e0fa7fbf4e3a1c7996e3f0dd26ab9031a60 và 0x273589ca3713e7becf42069f9fb3f0c164ce850a.
Trong đó, địa chỉ 0xd12f đang nắm giữ 4.267,09 ETH, địa chỉ 0x2735 nắm giữ 4.001 ETH. Địa chỉ mà người tấn công đã thực hiện cuộc tấn công (0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50) vẫn còn 267,71 ETH, và chưa có giao dịch chuyển tiền nào được thực hiện từ ba địa chỉ này.

Biểu đồ phân tích luồng tiền bị đánh cắp bởi Beosin Trace
Tất cả các địa chỉ trên đều đã bị Beosin KYT gán nhãn là địa chỉ rủi ro cao, lấy ví dụ địa chỉ của người tấn công:

Beosin KYT
Kết luận
Số tiền bị đánh cắp lần này liên quan đến hợp đồng thông minh chưa được công khai mã nguồn cách đây 5 năm. Đối với các hợp đồng như vậy, các bên dự án nên nâng cấp hợp đồng, đưa vào các tính năng như tạm dừng khẩn cấp, giới hạn tham số và các tính năng an toàn mới của Solidity. Ngoài ra, việc kiểm toán an ninh vẫn là khâu không thể thiếu đối với hợp đồng. Thông qua kiểm toán an ninh, các doanh nghiệp Web3 có thể kiểm tra toàn diện mã hợp đồng thông minh, phát hiện và sửa chữa các lỗ hổng tiềm ẩn, từ đó nâng cao tính an toàn của hợp đồng.
Beosin sẽ cung cấp báo cáo phân tích đầy đủ về tất cả các luồng vốn và rủi ro địa chỉ lần này, vui lòng truy cập địa chỉ email chính thức support@beosin.com để nhận báo cáo.


