Jarvis Network遭Khoản vay nhanh重入攻击 损失66.3万MATIC

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

Phân tích cuộc tấn công tái nhập khoản vay nhanh của dự án Jarvis Network

Vào ngày 15 tháng 1 năm 2023, dự án Jarvis_Network đã bị tấn công trên mạng Polygon, gây ra thiệt hại khoảng 66.3 triệu MATIC. Phân tích cho thấy, kẻ tấn công đã lợi dụng Khoản vay nhanh và lỗ hổng tái nhập để thực hiện cuộc tấn công.

Phân tích sự kiện tấn công tái nhập Khoản vay nhanh Jarvis Network

Phân tích ngăn xếp gọi giao dịch tấn công cho thấy, trong quá trình gọi lại, khi gọi cùng một hàm của cùng một hợp đồng với tham số đầu vào giống nhau nhưng giá trị trả về lại có sự khác biệt rõ rệt. Giá trị trả về trước và sau khi gọi lại lần lượt là:

  • Trước khi tái nhập: 1002157321772769944
  • Re vào sau: 10091002696492234934

Phân tích sự kiện tấn công tái nhập khoản vay nhanh mạng Jarvis

Tái nhập xảy ra trong hàm remove_liquidity. Hàm này sẽ trả lại các token mà người dùng đã thêm khi loại bỏ tính thanh khoản. Do Polygon tương thích với EVM, việc chuyển MATIC cho hợp đồng đã kích hoạt tái nhập.

Phân tích sự kiện tấn công tái nhập khoản vay nhanh Jarvis Network

Phân tích sâu cho thấy, vấn đề nằm ở việc triển khai hàm getUnderlyingPrice. Hàm này liên quan đến một loạt các phép tính nội bộ và gọi ngoại bộ, trong đó quan trọng là giá trị trả về của hàm get_virtual_price. Giá trị trả về của hàm này bị ảnh hưởng bởi biến self.D, và việc cập nhật self.D xảy ra sau khi chuyển nhượng token.

Phân tích sự kiện tấn công tái nhập Khoản vay nhanh Jarvis Network

Kẻ tấn công khi loại bỏ tính thanh khoản, MATIC chuyển vào hợp đồng tấn công sau đó đã kiểm tra giá token thông qua callback. Do self.D chưa được cập nhật, dẫn đến việc lấy giá sai. Kẻ tấn công đã lợi dụng sự chênh lệch thời gian này, trong lần gọi lại đã nâng giá vay lên khoảng 10 lần.

Phân tích sự cố tấn công tái nhập Khoản vay nhanh Jarvis Network

Mặc dù hàm remove_liquidity sử dụng bộ trang trí @nonreentrant('lock') để ngăn chặn việc tái nhập, nhưng kẻ tấn công đã vượt qua cơ chế bảo vệ này bằng cách tái nhập qua hợp đồng.

Phân tích sự kiện tấn công tái nhập khoản vay nhanh Jarvis Network

Cuộc tấn công này đã phơi bày một số vấn đề then chốt:

  1. Logic thay đổi biến nằm ở ngoài cuộc gọi, dẫn đến việc lấy giá bất thường.
  2. Tái nhập giữa các hợp đồng làm cho khóa tái nhập không còn hiệu lực.
  3. Không tuân theo mô hình "Kiểm tra - Hiệu ứng - Tương tác" (Checks-Effects-Interactions).

Phân tích sự cố tấn công tái nhập Khoản vay nhanh Jarvis Network

Để ngăn chặn các cuộc tấn công tương tự, đề xuất phía dự án:

  • Thực hiện kiểm toán an ninh nghiêm ngặt
  • Đặt việc sửa đổi biến trước khi gọi bên ngoài
  • Áp dụng phương pháp nhiều nguồn dữ liệu để lấy giá
  • Tuân theo quy tắc mã hóa "Kiểm tra - Hiệu lực - Tương tác"

Thông qua những biện pháp này, có thể nâng cao đáng kể tính an toàn và ổn định của dự án.

![Phân tích sự kiện tấn công tái nhập Khoản vay nhanh Jarvis Network](https://img-cdn.gateio.im/webp-social/moments-fcd66f4cc03bb8e822c9414526681442.webp01

![Phân tích sự kiện tấn công tái nhập Khoản vay nhanh của Jarvis Network])https://img-cdn.gateio.im/webp-social/moments-9b2de9b00c52d3ff96d5a361df65769a.webp(

![Phân tích sự kiện tấn công tái nhập Khoản vay nhanh Jarvis Network])https://img-cdn.gateio.im/webp-social/moments-88f9283ee0923cff2a22405715721cd2.webp(

![Phân tích sự kiện tấn công tái nhập Khoản vay nhanh Jarvis Network])https://img-cdn.gateio.im/webp-social/moments-d41ac025ee561569cce3b941d7e07967.webp(

![Phân tích sự kiện tấn công tái nhập Khoản vay nhanh Jarvis Network])https://img-cdn.gateio.im/webp-social/moments-2c4474781d661306bc8c432dad3942c0.webp(

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
  • Bình luận
  • Đăng lại
  • Chia sẻ
Bình luận
0/400
Không có bình luận
  • 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)