Hunt
Analysis of Unpacking the AsyncAPI npm supply chain compromise and import-time payload delivery
Identify documented endpoint, identity, network, persistence, and supply-chain behaviors without asserting internal exposure.
Hunt Hypothesis
If the documented activity is present, hosts will show: npm; node; credential; c2; postinstall; service.
Target Platforms & Environment
Public-technology hunting guidance for environments using the affected technology or observing the documented campaign/tooling.
Required Telemetry & Data Sources
✓ Operational Execution Phases
4 Structured Investigation PhasesBaseline & Telemetry Scoping
🎯 Phase Goal: Confirm coverage and establish normal activity.
Procedural Actions
- 1.1 Verify process, authentication, script, DNS, proxy, and flow telemetry.
- 1.2 Measure normal volume by host, account, parent, destination, and admin window.
- 1.3 Record gaps and select benign comparison hosts.
Anomaly Confirmation & Pivot Guidance
↪ Pivot from process to parent, child, account, hash, host, and destination.
Hypothesis Validation & Behavioral Sweep
🎯 Phase Goal: Test the documented execution chain or tradecraft.
Procedural Actions
- 2.1 Run the typed queries for: npm; node; credential; c2; postinstall; service.
- 2.2 Review anomalous arguments, writable paths, rare parent-child pairs, and first-seen destinations.
- 2.3 Correlate process starts with authentication, DNS, and outbound connections.
Phase Hunting Logic & Queries
DeviceProcessEvents | where Timestamp >= ago(30d) | where ProcessCommandLine has_any ('npm', 'node', 'credential', 'c2', 'postinstall', 'service') | project Timestamp,DeviceName,AccountName,FileName,ProcessCommandLine,InitiatingProcessFileName,SHA1 | order by Timestamp desc
title: Analysis of Unpacking the AsyncAPI npm supply chain compromise and imp - suspicious execution
logsource:
category: process_creation
detection:
selection:
CommandLine|contains:
- npm
- node
- credential
- c2
- postinstall
- service
condition: selection
level: medium
index=endpoint OR index=windows | search command_line IN ("*npm*" "*node*" "*credential*" "*c2*" "*postinstall*" "*service*") | table _time host user process_name parent_process_name command_line sha256 | sort - _time
Anomaly Confirmation & Pivot Guidance
↪ Pivot from process to parent, child, account, hash, host, and destination.
Triage & False-Positive Elimination
🎯 Phase Goal: Separate malicious behavior from administration and maintenance.
Procedural Actions
- 3.1 Validate signer, install path, package provenance, and hash against inventory.
- 3.2 Compare frequency, timing, parent, and destination with benign baseline.
- 3.3 Retain matches with corroboration or unexplained deviation.
Anomaly Confirmation & Pivot Guidance
↪ Pivot from process to parent, child, account, hash, host, and destination.
Scope Expansion & Evidence Preservation
🎯 Phase Goal: Determine blast radius and preserve evidence.
Procedural Actions
- 4.1 Search lateral movement, persistence, credential access, and repeated beaconing.
- 4.2 Expand across hashes, versions, scheduled tasks, services, logons, and destinations.
- 4.3 Preserve responder artifacts and hand off a scoped timeline.
Anomaly Confirmation & Pivot Guidance
↪ Pivot from process to parent, child, account, hash, host, and destination.