Skip to main content

Command Palette

Search for a command to run...

AsyncAPI Under Attack: Khi 2 Triệu Lượt Tải Mỗi Tuần Trở Thành Con Đường Phát Tán Malware

Updated
21 min readView as Markdown
AsyncAPI Under Attack: Khi 2 Triệu Lượt Tải Mỗi Tuần Trở Thành Con Đường Phát Tán Malware

Tóm Tắt Chiến Dịch

Vào ngày 14/07/2026, kẻ tấn công đã xâm nhập thành công tổ chức AsyncAPI trên npm — một trong những dự án mã nguồn mở phổ biến nhất cho các API event-driven, và tiêm mã độc vào 4 gói npm với tổng cộng hơn 2 triệu lượt tải mỗi tuần. Đây là một cuộc tấn công chuỗi cung ứng phần mềm (software supply chain attack) cực kỳ tinh vi, kết hợp ba loại malware: info-stealer, crypto-stealer, và Remote Access Trojan (RAT).

Điểm đặc biệt nguy hiểm: cuộc tấn công không sử dụng post-install script (đã bị npm v12 chặn), mà thay vào đó nhúng mã độc trực tiếp vào file JavaScript chính của mỗi gói. Malware được kích hoạt ngay khi module bị import/require — khiến lệnh npm install --ignore-scripts hoàn toàn vô dụng.

Các Gói Bị Ảnh Hưởng

Gói npm Phiên bản bị nhiễm Phiên bản an toàn Lượt tải/tuần (ước tính)
@asyncapi/generator 3.3.1 3.3.0 ~100K
@asyncapi/generator-helpers 1.1.1 1.1.0 ~50K
@asyncapi/generator-components 0.7.1 0.7.0 ~50K
@asyncapi/specs 6.11.2, 6.11.2-alpha.1 6.11.1 ~2.7M

Timeline Sự Kiện

Trước ngày tấn công

Thời điểm Sự kiện Ý nghĩa
29/04/2026 Lỗ hổng pull_request_target trong repo asyncapi/generator được xác định bằng Proof-of-Concept Kẻ tấn công (hoặc bên thứ ba) đã biết cách khai thác từ sớm
17/05/2026 Bản fix được đề xuất qua Pull Request Bản fix CHƯA được merge — để ngỏ cửa sổ khai thác gần 2 tháng
14/07/2026 Ngày tấn công diễn ra Lỗ hổng vẫn tồn tại trên production

Diễn biến ngày 14/07/2026

Thời gian (UTC) Giai đoạn Hành động Chi tiết kỹ thuật Tác động
05:08 Stage 0 — Credential Theft Mở 37 Pull Request vào repository asyncapi/generator Một Pull Request chứa mã JavaScript đã được obfuscate, được thiết kế để thực thi trong workflow pull_request_target. Các PR còn lại đóng vai trò tạo "nhiễu" nhằm che giấu PR độc hại. Đánh lạc hướng maintainer và tạo điều kiện cho quá trình đánh cắp thông tin xác thực diễn ra âm thầm.
05:08 – 06:57 Stage 0 — Credential Theft Workflow CI/CD bị lợi dụng để đánh cắp token của release bot Workflow pull_request_target checkout mã nguồn từ branch của kẻ tấn công thay vì base branch, khiến mã độc được thực thi với quyền truy cập vào repository secretsGitHub Actions token. Kẻ tấn công chiếm được npm publish token hợp pháp, mở đường cho việc phát hành package độc hại.
06:58 Stage 1 — Code Injection Push commit độc hại vào nhánh next Sử dụng token vừa đánh cắp để push trực tiếp vào repository chính thức, chèn mã độc vào source code. Kích hoạt pipeline phát hành (release pipeline) hợp lệ của dự án.
07:10 Stage 1 — Package Publish Publish 3 package generator lên npm Workflow release-with-changesets.yml tự động publish thông qua cơ chế OIDC Trusted Publisher, tạo provenance hợp lệ. Các package @asyncapi/generator@3.3.1, generator-helpers@1.1.1generator-components@0.7.1 được phát hành với chữ ký hợp lệ, khiến người dùng khó phát hiện bất thường.
08:06 Stage 1 — Package Publish Publish @asyncapi/specs@6.11.2 Tiếp tục sử dụng pipeline phát hành chính thức để đưa phiên bản độc hại lên npm Registry. Package có khoảng 2,7 triệu lượt tải mỗi tuần bắt đầu phân phối malware tới các dự án sử dụng phiên bản mới.
08:30 Stage 1 — Package Publish Publish @asyncapi/specs@6.11.2-alpha.1 Phát hành thêm phiên bản Alpha chứa cùng payload độc hại. Mở rộng phạm vi ảnh hưởng (blast radius) tới cả những người dùng đang thử nghiệm phiên bản pre-release.
08:30 – 11:18 Stage 2 — Active Exploitation Malware được kích hoạt khi ứng dụng import hoặc require() package Mã độc tạo một tiến trình Node.js chạy nền (detached process), tải file sync.js từ IPFS, giải mã và triển khai Miasma RAT, sau đó thiết lập persistence và kết nối tới máy chủ C2. Máy của lập trình viên và các CI/CD runner có thể bị nhiễm trong quá trình build, test hoặc chạy ứng dụng sử dụng package độc hại.
~11:18 Response Gỡ bỏ (unpublish) toàn bộ 5 phiên bản độc hại khỏi npm Registry Đội ngũ AsyncAPI phản ứng sau khi nhận được cảnh báo từ cộng đồng và các hãng bảo mật, nhanh chóng thu hồi các package bị xâm phạm. Chấm dứt việc phát tán malware qua npm Registry và bắt đầu quá trình điều tra, khắc phục sự cố.

Hồ Sơ Tin Tặc

TeamPCP — Tổng Quan

Các chiến dịch Shai-Hulud và Miasma được ngành bảo mật theo dõi dưới nhóm threat actor có tên TeamPCP, còn được biết đến qua nhiều bí danh:

Tên gọi Nguồn theo dõi
TeamPCP Tên chính, được OX Security, JFrog, Snyk sử dụng
DeadCatx3 Bí danh trên các forum underground
PCPcat Tên biến thể trên một số tracker
ShellForce / CipherForce Bí danh theo dõi bởi một số hãng threat intelligence
CanisterWorm Tên gọi theo đặc điểm kỹ thuật worm

Đặc điểm chung:

  • Chuyên tấn công chuỗi cung ứng phần mềm qua các registry mã nguồn mở (npm, PyPI, Cargo)

  • Khai thác CI/CD pipeline, GitHub Actions, developer credentials để phân phối malware quy mô lớn

  • Nhắm vào hạ tầng mã nguồn mở "load-bearing" — các gói nền tảng được hàng triệu dự án phụ thuộc — để tối đa hóa blast radius

  • Hoạt động theo mô hình cybercrime có tổ chức, không phải APT quốc gia (state-sponsored)

Lịch Sử Chiến Dịch — Từ Shai-Hulud Đến AsyncAPI

Thời điểm Chiến dịch Mục tiêu Kỹ thuật chính Quy mô
09/2025 Shai-Hulud (gốc) Hệ sinh thái npm nói chung Self-replicating npm worm, install-time hooks (preinstall/postinstall), đánh cắp npm token + GitHub PAT Hàng trăm gói bị nhiễm; đánh dấu bước ngoặt từ typosquatting sang worm tự động
04–05/2026 Mini Shai-Hulud (Wave 1) TanStack, Mistral AI, Guardrails AI, UiPath GitHub Actions "pwn request" + cache poisoning + OIDC token theft → publish gói với SLSA Build Level 3 provenance hợp lệ Lần đầu tiên trong lịch sử: provenance hợp lệ bị vũ khí hóa
12/05/2026 Open-source Shai-Hulud Cộng đồng hacker TeamPCP công khai mã nguồn worm trên các forum Biến công cụ độc quyền thành "commodity malware" — bất kỳ ai cũng có thể tạo biến thể
18/05/2026 Megalodon (Wave 2) GitHub repositories Push hơn 5.000 commit độc hại vào các repo để exfiltrate secrets quy mô lớn Tấn công brute-force vào hạ tầng mã nguồn
19/05/2026 Wave 5 @antv ecosystem Tấn công tự động 600+ gói bị compromise trong 22 phút
06/2026 Miasma — Red Hat @redhat-cloud-services npm packages "Phantom Gyp" (binding.gyp độc hại), Bun-staged loaders, preinstall hooks Hàng chục gói Red Hat bị nhiễm; frontend libraries bị inject credential-stealer
06/2026 Miasma — LeoPlatform LeoPlatform / RStreams Phantom Gyp + Bun loaders, bypass Node.js security tools Pipeline dữ liệu serverless bị xâm nhập
14/07/2026 AsyncAPI (bài phân tích này) @asyncapi npm org (4 gói, ~2.9M tải/tuần) CI/CD pwn request → import-time execution (bypass ignore-scripts) → Miasma RAT + IPFS/Nostr/Ethereum C2 Tiến hóa lớn nhất: không cần install hook, bypass npm v12

