Lỗ hổng của cầu nối chuỗi chéo

Với sự phát triển của blockchain và công nghệ on-chain, nhu cầu cho các dự án multi-chain và hoạt động kinh doanh của cầu nối chuỗi chéo tăng dần lên. Ở đâu có kinh doanh, ở đó sẽ có vấn đề về an ninh. Trong khi các cầu nối xuyên chuỗi mang lại sự thuận tiện cho người dùng, bọn tin tặc cũng lợi dụng điều đó nên sau vụ hack Poly, các vấn đề về bảo mật cầu nối cũng xuất hiện.

Cầu nối chuỗi chéo là gì? (cross-chain bridge)

Một cầu nối blockchain hay còn gọi là cầu nối xuyên chuỗi, liên kết 2 blockchain cho phép người dùng chuyển crypto từ blockchain này sang blockchain khác.
Cầu nối xuyên chuỗi cho phép các hoạt động giao dịch token hợp đồng thông minh và trao đổi dữ liệu cũng như các phản hồi và hướng dẫn khác giữa hai nền tảng blockchain độc lập.

Phương thức hoạt động:

  • Người dùng A chuyển tiền tới địa chỉ trên chain gốc và trả phí cầu nối.
  • Tài sản của người A sẽ bị lock lại bởi một validator trong một smart contract hoặc dịch vụ custody đáng tin.
  • Chuyển một lượng tài sản tương đương vào ví mục tiêu của người A trên blockchain được yêu cầu.

Các lỗ hổng đã xảy ra trong cầu xuyên chuỗi

漏洞

Phân tích các lỗ hổng phổ biến

Sự kiện tấn công ChainSwap:

Vào tháng 7 năm 2021, dự án cầu nối tài sản xuyên chuỗi ChainSwap đã bị tấn công. Hơn hai chục dự án trên cầu nối xuyên chuỗi bị tấn công, thiệt hại gần 8 triệu USD và khiến hơn mười dự án giảm mạnh tới 99%.

Cuộc tấn công này chủ yếu là do giao thức không kiểm tra nghiêm ngặt tính hợp lệ của chữ ký để những kẻ tấn công có thể sử dụng chữ ký tự tạo để ký giao dịch.

Factory contract

漏洞

Chức năng chính của phương thức nhận trong hình trên là chuyển tiền sang blockchain khác vào đúng ví và blockchain được yêu cầu và được xác minh bằng 1 chữ ký.

Theo logic của phương thức nhận và ecrecover, phương pháp _decreaseAuthQuota không kiểm tra gắt gao chứ ký và bọn tấn công có thể dễ dàng dùng chữ ký giả và thành công kí giao dịch chuyển tiền.

Sự kiện tấn công Poly Network

Vào tháng 8/2021, giao thức tương tác chuỗi chéo Poly Network bất ngờ bị tin tặc tấn công. O3 Swap sử dụng giao thức này bị lỗ nặng. Tài sản trên ba mạng Ethereum, Binance Smart Chain và Polygon gần như đã bị cướp. Trong vòng 1 giờ, 250 triệu, 270 triệu và 85 triệu đô la Mỹ tiền điện tử đã bị cướp và tổng thiệt hại lên tới 610 triệu đô la Mỹ.

Nhóm hacker lợi dụng lổ hổng để thay thế public key của validator chuỗi,  nghĩa là validator trung gian của chain đã bị thay thế và kiếm soát bởi validator của chúng.

Public key của validator chuỗi chuyển tiếp tồn tại trong hợp đồng EthCrossChainData;

Chủ sở hữu hợp đồng EthCrossChainData là hợp đồng EthCrossChainManager ;

Phương thức putCurEpochConPubKeyBytes của hợp đồng EthCrossChainData có thể sửa đổi vai trò validator của chain.

Hợp đồng EthCrossChainManager:

Trong hình trên, phương thức _executeCrossChainTx không áp đặt các hạn chế nghiêm ngặt đối với các tham số đến, điều này khiến kẻ tấn công truyền vào toContract và các tham số do hacker kiểm soát. Do mối quan hệ nội bộ của giao thức, kẻ tấn công gửi ký hiệu giống như phương thức putCurEpochConPubKeyBytes và sửa đổi trực tiếp của validator public key để kiểm soát sử dụng trình xác minh để ký chuyển quỹ độc hại nhằm thu được số tiền lớn.

Sự kiện tấn công Multichain (AnySwap)

T1/2022, Multichain thông báo có lỗ hổng bảo mật trong cầu nối cross-chain và một số token có nguy cơ bị tấn công, đồng thời kêu gọi người dùng ủy quyền càng sớm càng tốt.

Lý do cốt lõi của sự kiện: contract token của protocol không được triển khai phương thức phương thức cấp phép, nhưng có một chức năng dự phòng, nên contract chạy bình thường.

