Phân tích lỗ hổng bảo mật giao thức chuỗi cross: Kẻ tấn công làm thế nào để sửa đổi keeper để lấy quyền kiểm soát tài sản.

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

Giao thức chuỗi cross gặp lỗ hổng bảo mật: một phân tích sâu sắc

Gần đây, một giao thức tương tác chuỗi cross đã gặp phải lỗ hổng bảo mật nghiêm trọng, gây ra sự quan tâm rộng rãi trong ngành. Đội ngũ chuyên gia an ninh đã tiến hành phân tích chi tiết về sự kiện này, tiết lộ cách mà kẻ tấn công đã lợi dụng lỗ hổng hợp đồng để có được quyền truy cập và cuối cùng thực hiện cuộc tấn công.

Nguyên lý tấn công

Phân tích cho thấy, cốt lõi của cuộc tấn công này nằm ở một hàm hợp đồng chính trong giao thức có lỗ hổng. Kẻ tấn công đã thành công trong việc sửa đổi địa chỉ quản trị viên của một hợp đồng quan trọng khác thông qua dữ liệu được xây dựng một cách tinh vi, từ đó giành quyền kiểm soát đối với vốn. Điều này không phù hợp với giả thuyết trước đó về việc lộ khóa riêng của quản trị viên.

Chi tiết tấn công

  1. Kẻ tấn công đã lợi dụng một hàm có tên là verifyHeaderAndExecuteTx, hàm này có thể thực hiện chuỗi cross giao dịch.

  2. Do mối quan hệ sở hữu giữa các hợp đồng, kẻ tấn công có thể gọi hàm putCurEpochConPubKeyBytes của một hợp đồng khác thông qua hàm được nêu ở trên, từ đó sửa đổi vai trò keeper quan trọng.

  3. Kẻ tấn công đã xây dựng dữ liệu giao dịch cụ thể, khiến hàm verifyHeaderAndExecuteTx gọi gián tiếp hàm putCurEpochConPubKeyBytes, thay đổi vai trò keeper thành địa chỉ mà kẻ tấn công kiểm soát.

  4. 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 phát động cuộc tấn công trên một mạng chuỗi blockchain, thông qua các giao dịch được thiết kế tỉ mỉ để sửa đổi địa chỉ keeper. Sau đó, kẻ tấn công liên tiếp phát động nhiều giao dịch, rút một lượng lớn tiền từ hợp đồng bị tấn công.

Sau khi tấn công hoàn tất, do keeper bị thay đổ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.

Đáng chú ý là, kẻ tấn công đã sử dụng phương pháp tương tự để thực hiện tấn công trên một mạng chuỗi block chính thống khác, cho thấy đây là một hành động tấn công có dự tính, chuỗi cross.

Tóm tắt

Nguyên nhân cơ bản của sự cố tấn công lần này nằm ở lỗ hổng trong thiết kế giao thức. Kẻ tấn công đã khéo léo tận dụng mối quan hệ gọi giữa các hợp đồng và cài đặt quyền, thông qua việc xây dựng dữ liệu giao dịch đặc biệt, đã thành công trong việc làm sai lệch địa chỉ keeper quan trọng. Phát hiện này đã sửa chữa những suy đoán sai lầm trước đó về việc rò rỉ khóa riêng, cung cấp tham khảo quan trọng cho thiết kế an toàn của các giao thức tương tự.

Sự kiện này một lần nữa làm nổi bật những thách thức mà các giao thức tài chính phi tập trung phải đối mặt về mặt an ninh, đồng thời nhắc nhở các nhà phát triển cần phải cẩn thận hơn khi thiết kế các chức năng tương tác chuỗi cross, hoàn toàn cân nhắc đến các kịch bản tấn công có thể xảy ra.

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
  • 5
  • Chia sẻ
Bình luận
0/400
BuyHighSellLowvip
· 07-21 18:25
Quá vô lý, lại thua lỗ. Nếu gọi tôi đến xem hợp đồng thì đã không có chuyện gì xảy ra.
Xem bản gốcTrả lời0
MetaRecktvip
· 07-19 15:28
Hú hú, mã hợp đồng kiểm tra vẫn chưa đủ kỹ lưỡng.
Xem bản gốcTrả lời0
zkProofInThePuddingvip
· 07-19 15:27
Lại một hợp đồng thông minh bị khai thác.
Xem bản gốcTrả lời0
screenshot_gainsvip
· 07-19 15:21
Thật tệ quá, bị đen tối dễ dàng như vậy.
Xem bản gốcTrả lời0
GateUser-aa7df71evip
· 07-19 15:18
Ôi, chuỗi cross lại gặp sự cố rồi, những dự án này sao mỗi ngày lại bị Phiếu giảm giá.
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)