Phân tích sự cố tấn công tái nhập của OrionProtocol
Vào chiều ngày 2 tháng 2 năm 2023, dự án OrionProtocol trên Ethereum và Binance Smart Chain đã bị tấn công tái nhập do lỗ hổng hợp đồng, tổng thiệt hại khoảng 2,9 triệu đô la tài sản tiền điện tử, bao gồm 2,844,766 USDT (Ethereum) và 191,606 BUSD (BSC).
Phân tích quá trình tấn công
Kẻ tấn công đầu tiên triển khai một hợp đồng Token tùy chỉnh và thực hiện các thao tác chuyển và ủy quyền tương ứng, chuẩn bị cho cuộc tấn công tiếp theo. Sau đó, kẻ tấn công vay tiền thông qua chức năng swap của một sàn giao dịch phi tập trung và gọi phương thức ExchangeWithAtomic.swapThroughOrionPool của OrionProtocol để thực hiện việc trao đổi token. Đường trao đổi được thiết lập là USDC → Token tùy chỉnh của kẻ tấn công → USDT.
Trong quá trình trao đổi, kẻ tấn công đã lợi dụng hàm gọi lại trong hợp đồng Token tùy chỉnh để gọi lại phương thức ExchangeWithAtomic.depositAsset nhiều lần, dẫn đến số tiền gửi bị cộng dồn. Cuối cùng, kẻ tấn công đã hoàn thành việc kiếm lời thông qua hoạt động rút tiền.
Dòng tiền
Nguồn vốn ban đầu của kẻ tấn công đến từ ví nóng của một nền tảng giao dịch lớn. Trong số 1.651 ETH kiếm được, 657,5 ETH vẫn nằm trong địa chỉ ví của kẻ tấn công, phần còn lại đã được chuyển đi thông qua công cụ trộn coin.
Phân tích lỗ hổng
Vấn đề cốt lõi nằm ở hàm doSwapThroughOrionPool của hợp đồng ExchangeWithAtomic. Hàm này cập nhật biến curBalance sau khi thực hiện chuyển token, tạo điều kiện cho cuộc tấn công tái nhập. Kẻ tấn công thông qua việc thêm logic gọi lại vào hàm transfer của Token tùy chỉnh, gọi lại hàm depositAsset nhiều lần, dẫn đến việc curBalance bị cập nhật sai. Cuối cùng, sau khi hoàn trả khoản vay chớp nhoáng, kẻ tấn công đã rút ra số tiền vượt quá thông qua hàm withdraw.
Đề xuất phòng ngừa
Phát triển hợp đồng nên tuân theo mô hình "Kiểm tra - Hiệu lực - Tương tác" (Checks-Effects-Interactions), tránh thực hiện các gọi bên ngoài trước khi cập nhật trạng thái.
Khi thực hiện chức năng trao đổi token, cần xem xét các loại token khác nhau và các con đường trao đổi có thể mang lại rủi ro an ninh.
Thêm cơ chế an toàn như khóa tái nhập để ngăn chặn các cuộc tấn công tái nhập.
Thực hiện kiểm soát truy cập và biện pháp giới hạn cho các thao tác quan trọng.
Thực hiện kiểm toán an ninh toàn diện, đặc biệt chú ý đến các chức năng cốt lõi liên quan đến hoạt động quỹ.
Sự kiện này một lần nữa làm nổi bật tầm quan trọng của an ninh hợp đồng thông minh. Các bên dự án nên liên tục chú ý đến an ninh hợp đồng, định kỳ thực hiện kiểm toán mã và sửa lỗi để đảm bảo an toàn cho tài sản của người dùng. Đồng thời, người dùng cũng nên giữ cảnh giác khi tham gia vào các dự án mới, chú ý đến tình trạng an ninh của dự án và báo cáo kiểm toán.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
13 thích
Phần thưởng
13
6
Chia sẻ
Bình luận
0/400
ShamedApeSeller
· 07-24 12:02
Một cái nữa đã mát lạnh rồi.
Xem bản gốcTrả lời0
CoffeeOnChain
· 07-24 09:46
Hợp đồng kiểm toán đều không làm? Đáng bị vắt kiệt.
Xem bản gốcTrả lời0
FlippedSignal
· 07-23 09:34
Lại bị hack nữa
Xem bản gốcTrả lời0
SchrodingersFOMO
· 07-23 09:26
Còn chưa xong việc giao dịch coin thì coin lại nổ rồi?
Xem bản gốcTrả lời0
ETHReserveBank
· 07-23 09:25
Lại là lớp học trực tuyến của cao thủ 0day
Xem bản gốcTrả lời0
FlatlineTrader
· 07-23 09:15
Còn không biết cách phòng chống tấn công tái nhập? Chết nhục
OrionProtocol bị tấn công tái nhập, thiệt hại 290 triệu đô la mã hóa
Phân tích sự cố tấn công tái nhập của OrionProtocol
Vào chiều ngày 2 tháng 2 năm 2023, dự án OrionProtocol trên Ethereum và Binance Smart Chain đã bị tấn công tái nhập do lỗ hổng hợp đồng, tổng thiệt hại khoảng 2,9 triệu đô la tài sản tiền điện tử, bao gồm 2,844,766 USDT (Ethereum) và 191,606 BUSD (BSC).
Phân tích quá trình tấn công
Kẻ tấn công đầu tiên triển khai một hợp đồng Token tùy chỉnh và thực hiện các thao tác chuyển và ủy quyền tương ứng, chuẩn bị cho cuộc tấn công tiếp theo. Sau đó, kẻ tấn công vay tiền thông qua chức năng swap của một sàn giao dịch phi tập trung và gọi phương thức ExchangeWithAtomic.swapThroughOrionPool của OrionProtocol để thực hiện việc trao đổi token. Đường trao đổi được thiết lập là USDC → Token tùy chỉnh của kẻ tấn công → USDT.
Trong quá trình trao đổi, kẻ tấn công đã lợi dụng hàm gọi lại trong hợp đồng Token tùy chỉnh để gọi lại phương thức ExchangeWithAtomic.depositAsset nhiều lần, dẫn đến số tiền gửi bị cộng dồn. Cuối cùng, kẻ tấn công đã hoàn thành việc kiếm lời thông qua hoạt động rút tiền.
Dòng tiền
Nguồn vốn ban đầu của kẻ tấn công đến từ ví nóng của một nền tảng giao dịch lớn. Trong số 1.651 ETH kiếm được, 657,5 ETH vẫn nằm trong địa chỉ ví của kẻ tấn công, phần còn lại đã được chuyển đi thông qua công cụ trộn coin.
Phân tích lỗ hổng
Vấn đề cốt lõi nằm ở hàm doSwapThroughOrionPool của hợp đồng ExchangeWithAtomic. Hàm này cập nhật biến curBalance sau khi thực hiện chuyển token, tạo điều kiện cho cuộc tấn công tái nhập. Kẻ tấn công thông qua việc thêm logic gọi lại vào hàm transfer của Token tùy chỉnh, gọi lại hàm depositAsset nhiều lần, dẫn đến việc curBalance bị cập nhật sai. Cuối cùng, sau khi hoàn trả khoản vay chớp nhoáng, kẻ tấn công đã rút ra số tiền vượt quá thông qua hàm withdraw.
Đề xuất phòng ngừa
Phát triển hợp đồng nên tuân theo mô hình "Kiểm tra - Hiệu lực - Tương tác" (Checks-Effects-Interactions), tránh thực hiện các gọi bên ngoài trước khi cập nhật trạng thái.
Khi thực hiện chức năng trao đổi token, cần xem xét các loại token khác nhau và các con đường trao đổi có thể mang lại rủi ro an ninh.
Thêm cơ chế an toàn như khóa tái nhập để ngăn chặn các cuộc tấn công tái nhập.
Thực hiện kiểm soát truy cập và biện pháp giới hạn cho các thao tác quan trọng.
Thực hiện kiểm toán an ninh toàn diện, đặc biệt chú ý đến các chức năng cốt lõi liên quan đến hoạt động quỹ.
Sự kiện này một lần nữa làm nổi bật tầm quan trọng của an ninh hợp đồng thông minh. Các bên dự án nên liên tục chú ý đến an ninh hợp đồng, định kỳ thực hiện kiểm toán mã và sửa lỗi để đảm bảo an toàn cho tài sản của người dùng. Đồng thời, người dùng cũng nên giữ cảnh giác khi tham gia vào các dự án mới, chú ý đến tình trạng an ninh của dự án và báo cáo kiểm toán.