Phân tích sự kiện tấn công tái nhập của OrionProtocol
Vào lúc 15:40:20 UTC ngày 2 tháng 2 năm 2023, OrionProtocol trên Ethereum và Binance Smart Chain đã bị tấn công tái nhập do lỗ hổng hợp đồng. Kẻ tấn công đã thu lợi 2,844,766 USDT từ mạng Ethereum và 191,606 BUSD từ Binance Smart Chain, tổng thiệt hại khoảng 2.9 triệu USD.
Phân tích quá trình tấn công
Kẻ tấn công trước tiên đã triển khai một hợp đồng Token tùy chỉnh và thực hiện một loạt công việc chuẩn bị. Sau đó, kẻ tấn công đã vay vốn thông qua hàm swap của một DEX và gọi phương thức ExchangeWithAtomic.swapThroughOrionPool của OrionProtocol để thực hiện việc đổi token. Đường đổi bao gồm địa chỉ hợp đồng Token mà kẻ tấn công tạo ra, điều này đã đặt nền móng cho cuộc tấn công callback tiếp theo.
Trong quá trình đổi, do hợp đồng Token của kẻ tấn công chứa logic gọi lại, mỗi lần chuyển tiền sẽ kích hoạt cuộc gọi lại vào phương thức ExchangeWithAtomic.depositAsset. Điều này dẫn đến số tiền gửi bị cộng dồn nhiều lần, cuối cùng kẻ tấn công thu được lợi nhuận vượt mức thông qua hoạt động rút tiền.
Dòng tiền
Vốn ban đầu của kẻ tấn công đến từ ví nóng của một sàn giao dịch. Sau khi cuộc tấn công thành công, trong số 1.651 ETH kiếm được, 657,5 ETH vẫn ở lại địa chỉ ví của kẻ tấn công, phần còn lại đã được chuyển qua dịch vụ trộn coin.
Phân tích lỗ hổng
Lỗ hổng cốt lõi nằm ở hợp đồng ExchangeWithAtomic với các hàm doSwapThroughOrionPool và _doSwapTokens. Những hàm này chỉ cập nhật biến curBalance sau khi thực hiện chuyển tiền token, tạo cơ hội cho kẻ tấn công lợi dụng tấn công tái nhập. Kẻ tấn công đã thêm logic callback vào hàm transfer của Token tùy chỉnh, dẫn đến việc curBalance bị cập nhật sai, từ đó vẫn có thể rút thêm tiền sau khi hoàn trả khoản vay chớp nhoáng.
Tái hiện cuộc tấn công
Các nhà nghiên cứu đã cung cấp một phần mã POC, mô phỏng quá trình tấn công. Kết quả thử nghiệm cho thấy, kẻ tấn công đã thành công trong việc khai thác lỗ hổng hợp đồng để lấy thêm USDT.
Đề xuất an toàn
Đối với các cuộc tấn công như vậy, khuyến nghị cho các bên dự án:
Khi triển khai chức năng trao đổi token trong hợp đồng, cần xem xét các loại token khác nhau và các lộ trình trao đổi có thể mang lại rủi ro an ninh.
Tuân thủ nghiêm ngặt mô hình mã hóa "Kiểm tra - Hiệu lực - Tương tác" (Checks-Effects-Interactions), tức là trước tiên thực hiện kiểm tra điều kiện, sau đó cập nhật biến trạng thái, cuối cùng thực hiện gọi bên ngoài.
Sử dụng khóa tái nhập hoặc cơ chế tương tự để ngăn chặn các cuộc tấn công tái nhập trước khi cập nhật các biến trạng thái quan trọng.
Thực hiện kiểm tra mã định kỳ và kiểm tra an ninh, phát hiện và khắc phục kịp thời các lỗ hổng tiềm ẩn.
Sự kiện này một lần nữa làm nổi bật tầm quan trọng của việc bảo mật hợp đồng thông minh. Các bên dự án nên liên tục chú ý đến các vấn đề an ninh, thực hiện các biện pháp bảo vệ toàn diện để đảm bảo an toàn cho tài sản của người dùng và sự phát triển ổn định lâu dài của dự á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
7
Đăng lại
Chia sẻ
Bình luận
0/400
rug_connoisseur
· 19giờ trước
又 một hợp đồng thông minh翻车了
Xem bản gốcTrả lời0
SchroedingerGas
· 08-11 18:57
Lại bị cắt lông rồi ai
Xem bản gốcTrả lời0
DAOTruant
· 08-11 18:57
Một hợp đồng nữa đã bị lấy đi.
Xem bản gốcTrả lời0
MainnetDelayedAgain
· 08-11 18:56
Một trường hợp khác đã được đưa vào cơ sở dữ liệu thống kê, thật sự không nên.
Xem bản gốcTrả lời0
GateUser-5854de8b
· 08-11 18:51
Một lần nữa hợp đồng bị đánh cắp...
Xem bản gốcTrả lời0
MEV_Whisperer
· 08-11 18:51
Lại là tái nhập rồi, đi đây đi đó.
Xem bản gốcTrả lời0
SignatureVerifier
· 08-11 18:37
*thở dài* lại một thất bại reentrancy trong sách giáo khoa. về mặt thống kê thì không thể tránh khỏi với việc kiểm tra xác thực không đủ. thật lòng mà nói, tôi đã thấy điều này xảy ra.
OrionProtocol bị tấn công tái nhập, thiệt hại khoảng 2,9 triệu USD
Phân tích sự kiện tấn công tái nhập của OrionProtocol
Vào lúc 15:40:20 UTC ngày 2 tháng 2 năm 2023, OrionProtocol trên Ethereum và Binance Smart Chain đã bị tấn công tái nhập do lỗ hổng hợp đồng. Kẻ tấn công đã thu lợi 2,844,766 USDT từ mạng Ethereum và 191,606 BUSD từ Binance Smart Chain, tổng thiệt hại khoảng 2.9 triệu USD.
Phân tích quá trình tấn công
Kẻ tấn công trước tiên đã triển khai một hợp đồng Token tùy chỉnh và thực hiện một loạt công việc chuẩn bị. Sau đó, kẻ tấn công đã vay vốn thông qua hàm swap của một DEX và gọi phương thức ExchangeWithAtomic.swapThroughOrionPool của OrionProtocol để thực hiện việc đổi token. Đường đổi bao gồm địa chỉ hợp đồng Token mà kẻ tấn công tạo ra, điều này đã đặt nền móng cho cuộc tấn công callback tiếp theo.
Trong quá trình đổi, do hợp đồng Token của kẻ tấn công chứa logic gọi lại, mỗi lần chuyển tiền sẽ kích hoạt cuộc gọi lại vào phương thức ExchangeWithAtomic.depositAsset. Điều này dẫn đến số tiền gửi bị cộng dồn nhiều lần, cuối cùng kẻ tấn công thu được lợi nhuận vượt mức thông qua hoạt động rút tiền.
Dòng tiền
Vốn ban đầu của kẻ tấn công đến từ ví nóng của một sàn giao dịch. Sau khi cuộc tấn công thành công, trong số 1.651 ETH kiếm được, 657,5 ETH vẫn ở lại địa chỉ ví của kẻ tấn công, phần còn lại đã được chuyển qua dịch vụ trộn coin.
Phân tích lỗ hổng
Lỗ hổng cốt lõi nằm ở hợp đồng ExchangeWithAtomic với các hàm doSwapThroughOrionPool và _doSwapTokens. Những hàm này chỉ cập nhật biến curBalance sau khi thực hiện chuyển tiền token, tạo cơ hội cho kẻ tấn công lợi dụng tấn công tái nhập. Kẻ tấn công đã thêm logic callback vào hàm transfer của Token tùy chỉnh, dẫn đến việc curBalance bị cập nhật sai, từ đó vẫn có thể rút thêm tiền sau khi hoàn trả khoản vay chớp nhoáng.
Tái hiện cuộc tấn công
Các nhà nghiên cứu đã cung cấp một phần mã POC, mô phỏng quá trình tấn công. Kết quả thử nghiệm cho thấy, kẻ tấn công đã thành công trong việc khai thác lỗ hổng hợp đồng để lấy thêm USDT.
Đề xuất an toàn
Đối với các cuộc tấn công như vậy, khuyến nghị cho các bên dự án:
Sự kiện này một lần nữa làm nổi bật tầm quan trọng của việc bảo mật hợp đồng thông minh. Các bên dự án nên liên tục chú ý đến các vấn đề an ninh, thực hiện các biện pháp bảo vệ toàn diện để đảm bảo an toàn cho tài sản của người dùng và sự phát triển ổn định lâu dài của dự án.