Phân tích các sự kiện tấn công SafeDollar
成都链安
2021-06-29 02:26
本文约2243字,阅读全文需要约9分钟
Hãy suy nghĩ kỹ về loại tiền thế chấp mà bạn sẽ thêm vào nhóm tài sản thế chấp.

1. Tổng quan sự kiện

1. Tổng quan sự kiện

Vào ngày 28 tháng 6, theo giờ Bắc Kinh, theo dõi dư luận của Nền tảng nhận thức tình huống bảo mật Lianbian-Blockchain (Beosin-Eagle Eye) cho thấy dự án stablecoin thuật toán sinh thái Polygon SafeDollar đã bị hack. Sau vụ tấn công, giá của stablecoin (SDO) do dự án SafeDollar phát hành đã giảm từ 1,07 đô la xuống 0 ngay lập tức.

Trước ý nghĩa biểu tượng của cuộc tấn công này, Đội An ninh Liên Nam Thành Đô ngay lập tức can thiệp vào việc phân tích. Sau khi nhiều dự án trên chuỗi BSC (Binance Smart Chain) thường xuyên bị hack vào đầu tháng 5, hệ sinh thái Polygon cũng bắt đầu trở thành mục tiêu tấn công của tin tặc vào cuối tháng 6. “Chiếc hộp Pandora” đã lặng lẽ mở ra? Lợi dụng sự cố này, Chengdu Lianan đã nhắc nhở dự án sinh thái Polygon tăng cường công tác cảnh báo và phòng ngừa an ninh bằng cách phân loại quá trình tấn công và phương thức tấn công.

2. Phân tích sự kiện

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

Địa chỉ kẻ tấn công:

0xFeDC2487Ed4BB740A268c565daCdD39C17Be7eBd

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

0xC44e71deBf89D414a262edadc44797eBA093c6B0

0x358483BAB9A813e3aB840ed8e0a167E20f54E9FB

Giao dịch tấn công:

0xd78ff27f33576ff7ece3a58943f3e74caaa9321bcc3238e4cf014eca2e89ce3f

0x4dda5f3338457dfb6648e8b959e70ca1513e434299eebfebeb9dc862db3722f3

0x1360315a16aec1c7403d369bd139f0fd55a99578d117cb5637b234a0a0ee5c14

Giao dịch tấn công:

0xd78ff27f33576ff7ece3a58943f3e74caaa9321bcc3238e4cf014eca2e89ce3f

0x1360315a16aec1c7403d369bd139f0fd55a99578d117cb5637b234a0a0ee5c14

Phân tích sau đây dựa trên hai giao dịch sau:

Trước tiên, kẻ tấn công sử dụng nhóm WMATIC và WETH của PolyDex để cho vay PLX, như thể hiện trong hình bên dưới:

Tiếp theo, kẻ tấn công liên tục thực hiện rút tiền thế chấp bằng cách tấn công hợp đồng, chủ yếu để giảm số lượng token thế chấp trong nhóm thế chấp SDO trong hợp đồng SdoRewardPool.

Khi hợp đồng mã thông báo PLX chuyển mã thông báo, nếu địa chỉ gửi không có trong danh sách _isExcludedFromFee và địa chỉ đến không có trong danh sách _isExcludedToFee, quỹ phần thưởng sẽ được tính cho mã thông báo được chuyển và 0,05% mã thông báo được chuyển sẽ bị hủy.

Trong hợp đồng SdoRewardPool, số tiền được ghi là số tiền được chuyển bởi người gọi, không trừ tổn thất trong quá trình chuyển. Khi thao tác trích xuất được thực hiện, số tiền được trích xuất là số tiền được ghi lại, vượt quá số tiền thực tế mà người dùng đã thế chấp để hợp đồng này.Do đó, nó sẽ gây ra sự sụt giảm bất thường đối với các mã thông báo thế chấp trong nhóm thế chấp.

Cuối cùng, hãy sử dụng mã thông báo SDO thu được để trao đổi tất cả USDC và USDT trong nhóm trao đổi SDO-USDC và SDO-USDT.

3. Đánh giá sự kiện

3. Đánh giá sự kiện

Trên thực tế, cuộc tấn công này không phức tạp, nhưng nó đáng được chú ý. Đầu tiên, các mã thông báo không chuẩn đã được thêm vào khi thêm nhóm thế chấp và hàm balanceOf được sử dụng để lấy số lượng mã thông báo thế chấp khi tính toán phần thưởng, dẫn đến sự xuất hiện của cuộc tấn công này.

Từ góc độ kiểm toán bảo mật, bên dự án, với tư cách là quản trị viên của việc thêm nhóm thế chấp, phải suy nghĩ kỹ về loại tiền thế chấp trong nhóm thế chấp sẽ được thêm vào. Mã thông báo lạm phát và giảm phát và mã thông báo có số lượng chuyển khác với số lượng đến thực tế không được khuyến nghị làm mã thông báo thế chấp trong nhóm thế chấp; nếu các loại mã thông báo này phải được thêm làm mã thông báo phần thưởng do nhu cầu kinh doanh, chúng phải được tách ra khỏi tiêu chuẩn khác mã thông báo đối phó với. Đồng thời, nên sử dụng một biến riêng trong nhóm thế chấp để ghi lại số tiền thế chấp, sau đó khi tính toán phần thưởng, hãy sử dụng biến này để lấy số lượng mã thông báo thế chấp thay vì sử dụng hàm balanceOf.

成都链安
作者文库