Tiêu đề gốc: " Hơn 10 triệu USD bị hacker “nhắm tới” như thế nào? 》
Nguồn gốc: Beosin
Vào ngày 13 tháng 4 năm 2023, theo nền tảng nhận thức tình huống Beosin-Eagle Eye, hợp đồng yusdt của Yearn Finance đã hứng chịu một cuộc tấn công flash loan từ tin tặc và tin tặc đã kiếm được lợi nhuận khổng lồ 10 triệu USD.
https://eagleeye.beosin.com/RiskTrxDetail/0xd55e43c1602b28d4fd4667ee445d570c8f298f5401cf04e62ec329759ecda95d
Về sự việc này, đội ngũ bảo mật Beosin đã chia sẻ với các bạn một phân tích ngắn gọn dưới dạng flash report trong ngày. Bây giờ chúng tôi sẽ chia sẻ bài viết dài như sau:

0xd55e43c1602b28d4fd4667ee445d570c8f298f5401cf04e62ec329759ecda95d
0x8db0ef33024c47200d47d8e97b0fcf c4 b51de1820dfb4e911f0e3fb0a4053138
0xee6ac7e16ec8cb0a70e6bae058597b11ec2c764601b4cb024dec28d766fe88b2
0x5bac20beef31d0eccb369a33514831 9cdfe0
0x16Af29b7eFbf019ef30aae9023A5140c012374A5
0x8102ae88c617deb2a5471cac90418da4ccd0579e
Sau đây là như sau
0xd55e43c1602b28d4fd4667ee445d570c8f298f5401cf04e62ec329759ecda95d được lấy làm ví dụ để phân tích.
1. Kẻ tấn công lần đầu cho vay 5 triệu Maker: Dai Stablecoin, 5 triệu USD và 2 triệu Tether: USDT Stablecoin thông qua khoản vay nhanh làm tiền gốc cho cuộc tấn công.

2. Kẻ tấn công gọi hàm hoàn trả của hợp đồng aave pool để hoàn trả Khoản nợ của người khác, bước này là để giảm thu nhập thế chấp của nhóm aave, từ đó hạ thấp mức độ ưu tiên của nhóm aave trong hợp đồng Token Yearn:yUSDT (hợp đồng Token Yearn:yUSDT sẽ xác định nhóm nào sẽ đầu tư tiền vào dựa trên thu nhập).

3 Sau đó, kẻ tấn công gọi hàm gửi tiền của năm: yUSDT Token hợp đồng cầm cố 900.000 Tether: Đã có được USDT Stablecoin. Chức năng này sẽ đúc số lượng yUSDT có liên quan cho người gọi dựa trên số tiền cầm cố. Phương pháp tính toán có liên quan đến số dư của các mã thông báo khác nhau trong nhóm, như được hiển thị bên dưới. thời gian đó, 820.000 yUSDT đã được đúc cho kẻ tấn công.


4. Tại thời điểm này, có 900.000 Tether: USDT Stablecoin và 130.000 Aave: aUSDT Token V1 trong hợp đồng

5. Tiếp theo, kẻ tấn công đã sử dụng 150.000 USD để đổi 150.000 bZx USDC iToken và gửi nó đến khao khát: Hợp đồng yUSDT Token. Lúc này, kẻ tấn công có 1,18 triệu trong hợp đồng. 90/103 phần tiền, có nghĩa là anh ta có thể rút 1,03 triệu tiền.

6 Sau đó, kẻ tấn công gọi chức năng rút tiền của Yearn: yUSDT Token. Rút số tiền đã cam kết Tại thời điểm này, hợp đồng chỉ chứa 900.000 Tether: USDT Stablecoin đã được kẻ tấn công cam kết trước đó, 130.000 Aave ban đầu: aUSDT Token V1 và 150.000 bZx USDC iToken do kẻ tấn công chuyển. trong một nhóm Nếu không đủ, mã thông báo từ các nhóm tiếp theo sẽ được trích xuất theo thứ tự. Lúc này, kẻ tấn công sẽ rút toàn bộ 900.000 Tether: USDT Stablecoin và 130.000 Aave: aUSDT Token V1. Sau hoạt động này, chỉ còn 150.000 bZx USDC. iToken trong hợp đồng.

7 Sau đó, kẻ tấn công gọi chức năng tái cân bằng của khao khát: hợp đồng Token yUSDT, trong đó sẽ Rút token từ nhóm hiện tại và cam kết chúng vào nhóm khác có lợi nhuận cao hơn Do hoạt động ở bước 2, hợp đồng sẽ trích USDT và USDC và thêm chúng vào nhóm có lợi nhuận cao hơn, nhưng hợp đồng hiện tại chỉ có bZx. USDC iToken chỉ có thể rút USDC. Sau khi rút, số tiền này sẽ được tái đầu tư vào các nhóm USDT khác. Tại thời điểm này, khoản tái đầu tư sẽ bị bỏ qua.

8. Kẻ tấn công chuyển 1 đơn vị Tether vào pool: USDT Stablecoin , và gọi chức năng gửi tiền của hợp đồng Yearn: yUSDT Token một lần nữa để cam kết 10.000 Tether: USDT Stablecoin do hoạt động ở bước 7, hợp đồng đã rút toàn bộ số tiền trong nhóm và không thể thêm vào nhóm mới. khiến biến nhóm được tính là 1 mà kẻ tấn công nhập vào và nhóm làm ước số sẽ tính một giá trị rất lớn, truyền 1,25*10^15 yUSDT cho kẻ tấn công.

9 Cuối cùng, kẻ tấn công đã sử dụng yUSDT để trao đổi tất cả các đồng tiền ổn định khác và trả lại khoản vay flash.
Cuộc tấn công này chủ yếu khai thác lỗi cấu hình hợp đồng yUSDT Token khi tái cân bằng được chọn lại. trong nhóm, chỉ USDT (mã thông báo là USDT) được sử dụng làm số tiền bổ sung và không thể thêm USDC vào nhóm. Điều này khiến kẻ tấn công sử dụng USDC để "tiêu thụ" tất cả USDT trong hợp đồng và số dư trong nhóm trở thành 0. Do đó, một số lượng lớn token đã được đúc.


Tính đến thời điểm công bố, nền tảng phân tích chống rửa tiền Beosin KYT phát hiện ra rằng một phần số tiền bị đánh cắp trị giá 11,5 triệu USD đã đã được chuyển sang tiền Tornado và phần còn lại vẫn được lưu trữ trong địa chỉ Kẻ tấn công.
Để đối phó với sự cố này, nhóm bảo mật Beosin khuyến nghị: thực hiện nghiêm ngặt ban đầu kiểm tra cấu hình. Đồng thời, nên chọn công ty kiểm toán bảo mật chuyên nghiệp để tiến hành kiểm tra bảo mật toàn diện trước khi dự án lên mạng nhằm tránh những rủi ro về bảo mật.
Liên kết gốc blockquote>
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia