Giải thích chi tiết về dự án Qubit QBridge bị tấn công: Mất 80 triệu USD

avatar
慢雾科技
2năm trước
Bài viết có khoảng 1228từ,đọc toàn bộ bài viết mất khoảng 2 phút
Nhóm bảo mật SlowMist đã phân tích cuộc tấn công vào QBridge của dự án Qubit.

Theo thông tin tình báo của Slow Mist District, vào ngày 28 tháng 1 năm 2022, QBridge của dự án Qubit đã bị tấn công, gây thiệt hại khoảng 80 triệu đô la Mỹ. Nhóm bảo mật SlowMist đã tiến hành phân tích và chia sẻ nó với bạn dưới dạng phân tích ngắn gọn.

Giải thích chi tiết về dự án Qubit QBridge bị tấn công: Mất 80 triệu USD

phân tích ngắn gọn

1. Kẻ tấn công tiến hành hoạt động gửi tiền thông qua hợp đồng QBridge trên ETH và chuyển dữ liệu bao gồm DestinationDomainID của chuỗi mục tiêu sẽ được vượt qua, ID tài sản của tài sản chuỗi chéo sẽ được vượt qua, số lượng chéo quỹ chuỗi và địa chỉ nhận khi gửi tiền.

2. Kẻ tấn công chỉ định rằng ID tài nguyên đến là giá trị được yêu cầu bởi Mã thông báo ETH chéo, nhưng kẻ tấn công gọi chức năng ký gửi của QBridge thay vì chức năng ký gửiETH, vì vậy việc kiểm tra số lượng quỹ liên chuỗi và msg.value là đầu tiên bỏ qua. Chức năng gửi tiền sẽ lấy địa chỉ trình xử lý khỏi ánh xạ theo ID tài nguyên để nạp tiền.Vì kẻ tấn công chuyển giá trị theo yêu cầu của Mã thông báo chéo ETH thực, chức năng gửi tiền của hợp đồng xử lý có thể được gọi thành công.

3. Chức năng nạp tiền của hợp đồng xử lý sẽ kiểm tra xem Token được nạp ra theo resourceID có nằm trong danh sách trắng hay không.Vì resourceID được kẻ tấn công chuyển vào có tương ứng với ETH nên Token được nạp ra trong ánh xạ là 0 và nó sẽ được coi là đang nạp ETH và đã vượt qua kiểm tra danh sách trắng. Tuy nhiên, chức năng gửi tiền đã không kiểm tra địa chỉ Mã thông báo để được nạp lại (việc nạp lại ETH phải được thực hiện xuyên chuỗi thông qua chức năng gửiETH), sau đó gọi trực tiếp chức năng transferFrom của Mã thông báo để được nạp lại thông qua safeTransferFrom.

4. Do địa chỉ Mã thông báo được nạp lại là địa chỉ 0 và kết quả thực hiện của lệnh gọi đến địa chỉ EOA không có kích thước mã sẽ là đúng và giá trị trả về sẽ trống, do đó, thao tác chuyển thông qua transferFrom vượt qua kiểm tra của safeTransferFrom, và cuối cùng kích hoạt sự kiện nạp tiền Gửi tiền xuyên chuỗi.

5. Vì ID tài nguyên đến là giá trị cần thiết cho cross-ETH, nên sự kiện Nạp tiền được kích hoạt giống với sự kiện nạp lại ETH thực, điều này khiến QBridge nghĩ rằng kẻ tấn công đã thực hiện cross-chain ETH, vì vậy nó đã được kích hoạt chuỗi BSC cho kẻ tấn công Một lượng lớn mã thông báo qXETH. Kẻ tấn công đã sử dụng thông tin xác thực qXETH này để rút cạn nhóm cho vay của Qubit.

Phân tích MistTrack

tóm tắt

Giải thích chi tiết về dự án Qubit QBridge bị tấn công: Mất 80 triệu USD

tóm tắt

Nguyên nhân chính của cuộc tấn công này là do khi nạp riêng Token thông thường và Token gốc, khi chuyển Token trong danh sách trắng, địa chỉ không được kiểm tra lại xem có bằng 0 hay không, dẫn đến việc nạp tiền lẽ ra phải được thực hiện thông qua chức năng nạp lại riêng.Tuy nhiên, hoạt động có thể thông suốt thông qua logic nạp lại Mã thông báo thông thường. Nhóm bảo mật SlowMist gợi ý rằng sau khi kiểm tra danh sách trắng của mã thông báo đã nạp, vẫn cần kiểm tra xem mã thông báo đã nạp có phải là mã thông báo gốc hay không.

liên kết gốc

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

https://bscscan.com/tx/0x33628dcc2ca6cd89a96d241bdf17cdc8785cf4322dcaf2c79766c990579aea02

liên kết gốc

Bài viết gốc, tác giả:慢雾科技。Tuyển dụng: Nhân viên kinh doanh phần mềm theo dự án report@odaily.email;Vi phạm quy định của pháp luật.

Odaily nhắc nhở, mời đông đảo độc giả xây dựng quan niệm đúng đắn về tiền tệ và khái niệm đầu tư, nhìn nhận hợp lý về blockchain, nâng cao nhận thức về rủi ro; Đối với manh mối phạm tội phát hiện, có thể tích cực tố cáo phản ánh với cơ quan hữu quan.

Đọc nhiều nhất
Lựa chọn của người biên tập