Ngày 19/9, hợp đồng phía Ethereum mà SingularityNET sử dụng để chuyển đổi tài sản đã bị thao túng bất thường, khiến 8.721.530 FET, trị giá khoảng 1,55 triệu USD theo giá tại thời điểm đó, bị rút khỏi hệ thống. Hai mươi chín phút sau, một khóa đúc NTX của NuNet vốn không hoạt động trong thời gian dài đã tạo thêm 408.532.878 NTX và chuyển toàn bộ số token này tới cùng một ví nhận. Phân tích dữ liệu on-chain của Athena cho thấy hai hoạt động có thể thuộc cùng một chiến dịch phối hợp, nhưng chưa có đủ bằng chứng để xác nhận WMTX cũng bị ảnh hưởng bằng cơ chế tương tự.
Sau đó, Fetch.ai tạm dừng dịch vụ quy đổi AGIX sang FET và hợp đồng cầu nối phía Ethereum. Công ty cho biết hạ tầng bị ảnh hưởng thuộc SingularityNET, chủ yếu liên quan tới cầu nối Ethereum–Cardano; các hợp đồng của Fetch.ai và hoạt động chuyển FET thông thường vẫn đang vận hành.
Hợp đồng chuyển đổi của SingularityNET bị rút sạch
Báo cáo điều tra xác định hợp đồng liên quan là TokenConversionManagerV3. Đây là thành phần chính trong hệ thống cầu nối của SingularityNET, chịu trách nhiệm khóa và giải phóng tài sản ở phía Ethereum. Mã nguồn đã được xác minh trùng với mã công khai của SingularityNET và có liên hệ với token FET hiện thuộc Artificial Superintelligence Alliance.
Các nhà điều tra nhận định thiệt hại bắt nguồn từ việc khóa ủy quyền ở phía sau bị kiểm soát, thay vì kẻ tấn công vượt qua trực tiếp logic của hợp đồng cầu nối. Giao dịch tấn công mang theo một chữ ký hợp lệ, trong đó địa chỉ ký chính là địa chỉ đã được hợp đồng tin cậy từ trước. Nhờ vậy, kẻ tấn công có thể gọi hàm conversionIn để giải phóng toàn bộ FET trong hợp đồng vào ví do mình kiểm soát.
Thiết kế hợp đồng cũng làm tăng quy mô của một giao dịch đơn lẻ. Giới hạn giao dịch 1 triệu FET ban đầu chỉ áp dụng cho lượng token chuyển ra khỏi Ethereum, nhưng không được thực thi trên luồng conversionIn. Kết quả là khoảng 8,72 triệu FET bị rút trong một lần. Ngoài ra, thông điệp chữ ký không gắn với địa chỉ nhận cuối cùng, nên bất kỳ bên nào có được quyền ủy quyền hợp lệ cũng có thể chỉ định ví nhận token.
408,5 triệu NTX được đúc sau 29 phút
Dòng thời gian trên blockchain cho thấy vào 20h50 ngày 19/9 (UTC), khoảng 29 phút sau khi FET bị rút, một khóa đúc NTX của NuNet không hoạt động từ tháng 3/2023 đã tạo 408.532.878 NTX và chuyển toàn bộ tới ví nhận số FET bị đánh cắp. Khối lượng này tương đương khoảng 42% nguồn cung token NuNet được công bố.
Các dấu vết tiếp theo củng cố mối liên hệ giữa hai sự việc. Vào 19h36 cùng ngày, tức 45 phút trước khi FET bị rút, địa chỉ đúc NTX của NuNet đã chuyển trực tiếp 0,3667 ETH tới ví nhận cuối cùng. Một tài khoản khác có liên hệ với kẻ tấn công cũng chuyển 24,3 triệu NTX vào ví này.
Trước khi hợp đồng cầu nối FET bị rút sạch, số NTX mới đúc đã bắt đầu được bán thông qua hạ tầng quy đổi của MetaMask. Điều này cho thấy hoạt động chuyển và thanh lý tài sản liên quan tới hai bộ thông tin xác thực bị kiểm soát có thể đã bắt đầu trước giao dịch rút FET chính.
Thanh lý tài sản bị hạn chế bởi thanh khoản
Kẻ tấn công sau đó xử lý cả hai loại token. Phần FET bị đánh cắp chủ yếu được đổi sang ETH thông qua hạ tầng quy đổi của MetaMask, trong khi hơn 217 triệu NTX mới đúc được bán trên các nền tảng thanh khoản phi tập trung. Vào khoảng 1h10 ngày 20/9, ví trung tâm nắm giữ 547,89 ETH, trị giá khoảng 1,44 triệu USD, đồng thời vẫn còn khoảng 230 triệu NTX.
Việc bán NTX nhanh chóng gặp giới hạn do thanh khoản suy giảm. Bốn giao dịch với tổng cộng 38,55 triệu NTX chỉ làm số dư ETH của kẻ tấn công tăng khoảng 0,30 ETH, do lượng thanh khoản khả dụng trong các pool đã giảm đáng kể. Một giao dịch khác gồm 10 triệu NTX được định tuyến qua Mayan Protocol, cuối cùng thu về khoảng 940 USDT để chuyển qua mạng khác.
Dữ liệu thị trường của các tài sản liên quan cũng biến động mạnh: NTX có thời điểm được giao dịch ở mức 0,00053 USD, tăng 780,38% trong 24 giờ; ETH ở mức 2.747,34 USD, tăng 4,23%; còn AGIX liên quan tới SingularityNET ở mức 0,08 USD, giảm 0,47% trong cùng khoảng thời gian. Đây là các mức giá được ghi nhận sau sự việc, không thể tự chúng xác nhận nguồn cung token hoặc lượng thiệt hại đã được xử lý hoàn tất.
WMTX bị tạm dừng, nhưng chưa xác nhận cùng cơ chế
Ảnh hưởng sau đó lan sang WMTX. Ngày 20/9, Bitvavo tạm dừng nạp và rút WMTX với lý do token này đang liên quan tới một sự cố an ninh cần xử lý, rồi tạm thời ngừng giao dịch. Sàn cho biết số dư của khách hàng vẫn an toàn.
Các tài liệu lịch sử của SingularityNET cho thấy WMTX, FET và NTX từng sử dụng hạ tầng liên quan tới hệ sinh thái cầu nối Ethereum–Cardano của dự án. Tuy nhiên, phân tích pháp chứng hiện tập trung chi tiết vào hoạt động của FET và NTX, chưa chứng minh WMTX bị ảnh hưởng bởi cùng lỗ hổng hoặc cùng một nhóm thông tin xác thực. Cardano trong cùng thời điểm được giao dịch ở mức 0,24 USD, tăng 6,75% trong 24 giờ.
Thu hồi khóa ủy quyền là điều kiện để khôi phục
Fetch.ai cho biết đang phối hợp với SingularityNET để điều tra và tạm dừng các dịch vụ quy đổi trong thời gian này. Lần kiểm tra đầu tiên cho thấy khoảng 5 giờ sau vụ tấn công, địa chỉ ủy quyền của cầu nối FET và thông tin xác thực dùng để đúc NTX vẫn chưa được thay thế hoặc thu hồi. Khi đó, hợp đồng cầu nối FET đã bị rút sạch và ngừng hoạt động.
Việc xử lý các thông tin xác thực vì thế trở thành bước then chốt để khôi phục dịch vụ. Nếu hợp đồng vẫn tiếp tục tin cậy cùng một địa chỉ ủy quyền, việc nạp thanh khoản trực tiếp vào hợp đồng chuyển đổi FET có thể tiếp tục tạo ra rủi ro rút tiền bằng chữ ký đã bị lộ. Với NuNet, vấn đề còn lại là ngăn ví bị ảnh hưởng tiếp tục đúc NTX.
Các tín hiệu vận hành cần theo dõi gồm thời điểm Fetch.ai mở lại dịch vụ quy đổi AGIX sang FET và cầu nối phía Ethereum, cũng như việc các thông tin xác thực liên quan có được thay thế hay không. Đối với WMTX, Bitvavo cho biết giao dịch và chuyển token sẽ tiếp tục bị hạn chế trong thời gian đánh giá; thời điểm sàn mở lại dịch vụ và tiến độ xử lý an toàn thông tin xác thực sẽ quyết định khả năng khôi phục các hoạt động bị ảnh hưởng.