OrionProtocol đã chịu một cuộc tấn công tái nhập trị giá 2,9 triệu đô la Mỹ, phân tích quy trình tấn công và các đề xuất 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 ngày 2 tháng 2 năm 2023, OrionProtocol đã gặp phải một cuộc tấn công tái nhập trên Ethereum và Binance Smart Chain, dẫn đến thiệt hại khoảng 2,9 triệu đô la Mỹ. Kẻ tấn công đã lợi dụng lỗ hổng hợp đồng, đánh cắp 2.844.766 USDT trên chuỗi Ethereum và 191.606 BUSD trên chuỗi Binance Smart.

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 tùy chỉnh và thực hiện các thao tác chuyển nhượng và ủy quyền liên quan. Sau đó, kẻ tấn công đã vay mượn thông qua phương thức swap của một DEX và gọi phương thức ExchangeWithAtomic.swapThroughOrionPool để thực hiện việc đổi token. Đường đổi bao gồm địa chỉ hợp đồng Token mà kẻ tấn công đã tạo ra.

Trong quá trình trao đổi, do việc hợp đồng Token của kẻ tấn công có cơ chế gọi lại, kẻ tấn công có thể tiếp tục gọi lại phương thức ExchangeWithAtomic.depositAsset thông qua Token.Transfer, từ đó 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 lặp lại, cuối cùng kẻ tấn công đã hoàn thành việc thu lợi bằng cách thực hiện thao tác 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ố 1,651 ETH thu đượ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 gọi hàm _doSwapTokens, mà hàm này cập nhật biến curBalance sau khi thực hiện thao tác chuyển tiền. Kẻ tấn công đã lợi dụng chức năng callback được thêm vào hàm transfer của Token tùy chỉnh, gọi lại hàm depositAsset trước khi curBalance được cập nhật, dẫn đến việc curBalance bị cập nhật sai. Cuối cùng, kẻ tấn công đã rút thêm tiền 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 theo PoC

Phân tích tấn công Reentrancy 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 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 phòng ngừa

Để ngăn chặn các cuộc tấn công tương tự, chúng tôi khuyên các dự án nên chú ý đến các điểm sau khi thiết kế hợp đồng:

  1. Xem xét các tình huống bất ngờ có thể xảy ra do nhiều Token và nhiều đường trao đổi.
  2. Tuân theo mô hình mã hóa "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 điều kiện, sau đó cập nhật biến trạng thái, cuối cùng mới thực hiện gọi bên ngoài.
  3. Sử dụng khóa tái nhập trước và sau các thao tác quan trọng, ngăn chặn các cuộc tấn công tái nhập.
  4. Thực hiện kiểm tra an toàn cho hợp đồng Token gọi từ bên ngoài.
  5. Thực hiện kiểm tra mã định kỳ và kiểm tra an ninh, phát hiện và sửa chữa kịp thời các lỗ hổng tiềm ẩn.

Bằng cách thực hiện các biện pháp này, dự án có thể cải thiện đáng kể tính an toàn và ổn định của hợp đồng, giảm thiểu tối đa rủi ro bị tấn công.

Xem bản gốc
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Phần thưởng
  • 7
  • Chia sẻ
Bình luận
0/400
AirdropHunterXiaovip
· 9giờ trước
Dự án Blockchain lại bị kéo một đợt
Xem bản gốcTrả lời0
MemecoinResearchervip
· 9giờ trước
ngmi... có vẻ như lời nguyền reentrancy lại xuất hiện một lần nữa fr fr
Xem bản gốcTrả lời0
NightAirdroppervip
· 9giờ trước
Hàng ngày bị đen tối thật khổ sở
Xem bản gốcTrả lời0
rugpull_survivorvip
· 10giờ trước
chơi đùa với mọi người một nhát còn một nhát tiếp theo
Xem bản gốcTrả lời0
LightningLadyvip
· 10giờ trước
Kỹ năng viết mã của bạn rất tốt.
Xem bản gốcTrả lời0
PrivacyMaximalistvip
· 10giờ trước
又一个砸锅Rug Pull的项目
Xem bản gốcTrả lời0
NotFinancialAdviservip
· 10giờ trước
Lại có dự án bị lừa
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)