OrionProtocol bị tấn công tái nhập, 2,9 triệu đô la bị đánh cắp.

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

Phân tích cuộc tấn công tràn vào 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 có lỗ hổng. Kẻ tấn công đã thu lợi 2,844,766 USDT trên chuỗi Ethereum và 191,606 BUSD trên chuỗi Binance Smart Chain, tổng cộng khoảng 2,9 triệu USD.

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

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

Kẻ tấn công đầu 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ị liên quan. Sau đó, kẻ tấn công thực hiện vay mượn thông qua chức năng swap của một DEX, và gọi phương thức swapThroughOrionPool của OrionProtocol để thực hiện đổi token. Đường đổi token bao gồm địa chỉ hợp đồng Token do kẻ tấn công tạo ra, điều này tạo điều kiện cho cuộc tấn công callback tiếp theo.

Trong quá trình thực hiện phương thức swapThroughOrionPool, do hợp đồng Token của kẻ tấn công chứa logic gọi lại, dẫn đến việc kích hoạt cuộc tấn công tái nhập trong quá trình chuyển tiền. Kẻ tấn công đã lợi dụng phương thức Token.Transfer để gọi nhiều lần hàm ExchangeWithAtomic.depositAsset, khiến số tiền gửi liên tục gia tăng. Cuối cùng, kẻ tấn công đã hoàn tất việc rút tiền để thu lợi nhuận.

Phân tích tấn công Reentrancy của 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 lấy đượ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 nằm ở hàm doSwapThroughOrionPool. Hàm này có một lỗi logic khi thực hiện thao tác _doSwapTokens. Cụ thể, hợp đồng chỉ cập nhật biến curBalance sau khi chuyển tiền hoàn tất, điều này đã tạo ra cơ hội cho kẻ tấn công. Kẻ tấn công đã thêm logic callback vào hàm transfer của Token tùy chỉnh, gọi lại hàm depositAsset nhiều lần, dẫn đến việc cập nhật curBalance sai. Cuối cùng, sau khi hoàn trả khoản vay chớp nhoáng, kẻ tấn công đã thành công trong việc rút ra số tiền vượt quá.

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 của 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

Phân tích tấn công Reentrancy của OrionProtocol kèm PoC

Đề xuất phòng ngừa

Để tránh các cuộc tấn công tương tự, nhóm dự án nên lưu ý các điểm sau khi thiết kế hợp đồng:

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

  2. Tuân thủ nghiêm ngặt quy tắc lập trình "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 trạng thái, sau đó cập nhật trạng thái hợp đồng, cuối cùng mới thực hiện gọi ngoài.

  3. Thực hiện khóa tái nhập trong các thao tác quan trọng để ngăn chặn sự xảy ra của các cuộc tấn công tái nhập.

  4. Thực hiện kiểm toán mã định kỳ, kịp thời phát hiện và sửa chữa các lỗ hổng bảo mật tiềm ẩn.

  5. Cân nhắc việc giới thiệu cơ chế rút tiền chậm, nhằm cung cấp cơ hội can thiệp thủ công cho các giao dịch bất thường.

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 là yếu tố được ưu tiên hàng đầu.

TOKEN-8.16%
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
  • 8
  • Chia sẻ
Bình luận
0/400
LidoStakeAddictvip
· 07-17 03:22
Lại một con heo nữa.
Xem bản gốcTrả lời0
NervousFingersvip
· 07-14 05:42
又一项目被Phiếu giảm giá啊...
Xem bản gốcTrả lời0
TokenUnlockervip
· 07-14 04:00
Một lỗ hổng tái nhập chưa bị khóa khác?
Xem bản gốcTrả lời0
GasSavingMastervip
· 07-14 03:59
Công nghệ hiện tại cũng không xuất sắc lắm.
Xem bản gốcTrả lời0
PanicSeller69vip
· 07-14 03:58
Lại nổ rồi, thật tuyệt!
Xem bản gốcTrả lời0
PortfolioAlertvip
· 07-14 03:37
Nạn nhân thứ hai của lỗ hổng hợp đồng...
Xem bản gốcTrả lời0
SerumSqueezervip
· 07-14 03:36
Lần này là lần thứ mấy rồi, lại rò rỉ và thủng?
Xem bản gốcTrả lời0
ForkTonguevip
· 07-14 03:33
Lại là cuộc tấn công tái nhập, những dự án này vẫn chưa rút ra bài học?
Xem bản gốcTrả lời0
  • Ghim
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)