GitHub mở rộng khả năng cảnh báo mã độc cho 8 hệ sinh thái package
GitHub vừa nâng cấp cơ sở dữ liệu Advisory Database, cho phép Dependabot phát hiện mã độc trên 8 hệ sinh thái package phổ biến thay vì chỉ giới hạn ở npm như trước...
- Giọng nữ Bắc
Việc cài đặt một package chứa mã độc có thể khiến thông tin xác thực của bạn bị đánh cắp ngay lập tức. Trước đây, GitHub chỉ có thể gắn cờ các mối đe dọa này trong hệ sinh thái npm. Tuy nhiên, đội ngũ kỹ thuật phụ trách Dependabot đã thay đổi điều đó bằng cách tích hợp dữ liệu từ kho lưu trữ mã độc cộng đồng của OpenSSF.
Table Of Content
Từ một lên tám hệ sinh thái
Trước đây, GitHub đã nhập dữ liệu lỗ hổng từ các nguồn như RubySec, RustSec hay PyPA. Tuy nhiên, dữ liệu về mã độc lại đi theo một luồng riêng biệt và chỉ giới hạn cho npm. Để mở rộng phạm vi bảo mật cho 8 hệ sinh thái lớn gồm npm, PyPI, Maven, RubyGems, NuGet, Go, crates.io và PHP Composer, GitHub đã chọn cách xây dựng một bộ nhập dữ liệu (importer) thống nhất thay vì tạo ra 8 hệ thống riêng lẻ.
Hệ thống này tận dụng kho lưu trữ malicious-packages của OpenSSF, nơi chứa hơn 15.000 báo cáo về các loại hình tấn công như typosquatting, dependency-confusion và các tệp nhị phân độc hại.
Quy trình xử lý và kiểm soát dữ liệu
Việc chuẩn hóa dữ liệu là thách thức lớn nhất. Các nguồn dữ liệu bên ngoài thường có định dạng không đồng nhất với hệ thống của GitHub. Đội ngũ kỹ thuật đã phải xử lý các vấn đề như: khác biệt trong cách đặt tên package, định dạng phiên bản (version ranges) và các báo cáo bị rút lại (retracted). Một điểm thú vị là GitHub đã áp dụng cơ chế loại bỏ trùng lặp thông minh: hệ thống sẽ tự động lọc bỏ các báo cáo mà chính GitHub đã đóng góp vào OpenSSF để tránh việc nhập dữ liệu vòng lặp.
Cơ chế bảo mật cho luồng dữ liệu tự động
Vì các cảnh báo mã độc được tự động hóa để đảm bảo tốc độ phản ứng nhanh nhất, GitHub đã thiết lập ba lớp bảo vệ để đối phó với rủi ro dữ liệu đầu vào bị sai lệch:
- Giới hạn lô (Batch caps): Nếu số lượng cảnh báo trong một lần nhập vượt quá ngưỡng cho phép, hệ thống sẽ tự động dừng lại và gửi thông báo cho đội ngũ kỹ thuật thay vì tiếp tục xử lý.
- Truy xuất nguồn gốc (Provenance): Mỗi bản ghi đều được gắn với commit cụ thể từ kho lưu trữ nguồn, giúp xác định nhanh chóng nguồn gốc của thông tin trong trường hợp xảy ra sự cố.
- Khả năng hoàn tác (Rollback): Toàn bộ một lô dữ liệu có thể được hoàn tác chỉ bằng một thao tác nếu phát hiện sai sót, đảm bảo tính toàn vẹn cho cơ sở dữ liệu.
Người dùng cần làm gì?
Tính năng cảnh báo mã độc hiện đã khả dụng cho người dùng Dependabot. Bạn có thể kích hoạt tính năng này trong phần cài đặt bảo mật của repository, tổ chức hoặc doanh nghiệp. Sau khi bật, Dependabot sẽ tự động đối chiếu các dependency hiện tại của bạn với cơ sở dữ liệu mã độc mới nhất để đưa ra cảnh báo kịp thời.
Nguồn tham khảo: GitHub Blog

No Comment! Be the first one.