Một cuộc tấn công phishing tinh vi đã thành công xâm nhập vào một số gói phát triển JavaScript được sử dụng rộng rãi, ảnh hưởng đến hàng nghìn nhà phát triển trên toàn thế giới. Cuộc tấn công nhắm vào JounQin, người duy trì các công cụ định dạng mã phổ biến, thông qua một email lừa đảo dẫn đến việc phát hành các phiên bản gói độc hại chứa malware Windows.
Sự cố bắt đầu khi JounQin trở thành nạn nhân của một email phishing có vẻ như đến từ npm, sổ đăng ký gói JavaScript. Kẻ tấn công đã thành công có được quyền truy cập vào tài khoản npm của anh ta và phát hành các phiên bản bị xâm nhập của một số công cụ phát triển thiết yếu, bao gồm eslint-config-prettier và eslint-plugin-prettier - những gói được coi là bắt buộc đối với hầu hết các dự án JavaScript và TypeScript.
Các gói đã bị xâm nhập được xác nhận và phiên bản:
- eslint-config-prettier: 8.10.1, 9.1.1, 10.1.6, 10.1.7
- eslint-plugin-prettier: 4.2.2, 4.2.3
- snyckit: 0.11.9
- @pkgjs/core: 0.2.8
- napi-postinstall: 0.3.1
Triển Khai Malware Chỉ Dành Cho Windows Gây Lo Ngại Về Bảo Mật
Các gói độc hại đặc biệt nhắm vào người dùng Windows bằng cách cài đặt một tệp DLL với chức năng không rõ. Cách tiếp cận có mục tiêu này cho thấy kẻ tấn công có chiến lược rõ ràng cho việc phân phối payload. Một người dùng bị ảnh hưởng báo cáo rằng malware đã vô hiệu hóa các tính năng bảo mật trong trình duyệt Chrome, cho thấy khả năng xâm nhập hệ thống nghiêm trọng.
Tác động của cuộc tấn công được khuếch đại bởi các công cụ quản lý phụ thuộc tự động như Dependabot và Renovate Bot, tự động tạo pull request để nâng cấp các dự án lên phiên bản bị xâm nhập. Nhiều bản cập nhật tự động này được merge mà không có đánh giá thủ công, lan truyền mã độc hại qua nhiều repository.
Tác động bảo mật:
- Phần mềm độc hại chỉ nhắm mục tiêu vào hệ thống Windows
- Cài đặt các tệp DLL với chức năng không rõ
- Vô hiệu hóa các tính năng bảo mật của trình duyệt Chrome
- Lây lan thông qua các công cụ quản lý phụ thuộc tự động
- Tất cả các phiên bản độc hại đã bị loại bỏ và thay thế
Cộng Đồng Kêu Gọi Các Biện Pháp Bảo Mật Tốt Hơn
Cộng đồng nhà phát triển đã phản ứng bằng việc kêu gọi cải thiện các biện pháp bảo mật. Một số chuyên gia đề xuất rằng npm nên triển khai các tuyên bố nguồn gốc bắt buộc cho các gói phổ biến, điều này có thể đã ngăn chặn cuộc tấn công này bằng cách yêu cầu bằng chứng rằng các phiên bản mới đến từ các nguồn hợp pháp.
Một điều Npm nên triển khai (ít nhất là cho các gói phổ biến) là từ chối phát hành các phiên bản mới không có nguồn gốc nếu các phiên bản trước đó có nó. Điều này có thể đã ngăn chặn cuộc tấn công này.
Sự cố cũng đã khơi mào các cuộc thảo luận về các thực hành phát triển an toàn hơn. Một số thành viên cộng đồng khuyến nghị vô hiệu hóa các script cài đặt theo mặc định và sử dụng các trình quản lý gói yêu cầu phê duyệt rõ ràng cho các script như vậy. Những người khác đề xuất chuyển từ các công cụ phức tạp với hàng trăm phụ thuộc sang các lựa chọn thay thế đơn giản hơn như Biome hoặc linter tích hợp của Deno.
![]() |
---|
Một biểu đồ đường cho thấy sự tăng trưởng có thể đại diện cho sự thúc đẩy của cộng đồng nhà phát triển nhằm cải thiện các biện pháp bảo mật sau cuộc tấn công |
Điểm Yếu Bảo Mật Email Bị Phơi Bày
Cuộc tấn công phishing thành công một phần do các lỗ hổng thiết kế phổ biến của client email ưu tiên tính thẩm mỹ hơn bảo mật. Kẻ tấn công đã sử dụng tên hiển thị có vẻ hợp pháp trong khi ẩn địa chỉ email độc hại thực tế - một kỹ thuật mà nhiều client email làm cho khó phát hiện.
Các chuyên gia bảo mật chỉ ra rằng điều này đại diện cho một vấn đề rộng hơn với giao diện client email, thường ẩn thông tin bảo mật quan trọng như địa chỉ người gửi đầy đủ và đích đến của liên kết. Sự cố này phục vụ như một lời nhắc nhở rằng ngay cả các nhà phát triển có kinh nghiệm cũng có thể trở thành nạn nhân của các nỗ lực phishing được chế tạo kỹ lưỡng, đặc biệt khi mệt mỏi hoặc mất tập trung.
Người duy trì kể từ đó đã xóa token npm độc hại, deprecated tất cả các phiên bản bị ảnh hưởng và phát hành các bản thay thế sạch. Tuy nhiên, sự cố này làm nổi bật tính dễ bị tổn thương liên tục của chuỗi cung ứng phần mềm và nhu cầu về các thực hành bảo mật tốt hơn trong toàn bộ hệ sinh thái phát triển.
Tham khảo: Supply Chain Security Alert: eslint-config-prettier Package Shows Signs of Compromise