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, hợp đồng OrionProtocol trên Ethereum và Binance Smart Chain đã bị tấn công tái nhập do tồn tại lỗ hổng, gây thiệt hại khoảng 2,9 triệu đô la, trong đó bao gồm 2.844.766 USDT trên chuỗi Ethereum và 191.606 BUSD trên chuỗi BSC.
Phân tích quy trình tấn công
Kẻ tấn công trước tiên tạo ra một hợp đồng Token đặc biệt và thực hiện một loạt các công việc chuẩn bị. Sau đó, kẻ tấn công sử dụng chức năng swap của một DEX để vay mượn, và gọi phương thức swapThroughOrionPool của OrionProtocol để thực hiện việc trao đổi token. Đường trao đổ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 tảng cho cuộc tấn công callback tiếp theo.
Trong quá trình đổi, hợp đồng Token của kẻ tấn công kích hoạt callback thông qua hàm Transfer, lặp lại việc gọi hàm depositAsset của OrionProtocol, dẫn đến số tiền gửi bị cộng dồn liên tục. Cuối cùng, kẻ tấn công đã hoàn thành việc kiếm lợi nhuận thông qua thao tác rút tiền.
Dòng tiền
Vốn ban đầu của kẻ tấn công đến từ tài khoản ví nóng của một nền tảng giao dịch. Trong số 1,651 ETH đã kiếm được, 657.5 ETH vẫn còn trong đị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 chính nằm ở việc triển khai các hàm doSwapThroughOrionPool và _doSwapTokens. Hợp đồng cập nhật biến curBalance sau khi thực hiện chuyển nhượng, điều này tạo điều kiện cho các cuộc tấn công kiểu 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, dẫn đến việc curBalance bị cập nhật sai, cuối cùng cho phép kẻ tấn công rút thêm tiền sau khi hoàn trả khoản vay chớp nhoáng.
Tái hiện 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 để thu được thêm USDT.
Đề xuất an toàn
Khi thiết kế hợp đồng, cần xem xét các tình huống bất ngờ có thể xảy ra do nhiều loại Token và các đường trao đổi.
Tuân theo quy tắc mã hóa "đánh giá trước, sau đó ghi vào biến, rồi thực hiện gọi bên ngoài" (mô hình Checks-Effects-Interactions).
Tăng cường hạn chế và kiểm tra đối với các cuộc gọi bên ngoài, đặc biệt là các thao tác liên quan đến chuyển tiền.
Thường xuyên thực hiện kiểm toán an ninh, kịp thời phát hiện và sửa chữa các lỗ hổng tiềm ẩn.
Triển khai các biện pháp bảo mật bổ sung như chữ ký đa chữ ký để phòng ngừa sự cố điểm đơn.
Sự kiện này một lần nữa làm nổi bật những thách thức về an ninh mà các dự án DeFi phải đối mặt. Các nhà phát triển nên luôn giữ cảnh giác, liên tục cải thiện tính an toàn của hợp đồng để bảo vệ tài sản của người dùng và uy tín 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.
16 thích
Phần thưởng
16
5
Chia sẻ
Bình luận
0/400
WalletWhisperer
· 14giờ trước
Một dự án khác bị cuốn vào.
Xem bản gốcTrả lời0
SatoshiHeir
· 07-30 13:22
Cần lưu ý rằng rủi ro reentrancy của hợp đồng thông minh đã được ghi rõ ở trang đầu tiên của sách giáo khoa Solidity, có vẻ như một nhóm dự án nữa không làm bài tập về nhà...
Xem bản gốcTrả lời0
SnapshotDayLaborer
· 07-30 13:22
chơi đùa với mọi người吧chơi đùa với mọi người~
Xem bản gốcTrả lời0
ChainComedian
· 07-30 12:59
Lại là 290w, Được chơi cho Suckers, nhanh chóng chạy đi
OrionProtocol bị tấn công tái nhập, thiệt hại 2,9 triệu đô la.
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, hợp đồng OrionProtocol trên Ethereum và Binance Smart Chain đã bị tấn công tái nhập do tồn tại lỗ hổng, gây thiệt hại khoảng 2,9 triệu đô la, trong đó bao gồm 2.844.766 USDT trên chuỗi Ethereum và 191.606 BUSD trên chuỗi BSC.
Phân tích quy trình tấn công
Kẻ tấn công trước tiên tạo ra một hợp đồng Token đặc biệt và thực hiện một loạt các công việc chuẩn bị. Sau đó, kẻ tấn công sử dụng chức năng swap của một DEX để vay mượn, và gọi phương thức swapThroughOrionPool của OrionProtocol để thực hiện việc trao đổi token. Đường trao đổ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 tảng cho cuộc tấn công callback tiếp theo.
Trong quá trình đổi, hợp đồng Token của kẻ tấn công kích hoạt callback thông qua hàm Transfer, lặp lại việc gọi hàm depositAsset của OrionProtocol, dẫn đến số tiền gửi bị cộng dồn liên tục. Cuối cùng, kẻ tấn công đã hoàn thành việc kiếm lợi nhuận thông qua thao tác rút tiền.
Dòng tiền
Vốn ban đầu của kẻ tấn công đến từ tài khoản ví nóng của một nền tảng giao dịch. Trong số 1,651 ETH đã kiếm được, 657.5 ETH vẫn còn trong đị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 chính nằm ở việc triển khai các hàm doSwapThroughOrionPool và _doSwapTokens. Hợp đồng cập nhật biến curBalance sau khi thực hiện chuyển nhượng, điều này tạo điều kiện cho các cuộc tấn công kiểu 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, dẫn đến việc curBalance bị cập nhật sai, cuối cùng cho phép kẻ tấn công rút thêm tiền sau khi hoàn trả khoản vay chớp nhoáng.
Tái hiện 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 để thu được thêm USDT.
Đề xuất an toàn
Sự kiện này một lần nữa làm nổi bật những thách thức về an ninh mà các dự án DeFi phải đối mặt. Các nhà phát triển nên luôn giữ cảnh giác, liên tục cải thiện tính an toàn của hợp đồng để bảo vệ tài sản của người dùng và uy tín của dự án.