Một chiến dịch phần mềm độc hại tinh vi trên npm registry đánh cắp những chìa khóa quan trọng kiểm soát hạ tầng đám mây doanh nghiệp.

Phần mềm mã nguồn mở (OSS) cho phép các nhóm phát triển doanh nghiệp đổi mới với tốc độ nhanh, nhưng tốc độ này cũng mang đến rủi ro bảo mật thường bị quản lý kém:
chuỗi cung ứng phần mềm.

Socketđã xác định 10 gói độc hại trên npm, kho lưu trữ cốt lõi của hệ sinh thái JavaScript, triển khai hoạt động đa giai đoạn để đánh cắp thông tin xác thực của nhà phát triển.
Những gói này – tồn tại hơn bốn tháng và tích lũy hàng nghìn lượt tải – là vũ khí đa nền tảng phức tạp được thiết kế để thu thập “báu vật” của doanh nghiệp hiện đại.

Từ công cụ hữu ích đến xâm phạm đám mây

Khác với các cuộc tấn công đơn giản hơn, mục tiêu chính của chiến dịch phần mềm độc hại npm này là đánh cắp có phương pháp các thông tin xác thực cung cấp quyền truy cập trực tiếp vào môi trường đám mây của công ty.
Phần mềm độc hại được xây dựng có mục đích để định vị và lấy cắp các khóa xác thực cho các nền tảng doanh nghiệp lớn.

Tải trọng, một tệp nhị phân 24MB, chủ động quét hệ thống tệp của nạn nhân để tìm các tệp cấu hình liên quan đến AWS (~/.aws/credentials), Kubernetes (~/.kube/config) và Docker (~/.docker/config.json).
Việc đánh cắp các tệp này cung cấp cho kẻ tấn công các chìa khóa cho toàn bộ hạ tầng đám mây của tổ chức, có khả năng cho phép họ truy cập cơ sở dữ liệu sản xuất, làm gián đoạn dịch vụ hoặc đánh cắp dữ liệu khách hàng nhạy cảm.

Cuộc tấn công cũng vô hiệu hóa một lớp phòng thủ chính của doanh nghiệp:
xác thực đa yếu tố (MFA).
Phần mềm độc hại được thiết kế để trích xuất cookie phiên trình duyệt.

Như báo cáo lưu ý, “việc đánh cắp cookie phiên đang hoạt động cho phép tác nhân đe dọa mạo danh nạn nhân mà không cần mật khẩu hoặc yếu tố thứ hai”.
Điều này cấp cho kẻ tấn công quyền truy cập được xác thực ngay lập tức vào các bảng điều khiển web quan trọng như AWS Console, Azure Portal, Google Cloud Console và các kho lưu trữ mã nguồn như GitHub và GitLab.

Phần mềm độc hại cũng nhắm mục tiêu các cơ chế xác thực API hiện đại, thu thập mã thông báo OAuth và JWT.
Những mã thông báo này rất quan trọng cho các đường ống CI/CD và giao tiếp giữa các dịch vụ, và việc đánh cắp chúng có thể cung cấp cho kẻ tấn công quyền truy cập lâu dài vào hệ thống của công ty.

Cách chiến dịch phần mềm độc hại npm lẩn tránh phát hiện

Thành công của cuộc tấn công phụ thuộc vào sự kết hợp giữa kỹ thuật lẩn tránh và kỹ thuật xã hội.
Nó bắt đầu khi một nhà phát triển mắc lỗi đơn giản, cài đặt một gói “typosquatted” nhưdizcordjs(bắt chướcdiscord.js) hoặcreact-router-dom.js(bắt chướcreact-router-dom).

Ngay khi được cài đặt, quy trình được tự động hóa.
Phần mềm độc hại sử dụng hookpostinstallcủa npm, một tính năng tiêu chuẩn, để thực thi ngay lập tức.
Để tránh nghi ngờ, nó “khởi chạy trong cửa sổ terminal mới để tránh bị phát hiện trong quá trình cài đặt”.

Phần mềm độc hại hiển thị lời nhắc CAPTCHA ASCII giả, được thiết kế để “làm cho phần mềm độc hại có vẻ như là bảo vệ bot hợp pháp” và “trì hoãn thực thi, làm cho kết nối với npm install ít rõ ràng hơn”.
Trong khi nhà phát triển bận rộn với lời nhắc này, phần mềm độc hại lấy dấu vết địa chỉ IP của nạn nhân và tải xuống tải trọng cuối cùng.
Sau khi bất kỳ văn bản nào được nhập, phần mềm độc hại thậm chí hiển thị các thông báo cài đặt giả, chẳng hạn như “Đang cài đặt gói discord.js…”, để hoàn thành ảo giác.

Tải trọng này được ẩn đằng sau bốn lớp che giấu riêng biệt – bao gồm trình bao bọc eval, mã hóa XOR và che giấu luồng điều khiển – khiến các công cụ phân tích tĩnh cực kỳ khó phát hiện.
Tệp nhị phân cuối cùng là một công cụ đánh cắp thông tin đa nền tảng nhắm mục tiêu các kho lưu trữ thông tin xác thực gốc của Windows, macOS và Linux.

Giả định bị xâm phạm và củng cố quy trình làm việc của bạn

Sự cố này là một bài kiểm tra căng thẳng về quản trị chuỗi cung ứng phần mềm của doanh nghiệp.
Với việc các gói npm được sử dụng cho chiến dịch phần mềm độc hại này đã hoạt động trong nhiều tháng, bất kỳ tổ chức nào sử dụng chúng phải hành động dứt khoát.
Như nhóm nghiên cứu tuyên bố thẳng thừng: “Bất kỳ hệ thống nào nơi các gói này được cài đặt nên được giả định là đã bị xâm phạm hoàn toàn”.

Một nỗ lực khắc phục toàn diện là không thể thương lượng.
Các nhóm bảo mật phải ưu tiên xoay vòng ngay lập tức tất cả các thông tin xác thực có khả năng bị xâm phạm.
Điều này bao gồm thu hồi tất cả mã thông báo OAuth và JWT, xoay vòng tất cả các khóa API và vô hiệu hóa tất cả các khóa SSH của nhà phát triển.
Tất cả thông tin xác thực được lưu trữ trong keyring hệ thống (như Windows Credential Manager hoặc macOS Keychain) và trình quản lý mật khẩu trình duyệt trên các máy bị ảnh hưởng phải được coi là đã bị đánh cắp.

Đồng thời, các trung tâm điều hành bảo mật phải chủ động săn lùng mối đe dọa.
Nhật ký nên được kiểm tra để tìm bất kỳ kết nối nào đến máy chủ chỉ huy và kiểm soát của kẻ tấn công (địa chỉ IP 195[.]133[.]79[.]43) và bất kỳ dấu hiệu nào của di chuyển ngang bắt nguồn từ máy trạm của nhà phát triển.

Chiến dịch phần mềm độc hại npm mới nhất này một lần nữa cho thấy các nhà phát triển không thể đối xử với việc quản lý phụ thuộc như một nhiệm vụ phát triển cấp thấp.
Triển khai các công cụ bảo mật quét các gói độc hại trước khi chúng được cài đặt, chẳng hạn như tường lửa phụ thuộc hoặc máy quét CLI nâng cao, là điều cần thiết.
Bảo mật phải được nhúng trực tiếp vào đường ống CI/CD và môi trường cục bộ của nhà phát triển, không chỉ ở chu vi mạng.

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!