Poolz bị tấn công gây thiệt hại khoảng 665.000 USD
Gần đây, một sự kiện tấn công nhằm vào Poolz đã thu hút sự chú ý rộng rãi từ cộng đồng tiền điện tử. Theo dữ liệu trên chuỗi, cuộc tấn công xảy ra vào ngày 15 tháng 3 năm 2023, liên quan đến nhiều mạng lưới như Ethereum, BNB Chain và Polygon. Kẻ tấn công đã lợi dụng lỗ hổng tràn số trong hợp đồng thông minh để thành công đánh cắp một lượng lớn token, tổng giá trị gần 66,5 nghìn đô la.
Cuộc tấn công này liên quan đến nhiều loại token khác nhau, bao gồm MEE, ESNC, DON, ASW, KMON, POOLZ, v.v. Một phần token mà kẻ tấn công đã thu được đã được đổi thành BNB, nhưng tính đến thời điểm hiện tại, số tiền này vẫn chưa được chuyển đi.
Quá trình tấn công chủ yếu được chia thành ba bước:
Kẻ tấn công đầu tiên đã đổi một số lượng nhất định token MNZ thông qua một sàn giao dịch phi tập trung.
Sau đó, kẻ tấn công đã gọi hàm CreateMassPools. Hàm này lẽ ra 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. Tuy nhiên, do hàm getArraySum gặp vấn đề tràn số học, kẻ tấn công đã tận dụng được lỗ hổng này. Cụ thể, mảng _StartAmount mà kẻ tấn công truyền vào chứa các giá trị vượt quá giới hạn uint256, dẫn đến kết quả cộng dồn bị tràn, và giá trị trả về cuối cùng là 1. Điều này khiến kẻ tấn công chỉ cần chuyển vào 1 token, đã có thể ghi nhận một lượng thanh khoản vượt xa số lượng thực tế trong hệ thống.
Cuối cùng, kẻ tấn công đã rút token bằng cách gọi hàm withdraw, hoàn thành toàn bộ quá trình tấn công.
Sự kiện này lại một lần nữa làm nổi bật tầm quan trọng của an ninh hợp đồng thông minh, đặc biệt là khi xử lý các phép toán lớn. Để ngăn chặn các vấn đề tương tự, các nhà phát triển nên xem xét việc sử dụng phiên bản mới hơn của ngôn ngữ lập trình Solidity, các phiên bản này sẽ tự động thực hiện kiểm tra tràn trong quá trình biên dịch. Đối với các dự án sử dụng phiên bản Solidity cũ hơn, nên áp dụng thư viện SafeMath do OpenZeppelin cung cấp để ngăn ngừa vấn đề tràn số nguyên.
Sự kiện tấn công này nhắc nhở chúng ta rằng trong lĩnh vực blockchain phát triển nhanh chóng, an ninh luôn là yếu tố được ưu tiên hàng đầu. Các dự án cần thường xuyên xem xét và cập nhật các biện pháp an ninh của mình, trong khi người dùng cũng nê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
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.
15 thích
Phần thưởng
15
3
Chia sẻ
Bình luận
0/400
Degentleman
· 9giờ trước
Lại một hợp đồng thông minh tràn ra, ối dời.
Xem bản gốcTrả lời0
MevTears
· 14giờ trước
又被Phiếu giảm giá了
Xem bản gốcTrả lời0
BearMarketSurvivor
· 14giờ trước
Hướng dẫn cho người mới về cách tự sát hoa mỹ bài học đầu tiên
Poolz bị tấn công tràn số học, thiệt hại 665.000 USD
Poolz bị tấn công gây thiệt hại khoảng 665.000 USD
Gần đây, một sự kiện tấn công nhằm vào Poolz đã thu hút sự chú ý rộng rãi từ cộng đồng tiền điện tử. Theo dữ liệu trên chuỗi, cuộc tấn công xảy ra vào ngày 15 tháng 3 năm 2023, liên quan đến nhiều mạng lưới như Ethereum, BNB Chain và Polygon. Kẻ tấn công đã lợi dụng lỗ hổng tràn số trong hợp đồng thông minh để thành công đánh cắp một lượng lớn token, tổng giá trị gần 66,5 nghìn đô la.
Cuộc tấn công này liên quan đến nhiều loại token khác nhau, bao gồm MEE, ESNC, DON, ASW, KMON, POOLZ, v.v. Một phần token mà kẻ tấn công đã thu được đã được đổi thành BNB, nhưng tính đến thời điểm hiện tại, số tiền này vẫn chưa được chuyển đi.
Quá trình tấn công chủ yếu được chia thành ba bước:
Kẻ tấn công đầu tiên đã đổi một số lượng nhất định token MNZ thông qua một sàn giao dịch phi tập trung.
Sau đó, kẻ tấn công đã gọi hàm CreateMassPools. Hàm này lẽ ra 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. Tuy nhiên, do hàm getArraySum gặp vấn đề tràn số học, kẻ tấn công đã tận dụng được lỗ hổng này. Cụ thể, mảng _StartAmount mà kẻ tấn công truyền vào chứa các giá trị vượt quá giới hạn uint256, dẫn đến kết quả cộng dồn bị tràn, và giá trị trả về cuối cùng là 1. Điều này khiến kẻ tấn công chỉ cần chuyển vào 1 token, đã có thể ghi nhận một lượng thanh khoản vượt xa số lượng thực tế trong hệ thống.
Sự kiện này lại một lần nữa làm nổi bật tầm quan trọng của an ninh hợp đồng thông minh, đặc biệt là khi xử lý các phép toán lớn. Để ngăn chặn các vấn đề tương tự, các nhà phát triển nên xem xét việc sử dụng phiên bản mới hơn của ngôn ngữ lập trình Solidity, các phiên bản này sẽ tự động thực hiện kiểm tra tràn trong quá trình biên dịch. Đối với các dự án sử dụng phiên bản Solidity cũ hơn, nên áp dụng thư viện SafeMath do OpenZeppelin cung cấp để ngăn ngừa vấn đề tràn số nguyên.
Sự kiện tấn công này nhắc nhở chúng ta rằng trong lĩnh vực blockchain phát triển nhanh chóng, an ninh luôn là yếu tố được ưu tiên hàng đầu. Các dự án cần thường xuyên xem xét và cập nhật các biện pháp an ninh của mình, trong khi người dùng cũng nên giữ cảnh giác và tham gia cẩn thận vào các hoạt động DeFi.