Sâu npm bí mật vũ trang 42 kho GitHub bằng payload "quá lớn để bị phát hiện"

Phần mềm26 tháng 10, 2026·5 phút đọc

Một con sâu npm thuộc họ Miasma đã ngầm cài payload độc hại vào 42 kho GitHub thật của 11 chủ sở hữu khác nhau. Các khối payload nặng 12,9–13,7 MB được thiết kế đủ lớn để lọt qua bộ lọc tìm kiếm mã nguồn và API của GitHub, khiến giới nghiên cứu bảo mật ban đầu tưởng đây chỉ là thử nghiệm vô hại.

Sâu npm bí mật vũ trang 42 kho GitHub bằng payload "quá lớn để bị phát hiện"

Sâu npm bí mật vũ trang 42 kho GitHub bằng payload "quá lớn để bị phát hiện"

Một con sâu npm thuộc họ Miasma tưởng chừng chỉ là thử nghiệm vô hại hóa ra lại đã ngầm cài mã độc vào 42 kho GitHub thật thuộc 11 chủ sở hữu khác nhau, với thời điểm bị chiếm tài khoản từ tận tháng 7. Điểm đáng chú ý nhất: kẻ tấn công dùng các khối payload dung lượng 12,9–13,7 MB – đủ lớn để né các đường dẫn tìm kiếm mã nguồn và API thường được dùng để phát hiện kiểu xâm nhập này.

Từ "thử nghiệm" đến vụ tấn công thật

Tuần trước, nhóm nghiên cứu tại SafeDep – công ty bảo mật chuỗi cung ứng mã nguồn mở – là đơn vị đầu tiên phát hiện chiến dịch npm mang tên "testmetest", với 18 gói liên quan đến cùng một đối tượng vận hành trong khoảng 19–25/10, bao gồm các bản phát hành chứa mã độc đánh cắp thông tin đăng nhập.

Ban đầu, đội ngũ này kết luận chưa có gói bên thứ ba hay nạn nhân nào bị xâm phạm:

"Toàn bộ hoạt động quan sát được đều thuộc về các tài khoản thử nghiệm của chính kẻ vận hành."

Nhưng cái kết "có hậu" ấy hóa ra lại quá đẹp để thành sự thật. Trong báo cáo công bố hôm thứ Hai, JFrog khẳng định phân tích của mình cho thấy điều ngược lại: kẻ vận hành chiến dịch testmetest "đã vũ trang các kho thật thuộc những lập trình viên và tổ chức có tên tuổi".

Theo các nhà nghiên cứu Guy Korolevski và Yair Benamou của JFrog, vấn đề không chỉ nằm ở thời điểm:

"Các khối payload có dung lượng đủ lớn để né đường dẫn tìm kiếm và API của GitHub – những công cụ thường được dùng để phát hiện kiểu xâm nhập này."

Cách thức tấn công

Con sâu này hoạt động theo nhiều lớp, kết hợp thủ thuật kỹ thuật với khai thác thói quen sử dụng công cụ của lập trình viên:

  • Cài móc thực thi cho các trợ lý lập trình AI và công cụ phát triển, bao gồm Claude, Gemini, Cursor và VS Code.
  • Dùng các lớp bọc đa hình (polymorphic wrapper) nặng 12,9–13,7 MB, giải mã thành payload phát hành qua CI ẩn giấu bên trong.
  • Đánh cắp thông tin đăng nhập, sửa đổi kho mã và cấu hình CI, rồi tự lan truyền qua các gói npm.
  • Dùng một phần mở rộng native đã biên dịch để giải mã và khởi chạy payload riêng biệt.

Trước khi thực thi, bộ nạp (loader) kiểm tra xem môi trường có phải CI runner, container, sandbox, trình gỡ lỗi hay dấu hiệu phân tích tự động nào khác hay không. Nếu phát hiện, nó lặng lẽ thoát để giảm khả năng bị các trình quét bảo mật bắt được.

Ngoài ra, các nhà nghiên cứu còn tìm thấy một bản build thứ hai bỏ qua tệp mã hóa:

"Nó tách tiến trình (fork), rồi chạy một lệnh được mã hóa cứng để tải bộ nạp từ một kho trên chính tài khoản GitHub của kẻ vận hành."

Tài khoản đó – CementBeetleSteeple – lưu trữ tổng cộng 17 kho thuộc chiến dịch.

Mối liên hệ với lỗ hổng cPanel và chiến dịch GitHub Actions

JFrog đã liên kết tài khoản này với một trình quét mang tên shellpanel, từng được Socket ghi nhận trong một chiến dịch quy mô lớn lợi dụng GitHub Actions trên các kho bị xâm phạm để khai thác CVE-2026-41940 và đánh cắp thông tin đăng nhập máy chủ.

Đây là lỗ hổng vượt qua xác thực ảnh hưởng đến cPanel và WHM. CISA đã đưa nó vào danh mục Lỗ hổng bị khai thác đã biết (KEV) vào tháng 4, và cPanel sau đó đã phát hành các bản vá.

"Hạ tầng C2 từng được Socket báo cáo trước đó; các phát hiện của chúng tôi kết nối chúng với cụm nạn nhân GitHub testmetest thông qua các artifact và workflow trên cùng những chủ sở hữu bị chiếm quyền."

Tuy nhiên, JFrog cho biết dù đã tìm thấy 42 kho GitHub bị vũ trang và các nỗ lực khai thác trên phạm vi toàn internet, họ chưa xác nhận được nạn nhân nào của cPanel bị xâm phạm ở hạ nguồn.

Bài học cho lập trình viên Việt Nam

Vụ việc là lời cảnh báo rõ ràng cho cộng đồng phát triển phần mềm trong nước, đặc biệt khi ngày càng nhiều đội ngũ Việt Nam dùng công cụ lập trình AI như Cursor, Copilot hay các trợ lý tích hợp trong VS Code:

  • Kiểm tra kỹ các tệp cấu hình ẩn như .vscode/settings.json, cấu hình hook của Cursor hay Claude, vì đây là nơi mã độc có thể cài móc thực thi.
  • Không tin tưởng tuyệt đối vào quy mô tệp – payload lớn có thể là một kỹ thuật né tránh có chủ đích chứ không phải dấu hiệu vô hại.
  • Rà soát quyền của token GitHub và thu hồi ngay khi phát hiện bất thường, đồng thời cảnh giác với cơ chế "wiper" xóa thư mục home nếu token bị vô hiệu hóa.
  • Thiết lập quét chuỗi cung ứng cho các pipeline CI/CD, và ưu tiên các công cụ có khả năng kiểm tra cả artifact nhị phân lẫn mã nguồn.

Sự việc cũng cho thấy khoảng trống giữa công cụ phát hiện của các nền tảng mã nguồn mở lớn và tốc độ tiến hóa của tội phạm mạng ngày càng thu hẹp – điều mà cả GitHub lẫn các doanh nghiệp Việt đều cần tính đến trong chiến lược bảo mật của mình.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