Merlin DEX là một sàn giao dịch phi tập trung vừa gặp sự số bảo mật nghiêm trọng. Nhóm an ninh của Beosin đã đưa ra kết quả và đề nghị các nhà phát triển nên sử dụng ví đa chữ ký hoặc DAO để quản lý địa chỉ có quyền hạn quan trọng. Người dùng cần nắm rõ các rủi ro liên quan đến dự án khi tham gia tương tác với nó.
Thông tin về sự cố Sàn Merlin DEX
Ví dụ về 1 trong các giao dịch để phân tích:
- Giao dịch bị tấn công: 0xf21bedfb0e40bc4e98fd89d6b2bdaf82f0c452039452ca71f2cac9d8fea29ab2
- Địa chỉ kẻ tấn công: 0xc0D6987d10430292A3ca994dd7A31E461eb28182
- 0x2744d62a1e9ab975f4d77fe52e16206464ea79b7
- Hợp đồng bị tấn công: 0x82cf66e9a45Df1CD3837cF623F7E73C1Ae6DFf1e (nhóm USDC-WETH)
Quá trình Sàn Merlin DEX bị tấn công như thế nào?
- Đầu tiên, người tạo nhóm (0xc0D6987d10430292A3ca994dd7A31E461eb28182) đã tạo hợp đồng gốc (0x63E6fdAdb86Ea26f917496bEEEAAEa4efb319229F), địa chỉ Feeto đã được đặt thành (0xc0D6987d10430292A3ca994dd7A31E461eb28182).

- Kẻ tấn công triển khai nhóm USDC-WETH: (0x82cf66e9a45Df1CD3837cF623F7E73C1Ae6DFf1e) thông qua hợp đồng. Khi nhóm được khởi tạo, số lượng USDC và WETH tối đa trong nhóm được ủy quyền cho địa chỉ Feeto của hợp đồng đó. Có thể thấy rằng có một rủi ro tập trung rõ ràng.

- Với sự ủy quyền tối đa, kẻ tấn công sẽ chuyển tất cả các mã thông báo trong nhóm.

- Điều đáng chú ý, trước khi bị tấn công, địa chỉ của chủ sở hữu và Feeto của hợp đồng đã bị thay đổi, nhưng bước này không cần thiết cho cuộc tấn công.

