Poolz gặp phải lỗ hổng tấn công tràn số học, thiệt hại lên tới 665.000 đô la
Gần đây, một sự kiện tấn công nhằm vào nền tảng đa chuỗi Poolz đã thu hút sự chú ý của ngành. Kẻ tấn công đã tận 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ừ nhiều mạng như Ethereum, BNB Chain và Polygon, ước tính thiệt hại khoảng 665.000 đô la.
Theo dữ liệu trên chuỗi, cuộc tấn công này xảy ra vào rạng sáng ngày 15 tháng 3 năm 2023. Kẻ tấn công đã thu được nhiều loại token, bao gồm MEE, ESNC, DON, ASW, KMON, POOLZ, v.v. Hiện tại, một phần quỹ bị đánh cắp đã được đổi thành BNB, nhưng vẫn chưa được chuyển đến địa chỉ khác.
Kẻ tấn công chủ yếu đã lợi dụng lỗ hổng trong hàm CreateMassPools của hợp đồng thông minh Poolz. 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. Vấn đề nằm ở hàm getArraySum, hàm này được sử dụng để tính toán số lượng token chuyển vào. Kẻ tấn công thông qua dữ liệu đầu vào được xây dựng một cách tinh vi, khiến cho kết quả cộng dồn vượt quá phạm vi của kiểu uint256, dẫn đến tràn số và giá trị trả về trở thành 1.
Lỗi tràn số học này cho phép kẻ tấn công chỉ cần chuyển vào 1 mã thông báo, đã có thể ghi nhận một khối lượng thanh khoản khổng lồ vượt xa số lượng thực tế trong hệ thống. Sau đó, kẻ tấn công dễ dàng rút ra một lượng lớn mã thông báo không được ủy quyền bằng cách gọi hàm withdraw.
Để ngăn chặn các sự kiện tương tự xảy ra lần nữa, các chuyên gia an ninh khuyên các nhà phát triển sử dụng phiên bản Solidity mới hơn để biên dịch hợp đồng, vì phiên bản mới sẽ tự động thực hiện kiểm tra tràn số. Đối với các dự án sử dụng phiên bản Solidity cũ hơn, có thể xem xét việc giới thiệu thư viện SafeMath của OpenZeppelin để giải quyết vấn đề tràn số nguyên.
Sự kiện này một lần nữa làm nổi bật tầm quan trọng của việc kiểm toán an ninh hợp đồng thông minh, đặc biệt là khi xử lý các phép toán số lớn cần phải cẩn thận hơn. Đối với các dự án DeFi, việc kiểm tra an ninh toàn diện và kiểm tra mã định kỳ là những biện pháp chính để đảm bảo an toàn cho tài sản của người dùng.
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.
13 thích
Phần thưởng
13
6
Chia sẻ
Bình luận
0/400
LonelyAnchorman
· 13giờ trước
Một dự án cũ nữa đã ngừng hoạt động.
Xem bản gốcTrả lời0
WalletDivorcer
· 13giờ trước
Cái này ngắn quá nhỉ
Xem bản gốcTrả lời0
HodlNerd
· 13giờ trước
nói một cách thống kê, những lỗi tràn này đang trở nên dễ đoán... cần phân tích lý thuyết trò chơi tốt hơn thật sự
Poolz bị tấn công tràn số học, thiệt hại đa chuỗi 66,5 nghìn đô la Mỹ
Poolz gặp phải lỗ hổng tấn công tràn số học, thiệt hại lên tới 665.000 đô la
Gần đây, một sự kiện tấn công nhằm vào nền tảng đa chuỗi Poolz đã thu hút sự chú ý của ngành. Kẻ tấn công đã tận 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ừ nhiều mạng như Ethereum, BNB Chain và Polygon, ước tính thiệt hại khoảng 665.000 đô la.
Theo dữ liệu trên chuỗi, cuộc tấn công này xảy ra vào rạng sáng ngày 15 tháng 3 năm 2023. Kẻ tấn công đã thu được nhiều loại token, bao gồm MEE, ESNC, DON, ASW, KMON, POOLZ, v.v. Hiện tại, một phần quỹ bị đánh cắp đã được đổi thành BNB, nhưng vẫn chưa được chuyển đến địa chỉ khác.
Kẻ tấn công chủ yếu đã lợi dụng lỗ hổng trong hàm CreateMassPools của hợp đồng thông minh Poolz. 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. Vấn đề nằm ở hàm getArraySum, hàm này được sử dụng để tính toán số lượng token chuyển vào. Kẻ tấn công thông qua dữ liệu đầu vào được xây dựng một cách tinh vi, khiến cho kết quả cộng dồn vượt quá phạm vi của kiểu uint256, dẫn đến tràn số và giá trị trả về trở thành 1.
Lỗi tràn số học này cho phép kẻ tấn công chỉ cần chuyển vào 1 mã thông báo, đã có thể ghi nhận một khối lượng thanh khoản khổng lồ vượt xa số lượng thực tế trong hệ thống. Sau đó, kẻ tấn công dễ dàng rút ra một lượng lớn mã thông báo không được ủy quyền bằng cách gọi hàm withdraw.
Để ngăn chặn các sự kiện tương tự xảy ra lần nữa, các chuyên gia an ninh khuyên các nhà phát triển sử dụng phiên bản Solidity mới hơn để biên dịch hợp đồng, vì phiên bản mới sẽ tự động thực hiện kiểm tra tràn số. Đối với các dự án sử dụng phiên bản Solidity cũ hơn, có thể xem xét việc giới thiệu thư viện SafeMath của OpenZeppelin để giải quyết vấn đề tràn số nguyên.
Sự kiện này một lần nữa làm nổi bật tầm quan trọng của việc kiểm toán an ninh hợp đồng thông minh, đặc biệt là khi xử lý các phép toán số lớn cần phải cẩn thận hơn. Đối với các dự án DeFi, việc kiểm tra an ninh toàn diện và kiểm tra mã định kỳ là những biện pháp chính để đảm bảo an toàn cho tài sản của người dùng.