Phân tích sự kiện tấn công tái nhập của OrionProtocol
Vào chiều ngày 2 tháng 2 năm 2023, OrionProtocol trên Ethereum và Binance Smart Chain đã bị tấn công lại do lỗ hổng hợp đồng, gây ra thiệt hại khoảng 2,9 triệu đô la. Kẻ tấn công đã lợi dụng chức năng gọi lại của hợp đồng mã thông báo tự tạo, gọi lại hàm gửi tiền nhiều lần trong quá trình giao dịch, dẫn đến việc tiền bị rút ra sau khi bị cộng dồn sai.
Quá trình tấn công
Kẻ tấn công đầu tiên tạo ra một hợp đồng Token tùy chỉnh và thực hiện các thao tác chuyển nhượng và ủy quyền cần thiết.
Token do kẻ tấn công tạo ra
Trong quá trình đổi, hợp đồng Token của kẻ tấn công sử dụng hàm transfer để kích hoạt callback, gọi lại hàm ExchangeWithAtomic.depositAsset nhiều lần, dẫn đến số tiền gửi bị cộng dồn sai.
Cuối cùng, kẻ tấn công rút tiền thừa qua hàm withdraw, hoàn thành cuộc tấn công.
Phân tích lỗ hổng
Lỗ hổng chủ yếu tồn tại trong các hàm doSwapThroughOrionPool và _doSwapTokens của hợp đồng ExchangeWithAtomic. Vấn đề chính là:
Hợp đồng chỉ cập nhật biến curBalance sau khi thực hiện chuyển khoản.
Không thể ngăn chặn hiệu quả các cuộc tấn công tái nhập, cho phép thực hiện hàm callback trong quá trình chuyển tiền.
Điều này dẫn đến việc kẻ tấn công có thể gọi lại hàm depositAsset trước khi curBalance được cập nhật, gây ra lỗi tính toán tài chính.
Tác động của cuộc tấn công
Mất 2,844,766 USDT trên chuỗi Ethereum
Mất 191.606 BUSD trên chuỗi thông minh Binance
Tổng cộng khoảng 2,9 triệu đô la Mỹ
Dòng tiền
Trong số 1,651 ETH mà kẻ tấn công thu lợi, 657.5 ETH vẫn còn ở địa chỉ ví, phần còn lại đã được chuyển qua một dịch vụ trộn coin nào đó. Nguồn vốn ban đầu xuất phát từ tài khoản ví nóng của một sàn giao dịch.
Đề xuất an toàn
Tuân theo nghiêm ngặt mô hình "Kiểm tra - Hiệu lực - Tương tác" (Checks-Effects-Interactions) khi viết hợp đồng thông minh.
Triển khai khóa tái nhập, ngăn chặn hàm bị gọi lại trong quá trình thực thi.
Khi thực hiện trao đổi token, hãy xem xét các loại token và đường trao đổi khác nhau, đồng thời chuẩn bị sẵn sàng cho các tình huống bất thường.
Thực hiện kiểm tra an ninh hợp đồng thông minh định kỳ, kịp thời phát hiện và sửa chữa các lỗ hổng tiềm ẩn.
Sự kiện lần này một lần nữa nhắc nhở các dự án rằng, khi phát triển các hợp đồng thông minh liên quan đến giao dịch tài chính, phải hết sức chú trọng đến an toàn, áp dụng các biện pháp bảo vệ toàn diện để giảm thiểu rủi ro của hợp đồng ở mức tối đa.
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.
20 thích
Phần thưởng
20
8
Chia sẻ
Bình luận
0/400
AirdropHustler
· 07-18 17:53
啧 这 hợp đồng thông minh脆的像纸一样
Xem bản gốcTrả lời0
MerkleDreamer
· 07-18 06:45
Lại bị đánh cắp à? Không còn lạ nữa.
Xem bản gốcTrả lời0
rekt_but_resilient
· 07-16 11:57
Lại lại lại bị lấy 290w
Xem bản gốcTrả lời0
LiquidationWatcher
· 07-15 21:48
Lại là một cuộc tấn công tái nhập, không học hỏi gì cả.
Xem bản gốcTrả lời0
ForkTongue
· 07-15 21:48
Các dự án đáng tin cậy đều đã sụp đổ, không biết khi nào mới kết thúc.
OrionProtocol bị tấn công tái nhập, thiệt hại 2,9 triệu đô la, cả ETH và BSC đều bị ảnh hưởng.
Phân tích sự kiện tấn công tái nhập của OrionProtocol
Vào chiều ngày 2 tháng 2 năm 2023, OrionProtocol trên Ethereum và Binance Smart Chain đã bị tấn công lại do lỗ hổng hợp đồng, gây ra thiệt hại khoảng 2,9 triệu đô la. Kẻ tấn công đã lợi dụng chức năng gọi lại của hợp đồng mã thông báo tự tạo, gọi lại hàm gửi tiền nhiều lần trong quá trình giao dịch, dẫn đến việc tiền bị rút ra sau khi bị cộng dồn sai.
Quá trình tấn công
Token do kẻ tấn công tạo ra
Trong quá trình đổi, hợp đồng Token của kẻ tấn công sử dụng hàm transfer để kích hoạt callback, gọi lại hàm ExchangeWithAtomic.depositAsset nhiều lần, dẫn đến số tiền gửi bị cộng dồn sai.
Cuối cùng, kẻ tấn công rút tiền thừa qua hàm withdraw, hoàn thành cuộc tấn công.
Phân tích lỗ hổng
Lỗ hổng chủ yếu tồn tại trong các hàm doSwapThroughOrionPool và _doSwapTokens của hợp đồng ExchangeWithAtomic. Vấn đề chính là:
Điều này dẫn đến việc kẻ tấn công có thể gọi lại hàm depositAsset trước khi curBalance được cập nhật, gây ra lỗi tính toán tài chính.
Tác động của cuộc tấn công
Dòng tiền
Trong số 1,651 ETH mà kẻ tấn công thu lợi, 657.5 ETH vẫn còn ở địa chỉ ví, phần còn lại đã được chuyển qua một dịch vụ trộn coin nào đó. Nguồn vốn ban đầu xuất phát từ tài khoản ví nóng của một sàn giao dịch.
Đề xuất an toàn
Sự kiện lần này một lần nữa nhắc nhở các dự án rằng, khi phát triển các hợp đồng thông minh liên quan đến giao dịch tài chính, phải hết sức chú trọng đến an toàn, áp dụng các biện pháp bảo vệ toàn diện để giảm thiểu rủi ro của hợp đồng ở mức tối đa.