Một cuộc tấn công vào NPM cho phép bạn xác định sự hiện diện của các gói trong kho lưu trữ riêng

Một lỗ hổng đã được xác định trong NPM cho phép bạn phát hiện sự tồn tại của các gói trong kho đóng. Sự cố xảy ra do thời gian phản hồi khác nhau khi yêu cầu gói hiện có và gói không tồn tại từ bên thứ ba không có quyền truy cập vào kho lưu trữ. Nếu không có quyền truy cập vào bất kỳ gói nào trong kho riêng tư, máy chủ register.npmjs.org sẽ trả về lỗi với mã “404”, nhưng nếu tồn tại gói có tên được yêu cầu, lỗi sẽ xuất hiện với độ trễ đáng chú ý. Kẻ tấn công có thể sử dụng tính năng này để xác định sự hiện diện của gói bằng cách tìm kiếm tên gói bằng từ điển.

Việc xác định tên gói trong kho riêng có thể cần thiết để thực hiện một cuộc tấn công trộn phụ thuộc nhằm thao túng sự giao nhau của tên phụ thuộc trong kho công cộng và kho nội bộ. Biết gói NPM nội bộ nào có trong kho lưu trữ của công ty, kẻ tấn công có thể đặt các gói có cùng tên và số phiên bản mới hơn vào kho lưu trữ NPM công khai. Nếu trong quá trình lắp ráp, các thư viện nội bộ không được liên kết rõ ràng với kho lưu trữ của chúng trong cài đặt, trình quản lý gói npm sẽ coi kho lưu trữ công cộng có mức độ ưu tiên cao hơn và sẽ tải xuống gói do kẻ tấn công chuẩn bị.

GitHub đã được thông báo về vấn đề này vào tháng 3 nhưng từ chối bổ sung biện pháp bảo vệ chống lại cuộc tấn công, với lý do hạn chế về kiến ​​trúc. Các công ty sử dụng kho lưu trữ riêng nên kiểm tra định kỳ sự xuất hiện của các tên trùng lặp trong kho lưu trữ công cộng hoặc thay mặt họ tạo các sơ khai có tên lặp lại tên của các gói trong kho riêng, để kẻ tấn công không thể đặt các gói của họ có tên trùng lặp.

Nguồn: opennet.ru

Mua dịch vụ lưu trữ đáng tin cậy cho các trang web có bảo vệ DDoS, máy chủ VPS VDS 🔥 Mua dịch vụ hosting website đáng tin cậy với bảo vệ DDoS, máy chủ VPS VDS | ProHoster