OrionProtocol bị tấn công tái nhập, gần 3 triệu đô la tài sản bị đánh cắp.

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 gần 3 triệu USD

Vào ngày 2 tháng 2 năm 2023, hợp đồng OrionProtocol trên Ethereum và chuỗi Binance đã bị tấn công lại do tồn tại lỗ hổng bảo mật. Kẻ tấn công đã thành công trong việc đánh cắp khoảng 2,9 triệu đô la tài sản tiền điện tử, 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 triển khai một hợp đồng Token tùy chỉnh và thực hiện các công việc chuẩn bị cần thiết. Sau đó, kẻ tấn công đã vay vố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 trao đổi token. Đường đi của việc trao đổi bao gồm địa chỉ hợp đồng Token mà kẻ tấn công đã tạo ra, điều này đã mở đường cho cuộc tấn công callback tiếp theo.

Trong quá trình trao đổi, do hợp đồng Token của kẻ tấn công chứa logic callback, mỗi lần thực hiện chuyển khoản sẽ kích hoạt gọi lại phương thức depositAsset của hợp đồng ExchangeWithAtomic. Điều này dẫn đến số tiền gửi bị cộng dồn sai, cuối cùng cho phép kẻ tấn công rút ra số tiền vượt quá số tiền thực tế mà họ đã gửi.

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

Nguồn gốc lỗ hổng

Vấn đề cốt lõi nằm ở trong các hàm doSwapThroughOrionPool và _doSwapTokens của hợp đồng ExchangeWithAtomic. Những hàm này cập nhật biến curBalance sau khi thực hiện chuyển nhượng token, nhưng không có biện pháp ngăn chặn tấn công tái nhập. Kẻ tấn công lợi dụng hàm chuyển token tùy chỉnh để gọi lại phương thức depositAsset, dẫn đến việc curBalance bị cập nhật sai, từ đó rút ra số tiền vượt quá 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

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 nào đó. Trong số 1,651 ETH mà kẻ tấn công thu lợi, 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 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

Để ngăn chặn các cuộc tấn công tương tự, nhóm dự án nên chú ý đến những điểm sau:

  1. Khi thực hiện chức năng đổi tiền tệ thực, cần xem xét các loại Token khác nhau và các rủi ro an ninh có thể phát sinh từ các con đường đổi.

  2. Tuân theo mô hình "Kiểm tra - Hiệu lực - Tương tác" (Checks-Effects-Interactions) khi viết mã hợp đồng, 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 mới tương tác với hợp đồng bên ngoài.

  3. Sử dụng khóa tái nhập hoặc cơ chế tương tự trong các hàm quan trọng để ngăn chặn tấn công tái nhập.

  4. Đối với các cuộc gọi từ bên ngoài, đặc biệt là những thao tác liên quan đến việc chuyển tiền, cần phải hết sức thận trọng và xem xét việc sử dụng chế độ thanh toán kéo thay vì thanh toán đẩy.

  5. Thực hiện kiểm toán an ninh định kỳ, kịp thời phát hiện và khắc phục các lỗ hổng tiềm ẩn.

Bằng cách thực hiện những biện pháp này, có thể nâng cao đáng kể tính an toàn của hợp đồng thông minh, giảm thiểu rủi ro bị tấn công. Trong hệ sinh thái Web3, an toàn luôn nên là yếu tố được ưu tiên hàng đầu.

TOKEN9.42%
ETH2.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
  • 4
  • Chia sẻ
Bình luận
0/400
TokenTherapistvip
· 21giờ trước
Có người lại không chịu nổi nữa sao?
Xem bản gốcTrả lời0
LiquidatorFlashvip
· 21giờ trước
Lỗ hổng tái nhập thật sự là kẻ giết người số một gây thua lỗ trong Defi...
Xem bản gốcTrả lời0
0xLuckboxvip
· 21giờ trước
Năm nay sao lại bị trộm nữa vậy?
Xem bản gốcTrả lời0
TokenSherpavip
· 21giờ trước
*thở dài* lại một giao thức khác thất bại trong việc kiểm tra khả năng tái nhập cơ bản... nói theo lịch sử, điều này đã có thể được ngăn chặn
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)