Theo Wired, công ty khởi nghiệp blockchain MonoX Finance mới đây thông báo một tin tặc đã đánh cắp được 31 triệu USD bằng cách khai thác một lỗi trong phần mềm mà dịch vụ này sử dụng để soạn thảo hợp đồng thông minh.
MonoX Finance sử dụng một giao thức tài chính phi tập trung được gọi là MonoX cho phép người dùng giao dịch các token kỹ thuật số mà không cần một số yêu cầu của các sàn giao dịch truyền thống. Đại diện của MonoX cho biết “Chủ sở hữu dự án có thể liệt kê các token của họ mà không gặp gánh nặng về yêu cầu vốn và tập trung vào việc sử dụng quỹ để xây dựng dự án thay vì cung cấp thanh khoản”.
Một lỗi kế toán được tích hợp trong phần mềm của công ty này đã cho phép kẻ tấn công tăng giá token MONO và sau đó sử dụng nó để rút tiền của tất cả các token đã ký gửi khác, MonoX Finance tiết lộ trong một bài đăng.
Cụ thể, kẻ tấn công đã sử dụng cùng một token cho cả tokenIn và tokenOut, là các phương pháp trao đổi giá trị của token này cho một token khác. MonoX cập nhật giá sau mỗi lần hoán đổi bằng cách tính giá mới cho cả hai token. Khi quá trình hoán đổi hoàn tất, giá của tokenIn - tức là token do người dùng gửi - sẽ giảm và giá của tokenOut - token mà người dùng nhận được - tăng lên.
Bằng cách sử dụng cùng một token cho cả tokenIn và tokenOut, tin tặc đã tăng giá rất cao token MONO vì việc cập nhật tokenOut đã ghi đè lên bản cập nhật giá của tokenIn. Sau đó, tin tặc đã trao đổi token này để lấy token trị giá 31 triệu USD trên chuỗi khối Ethereum và Polygon.
Dan Guido, chuyên gia về bảo mật các hợp đồng thông minh cho biết, “Những kiểu tấn công này thường xảy ra trong các hợp đồng thông minh, bởi vì nhiều nhà phát triển không thực hiện đúng quy trình để xác định các thuộc tính bảo mật cho mã của họ. Hợp đồng thông minh cần bằng chứng có thể kiểm tra được rằng chúng thực hiện những gì bạn dự định và chỉ những gì bạn dự định. Điều đó có nghĩa là các thuộc tính và kỹ thuật bảo mật đã xác định được sử dụng để đánh giá chúng”.