Theo một bài đăng trên mạng xã hội từ nền tảng bảo mật blockchain CertiK, một lỗ hổng bảo mật trong cầu Wormhole trên mạng Aptos có thể gây ra tổn thất trị giá 5 triệu USD nếu nó không được phát hiện. Nền tảng này tuyên bố đã phát hiện ra lỗi và báo cáo cho nhóm Wormhole trước khi nó được phát hiện. Lỗ hổng đã được vá và cây cầu không còn dễ bị tổn thương nữa.
Nguồn: CertiK.
Aptos là mạng blockchain sử dụng ngôn ngữ lập trình MOVE, được Facebook phát triển ban đầu cho dự án Libra. Những người ủng hộ MOVE cho rằng việc viết hợp đồng thông minh là ngôn ngữ an toàn hơn khi so sánh với Solidity của Ethereum hoặc các lựa chọn thay thế khác.
Báo cáo của CertiK đã được đăng dưới dạng video. Họ tuyên bố lỗ hổng này “phát sinh từ việc triển khai không chính xác các công cụ sửa đổi ‘public(friend)’ và ‘entry’ trong ngôn ngữ lập trình MOVE.” Công cụ sửa đổi 'public(friend)' cho phép một chức năng được gọi bởi các chức năng khác trong cùng một mô-đun hoặc bởi các tài khoản bên ngoài được chỉ định trong "danh sách bạn bè", chứ không phải bởi những người gọi khác. Mặt khác, công cụ sửa đổi 'entry' chỉ định rằng một hàm có thể được gọi bởi bất kỳ tài khoản bên ngoài nào.
Cây cầu chứa một chức năng gọi là 'publish_event', được sử dụng để thông báo các sự kiện như chuyển mã thông báo. Nó chỉ được cho là có thể gọi được bởi các chức năng khác trong cùng một mô-đun hoặc bởi một số “thực thể bên ngoài được chỉ định” nhất định. Tuy nhiên, trong phiên bản bridge mà CertiK nghiên cứu, chức năng này đã được sửa đổi bởi cả 'public(friend)' và 'entry.' Điều này giúp mọi người có thể gọi 'publish_event'," ngay cả khi họ không phải là người gọi được phê duyệt.
Do lỗ hổng này, kẻ tấn công có thể đã tạo các giao dịch giả mạo dường như để chuyển mã thông báo từ tài khoản này sang tài khoản khác, mặc dù không có mã thông báo thực sự nào được di chuyển. Những “sự kiện” này có thể khiến phiên bản Ethereum của cây cầu đúc hoặc mở khóa mã thông báo mà không có bất kỳ khoản tiền gửi thực sự nào hỗ trợ chúng từ phía Aptos. Kết quả là, kẻ tấn công có thể đã rút số tiền trị giá lên tới 5 triệu USD từ cây cầu, CertiK cho biết.
CertiK đã thông báo cho các thành viên của nhóm Wormhole về lỗ hổng này vào ngày 5 tháng 12 năm 2023. Sau khi điều tra báo cáo, nhóm đã phát triển và thử nghiệm một bản vá để đóng lỗ hổng bảo mật và thông báo cho Guardians của giao thức về vấn đề này. Thông qua một cuộc bỏ phiếu đa chữ ký, Guardians đã chấp thuận triển khai bản vá và hợp đồng Aptos của giao thức đã được nâng cấp để triển khai mã mới. Sau khi lỗ hổng được báo cáo, quá trình sửa lỗi mất khoảng ba giờ và phiên bản mới của cây cầu không còn dễ bị khai thác như vậy nữa.
Dòng thời gian khai thác Wormhole Aptos. Nguồn: CertiK.
Ngoài việc xóa từ khóa ‘entry’ khỏi hàm Publish_event, bản vá mới còn hạn chế giá trị của “giới hạn tỷ lệ thống đốc” trên Aptos từ 5 triệu USD đến 1 triệu USD, ngăn chặn hiệu quả việc rút tiền từ Aptos lớn hơn 1 triệu USD mỗi ngày. Điều này được thực hiện để hạn chế tổn thất trong trường hợp khai thác trong tương lai. Mức sử dụng hiện tại là dưới 1 triệu USD mỗi ngày, CertiK tuyên bố, ngụ ý rằng giới hạn tốc độ sẽ không ảnh hưởng đến hầu hết người dùng.
Wormhole cũng thực hiện “phân tích hồi cứu” để xác định xem liệu tiền của người dùng có bị ảnh hưởng bởi vấn đề này hay không. Họ kết luận rằng không có khoản tiền nào được chuyển bất hợp pháp và số dư của người dùng vẫn an toàn.
Wormhole không phải lúc nào cũng có thể phát hiện được các lỗ hổng bảo mật trước khi chúng bị khai thác. Vào năm 2022, nó đã mất hơn 321 triệu đô la khi một lỗi ở phần Solana của cây cầu cho phép kẻ tấn công đúc các mã thông báo không được hỗ trợ. Tuy nhiên, nhóm sau đó đã vá lỗi và đền bù cho người dùng. Vào tháng 1, Wormhole đã lấy lại tổng giá trị 1 tỷ USD bị khóa lần đầu tiên kể từ sự cố, cho thấy một số người dùng cảm thấy các biện pháp bảo mật của nó đã được cải thiện.
Liên quan: Lỗi trong Gains Network fork cho phép nhà giao dịch kiếm được 900% lợi nhuận cho mỗi giao dịch: Báo cáo