Lỗ hổng $730,000 của SuperRare có thể đã được ngăn chặn dễ dàng, các chuyên gia nói
Một lỗi kiểm soát truy cập cơ bản trong hợp đồng đặt cược của SuperRare, có thể đã được phát hiện bởi các bài kiểm tra đơn vị đơn giản hoặc thậm chí là ChatGPT, đã dẫn đến việc đánh cắp $731,000 trong token RARE.
Vào thứ Hai, nền tảng giao dịch NFT SuperRare đã trải qua một lỗ hổng trị giá $730,000 do một lỗ hổng hợp đồng thông minh đơn giản mà các chuyên gia khẳng định có thể đã dễ dàng tránh được thông qua các quy trình kiểm tra tiêu chuẩn.
Lỗ hổng nhắm vào hợp đồng đặt cược của SuperRare (RARE), dẫn đến việc đánh cắp khoảng $731,000 trong token RARE, như được báo cáo bởi một công ty an ninh mạng trong không gian tiền điện tử.
Vấn đề phát sinh từ một hàm được thiết kế để hạn chế việc thay đổi gốc Merkle - một yếu tố quan trọng để xác định số dư đặt cược của người dùng - chỉ cho các địa chỉ cụ thể. Tuy nhiên, do lỗi lập trình, hàm này đã cho phép bất kỳ địa chỉ nào tương tác với nó.
0xAw, nhà phát triển chính tại sàn giao dịch phi tập trung Base Alien Base, lưu ý rằng lỗi này quá rõ ràng đến nỗi ngay cả ChatGPT cũng có thể nhận diện được. Đã được xác nhận rằng mô hình o3 của OpenAI thực sự phát hiện ra lỗi này khi được kiểm tra độc lập.
"ChatGPT sẽ bắt được điều này, bất kỳ nhà phát triển Solidity nào có năng lực cũng sẽ bắt được điều này. Cơ bản là bất kỳ ai, nếu họ nhìn. Rất có thể không ai làm," 0xAw phát biểu.
Jonathan Perkins, đồng sáng lập của SuperRare, đảm bảo rằng không có quỹ cốt lõi nào của giao thức bị xâm phạm và người dùng bị ảnh hưởng sẽ được bồi thường đầy đủ. Ông đề cập rằng sự cố này đã ảnh hưởng đến 61 ví.
"Chúng tôi đã rút ra bài học từ nó, và bây giờ các thay đổi trong tương lai sẽ trải qua một quy trình xem xét nghiêm ngặt hơn," ông bổ sung.
Giải phẫu một lỗ hổng
Lỗ hổng đã cho phép hợp đồng thông minh kiểm tra xem địa chỉ tương tác có phải là một địa chỉ cụ thể hay chủ sở hữu của hợp đồng không. Kiểm tra này, vốn được cho là để hạn chế quyền truy cập, đã được triển khai sai, cho phép bất kỳ ai rút token RARE đã đặt cược.
Một kỹ sư cao cấp tại một công ty bảo hiểm tiền điện tử nhấn mạnh rằng "các bài kiểm tra đơn vị sẽ phát hiện ra lỗi này."
Mike Tiutin, kiến trúc sư blockchain và Giám đốc công nghệ tại một công ty chuyên về chống rửa tiền, nhận xét, "Đây là một lỗi ngớ ngẩn của nhà phát triển mà không được bao phủ bởi các bài kiểm tra (đó là lý do tại sao phủ sóng toàn diện là quan trọng)."
Giám đốc điều hành của cùng một công ty đồng ý, chỉ ra sự thiếu hụt của các bài kiểm tra rộng rãi hoặc một chương trình thưởng lỗi, điều này có thể đã xác định được vấn đề trước khi triển khai. Ông nhấn mạnh sự cần thiết của các kiểm toán nghiêm ngặt cho logic hợp đồng thông minh, phát biểu:
"Điều này là một lời nhắc nhở rõ ràng: trong các hệ thống phi tập trung, ngay cả một lỗi một ký tự cũng có thể gây ra hậu quả nghiêm trọng."
Mặc dù Perkins khẳng định các hợp đồng đã được kiểm toán và kiểm tra đơn vị, ông thừa nhận rằng lỗi này được đưa vào muộn trong quá trình và không được bao gồm trong các kịch bản kiểm tra cuối cùng:
"Đây là một lời nhắc nhở đau đớn về cách mà ngay cả những thay đổi nhỏ trong các hệ thống phức tạp cũng có thể gây ra hậu quả không mong muốn."
Tầm quan trọng của kiểm tra đơn vị
Các bài kiểm tra đơn vị là các bài kiểm tra nhỏ, tự động được thiết kế để xác minh rằng các thành phần riêng lẻ của một chương trình hoạt động đúng. Những bài kiểm tra này tập trung vào các hành vi hoặc đầu ra cụ thể cho các đầu vào đã cho, giúp phát hiện sớm lỗi.
Trong trường hợp này, sự vắng mặt của các bài kiểm tra đơn vị có thể xác minh quyền thay đổi gốc Merkle đã cho phép lỗ hổng không được chú ý.
"Do sơ suất hoặc kiểm tra không đầy đủ, tác động là như nhau: một lỗ hổng có thể tránh được mà chi phí rất lớn," Giám đốc điều hành phát biểu.
0xAw lặp lại sự thiếu hụt của việc kiểm tra, lưu ý rằng hành vi của mã trái ngược với kỳ vọng ngay cả trong điều kiện bình thường.
Perkins đề cập rằng SuperRare đã triển khai các quy trình mới yêu cầu kiểm toán lại cho bất kỳ thay đổi nào sau kiểm toán, bất kể kích thước của chúng.
Hầu hết các lỗ hổng là do sơ suất
0xAw mô tả lỗi này là "một lỗi con người bình thường," nhưng nhấn mạnh rằng vấn đề thực sự là việc triển khai và duy trì nó trong sản xuất.
Ông chỉ ra rằng đa số các lỗ hổng nghiêm trọng xuất phát từ "những lỗi thực sự ngu ngốc và dễ dàng phòng ngừa," mặc dù ông thừa nhận rằng chúng thường khó phát hiện hơn so với trường hợp này.
Một người đứng đầu phản ứng sự cố từ một công ty an ninh mạng đồng ý rằng kiểm tra toàn diện sẽ xác định được lỗi, phát biểu:
"Nếu xem xét hàm này, đó là một lỗi khá rõ ràng."
Theo Cointelegraph