Tin nóng ⇢

Phân tích sự kiện tấn công Beanstalk Farm

Do thiếu cơ chế cho chống flashloan trong giao thức Beanstalk, kẻ tấn công có thể mượn nhiều token được hỗ trợ bởi giao thức để bỏ phiếu cho các đề xuất độc hại.

Vào ngày 17/04/2022, nhóm kiểm toán CertiK đã phát hiện ra rằng giao thức Beanstalk đã bị tấn công lỗ hỏng, dẫn đến thiệt hại 24.830 ETH và 36.398.226 BEAN. Hacker tạo ra một đề xuất có hại cho giao thức, nhận đủ phiếu bầu thông qua flashloan và thực hiện đề xuất đó, do đó đánh cắp tài sản từ giao thức. Hiện tại, hacker đã chuyển tất cả ETH (khoảng 470 triệu RMB) sang Tornado Cash.

Các bước tấn công

Kẻ tấn công đã gửi một số token BEAN vào Beanstalk để tạo ra một đề xuất độc hại "InitBip18". Khi đề xuất có hiệu lực, nó sẽ chuyển tài sản trong giao thức cho kẻ tấn công.

Quy trình hack như sau:

(1) Kẻ tấn công vay flashloan 350 triệu Dai, 500 triệu USDC, 150 triệu USDT, 32 triệu Bean và 11,6 triệu LUSD.  

(2) Các tài sản vay flashloan được chuyển đổi thành 795.425.740 BEAN3Crv-f và 58.924.887 BEANLUSD-f.  

(3) Kẻ tấn công gửi tất cả tài sản thu được vào Diamond contract và bỏ phiếu cho đề xuất BIP18 độc hại.  

(4) Hàm khẩn cấp Commit() được gọi ngay lập tức để thực hiện đề xuất BIP18 độc hại.

(5) Sau bước 3 và 4, kẻ tấn công có thể đánh cắp 36.084.584 BEAN, 0,54 UNIV2 (BEAN-WETH), 874.663.982 BEAN3Crv và 60.562.844 BEANLUSD-f trong hợp đồng.

(6) Kẻ tấn công đã sử dụng tài sản bị đánh cắp ở bước 5 để trả nợ flashloan và nhận được 24.830 WETH và 36.398.226 BEAN còn lại làm lợi nhuận.

Phân tích lỗ hổng

Nguyên nhân gốc rễ của lỗ hổng:

BEAN3Crv-f và BEANLUSD-f dùng để bỏ phiếu trong hệ thống Silo có thể nhận được thông qua flashloan. Tuy nhiên, do thiếu cơ chế cho chống flashloan trong giao thức Beanstalk, kẻ tấn công có thể mượn nhiều token được hỗ trợ bởi giao thức để bỏ phiếu cho các đề xuất độc hại.

Làm thế nào kẻ tấn công có thể bỏ qua xác minh:

Để thực hiện một đề xuất thông qua "EmergencyCommit() ", kẻ tấn công cần phải bỏ qua các xác nhận sau đây.

  • Xác minh 1: BIP được đề xuất phải qua 24 giờ.
  • Xác minh 2: Đảm bảo rằng tỷ lệ phiếu bầu cho một BIP chiếm tỷ lệ hơn 2/3.

Đề xuất BIP18 được tạo ra một ngày trước đó nên việc xác minh 1 có thể bị bỏ qua. Thông qua flashloan, đề xuất BIP18 đã nhận được hơn 78% số phiếu bầu, vượt quá 67%, vì vậy việc xác minh 2 đã bị bỏ qua.

Số tiền hack đã đi đâu?

Tại thời điểm bài này được viết, địa chỉ ví được dùng để khai thác lỗ hổng bảo mật trên Beanstalk DAO có số dư Ethereum là khoảng 19,955 ETH tương đương khoảng 61 triệu đô. Hơn nữa số Ether này có vẻ đang được hacker chuyển lên giao thức trộn tiền Tornado Cash, mỗi lần gửi 100 ETH.

Các chi tiết khác

Giao dịch lỗ hổng

  • Đề xuất BIP18:

https://etherscan.io/tx/0x68cdec0ac76454c3b0f7af0b8a3895db00adf6daaf3b50a99716858c4fa54c6f

  • Thực thi BIP18:

https://etherscan.io/tx/0xcd314668aaa9bbfebaf1a0bd2b6553d01dd58899c508d4729fa7311dc5d33ad7

Địa chỉ hợp đồng

  • Hợp đồng nạn nhân:

https://etherscan.io/address/0xc1e088fc1323b20bcbee9bd1b9fc9546db5624c5#code

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

https://etherscan.io/address/0x1c5dcdd006ea78a7e4783f9e6021c32935a10fb4

  • Đề xuất độc hại:

https://etherscan.io/address/0xe5ecf73603d98a0128f05ed30506ac7a663dbb69

  • Chiến dịch tài trợ ban đầu của kẻ tấn công:

https://arbiscan.io/address/0x71a715ff99a27cc19a6982ae5ab0f5b070edfd35

https://debank.com/profile/0x1c5dcdd006ea78a7e4783f9e6021c32935a10fb4/history

Tóm lại

Thông qua Audit, chúng ta có thể thấy rằng flashloan có thể được sử dụng để thao túng phiếu bầu gây ảnh hưởng nghiêm trọng đến quản trị giao thức. Sau vụ tấn công, tài khoản cảnh báo Twitter của CertiK và hệ thống cảnh báo chính thức đã công bố tin tức càng sớm càng tốt. Đồng thời, CertiK sẽ tiếp tục công bố thông tin liên quan đến cảnh báo dự án (tấn công, gian lận, bỏ trốn, v.v.) trên tài khoản công cộng chính thức trong tương lai.

 

Có thể bạn quan tâm

Mục lục