Gần đây, giao thức tương tác chuỗi chéo Poly Network đã gặp phải một cuộc tấn công của hacker, thu hút sự chú ý rộng rãi trong ngành. Qua phân tích của đội ngũ an ninh, cuộc tấn công lần 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ửa đổi địa chỉ keeper của hợp đồng EthCrossChainData thông qua dữ liệu được xây dựng một cách tinh vi.
Tấn công cốt lõi
Chìa khóa của cuộc tấn công nằm ở hàm verifyHeaderAndExecuteTx trong hợp đồng EthCrossChainManager. Hàm này có thể thực hiện các giao dịch xuyên chuỗi cụ thể thông qua hàm _executeCrossChainTx. Vì chủ sở hữu của hợp đồng EthCrossChainData là hợp đồng EthCrossChainManager, nên hợp đồng sau có khả năng gọi hàm putCurEpochConPubKeyBytes của hợp đồng EthCrossChainData để sửa đổi keeper của hợp đồng.
Kẻ tấn công lợi dụng hàm verifyHeaderAndExecuteTx để truyền dữ liệu đặc chế, khiến hàm _executeCrossChainTx 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 tất bước này, kẻ tấn công có thể xây dựng giao dịch để 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 đã 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 phương pháp tấn công tương tự cũng được sử dụng trên mạng Ethereum, kẻ tấn công cũng đã sửa đổi keeper và thực hiện tấn công.
Kết luận
Lõi của cuộc tấn công này nằm ở việc keeper của hợp đồng EthCrossChainData có thể được sửa đổi bởi hợp đồng EthCrossChainManager, trong khi hàm verifyHeaderAndExecuteTx của hợp đồng EthCrossChainManager lại 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 cơ chế này để xây dựng dữ liệu cụ thể, 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ở tầm quan trọng của việc bảo mật các giao thức đa chuỗi, đặc biệt là trong quản lý vai trò quan trọng và kiểm soát quyền hạn. Trong tương lai, các dự án tương tự cần cẩn trọng hơn khi thiết kế để tránh xuất hiện các lỗ hổng có thể bị kẻ tấn công lợi dụng.
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.
9 thích
Phần thưởng
9
5
Đăng lại
Chia sẻ
Bình luận
0/400
TestnetNomad
· 14giờ trước
Hài, lại một vụ bị đánh cắp nữa. Quay đi quay lại vẫn là những cái bẫy này.
Xem bản gốcTrả lời0
NotSatoshi
· 08-16 15:15
Blockchain嫖老师
Xem bản gốcTrả lời0
GateUser-7b078580
· 08-16 15:11
Lại một lỗi trong hợp đồng thông minh. Còn lại bao nhiêu hợp đồng có thể tin tưởng?
Xem bản gốcTrả lời0
GmGnSleeper
· 08-16 15:05
Lại tối rồi, ai da, không có gì hay để nói.
Xem bản gốcTrả lời0
DarkPoolWatcher
· 08-16 15:04
Lại thêm một hacker được xây dựng một cách tinh vi.
Poly Network bị Hacker tấn công: hợp đồng EthCrossChainData keeper bị can thiệp
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 đã gặp phải một cuộc tấn công của hacker, thu hút sự chú ý rộng rãi trong ngành. Qua phân tích của đội ngũ an ninh, cuộc tấn công lần 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ửa đổi địa chỉ keeper của hợp đồng EthCrossChainData thông qua dữ liệu được xây dựng một cách tinh vi.
Tấn công cốt lõi
Chìa khóa của cuộc tấn công nằm ở hàm verifyHeaderAndExecuteTx trong hợp đồng EthCrossChainManager. Hàm này có thể thực hiện các giao dịch xuyên chuỗi cụ thể thông qua hàm _executeCrossChainTx. Vì chủ sở hữu của hợp đồng EthCrossChainData là hợp đồng EthCrossChainManager, nên hợp đồng sau có khả năng gọi hàm putCurEpochConPubKeyBytes của hợp đồng EthCrossChainData để sửa đổi keeper của hợp đồng.
Kẻ tấn công lợi dụng hàm verifyHeaderAndExecuteTx để truyền dữ liệu đặc chế, khiến hàm _executeCrossChainTx 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 tất bước này, kẻ tấn công có thể xây dựng giao dịch để 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 đã 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 phương pháp tấn công tương tự cũng được sử dụng trên mạng Ethereum, kẻ tấn công cũng đã sửa đổi keeper và thực hiện tấn công.
Kết luận
Lõi của cuộc tấn công này nằm ở việc keeper của hợp đồng EthCrossChainData có thể được sửa đổi bởi hợp đồng EthCrossChainManager, trong khi hàm verifyHeaderAndExecuteTx của hợp đồng EthCrossChainManager lại 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 cơ chế này để xây dựng dữ liệu cụ thể, 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ở tầm quan trọng của việc bảo mật các giao thức đa chuỗi, đặc biệt là trong quản lý vai trò quan trọng và kiểm soát quyền hạn. Trong tương lai, các dự án tương tự cần cẩn trọng hơn khi thiết kế để tránh xuất hiện các lỗ hổng có thể bị kẻ tấn công lợi dụng.