Phân Tích Kỹ Thuật Chi Tiết

Giai đoạn 0 — Đánh Cắp Credentials qua "Pwn Request"

Cuộc tấn công không bắt đầu từ npm mà bắt đầu từ GitHub Actions. Kẻ tấn công khai thác một lỗ hổng cấu hình (misconfiguration) trong workflow CI/CD:

  • 05:08 UTC: Kẻ tấn công mở 37 pull request vào repository asyncapi/generator.

  • Một trong số đó chứa JavaScript bị obfuscate được thiết kế để chạy trong workflow sử dụng trigger pull_request_target.

  • Trigger pull_request_target thực thi với quyền truy cập vào repository secrets — thay vì sandbox như pull_requestthông thường Workflow đã checkout code của kẻ tấn công thay vì base branch, cho phép exfiltrate token của release bot

Giai đoạn 1 — Lợi Dụng Pipeline Release Hợp Pháp

Sau khi có token, kẻ tấn công:

  1. Push commit độc hại vào branch next lúc 06:58 UTC

  2. Hành động này trigger workflow hợp pháp release-with-changesets.yml

  3. Các gói được publish thông qua hệ thống OIDC trusted-publisher của GitHub

  4. Kết quả: Các gói mang provenance/SLSA attestation hợp lệ — vì chúng được publish qua pipeline GitHub Actions chính thống

Giai đoạn 2 — Import-Time Execution (Thực Thi Khi Import)

Mã độc KHÔNG sử dụng install hook (post-install script). Thay vào đó:

  • Mã độc được nhúng bên trong file source code hợp pháp

  • Khi module được load (require() hoặc import), nó spawn một tiến trình Node.js tách biệt (detached)

  • Tiến trình này tải encrypted loader (sync.js) từ IPFS

  • Sau đó giải mã và triển khai Miasma framework đầy đủ

Hệ quả trực tiếp: npm install --ignore-scripts KHÔNG bảo vệ khỏi cuộc tấn công này.

Phân Tích Malware — Payload Miasma RAT

Quy Mô và Độ Phức Tạp

  • 91.973 dòng code — đây không phải malware "viết nhanh"

  • Kết hợp hybrid: Info-stealer + Crypto-stealer + RAT + Worm

  • Cross-platform: Hỗ trợ Linux, macOS, Windows

Persistence (Duy Trì Trên Hệ Thống)

Miasma cài đặt sync.js vào thư mục giả dạng NodeJS theo từng platform:

OS Đường dẫn persistence
Linux ~/.local/share/NodeJS/sync.js
macOS ~/Library/Application Support/NodeJS/sync.js
Windows %LOCALAPPDATA%\NodeJS\sync.js

Cơ chế persistence:

  • Linux: Tạo systemd unit miasma-monitor.service

  • macOS: Sửa shell startup files (.bashrc, .zshrc, v.v.)

  • Windows: Registry Run key

Hạ Tầng C2 (Command & Control)

Malware sử dụng kiến trúc C2 multi-layer, resilient:

Việc sử dụng IPFS, Nostr, Ethereum smart contract, và BitTorrent DHT làm kênh C2 dự phòng cho thấy kẻ tấn công có kỹ năng cao và thiết kế để chống chịu takedown — ngay cả khi C2 chính bị hạ, malware vẫn có nhiều đường liên lạc thay thế.

Khả Năng Thu Thập Dữ Liệu

Malware thu thập toàn diện:

  • Browser passwords (tất cả trình duyệt chính)

  • SSH keys

  • npm tokens, GitHub tokens

  • AWS credentials và cloud config

  • Cryptocurrency wallets (nhiều loại ví)

  • Clipboard data

Khả Năng Tự Nhân Bản (Worm-like Propagation)

Đây là tính năng nguy hiểm nhất cho môi trường developer:

Nếu malware phát hiện token xác thực hợp lệ cho npm, PyPI, hoặc Cargo, nó sẽ cố gắng tự publish vào các gói mà nạn nhân quản lý trên các registry đó.

Một developer bị nhiễm = vector phân phối mới. Chuỗi lây lan có thể mở rộng theo cấp số nhân.

Cơ Chế Chống Phân Tích (Anti-Analysis)

Malware thực hiện nhiều kiểm tra trước khi hoạt động:

