Lỗ hổng lưu trữ tạm thời gây ra thiệt hại 300.000 USD cho dự án giao dịch ký quỹ. Kẻ tấn công đã chuyển WBTC và WETH.

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

Lỗi lưu trữ tạm thời dẫn đến tổn thất 300.000 USD cho dự án on-chain

Vào ngày 30 tháng 3 năm 2025, một dự án giao dịch đòn bẩy trên Ethereum đã bị tấn công, gây thiệt hại tài sản lên đến hơn 300.000 USD. Đội ngũ an ninh đã tiến hành phân tích sâu về sự kiện này, tiết lộ các chi tiết kỹ thuật của cuộc tấn công và nguyên nhân cơ bản.

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

Bối cảnh sự kiện

Cuộc tấn công nhắm vào một dự án giao dịch đòn bẩy có tên là SIR.trading. Kẻ tấn công đã khai thác thành công một lỗ hổng trong hợp đồng của dự án, từ đó chuyển giao trái phép một lượng lớn tài sả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

Phân tích nguyên nhân kỹ thuật

Vấn đề cốt lõi của cuộc tấn công này xuất phát từ tính năng lưu trữ tạm thời (transient storage) được giới thiệu trong phiên bản Solidity 0.8.24. 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 một phương thức lưu trữ tạm thời hiệu quả về chi phí trong suốt giao dịch. Tuy nhiên, trong trường hợp này, việc sử dụng lưu trữ tạm thời không đúng cách đã dẫn đến những lỗ hổng bảo mật nghiêm trọng.

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

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

Quá trình tấn công

  1. Kẻ tấn công tạo ra hai token độc hại A và B, và tạo một bể thanh khoản cho hai token này trên một DEX nào đó.
  2. Kẻ tấn công sử dụng hai token này để tạo ra một thị trường giao dịch đòn bẩy mới trong dự án mục tiêu.
  3. Thông qua các giao dịch được thiết kế tỉ mỉ, kẻ tấn công đã để lại các giá trị cụ thể trong bộ nhớ tạm thời.
  4. Kẻ tấn công tạo ra một hợp đồng độc hại có địa chỉ khớp với giá trị đã lưu trữ trước đó.
  5. Sử dụng hợp đồng độc hại này, kẻ tấn công đã thành công trong việc vượt qua kiểm tra quyền hạn trong hợp đồng dự án.
  6. Cuối cùng, kẻ tấn công đã thành công trong việc chuyển các token khác trong hợp đồng dự án (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

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 trên chuỗi trị giá 300.000 đô la 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 300.000 đô la trên chuỗi do bộ nhớ tạm thời gây ra

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

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

Phân tích dòng tiền

Theo phân tích dữ liệu on-chain, kẻ tấn công đã đánh cắp khoảng 300.000 đô la tài sản, bao gồm:

  • 17,814.8626 USDC
  • 1.4085 WBTC
  • 119.871 WETH

Những tài sản bị đánh cắp này sau đó được đổi thành WETH, tổng cộng khoảng 193.1428 WETH, và đã được chuyển vào một giao thức giao dịch bảo mật nào đó.

Cần lưu ý rằng vốn ban đầu của kẻ tấn công (0.3 ETH) cũng đến từ cùng một giao thức bảo mật, điều này có thể gợi ý rằng kẻ tấn công đang cố gắng ẩn danh tính và nguồn gốc tài chính của mình.

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 300.000 đô la trên chuỗi do lưu trữ tạm thời gây ra

Đề xuất an toàn

Để ngăn chặn các sự kiện tương tự xảy ra lần nữa, các chuyên gia an ninh khuyên rằng:

  1. Khi sử dụng bộ nhớ tạm thời, nên ngay lập tức sử dụng tstore(key, 0) để xóa giá trị đã lưu trữ sau khi kết thúc cuộc gọi hàm.
  2. Tăng cường kiểm toán và kiểm tra an ninh mã hợp đồng, đặc biệt cần thận trọng với các tính năng mới được giới thiệu.
  3. Trong việc thực hiện kiểm tra quyền quan trọng, hãy tránh phụ thuộc quá nhiều vào cơ chế lưu trữ có thể bị thao túng.

Sự kiện lần này một lần nữa nhấn mạnh rằng khi áp dụng các tính năng công nghệ mới, phải xem xét đầy đủ các tác động an ninh tiềm ẩn của chúng. Đối với các dự án blockchain, việc kiểm toán an ninh và đánh giá rủi ro liên tục là cực kỳ quan trọng.

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

WBTC-2.64%
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
MidnightTradervip
· 07-30 19:21
Lại có vấn đề với bộ nhớ tạm thời.
Xem bản gốcTrả lời0
StableGeniusDegenvip
· 07-28 00:16
Lại có chuyện rồi
Xem bản gốcTrả lời0
LeekCuttervip
· 07-28 00:12
Lại đến để thu đồ ngốc rồi
Xem bản gốcTrả lời0
CommunityWorkervip
· 07-28 00:09
又是0审计项目被 chơi đùa với mọi người
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)