SharkTeam: Phân tích nguyên lý sự cố tấn công KyberSwap
SharkTeam
2023-11-28 10:41
本文约1053字,阅读全文需要约4分钟
Vào ngày 23 tháng 11 năm 2023, do thao túng Tick và đếm thanh khoản nhiều lần, KyberSwap đã bị hack trên nhiều mạng như Ethereum và Arbitrum, những kẻ tấn công đã kiếm được lợi nhuận khoảng 48 triệu USD.

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

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

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

Sự kiện tấn công này tương đối phức tạp và cách thực hiện tấn công cũng tương đối thông minh, 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ỉ của kẻ tấn công:

0x50275E0B7261559cE1644014d4b78D4AA63BE836

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

0xaF2Acf3D4ab78e4c702256D214a3189A874CDC13

Trong giao dịch này, kẻ tấn công đã thực hiện một loạt hoạt động chống lại 3 nhóm thanh khoản khác nhau để rút tiền trong 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 lần đầu tiên vay 10.000 wstETH thông qua khoản vay nhanh, sau đó thêm khoảng 2.998 wstETH vào nhóm và hoán đổi khoảng 2.842 WETH;

2. Tại thời điểm này, trạng thái Tick tương ứng trong nhóm là -110, 910 và giá của 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 nhóm là 0, mở đường cho việc tạo ra thanh khoản giả sau này;

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

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

5. Lúc đầu, có khoảng 3 wstETH thanh khoản trong nhóm (mint 3,4 wstETH - đốt 0,56 wstETH). Bây giờ có khoảng (1.056 + 3.911) xu trong nhóm, rõ ràng là nhiều hơn;

6. Sau khi cuộc tấn công trả lại khoản vay nhanh, số tiền sẽ được chuyển từ hợp đồng tấn công.

2. Phân tích nguyên nhân lỗ hổng

Nguyên nhân cốt lõi của cuộc tấn công này: Trong hàm tínhSwapStep, có sự mất độ chính xác khi tính Tick. Vì Tick có thể bị thao túng nên hàm _updateLiquidityAndCrossTick được bỏ qua thành công, cho phép tăng tính thanh khoản 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 số lượng wstETH và cuối cùng tính được 1.056.056735638220800000;

2. Sau khi gọi các hàm EstimateIncrementalLiquidity và calcFinalPrice, số lượng được truyền vào là 1.056.056735638220799999. Sau khi xử lý làm tròn lên và làm tròn xuống, Tick tại thời điểm này là -111311 và Tick giới hạn dưới 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 cập nhật thanh khoản;

3. Trong lần hoán đổi thứ hai, _updateLiquidityAndCrossTick đã được gọi để 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 trạng kép trong lần tính toán thanh khoản thứ hai.

3. Khuyến nghị về 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 trong quá trình phát triển hàng ngày:

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

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

About Us

Tầm nhìn của SharkTeam là bảo vệ thế giới Web3. Nhóm 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 cấp cao 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, phục hồi tài sản tiền điện tử và các dịch vụ khác, đồng thời đã xây dựng nền tảng cảnh báo rủi ro và phân tích dữ liệu lớn trên chuỗi ChainAegis. phân tích biểu đồ chuyên sâu và có thể chống lại các rủi ro Đe dọa liên tục nâng cao (APT) một cách hiệu quả 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ủ chốt trong các lĩnh vực khác nhau của hệ sinh thái Web3, như Polkadot, Moonbeam, Polygon, Sui, OKX, imToken, ChainIDE, v.v.

Trang web chính thức: https://www.sharkteam.org

Twitter:https://twitter.com/sharkteamorg

Discord:https://discord.gg/jGH9xXCjDZ

Telegram:https://t.me/sharkteamorg

SharkTeam
作者文库