Poolz gặp sự cố an ninh, khoảng 665.000 USD tài sản bị ảnh hưởng
Gần đây, nhiều dự án Poolz trên các mạng blockchain đã gặp sự cố an ninh, dẫn đến việc một lượng lớn token bị rút trái phép. Sự cố xảy ra vào khoảng 3 giờ 16 phút sáng theo giờ phối hợp thế giới vào ngày 15 tháng 3 năm 2023, ảnh hưởng đến nhiều mạng như Ethereum, BNB Smart Chain và Polygon.
Theo dữ liệu trên chuỗi, sự kiện này liên quan đến nhiều loại token, bao gồm MEE, ESNC, DON, ASW, KMON, POOLZ, v.v. Tổng giá trị của các token bị rút là khoảng 665.000 USD. Hiện tại, một số token bị rút đã được quy đổi thành BNB, nhưng vẫn chưa được chuyển đến địa chỉ khác.
Phân tích cho thấy, nguyên nhân cơ bản của sự kiện này là do sự tồn tại lỗ hổng tràn số trong hợp đồng thông minh. Kẻ tấn công đã khéo léo lợi dụng lỗ hổng trong hàm CreateMassPools để thực hiện việc rút tiền số lượng lớn với chi phí thấp. Cụ thể, kẻ tấn công đã lợi dụng vấn đề tràn số nguyên của hàm getArraySum khi tạo ra các pool thanh khoản, khiến số tiền gửi mà hệ thống ghi nhận lớn hơn nhiều so với số tiền thực tế đã gửi.
Quá trình sự kiện đại khái như sau:
Kẻ tấn công trước tiên đã đổi một lượng nhỏ token MNZ thông qua sàn giao dịch phi tập trung.
Sau đó gọi hàm CreateMassPools, hàm này cho phép người dùng tạo hàng loạt các bể thanh khoản và cung cấp thanh khoản ban đầu.
Khi tạo ra một bể, kẻ tấn công đã khéo léo xây dựng các tham số đầu vào, khiến cho giá trị trả về của hàm getArraySum trở nên rất nhỏ do tràn số, nhưng lượng tiền thực tế được ghi lại lại là một giá trị rất lớn.
Cuối cùng, kẻ tấn công đã rút token vượt xa số lượng thực tế đã gửi thông qua hàm withdraw.
Để ngăn chặn sự việc tương tự xảy ra lần nữa, các chuyên gia trong ngành khuyên các nhà phát triển nên thực hiện các biện pháp sau:
Sử dụng phiên bản mới hơn của ngôn ngữ lập trình Solidity, những phiên bản này có cơ chế kiểm tra tràn được tích hợp sẵn.
Đối với các dự án sử dụng phiên bản Solidity cũ, có thể xem xét việc sử dụng thư viện SafeMath của OpenZeppelin để xử lý các phép toán số nguyên, tránh vấn đề tràn.
Tăng cường kiểm tra mã, đặc biệt chú ý đến những phần có thể gây ra tràn số học.
Cân nhắc việc áp dụng cơ chế bảo mật bổ sung như chữ ký đa chữ nhằm tăng cường lớp bảo vệ cho các thao tác quan trọng.
Sự kiện này một lần nữa nhắc nhở các nhà phát triển dự án blockchain và người dùng rằng, trong hệ sinh thái tiền điện tử đang phát triển nhanh chóng, an ninh luôn là yếu tố được ưu tiên hàng đầu. Các bên dự án nên liên tục hoàn thiện các biện pháp an ninh, trong khi người dùng cũng cần giữ cảnh giác và tham gia cẩn thận vào các hoạt động DeFi.
Xem bản gốc
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Poolz bị tấn công do lỗ hổng bảo mật, 665.000 đô la tài sản bị ảnh hưởng.
Poolz gặp sự cố an ninh, khoảng 665.000 USD tài sản bị ảnh hưởng
Gần đây, nhiều dự án Poolz trên các mạng blockchain đã gặp sự cố an ninh, dẫn đến việc một lượng lớn token bị rút trái phép. Sự cố xảy ra vào khoảng 3 giờ 16 phút sáng theo giờ phối hợp thế giới vào ngày 15 tháng 3 năm 2023, ảnh hưởng đến nhiều mạng như Ethereum, BNB Smart Chain và Polygon.
Theo dữ liệu trên chuỗi, sự kiện này liên quan đến nhiều loại token, bao gồm MEE, ESNC, DON, ASW, KMON, POOLZ, v.v. Tổng giá trị của các token bị rút là khoảng 665.000 USD. Hiện tại, một số token bị rút đã được quy đổi thành BNB, nhưng vẫn chưa được chuyển đến địa chỉ khác.
Phân tích cho thấy, nguyên nhân cơ bản của sự kiện này là do sự tồn tại lỗ hổng tràn số trong hợp đồng thông minh. Kẻ tấn công đã khéo léo lợi dụng lỗ hổng trong hàm CreateMassPools để thực hiện việc rút tiền số lượng lớn với chi phí thấp. Cụ thể, kẻ tấn công đã lợi dụng vấn đề tràn số nguyên của hàm getArraySum khi tạo ra các pool thanh khoản, khiến số tiền gửi mà hệ thống ghi nhận lớn hơn nhiều so với số tiền thực tế đã gửi.
Quá trình sự kiện đại khái như sau:
Kẻ tấn công trước tiên đã đổi một lượng nhỏ token MNZ thông qua sàn giao dịch phi tập trung.
Sau đó gọi hàm CreateMassPools, hàm này cho phép người dùng tạo hàng loạt các bể thanh khoản và cung cấp thanh khoản ban đầu.
Khi tạo ra một bể, kẻ tấn công đã khéo léo xây dựng các tham số đầu vào, khiến cho giá trị trả về của hàm getArraySum trở nên rất nhỏ do tràn số, nhưng lượng tiền thực tế được ghi lại lại là một giá trị rất lớn.
Cuối cùng, kẻ tấn công đã rút token vượt xa số lượng thực tế đã gửi thông qua hàm withdraw.
Để ngăn chặn sự việc tương tự xảy ra lần nữa, các chuyên gia trong ngành khuyên các nhà phát triển nên thực hiện các biện pháp sau:
Sử dụng phiên bản mới hơn của ngôn ngữ lập trình Solidity, những phiên bản này có cơ chế kiểm tra tràn được tích hợp sẵn.
Đối với các dự án sử dụng phiên bản Solidity cũ, có thể xem xét việc sử dụng thư viện SafeMath của OpenZeppelin để xử lý các phép toán số nguyên, tránh vấn đề tràn.
Tăng cường kiểm tra mã, đặc biệt chú ý đến những phần có thể gây ra tràn số học.
Cân nhắc việc áp dụng cơ chế bảo mật bổ sung như chữ ký đa chữ nhằm tăng cường lớp bảo vệ cho các thao tác quan trọng.
Sự kiện này một lần nữa nhắc nhở các nhà phát triển dự án blockchain và người dùng rằng, trong hệ sinh thái tiền điện tử đang phát triển nhanh chóng, an ninh luôn là yếu tố được ưu tiên hàng đầu. Các bên dự án nên liên tục hoàn thiện các biện pháp an ninh, trong khi người dùng cũng cần giữ cảnh giác và tham gia cẩn thận vào các hoạt động DeFi.