Quay lại blog

846 gói npm độc hại: Chiến dịch Flooding Dropper nguy hiểm như thế nào đối với các đội ngũ thu thập dữ liệu

Vào ngày 5 tháng 8 năm 2026, Sonatype đã ghi nhận trong npm chiến dịch Flooding Dropper — 846 gói độc hại (đến ngày 11 tháng 8, số lượng đã tăng lên 1033). Trình tải đa nền tảng dọn dẹp các biến môi trường, thông tin đăng nhập và phiên làm việc. Chúng ta sẽ phân tích cơ chế của chiến dịch và lý do tại sao đối với các nhóm phân tích, điều này tốn kém hơn so với việc rò rỉ mật khẩu thông thường: cùng với .env, các thông tin xác thực proxy, cookie phiên và hồ sơ của các trình duyệt chống phát hiện cũng bị rời đi.

📅12 tháng 8, 2026
846 gói npm độc hại: Chiến dịch Flooding Dropper nguy hiểm như thế nào đối với các đội ngũ thu thập dữ liệu
```html

Ngày 5 tháng 8 năm 2026, các nhà nghiên cứu Sonatype đã ghi nhận một chiến dịch trong npm mà họ gọi là Flooding Dropper: 846 thành phần độc hại được phát hành từ hàng chục tài khoản dùng một lần. Sau một tuần, số lượng đã tăng lên — trong dữ liệu cập nhật của OpenSourceMalware, theo dõi cùng một chiến dịch dưới tên WEL1DROPPER, đã có 1033 gói được xác nhận. Bên trong — một trình tải chéo nền tảng, kéo giai đoạn thứ hai trên Windows, macOS và Linux và xóa sạch mọi thứ trên máy của nhà phát triển: biến môi trường, thông tin xác thực, phiên làm việc.

Đối với các nhóm sống bằng việc phân tích và tự động hóa, đây không phải là "một tin tức khác về npm". Ngăn xếp thu thập dữ liệu — chính là npm: Playwright, Puppeteer, Crawlee, các lớp bao quanh các đại lý proxy, trình phân tích HTML, hàng đợi. Và trên cùng một máy mà tất cả những thứ này được cài đặt bởi một nhóm, thường có một .env với tên đăng nhập và mật khẩu cho nhóm proxy, cookie-jar cho các phiên và hồ sơ của trình duyệt chống phát hiện. Hãy cùng xem điều gì đã xảy ra và điều này có ý nghĩa gì trong thực tế.

Những gì đã biết về chiến dịch

Sonatype đang tiến hành chiến dịch dưới mã định danh sonatype-2026-005660 với đánh giá CVSS 8.7 và phân loại CWE-506 (mã độc được nhúng). Những dấu hiệu đặc trưng mà các nhà nghiên cứu đã liên kết các gói thành một nhóm:

  • Tên được tạo tự động. Tên được tạo ra bằng cách nội suy các thuật ngữ lặp lại — trong báo cáo có đề cập đến "bigops" và "bnpl", các ví dụ như bigops-api và các chuỗi dài như dolyame-boxy-desktop-bnpl-card-gallery. OpenSourceMalware mô tả điều này như "AI slop squatting" — việc chiếm đoạt tên hàng loạt với các tên được tạo ngẫu nhiên thay vì làm giả một cách cẩn thận cho một gói phổ biến.
  • Các phiên bản trong một khoảng. Các bản phát hành tập trung quanh 35.x.y — số phiên bản không đặc trưng cao cho các gói không có lịch sử.
  • Phân tán qua các tài khoản. Mỗi tài khoản phát hành một lô gói nhỏ, vì vậy việc chặn một nhà phát hành không làm hỏng hoạt động.

Cơ chế khởi động được mô tả khác nhau, và sự khác biệt này là quan trọng. Sonatype viết rằng mã sẽ kích hoạt "khi cài đặt hoặc nhập" gói. OpenSourceMalware làm rõ: một số mẫu không cần các hook vòng đời cổ điển và yêu cầu nhà phát triển tự kết nối gói thông qua require(). Kết luận thực tiễn là: chỉ dựa vào --ignore-scripts sẽ không cứu bạn — nếu phụ thuộc thực sự được nhập vào mã, tải trọng sẽ hoạt động.

Cách giai đoạn thứ hai được cung cấp

Trình tải kéo payload qua HTTPS từ một máy chủ ngẫu nhiên trong danh sách được mã hóa — theo dữ liệu từ The Hacker News, các điểm cung cấp là ba miền trên Cloudflare Workers. Nếu tải xuống trực tiếp không thành công, một kênh dự phòng sẽ được kích hoạt: tải trọng được thu thập từ DNS TXT-records của miền wel1.ru với các miền con nền tảng (sdk.dl, ext.dl, pkg.dl, net.dl). Điều này có nghĩa là bộ lọc đầu ra qua các miền HTTP sẽ bị vượt qua bằng các yêu cầu DNS thông thường — và trong mạng doanh nghiệp, rất ít người cắt chúng.

Tiếp theo — qua các nền tảng:

  • Windows: vá ETW và AMSI (tức là tắt telemetry và kiểm tra virus cho các script), gắn kết qua các khóa tự khởi động trong registry và các tác vụ lập lịch, tệp trong AppData.
  • macOS: các phương pháp tránh né tương tự, gắn kết qua LaunchAgent. Trong tải trọng macOS, các nhà nghiên cứu đã tìm thấy các miền của các dịch vụ tài chính Nga (tcsbank.ru, cloudpayments.ru) — dấu hiệu của sự quan tâm cụ thể đến các phiên ngân hàng của người dùng nói tiếng Nga.
  • Linux: một tệp nhị phân ELF được đóng gói bằng UPX, triển khai đại lý của framework Sliver — đây đã là một kênh C2 hoàn chỉnh, không chỉ là một vụ đánh cắp đơn lẻ.

Thêm vào đó là bộ công cụ tiêu chuẩn: kiểm tra sandbox và debugger, xác định kiến trúc, đọc biến môi trường, các quy trình nền tách rời (sống sót sau khi đóng terminal) và phản ánh tải trọng vào bộ nhớ, để không để lại tệp trên đĩa.

Tại sao điều này lại ảnh hưởng đến các nhóm phân tích

Infostealer không phân biệt "quan trọng" và "không quan trọng" — nó lấy tất cả những gì giống như bí mật. Đối với người dùng thông thường, đó là mật khẩu từ trình duyệt và ví tiền điện tử. Đối với người làm việc thu thập dữ liệu, bộ trophy là khác và, thành thật mà nói, hấp dẫn hơn:

  • Các biến môi trường và .env — ở đây gần như luôn có máy chủ của proxy gateway, tên đăng nhập, mật khẩu và các thông số phiên (quốc gia, thành phố, mã nhận diện dính). Việc exfiltration các biến môi trường được chỉ ra rõ ràng trong phân tích chiến dịch.
  • Cookie và mã thông báo phiên. Phiên bị đánh cắp — đó là cách để vượt qua MFA: cookie tự nó là bằng chứng rằng kiểm tra thứ hai đã được thực hiện. Các log với các mã thông báo hợp lệ cho các dịch vụ làm việc được bán trên các thị trường ngầm từ $5.
  • Các hồ sơ của trình duyệt chống phát hiện — sự kết hợp "cookie + dấu vân tay + proxy", tức là một tài khoản làm việc sẵn sàng, không cần phải làm nóng.
  • Mã thông báo CI/CD, npm và đám mây — quyền truy cập không chỉ vào máy của bạn mà còn vào pipeline, nơi bạn có thể gửi các bản dựng của chính mình.

Quy mô của hiện tượng đã không còn là ngách. SpyCloud trong báo cáo năm 2026 đã ghi nhận 18,1 triệu khóa API và mã thông báo bị lộ, được lấy chính từ các log malware. Theo dữ liệu từ Recorded Future và Flashpoint, trong năm 2025, infostealers đã lây nhiễm 11,1 triệu máy và cung cấp 3,3 tỷ tài khoản bị đánh cắp. Và trong báo cáo của Sonatype về tình trạng chuỗi cung ứng phần mềm cho năm 2026, có hơn 454.600 gói độc hại mới chỉ trong năm 2025 và tổng cộng hơn 1,233 triệu gói bị chặn — tăng 75% so với năm trước. Flooding Dropper không phải là một hiện tượng bất thường, mà là một phần bình thường của dòng chảy.

Chủ sở hữu tài khoản proxy mất gì

Tôi sẽ nói riêng về điều mà trong các phân tích bảo mật thường không đề cập đến, vì các tác giả không làm việc với proxy. Việc rò rỉ thông tin đăng nhập proxy không phải là "mất mật khẩu", mà là ba vấn đề cùng một lúc:

  1. Traffic đã thanh toán. Traffic cư trú và di động được tính phí theo gigabyte. Một trình thu thập dữ liệu của người khác trên các thông tin đăng nhập của bạn — đó là hóa đơn của bạn, và bạn có thể nhận thấy điều đó muộn hơn nhiều so với mong muốn.
  2. Danh tiếng của người khác trên IP của bạn. Kẻ tấn công cần một đầu ra "sạch" để hoạt động của họ trông giống như một người dùng bình thường. Các nền tảng mục tiêu của bạn sẽ thấy hành vi đáng ngờ trong phiên của chính bạn — và sẽ có ban tài khoản mà bạn đã làm nóng trong nhiều năm.
  3. Giải quyết với nhà cung cấp. Từ quan điểm của bất kỳ nhà cung cấp nào bình thường, traffic đã đi từ tài khoản của bạn, và bạn sẽ phải giải thích.

Phải làm gì: tối thiểu thực tiễn

  1. Phân tách môi trường. Ngăn xếp thu thập dữ liệu được cài đặt trong một container hoặc VM riêng biệt — không phải trên máy mà có cookie cá nhân, email làm việc và mã thông báo sản xuất. Đây là biện pháp duy nhất hoạt động ngay cả với gói mà chưa ai biết đến.
  2. Loại bỏ thông tin đăng nhập proxy khỏi .env bên cạnh mã. Các bí mật — vào trình quản lý bí mật hoặc vào các biến môi trường của runner, chứ không phải vào tệp ở gốc dự án mà bất kỳ mô-đun nào được nhập đều có thể đọc.
  3. Bật xác thực theo IP ở những nơi có thể. Liên kết quyền truy cập vào máy chủ của bạn làm giảm giá trị của cặp thông tin đăng nhập bị đánh cắp: từ một địa chỉ khác, nó sẽ không hoạt động. Cách thức hoạt động và trong các kịch bản nào phù hợp, đã được thảo luận trong tài liệu về whitelist IP cho proxy. Các quy tắc chung về việc lưu trữ quyền truy cập — trong hướng dẫn về cách lưu trữ an toàn thông tin đăng nhập proxy.
  4. Các thông tin đăng nhập phụ riêng biệt cho mỗi dự án và giới hạn traffic. Nếu mỗi script có quyền truy cập riêng với giới hạn gigabyte, việc rò rỉ một cái sẽ không làm mất toàn bộ số dư và sẽ được định vị trong vài phút.
  5. Theo dõi tiêu thụ. Sự gia tăng đột ngột trong việc tiêu thụ GB mà không có sự gia tăng trong các tác vụ — là phát hiện sớm và rẻ nhất về sự xâm phạm mà bạn có.
  6. Kỷ luật về phụ thuộc. npm ci theo tệp lock thay vì install tự do, cách ly các phiên bản mới (7–14 ngày), kiểm tra độ tuổi của gói và lịch sử của nhà phát hành, gương nội bộ với allowlist. Gói với phiên bản 35.x.y, không có lịch sử và tên từ các từ ghép — là lý do để dừng lại, không phải để cài đặt.

Nếu bạn nghi ngờ rằng đã bị bắt

Các khuyến nghị của Sonatype ở đây rất cụ thể và thứ tự trong đó là nguyên tắc: coi máy chủ là đã bị xâm phạm hoàn toàn; tìm kiếm các cơ chế gắn kết đã mô tả (các khóa tự khởi động và tác vụ lập lịch trong Windows, LaunchAgent trong macOS); xoay vòng thông tin xác thực — npm, GitHub, đám mây, CI/CD — sau khi đã làm sạch máy, chứ không phải trước, nếu không các bí mật mới sẽ đi theo cùng một lộ trình; kiểm tra các tệp lock, bộ nhớ cache của các phụ thuộc và các gương nội bộ để tìm các bản sao còn lại; trước khi cài đặt lại, hãy so sánh tên gói theo từng ký tự.

Thêm vào danh sách này những điều của riêng bạn: thay đổi mật khẩu truy cập proxy, thu hồi các phiên hoạt động trong trình duyệt chống phát hiện và kiểm tra lịch sử tiêu thụ traffic trong hai tuần qua. Nếu traffic được mua theo gigabyte — proxy cư trú hoặc proxy di động, — báo cáo về tiêu thụ chính là nhật ký truy cập của bạn.

Kết luận

Flooding Dropper thú vị không phải vì sự tinh vi, mà vì kinh tế: một nghìn gói dùng một lần, tên được tạo ra, tài khoản theo lô — đó là một dây chuyền sản xuất, được thiết kế cho việc ai đó sẽ cài đặt phụ thuộc mà không nhìn kỹ. Các chiến dịch riêng lẻ sẽ mất hàng tuần để làm sạch registry, nhưng dòng chảy sẽ không dừng lại: các con số của Sonatype cho năm trước không để lại ảo tưởng nào.

Kết luận thực tiễn cho những ai thu thập dữ liệu rất đơn giản. Máy của nhà phát triển — là điểm mà tất cả quyền truy cập của bạn hội tụ: proxy, tài khoản, phiên làm việc, pipeline. Hãy cách ly ngăn xếp, liên kết quyền truy cập với IP, phân tách thông tin đăng nhập theo dự án và theo dõi biểu đồ tiêu thụ traffic. Không bước nào trong số này yêu cầu phải chờ đợi cho đến khi một chiến dịch mới được lập chỉ mục.

```