Vào lúc 4:34:42 sáng ngày 9 tháng 5 năm 2022, giờ Bắc Kinh, nhóm công nghệ bảo mật CertiK đã phát hiện ra rằng Fortress Loans đã bị tấn công bằng cách thao túng tiên tri.
Vào lúc 10:05 sáng ngày 9 tháng 5 theo giờ Bắc Kinh, JetFuel Finance cũng đã chính thức xác nhận tin tức về việc thao túng tiên tri, đồng thời công bố các liên kết đến các địa chỉ và giao dịch đáng ngờ:
Hiện dự án đã thiệt hại khoảng 1.048,1 ETH và 400.000 DAI (tổng giá trị khoảng 2,98 triệu đô la Mỹ ). Kẻ tấn công đánh cắp ETH và DAI thông qua DAO và thao túng tiên tri để hoàn thành cuộc tấn công. Sau khi lấy được các mã thông báo bị đánh cắp, nó đã nhanh chóng đổi tất cả các mã thông báo lấy ETH và chuyển ETH ra ngoài thông qua Tornado Cash.
giao dịch dễ bị tổn thương
https://bscscan.com/tx/0x13d19809b19ac512da6d110764caee75e2157ea62cb70937c8d9471afcb061bf
https://bscscan.com/tx/0x851a65865ec89e64f0000ab973a92c3313ea09e80eb4b4660195a14d254cd425
địa chỉ liên quan
Địa chỉ tấn công: https://bscscan.com/address/0xA6AF2872176320015f8ddB2ba013B38Cb35d22Ad
Hợp đồng kẻ tấn công (rất có thể tự hủy):
https://bscscan.com/address/0xcd337b920678cf35143322ab31ab8977c3463a45
Nhà tiên tri Fortress Loans:
https://bscscan.com/address/0x00fcf33bfa9e3ff791b2b819ab2446861a318285#code
Hợp đồng chuỗi: https://bscscan.com/address/0xc11b687cd6061a6516e23769e4657b6efa25d
các bước tấn công
Kẻ tấn công đã tạo và tài trợ một EOA (0x0db3b68c482b04c49cd64728ad5d6d9a7b8e43e6) với ID đề xuất là 11 cho hợp đồng Alpha của Thống đốc Pháo đài (0xe79ecdb7fedd413e697f083982bac29e93d86b2e).
Đề xuất11: https://bscscan.com/tx/0x12bea43496f35e7d92fb91bf2807b1c95fcc6fedb062d66678c0b5cfe07cc002#eventlog
Một EOA khác do kẻ tấn công kiểm soát (0x0db3b68c482b04c49cd64728ad5d6d9a7b8e43e6) sau đó đã được bình chọn cho đề xuất này: https://bscscan.com/tx/0x83a4f8f52b8f9e6ff1dd76546a772475824d9aa5b953808dbc34d 1f 39250f29d #eventlog
Do đó, Đề xuất 11 được thực hiện, tăng tài sản thế chấp mã thông báo FTS lên 70000000000000, cho phép kẻ tấn công khai thác nó để kiếm lợi nhuận trong các bước sau.
Sau đó, kẻ tấn công đã cung cấp 100 FTS làm tài sản thế chấp bằng cách tấn công hợp đồng https://bscscan.com/address/0xcd337b920678cf35143322ab31ab8977c3463a45 và đổi lại vay một lượng lớn token khác. https://bscscan.com/tx/0x13d19809b19ac512da6d110764caee75e2157ea62cb70937c8d9471afcb061bf
Kẻ tấn công cũng thao túng tiên tri bằng cách gọi hàm "submit()" trong hợp đồng thông minh được xâu chuỗi, trong đó "Chữ ký bắt buộc" có thể bị bỏ qua và kiểm tra năng lượng bị vô hiệu hóa trong quá trình triển khai.
Cuối cùng, một phần lợi nhuận được chuyển đến địa chỉ của kẻ tấn công và phần còn lại của lợi nhuận được chuyển bên ngoài hợp đồng tấn công.
Phân tích lỗ hổng hợp đồng
Lỗ hổng ①
Lỗ hổng đầu tiên là lỗ hổng thiết kế trong hợp đồng quản trị.
Các hợp đồng quản trị có thể thực hiện các đề xuất thành công để sửa đổi các cấu hình liên quan đến cho vay (nghĩa là thêm một tài sản thế chấp và hệ số tài sản thế chấp tương ứng của nó). Tuy nhiên, mã thông báo FTS tối thiểu cần thiết để bỏ phiếu là 400.000 để đề xuất được thực hiện thành công. Do giá của mã thông báo FTS thấp, những kẻ tấn công đã đổi khoảng 11 ETH lấy hơn 400.000 mã thông báo FTS.
Với các mã thông báo FTS này, kẻ tấn công có thể tạo một đề xuất độc hại theo ý muốn và thực hiện thành công.
Lỗ hổng②
Lỗ hổng thứ hai là chức năng "cam kết" của hợp đồng chuỗi có một lỗ hổng - cho phép bất kỳ ai cũng có thể cập nhật giá.
Các tuyên bố cần thiết trong L142 được bình luận. Do đó, không có xác thực để đảm bảo rằng lệnh gọi hàm được kích hoạt chính xác.
Nơi ở của tài sản
780.000 + 2,28 triệu USDT đã được chuyển đến địa chỉ của kẻ tấn công sau hai giao dịch tấn công.
2,3 triệu USDT đã được gửi tới Ethereum tới anySwap(Multichain).
770.000 USDT đã được gửi đến Ethereum thông qua cBridge (Mạng Celer).
Tất cả USDT được chuyển đổi thành ETH và DAI thông qua Unswap và được gửi tới Tornado Cash.
mốc thời gian
Vào khoảng 00:30 ngày 9 tháng 5 theo giờ Bắc Kinh, giá token Fortress (FTS) đã giảm mạnh. Ngay sau đó, nhóm dự án đã tuyên bố trong bức điện tín: Có một số vấn đề với dự án, hiện đang được điều tra.
Nhưng cuộc tấn công có thể đã bắt đầu sớm hơn chúng ta nghĩ.
Lần đầu tiên những kẻ tấn công bắt đầu "thử nghiệm" là vào lúc 1:41:59 sáng ngày 20 tháng 4, giờ Bắc Kinh, khi chúng triển khai một hợp đồng tùy chỉnh chưa được xác minh. Trong những tuần sau "sự cố", những kẻ tấn công tiếp tục tương tác với Fortress thông qua một loạt giao dịch và triển khai các hợp đồng chưa được xác minh, một hành vi không giảm bớt cho đến vài ngày đầu tiên của cuộc tấn công.
Sau khi kẻ tấn công triển khai hợp đồng, sau đó chúng bắt đầu một loạt giao dịch — cho phép chúng tạo và tài trợ cho một địa chỉ thuộc sở hữu bên ngoài, đưa ra các đề xuất độc hại cho hợp đồng Alpha của Thống đốc Pháo đài và tự bỏ phiếu — vì kẻ tấn công trước đó đã thao túng giá, vì vậy chúng có thể dễ dàng mua đủ FTS (số phiếu cần thiết là 400.000), sau đó đặt tài sản thế chấp của mã thông báo FTS cao đến mức giá trị của FTS tăng lên, sử dụng nó để vay một số lượng lớn mã thông báo khác, sau đó đổi lấy ETH và DAI.
Ngoài ra, có một chức năng " tự hủy " trong hợp đồng do kẻ tấn công triển khai, chức năng này sẽ được kích hoạt sau khi tất cả các giao dịch độc hại được hoàn thành.
Hiện tại, tiền được chuyển đến chuỗi Ethereum sau khi đi qua cầu cBridge (Mạng Celer) và cầu trao đổi Multichain, đồng thời được gửi đến Tornado Cash trong một loạt các giao dịch tiếp theo.
viết ở cuối
Cuộc tấn công này đáng lẽ phải được tránh một cách hiệu quả thông qua kiểm toán bảo mật.
Đối với lỗ hổng ①, vì giá của mã thông báo quản trị và số lượng mã thông báo đang lưu hành chưa được biết nên không dễ phát hiện ra rủi ro này, nhưng có thể cảnh báo các cuộc tấn công liên quan tiềm ẩn thông qua phát hiện rủi ro nhất định.
Đối với lỗ hổng ②, quá trình kiểm tra có thể phát hiện thiếu xác minh khóa, ngăn chặn bất kỳ ai thao túng giá bằng cách gửi chức năng.
Vụ tấn công do thao túng cỗ máy tiên tri không phải là ví dụ duy nhất, vài ngày trước, CertiK đã tung ra [Chỉ cần thao túng cỗ máy tiên tri là một con sói trắng tay? Phân tích cuộc tấn công trị giá 15,7 triệu đô la vào DEUS Finance DAO] Số tiền bị đánh cắp thậm chí còn lớn hơn.
Có vô số rủi ro bảo mật trong lĩnh vực mã hóa. Nhóm dự án nên thận trọng nhất có thể và luôn chú ý đến các sự cố bảo mật để tự kiểm tra, đồng thời cải thiện và kiểm tra mã hợp đồng một cách kịp thời.