OrionProtocol bị tấn công tái nhập, thiệt hại 2,9 triệu USD

robot
Đang tạo bản tóm tắt

OrionProtocol bị tấn công tái nhập dẫn đến thiệt hại 2,9 triệu đô la

Vào ngày 2 tháng 2 năm 2023, OrionProtocol đã bị tấn công tái nhập trên Ethereum và Binance Smart Chain do lỗ hổng hợp đồng, tổng thiệt hại khoảng 2,9 triệu USD. Kẻ tấn công đã lợi dụng hợp đồng Token tự tạo của mình để thực hiện gọi lại, thành công vượt qua cơ chế bảo mật của hợp đồng.

Phân tích 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 một loạt công việc chuẩn bị. Sau đó, kẻ tấn công vay mượn thông qua phương thức swap của một DEX nào đó, và gọi phương thức swapThroughOrionPool của OrionProtocol để thực hiện đổi token. Đường đi của việc đổi chứa địa chỉ hợp đồng Token mà kẻ tấn công đã tạo ra.

Trong quá trình trao đổi, kẻ tấn công đã lợi dụng phương pháp transfer của Token tự tạo để kích hoạt callback, sau đó gọi lại phương pháp depositAsset của OrionProtocol. Điều này dẫn đến số tiền gửi bị tính toán lại, cho phép kẻ tấn công rút ra số tiền vượt quá số tiền thực tế đã gửi.

Phân tích tấn công tái nhập OrionProtocol kèm PoC

Dòng tiề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. Trong số 1651 ETH mà kẻ tấn công đã thu được, 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 tấn công tái nhập OrionProtocol kèm PoC

Phân tích lỗ hổng

Lỗ hổng cốt lõi nằm ở các hàm doSwapThroughOrionPool và _doSwapTokens. Hợp đồng chỉ cập nhật biến curBalance sau khi thực hiện thao tác chuyển tiền, điều này 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ông qua việc thêm logic callback trong 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 đạt được việc rút tiền quá mức.

Phân tích tấn công tái nhập OrionProtocol kèm PoC

Phân tích tấn công tái nhập OrionProtocol kèm PoC

Phân tích tấn công tái nhập OrionProtocol kèm PoC

Phân tích tấn công tái nhập OrionProtocol kèm PoC

Tái hiện tấn công

Các nhà nghiên cứu đã cung cấp một phần mã POC, cho thấy cách khai thác lỗ hổng này để tấn công. Kết quả thử nghiệm nhất quán với ngăn xếp gọi của cuộc tấn công thực tế, xác nhận sự tồn tại và khả năng khai thác của lỗ hổng.

Phân tích tấn công tái nhập OrionProtocol kèm PoC

Phân tích tấn công tái nhập OrionProtocol kèm PoC

Phân tích tấn công tái nhập OrionProtocol kèm PoC

Phân tích tấn công tái nhập OrionProtocol kèm PoC

Phân tích tấn công tái nhập OrionProtocol kèm PoC

Đề xuất an toàn

Đối với các hợp đồng thông minh có chức năng trao đổi token, các nhà phát triển cần xem xét các rủi ro về bảo mật có thể phát sinh từ nhiều loại Token và các đường trao đổi khác nhau. Khuyên nên tuân theo quy tắc lập trình "đầu tiên là kiểm tra, sau đó ghi vào biến, rồi gọi bên ngoài" (mô hình Checks-Effects-Interactions) để nâng cao tính bảo mật và ổn định của hợp đồng.

Sự kiện này một lần nữa nhấn mạnh tầm quan trọng của việc chú trọng đến an ninh trong phát triển hợp đồng thông minh, đặc biệt là khi xử lý dòng tiền. Các nhà phát triển dự án nên tăng cường kiểm tra mã nguồn và xem xét việc mời các đội ngũ an ninh blockchain chuyên nghiệp để thực hiện đánh giá toàn diện, nhằm giảm thiểu tối đa rủi ro tiềm ẩn.

TOKEN3.57%
Xem bản gốc
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.
  • Phần thưởng
  • 3
  • Đăng lại
  • Chia sẻ
Bình luận
0/400
ZeroRushCaptainvip
· 10giờ trước
Một thẻ rút tiền khác đã dạy tôi cách rút lui trên chiến trường
Xem bản gốcTrả lời0
AirdropChaservip
· 10giờ trước
Lại có một cái nữa?
Xem bản gốcTrả lời0
ForkLibertarianvip
· 10giờ trước
Bị lừa thì phải, ai bảo ra ngoài lại kiêu ngạo như vậy.
Xem bản gốcTrả lời0
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)