36 npm Package độc đã khai thác lỗ hổng Redis và PostgreSQL để triển khai các persistence implant

1924
24-03-2026
36 npm Package độc đã khai thác lỗ hổng Redis và PostgreSQL để triển khai các persistence implant

Các chuyên gia an ninh mạng đã phát hiện 36 package phần mềm độc hại trong npm registry được ngụy trang dưới dạng các plugin Strapi CMS. Tuy nhiên các plugin lại chứa các payload khác nhau nhằm mục đích khai thác lỗ hổng Redis và PostgreSQL, triển khai reverse shell, thu thập thông tin đăng nhập và tiêm nhiễm phần mềm độc hại dài lâu.

"Mỗi package đều chứa ba tệp (package.json, index.js, postinstall.js), không có mô tả, repository hoặc homepage, và sử dụng phiên bản 3.6.8 để giả trang như một plugin cộng đồng Strapi v3 đã hoàn thiện," SafeDep cho biết.

Tất cả các package npm được xác định đều tuân theo cùng một quy ước đặt tên, bắt đầu bằng "strapi-plugin-" và sau đó là các cụm từ như "cron," "database," hoặc "server" để khiến các developer mất cảnh giác và tải xuống. Điều đáng chú ý là các plugin Strapi chính thức được quản lý bởi "@strapi/."

Các gói tin, được bốn tài khoản giả mạo tải lên: "umarbek1233," "kekylf12," "tikeqemif26," và "umar_bektembiev1" trong khoảng thời gian 13 giờ. Dưới đây là danh sách:

strapi-plugin-cron

strapi-plugin-config

strapi-plugin-server

strapi-plugin-database

strapi-plugin-core

strapi-plugin-hooks

strapi-plugin-monitor

strapi-plugin-events

strapi-plugin-logger

strapi-plugin-health

strapi-plugin-sync

strapi-plugin-seed

strapi-plugin-locale

strapi-plugin-form

strapi-plugin-notify

strapi-plugin-api

strapi-plugin-sitemap-gen

strapi-plugin-nordica-tools

strapi-plugin-nordica-sync

strapi-plugin-nordica-cms

strapi-plugin-nordica-api

strapi-plugin-nordica-recon

strapi-plugin-nordica-stage

strapi-plugin-nordica-vhost

strapi-plugin-nordica-deep

strapi-plugin-nordica-lite

strapi-plugin-nordica

strapi-plugin-finseven

strapi-plugin-hextest

strapi-plugin-cms-tools

strapi-plugin-content-sync

strapi-plugin-debug-tools

strapi-plugin-health-check

strapi-plugin-guardarian-ext

strapi-plugin-advanced-uuid

strapi-plugin-blurhash 

Phân tích các package cho thấy mã độc được nhúng trong script hook postinstall, được thực thi khi chạy lệnh "npm install" mà không cần bất kỳ tương tác nào từ người dùng. Mã chạy với quyền hạn tương tự như người dùng cài đặt, nghĩa là nó dùng được quyền truy cập root trong môi trường CI/CD và các container Docker.

Diễn biến của các payload được phát tán trong chiến dịch như sau:

  • Khai thác một instance Redis có thể truy cập cục bộ để thực thi mã từ xa bằng cách chèn một mục crontab, nhằm tải xuống và thực thi một shell script từ máy chủ từ xa mỗi phút. Shell script này ghi một PHP web shell và một Node.js reverse shell thông qua SSH vào thư mục uploads public của Strapi. Ngoài ra, nó còn cố gắng quét ổ đĩa để tìm các thông tin nhạy cảm (ví dụ: Elasticsearch và seed phrase của ví tiền điện tử) và đánh cắp (exfiltrate) một module API của Guardarian.
  • Kết hợp khai thác Redis với việc thoát container Docker để ghi các payload shell vào máy chủ bên ngoài container. Mã cũng khởi chạy một reverse shell Python trực tiếp trên port 4444 và ghi một reverse shell trigger vào thư mục node_modules của ứng dụng thông qua Redis.
  • Triển khai một reverse shell và ghi một shell downloader thông qua Redis và thực thi tệp kết quả.
  • Quét hệ thống để tìm các biến môi trường và chuỗi kết nối PostgreSQL database.
  • Một payload mở rộng để thu thập thông tin xác thực và trinh sát nhằm lấy các bản ghi môi trường, cấu hình Strapi, trích xuất Redis database bằng cách chạy các lệnh INFO, DBSIZE và KEYS, lập topology mạng, cũng như thu thập các Docker/Kubernetes secrets, khóa mã hóa và các tệp ví tiền điện tử.
  • Thực hiện khai thác cơ sở dữ liệu PostgreSQL bằng cách kết nối tới database PostgreSQL của mục tiêu với thông tin đăng nhập được hard-code và truy vấn các bảng đặc thù của Strapi để tìm secrets. Nó cũng trích xuất các pattern liên quan đến tiền điện tử liên quan (ví dụ: ví, giao dịch, gửi tiền, rút tiền, nóng, lạnh, số dư) và cố gắng kết nối với 6 Guardarian database. Điều này cho thấy tác nhân tấn công đã sở hữu dữ liệu - những dữ liệu có được thông qua một cuộc xâm nhập trước đó hoặc bằng một số phương pháp nào đó khác.
  • Triển khai một implant lâu dài được thiết kế để duy trì quyền truy cập từ xa vào một hostname cụ thể ("prod-strapi").
  • Tạo điều kiện thuận lợi cho việc đánh cắp thông tin đăng nhập thông qua việc quét các hard-coded path và tạo ra một persistent reverse shell.
