Lỗ hổng lưu trữ tạm thời gây ra cuộc tấn công 300.000 đô la cho dự án, an ninh on-chain lại vang lên hồi chuông cảnh báo

Lỗ hổng lưu trữ tạm thời gây ra cuộc tấn công 300.000 đô la vào các dự án trên chuỗi

Vào ngày 30 tháng 3 năm 2025, một dự án giao dịch đòn bẩy trên chuỗi Ethereum đã bị tấn công, gây thiệt hại hơn 300.000 đô la Mỹ tài sản. Đội ngũ an ninh đã tiến hành phân tích sâu về sự kiện này, dưới đây là những phát hiện liên quan:

Bối cảnh sự kiện

Kẻ tấn công đã khai thác một lỗ hổng trong tính năng lưu trữ tạm thời được giới thiệu trong phiên bản Solidity 0.8.24, (transient storage). Lưu trữ tạm thời là một vị trí lưu trữ dữ liệu mới, nhằm cung cấp cách lưu trữ tạm thời hiệu quả về chi phí và có hiệu lực trong thời gian giao dịch. Nó được thực hiện thông qua các lệnh TSTORE và TLOAD, với các đặc điểm như chi phí gas thấp, tính bền vững trong giao dịch và tự động xóa.

Di sản chết người: Một vụ cướp 300.000 đô la trên chuỗi do lưu trữ tạm thời gây ra

Nguồn gốc của cuộc tấn công

Nguyên nhân cơ bản của cuộc tấn công là giá trị được lưu trữ tạm thời bằng tstore trong hàm không được xóa sau khi kết thúc cuộc gọi hàm. Kẻ tấn công đã lợi dụng đặc điểm này để tạo ra các địa chỉ độc hại cụ thể nhằm vượt qua kiểm tra quyền hạn, từ đó chuyển ra token trong dự án.

Di sản chết người: Một vụ cướp 300.000 đô la trên chuỗi do bộ nhớ tạm thời gây ra

Quá trình tấn công

  1. Tạo token độc hại và thiết lập bể giao dịch: Kẻ tấn công tạo ra hai token độc hại A và B, và tạo bể cho hai token này trên một DEX và bơm thanh khoản.

Di sản chết người: Một vụ cướp 300.000 đô la trên chuỗi do bộ nhớ tạm thời gây ra

  1. Khởi tạo thị trường giao dịch đòn bẩy: Kẻ tấn công gọi hàm initialize của hợp đồng dự án, sử dụng token A làm tài sản thế chấp và token B làm token nợ để tạo ra thị trường giao dịch đòn bẩy.

Di sản chết người: Một vụ cướp 300.000 USD trên chuỗi do lưu trữ tạm thời gây ra

  1. Đúc token đòn bẩy: Kẻ tấn công gọi hàm mint, gửi token nợ B để đúc token đòn bẩy. Trong quá trình này, địa chỉ bể DEX và số lượng đúc được lưu trữ tạm thời.

Di sản chết người: Một vụ cướp 300.000 đô la trên chuỗi do bộ nhớ tạm thời gây ra

  1. Tạo hợp đồng độc hại: Kẻ tấn công tạo một địa chỉ với hợp đồng độc hại có số lượng đúc giống như trong bộ nhớ tạm thời.

Di chứng chết người: Một vụ cướp 300.000 USD trên chuỗi do bộ nhớ tạm thời gây ra

  1. Vượt qua xác thực quyền: Kẻ tấn công gọi hàm callback của hợp đồng dự án thông qua hợp đồng độc hại, do giá trị trong bộ nhớ tạm thời chưa được xóa, dẫn đến việc kiểm tra quyền bị vượt qua sai.

Di sản chết người: Một vụ cướp 300.000 đô la trên chuỗi do lưu trữ tạm thời gây ra

  1. Chuyển tài sản: Cuối cùng, kẻ tấn công đã gọi trực tiếp hàm callback của hợp đồng dự án thông qua việc tấn công hợp đồng, chuyển các token khác trong hợp đồng (như WBTC, WETH) ra ngoài để thu lợi.

Di sản chết người: Một vụ cướp 300.000 đô la trên chuỗi do lưu trữ tạm thời gây ra

Đánh giá thiệt hại

Theo dữ liệu từ công cụ phân tích trên chuỗi, kẻ tấn công đã đánh cắp tài sản trị giá khoảng 300.000 đô la, bao gồm 17.814,8626 USDC, 1,4085 WBTC và 119,871 WETH. Các tài sản này sau đó đã được đổi và chuyển vào một hệ thống ẩn danh.

Di chứng chết người: Một vụ cướp 300.000 đô la trên chuỗi do bộ nhớ tạm thời gây ra

Đề xuất an toàn

  1. Sử dụng bộ nhớ tạm thời hợp lý: Các dự án nên ngay lập tức sử dụng tstore(key, 0) để xóa giá trị trong bộ nhớ tạm thời sau khi kết thúc gọi hàm theo logic kinh doanh.

Di chứng chết người: Một vụ cướp 300.000 đô la trên chuỗi do lưu trữ tạm thời gây ra

  1. Tăng cường kiểm toán hợp đồng: Cần thực hiện kiểm toán và thử nghiệm an toàn toàn diện đối với mã hợp đồng của dự án để phát hiện và khắc phục các lỗ hổng tiềm ẩn.

Di sản chết người: Một vụ cướp 300.000 đô la trên chuỗi do lưu trữ tạm thời gây ra

  1. Hoàn thiện xác thực quyền: Thực hiện cơ chế xác thực đa lớp trong các thao tác quan trọng, tránh việc xác thực đơn lẻ bị vượt qua.

Di sản chết người: Một vụ cướp 300.000 đô la trên chuỗi do lưu trữ tạm thời gây ra

  1. Giám sát hoạt động bất thường: Triển khai hệ thống giám sát thời gian thực, kịp thời phát hiện và phản ứng với các giao dịch nghi ngờ.

Di sản chết người: Một vụ cướp 300.000 đô la trên chuỗi do lưu trữ tạm thời gây ra

Sự kiện lần này một lần nữa nhấn mạnh tầm quan trọng của việc thực hiện đánh giá an ninh toàn diện khi áp dụng các đặc tính công nghệ mới. Khi công nghệ blockchain ngày càng phát triển, các bên dự án cần giữ cảnh giác và liên tục cập nhật thực hành an ninh để đối phó với các phương thức tấn công đang không ngừng tiến hóa.

Di sản chết người: Một vụ cướp 300.000 USD trên chuỗi do lưu trữ tạm thời gây ra

Di sản chết người: Một vụ cướp 300.000 đô la trên chuỗi do lưu trữ tạm thời gây ra

Di sản chết người: Một vụ cướp trên chuỗi trị giá 300.000 đô la do bộ nhớ tạm thời gây ra

Di sản chết người: Một vụ cướp 300.000 đô la trên chuỗi do lưu trữ tạm thời gây ra

WBTC-0.35%
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
GasBankruptervip
· 07-27 11:42
Một cái hố lỗi nữa
Xem bản gốcTrả lời0
WalletDivorcervip
· 07-25 07:46
Những gì bị mất đều là tiền học phí.
Xem bản gốcTrả lời0
MetaMuskRatvip
· 07-25 07:31
Một bài học khá đắt giá.
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)