- Cuối cùng, có thể thấy rằng tất cả số tiền trong nhóm thanh khoản USDC-WETH đã bị rút và kẻ tấn công đã kiếm được tổng lợi nhuận khoảng 1,8 triệu USD.
Phân tích lỗ hổng?
Theo sự phân tích của nhóm bảo mật, cuộc tấn công này chủ yếu lợi dụng tính tập trung của hợp đồng cặp, trong quá trình khởi tạo, số tiền trong nhóm thanh khoản được ủy quyền tối đa cho địa chỉ Feeto của hợp đồng, và điều này dẫn đến rủi ro, tiền trong nhóm thanh khoản có thể bị rút bất cứ lúc nào.
Theo dõi quỹ như thế nào?
Kẻ tấn công đã gọi hàm transferFrom để chuyển 811 nghìn USDC từ nhóm tới địa chỉ 1 (0x2744d62a1e9ab975f4d77fe52e16206464ea79b7) của kẻ tấn công.
Địa chỉ 2 của kẻ tấn công (0xcE4ee0E01bb729C1c5d6D2327BB0F036fA2cE7E2) đã rút 435,2 ETH từ hợp đồng token1 (WETH), sau đó chuyển đến địa chỉ Ethereum (0xa7D481944730a88B862eB57248Cb1B2C8aa358Ad address) và (0x0b8a3ef6307049aa0ff215720ab1fc885007393d), tổng lợi nhuận khoảng 1,8 triệu USD.
Tính đến thời điểm viết bài, nền tảng phân tích chống rửa tiền Beosin KYT đã phát hiện ra, số tiền bị đánh cắp vẫn được lưu trữ trên hai địa chỉ mạng chính Ethereum của những kẻ tấn công nêu trên.
Tại sao Sàn Merlin DEX đã audit nhưng vẫn bị hack?
Merlin vừa hoàn thành cuộc kiểm tra do CertiK thực hiện trước khi đưa lên mạng, mặc dù CertiK đã chỉ ra trong báo cáo là có vấn đề về tính tập trung trong dự án, nhưng điều này vẫn chưa đủ để giúp Merlin DEX tránh khỏi các vấn đề về bảo mật.
Trong năm nay, nhiều sự kiện liên quan đến bảo mật xảy ra liên tiếp. Các dự án bị tấn công như Rabby, TempleDAO, Mango đều đã được kiểm định (audit). Vậy tại sao vẫn bị tấn công? Một số người còn lợi dụng cơ hội này để chỉ trích kiểm định bảo mật không có ý nghĩa. Thực chất, người dùng cần hiểu:
- Mọi người cần điều chỉnh kỳ vọng của mình. Audit là thứ không thể thiếu, nhưng không bao giờ có thể giải quyết tất cả vấn đề. Tấn công và phòng thủ là hai loại công việc hoàn toàn khác nhau. Khi chúng ta xem xét báo cáo kiểm tra bảo mật của các công ty audit, chúng ta sẽ thấy hầu hết các dự án đều có thể tìm thấy ít nhất một lỗ hổng nghiêm trọng, 2-4 lỗ hổng rủi ro cao, cùng với nhiều lỗ hổng trung bình và thấp. Bạn nói rằng việc phát hiện lỗ hổng không có ý nghĩa? Có, nhưng cụ thể hơn là giảm thiểu rủi ro an ninh!
- Sau khi sự cố xảy ra, một số người đã hỏi, tại sao lỗ hổng lại tồn tại dễ dàng như vậy nhưng không được phát hiện? Vấn đề này rất phức tạp, kiểm tra bảo mật dựa trên các công cụ và kinh nghiệm hiện có để kiểm tra logic, loại bỏ khuyết điểm mã nguồn, khắc phục các lỗ hổng thông thường như tràn, phát lại, xác thực,... Tuy nhiên, những gì gây khó khăn trong các giao thức như DeFi không phải là mã nguồn mà là các logic tài chính phức tạp, chẳng hạn như quản lý quy trình, kết hợp bên ngoài, thao tác thị trường,...Vấn đề này nằm ngoài phạm vi hoạt động của các công ty audit.
- Trong hệ sinh thái blockchain, có rất nhiều loại kết hợp khác nhau, bao gồm mã nguồn mở và mã không nguồn mở, các dự án đã được kiểm định và các dự án chưa được kiểm định, validator ngoại tuyến và thực thi trên chuỗi,... Nhiều dự án chỉ được giám định theo cách module hóa, ví dụ như phần mã nguồn mở, vậy còn những phần không được mở ra thì sao? Nếu quy trình ngoại tuyến ảnh hưởng đến thực thi trên chuỗi thì sao? Và nếu thị trường bị chi phối thì sao? Khi xảy ra sự cố, không thể để cho các công ty bảo mật chịu trách nhiệm hoàn toàn.
- Điều đáng sợ là nhiều nhà phát triển chỉ tìm kiếm các nhà kiểm định “an toàn” để có thể nhận được "xác nhận an toàn", và tham vọng của họ khi thực hiện dự án rất ít đầu tư vào bảo mật của chính mình. Khi sự cố xảy ra, họ lại tự cho mình là vô tội, chỉ vì họ đã tìm kiếm công ty audit hàng đầu. Vậy thực tế họ đã đầu tư bao nhiêu vào việc bảo vệ an toàn, củng cố và phản ứng khẩn cấp cho dự án của mình? Đó mới chính là nguyên nhân chính của việc xảy ra những sự việc này.
- Trong ngành công nghiệp blockchain, mối đe dọa lớn nhất không phải là các cuộc tấn công của hacker, mà là các "tai nạn" do thiếu nhận thức về bảo mật, ví dụ như khi một số dự án bị tấn công sẽ lan truyền thông tin "rug pull", các trường hợp lừa đảo trên mạng, và nhiều hơn nữa. Các tổn thất bảo mật do con người gây ra như "rug pull", lừa đảo trên mạng, yêu cầu tiền chuộc và các loại tổn thất tài chính khác không thể tính toán hết. Tổn thất bảo mật này không thua kém gì so với các cuộc tấn công của hacker.
- Vấn đề bảo mật trong ngành mã hóa là một hành trình dài. Chúng ta kỳ vọng một hệ sinh thái an toàn bao gồm: Tự bảo vệ bảo mật cho các dự án, hỗ trợ bảo mật từ bên thứ ba và nhận thức bảo mật phổ biến cho người dùng. Tuy nhiên, các công ty audit không phải là nhà xây dựng bảo mật, việc chỉnh sửa lỗi bảo mật, cập nhật, sửa chữa là quan trọng nhất. Hệ sinh thái cần sự bảo vệ chung từ mỗi nhà đầu tư.