Chín gói NuGet độc hại đã được xác định có khả năng thả các tải trọng trì hoãn thời gian (time-delayed payloads) để phá hoại hoạt động cơ sở dữ liệu và làm hỏng các hệ thống điều khiển công nghiệp.
Theo công ty bảo mật chuỗi cung ứng phần mềm Socket, các gói này được một người dùng tên "shanhai666" phát hành vào năm 2023 và 2024, được thiết kế để chạy mã độc sau các ngày kích hoạt cụ thể vào tháng 8 năm 2027 và tháng 11 năm 2028. Các gói này đã được tải xuống tổng cộng 9.488 lần.
"Gói nguy hiểm nhất, Sharp7Extend, nhắm mục tiêu vào các PLC công nghiệp với cơ chế phá hoại kép: chấm dứt quy trình ngẫu nhiên ngay lập tức và lỗi ghi dữ liệu âm thầm bắt đầu từ 30-90 phút sau khi cài đặt, ảnh hưởng đến các hệ thống quan trọng về an toàn trong môi trường sản xuất," nhà nghiên cứu bảo mật Kush Pandya cho biết.
Danh sách các gói độc hại
Dưới đây là danh sách các gói độc hại:
- MyDbRepository (Cập nhật lần cuối vào ngày 13 tháng 5 năm 2023)
- MCDbRepository (Cập nhật lần cuối vào ngày 5 tháng 6 năm 2024)
- Sharp7Extend (Cập nhật lần cuối vào ngày 14 tháng 8 năm 2024)
- SqlDbRepository (Cập nhật lần cuối vào ngày 24 tháng 10 năm 2024)
- SqlRepository (Cập nhật lần cuối vào ngày 25 tháng 10 năm 2024)
- SqlUnicornCoreTest (Cập nhật lần cuối vào ngày 26 tháng 10 năm 2024)
- SqlUnicornCore (Cập nhật lần cuối vào ngày 26 tháng 10 năm 2024)
- SqlUnicorn.Core (Cập nhật lần cuối vào ngày 27 tháng 10 năm 2024)
- SqlLiteRepository (Cập nhật lần cuối vào ngày 28 tháng 10 năm 2024)
Socket cho biết cả chín gói độc hại đều hoạt động đúng như quảng cáo, cho phép các tác nhân đe dọa xây dựng lòng tin trong số các nhà phát triển hạ nguồn, những người có thể tải xuống mà không nhận ra chúng được nhúng một logic bomb được lên lịch kích hoạt trong tương lai.
Tác nhân đe dọa này đã phát hành tổng cộng 12 gói, trong đó ba gói còn lại hoạt động như dự kiến mà không có bất kỳ chức năng độc hại nào. Tất cả chúng đều đã bị xóa khỏi NuGet. Sharp7Extend, công ty cho biết thêm, được thiết kế để nhắm mục tiêu người dùng của thư viện Sharp7 hợp pháp, một triển khai .NET để giao tiếp với các PLC Siemens S7.
Mặc dù việc đóng gói Sharp7 vào gói NuGet mang lại cảm giác an toàn giả tạo, nhưng điều đó che giấu sự thật rằng thư viện này âm thầm tiêm mã độc khi một ứng dụng thực hiện truy vấn cơ sở dữ liệu hoặc hoạt động PLC bằng cách khai thác các C# extension methods.
"Extension methods cho phép các nhà phát triển thêm các phương thức mới vào các kiểu hiện có mà không cần sửa đổi mã gốc – một tính năng C# mạnh mẽ mà tác nhân đe dọa vũ khí hóa để chặn đứng," Pandya giải thích. "Mỗi khi một ứng dụng thực hiện truy vấn cơ sở dữ liệu hoặc hoạt động PLC, các extension methods này sẽ tự động thực thi, kiểm tra ngày hiện tại so với các trigger dates (được mã hóa cứng trong hầu hết các gói, cấu hình được mã hóa trong Sharp7Extend)."
Sau khi ngày kích hoạt trôi qua, mã độc sẽ chấm dứt toàn bộ quy trình ứng dụng với xác suất 20%. Trong trường hợp của Sharp7Extend, logic độc hại được kích hoạt ngay sau khi cài đặt và tiếp tục cho đến ngày 6 tháng 6 năm 2028, khi cơ chế chấm dứt tự dừng lại.
Gói này cũng bao gồm một tính năng phá hoại các hoạt động ghi vào PLC 80% thời gian sau một độ trễ ngẫu nhiên từ 30 đến 90 phút. Điều này cũng có nghĩa là cả hai trigger – việc chấm dứt quy trình ngẫu nhiên và lỗi ghi – đều hoạt động song song một khi thời gian ân hạn kết thúc.
Mặt khác, một số triển khai SQL Server, PostgreSQL và SQLite liên quan đến các gói khác được đặt để kích hoạt vào ngày 8 tháng 8 năm 2027 (MCDbRepository) và ngày 29 tháng 11 năm 2028 (SqlUnicornCoreTest và SqlUnicornCore).
"Phương pháp tiếp cận phân tầng này mang lại cho tác nhân đe dọa một khoảng thời gian dài hơn để thu thập nạn nhân trước khi mã độc kích hoạt theo thời gian trì hoãn, đồng thời ngay lập tức phá vỡ các hệ thống điều khiển công nghiệp," Pandya nói.
Hiện tại vẫn chưa biết ai đứng đằng sau cuộc tấn công chuỗi cung ứng này, nhưng Socket cho biết phân tích mã nguồn và việc lựa chọn tên "shanhai666" cho thấy đây có thể là công việc của một tác nhân đe dọa, có thể có nguồn gốc từ Trung Quốc.
"Chiến dịch này thể hiện các kỹ thuật tinh vi hiếm khi được kết hợp trong các cuộc tấn công chuỗi cung ứng NuGet," công ty kết luận. "Các nhà phát triển đã cài đặt các gói vào năm 2024 sẽ chuyển sang các dự án hoặc công ty khác vào năm 2027-2028 khi mã độc cơ sở dữ liệu kích hoạt, và việc thực thi xác suất 20% che giấu các cuộc tấn công có hệ thống dưới dạng các sự cố ngẫu nhiên hoặc lỗi phần cứng."
"Điều này làm cho việc ứng phó sự cố và điều tra pháp y gần như không thể, các tổ chức không thể truy tìm mã độc trở lại điểm khởi đầu, xác định ai đã cài đặt dependency bị xâm phạm hoặc thiết lập một dòng thời gian rõ ràng của sự thỏa hiệp, xóa sạch dấu vết tấn công một cách hiệu quả."