Gần đây, giao thức tương tác chuỗi chéo Poly Network đã bị tấn công bởi hacker, gây ra sự quan tâm rộng rãi. Đội ngũ an ninh sau khi phân tích cho rằng, cuộc tấn công này không phải do rò rỉ khóa riêng của keeper gây ra, mà là kẻ tấn công đã sửa đổi keeper của hợp đồng EthCrossChainData thành địa chỉ chỉ định thông qua dữ liệu được cấu trúc cẩn thận.
Chi tiết tấn công
Cốt lõi của cuộc tấn công nằm ở hàm verifyHeaderAndExecuteTx của hợp đồng EthCrossChainManager có thể thực hiện giao dịch xuyên chuỗi thông qua hàm _executeCrossChainTx.
Chủ sở hữu của hợp đồng EthCrossChainData là hợp đồng EthCrossChainManager, do đó hợp đồng sau có thể gọi hàm putCurEpochConPubKeyBytes của hợp đồng trước để thay đổi keeper.
Kẻ tấn công đã truyền dữ liệu đặc biệt thông qua hàm verifyHeaderAndExecuteTx, khiến hàm _executeCrossChainTx thực hiện cuộc gọi hàm putCurEpochConPubKeyBytes của hợp đồng EthCrossChainData, từ đó thay đổi keeper thành địa chỉ mà kẻ tấn công chỉ định.
Sau khi thay thế keeper, kẻ tấn công có thể tùy ý tạo giao dịch để rút bất kỳ số tiền nào từ hợp đồng.
Quy trình tấn công
Kẻ tấn công đầu tiên gọi hàm putCurEpochConPubKeyBytes thông qua hàm verifyHeaderAndExecuteTx của hợp đồng EthCrossChainManager để thay đổi keeper.
Sau đó, kẻ tấn công đã thực hiện nhiều giao dịch tấn công, rút tiền từ hợp đồng.
Do keeper bị chỉnh sửa, dẫn đến giao dịch bình thường của người dùng khác bị quay ngược.
Các phương pháp tấn công tương tự cũng được thực hiện trên mạng Ethereum.
Kết luận
Bản chất của cuộc tấn công lần này nằm ở việc hợp đồng EthCrossChainData có thể bị hợp đồng EthCrossChainManager sửa đổi keeper, trong khi hàm verifyHeaderAndExecuteTx của hợp đồng sau đó có thể thực hiện dữ liệu do người dùng truyền vào. Kẻ tấn công đã lợi dụng lỗ hổng này để sửa đổi keeper bằng dữ liệu được cấu trúc tinh vi, thay vì việc rò rỉ khóa riêng của keeper như đã được đồn đại trước đó.
Sự kiện này một lần nữa làm nổi bật tầm quan trọng của tính bảo mật của giao thức cross-chain, nhắc nhở các nhà phát triển và người dùng cần phải thiết kế và sử dụng các chức năng liên quan một cách cẩn thận hơn. Đồng thời, nó cũng đã gióng lên hồi chuông cảnh báo cho toàn ngành, kêu gọi tăng cường việc kiểm toán và phòng ngừa các lỗ hổng của hợp đồng thông minh.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
10 thích
Phần thưởng
10
5
Đăng lại
Chia sẻ
Bình luận
0/400
NFTBlackHole
· 08-05 02:09
Lại là một ví dụ điển hình về việc lỗ hổng bị khai thác.
Phân tích cuộc tấn công của hacker Poly Network: Lỗ hổng hợp đồng dẫn đến keeper bị thay đổi
Phân tích sự kiện Poly Network bị Hacker tấn công
Gần đây, giao thức tương tác chuỗi chéo Poly Network đã bị tấn công bởi hacker, gây ra sự quan tâm rộng rãi. Đội ngũ an ninh sau khi phân tích cho rằng, cuộc tấn công này không phải do rò rỉ khóa riêng của keeper gây ra, mà là kẻ tấn công đã sửa đổi keeper của hợp đồng EthCrossChainData thành địa chỉ chỉ định thông qua dữ liệu được cấu trúc cẩn thận.
Chi tiết tấn công
Cốt lõi của cuộc tấn công nằm ở hàm verifyHeaderAndExecuteTx của hợp đồng EthCrossChainManager có thể thực hiện giao dịch xuyên chuỗi thông qua hàm _executeCrossChainTx.
Chủ sở hữu của hợp đồng EthCrossChainData là hợp đồng EthCrossChainManager, do đó hợp đồng sau có thể gọi hàm putCurEpochConPubKeyBytes của hợp đồng trước để thay đổi keeper.
Kẻ tấn công đã truyền dữ liệu đặc biệt thông qua hàm verifyHeaderAndExecuteTx, khiến hàm _executeCrossChainTx thực hiện cuộc gọi hàm putCurEpochConPubKeyBytes của hợp đồng EthCrossChainData, từ đó thay đổi keeper thành địa chỉ mà kẻ tấn công chỉ định.
Sau khi thay thế keeper, kẻ tấn công có thể tùy ý tạo giao dịch để rút bất kỳ số tiền nào từ hợp đồng.
Quy trình tấn công
Kẻ tấn công đầu tiên gọi hàm putCurEpochConPubKeyBytes thông qua hàm verifyHeaderAndExecuteTx của hợp đồng EthCrossChainManager để thay đổi keeper.
Sau đó, kẻ tấn công đã thực hiện nhiều giao dịch tấn công, rút tiền từ hợp đồng.
Do keeper bị chỉnh sửa, dẫn đến giao dịch bình thường của người dùng khác bị quay ngược.
Các phương pháp tấn công tương tự cũng được thực hiện trên mạng Ethereum.
Kết luận
Bản chất của cuộc tấn công lần này nằm ở việc hợp đồng EthCrossChainData có thể bị hợp đồng EthCrossChainManager sửa đổi keeper, trong khi hàm verifyHeaderAndExecuteTx của hợp đồng sau đó có thể thực hiện dữ liệu do người dùng truyền vào. Kẻ tấn công đã lợi dụng lỗ hổng này để sửa đổi keeper bằng dữ liệu được cấu trúc tinh vi, thay vì việc rò rỉ khóa riêng của keeper như đã được đồn đại trước đó.
Sự kiện này một lần nữa làm nổi bật tầm quan trọng của tính bảo mật của giao thức cross-chain, nhắc nhở các nhà phát triển và người dùng cần phải thiết kế và sử dụng các chức năng liên quan một cách cẩn thận hơn. Đồng thời, nó cũng đã gióng lên hồi chuông cảnh báo cho toàn ngành, kêu gọi tăng cường việc kiểm toán và phòng ngừa các lỗ hổng của hợp đồng thông minh.