Một phiên bản độc hại của công cụ phần mềm được các nhà phát triển Injective sử dụng đã được thiết kế để thu thập khóa riêng tư ví và cụm từ khôi phục, gây lo ngại cho các ứng dụng xử lý thông tin ví nhạy cảm thông qua bản phát hành bị ảnh hưởng. Tin tặc đã xâm nhập vào một gói phần mềm được các nhà phát triển sử dụng để xây dựng ví và ứng dụng cho blockchain Injective, thêm mã có khả năng bí mật thu thập thông tin xác thực ví tiền điện tử.
Công ty bảo mật Socket đã tìm thấy mã độc trong phiên bản 1.20.21 của @injectivelabs/sdk-ts, một gói giúp các ứng dụng kết nối với Injective và quản lý các chức năng liên quan đến ví. Gói này thường nhận khoảng 50.000 lượt tải xuống mỗi tuần, mặc dù con số đó bao gồm tất cả các phiên bản và không đại diện cho số người bị ảnh hưởng bởi sự cố.
Socket cho biết phiên bản bị xâm nhập đã được tải xuống khoảng 310 lần. Tuy nhiên, việc tải xuống không đồng nghĩa với việc khóa ví đã bị lộ. Mã độc nguy hiểm cần phải chạy khi ứng dụng đang xử lý khóa riêng tư hoặc cụm từ khôi phục. Chưa có con số xác nhận nào về số lượng ví bị ảnh hưởng được công bố, và cũng không có bằng chứng công khai nào cho thấy funds đã bị đánh cắp.
Sự cố này không liên quan đến việc vi phạm chính blockchain Injective. Thay vào đó, kẻ tấn công nhắm vào một thành phần phần mềm đáng tin cậy được các nhà phát triển sử dụng, một phương pháp thường được mô tả là tấn công chuỗi cung ứng phần mềm.
Các nhà phát triển thường dựa vào các gói phần mềm có sẵn thay vì viết từng phần của ứng dụng từ đầu. Các gói này có thể xử lý các tác vụ như kết nối với blockchain, tạo ví và ký giao dịch. Trong trường hợp này, mã độc được đặt bên trong một gói Injective chính thức và được thiết kế để kích hoạt khi ứng dụng xử lý thông tin ví nhạy cảm. Socket cho biết nó có thể chụp lại khóa riêng tư hoặc cụm từ khôi phục mnemonic và cố gắng gửi dữ liệu đi trong khi ngụy trang hoạt động này dưới dạng báo cáo kỹ thuật thông thường.
Khóa riêng tư cho phép chủ sở hữu kiểm soát ví tiền điện tử liên quan. Cụm từ khôi phục có thể được sử dụng để khôi phục cùng một ví trên thiết bị khác. Không giống như mật khẩu tài khoản thông thường, các thông tin xác thực này không thể chỉ đơn giản là đặt lại sau khi bị lộ.
Việc xâm phạm khóa riêng tư đã trở thành một trong những hình thức tấn công tiền điện tử gây thiệt hại nặng nề nhất vì tội phạm có thể trực tiếp kiểm soát ví mà không cần phá vỡ blockchain cơ bản. Một đánh giá bảo mật gần đây cho thấy các sự cố liên quan đến khóa riêng tư chiếm khoảng 40% tổng số tổn thất được ghi nhận trong bộ dữ liệu mà nó xem xét. Sự cố Injective cũng cho thấy lý do tại sao kẻ tấn công ngày càng nhắm vào phần mềm và nền tảng mà người dùng đã tin tưởng. Tên gói quen thuộc, tài khoản nhà phát triển uy tín hoặc ứng dụng được công nhận có thể khiến hoạt động độc hại trông hợp pháp và giảm khả năng người dùng nghi ngờ.
Socket cho biết các thay đổi trái phép đã được gửi thông qua tài khoản GitHub của một nhà phát triển có lịch sử đóng góp lâu dài cho dự án Injective. Chủ sở hữu tài khoản thực sự sau đó đã phát hiện ra hoạt động này và hoàn tác các thay đổi. Báo cáo hiện có không xác định kẻ tấn công hoặc giải thích cách tài khoản bị truy cập.
Mã đánh cắp ví nằm trong phiên bản 1.20.21 của gói SDK Injective chính. Tuy nhiên, 17 gói khác trong bộ sưu tập npm của Injective đã được phát hành với các liên kết đến cùng phiên bản bị ảnh hưởng. Điều này có nghĩa là một số nhà phát triển có thể đã nhận phần mềm bị xâm nhập một cách gián tiếp. Một ứng dụng có thể đã cài đặt một gói Injective, trong khi gói đó tự động kéo theo SDK bị ảnh hưởng ở hậu trường.
Do đó, sự cố này không nên được mô tả là 18 gói bị nhiễm riêng biệt. Bằng chứng hiện có cho thấy SDK chính chứa chức năng độc hại, trong khi 17 gói liên quan phụ thuộc trực tiếp hoặc gián tiếp vào phiên bản đó. Socket cho biết bản phát hành bị ảnh hưởng đã được đánh dấu là không còn dùng nữa sau khi phát hiện ra sự xâm nhập và một phiên bản sạch đã được phát hành. Tuy nhiên, tại thời điểm báo cáo của Socket, phiên bản bị xâm nhập vẫn chưa được xóa hoàn toàn khỏi npm và các tài liệu phát hành liên quan vẫn có sẵn thông qua GitHub.
Các báo cáo cũng khác nhau về ngày chính xác của sự cố. Dòng thời gian được công bố của Socket đề cập đến ngày 8 tháng 6, trong khi một số báo cáo thứ cấp đặt hoạt động này vào tháng 7. Vì tháng chưa được xác định độc lập, ngày chính xác nên được quy cho nguồn chứ không nên nêu như một sự thật không tranh cãi.
Các nhà phát triển đã sử dụng phiên bản 1.20.21, dù trực tiếp hay thông qua một gói Injective khác, được khuyến nghị giả định rằng thông tin xác thực ví được xử lý bởi phần mềm bị ảnh hưởng có thể đã bị lộ.
Các hành động được khuyến nghị bao gồm:
Chỉ cập nhật gói có thể không bảo vệ được ví nếu thông tin xác thực của nó đã bị sao chép. Khi một bên khác có được khóa riêng tư hoặc cụm từ khôi phục, ví cũ không còn được coi là an toàn. Người dùng ví cũng phải xem xét các quyền họ phê duyệt. Trong một trường hợp riêng biệt, kẻ tấn công đã đánh cắp khoảng 92.000 USD Tether Gold sau khi nạn nhân ký một yêu cầu quyền độc hại, cho thấy tội phạm không phải lúc nào cũng cần lấy trực tiếp cụm từ khoá để chiếm đoạt tài sản.
Mặc dù trường hợp đó sử dụng kỹ thuật khác, nhưng nó làm nổi bật cùng một vấn đề rộng lớn hơn: bảo mật tiền điện tử không chỉ phụ thuộc vào blockchain, mà còn vào phần mềm, các phê duyệt và dịch vụ xung quanh ví. Hiện tại không có bằng chứng nào cho thấy blockchain Injective bị hack, mọi ví Injective đều gặp rủi ro hoặc một lượng tiền điện tử xác định đã bị đánh cắp. Mối nguy hiểm đã biết chỉ giới hạn ở các ứng dụng đã cài đặt gói bị xâm nhập và xử lý thông tin xác thực ví thông qua đó.


