Poly Network bị tấn công: lỗi hợp đồng thông minh dẫn đến keeper bị sửa đổi

robot
Đang tạo bản tóm tắt

Phân tích sự cố tấn công của Poly Network

Gần đây, giao thức tương tác chuỗi chéo Poly Network đã遭遇 hacker tấn công, gây ra sự chú ý rộng rãi trong ngành. Sau khi 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 việc rò rỉ khóa riêng của keeper gây ra, mà là 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

Tâm điểm của cuộc tấn công là hàm verifyHeaderAndExecuteTx trong 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. Vì 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 EthCrossChainData để 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 thiết kế cẩn thận, khiến hàm _executeCrossChainTx thực hiện cuộc gọi đến 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ế địa chỉ keeper, kẻ tấn công có thể tạo ra giao dịch và tùy ý rút bất kỳ số tiền nào từ hợp đồng.

Quá trình tấn công

  1. 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.

  2. keeper bị thay đổi, kẻ tấn công bắt đầu 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.

  3. Sau khi tấn công hoàn thành, do keeper đã bị sửa đổi, dẫn đến việc các giao dịch bình thường của người dùng khác bị từ chối thực hiện.

  4. Mô hình tấn công này cũng có các hoạt động tương tự trên mạng Ethereum.

Tóm tắt

Chìa khóa của cuộc tấn công lần này nằm ở việc 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 EthCrossChainManager lại có thể thực thi dữ liệu đầu vào của người dùng thông qua hàm _executeCrossChainTx. Kẻ tấn công đã tận dụng điều này, bằng cách xây dựng dữ liệu cụ thể, đã thành công trong việc sửa đổi keeper của hợp đồng EthCrossChainData thành địa chỉ do kẻ tấn công kiểm soát.

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, cần phải đặc biệt chú ý đến quản lý quyền và tính an toàn của việc gọi hàm. Đối với các hàm có thể ảnh hưởng đến các tham số quan trọng, nên thực hiện kiểm soát truy cập và cơ chế kiểm tra an toàn nghiêm ngặt hơn. Đồng thời, tính an toàn của các dự án xuyên chuỗi cũng cần được chú trọng hơn, vì chúng thường liên quan đến một lượng lớn tài chính và logic tương tác phức tạp.

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.
  • Phần thưởng
  • 3
  • Chia sẻ
Bình luận
0/400
GasFeeCriervip
· 07-11 15:43
Lại thấy hợp đồng thông minh bị lỗi, thật tồi tệ quá!
Xem bản gốcTrả lời0
SleepTradervip
· 07-11 02:54
Một lần nữa nhận thức muộn màng về an toàn kiểm toán
Xem bản gốcTrả lời0
ApyWhisperervip
· 07-08 15:52
Lại gặp lỗ hổng hợp đồng...
Xem bản gốcTrả lời0
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)