Tấn công mạng: Cập nhật bản vá bảo mật khẩn cấp!

Tấn công mạng: Cập nhật bản vá bảo mật khẩn cấp!
CLOUD SERVER
Vững hạ tầng • Chắc thành công
☁️
⚡ Hiệu năng cao
🛡️ Bảo mật
📈 Mở rộng dễ dàng
🕒 Hỗ trợ 24/7
TÌM HIỂU NGAY

Một gói phát triển JavaScript đã bị xâm nhập qua chuỗi cung ứng, có khả năng chạy mã độc khi cài đặt. Sự cố này ảnh hưởng đến một công cụ có khoảng 150.000 lượt tải hàng tuần, gây rủi ro cho các hệ thống tự động hóa và nhà phát triển.

Phát hiện và đặc điểm của cuộc tấn công

Kẻ tấn công đã công bố mười phiên bản bị nhiễm vào ngày 28 tháng 8 theo hai đợt. Chúng bao gồm mọi dòng phiên bản đang được bảo trì, và một bản cập nhật phụ thuộc thông thường có thể trở thành điểm truy cập để đánh cắp thông tin xác thực.

Mã độc được kích hoạt trong quá trình cài đặt thông qua việc lạm dụng cấu hình build và trong một số phiên bản, thông qua lệnh pre-install. Phân tích từ Socket.dev cho thấy hoạt động này là một phần của cuộc tấn công Mini Shai-Hulud đang diễn ra, có thể tái sử dụng quyền truy cập bị đánh cắp và thay đổi môi trường build, biến việc cài đặt thành một vấn đề chuỗi cung ứng rộng lớn hơn.

Các phiên bản độc hại mang theo hồ sơ nguồn gốc npm hợp lệ, nghĩa là bằng chứng về việc một quy trình làm việc đã được phê duyệt đã xây dựng gói phần mềm không tiết lộ mã độc trong bản phát hành. Các phiên bản bị ảnh hưởng đã được ký thông qua tính năng xuất bản đáng tin cậy của GitHub Actions.

Cơ chế xâm nhập và khai thác

Các nhà nghiên cứu phát hiện ra rằng một quy trình build có thể được kích hoạt bởi một bình luận trên pull request. Mã độc sau đó được lấy từ fork của pull request đó và được xuất bản bằng danh tính đáng tin cậy. Quy trình này không xác minh người bình luận có phải là người đóng góp đáng tin cậy cho kho lưu trữ hay không. Hồ sơ nguồn gốc có thể cho biết quy trình tự động nào đã tạo ra một tạo phẩm, nhưng không thể xác nhận rằng nó đã xây dựng mã nguồn an toàn.

Đường dẫn cài đặt này tương tự như kỹ thuật được mô tả trong sự cố chuỗi cung ứng binding.gyp trước đây, nơi siêu dữ liệu build kích hoạt mã bên ngoài các tập lệnh vòng đời mà nhiều quy trình kiểm tra tập trung vào. Tại đây, chương trình độc hại được ẩn trong một tệp JavaScript bị xáo trộn và khởi chạy thông qua đường dẫn build gốc.

Sau khi kích hoạt, payload sẽ quét các tệp dự án, bộ nhớ tiến trình, dịch vụ siêu dữ liệu đám mây và các biến CI để tìm mã thông báo truy cập và các bí mật khác. Nó kiểm tra xem thông tin xác thực bị đánh cắp có hoạt động hay không, thu thập kết quả dưới dạng mã hóa và lưu trữ chúng trong các kho lưu trữ GitHub công khai do kẻ tấn công tạo ra. Điều này có thể đồng thời làm lộ quyền truy cập vào kho lưu trữ mã, trình đăng ký gói, dịch vụ đám mây và công cụ dành cho nhà phát triển.

Phần mềm độc hại cũng sửa đổi các quy trình công việc của GitHub Actions, theo dõi các mã thông báo trên macOS và Linux, và thêm các lệnh nền vào cài đặt của trợ lý mã AI. Nó có thể sử dụng các máy chủ SSH có thể truy cập để lây lan và làm hỏng các gói trong phạm vi đăng ký có thể ghi.

Khuyến nghị phòng ngừa và ứng phó

Các tổ chức nên coi việc cài đặt một phiên bản bị ảnh hưởng là một sự cố xâm phạm máy chủ tiềm ẩn. Các nhóm nên cách ly máy hoặc trình chạy trước, bảo quản bằng chứng, vô hiệu hóa các cơ chế duy trì và sau đó mới thu hồi hoặc kiểm tra các mã thông báo bị lộ, vì trình giám sát có thể phản ứng khi mã thông báo GitHub được lưu trữ trả về lỗi.

Các môi trường bị ảnh hưởng nên được xây dựng lại từ một hình ảnh sạch đã biết nếu có thể. Sau khi ngăn chặn, quản trị viên nên xoay vòng các thông tin xác thực của gói, GitHub, đám mây, CI và công cụ dành cho nhà phát triển có thể truy cập được. Họ cũng cần kiểm tra các tệp khóa (lockfiles) và danh sách vật liệu phần mềm (software bills of materials) để biết việc sử dụng trực tiếp và gián tiếp, xóa bộ nhớ đệm và cài đặt lại từ một tệp khóa sạch được ghim vào một bản phát hành đã biết là tốt.

Các nhóm bảo mật nên xem xét quy trình tạo kho lưu trữ, thay đổi quy trình làm việc, hoạt động triển khai, các commit cập nhật phụ thuộc đáng ngờ và các tạo phẩm không mong muốn. Báo cáo liên quan về bí mật GitHub Actions bị xâm phạm cho thấy lý do tại sao các trình chạy CI xứng đáng nhận được sự khẩn cấp trong ứng phó sự cố như các điểm cuối của nhân viên.

Các nhà bảo trì nên yêu cầu kiểm tra những người đóng góp đáng tin cậy trước khi một quy trình làm việc được kích hoạt bởi bình luận có thể xuất bản mã. Trường hợp này củng cố bài học từ sự cố gói npm Keyv: sự tin cậy vào các phụ thuộc không thể chỉ dựa vào chữ ký của trình đăng ký hoặc hồ sơ nguồn gốc. Xem xét các trình kích hoạt bản phát hành, khóa các phụ thuộc và giới hạn đặc quyền của mã thông báo có thể giảm thiểu phạm vi ảnh hưởng khi một đường dẫn xuất bản đáng tin cậy bị lạm dụng.

Chỉ số xâm nhập (IoCs)

Các chỉ số xâm nhập (IoCs) có thể được tìm thấy trong tài liệu sau:

Lưu ý: Địa chỉ IP và tên miền được cố tình làm mờ (ví dụ: [.] ) để ngăn chặn việc phân giải hoặc liên kết ngoài ý muốn. Chỉ khôi phục lại định dạng gốc trong các nền tảng tình báo mối đe dọa được kiểm soát như MISP, VirusTotal hoặc SIEM của bạn.