

Tuần này, các "nhà khoa học" (những hacker sử dụng sức mạnh kỹ thuật và ngưỡng kiến thức của mình để chuyên sâu về DeFi) rất bận rộn.
chữ
tiêu đề phụ
Theo CCTV, từ góc độ lợi tức đầu tư, tiền điện tử là sản phẩm đầu tư "số một" thực sự trong năm nay. Chỉ số Bloomberg Galaxy Crypto tăng khoảng 65%, vượt xa mức tăng hơn 20% của giá vàng và lợi suất trên thị trường chứng khoán, trái phiếu và hàng hóa toàn cầu. Một lý do chính cho mức tăng cao là giá Ethereum tăng vọt, tăng 169,40%.
CCTV giải thích: “Giá Ethereum tăng là do việc sử dụng các công cụ tài chính phi tập trung (DeFi) ngày càng tăng và các biện pháp kích thích khổng lồ được nhiều quốc gia đưa ra sau đại dịch, do đó các nhà đầu tư chọn Bitcoin, Ethereum và các loại tiền điện tử khác cho đầu tư. Bảo toàn giá trị."
Một mặt, thị trường tiền điện tử thường xuyên đưa ra những tin tốt lành; mặt khác, các dự án DeFi thường xuyên bị tấn công vì chúng không được kiểm toán chặt chẽ.
chuyện gì đã xảy ra thế?
chuyện gì đã xảy ra thế?
Qua theo dõi và phân tích, PeckShield nhận thấy kẻ tấn công đã truy vấn số dư tài sản trị giá 19,72 triệu USD thông qua hàm StrategyCmpdDaiV2.getSuppliedUnleveraged();
Sau đó, kẻ tấn công trích xuất tất cả DAI trong StrategyCmpdDaiV2 sang Pickle Jar bằng cách khai thác lỗ hổng xác thực đầu vào: lỗ hổng này nằm trong hàm ControllerV4.swapExactJarForJar(), hàm chứa hai Lọ giả được xác định trước. Trong trường hợp một Hũ nhất định không được xác minh, bước này sẽ trích xuất tất cả DAI đã ký gửi vào Hũ đựng dưa cho vòng triển khai tiếp theo.
Tiếp theo, kẻ tấn công gọi hàm Earn() để triển khai DAI đã trích xuất vào StrategyCmpdDaiV2. Trong quản lý bộ đệm nội bộ, tin tặc đã gọi hàm Earn() ba lần, tạo ra tổng cộng 950.818.864.8211968 cDAI trong StrategyCmpdDaiV2;
Gọi hàm Earn() lần đầu tiên để gửi 19,76 triệu DAI và đúc 903.390.845,43581639 cDAI;
Gọi hàm Earn() lần thứ hai để gửi 988.000 DAI và đúc 45.169.542,27179081 cDAI;
chữ
Gọi hàm Earn() lần thứ ba để gửi 49.000 DAI và đúc 2.258.477,11358954 cDAI;
Sau đó, kẻ tấn công gọi hàm ControllerV4.swapExactJarForJar() để trích xuất tất cả cDAI trong StrategyCmpdDaiV2 bằng cách sử dụng thực thi mã tùy ý. Trong bước này, hàm _execute() có hai tham số: _target và _data. _target đề cập đến địa chỉ mục tiêu. Điều đó là phần được tô màu cam trong hình; _target là một địa chỉ màu trắng và những kẻ tấn công không có cách nào để kiểm soát địa chỉ này một cách tùy ý, ở đây chúng sử dụng CurveProxyLogic, hợp đồng màu trắng (có thể vượt qua 262 dòng đã phê duyệtJarConverter[_targets[i] Nói cách khác , tham số _data có thể được kiểm soát hoàn toàn, là phần được hiển thị bằng màu tím trong hình, _data chứa hàm add_liquidity() mà hàm _execute() có thể gọi và tất cả các tham số được truyền cho add_liquidity() .
Tại thời điểm này, chúng tôi quay lại đường cong, đường congFunctionSig, đường congPoolSize, đường congUnderlyingIndex, bên dưới hộp màu cam, trong đó đường cong là một địa chỉ, có nghĩa là hàm curve.call() ở dòng áp chót của hộp màu cam có thể thực hiện bất kỳ hợp đồng nào, do đó, kẻ tấn công đặt đường cong thành StrategyCmpdDaiV2 và đường congFunctionSig chỉ ra rằng ngoài hợp đồng vừa được chỉ định, chức năng gọi hợp đồng cũng có thể được chỉ định và kẻ tấn công gọi thành công hàm StrategyCmpdDaiV2.withdraw() thông qua thao tác này.
Cuối cùng, thực thi trở lại hàm ControllerV4.swapExactJarForJar() và cDAI đã trích xuất được gửi vào _toJar độc hại. Trong hàm _toJar.deposit(), tất cả 950.818.864.8211968 cDAI ngay lập tức được chuyển đến địa chỉ của tin tặc.
tiêu đề phụ
DeFi có thể đi bao xa mà không cần kiểm tra nghiêm ngặt?
Để đối phó với cuộc tấn công vào Pickle Finance (dưa chuột muối), công ty kiểm toán Haechi của nó đã tweet rằng họ đã tiến hành kiểm tra mã của mình vào tháng 10 năm nay, nhưng lỗ hổng bị kẻ tấn công khai thác xảy ra trong hợp đồng thông minh mới được tạo, không phải trong hợp đồng thông minh tùy thuộc vào kiểm toán an ninh. Mã liên quan đến cuộc tấn công bằng lỗ hổng này tồn tại trong swapExactJarForJar trong bộ điều khiển-v4.sol, không có trong bộ điều khiển-v3.sol đã được kiểm tra trước đó và hợp đồng thông minh không chứa swapExactJarForJar.
Về vấn đề này, người có liên quan phụ trách PeckShield cho biết: "Sau khi một số dự án DeFi thực hiện kiểm tra bảo mật hợp đồng thông minh đầu tiên, họ có thể bỏ qua kiểm tra các hợp đồng thông minh mới được thêm vào để nhanh chóng khởi chạy mạng chính. DeFi phải đảm bảo rằng mã được kiểm tra và nghiên cứu kỹ lưỡng trước khi đưa lên mạng để ngăn ngừa các rủi ro khác nhau có thể xảy ra.”