"Tám đoạn mã độc cho thấy một diễn biến rõ ràng: kẻ tấn công bắt đầu bằng các biện pháp mạnh mẽ (Redis RCE, Docker escape), nhận thấy các phương pháp đó không hiệu quả thì chuyển sang trinh sát và thu thập dữ liệu, sử dụng thông tin đăng nhập được hardcoded để truy cập trực tiếp vào database, và cuối cùng là thiết lập quyền truy cập lâu dài với việc đánh cắp thông tin xác thực mục tiêu," SafeDep cho biết.
Bản chất của các payload, cùng với việc tập trung vào tài sản kỹ thuật số và việc sử dụng thông tin đăng nhập và hostname được hard-coded, dấy lên khả năng chiến dịch này là một cuộc tấn công có chủ đích vào một nền tảng tiền điện tử. Người dùng đã cài đặt bất kỳ gói phần mềm nào được đề cập ở trên được khuyến nghị nên coi như hệ thống đã bị xâm phạm và thay đổi tất cả thông tin đăng nhập.


Phát hiện này trùng khớp với việc phát hiện một chuỗi các cuộc tấn công nhắm vào hệ sinh thái mã nguồn mở 

  • Một tài khoản GitHub có tên "ezmtebo" đã gửi hơn 256 pull request trên nhiều open-source repository khác nhau, chứa mã độc đánh cắp thông tin đăng nhập. "Nó đánh cắp các secret thông qua các log CI và pull request comment, chèn các workflow tạm thời để dumb giá trị secret, tự động áp dụng label để vượt qua các cổng pull_request_target và chạy trình quét background/proc ngầm trong 10 phút sau khi script chính kết thúc," SafeDep cho biết.
  • Một vụ chiếm quyền tổ chức GitHub đã được xác minh "dev-protocol" để phát tán các bot giao dịch Polymarket độc hại, sử dụng các dependency npm giả mạo (typosquatting) như "ts-bign" và "levex-refa" hoặc "big-nunber" và "lint-builder". Vụ việc nhắm đến đánh cắp các private key của ví, đánh cắp các tập tin nhạy cảm và mở một SSH backdoor trên máy tính của nạn nhân. Trong khi "levex-refa" hoạt động như một công cụ đánh cắp thông tin đăng nhập, "lint-builder" cài đặt SSH backdoor. Cả "ts-bign" và "big-nunber" đều được thiết kế để cung cấp "levex-refa" và "lint-builder" tương ứng, dưới dạng dependency gián tiếp (transitive dependency).
  • Một lỗ hổng bảo mật trong Emacs package (1 package phổ biến) là  "kubernetes-el/kubernetes-el" đã khai thác điểm yếu Pwn Request trong GitHub Actions workflow bằng cách sử dụng trigger pull_request_target để đánh cắp GITHUB_TOKEN của repository. Nó đánh cắp các CI/CD secret, làm thay đổi repository và chèn mã độc để xóa gần như tất cả các tệp trong repository.
  • Một lỗ hổng bảo mật khác trong workflow hợp lệ của GitHub Action "xygeni/xygeni-action" là do thông tin xác thực của maintainer bị đánh cắp để cài đặt reverse shell backdoor. Xygeni đã triển khai các biện pháp kiểm soát bảo mật mới để giải quyết sự cố này.
  • Một vụ xâm phạm gói npm hợp pháp "mgc" thông qua chiếm quyền tài khoản để phát hành bốn phiên bản độc hại (1.2.1 đến 1.2.4), chứa một dropper script có khả năng nhận diện hệ điều hành và tải về payload tương ứng – trojan Python cho Linux và biến thể PowerShell cho Windows có tên WAVESHAPER.V2 – từ GitHub Gist. Cuộc tấn công này có sự trùng lặp trực tiếp với cuộc tấn công gần đây nhắm vào Axios.
  • Một gói npm độc hại có tên "express-session-js" lợi dụng lỗi chính tả để chiếm đoạt tên miền "express-session" và chứa một phần mềm thả mã độc (dropper). Phần mềm này lấy mã độc truy cập từ xa (remote access trojan-RAT) giai đoạn tiếp theo từ JSON Keeper để thực hiện hành vi đánh cắp dữ liệu và truy cập liên tục bằng cách kết nối đến "216.126.237[.]71" sử dụng thư viện Socket.IO.
  • Một lỗ hổng bảo mật trong gói PyPI hợp pháp, "bittensor-wallet" (phiên bản 4.0.2), cho phép triển khai một backdoor. Điểm này được kích hoạt trong quá trình giải mã ví để đánh cắp khóa ví. Dữ liệu được exfiltrate qua các kênh HTTPS, DNS tunneling và Raw TLS tới một domain hard-code hoặc domain được tạo bằng thuật toán DGA (Domain Generation Algorithm) thay đổi hàng ngày.
  • Một gói PyPI độc hại có tên "pyronut" đã lợi dụng lỗi chính tả để chiếm đoạt tên miền "pyrogram," một framework API Telegram phổ biến bằng Python, nhằm nhúng một backdoor ngầm. Nó sẽ được kích hoạt mỗi khi ứng dụng Telegram khởi động và chiếm quyền kiểm soát phiên Telegram cũng như hệ thống máy chủ bên dưới. "Backdoor này register các trình xử lý tin nhắn Telegram ẩn, từ đó cho phép hai tài khoản được hardcoded do kẻ tấn công kiểm soát thực thi mã Python tùy ý (thông qua lệnh /e và thư viện meval) và các lệnh shell arbitrary (thông qua lệnh /shell và subprocess) trên máy của nạn nhân," Endor Labs cho biết.
  • Một bộ ba extension độc hại của Microsoft Visual Studio Code (VS Code) do "IoliteLabs" phát hành – "solidity-macos," "solidity-windows," và "solidity-linux" – dù đã ngừng hoạt động từ năm 2018 nhưng đã được cập nhật vào ngày 25 tháng 3 năm 2026 để khởi chạy một multi-stage backdoor nhắm mục tiêu vào hệ thống Windows và macOS khi khởi chạy ứng dụng, nhằm thiết lập khả năng duy trì truy cập (persistence). Tổng cộng, các extension này đã có 27.500 lượt cài đặt trước khi bị gỡ bỏ.
  • Nhiều phiên bản của extension VS Code "KhangNghiem/fast-draft" trên Open VSX (0.10.89, 0.10.105, 0.10.106 và 0.10.112) thực thi một downloader được lưu trữ trên GitHub để triển khai một RAT Socket.IO giai đoạn hai, một phần mềm đánh cắp thông tin, một module để exfiltration tập tin và một clipboard monitor từ GitHub repository. Điều thú vị là, các phiên bản 0.10.88, 0.10.111 và 0.10.129-135 được phát hiện là an toàn.“Aikido cho biết: ‘Đây không phải là kiểu phát hành bạn mong đợi từ một bản build bị xâm phạm đơn lẻ hoặc từ một maintainer đã hoàn toàn chuyển sang hành vi độc hại. Nó giống như có hai luồng phát hành cạnh tranh cùng sử dụng một danh tính nhà phát hành.”

