

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.
