Follow Tiendientu on Telegram

Hàng loạt sàn cryptocurrency đóng băng giao dịch token ERC vì “bọ” batchOverflow

phungtram 26/04/2018

Follow Tiendientu on Telegram

Trong cộng đồng công nghệ Medium, các nhà phát triển lẫn người dùng đang xôn xao về vấn đề phát hiện lỗi mới trên nhiều hợp đồng thông minh của Ethereum. Điều này đã khiến nhiều sàn giao dịch cryptocurrency lần lượt tuyên bố tạm dừng giao dịch đối với các loại tiền mã hóa được xây dựng trên nền tảng ERC20 cho đến khi lỗi được khắc phục.

Con bọ mang tên batchOverflow

Một hệ thống tự động dùng để quét và phân tích các token ERC20 đã gửi thông báo về một giao dịch đáng ngờ của token BEC vào ngày 22/4/2018 lúc 03:28:52 a.m UTC. Trong giao dịch đáng ngờ này, người nào đó đã chuyển một lượng cực lớn token BEC – 0x8000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000 (63 0). (Thực tế, có đến 2 lần chuyển token BEC lớn như vậy, với số lượng mỗi lần chuyển là như nhau từ cùng một hợp đồng BeautyChain nhưng đến hai địa chỉ khác nhau)

Hình 1: Giao dịch chuyển token BEC đáng ngờ (với số lượng lớn)
Hình 1: Giao dịch chuyển token BEC đáng ngờ (với số lượng lớn)

Sự bất thường từ giao dịch token BEC đáng ngờ trên đã dẫn đường các nhà nghiên cứu nhìn vào mã hợp đồng thông minh ERC20 có liên quan. Sau khi nghiên cứu, một cuộc tấn công từ việc khai thác lỗ hổng chưa từng được biết trước đó trong hợp đồng thông minh đã bị phát hiện. Để tăng tính nhận biết, lỗi do lỗ hổng gây ra được đặt tên là batchOverflow. Về bản chất, batchOverflow là một vấn đề tràn số nguyên cổ điển.

Hình 2: Hàm dễ bị tấn công: batchTransfer()
Hình 2: Hàm dễ bị tấn công: batchTransfer()

Hàm dễ bị tấn công nằm trong batchTransfer có mã được hiển thị như Hình 2.

Tại dòng 257, biến số cục bộ được tính là sản phẩm của cnt và _value. Tham số thứ hai, tức là _value, có thể là số nguyên 256 bit tùy ý, 0x8000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000 (63 0).

Bằng việc có hai _receivers được đưa vào batchTransfer (), với giá trị _value cực lớn, chúng ta có thể làm tràn số lượng và làm cho nó bằng không. Với giá trị bằng không, kẻ tấn công sau đó có thể vượt qua kiểm tra sanity tại dòng 258 – 259 và làm cho phép trừ trong dòng 261 không thích hợp nữa.

Cuối cùng, được thể hiện trong dòng 262 và 265, sự cân bằng của hai người nhận sẽ được thêm vào bởi _value cực lớn mà không tốn một xu nào của kẻ tấn công.

Sau khi phát hiện ra batchOverflow, các nhà nghiên cứu đã tiếp tục quét và phân tích các hợp đồng thông minh khác. Kết quả là, hơn 10 hợp đồng ERC20 cũng dễ bị tấn công bởi lỗi batchOverflow.

Hàng loạt sàn giao dịch đóng băng giao dịch vì batchOverflow

Tiên phong trong các sàn giao dịch, OKEx có trụ sở tại Hồng Kông đã tạm ngưng các khoản gửi và rút của tất cả token ERC20 vào ngày hôm qua sau khi lỗi batchOverflow bị phát hiện.

Được trích từ website chính thức của sàn giao dịch OKEx:

“Chúng tôi đang tạm ngưng những khoản tiền gửi của tất cả các token ERC20 do phát hiện lỗi mới trên hợp đồng thông minh là batchOverflow. Bằng cách khai thác lỗi, kẻ tấn công có thể tạo ra một số lượng lớn token và gửi chúng vào một địa chỉ thông thường. Điều này làm cho nhiều token ERC20 bị ảnh hưởng bởi thao túng giá của các hacker […] Để bảo vệ lợi ích cộng đồng, chúng tôi đã quyết định tạm ngưng khoản tiền gửi của tất cả các token ERC20 cho đến khi lỗi được khắc phục.”

Tiếp đó, sàn giao dịch Changelly cũng thông báo cho khách về việc tạm ngưng giao dịch các token ERC20

“Gửi khách hàng, các token ERC20 tạm thời không khả dụng do kiểm tra khắc phục lỗi. Chúng tôi sẽ đưa chúng trở lại, một khi chúng tôi chắc chắn không có lỗ hổng trong tài khoản tiền gửi.”

Theo sau, sàn giao dịch Poloniex và HitBTC cũng đưa ra thông báo tương tự cho khách hàng của mình trên trang mạng xã hội Twitter:

“Chúng tôi đã tạm ngưng các khoản tiền gửi và rút của những token ERC20 trong khi chúng tôi xem xét tất cả các hợp đồng thông minh để làm rõ lỗi batchOverflow bị phát hiện. Chúng tôi rất coi trọng các báo cáo về lỗ hỏng bảo mật để đảm bảo rằng quỹ của khách hàng vẫn an toàn. Cảm ơn vì sự kiên nhẫn của bạn.”

“Do một vấn đề tiềm ẩn được phát hiện trong các hợp đồng thông minh ERC20, chúng tôi đã bắt đầu một cuộc kiểm tra nội bộ. Tất cả các khoản tiền gửi và chuyển khoản của những token ERC20 sẽ được nhận trực tuyến nếu phù hợp với kết quả kiểm tra. Vui lòng tham khảo trang System Health cho trạng thái kiểm tra trực tuyến.”

 

Cập nhật tin tức mới nhất trên kênh Telegram.

Săn lùng sản phẩm về cryptocurrency tại Shop Tiền Điện Tử.

Video đề xuất: Phân tích NEO – Ethereum Trung Quốc sẽ đánh bại Ethereum chính hiệu?

Aquarius – Tổng hợp

Follow Tiendientu on Telegram