Phân tích sự kiện Cellframe Network bị cuộc tấn công cho vay chớp nhoáng
Vào lúc 10 giờ 7 phút 55 giây (UTC+8) ngày 1 tháng 6 năm 2023, Cellframe Network đã bị tấn công bởi hacker do vấn đề tính toán số lượng token trong quá trình di chuyển thanh khoản trên chuỗi thông minh. Cuộc tấn công này đã giúp hacker thu lợi khoảng 76,112 đô la.
Nguyên nhân gốc rễ của cuộc tấn công
Vấn đề tính toán trong quá trình di chuyển thanh khoản là nguyên nhân chính của cuộc tấn công này.
Chi tiết quy trình tấn công
Kẻ tấn công đầu tiên thông qua khoản vay nhanh nhận được 1000 BNB và 500000 mã thông báo New Cell. Sau đó, họ đổi tất cả mã thông báo New Cell lấy BNB, dẫn đến việc số lượng BNB trong bể gần như bằng không. Cuối cùng, kẻ tấn công dùng 900 BNB để đổi lấy mã thông báo Old Cell.
Đáng chú ý là, kẻ tấn công đã thêm tính thanh khoản của Old Cell và BNB trước khi phát động cuộc tấn công, nhận được Old lp.
Tiếp theo, kẻ tấn công gọi hàm di chuyển tính thanh khoản. Lúc này, trong bể mới gần như không có BNB, trong khi bể cũ gần như không có token Old Cell. Quá trình di chuyển bao gồm: loại bỏ tính thanh khoản cũ và trả lại số lượng token tương ứng cho người dùng; sau đó thêm tính thanh khoản mới theo tỷ lệ bể mới. Do trong bể cũ gần như không có token Old Cell, số lượng BNB nhận được khi loại bỏ tính thanh khoản tăng lên, trong khi số lượng token Old Cell giảm đi. Điều này dẫn đến việc người dùng chỉ cần thêm một lượng nhỏ BNB và token New Cell để có được tính thanh khoản, số BNB và token Old Cell dư thừa sẽ được trả lại cho người dùng.
Cuối cùng, kẻ tấn công loại bỏ thanh khoản của bể mới và đổi các token Old Cell trở về từ việc di chuyển thành BNB. Lúc này, bể cũ có một lượng lớn token Old Cell nhưng gần như không có BNB, kẻ tấn công sẽ đổi các token Old Cell thành BNB, hoàn tất việc kiếm lời. Sau đó, kẻ tấn công lặp lại thao tác di chuyển.
Đề xuất an toàn
Khi di chuyển thanh khoản, cần xem xét toàn diện sự thay đổi về số lượng hai loại token trong hai bể cũ và mới cũng như giá token hiện tại. Việc sử dụng trực tiếp số lượng hai loại token trong cặp giao dịch để tính toán rất dễ bị thao túng.
Trước khi mã được triển khai, hãy đảm bảo thực hiện kiểm toán bảo mật toàn diện và nghiêm ngặt để ngăn chặn sự xuất hiện của các lỗ hổng tương tự.
Sự kiện lần này một lần nữa nhấn mạnh rằng khi xử lý các thao tác DeFi phức tạp, đặc biệt là những thao tác nhạy cảm như di chuyển thanh khoản, cần phải hết sức cẩn trọng và có những cân nhắc an toàn toàn diện.
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.
Mạng Cellframe遭 cuộc tấn công cho vay chớp nhoáng, thiệt hại 76.000 USD
Phân tích sự kiện Cellframe Network bị cuộc tấn công cho vay chớp nhoáng
Vào lúc 10 giờ 7 phút 55 giây (UTC+8) ngày 1 tháng 6 năm 2023, Cellframe Network đã bị tấn công bởi hacker do vấn đề tính toán số lượng token trong quá trình di chuyển thanh khoản trên chuỗi thông minh. Cuộc tấn công này đã giúp hacker thu lợi khoảng 76,112 đô la.
Nguyên nhân gốc rễ của cuộc tấn công
Vấn đề tính toán trong quá trình di chuyển thanh khoản là nguyên nhân chính của cuộc tấn công này.
Chi tiết quy trình tấn công
Kẻ tấn công đầu tiên thông qua khoản vay nhanh nhận được 1000 BNB và 500000 mã thông báo New Cell. Sau đó, họ đổi tất cả mã thông báo New Cell lấy BNB, dẫn đến việc số lượng BNB trong bể gần như bằng không. Cuối cùng, kẻ tấn công dùng 900 BNB để đổi lấy mã thông báo Old Cell.
Đáng chú ý là, kẻ tấn công đã thêm tính thanh khoản của Old Cell và BNB trước khi phát động cuộc tấn công, nhận được Old lp.
Tiếp theo, kẻ tấn công gọi hàm di chuyển tính thanh khoản. Lúc này, trong bể mới gần như không có BNB, trong khi bể cũ gần như không có token Old Cell. Quá trình di chuyển bao gồm: loại bỏ tính thanh khoản cũ và trả lại số lượng token tương ứng cho người dùng; sau đó thêm tính thanh khoản mới theo tỷ lệ bể mới. Do trong bể cũ gần như không có token Old Cell, số lượng BNB nhận được khi loại bỏ tính thanh khoản tăng lên, trong khi số lượng token Old Cell giảm đi. Điều này dẫn đến việc người dùng chỉ cần thêm một lượng nhỏ BNB và token New Cell để có được tính thanh khoản, số BNB và token Old Cell dư thừa sẽ được trả lại cho người dùng.
Cuối cùng, kẻ tấn công loại bỏ thanh khoản của bể mới và đổi các token Old Cell trở về từ việc di chuyển thành BNB. Lúc này, bể cũ có một lượng lớn token Old Cell nhưng gần như không có BNB, kẻ tấn công sẽ đổi các token Old Cell thành BNB, hoàn tất việc kiếm lời. Sau đó, kẻ tấn công lặp lại thao tác di chuyển.
Đề xuất an toàn
Khi di chuyển thanh khoản, cần xem xét toàn diện sự thay đổi về số lượng hai loại token trong hai bể cũ và mới cũng như giá token hiện tại. Việc sử dụng trực tiếp số lượng hai loại token trong cặp giao dịch để tính toán rất dễ bị thao túng.
Trước khi mã được triển khai, hãy đảm bảo thực hiện kiểm toán bảo mật toàn diện và nghiêm ngặt để ngăn chặn sự xuất hiện của các lỗ hổng tương tự.
Sự kiện lần này một lần nữa nhấn mạnh rằng khi xử lý các thao tác DeFi phức tạp, đặc biệt là những thao tác nhạy cảm như di chuyển thanh khoản, cần phải hết sức cẩn trọng và có những cân nhắc an toàn toàn diện.