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ự chú ý rộng rãi trong ngành. Qua phân tích của nhóm 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 đã thành công trong việc sửa đổi địa chỉ keeper của hợp đồng EthCrossChainData thông qua dữ liệu được cấu trúc tinh vi.
Chi tiết tấn công
Tâm điểm 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 liên chuỗi cụ thể thông qua hàm _executeCrossChainTx.
Quyền sở hữu hợp đồng EthCrossChainData thuộc về hợp đồng EthCrossChainManager, cho phép hợp đồng này gọi hàm putCurEpochConPubKeyBytes để thay đổi keeper.
Kẻ tấn công lợi dụng đặc điểm của hàm verifyHeaderAndExecuteTx, truyền vào dữ liệu được thiết kế tinh vi, 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ỉ 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ự do 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, thành công trong việc thay đổi keeper.
Sau đó, kẻ tấn công bắt đầu thực hiện một loạt giao dịch tấn công, rút tiền từ hợp đồng.
Do việc 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 chuỗi 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
Nguyên nhân cơ bản của cuộc tấn công này là do keeper của hợp đồng EthCrossChainData có thể được hợp đồng EthCrossChainManager sửa đổi, trong khi hàm verifyHeaderAndExecuteTx của hợp đồng EthCrossChainManager lại có thể thực thi dữ liệu do người dùng truyền vào. Kẻ tấn công đã lợi dụng lỗ hổng thiết kế này, thông qua dữ liệu được cấu trúc tỉ mỉ, đã thành công trong việc thay đổi địa chỉ keeper của hợp đồng EthCrossChainData, từ đó thực hiện hành vi trộm cắp tài sản. Sự kiện này một lần nữa nhắc nhở chúng ta rằng, trong thiết kế hợp đồng thông minh, quản lý quyền và tính an toàn của các cuộc gọi hàm là cực kỳ quan trọ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.
13 thích
Phần thưởng
13
7
Đăng lại
Chia sẻ
Bình luận
0/400
GasDevourer
· 8giờ trước
Hợp đồng lại bị vặt trụi, thật thảm hại.
Xem bản gốcTrả lời0
RetailTherapist
· 08-09 15:39
Một cái nữa đã bị tấn công và đã qua đời.
Xem bản gốcTrả lời0
StableGeniusDegen
· 08-09 15:31
Lại mát thêm một chút~
Xem bản gốcTrả lời0
NotSatoshi
· 08-09 15:28
Lại thấy Hacker gây chuyện rồi
Xem bản gốcTrả lời0
ShibaSunglasses
· 08-09 15:23
Lại là ăn cắp đen rồi đúng không?
Xem bản gốcTrả lời0
SorryRugPulled
· 08-09 15:20
Lại Rug Pull à? Đã quen rồi.
Xem bản gốcTrả lời0
RektButSmiling
· 08-09 15:10
Lại có chuyện gì xảy ra? keeper cũng không an toàn nữa.
Poly Network遭Hacker攻击:EthCrossChainData合约keeper被篡改
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ự chú ý rộng rãi trong ngành. Qua phân tích của nhóm 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 đã thành công trong việc sửa đổi địa chỉ keeper của hợp đồng EthCrossChainData thông qua dữ liệu được cấu trúc tinh vi.
Chi tiết tấn công
Tâm điểm 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 liên chuỗi cụ thể thông qua hàm _executeCrossChainTx.
Quyền sở hữu hợp đồng EthCrossChainData thuộc về hợp đồng EthCrossChainManager, cho phép hợp đồng này gọi hàm putCurEpochConPubKeyBytes để thay đổi keeper.
Kẻ tấn công lợi dụng đặc điểm của hàm verifyHeaderAndExecuteTx, truyền vào dữ liệu được thiết kế tinh vi, 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ỉ 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ự do 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, thành công trong việc thay đổi keeper.
Sau đó, kẻ tấn công bắt đầu thực hiện một loạt giao dịch tấn công, rút tiền từ hợp đồng.
Do việc 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 chuỗi 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
Nguyên nhân cơ bản của cuộc tấn công này là do keeper của hợp đồng EthCrossChainData có thể được hợp đồng EthCrossChainManager sửa đổi, trong khi hàm verifyHeaderAndExecuteTx của hợp đồng EthCrossChainManager lại có thể thực thi dữ liệu do người dùng truyền vào. Kẻ tấn công đã lợi dụng lỗ hổng thiết kế này, thông qua dữ liệu được cấu trúc tỉ mỉ, đã thành công trong việc thay đổi địa chỉ keeper của hợp đồng EthCrossChainData, từ đó thực hiện hành vi trộm cắp tài sản. Sự kiện này một lần nữa nhắc nhở chúng ta rằng, trong thiết kế hợp đồng thông minh, quản lý quyền và tính an toàn của các cuộc gọi hàm là cực kỳ quan trọng.