Lỗ hổng lưu trữ tạm thời khiến dự án giao dịch ký quỹ bị tấn công 300.000 đô la trên chuỗi.

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

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

Vào ngày 30 tháng 3 năm 2025, một vụ cướp trên chuỗi trị giá hơn 300.000 USD đã diễn ra trên mạng Ethereum. Theo hệ thống giám sát an ninh, dự án giao dịch đòn bẩy SIR.trading đã bị tấn công và chịu thiệt hại nặng nề. Đội ngũ an ninh đã tiến hành phân tích sâu về sự kiện này và công bố kết quả điều tra như sau.

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

Bối cảnh sự kiện

Phiên bản Solidity 0.8.24 sẽ được giới thiệu vào tháng 1 năm 2024 với tính năng lưu trữ tạm thời (transient storage). Đây là một vị trí lưu trữ dữ liệu mới, nhằm cung cấp cho các nhà phát triển một phương thức lưu trữ tạm thời hiệu quả về chi phí và có hiệu lực trong suốt giao dịch. Lưu trữ tạm thời được triển khai thông qua hai lệnh EVM mới là 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

Nguyên nhân tấn công

Nguyên nhân cơ bản của sự kiện này là giá trị được sử dụng trong tstore để lưu trữ tạm thời 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 địa chỉ độc hại cụ thể nhằm vượt qua kiểm tra quyền hạn, thành công chuyển token ra ngoà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

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à trên một DEX nào đó tạo ra các pool cho hai token này để cung cấp thanh khoản, trong đó token A là hợp đồng tấn công.

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

  3. Kẻ tấn công gọi hàm mint của hợp đồng Vault, gửi vào mã nợ B để đúc mã thông báo đòn bẩy APE. Trong quá trình này, địa chỉ hồ bơi DEX và số lượng đúc được lần lượt được lưu vào bộ nhớ tạm.

  4. Kẻ tấn công tạo ra một hợp đồng độc hại có địa chỉ giống với số lượng đúc được lưu trữ tạm thời trước đó.

  5. Kẻ tấn công gọi trực tiếp hàm uniswapV3SwapCallback của hợp đồng Vault thông qua hợp đồng độc hại để chuyển tiền. Do giá trị trong bộ nhớ tạm thời không được xóa, dẫn đến việc kiểm tra danh tính bị vượt qua sai.

  6. Cuối cùng, kẻ tấn công đã gọi hàm uniswapV3SwapCallback của hợp đồng Vault thông qua hợp đồng tấn công (token A), rút các token khác trong hợp đồng Vault (WBTC, WETH) để 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 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 sản tử vong: 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 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 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 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 do lưu trữ tạm thời gây ra

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

Theo dữ liệu từ công cụ phân tích 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 và 119,871 WETH. Sau đó, kẻ tấn công đã hoán đổi và chuyển những tài sản này:

  • WBTC đã được đổi thành 63.5596 WETH
  • USDC đã được đổi thành 9.7122 WETH
  • Tổng cộng 193.1428 WETH đã được chuyển vào một mạng ẩn danh nào đó

Điều đáng chú ý là nguồn vốn ban đầu của kẻ tấn công đến từ 0.3 ETH được chuyển vào từ một mạng ẩn danh.

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 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

Tóm tắt và đề xuất

Cuộc tấn công này đã lợi dụng đặc tính lưu trữ tạm thời không thay đổi trong suốt thời gian giao dịch, thành công vượt qua xác thực quyền truy cập của hàm gọi lại. Để phòng ngừa các sự kiện tương tự, đề nghị phía dự án:

  1. Theo logic kinh doanh, ngay sau khi kết thúc cuộc gọi hàm, hãy sử dụng tstore(key, 0) để xóa giá trị trong bộ nhớ tạm thời.
  2. Tăng cường kiểm toán mã hợp đồng và kiểm tra an ninh, đặc biệt chú ý đến rủi ro sử dụng các tính năng mới.
  3. Thực hiện cơ chế xác thực đa dạng, không chỉ dựa vào một kiểm tra danh tính duy nhất.
  4. Thực hiện đánh giá an ninh định kỳ, kịp thời phát hiện và khắc phục các lỗ hổng tiềm ẩn.

Sự kiện này lại nhắc nhở chúng ta rằng cần phải thận trọng khi áp dụng công nghệ mới, đánh giá toàn diện tác động an toàn của nó. Đồng thời, việc kiểm toán an ninh liên tục và quản lý rủi ro là rất quan trọng để bảo vệ tài sản của người dùng.

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
  • 6
  • Chia sẻ
Bình luận
0/400
GhostChainLoyalistvip
· 07-23 20:02
bỏ lỡ rồi, lại là một dự án bị chơi đùa với mọi người
Xem bản gốcTrả lời0
HypotheticalLiquidatorvip
· 07-23 17:12
300.000? Đây chính là sự thanh lọc thị trường đang diễn ra...
Xem bản gốcTrả lời0
P2ENotWorkingvip
· 07-20 21:17
Bên dự án lại đang ngủ say.
Xem bản gốcTrả lời0
BlockchainRetirementHomevip
· 07-20 21:16
Lại thấy hợp đồng thông minh được chơi cho Suckers
Xem bản gốcTrả lời0
DYORMastervip
· 07-20 20:49
Trông đẹp nhưng không hữu ích, mã cũng không được kiểm tra.
Xem bản gốcTrả lời0
DecentralizedEldervip
· 07-20 20:47
Cuốn đi thì cuốn đi, dự án này thật sự quá kém.
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)