Hợp đồng AnyswapV4Router bên trái, hợp đồng WETH9 bên phải:

漏洞

Sự kiện tấn công Qubit Bridge

Vào tháng 1 năm 2022, cầu nối xuyên chuỗi Ethereum-Binance của Qubit Finance đã bị tấn công, mất hơn 80 triệu đô la.

Vấn đề cốt lõi: Khi địa chỉ quỹ trong phương thức gửi tiền là địa chỉ (0), lỗi safeTransferFrom không xảy ra, dẫn đến việc thực hiện bình thường chức năng gửi tiền.

Hợp đồng QBridge:

Trong hình trên, khi gọi IQBridgeHandler (handler).deposit trong phương thức này, khi resourceID mapping tokenAddress sẽ được user chuyển vào địa chỉ 0, kết quả của tokenAddress.safeTransferFrom (người gửi tiền, địa chỉ, số tiền); vẫn chuyển tiền bình thường mà giao thức không hề bị ảnh hưởng. 

Phân tích vụ tấn công Meter Bridge

Vào tháng 2 năm 2022, giao thức chuỗi chéo Meter.io đã bị tấn công và hợp đồng không ngăn cản được sự tương tác trực tiếp của ERC20 với khí gas gốc, dẫn đến thiệt hại khoảng 4,3 triệu đô la.

Vấn đề cốt lõi: phương thức gửi tiền không vertify tình trạng gửi tiền của WBNB khi thực hiện giao dịch điều này đã giúp kẻ tấn công không phải gửi tiền nhưng vẫn nhận được tiền bình thường.

Hợp đồng cầu nối:

Trong hình trên cả hai phương thức gửi tiền thông thường và depositETH đều gửi tiền được nhưng khi gửi bằng phương thức thông thường thì không cần phải vertify đó có phải là token gốc không? Kẻ tấn công đã lợi dụng điều này và thu về một lượng lớn tiền.

Phân tích cuộc tấn công Wormhole 

Vào T2/2022, cầu nối quan trọng (Wormhole) của hai blockchain chính Ethereum và Solana đã bị tấn công, thiệt hại hơn 320 triệu đô la Mỹ.

Lý do cốt lõi của lỗ hổng bảo mật: Tính hợp lệ của hướng dẫn không được xác minh trong phương thức load_instruction_at bởi verify_signatures, cho phép kẻ tấn công giả mạo và sử dụng chữ ký xác minh để lấy tiền.

Giao diện hợp đồng verify_signature.rs

Phân tích cuộc tấn công của Li Finance

Vào tháng 3/2022, Li.Finance, một giao thức chuỗi chéo phân tán trên Ethereum, đã bị tấn công. Kẻ tấn công đã thực hiện 37 call và thu được khoảng 600.000 đô la (204 ETH) thuộc nhiều ví.

Vấn đề cốt lõi của cuộc tấn công này là dữ liệu bên ngoài đến không bị hạn chế nghiêm ngặt, dẫn đến việc kẻ tấn công vượt qua và chiếm quyền kiểm soát.

Hợp đồng CBridgeFacet

Phân tích cuộc tấn công mạng Ronin

Vào tháng 3/2022, nút xác thực Axie Infinity sidechain Ronin và nút xác thực Axie DAO đã bị tấn công, dẫn đến 173.600 ETH và 25,5 triệu USDC bắc cầu từ Ronin trong hai giao dịch.

Lý do:
Chuỗi Sky Mavis ’Ronin hiện bao gồm 9 validator và để thực hiện giao dịch cần có chữ kí của 5 validator. Những kẻ tấn công đã kiểm soát bốn validator của Sky Mavis ’Ronin và validator của bên thứ ba do Axie DAO điều hành.

Tóm tắt và đề xuất

Số lượng các cuộc tấn công xuyên cầu ngày càng tăng lên tỉ lệ thuận theo số tiền bị đánh cắp. Tin tặc đã nhắm mục tiêu đến những miếng mồi béo bở là cầu nói cross-chain. Từ bảng tóm tắt, các cuộc tấn công chủ yếu xảy ra trước chuỗi chéo và tại chữ ký, nhìn chung là sơ hở của hợp đồng, và cũng có những vụ trộm do sự bất cẩn chính dự án gây ra. Vì vậy lời khuyên sau những sự kiện trên:

  • Hoàn thành kiểm toán bảo mật trên các hợp đồng trước khi dự án đi vào hoạt động
  • Giao diện hợp đồng cần phải kiểm tra chặt chẽ khả năng thích ứng của nó
  • Khi phiên bản được cập nhật, các giao diện liên quan và bảo mật chữ ký cần được đánh giá lại.
  • Cần phải giám sát chặt chẽ những validator ký cross-chain để đảm bảo rằng chữ ký không bị kiểm soát bởi những kẻ tấn công.

Có thể bạn quan tâm

Đọc nhiều nhất