Tin tặc đã cài mã độc vào các gói phần mềm nguồn mở với hơn 2 tỷ bản cập nhật hàng tuần trong cuộc tấn công chuỗi cung ứng lớn nhất thế giới từ trước đến nay.
Cuộc tấn công đã xâm phạm gần hai chục gói được lưu trữ trên kho lưu trữ npm, đã được công chúng chú ý vào thứ Hai tuần trước xã hội truyền thông bài viết. Cùng lúc đó, Josh Junon, người bảo trì hoặc đồng bảo trì các gói hàng bị ảnh hưởng, nói rằng anh ta đã bị “pwned” sau khi nhận được email tuyên bố tài khoản của anh ta trên nền tảng sẽ bị đóng trừ khi anh ta đăng nhập vào một trang web và cập nhật thông tin xác thực hai yếu tố của mình.
Đánh bại 2FA một cách dễ dàng
“Xin lỗi mọi người, lẽ ra tôi nên chú ý hơn,” Junon, người sử dụng biệt danh Qix, viết. “Không giống tôi; đã có một tuần căng thẳng. Sẽ làm việc để làm sạch điều này.”
Những kẻ tấn công không xác định đằng sau thỏa hiệp tài khoản đã không lãng phí thời gian để tận dụng nó. Trong vòng một giờ, hàng chục gói mã nguồn mở mà Junon giám sát đã nhận được các bản cập nhật bổ sung mã độc để chuyển các khoản thanh toán bằng tiền điện tử sang ví do kẻ tấn công kiểm soát. Với hơn 280 dòng mã, việc bổ sung hoạt động bằng cách giám sát các hệ thống bị nhiễm đối với các giao dịch tiền điện tử và thay đổi địa chỉ của ví nhận thanh toán cho những người bị kẻ tấn công kiểm soát.
Các gói đã bị xâm phạm, cuối cùng được đánh số là 20, bao gồm một số mã nền tảng nhất thúc đẩy hệ sinh thái JavaScript. Chúng được sử dụng hoàn toàn và cũng có hàng ngàn người phụ thuộc, có nghĩa là các gói npm khác không hoạt động trừ khi chúng cũng được cài đặt. (npm là kho lưu trữ mã chính thức cho các tệp JavaScript.)
“Sự chồng chéo với các dự án nổi bật như vậy làm tăng đáng kể bán kính vụ nổ của sự cố này, các nhà nghiên cứu của ” từ công ty bảo mật Socket nói rằng. “Bằng cách xâm phạm Qix, những kẻ tấn công đã có được khả năng đẩy các phiên bản độc hại của các gói bị phụ thuộc gián tiếp bởi vô số ứng dụng, thư viện và khung.”
Các nhà nghiên cứu nói thêm: “Với phạm vi và việc lựa chọn các gói bị ảnh hưởng, đây dường như là một cuộc tấn công có chủ đích được thiết kế để tối đa hóa phạm vi tiếp cận trên toàn hệ sinh thái.”
Thông điệp email Junon fell for đến từ một địa chỉ email tại support.npmjs.help, một tên miền được tạo ra ba ngày trước để bắt chước npmjs.com chính thức được sử dụng bởi npm. Nó cho biết tài khoản của Junon sẽ bị đóng trừ khi anh cập nhật thông tin liên quan đến 2FA— của mình, yêu cầu người dùng xuất trình khóa bảo mật vật lý hoặc cung cấp mật mã một lần do ứng dụng xác thực cung cấp ngoài mật khẩu khi đăng nhập.