OrionProtocol bị tấn công tái nhập, thiệt hại 2,9 triệu USD. Phân tích lỗ hổng bảo mật và đề xuất biện pháp phòng ngừa.

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

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, Orion Protocol trên chuỗi Ethereum và Binance đã bị tấn công tái nhập do lỗ hổng hợp đồng, gây thiệt hại khoảng 2,9 triệu đô la, trong đó bao gồm 2.844.766 USDT trên Ethereum và 191.606 BUSD trên BSC.

Phân tích quá trình tấn công

Kẻ tấn công trước tiên tạo ra một hợp đồng Token, và thực hiện các thao tác chuyển nhượng và ủy quyền, chuẩn bị cho cuộc tấn công tiếp theo. Sau đó, kẻ tấn công vay mượn thông qua phương thức swap của UNI-V2, và gọi phương thức swapThroughOrionPool của hợp đồng ExchangeWithAtomic để thực hiện việc đổi token. Đường đổi được thiết lập là [USDC, Token do kẻ tấn công tạo ra, USDT].

Trong quá trình trao đổi, do hợp đồng Token được tạo ra bởi kẻ tấn công có chức năng gọi lại, kẻ tấn công đã tiếp tục gọi lại phương thức ExchangeWithAtomic.depositAsset thông qua Token.Transfer, thực hiện cuộc tấn công tái nhập. Điều này 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 hoạt động rút tiền.

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ừ tài khoản ví nóng của một nền tảng giao dịch nào đó. Trong số 1651 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 đi thông 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

Vấn đề cốt lõi của lỗ hổng xuất hiện trong hàm doSwapThroughOrionPool. Hàm này cập nhật biến curBalance sau khi thực hiện chuyển token, điều này tạo cơ hội cho kẻ tấn công. Kẻ tấn công đã thêm chức năng callback vào hàm transfer của token giả, gọi hàm depositAsset, dẫn đến việc cập nhật curBalance sai. Cuối cùng, kẻ tấn công đã rút tiền thừa thông qua hàm withdraw sau khi hoàn trả khoản vay chớp nhoá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

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 hợp đồng để lấy thêm USDT.

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 dự án có chức năng trao đổi token, cần xem xét các rủi ro bảo mật có thể phát sinh từ nhiều loại Token và các đường trao đổi khác nhau. Đề xuất tuân thủ quy tắc lập trình "kiểm tra trước, ghi vào biến sau, sau đó thực hiện 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. Ngoài ra, phía dự án nên cố gắng loại bỏ rủi ro hợp đồng ngoài chuỗi, đảm bảo việc vận hành an toàn của hệ sinh thái Web3.

TOKEN-13.98%
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
  • Chia sẻ
Bình luận
0/400
VirtualRichDreamvip
· 07-15 08:57
Hả? Ai đi kiểm tra xem là có nội gián làm không?
Xem bản gốcTrả lời0
HallucinationGrowervip
· 07-12 12:30
Không có công việc kiểm tra an ninh thì đã làm gì?
Xem bản gốcTrả lời0
degenonymousvip
· 07-12 12:23
Hợp đồng cơ bản đều có nhiều lỗ hổng
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)