Trong một báo cáo được công bố vào tháng 2 năm 2026, Group-IB tiết lộ rằng các tấn công chuỗi vào phần mềm đã trở thành "lực lượng chủ đạo định hình lại bối cảnh về các mối đe dọa an ninh mạng toàn cầu", đồng thời cho biết thêm rằng các tác nhân đe dọa đang nhắm mục tiêu vào các nhà cung cấp uy tín, open-source software, nền tảng SaaS, các browser extension và các provider để giành quyền truy cập vào hàng trăm tổ chức ở khâu cuối trong chuỗi cung ứng.

Mối đe dọa ở chuỗi cung ứng này có thể nhanh chóng leo thang từ một vụ xâm nhập cục bộ thành một vấn đề có tác động quy mô lớn, xuyên biên giới, với việc các kẻ tấn công đang “công nghiệp hóa” các vụ xâm phạm chuỗi cung ứng và biến nó thành một hệ sinh thái "tự củng cố", bởi vì cách này có thể ảnh hưởng ở phạm vi lớn hơn, tốc độ và khả năng ẩn nấp mạnh mẽ.

"Các package repository như npm và PyPI đã trở thành mục tiêu chính, nơi thông tin đăng nhập của maintainer bị đánh cắp và các loại malware tự động xâm phạm các library được sử dụng rộng rãi - biến các development pipeline thành các kênh phân phối quy mô lớn cho mã độc" Group-IB cho biết.

Bizfly Cloud tổng hợp

SHARE