Gần đây, giao thức tương tác đa chuỗi Poly Network đã bị tấn công bởi hacker, gây ra sự quan tâm rộng rãi trong ngành. Phân tích của đội ngũ an ninh cho thấy 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 địa chỉ keeper của hợp đồng EthCrossChainData thông qua dữ liệu được cấu trúc cẩn thận.
Tấn công lõi
Trọng tâm của cuộc tấn công nằm ở việc hàm verifyHeaderAndExecuteTx của hợp đồng EthCrossChainManager có thể thực hiện giao dịch xuyên chuỗi cụ thể thông qua hàm _executeCrossChainTx. Do owner của hợp đồng EthCrossChainData là hợp đồng EthCrossChainManager, nên hợp đồng sau có thể gọi hàm putCurEpochConPubKeyBytes của hợp đồng trước để sửa đổi keeper của hợp đồng.
Kẻ tấn công đã lợi dụng hàm verifyHeaderAndExecuteTx để truyền vào dữ liệu được xây dựng cẩn thận, khiến hàm _executeCrossChainTx thực hiện gọi hàm putCurEpochConPubKeyBytes của hợp đồng EthCrossChainData, từ đó thay đổi vai trò keeper thành địa chỉ mà kẻ tấn công chỉ định. Sau khi hoàn thành bước này, kẻ tấn công có thể tạo ra 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 trước 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 một loạt các giao dịch tấn công, rút tiền từ hợp đồng.
Sau khi tấn công hoàn thành, do keeper bị sửa đổi, dẫn đến giao dịch bình thường của người dùng khác bị từ chối thực hiện.
Mô hình tấn công này không chỉ xảy ra trên BSC mà còn xuất hiện các hoạt động tương tự trên mạng Ethereum.
Kết luận
Chìa khóa của cuộc tấn công này nằm ở hợp đồng EthCrossChainData, trong đó keeper có thể được hợp đồng EthCrossChainManager sửa đổi, và hàm verifyHeaderAndExecuteTx của hợp đồng này lại có thể thực hiện dữ liệu do người dùng truyền vào thông qua hàm _executeCrossChainTx. Kẻ tấn công đã lợi dụng lỗ hổng thiết kế này để xây dựng dữ liệu cụ thể, từ đó sửa đổi địa chỉ keeper của hợp đồng EthCrossChainData, đạt được mục đích tấn công.
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 an toàn trong các giao thức liên chuỗi, đồng thời nhắc nhở các nhà phát triển cần thận trọng hơn trong việc thiết kế hợp đồng thông minh, đặc biệt là trong các chức năng liên quan đến việc thay đổi quyền hạn của các vai trò quan trọng. Đồng thời, đối với người dùng, khi sử dụng dịch vụ liên chuỗi cũng cần giữ cảnh giác và theo dõi các động thái an toàn liên quan.
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.
15 thích
Phần thưởng
15
4
Chia sẻ
Bình luận
0/400
LiquidatedAgain
· 20giờ trước
Hậu quả của lỗ hổng mã rất nghiêm trọng
Xem bản gốcTrả lời0
MoonBoi42
· 08-01 16:37
Thảm rồi thảm rồi, thế giới tiền điện tử lại xảy ra chuyện.
Poly Network bị tấn công bởi Hacker, lỗ hổng hợp đồng EthCrossChainData đã bị khai thác.
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 đa chuỗi Poly Network đã bị tấn công bởi hacker, gây ra sự quan tâm rộng rãi trong ngành. Phân tích của đội ngũ an ninh cho thấy 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 địa chỉ keeper của hợp đồng EthCrossChainData thông qua dữ liệu được cấu trúc cẩn thận.
Tấn công lõi
Trọng tâm của cuộc tấn công nằm ở việc hàm verifyHeaderAndExecuteTx của hợp đồng EthCrossChainManager có thể thực hiện giao dịch xuyên chuỗi cụ thể thông qua hàm _executeCrossChainTx. Do owner của hợp đồng EthCrossChainData là hợp đồng EthCrossChainManager, nên hợp đồng sau có thể gọi hàm putCurEpochConPubKeyBytes của hợp đồng trước để sửa đổi keeper của hợp đồng.
Kẻ tấn công đã lợi dụng hàm verifyHeaderAndExecuteTx để truyền vào dữ liệu được xây dựng cẩn thận, khiến hàm _executeCrossChainTx thực hiện gọi hàm putCurEpochConPubKeyBytes của hợp đồng EthCrossChainData, từ đó thay đổi vai trò keeper thành địa chỉ mà kẻ tấn công chỉ định. Sau khi hoàn thành bước này, kẻ tấn công có thể tạo ra 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 trước 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 một loạt các giao dịch tấn công, rút tiền từ hợp đồng.
Sau khi tấn công hoàn thành, do keeper bị sửa đổi, dẫn đến giao dịch bình thường của người dùng khác bị từ chối thực hiện.
Mô hình tấn công này không chỉ xảy ra trên BSC mà còn xuất hiện các hoạt động tương tự trên mạng Ethereum.
Kết luận
Chìa khóa của cuộc tấn công này nằm ở hợp đồng EthCrossChainData, trong đó keeper có thể được hợp đồng EthCrossChainManager sửa đổi, và hàm verifyHeaderAndExecuteTx của hợp đồng này lại có thể thực hiện dữ liệu do người dùng truyền vào thông qua hàm _executeCrossChainTx. Kẻ tấn công đã lợi dụng lỗ hổng thiết kế này để xây dựng dữ liệu cụ thể, từ đó sửa đổi địa chỉ keeper của hợp đồng EthCrossChainData, đạt được mục đích tấn công.
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 an toàn trong các giao thức liên chuỗi, đồng thời nhắc nhở các nhà phát triển cần thận trọng hơn trong việc thiết kế hợp đồng thông minh, đặc biệt là trong các chức năng liên quan đến việc thay đổi quyền hạn của các vai trò quan trọng. Đồng thời, đối với người dùng, khi sử dụng dịch vụ liên chuỗi cũng cần giữ cảnh giác và theo dõi các động thái an toàn liên quan.