SharkTeam: Phân tích cuộc tấn công KyberSwap

星球日报

Vào ngày 23 tháng 11 năm 2023, KyberSwap đã bị tấn công trên nhiều mạng như Ethereum và Arbitrum do thao túng tick và đếm kép thanh khoản, và những kẻ tấn công đã kiếm được lợi nhuận khoảng 48 triệu USD.

SharkTeam:KyberSwap攻击事件原理分析

SharkTeam đã tiến hành phân tích kỹ thuật về sự cố này lần đầu tiên và tóm tắt các biện pháp phòng ngừa an ninh, hy vọng rằng các dự án tiếp theo có thể coi đây là một cảnh báo và cùng nhau xây dựng một tuyến phòng thủ an ninh cho ngành công nghiệp blockchain.

I. Phân tích giao dịch tấn công

Cuộc tấn công này phức tạp hơn và việc thực hiện tấn công khéo léo hơn, vì vậy chúng tôi chọn một trong các giao dịch tấn công để phân tích và giải thích chi tiết.

Giao dịch tấn công:

0x09a3a12d58b0bb80e33e3fb8e282728551dc430c65d1e520fe0009ec519d75e8

Địa chỉ kẻ tấn công:

0x50275E0B7261559cE1644014d4b78D4AA63BE836

Hợp đồng kẻ tấn công:

0xaF2Acf3D4ab78e4c702256D214a3189A874CDC13

Trong giao dịch này, kẻ tấn công đã thực hiện một loạt các hoạt động chống lại 3 nhóm thanh khoản khác nhau để rút cạn các nhóm. Chúng tôi đã chọn một nhóm để phân tích luồng tấn công, tồn tại độc lập với nhau.

Quá trình tấn công:

  1. Kẻ tấn công đầu tiên vay 10.000 wstETH thông qua một khoản vay flash, sau đó thêm khoảng 2.998 wstETH vào nhóm và hoán đổi khoảng 2.842 WETH.

SharkTeam:KyberSwap攻击事件原理分析

  1. Tại thời điểm này, trạng thái tick tương ứng trong pool là -110, 910 và giá wstETH thay đổi từ 1,05 ETH thành 0,000015257. Tại thời điểm này, tính thanh khoản của hồ bơi là 0, mở đường cho việc tạo ra thanh khoản giả;

SharkTeam:KyberSwap攻击事件原理分析

  1. Kẻ tấn công thêm thanh khoản 3,4 wstETH và loại bỏ 0,56 wstETH trong phạm vi [0,000014659 , 0,000015260].

SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析

  1. Tiếp theo, kẻ tấn công thực hiện hai giao dịch hoán đổi, đó là WETH->wstETH, wstETH-> WETH. Sau lần hoán đổi đầu tiên, giá đã được đẩy xuống 0,000014657, thấp hơn một chút so với 0,000014659. Sau lần hoán đổi thứ hai, hãy tăng giá lên 0,000016368;

SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析

  1. Lúc đầu, có khoảng 3 wstETH thanh khoản trong mỏ (mint 3.4 wstETH - burn 0.56 wstETH), và bây giờ có khoảng (1.056 + 3.911) trong pool, rõ ràng là nhiều hơn;

  2. Sau khi cuộc tấn công trả lại khoản vay flash và tiền được chuyển từ hợp đồng tấn công

SharkTeam:KyberSwap攻击事件原理分析

2. Phân tích nguyên nhân của lỗ hổng bảo mật

Nguyên nhân gốc rễ của cuộc tấn công này: Trong hàm computeSwapStep, mất độ chính xác khi tính tick. Vì đánh dấu có thể được thao tác, nó bỏ qua thành công chức năng _updateLiquidityAndCrossTick, cho phép thanh khoản được tăng lên nhiều lần.

  1. Trong lần hoán đổi đầu tiên, kẻ tấn công sử dụng hàm calcReachAmount để tính toán số lượng wstETH và cuối cùng tính toán 1.056.056735638220800000;

SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析

  1. Sau khi gọi các hàm ước tínhIncrementalLiquidity và calcFinalPrice, số được truyền vào là 1, 056.0567356382207999999. Sau khi làm tròn lên và làm tròn xuống, đánh dấu là -111311 và đánh dấu thấp hơn là -111310. Do đó, bằng cách sử dụng nextTick = currentTick + 1 và sử dụng “!=” để đánh giá hai tham số sqrtP, hàm _updateLiquidityAndCrossTick được bỏ qua thành công và tránh cập nhật thanh khoản.

SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析

  1. Tại lần hoán đổi thứ hai, _updateLiquidityAndCrossTick được gọi, làm tăng tính thanh khoản. Do mất tính chính xác trong việc tính toán số lượng trong lần hoán đổi đầu tiên, thanh khoản không được cập nhật và loại bỏ, dẫn đến tình huống kép khi thanh khoản được tính vào lần thứ hai.

SharkTeam:KyberSwap攻击事件原理分析

III. Khuyến nghị an toàn

Để đối phó với cuộc tấn công này, các nhà phát triển nên thực hiện các biện pháp bảo mật sau đây trong quá trình phát triển hàng ngày của họ:

  1. Chú ý tính toán chính xác các bất biến và logic toán học trong doanh nghiệp để tránh mất tính chính xác.

  2. Trước khi phát hành dự án, cần hợp tác với đội ngũ kiểm toán chuyên nghiệp bên thứ ba để tiến hành kiểm toán hợp đồng.

Về chúng tôi

Tầm nhìn của SharkTeam là bảo vệ thế giới Web3. Nhóm nghiên cứu bao gồm các chuyên gia bảo mật giàu kinh nghiệm và các nhà nghiên cứu cao cấp từ khắp nơi trên thế giới, những người thành thạo lý thuyết cơ bản về blockchain và hợp đồng thông minh. Nó cung cấp các dịch vụ bao gồm phân tích dữ liệu lớn trên chuỗi, cảnh báo rủi ro trên chuỗi, kiểm toán hợp đồng thông minh, khôi phục tài sản tiền điện tử, v.v. và đã tạo ra ChainAegis, một nền tảng phân tích dữ liệu lớn và cảnh báo sớm rủi ro trên chuỗi, hỗ trợ mức độ phân tích đồ thị chuyên sâu không giới hạn và có thể chống lại rủi ro của Mối đe dọa dai dẳng nâng cao (APT) trong thế giới Web3. Nó đã thiết lập mối quan hệ hợp tác lâu dài với những người chơi chính trong các lĩnh vực khác nhau của hệ sinh thái Web3, chẳng hạn như Polkadot, Moonbeam, đa giác, Sui, OKX, imToken, ChainIDE, v.v.

Trang web chinh thưc:

Twitter:

Bất hòa:

Telegram:

Tuyên bố miễn trừ trách nhiệm: Thông tin trên trang này có thể đến từ bên thứ ba và không đại diện cho quan điểm hoặc ý kiến của Gate. Nội dung hiển thị trên trang này chỉ mang tính chất tham khảo và không cấu thành bất kỳ lời khuyên tài chính, đầu tư hoặc pháp lý nào. Gate không đảm bảo tính chính xác hoặc đầy đủ của thông tin và sẽ không chịu trách nhiệm cho bất kỳ tổn thất nào phát sinh từ việc sử dụng thông tin này. Đầu tư vào tài sản ảo tiềm ẩn rủi ro cao và chịu biến động giá đáng kể. Bạn có thể mất toàn bộ vốn đầu tư. Vui lòng hiểu rõ các rủi ro liên quan và đưa ra quyết định thận trọng dựa trên tình hình tài chính và khả năng chấp nhận rủi ro của riêng bạn. Để biết thêm chi tiết, vui lòng tham khảo Tuyên bố miễn trừ trách nhiệm.
Bình luận
0/400
Không có bình luận