Kiểm tra Hành động nếu TRUE
Đang chạy trong máy ảo (VM) Tự hủy
Phát hiện EDR/Endpoint Protection Tự hủy
Ngôn ngữ hệ thống là tiếng Nga Tự hủy

Kiểm tra locale tiếng Nga là đặc điểm điển hình của malware có nguồn gốc Nga hoặc CIS — kẻ tấn công không muốn lây nhiễm máy của chính mình hoặc đồng minh.

Tóm Tắt Rủi Ro

Chiến dịch Miasma/Shai-Hulud do nhóm TeamPCP (hoặc các biến thể copycat) thực hiện tạo ra mức độ rủi ro cực kỳ nghiêm trọng đối với các doanh nghiệp công nghệ và cộng đồng mã nguồn mở:

  1. Rủi ro lây nhiễm chéo diện rộng (Worm-like Propagation Risk):

    • Malware tự động săn tìm các token xác thực của các registry phổ biến (npm, PyPI, Cargo). Nếu một máy trạm của lập trình viên duy trì (maintainer) bất kỳ thư viện nào bị nhiễm, mã độc sẽ tự động đóng gói và publish phiên bản độc hại lên thư viện đó. Điều này tạo ra phản ứng dây chuyền lây nhiễm theo cấp số nhân.
  2. Rủi ro lộ lọt thông tin cấu trị cao (High-Value Credential Theft):

    • Không chỉ đánh cắp mật khẩu trình duyệt hay ví tiền điện tử thông thường, chiến dịch này tập trung cao độ vào các bí mật kỹ thuật: AWS/GCP/Azure credentials, Kubernetes/Vault tokens, SSH keys, GitHub Personal Access Tokens (PATs). Mất các thông tin này có thể dẫn đến việc toàn bộ hạ tầng cloud của tổ chức bị kiểm soát.
  3. Rủi ro vô hiệu hóa các lá chắn bảo mật truyền thống (Security Bypass Risk):

    • Bypass SLSA Provenance: Kẻ tấn công không publish trực tiếp mà hijack luồng phát hành (CI/CD pipeline) hợp pháp của dự án gốc. Do đó, các cơ chế xác thực nguồn gốc dựa trên mật mã (OIDC, SLSA Build Level 3) đều xác nhận gói là "an toàn", vô hiệu hóa các bộ lọc tự động kiểm tra chữ ký số.

    • Bypass Static Scan & Ignore-scripts: Do thực thi ngay lúc lệnh import hoặc require được gọi (import-time execution) thay vì dùng install-hooks, các thiết lập bảo mật cô lập cài đặt (--ignore-scripts) hoàn toàn bị vượt qua.

Tại Sao Các Biện Pháp Hiện Tại Thất Bại?

Biện pháp bảo mật Trạng thái Lý do thất bại
npm install --ignore-scripts Không hiệu quả Malware không dùng install hook, thực thi khi import/require()
npm Provenance / SLSA Attestation Bị bpass Gói được publish qua pipeline CI/CD hợp pháp → attestation hợp lệ
SCA (Software Composition Analysis) Không phát hiện Phiên bản mới publish → chưa có trong cơ sở dữ liệu mối đe dọa
npm v12 post-install block Không áp dụng Kẻ tấn công nhúng code vào file JS chính, không cần post-install
Lockfile pinning (npm ci) Bảo vệ một phần Chỉ bảo vệ nếu đã pin phiên bản an toàn, không bảo vệ khi npm install hoặc bump dependency

Indicators of Compromise (IOCs)

Network IOCs

Loại Giá trị Mục đích
C2 Server 85[.]137[.]53[.]71 Primary C2
C2 Ports 8080, 8081, 8091 Command, Data Exfil, Backup
IPFS Gateway ipfs.io Payload hosting & Fallback C2
BitTorrent router.bittorrent.com Backup beaconing
BitTorrent router.utorrent.com Backup beaconing
BitTorrent dht.transmissionbt.com Backup beaconing

Blockchain IOCs

Loại Giá trị
Ethereum Address 0x12c37A86a0Ed0beBe5d1d6a43E42f07860eAc710

File System IOCs

OS Đường dẫn
Linux ~/.local/share/NodeJS/sync.js
macOS ~/Library/Application Support/NodeJS/sync.js
Windows %LOCALAPPDATA%\NodeJS\sync.js
Linux systemd unit miasma-monitor.service

Affected Package Versions

