npm Tăng Cường Bảo Mật Chuỗi Cung Ứng Với Tính Năng Xuất Bản Yêu Cầu 2FA và Kiểm Soát Cài Đặt Gói

GitHub đã giới thiệu các biện pháp kiểm soát mới cho npm, bao gồm tính năng ‘staged publishing’ yêu cầu xác thực 2FA và các cờ kiểm soát nguồn cài đặt gói, nhằm tăng cường bảo mật chuỗi cung ứng phần mềm trước các cuộc tấn công ngày càng gia tăng.

GitHub vừa triển khai một loạt các biện pháp kiểm soát mới cho npm nhằm nâng cao tính bảo mật của chuỗi cung ứng phần mềm. Các tính năng này cho phép người duy trì gói (maintainer) có thể phê duyệt rõ ràng một bản phát hành trước khi gói đó được công khai và sẵn sàng để cài đặt.

Staged Publishing: Xuất bản có kiểm soát

Tính năng mới, được gọi là staged publishing, hiện đã có sẵn trên npm. Nó yêu cầu người duy trì phải vượt qua thử thách xác thực hai yếu tố (2FA) để phê duyệt một gói trước khi gói đó được đẩy lên npmjs.com.

GitHub cho biết: “Thay vì xuất bản trực tiếp khiến một phiên bản gói có sẵn ngay lập tức cho người dùng, gói tarball đã được xây dựng trước sẽ được tải lên một hàng đợi ‘stage’, nơi người duy trì phải phê duyệt rõ ràng trước khi nó có thể được cài đặt.”

Công ty con của Microsoft nhấn mạnh rằng thay đổi này đảm bảo “bằng chứng về sự hiện diện” cho mỗi lần xuất bản, kể cả những lần xuất bản từ các quy trình CI/CD không tương tác và xuất bản đáng tin cậy với xác thực OpenID Connect (OIDC).

Để sử dụng tính năng staged publishing, người duy trì gói cần đáp ứng các tiêu chí sau:

  • Có quyền publish gói.
  • Gói đã tồn tại trên npm registry (không áp dụng cho gói hoàn toàn mới).
  • Tài khoản đã bật 2FA.

Các nhà phát triển có thể sử dụng lệnh npm stage publish từ thư mục gốc của gói để gửi gói vào khu vực staging. Để sử dụng lệnh này, cần cập nhật lên npm CLI 11.15.0 hoặc phiên bản mới hơn. GitHub khuyến nghị kết hợp staged publishing với trusted publishing sử dụng OIDC để đạt được mức độ bảo vệ tối ưu.

Kiểm soát nguồn cài đặt gói

Một cập nhật quan trọng thứ hai của npm là việc giới thiệu ba cờ (flag) nguồn cài đặt mới, bổ sung cho cờ --allow-git hiện có:

  • --allow-file: Kiểm soát việc cài đặt từ các đường dẫn tệp cục bộ và tarball cục bộ.
  • --allow-remote: Kiểm soát việc cài đặt từ các URL từ xa, bao gồm các tarball https.
  • --allow-directory: Kiểm soát việc cài đặt từ các thư mục cục bộ.

GitHub cho biết các cờ này cho phép nhà phát triển “áp dụng cùng một phương pháp danh sách cho phép rõ ràng (explicit-allowlist) cho mọi nguồn cài đặt không phải từ registry.”

Những phát triển này diễn ra trong bối cảnh số lượng các cuộc tấn công chuỗi cung ứng phần mềm nhắm vào các hệ sinh thái mã nguồn mở gia tăng mạnh mẽ trong vài tháng qua. Đáng chú ý, một nhóm tội phạm mạng có tên TeamPCP đã “đầu độc” các gói phổ biến ở quy mô chưa từng có thông qua một chu kỳ lây nhiễm tự duy trì.


Nguồn tham khảo: The Hacker News

Nguyen Hung

Nguyen Hung

Keep in touch with our news & offers

Subscribe to Our Newsletter

Comments

Leave a Reply

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *