Một chiến dịch tấn công chuỗi cung ứng "có phối hợp" mới đã ảnh hưởng đến tám gói phần mềm trên Packagist, bao gồm mã độc được thiết kế để thực thi một tệp nhị phân Linux được lấy từ một URL GitHub Releases.
"Mặc dù các gói bị ảnh hưởng đều là các gói Composer, mã độc không được thêm vào composer.json," Socket cho biết. "Thay vào đó, nó được chèn vào package.json, nhắm mục tiêu vào các dự án có chứa các công cụ build JavaScript cùng với mã nguồn PHP."
Việc đặt mã độc "xuyên hệ sinh thái" này làm cho hoạt động này trở nên đặc biệt vì các nhà phát triển và nhóm bảo mật khi quét các phụ thuộc PHP thường chỉ tập trung vào metadata liên quan đến Composer, mà bỏ qua các lifecycle hook trong package.json được đi kèm bên trong gói. Các phiên bản độc hại hiện đã bị xóa khỏi Packagist.
Một phân tích về các gói phần mềm đã tiết lộ rằng các repository thượng nguồn của chúng đã bị sửa đổi để bao gồm một script postinstall nhằm cố gắng tải xuống một tệp nhị phân Linux từ URL GitHub Releases ("github[.]com/parikhpreyash4/systemd-network-helper-aa5c751f"), lưu vào thư mục "/tmp/.sshd", thay đổi quyền bằng "chmod" để cấp quyền thực thi cho tất cả người dùng và chạy nó dưới nền.
Tên của các gói phần mềm và các phiên bản bị ảnh hưởng liên quan được liệt kê dưới đây:
- moritz-sauer-13/silverstripe-cms-theme (dev-master)
- crosiersource/crosierlib-base (dev-master)
- devdojo/wave (dev-main)
- devdojo/genesis (dev-main)
- katanaui/katana (dev-main)
- elitedevsquad/sidecar-laravel (3.x-dev)
- r2luna/brain (dev-main)
- baskarcm/tzi-chat-ui (dev-main)
Cuộc điều tra của Socket đã tìm thấy các tham chiếu đến cùng một payload trên 777 tệp trong GitHub, cho thấy đây có thể là một phần của một chiến dịch rộng lớn hơn. Trong ít nhất hai trường hợp, nó đã được thêm vào một GitHub workflow. Tuy nhiên, hiện chưa rõ có bao nhiêu trường hợp trong số này là các vụ xâm nhập riêng biệt, bản fork, bản sao của gói phần mềm hoặc các tham chiếu được lưu trong bộ nhớ cache.
"Điều này cho thấy kẻ tấn công không dựa vào một cơ chế thực thi duy nhất. Trong các artifact của gói, payload được kích hoạt thông qua các script postinstall của package.json," công ty bảo mật ứng dụng cho biết. "Trong các tệp workflow, nó được đặt để chạy trong các job GitHub Actions."
Hơn nữa, bản chất chính xác của payload được tải xuống từ GitHub vẫn chưa rõ ràng, vì tài khoản GitHub liên kết với repository lưu trữ nó không còn khả dụng. Việc lựa chọn tên "gvfsd-network" cho mã độc cũng rất đáng chú ý, vì nó liên quan đến một daemon của GNOME Virtual File System (GVfs) chịu trách nhiệm quản lý và duyệt các chia sẻ mạng.
"Ngay cả khi không có tệp nhị phân giai đoạn hai, trình cài đặt độc hại này vẫn đủ để bị chặn," Socket nói. "Nó cung cấp khả năng thực thi mã từ xa (RCE) trong quá trình cài đặt hoặc quy trình build, đồng thời cố gắng ẩn hoạt động bằng cách vô hiệu hóa xác minh TLS, loại bỏ các lỗi và chạy tệp nhị phân đã tải xuống dưới nền."