Lỗ Hổng Bảo Mật Nghiêm Trọng Của Gói NPM Lớn Phơi Bày Điểm Yếu Cơ Sở Hạ Tầng Quan Trọng Qua Cuộc Tấn Công Lừa Đảo Đơn Giản

Nhóm Cộng đồng BigGo
Lỗ Hổng Bảo Mật Nghiêm Trọng Của Gói NPM Lớn Phơi Bày Điểm Yếu Cơ Sở Hạ Tầng Quan Trọng Qua Cuộc Tấn Công Lừa Đảo Đơn Giản

Cộng đồng phát triển phần mềm đang chao đảo trước một sự cố bảo mật lớn khác đã phơi bày những điểm yếu cơ bản trong cách bảo vệ cơ sở hạ tầng lập trình quan trọng. Tuần này, các kẻ tấn công đã thành công xâm phạm nhiều gói NPM nổi tiếng, bao gồm DuckDB và thư viện Chalk được sử dụng rộng rãi, thông qua cuộc tấn công lừa đảo mà các chuyên gia bảo mật gọi là tấn công lừa đảo kinh điển vốn có thể dễ dàng ngăn chặn.

Vụ xâm phạm xảy ra khi những người duy trì các gói phổ biến này nhận được email trông chuyên nghiệp tự xưng là từ bộ phận hỗ trợ NPM , yêu cầu cập nhật khẩn cấp cài đặt xác thực hai yếu tố của họ. Các email này đã dẫn nạn nhân đến một trang web giả mạo tại npmjs.help mô phỏng hoàn hảo trang NPM thật, bao gồm tất cả dữ liệu người dùng và cài đặt. Khi những người duy trì nhập thông tin đăng nhập và cập nhật cài đặt bảo mật của họ, các kẻ tấn công đã có quyền truy cập để phát hành các phiên bản độc hại của các gói.

Các gói bị xâm phạm và phiên bản:

Dòng thời gian:

  • Ngày 8 tháng 9: Email lừa đảo được gửi đến các nhà bảo trì
  • Trong vòng 4 giờ: Đội ngũ DuckDB phát hiện sự xâm phạm
  • Phản ứng ngay lập tức: Các phiên bản bị NPM loại bỏ và xóa
  • Phiên bản an toàn mới được phát hành: 1.3.4/1.30.0

Các Biện Pháp Bảo Mật Hiện Tại Tỏ Ra Không Đủ Chống Lại Các Mối Đe Dọa Hiện Đại

Sự cố này đã châm ngòi cho cuộc tranh luận gay gắt về việc liệu các thực hành bảo mật hiện tại có đủ để bảo vệ cơ sở hạ tầng phần mềm quan trọng hay không. Mặc dù NPM yêu cầu xác thực hai yếu tố cho các gói phổ biến, hệ thống hiện tại sử dụng mã dựa trên thời gian đã tỏ ra dễ bị tấn công bởi loại tấn công trung gian này. Các chuyên gia bảo mật hiện đang kêu gọi áp dụng ngay lập tức các phương pháp xác thực tiên tiến hơn.

Cộng đồng đang thúc đẩy mạnh mẽ việc sử dụng passkey và khóa bảo mật phần cứng, được thiết kế để không thể bị lừa đảo vì chúng xác minh danh tính của trang web trước khi gửi bất kỳ dữ liệu xác thực nào. Không giống như các mã xác thực hai yếu tố truyền thống có thể bị chặn, các hệ thống này được liên kết mật mã với các tên miền cụ thể, khiến các trang web giả mạo trở nên vô dụng ngay cả khi chúng trông giống hệt trang thật.

Các Hệ Thống Quản Lý Gói Cần Thay Đổi Cơ Bản

Ngoài việc cải thiện xác thực, các nhà phát triển đang yêu cầu những thay đổi rộng hơn trong cách thức hoạt động của việc phát hành gói. Nhiều người đang kêu gọi việc ký bắt buộc tất cả các gói, tương tự như cách các bản phân phối Linux và cửa hàng ứng dụng di động xác minh tính xác thực của phần mềm. Điều này sẽ đảm bảo rằng ngay cả khi kẻ tấn công có quyền truy cập tài khoản, họ không thể phát hành các gói hợp lệ mà không có khóa mật mã riêng của nhà phát triển.

Các giải pháp được đề xuất khác bao gồm thời gian chờ cho các phiên bản gói mới, trong đó các bản cập nhật sẽ không có sẵn ngay lập tức để cài đặt tự động. Điều này sẽ cho những người duy trì thời gian để nhận thấy các thay đổi trái phép và phản ứng trước khi mã độc hại lan truyền đến hàng triệu người dùng.

Bạn không thể dựa vào việc mọi người không bị lừa đảo 100% thời gian. Có điều gì đó bị hỏng trong một hệ thống mà chỉ một khoảnh khắc thiếu chú ý của một người có thể dẫn đến việc vô số người khác kết thúc với phần mềm bị xâm phạm.

Các Cải Tiến Bảo Mật Được Khuyến Nghị:

  • Passkeys/Hardware Tokens: Xác thực không thể bị lừa đảo gắn liền với các tên miền cụ thể
  • Ký Gói Phần Mềm: Xác minh mật mã tính xác thực của phần mềm
  • Xác Thực Email: Ký GPG cho tất cả các thông tin liên lạc chính thức
  • Trì Hoãn Phát Hành: Thời gian chờ đợi cho các phiên bản gói mới
  • Giám Sát Nâng Cao: Phát hiện các mẫu hoạt động bất thường của tài khoản

Tác Động Rộng Hơn Đến Bảo Mật Chuỗi Cung Ứng Phần Mềm

Sự cố này đại diện cho vụ xâm phạm NPM lớn thứ ba chỉ trong hai tuần, làm nổi bật các lỗ hổng hệ thống trong hệ sinh thái JavaScript mà hàng triệu ứng dụng phụ thuộc vào. Các gói độc hại đã nhắm mục tiêu cụ thể vào các giao dịch tiền điện tử, cho thấy cách các kẻ tấn công đang trở nên tinh vi hơn trong việc kiếm tiền từ những vụ xâm phạm này.

Phản ứng nhanh chóng từ cả đội ngũ DuckDB và NPM - xác định và loại bỏ các gói độc hại trong vòng vài giờ - đã ngăn chặn thiệt hại lan rộng. Tuy nhiên, sự dễ dàng mà các kẻ tấn công xâm nhập những hàng phòng thủ này đã đặt ra những câu hỏi nghiêm trọng về bảo mật của toàn bộ chuỗi cung ứng phần mềm hỗ trợ các ứng dụng web hiện đại.

Sự cố này đóng vai trò như một hồi chuông cảnh báo cho cộng đồng phát triển. Mặc dù các nhà phát triển cá nhân có thể tự bảo vệ mình bằng cách sử dụng trình quản lý mật khẩu xác minh tên miền trang web, giải pháp thực sự đòi hỏi những thay đổi có hệ thống trong cách các kho lưu trữ gói xác thực người dùng và xác minh tính xác thực của phần mềm. Cho đến khi những cải tiến cơ bản này được triển khai, các cuộc tấn công tương tự có khả năng sẽ tiếp tục thành công ngay cả đối với những người duy trì có ý thức bảo mật.

Tham khảo: DuckDB NPM packages 1.3.3 and 1.29.2 compromised with malware