Gói Phiên bản độc hại
@asyncapi/generator 3.3.1
@asyncapi/generator-helpers 1.1.1
@asyncapi/generator-components 0.7.1
@asyncapi/specs 6.11.2, 6.11.2-alpha.1

Bản Đồ Kỹ Thuật MITRE ATT&CK

Tactic (Chiến thuật) Technique ID Technique Name (MITRE ATT&CK) Cách thức áp dụng trong chiến dịch
Reconnaissance T1595 Active Scanning Kẻ tấn công quét các repository GitHub công khai nhằm tìm kiếm các workflow GitHub Actions có cấu hình không an toàn, đặc biệt là việc lạm dụng trigger pull_request_target.
Initial Access T1190 Exploit Public-Facing Application Khai thác lỗi cấu hình pull_request_target trong repository asyncapi/generator, cho phép mã độc thực thi với quyền của GitHub Actions Runner và truy cập vào repository secrets.
T1195.002 Supply Chain Compromise: Compromise Software Dependencies Chèn mã độc trực tiếp vào các package npm của AsyncAPI và phát hành thông qua pipeline release hợp pháp, biến package chính thức thành phương tiện phân phối malware.
Execution T1204.002 User Execution: Malicious File Mã độc được kích hoạt khi nhà phát triển hoặc hệ thống CI/CD thực hiện import hoặc require() các package đã bị cài cắm.
T1059.003 Command and Scripting Interpreter: Windows Command Shell Thực thi các lệnh hệ thống trên Windows để tạo tiến trình chạy nền và triển khai payload tiếp theo.
T1059.004 Command and Scripting Interpreter: Unix Shell Thực thi shell script trên Linux/macOS nhằm cài đặt malware và cấu hình môi trường thực thi.
Persistence T1543.003 Create or Modify System Process: Systemd Service Tạo dịch vụ miasma-monitor.service trên hệ thống Linux để đảm bảo malware tự khởi động sau khi reboot.
T1547.001 Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder Thiết lập Registry Run Keys trên Windows và chỉnh sửa các file khởi động như .bashrc, .zshrc trên Linux/macOS để duy trì quyền kiểm soát.
Defense Evasion T1140 Deobfuscate/Decrypt Files or Information Tải xuống file sync.js đã được mã hóa từ IPFS, sau đó giải mã trong bộ nhớ trước khi thực thi nhằm tránh bị phát hiện.
T1497.001 Virtualization/Sandbox Evasion: System Checks Kiểm tra môi trường ảo hóa (VM, Sandbox) để quyết định có tiếp tục thực thi malware hay tự hủy.
T1497.003 Virtualization/Sandbox Evasion: Time-based Evasion Sử dụng độ trễ thực thi, kiểm tra ngôn ngữ hệ thống (ví dụ: tiếng Nga) và các điều kiện môi trường nhằm né tránh phân tích động.
T1036 Masquerading Ngụy trang thư mục và tệp độc hại bằng tên tương tự thư mục Node.js hợp pháp (ví dụ: %LOCALAPPDATA%\NodeJS) để giảm khả năng bị nghi ngờ.
Credential Access T1555 Credentials from Password Stores Thu thập mật khẩu đã lưu trong các trình duyệt phổ biến trên máy nạn nhân.
T1552.001 Unsecured Credentials: Private Keys Quét hệ thống để tìm và đánh cắp các khóa riêng SSH được lưu trữ cục bộ.
T1552.004 Unsecured Credentials: Private Information in Cloud / Code Thu thập token của npm, GitHub, PyPI, Cargo cùng các thông tin xác thực AWS, Azure, GCP và các dịch vụ Cloud khác.
Discovery T1082 System Information Discovery Thu thập thông tin hệ điều hành, hostname, múi giờ, ngôn ngữ locale và các đặc điểm của hệ thống để phục vụ quá trình lọc mục tiêu.
Command and Control (C2) T1071.001 Application Layer Protocol: Web Protocols Thiết lập kết nối HTTP/HTTPS tới máy chủ điều khiển (C2) thông qua các cổng 8080, 8081 và 8091.
T1568 Dynamic Resolution Sử dụng Nostr, IPFS Gateway và smart contract Ethereum để phân giải hoặc chuyển đổi địa chỉ C2 khi cần thiết.
T1105 Ingress Tool Transfer Tải xuống payload giai đoạn tiếp theo (sync.js) từ mạng phân tán IPFS.
T1043 Commonly Used Port Sử dụng các cổng phổ biến của BitTorrent DHT để beaconing và truyền thông, giúp vượt qua nhiều cơ chế tường lửa.
Exfiltration T1048 Exfiltration Over Alternative Protocol Trích xuất dữ liệu đánh cắp thông qua các giao thức thay thế như IPFS hoặc BitTorrent DHT nhằm giảm khả năng bị phát hiện.
Impact T1496 Resource Hijacking Kích hoạt các module bổ sung như crypto-stealer và RAT để chiếm đoạt tài nguyên hệ thống cũng như tài sản số của nạn nhân.
T1565 Data Manipulation Tự động chỉnh sửa các package do nạn nhân quản lý trên npm, PyPI hoặc Cargo nhằm tiếp tục phát tán malware và mở rộng chuỗi tấn công.

