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 trên một nền tảng chuỗi thông minh do vấn đề tính toán số lượng token trong quá trình di chuyển thanh khoản. Cuộc tấn công này đã khiến hacker thu lợi khoảng 76,112 đô la.
Chi tiết cuộc tấn công
Kẻ tấn công đầu tiên đã lấy được 1000 đồng native token của một nền tảng smart chain thông qua Khoản vay nhanh và 500,000 đồng New Cell token. Sau đó, họ đã đổi tất cả đồng New Cell token thành đồng native token của nền tảng, khiến số lượng đồng native token trong bể thanh khoản gần như bằng không. Cuối cùng, kẻ tấn công đã đổi 900 đồng native token thành Old Cell token.
Đáng chú ý là, kẻ tấn công đã thêm tính thanh khoản của Old Cell và token gốc trước khi thực hiện cuộc tấn công, để có được token lp cũ.
Quy trình tấn công
Kẻ tấn công gọi hàm chuyển đổi thanh khoản. Lúc này, trong bể mới gần như không có token gốc, 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; thêm tính thanh khoản mới theo tỷ lệ của bể mới.
Do trong bể cũ hầu như không có token Old Cell, số lượng token gốc 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 xuống.
Người dùng chỉ cần thêm một lượng nhỏ token gốc và token New Cell để có được tính thanh khoản, số token gốc dư thừa và token Old Cell sẽ được trả lại cho người dùng.
Kẻ tấn công loại bỏ tính thanh khoản của bể mới và đổi các mã thông báo Old Cell đã chuyển trở lại thành mã thông báo gốc.
Lúc này, trong bể cũ có một lượng lớn token Old Cell nhưng không có token gốc, kẻ tấn công sẽ đổi lại token Old Cell thành token gốc, từ đó hoàn thành việc kiếm lợi.
Kẻ tấn công thực hiện lại các thao tác chuyển nhượng, thu lợi thêm.
Tóm tắt và đề xuất
Cuộc tấn công này đã phơi bày một vấn đề then chốt trong việc di chuyển thanh khoản: việc tính toán trực tiếp dựa trên số lượng của hai loại token trong cặp giao dịch dễ bị thao túng. Để ngăn chặn các cuộc tấn công tương tự, các nhà phát triển nên:
Cân nhắc toàn diện sự thay đổi số lượng hai loại token trong các pool cũ và mới.
Đưa giá token hiện tại vào phạm vi tính toán.
Thực hiện kiểm toán an ninh toàn diện trước khi đưa mã lên sản.
Sự kiện này một lần nữa nhấn mạnh tầm quan trọng của tính an toàn và kiểm toán mã trong lĩnh vực tài chính phi tập trung. Các dự án nên thiết kế và thực hiện các chức năng quan trọng một cách cẩn thận hơn, đặc biệt là những phần liên quan đến dòng tiền. Đồng thời, người dùng cũng nên nhận thức được rủi ro có thể gặp phải khi tham gia các dự án mới và thực hiện các biện pháp phòng ngừa thích hợp.
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.
Cellframe Network遭cuộc tấn công cho vay chớp nhoáng HackerKinh doanh chênh lệch giá7.6万美元
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 trên một nền tảng chuỗi thông minh do vấn đề tính toán số lượng token trong quá trình di chuyển thanh khoản. Cuộc tấn công này đã khiến hacker thu lợi khoảng 76,112 đô la.
Chi tiết cuộc tấn công
Kẻ tấn công đầu tiên đã lấy được 1000 đồng native token của một nền tảng smart chain thông qua Khoản vay nhanh và 500,000 đồng New Cell token. Sau đó, họ đã đổi tất cả đồng New Cell token thành đồng native token của nền tảng, khiến số lượng đồng native token trong bể thanh khoản gần như bằng không. Cuối cùng, kẻ tấn công đã đổi 900 đồng native token thành Old Cell token.
Đáng chú ý là, kẻ tấn công đã thêm tính thanh khoản của Old Cell và token gốc trước khi thực hiện cuộc tấn công, để có được token lp cũ.
Quy trình tấn công
Kẻ tấn công gọi hàm chuyển đổi thanh khoản. Lúc này, trong bể mới gần như không có token gốc, 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; thêm tính thanh khoản mới theo tỷ lệ của bể mới.
Do trong bể cũ hầu như không có token Old Cell, số lượng token gốc 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 xuống.
Người dùng chỉ cần thêm một lượng nhỏ token gốc và token New Cell để có được tính thanh khoản, số token gốc dư thừa và token Old Cell sẽ được trả lại cho người dùng.
Kẻ tấn công loại bỏ tính thanh khoản của bể mới và đổi các mã thông báo Old Cell đã chuyển trở lại thành mã thông báo gốc.
Lúc này, trong bể cũ có một lượng lớn token Old Cell nhưng không có token gốc, kẻ tấn công sẽ đổi lại token Old Cell thành token gốc, từ đó hoàn thành việc kiếm lợi.
Kẻ tấn công thực hiện lại các thao tác chuyển nhượng, thu lợi thêm.
Tóm tắt và đề xuất
Cuộc tấn công này đã phơi bày một vấn đề then chốt trong việc di chuyển thanh khoản: việc tính toán trực tiếp dựa trên số lượng của hai loại token trong cặp giao dịch dễ bị thao túng. Để ngăn chặn các cuộc tấn công tương tự, các nhà phát triển nên:
Sự kiện này một lần nữa nhấn mạnh tầm quan trọng của tính an toàn và kiểm toán mã trong lĩnh vực tài chính phi tập trung. Các dự án nên thiết kế và thực hiện các chức năng quan trọng một cách cẩn thận hơn, đặc biệt là những phần liên quan đến dòng tiền. Đồng thời, người dùng cũng nên nhận thức được rủi ro có thể gặp phải khi tham gia các dự án mới và thực hiện các biện pháp phòng ngừa thích hợp.