Phân tích Sự cố Bảo mật ngày 6 tháng 6
Tóm tắt:
Vào ngày 6 tháng 6 năm 2025, giao thức ALEX đã gặp phải một sự cố bảo mật dẫn đến thiệt hại khoảng 8,37 triệu đô la Mỹ tiền của người dùng. Số lượng token bị ảnh hưởng chi tiết đã được ghi lại minh bạch tại đây 🔗 https://t.co/EykdkjujSc. Lỗ hổng đã được ngăn chặn kịp thời và hành động ngay lập tức đã được thực hiện để đảm bảo tất cả người dùng bị ảnh hưởng được bồi thường đầy đủ.
----------------------------------
Dòng thời gian sự kiện:
• Khoảng 9:30 sáng UTC ngày 6 tháng 6: Phát hiện hoạt động giao dịch đáng ngờ.
• [Phản hồi ngay lập tức]: Nhóm phát triển ALEX bắt đầu điều tra ngay lập tức.
• [Ngay sau đó]: Xác nhận lỗ hổng; các biện pháp khẩn cấp được kích hoạt, bao gồm tạm dừng các smart contract bị ảnh hưởng.
• [Cùng ngày]: Thông báo công khai được đưa ra thông qua các kênh chính thức.
• [Ngày hôm sau]: Chương trình Treasury Grant được kích hoạt để bồi thường đầy đủ cho tất cả người dùng bị ảnh hưởng.
• [Đang diễn ra]: Khởi xướng điều tra toàn diện và phân tích chi tiết sau sự cố.
----------------------------------
Nguyên nhân gốc rễ:
Lỗ hổng bắt nguồn từ một lỗ hổng trong logic xác minh của tính năng tự niêm yết. Tính năng này được giới thiệu theo yêu cầu của cộng đồng, phản ánh cam kết của ALEX đối với phân quyền bằng cách cho phép niêm yết token mở, không cần cấp phép. Tuy nhiên, cơ chế tự niêm yết chứa một sai sót tinh vi nhưng nghiêm trọng.
----------------------------------
Chi tiết kỹ thuật của khai thác:
Tổng quan về hợp đồng - Vụ khai thác nhắm vào hợp đồng Self-Listing Helper của ALEX, một smart contract cho phép tạo các pool AMM (Automated Market Maker) được cấp phép và không được cấp phép trên blockchain Stacks. Hợp đồng này có hai chức năng tạo pool chính:
1. Tạo Pool tiêu chuẩn (create): Dành cho các token được phê duyệt trước với các yêu cầu token-x được đưa vào danh sách trắng và kiểm tra bảo mật tiêu chuẩn
2. Tạo Pool không cần cấp phép (create2): Cho phép tạo các pool với các token mới, chưa đăng ký thông qua một hệ thống xác minh toàn diện bao gồm:
• Xác minh việc triển khai hợp đồng token trên blockchain Stacks
• Kiểm tra mã hợp đồng có khớp với mẫu được phê duyệt hay không
• Xác thực bằng chứng triển khai bằng cách sử dụng các header khối Stacks
• Lấy bằng chứng giao dịch triển khai từ blockchain Stacks
• Xác minh mã hợp đồng có khớp với mẫu được đưa vào danh sách trắng hay không
• Xác nhận giao dịch triển khai đã được khai thác đúng cách
Vectơ tấn công: Kẻ tấn công đã khai thác một lỗ hổng nghiêm trọng trong logic xác minh của hàm create2 bằng cách tham chiếu đến một giao dịch không thành công, cho phép một token độc hại vượt qua các kiểm tra và chuyển tiền từ các pool thanh khoản. Vấn đề cốt lõi xuất phát từ một hạn chế hiện tại trên chuỗi, cụ thể là khả năng không thể phát hiện đáng tin cậy các giao dịch không thành công trong Clarity, ngôn ngữ smart contract được sử dụng trên Stacks.
Trình tự tấn công từng bước:
1. Triển khai hợp đồng không thành công: Kẻ tấn công đã triển khai một hợp đồng tuân thủ mẫu được phê duyệt, không độc hại, nhưng trước khi triển khai token cơ bản chưa đăng ký. Việc triển khai hợp đồng này không thành công do token cơ bản không tồn tại, nhưng quan trọng là bản thân giao dịch đã được khai thác 🔗https://t.co/dvqNowccib (Khối #1508036, Nonce: 2, Trạng thái: Không thành công).
2. Triển khai hợp đồng độc hại: Sau đó, kẻ tấn công đã triển khai một hợp đồng độc hại có cùng tên với hợp đồng đã triển khai không thành công trước đó 🔗https://t.co/sPWruUACHR (Khối #1508036, Nonce: 3).
3. Triển khai token cơ bản: Kẻ tấn công đã triển khai token cơ bản 🔗 https://t.co/iWIWLtU5UP (Khối #1508037, Nonce: 4).
4. Bỏ qua xác minh: Kẻ tấn công đã gọi create2 với thông tin từ lần triển khai đầu tiên, không thành công trong verify-params. Cơ chế verify-deploy của hợp đồng đã xác minh rằng giao dịch đã được khai thác bằng thư viện clarity-stacks, nhưng quan trọng là không thể xác định liệu giao dịch đã khai thác có thành công hay không, cũng như liệu có các triển khai khác có cùng tên hay không. Với việc triển khai được xác minh là "đã khai thác thành công" (mặc dù thực tế là không thành công), nó đã được phê duyệt để sử dụng trên ALEX AMM 🔗https://t.co/zebhPgzzks (Khối #1508061, Nonce: 5).
5. Rút tiền trái phép: Với hợp đồng độc hại hiện đã được phê duyệt để sử dụng trên ALEX AMM, kẻ tấn công đã khởi xướng cuộc tấn công cuối cùng bằng cách kích hoạt rút tiền trái phép từ nhiều pool thanh khoản 🔗 https://t.co/agGZbKTCek (Khối #1508068, Nonce: 7).
Nguyên nhân gốc rễ kỹ thuật: Lỗ hổng bắt nguồn từ cách blockchain Stacks và Clarity VM xử lý trạng thái giao dịch. Các giao dịch không thành công, mặc dù không được thực hiện thành công, vẫn xuất hiện dưới dạng các giao dịch đã khai thác. Hệ thống xác minh của hợp đồng có thể xác nhận rằng một giao dịch triển khai đã được khai thác nhưng không thể phân biệt giữa một triển khai thành công và một triển khai không thành công, cho phép kẻ tấn công tham chiếu đến giao dịch không thành công như "bằng chứng" về việc triển khai hợp đồng hợp pháp trong khi thực tế sử dụng một hợp đồng độc hại khác có cùng tên.
Lỗ hổng này làm nổi bật một thách thức kiến trúc cơ bản: trong khi Bitcoin cung cấp bảo mật vô song ở lớp cơ sở, thì việc triển khai các hệ thống xác minh phức tạp trên Stacks đòi hỏi phải xem xét cẩn thận cách Clarity VM xử lý trạng thái giao dịch. Việc không thể phân biệt một cách đáng tin cậy giữa các giao dịch không thành công và thành công trong một số ngữ cảnh nhất định tạo ra các trường hợp đặc biệt mà những kẻ tấn công tinh vi có thể khai thác.
----------------------------------
Tác động:
• Tổng số tiền bị khai thác: Khoảng 8,37 triệu đô la Mỹ
• Tài sản bị ảnh hưởng: Nhiều token do người dùng nắm giữ trên các pool thanh khoản khác nhau
• Ngăn chặn: Hành động nhanh chóng đã ngăn chặn tổn thất thêm
• Bồi thường đầy đủ cho người dùng: Kích hoạt ngay lập tức • Chương trình Treasury Grant đảm bảo phục hồi tài chính hoàn toàn cho tất cả người dùng bị ảnh hưởng
----------------------------------
Phản hồi ngay lập tức và bồi thường cho người dùng:
ALEX chấp nhận trách nhiệm về sự cố này và ban hành Chương trình Treasury Grant. Tất cả người dùng bị ảnh hưởng sẽ nhận được 100% tiền bồi thường. Người dùng bị ảnh hưởng có thể yêu cầu bồi thường thông qua nền tảng chính thức tại đây 🔗https://t.co/woSZ9hv4ow. Ưu tiên của giao thức là bảo mật tài sản của người dùng và tính toàn vẹn của lòng tin của người dùng.
----------------------------------
Kiểm toán bên ngoài và thực hành bảo mật:
ALEX đã hợp tác với CoinFabrik để đánh giá bảo mật. CoinFabrik đã tiến hành kiểm toán trên tất cả các tính năng giao thức chính, bao gồm cả chức năng tự niêm yết.
Tóm tắt kiểm toán CoinFabrik (Tháng 2 năm 2025):
• Phạm vi: Chức năng pool tự niêm yết, logic xác minh giao dịch và các smart contract cốt lõi
• Kết quả: 0 vấn đề nghiêm trọng, 0 vấn đề cao, 0 vấn đề mức độ trung bình được tìm thấy
• Phát hiện: 4 vấn đề mức độ nghiêm trọng thấp (tất cả đã được giải quyết/giảm thiểu) và 2 khuyến nghị cải tiến (đã triển khai)
• Báo cáo đầy đủ: Báo cáo kiểm toán pool tự niêm yết của ALEX 🔗https://t.co/VBJoRribHG
Tất cả các khuyến nghị đã được thực hiện trước khi triển khai. Tuy nhiên, vụ khai thác này nhấn mạnh rằng mặc dù kiểm toán giảm đáng kể rủi ro và xác nhận các thực hành mã hóa an toàn, nhưng chúng không thể loại bỏ rủi ro bắt nguồn từ các hạn chế về cơ sở hạ tầng blockchain. Lỗ hổng phát hiện giao dịch không thành công thể hiện một trường hợp đặc biệt trong cách blockchain Stacks và Clarity VM xử lý trạng thái giao dịch mà trước đây chưa được ghi lại hoặc dự đoán trong các khuôn khổ kiểm toán bảo mật tiêu chuẩn.
----------------------------------
Bài học kinh nghiệm:
• Xác định rõ ràng và kiểm tra nghiêm ngặt tất cả các giả định về hành vi của máy ảo blockchain (VM).
• Đảm bảo kiểm toán bảo mật bao gồm rõ ràng và thách thức các kịch bản trường hợp đặc biệt.
• Thận trọng hơn khi triển khai các tính năng hướng đến phân quyền, do tính phức tạp vốn có và các tương tác chưa biết.
• Thúc đẩy sự hợp tác chặt chẽ với các nhà phát triển nền tảng cốt lõi và các chuyên gia bảo mật để chủ động xác định và giải quyết các lỗ hổng không lường trước được.
----------------------------------
Các bước tiếp theo:
ALEX Protocol đang thực hiện các bước để tăng cường bảo mật:
1. Tăng cường bảo mật Smart Contract: Triển khai các bản vá mã và cải tiến xác minh.
2. Mở rộng phạm vi kiểm toán: Các cuộc kiểm toán trong tương lai sẽ có sự tham gia của nhiều công ty bảo mật độc lập nhắm mục tiêu vào các kịch bản giao dịch phức tạp và các trường hợp đặc biệt tiềm ẩn.
3. Cải thiện giám sát: Tăng cường cơ sở hạ tầng giám sát theo thời gian thực để phát hiện và ứng phó với các hoạt động bất thường.
4. Vận động và hợp tác ở cấp nền tảng: Hợp tác với các nhà phát triển blockchain Stacks để giải quyết và khắc phục các hạn chế của VM. Các đề xuất đáng chú ý hiện đang được xem xét:
• Đề xuất của Marvin Janssen 🔗 https://t.co/Bpo0gQcQJE
• Đề xuất của Drinknu 🔗 https://t.co/ybISHaOTJz
5. Tăng cường bảo vệ người dùng: Tính minh bạch liên tục trong việc bồi thường, cập nhật cộng đồng thường xuyên và các sáng kiến giáo dục người dùng.
6. Mở lại giao thức: ALEX protocol dự kiến sẽ mở lại sớm nhất vào Thứ Hai tuần tới, tiếp tục các chức năng chính bao gồm:
• Swap
• Pool
• Stake
• Surge 4 Claim Voting Rewards
• Vote
• Treasury Grant Program
----------------------------------
Lời cảm ơn:
Chúng tôi xin gửi lời cảm ơn sâu sắc nhất đến các thành viên cộng đồng vì sự kiên nhẫn, hỗ trợ và tin tưởng của họ trong thời điểm khó khăn này. Chúng tôi cũng cảm ơn CoinFabrik vì những nỗ lực kiểm toán của họ, nhóm phát triển cốt lõi của Stacks vì sự hợp tác và hỗ trợ liên tục của họ, và các nhà nghiên cứu bảo mật đã đóng góp những hiểu biết và phân tích.
Stacks vẫn là một hệ sinh thái blockchain non trẻ, đang phát triển và ALEX cam kết sâu sắc vào sự phát triển của nó. Chúng tôi coi trọng trách nhiệm của mình là một trong những giao thức DeFi đầu tiên và lớn nhất trên Stacks, và chúng tôi vẫn cam kết với sứ mệnh của mình: nuôi dưỡng một hệ sinh thái tài chính phi tập trung an toàn, mạnh mẽ và thịnh vượng.