Khuyến Nghị Ứng Phó

Hành Động Ngay Lập Tức

  1. Revoke & Rotate Tokens: Thu hồi ngay tất cả developer tokens (npm, PyPI, Cargo, GitHub) trên mọi máy có thể đã chạy các gói bị ảnh hưởng

  2. Kiểm tra phiên bản đang sử dụng: Nếu package-lock.json hoặc node_modules chứa bất kỳ phiên bản bị ảnh hưởng → coi máy đó là compromised

  3. Rotate secrets: Đổi tất cả SSH keys, AWS credentials, API keys trên máy bị nghi nhiễm

  4. Kiểm tra file system: Tìm kiếm sync.js tại các đường dẫn IOC trên tất cả máy developer và CI/CD runner

Giám Sát và Phát Hiện

  1. Monitor outbound traffic: Giám sát kết nối đến 85[.]137[.]53[.]71, BitTorrent bootstrap nodes, và IPFS gateways — đây là bất thường trong môi trường phát triển thông thường

  2. Audit registry releases: Kiểm tra tất cả commit và package releases gần đây trên registry của tổ chức để phát hiện code injection trái phép

  3. Kiểm tra systemd services: Trên Linux, tìm kiếm unit miasma-monitor.service

Phòng Thủ Dài Hạn

  1. Lockfile pinning: Luôn sử dụng npm ci thay vì npm install trong CI/CD

  2. Stability buffer: Áp dụng chính sách không sử dụng package mới publish trong 48–72 giờ đầu

  3. Build-time egress control: Triển khai firewall cho build environment (Build Application Firewall), chặn outbound traffic đến các destination không được phê duyệt

  4. GitHub Actions security:

    • KHÔNG sử dụng pull_request_target với actions/checkout trên PR code

    • Review và audit tất cả workflow có sử dụng repository secrets

    • Merge các security fix kịp thời — vulnerability đã biết từ tháng 4 nhưng fix chưa merge đến tháng 7

  5. Giám sát hành vi import-time: Triển khai giải pháp phát hiện mã độc thực thi tại thời điểm require()/import — không chỉ tại install

Bài Học Rút Ra

Đối với Developer và DevOps

  • Provenance ≠ Trust: Provenance hợp lệ chỉ chứng minh package được build từ pipeline chính thống, KHÔNG chứng minh code bên trong an toàn. Nếu pipeline bị compromise, provenance vẫn hợp lệ.

  • Ignore-scripts không đủ: Khi malware nhúng vào source code thay vì install hook, biện pháp này trở nên vô nghĩa.

  • CI/CD là bề mặt tấn công: Cuộc tấn công bắt đầu từ GitHub Actions misconfiguration — một khu vực thường nằm ngoài phạm vi quét của dependency scanner.

Đối với Tổ Chức

  • Supply chain attack ngày càng phức tạp: Kẻ tấn công kết hợp CI/CD compromise + import-time execution + multi-layer C2 + worm propagation + false flag attribution.

  • npm v12 chưa đủ: Việc chặn post-install scripts là bước tiến nhưng chưa giải quyết gốc rễ — kẻ tấn công chỉ cần chuyển vector tấn công sang import-time.

  • Build-time egress control là layer phòng thủ quan trọng nhất mà hầu hết pipeline chưa triển khai — đây là lớp duy nhất có thể phát hiện và chặn C2 callback.

Tham Khảo

AsyncAPI npm organization compromised, 2M weekly downloads affected

AsyncAPI npm Supply Chain Attack: Malware Injected Into Packages With 2 Million Weekly Downloads

AsyncAPI npm Supply Chain Attack Delivers Miasma RAT

M Red Team: AsyncAPI Supply Chain Compromise via GitHub Actions

More from this blog

F

FPT IS Security

981 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.