Gần đây, giao thức tương tác giữa các chuỗi Poly Network đã bị tấn công bởi hacker, gây ra sự chú ý rộng rãi. Theo phân tích của đội ngũ an ninh, cuộc tấn công này không phải do rò rỉ khóa riêng của keeper mà là do kẻ tấn công đã sử dụng dữ liệu được cấu trúc khéo léo để lợi dụng lỗ hổng hợp đồng và sửa đổi địa chỉ keeper của hợp đồng EthCrossChainData.
Nguyên lý tấn công
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. Do chủ sở hữu 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 để thay đổi keeper.
Kẻ tấn công đã lợi dụng hàm verifyHeaderAndExecuteTx để truyền vào dữ liệu được thiết kế cẩn thận, thông qua việc gọi nội bộ hàm _executeCrossChainTx, cuối cùng thực thi hàm putCurEpochConPubKeyBytes của hợp đồng EthCrossChainData, thay đổi vai trò keeper thành địa chỉ do kẻ tấn công chỉ định.
Sau khi hoàn thành việc thay thế vai trò keeper, kẻ tấn công có thể tùy ý tạo ra giao dịch và rút bất kỳ số tiền nào từ hợp đồng.
Quá 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 giao dịch tấn công để rút tiền từ hợp đồng.
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.
Các cuộc tấn công tương tự cũng diễn ra trên mạng Ethereum, với phương pháp tấn công giống nhau.
Kết luận
Nguyên nhân cơ bản của cuộc tấn công lần này là do keeper của hợp đồng EthCrossChainData có thể bị hợp đồng EthCrossChainManager sửa đổi, trong khi đó hàm verifyHeaderAndExecuteTx của hợp đồng sau lại có thể thực thi dữ liệu do người dùng truyền vào. Kẻ tấn công đã khai thác lỗ hổng thiết kế này để cấu thành dữ liệu đặc biệt, sửa đổi địa chỉ keeper của hợp đồng EthCrossChainData, từ đó đạt được mục đích tấn công.
Sự kiện này một lần nữa nhắc nhở chúng ta rằng, khi thiết kế giao thức xuyên chuỗi, cần đặc biệt chú ý đến quản lý quyền và xác thực dữ liệu, nhằm ngăn chặn việc khai thác các lỗ hổng bảo mật tương tự. Đồng thời, nó cũng làm nổi bật tầm quan trọng của việc tiến hành kiểm toán bảo mật định kỳ và các chương trình thưởng cho lỗ hổng, để phát hiện và khắc phục kịp thời các nguy cơ bảo mật tiềm ẩn.
Xem bản gốc
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
24 thích
Phần thưởng
24
5
Chia sẻ
Bình luận
0/400
MetaDreamer
· 07-04 18:08
Một cái bánh bao nữa bị cuốn đi rồi.
Xem bản gốcTrả lời0
CoffeeNFTs
· 07-02 15:50
Hợp đồng thông minh lại nổ rồi? Thời này còn dám lưu coin
Xem bản gốcTrả lời0
ShitcoinConnoisseur
· 07-02 15:48
Một hợp đồng thông minh nữa đã bị tấn công.
Xem bản gốcTrả lời0
LayoffMiner
· 07-02 15:47
Lỗ hổng an ninh lại xuất hiện rồi, đã trốn thoát!
Xem bản gốcTrả lời0
HodlVeteran
· 07-02 15:31
Mỗi năm đều có đồ ngốc bị chơi đùa với mọi người, chúng ta đã quen rồi.
Poly Network bị tấn công bởi Hacker: Lỗ hổng hợp đồng EthCrossChainManager dẫn đến thiệt hại tài chính
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 giữa các chuỗi Poly Network đã bị tấn công bởi hacker, gây ra sự chú ý rộng rãi. Theo phân tích của đội ngũ an ninh, cuộc tấn công này không phải do rò rỉ khóa riêng của keeper mà là do kẻ tấn công đã sử dụng dữ liệu được cấu trúc khéo léo để lợi dụng lỗ hổng hợp đồng và sửa đổi địa chỉ keeper của hợp đồng EthCrossChainData.
Nguyên lý tấn công
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. Do chủ sở hữu 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 để thay đổi keeper.
Kẻ tấn công đã lợi dụng hàm verifyHeaderAndExecuteTx để truyền vào dữ liệu được thiết kế cẩn thận, thông qua việc gọi nội bộ hàm _executeCrossChainTx, cuối cùng thực thi hàm putCurEpochConPubKeyBytes của hợp đồng EthCrossChainData, thay đổi vai trò keeper thành địa chỉ do kẻ tấn công chỉ định.
Sau khi hoàn thành việc thay thế vai trò keeper, kẻ tấn công có thể tùy ý tạo ra giao dịch và rút bất kỳ số tiền nào từ hợp đồng.
Quá 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 giao dịch tấn công để rút tiền từ hợp đồng.
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.
Các cuộc tấn công tương tự cũng diễn ra trên mạng Ethereum, với phương pháp tấn công giống nhau.
Kết luận
Nguyên nhân cơ bản của cuộc tấn công lần này là do keeper của hợp đồng EthCrossChainData có thể bị hợp đồng EthCrossChainManager sửa đổi, trong khi đó hàm verifyHeaderAndExecuteTx của hợp đồng sau lại có thể thực thi dữ liệu do người dùng truyền vào. Kẻ tấn công đã khai thác lỗ hổng thiết kế này để cấu thành dữ liệu đặc biệt, sửa đổi địa chỉ keeper của hợp đồng EthCrossChainData, từ đó đạt được mục đích tấn công.
Sự kiện này một lần nữa nhắc nhở chúng ta rằng, khi thiết kế giao thức xuyên chuỗi, cần đặc biệt chú ý đến quản lý quyền và xác thực dữ liệu, nhằm ngăn chặn việc khai thác các lỗ hổng bảo mật tương tự. Đồng thời, nó cũng làm nổi bật tầm quan trọng của việc tiến hành kiểm toán bảo mật định kỳ và các chương trình thưởng cho lỗ hổng, để phát hiện và khắc phục kịp thời các nguy cơ bảo mật tiềm ẩn.