Gần đây, giao thức tiền tệ siêu ổn định Curve đã bị tấn công bởi reentrancy, gây tổn thất nghiêm trọng. Sau đây là các đề xuất bảo mật và phân tích bảo mật của MetaTrust Labs cho cuộc tấn công này.
đánh giá sự kiện
Theo Twitter chính thức của Curve Finance, vào ngày 31 tháng 7 năm 2023, một số nhóm ổn định (alETH/msETH/pETH) được viết bằng Vyper phiên bản 0.2.15 đã bị tấn công vào lại. Curve Finance tuyên bố rằng cuộc tấn công là do khóa truy cập lại bị trục trặc trong phiên bản Vyper 0.2.15 và chỉ ảnh hưởng đến các nhóm sử dụng ETH thuần túy. Hiện tại, Curve đang đánh giá thiệt hại và các hồ bơi khác vẫn an toàn.
Theo phân tích của MetaTrust Labs, lỗ hổng này xuất hiện từ tháng 8 đến tháng 10 năm 2021, chủ yếu là do trình biên dịch phiên bản 0.2.15/0.2.16/0.3.0 của Vyper. Lý do của lỗ hổng bảo mật là logic truy cập lại trong mã byte được tạo sẽ không có hiệu lực do lỗi trong trình biên dịch.
Theo thống kê trên chuỗi, sự cố hack pool stablecoin Curve Finance đã gây ra khoản lỗ lũy kế 52 triệu đô la Mỹ trong các pool Alchemix, JPEG'd, CRV/ETH, v.v. Mã thông báo CRV của Curve Finance cũng bị ảnh hưởng nặng nề, giảm hơn 15% trong ngày.
Phân tích nguyên nhân
Lý do Curve Finance bị tấn công lần này là khi Curve sử dụng ngôn ngữ Vyper để viết hợp đồng thông minh, nó đã sử dụng phiên bản Vyper 0.2.15. một cuộc tấn công reentrancy để gây ra tổn thất. Lỗ hổng của Curve Finance lần này là lỗ hổng Language Specific.
Các lỗ hổng ngôn ngữ cụ thể đề cập đến các lỗ hổng gây ra bởi lỗi hoặc sự không tương thích trong một ngôn ngữ lập trình nhất định hoặc chính trình biên dịch. Những lỗ hổng như vậy thường rất khó tìm và ngăn chặn, bởi vì chúng không phải do sơ suất của nhà phát triển hoặc lỗi logic, mà do các vấn đề với nền tảng công nghệ cơ bản. Các loại lỗ hổng này cũng có xu hướng ảnh hưởng đến nhiều dự án hoặc hợp đồng vì tất cả chúng đều sử dụng cùng một ngôn ngữ hoặc trình biên dịch.
Vyper là ngôn ngữ lập trình hợp đồng thông minh dựa trên Python được thiết kế để bảo mật và dễ đọc hơn. Vyper tuyên bố là ngôn ngữ "an toàn trên hết" và không hỗ trợ một số tính năng có thể gây ra rủi ro bảo mật, chẳng hạn như lớp, thừa kế, sửa đổi, lắp ráp nội tuyến, v.v. Tuy nhiên, Vyper không hoàn hảo và nó vẫn có một số lỗi hoặc sơ hở có thể ảnh hưởng đến tính bảo mật của hợp đồng. Ví dụ: ngoài lỗi khóa người truy cập lại mà Curve Finance gặp phải lần này, Vyper cũng gặp phải các sự cố như mảng vượt quá giới hạn, tràn số nguyên và lỗi truy cập bộ nhớ.
biện pháp an ninh
Đối với cuộc tấn công vào lại của Curve Finance lần này, một số biện pháp đối phó đã được thực hiện hoặc đề xuất. Dưới đây là một số biện pháp đối phó bảo mật mà bạn có thể thực hiện:
- Rút thanh khoản: Đối với các nhóm bị ảnh hưởng, người dùng có thể chọn rút thanh khoản để tránh tổn thất thêm. Curve Finance đã cung cấp một nút để rút thanh khoản trên trang web chính thức của mình, thuận tiện cho người dùng thao tác.
- Nâng cấp trình biên dịch: Đối với các hợp đồng sử dụng trình biên dịch Vyper 0.2.15/0.2.16/0.3.0, bạn nên nâng cấp lên phiên bản Vyper 0.3.1 mới nhất, phiên bản này đã khắc phục sự cố khóa vào lại không thành công. Đồng thời, cũng nên sử dụng các công cụ hoặc phương pháp khác để xác minh tính bảo mật của hợp đồng, chẳng hạn như xác minh chính thức, kiểm tra mã, v.v.
- Thận trọng: Đối với các hợp đồng được viết bằng Vyper hoặc các ngôn ngữ khác, bạn nên thận trọng, chú ý đến các bản cập nhật và sửa lỗi của ngôn ngữ hoặc trình biên dịch, đồng thời thực hiện các biện pháp cần thiết kịp thời để bảo vệ tài sản của mình. Đồng thời, người ta cũng khuyến nghị rằng khi sử dụng một ngôn ngữ mới hoặc công nghệ mới, hãy đánh giá cẩn thận sự trưởng thành và ổn định của nó, tránh theo đuổi sự mới mẻ hoặc hiệu quả một cách mù quáng.
tóm tắt
tóm tắt
Sự cố quay trở lại Curve Finance là một sự cố bảo mật đáng tiếc và là một bài học kích thích tư duy. Trong lĩnh vực tài chính phi tập trung (DeFi), bảo mật luôn là ưu tiên hàng đầu, các bên tham gia dự án cần không ngừng nâng cao nhận thức và năng lực bảo mật, bất kỳ chi tiết nào cũng có thể trở thành điểm đột phá để kẻ tấn công khai thác.
Theo chúng tôi
Twitter: @ MetaTrustLabs
Trang web: metatrust.io
Tất cả bình luận