JustAskJacky Node.js Trojan

Signed helper-app lures · Node.js implant · scheduled-task persistence · behavioral hunts and hardening
Threat
JustAskJacky Node.js Trojan
Type
Signed productivity-app trojan family
Severity
High
Version
v0.3 Draft · 2026-09-04
Author
cybersecurity analyst
Confidence
High core behavior; medium actor/ecosystem relationship
STATIC REVIEW PASSED
01

Executive Summary

What happened: Red Canary documented JustAskJacky in its 2026 Threat Detection Report as a widespread family of functional-looking AI-helper and utility applications with hidden remote-command capability. Related samples extend to December 2024, activity crossed industries during 2025, and Red Canary reported the family as its most prevalent named threat for three months before a December decline. Unit 42 independently placed it in a broader ecosystem of signed productivity-app clusters while cautioning that certificate, code, and infrastructure differences do not prove a single operator.

How it works: a user launches a signed lure such as GoAskBobby, CheckWithGilbert, AskBettyHow, JustAskJacky, or ManualReaderPro. The installer places a Node.js runtime and GUID-named JavaScript below a lure-named AppData Local Programs directory, then imports task.xml to create a GUID-named scheduled task that relaunches node.exe with the script. The JavaScript reads MachineGuid and operating-system details, heartbeats to dynamic-looking API domains, decodes Base64 and single-byte-XOR tasking, and can evaluate received JavaScript in memory. Red Canary saw reconnaissance but did not observe a later payload objective, so this pack does not invent one.

Why detection belongs on behavior: valid signing is not a trust verdict, lure names can change, and the five published API domains are historical infrastructure. The durable intersection is unusual Node.js execution from an AppData application directory, XML task creation that points back to that runtime, and discovery children parented by node.exe. Four CQL queries cover those process and DNS pivots. Non-PE JavaScript writes, certificate subject/serial, decoded in-memory evaluation, proxy content, IPv6, and deeper wrapper lineage remain explicit gaps until the target tenant supplies evidenced fields.

Operational consequence: remote JavaScript tasking under a user context creates a flexible foothold even when no second-stage payload is visible. Analysts should preserve task XML, installed files, hashes, signer context, process lineage, DNS, and user/session evidence before disabling persistence. Application control should begin in audit mode because legitimate Node/Electron software and enterprise installers can resemble parts of this chain.

Defender priority: Preserve task and process evidence, isolate corroborated infections, and restrict unapproved signed helper applications.
PriorityWhy nowCoverage deliveredKey limitation
Preserve task and process evidence, isolate corroborated infections, and restrict unapproved signed helper applications.Current annual-report prominence plus independent technical corroboration4 CQL queries, 10 source-bound indicators, 3 explicit telemetry gapsHistorical domains may be stale; in-memory evaluation and signer identity need non-portable telemetry.
02

Source and Claim Review

Only sanitized plain-text evidence from the current run is retained. Source pages were treated as untrusted data; no embedded instructions, commands, scripts, credentials, or active content were used.

IDPublisherTierIndependence groupAccessedStatus
S01Red CanaryT1red-canary2026-09-04T11:35:00Zsanitized plain-text extraction
S02Palo Alto Networks Unit 42T1unit422026-09-04T11:35:00Zsanitized plain-text extraction
S03Red CanaryT1red-canary2026-09-04T11:35:00Zsanitized plain-text extraction
S04Microsoft LearnAUTHmicrosoft2026-09-04T11:35:00Zsanitized plain-text extraction

Claim ledger

ClaimStatementSourcesBasisConfidenceCaveat
C01JustAskJacky is a family of functional-looking AI helper and utility applications with hidden remote-command capabilityS01directhighnone
C02Related samples date to December 2024 and Red Canary observed widespread cross-industry activity in 2025S01directhighsingle telemetry provider
C03The installer deploys Node.js and a GUID-named JavaScript file beneath a lure-named AppData Local Programs directoryS01directhighpaths vary by lure
C04Persistence imports an XML scheduled-task definition that relaunches node.exe with the JavaScript fileS01directhightask names and paths vary
C05The JavaScript reads MachineGuid and operating-system details and can evaluate Base64 and XOR encoded JavaScript received from C2S01directhighin-memory tasking may not create a file event
C06Red Canary observed reconnaissance but no later payload objective, leaving operator intent uncertainS01directhighabsence in one telemetry set is not proof of absence
C07Unit 42 places JustAskJacky in a broader signed productivity-app ecosystem while separating clusters by certificate, code, and infrastructureS02directmediumecosystem relationship does not prove one operator
C08A valid code signature does not establish benign intent when certificates sign unrelated lure brandsS02directmediumanalytical guidance
C09Red Canary reported JustAskJacky as its most prevalent named threat for three months before a December 2025 volume declineS03directhighsame independence group as S01
C10Microsoft application control supports staged audit and enforcement policies based on signer, publisher, path, and hashS04directhighhardening authority only
Contradictions and limits: No tenant execution evidence exists. Historical network indicators may be stale. Source reporting does not prove a single operator or universal downstream objective.
03

Hunt Brief and Attack Chain

The chain is evidence-led: product or lure execution, placement and persistence, command behavior, and remote communications are kept separate so an analyst can stop at the strongest corroborated step.

StepClaimsBehaviorPlatformDetection goal
1C01, C07a signed helper or utility installer is downloaded and launchedwindowsidentify lure execution and signer/path context
2C03the installer places Node.js and a GUID-named JavaScript file beneath AppData Local Programswindowsidentify unusual runtime and script placement
3C04the installer imports an XML scheduled task that launches node.exe and the JavaScript filewindowsidentify durable task persistence
4C05node.exe collects host information and heartbeats to a dynamic-looking API domainwindowscorrelate runtime, host discovery, and C2
5C05, C06the implant receives encoded JavaScript and evaluates it in memorywindowsrecord the diskless tasking visibility gap

Hypotheses

IDBehaviorEvents / repositoryUseLookbackValidation
H01a newly introduced Node.js runtime executes JavaScript from an AppData Local Programs lure directoryProcessRollup2hunt30d — captures infrequent persistence while bounding process volumeRun a harmless Node.js script from an isolated AppData test path, then baseline legitimate Node/Electron installations for 30 days.
H02schtasks imports task XML from a temporary installer directory and the task action points node.exe to AppData JavaScriptProcessRollup2alert-candidate30d — persistence may remain long after installationIn a lab, import a benign task XML whose action launches a harmless Node.js script, verify the event, then measure authorized installer baselines.
H03a GUID-named JavaScript file is written below AppData Local Programs near a bundled runtimePeFileWrittengap30d — supports retrospective installation reviewMap tenant file-write telemetry for non-PE JavaScript files; retain this as a gap until an evidenced event and filename field exist.
H04node.exe or a lure-named executable resolves a source-published JustAskJacky API domainDnsRequesthunt90d — historical IOC sweep onlyQuery a controlled DNS lookup in a lab and confirm DomainName and context-process attribution; never generate traffic to the malicious domains.
H05node.exe or a lure application spawns host reconnaissance commands shortly after install or task executionProcessRollup2hunt30d — supports low-frequency discovery correlationExecute benign whoami and systeminfo children from a lab Node process, then baseline approved Node automation parents.
H06encoded JavaScript is received and evaluated entirely inside the Node.js process#repo=base_sensorgapN/A — telemetry gapUse proxy/TLS inspection or application instrumentation in a lab; do not infer in-memory eval from node.exe existence alone.

Affected surface and telemetry

Coverage assumes managed Windows endpoints with ProcessRollup2, ScheduledTaskRegistered, and DnsRequest where populated, plus native task, browser, DNS, proxy, and application-control records. Direct-parent depth, non-PE file writes, signer certificate identity, HTTP content, IPv6, and tenant field population require environment-specific confirmation.

04

Consolidated IOC Table

Indicators below are source-bound historical hunt pivots, not proof of compromise or timeless block entries. Require behavior, host, user, process, and timing context; assign review/expiry dates to infrastructure.

IDTypeValueSourcesContextConfidenceVolatilityAction
I01pathGoAskBobby.exeS01AI-helper lure filenamehighmediumhunt
I02pathCheckWithGilbert.exeS01AI-helper lure filenamehighmediumhunt
I03pathJustAskJacky.exeS01AI-helper lure filenamehighmediumhunt
I04pathAskBettyHow.exeS01AI-helper lure filenamehighmediumhunt
I05pathmanualreaderpro.exeS01manual-reader lure filenamehighmediumhunt
I06domainapi.k2ioeasm874fnacr9x.comS01historical C2 examplehighhighhunt
I07domainapi.j6vmldsufhwx8zn69z.comS01historical C2 examplehighhighhunt
I08domainapi.vtqgo0729ilnmyxs9q.comS01historical C2 examplehighhighhunt
I09domainapi.nk99s1s3zkutjlyodx.comS01historical C2 examplehighhighhunt
I10domainapi.78kwijczjz0mcig0f0.comS01historical C2 examplehighhighhunt
Why atomics age out: filenames, task names, certificates, advertising domains, and C2 infrastructure can be rotated or reassigned. Retain provenance and first/last-seen context; use the behavioral chain for durable coverage.
05

ATT&CK Mapping

ATT&CK rows describe attacker behavior supported by named claims. Every mapping is explicitly an analyst inference; neither product inventory nor hardening is mislabeled as adversary behavior.

TacticTechniqueNameBehaviorBasisSourcesClaims
Initial AccessT1036Masqueradinginstaller masquerades as a useful AI or utility applicationanalyst_inferenceS01C01
ExecutionT1059.007JavaScript/JScriptnode.exe executes an obfuscated JavaScript implantanalyst_inferenceS01C03
PersistenceT1053.005Scheduled Task/Job: Scheduled Taskan imported XML task relaunches the implantanalyst_inferenceS01C04
DiscoveryT1082System Information Discoveryimplant collects MachineGuid and OS detailsanalyst_inferenceS01C05
Command and ControlT1071.001Web Protocolsimplant heartbeats to web C2 and receives encoded taskinganalyst_inferenceS01C05
06

Native / Non-CQL Hunts

These native pivots supply evidence that portable endpoint CQL cannot safely invent. Complete them alongside the query set and preserve original records before remediation.

HuntLog sourceLogicResponse
Scheduled-task evidenceWindows Task Scheduler Operational log; Event IDs 106, 140, 141 and Security 4698 where enabledFind imported XML tasks whose action launches node.exe with JavaScript below AppData Local Programs; preserve task XML, creator, action, trigger, and timestamps.Disable only after evidence capture and owner validation; re-hunt the referenced runtime and script.
Signer and installed-file reviewFalcon file/process views plus Windows signature tooling and software inventoryPivot from lure filenames and AppData install roots to publisher, certificate thumbprint, hash, first seen, prevalence, sibling brands, and node.exe/script placement.Treat a valid signature as context, not clearance; quarantine only corroborated malicious files.
Proxy and DNS correlationSecure web gateway, resolver, and TLS metadataCorrelate historical API domains and dynamic subdomains with node.exe lineage, host, user, timing, response volume, and newly installed helper software.Block confirmed malicious destinations with review dates; preserve DNS and proxy evidence.
07

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Query strategy: process, task-registration, discovery-lineage, and historical DNS hunts are intentionally separated. Alert-candidate labels describe potential fidelity, not readiness; every query remains design-only and analyst-led.

All queries are static-only. Start with a one-hour manual window, confirm the repository, fields, and row semantics, then expand to the documented lookback.

Q01 · AppData Node.js launching JavaScript
CONF mediumFP mediumCOST low

Looks for: node.exe below an AppData Local Programs installation executing a JavaScript file. Accomplishes: catches the durable runtime-and-script shape across changing helper names while retaining process context for analyst review.

Trace: H01 · A01

// HUNT: AppData Node.js launching JavaScript
// HYPOTHESIS: H01
// USE: hunt
// MITRE: T1059.007
// CONF: medium
// FP: medium
// COST: low
// TIMEFRAME: 30d — identify infrequent AppData runtime execution
// REQUIRES: #event_simpleName=ProcessRollup2; ImageFileName, CommandLine, ParentBaseFileName
// FALSE POSITIVES: legitimate Node or Electron applications
// TUNING: exclude developer workstations and approved product install paths
// VALIDATION: STATIC-ONLY
#event_simpleName = ProcessRollup2
| test(@timestamp >= now() - 2592000000)
| ImageFileName = /\\node\.exe$/i
| CommandLine = /\\appdata\\local\\programs\\/i
| CommandLine = /\.js(?:"|\s|$)/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, SHA256HashData, aid])
| sort(@timestamp, order=desc, limit=1000)
Q02 · Task XML launching Node.js from AppData
CONF highFP mediumCOST low

Looks for: schtasks importing XML while its command line references AppData Local and node.exe. Accomplishes: catches JustAskJacky persistence at creation time, the highest-fidelity portable behavior in the reported chain.

Trace: H02 · A02

// HUNT: Task XML launching Node.js from AppData
// HYPOTHESIS: H02
// USE: alert-candidate
// MITRE: T1053.005
// CONF: high
// FP: medium
// COST: low
// TIMEFRAME: 30d — scheduled-task persistence remains durable
// REQUIRES: #event_simpleName=ProcessRollup2; ImageFileName, CommandLine, ParentBaseFileName
// FALSE POSITIVES: software installers that import scheduled-task XML
// TUNING: exclude approved deployment tools and known task XML paths
// VALIDATION: STATIC-ONLY
#event_simpleName = ProcessRollup2
| test(@timestamp >= now() - 2592000000)
| ImageFileName = /\\schtasks\.exe$/i
| CommandLine = /\/create/i
| CommandLine = /\/xml/i
| CommandLine = /appdata\\local/i
| CommandLine = /node\.exe/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, CommandLine, SHA256HashData, aid])
| sort(@timestamp, order=desc, limit=1000)
Q03 · Historical JustAskJacky C2 DNS hits
CONF highFP lowCOST low

Looks for: endpoint DNS requests to five source-bound JustAskJacky API domains. Accomplishes: provides a precise retrospective pivot while preserving process context; a miss does not exclude newer infrastructure.

Trace: H04 · A03

// HUNT: Historical JustAskJacky C2 DNS hits
// HYPOTHESIS: H04
// USE: hunt
// MITRE: T1071.001
// CONF: high
// FP: low
// COST: low
// TIMEFRAME: 90d — historical indicator sweep only
// REQUIRES: #event_simpleName=DnsRequest; DomainName, ContextBaseFileName, ContextProcessId_decimal
// FALSE POSITIVES: security research or sinkhole lookups
// VALIDATION: STATIC-ONLY
#event_simpleName = DnsRequest
| test(@timestamp >= now() - 7776000000)
| in(DomainName, values=["api.k2ioeasm874fnacr9x.com","api.j6vmldsufhwx8zn69z.com","api.vtqgo0729ilnmyxs9q.com","api.nk99s1s3zkutjlyodx.com","api.78kwijczjz0mcig0f0.com"])
| table([@timestamp, ComputerName, DomainName, ContextBaseFileName, ContextProcessId_decimal, aid])
| sort(@timestamp, order=desc, limit=1000)
Q04 · Node.js parented reconnaissance
CONF mediumFP mediumCOST low

Looks for: node.exe or a named helper spawning Windows discovery utilities. Accomplishes: connects the disguised application to host reconnaissance, increasing fidelity beyond a standalone runtime or generic command hit.

Trace: H05 · A04

// HUNT: Node.js parented reconnaissance
// HYPOTHESIS: H05
// USE: hunt
// MITRE: T1082
// CONF: medium
// FP: medium
// COST: low
// TIMEFRAME: 30d — correlate low-frequency discovery with runtime context
// REQUIRES: #event_simpleName=ProcessRollup2; ParentBaseFileName, ImageFileName, CommandLine
// FALSE POSITIVES: Node-based management and inventory tooling
// TUNING: exclude approved Node automation parents and managed inventory hosts
// VALIDATION: STATIC-ONLY
#event_simpleName = ProcessRollup2
| test(@timestamp >= now() - 2592000000)
| ParentBaseFileName = /^(node|justaskjacky|goaskbobby|checkwithgilbert|askbettyhow)\.exe$/i
| ImageFileName = /\\(reg|systeminfo|whoami|ipconfig|nltest|net)\.exe$/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, aid])
| sort(@timestamp, order=desc, limit=1000)
08

Operationalization and IOA Candidates

Stage 4 is deliberately degraded: every candidate remains hunt-only and design-only because no tenant parse, positive test, benign baseline, suppression, volume, routing, owner, or SLA evidence exists. No Custom IOA or scheduled alert is shipped.

AlertQueryDesign useDecisionReadinessRationale
A01Q01hunthunt-onlydesign-onlyTenant parsing, positive testing, benign baseline, result-volume, scheduling, suppression, routing, ownership, SLA, and failure-monitoring evidence are absent.
A02Q02alert-candidatehunt-onlydesign-onlyTenant parsing, positive testing, benign baseline, result-volume, scheduling, suppression, routing, ownership, SLA, and failure-monitoring evidence are absent.
A03Q03hunthunt-onlydesign-onlyTenant parsing, positive testing, benign baseline, result-volume, scheduling, suppression, routing, ownership, SLA, and failure-monitoring evidence are absent.
A04Q04hunthunt-onlydesign-onlyTenant parsing, positive testing, benign baseline, result-volume, scheduling, suppression, routing, ownership, SLA, and failure-monitoring evidence are absent.

Promotion gate

Confirm tenant parsing and populated fields; run safe positive and representative benign tests; measure prevalence and cost; define grouping, deduplication, suppressions, routing, owner, SLA, and rollback; then re-review independently.

09

Machine-Readable IOC Appendix

CSV-style copy blocks retain source IDs and context. Historical infrastructure is supplied for retrospective hunting only; validate ownership and expiry before any prevention action.

Source-tagged CSV10 values
type,value,action,severity,expiration,description,tags
path,GoAskBobby.exe,detect,medium,2027-09-04,AI-helper lure filename,source:S01
path,CheckWithGilbert.exe,detect,medium,2027-09-04,AI-helper lure filename,source:S01
path,JustAskJacky.exe,detect,medium,2027-09-04,AI-helper lure filename,source:S01
path,AskBettyHow.exe,detect,medium,2027-09-04,AI-helper lure filename,source:S01
path,manualreaderpro.exe,detect,medium,2027-09-04,manual-reader lure filename,source:S01
domain,api.k2ioeasm874fnacr9x.com,detect,medium,2026-12-04,historical C2 example,source:S01
domain,api.j6vmldsufhwx8zn69z.com,detect,medium,2026-12-04,historical C2 example,source:S01
domain,api.vtqgo0729ilnmyxs9q.com,detect,medium,2026-12-04,historical C2 example,source:S01
domain,api.nk99s1s3zkutjlyodx.com,detect,medium,2026-12-04,historical C2 example,source:S01
domain,api.78kwijczjz0mcig0f0.com,detect,medium,2026-12-04,historical C2 example,source:S01
Path5 values
GoAskBobby.exe,sources=S01,context=AI-helper lure filename,volatility=medium
CheckWithGilbert.exe,sources=S01,context=AI-helper lure filename,volatility=medium
JustAskJacky.exe,sources=S01,context=AI-helper lure filename,volatility=medium
AskBettyHow.exe,sources=S01,context=AI-helper lure filename,volatility=medium
manualreaderpro.exe,sources=S01,context=manual-reader lure filename,volatility=medium
Domain5 values
api.k2ioeasm874fnacr9x.com,sources=S01,context=historical C2 example,volatility=high
api.j6vmldsufhwx8zn69z.com,sources=S01,context=historical C2 example,volatility=high
api.vtqgo0729ilnmyxs9q.com,sources=S01,context=historical C2 example,volatility=high
api.nk99s1s3zkutjlyodx.com,sources=S01,context=historical C2 example,volatility=high
api.78kwijczjz0mcig0f0.com,sources=S01,context=historical C2 example,volatility=high
10

Hardening — Tiered and Deployable

Immediate — stop confirmed tasking without destroying evidence
  • Quarantine confirmed helper-trojan hosts after evidence capture (CTRL01) — After incident-command approval, network-contain only hosts with corroborated task, process, and C2 evidence; preserve the task XML, process tree, installed files, hashes, DNS, and user context first. deployable-design Verify: Confirm the host cannot reach unapproved destinations while the response channel and evidence collection remain available. Expected: Confirmed host is isolated without losing required evidence or response access. Rollback: Release containment only after eradication, credential review, approved-software reinstall, and a clean re-hunt. Authority: S01 · Red Canary 2026 Threat Detection Report; accessed 2026-09-04.
  • Disable confirmed malicious scheduled tasks through a continuity gate (CTRL02) — Export the task definition and related files, identify the owner, then disable only the confirmed GUID task that launches the AppData Node.js implant. deployable-design Verify: Read the disabled task state, verify the implant no longer launches at logon, and confirm legitimate user applications still work. Expected: The malicious action does not run and normal approved applications remain healthy. Rollback: Re-enable the exported task only if ownership proves it legitimate; otherwise restore service through the approved application installer, never the suspect task. Authority: S01 · Red Canary 2026 Threat Detection Report; accessed 2026-09-04.
Near-term — expose signed-lure and persistence behavior
  • Pilot application control for unapproved helper and utility installers (CTRL03) — Create an App Control policy in audit mode that allows managed software sources and reviewed publishers while logging unapproved lure applications, bundled Node.js runtimes, and scripts from user-writable install paths. deployable-design Verify: Review audit events with application owners and test approved AI, PDF, manual, and developer tools. Expected: Known business applications remain usable and unapproved helper installers are attributable before enforcement. Rollback: Remove or revert the pilot policy through the documented management channel and restore the prior signed policy. Authority: S04 · Microsoft App Control for Business; accessed 2026-09-04.
  • Restrict and monitor Node.js on non-development endpoints (CTRL04) — Use managed application inventory to identify approved Node.js and Electron products; deny or review new Node runtimes and JavaScript execution from user-writable paths outside approved product directories. deployable-design Verify: Run approved product health tests and confirm a benign unauthorized lab runtime is logged or denied in the pilot. Expected: Approved apps pass while new user-path runtime execution produces reviewable evidence. Rollback: Restore the prior allow policy for the pilot cohort and retain audit evidence for rule refinement. Authority: S04 · Microsoft App Control for Business; accessed 2026-09-04.
Strategic — govern application trust and telemetry retention
  • Provide a managed catalog for AI helpers and common utilities (CTRL05) — Publish approved AI, PDF, manual, and productivity tools through managed software distribution; remove local install rights where business-compatible and route exceptions through signer and source review. deployable-design Verify: Sample installs from the catalog and verify unmanaged lookalike installers are blocked or escalated. Expected: Users obtain approved tools without search-driven downloads and exceptions remain attributable. Rollback: Restore time-bounded install rights for a named user and package under approval while correcting catalog coverage. Authority: S04 · Microsoft App Control for Business; accessed 2026-09-04.
  • Retain task, process, file, and DNS evidence for behavior-led detection (CTRL06) — Centralize scheduled-task registration, process command line, PE write, DNS, and application-control audit records with source-health monitoring and retention sufficient for a 90-day retrospective hunt. deployable-design Verify: Generate one owner-approved benign task and Node.js test, then verify complete linked records and source-health alerting. Expected: Expected fields arrive with synchronized timestamps and an intentional collection pause is detected. Rollback: Restore the previous forwarding configuration and retention while preserving collected records and documenting any coverage loss. Authority: S01 · Red Canary 2026 Threat Detection Report; accessed 2026-09-04.

Deployable playbook · CTRL01 + CTRL02

  1. Confirm incident authority, owner, business dependencies, evidence storage, and recovery path.
  2. Capture task definitions, process trees, files and hashes, DNS/network records, user/session state, and current policy before change.
  3. Pilot the containment or domain/task change on one confirmed endpoint or small cohort.
  4. Verify the expected malicious behavior stops and evidence remains accessible.
  5. Run application, authentication, network, and user workflow health checks.
  6. Expand only to confirmed matching systems after the pilot remains healthy.
  7. If a stop condition occurs, apply the documented narrow rollback and verify restored service without reintroducing suspect artifacts.
  8. Retain before/after exports, approvals, test evidence, and owner sign-off.

Deployable playbook · CTRL03 + CTRL05

  1. Inventory approved applications, publishers, install paths, owners, and exception requirements.
  2. Export current application-control policy and confirm a tested rollback channel.
  3. Deploy the new policy to an isolated audit-only pilot.
  4. Exercise approved applications and harmless representative tests; review every unexpected audit event.
  5. Verify business workflows, software updates, and developer exceptions.
  6. Promote narrowly only when audit data and owners support each allow/deny decision.
  7. Rollback to the previous signed policy if a critical application fails and verify endpoint health.
  8. Retain policy hashes, audit samples, approvals, exceptions, and review dates.
Design state: controls are deployable designs, not tested or deployed facts. Complete the named pilot, compatibility, authority, stop-condition, verification, and rollback checks first.
11

Containment Runbook

PhaseTriggerAuthorityOwnerEvidenceRecovery
1 · ValidateCorroborated process, task, file, or C2 evidenceSOC leadSOCquery row, raw event, process tree, task XML, file/hash, DNS and user contextNo disruptive action; close as benign only with documented owner evidence.
2 · PreserveProbable compromise after triageIncident commanderIncident Responsevolatile context, files, hashes, task/config exports, network/DNS, identity/session statePreservation is additive; verify evidence hashes and custody before changes.
3 · ContainConfirmed persistence, remote tasking, or follow-on payloadIncident commander plus system ownerIR / Network Securitycontainment approval, endpoint/network controls, timestamps, exceptionsMaintain response access and business continuity; release only after eradication gates.
4 · Eradicate and recoverEvidence secured and clean rebuild/reinstall path approvedChange authorityEndpoint Engineeringtrusted package/image digest, removed persistence, credential review, health testsRestore from known-good media/packages; never restore the suspect task or DLL.
5 · Close and re-huntRecovery checks passIncident commander and ownerSOC / Endpoint Engineeringclean 24h and 7d re-hunts, source health, owner sign-off, lessons learnedRecontain and reopen if persistence, C2, or unexplained process activity returns.

Continuity rule: preserve evidence first. Do not isolate critical systems, remove tasks/files, revoke credentials, or impose application-control enforcement without incident authority, the service owner, known dependencies, and a tested recovery path.

12

Detection Coverage and Validation Evidence

Validation state: STATIC REVIEW PASSED after local structure/safety, field/event, CQL syntax, and source-snapshot provenance gates. The offline dry run records extraction and profile readiness only; it does not contact Falcon or prove parsing, detection, canary success, or deployment.

TechniqueCoverageQueries / handoffEvidenceLimitation
T1036GapNative handoffEvidence-backed design gapHistorical domains may be stale; in-memory evaluation and signer identity need non-portable telemetry.
T1059.007StaticQ01Local structure/field/syntax/provenance reviewHistorical domains may be stale; in-memory evaluation and signer identity need non-portable telemetry.
T1053.005StaticQ02Local structure/field/syntax/provenance reviewHistorical domains may be stale; in-memory evaluation and signer identity need non-portable telemetry.
T1082StaticQ04Local structure/field/syntax/provenance reviewHistorical domains may be stale; in-memory evaluation and signer identity need non-portable telemetry.
T1071.001StaticQ03Local structure/field/syntax/provenance reviewHistorical domains may be stale; in-memory evaluation and signer identity need non-portable telemetry.

Recorded gaps and next evidence

  • Every query remains tenant-unverified and design-only.
  • Direct-parent lineage, field population, IPv6, proxy content, and environment-specific exclusions require tenant review.
  • Historical atomics require context and expiry; no query result was generated by this build.
  • Next step: run the named DO FIRST query manually for one hour, confirm fields and semantics, then record positive and benign tests before promotion.
13

Hunt Summary Ticket

TITLE:        JustAskJacky Node.js Trojan hunt — v0.3 Draft
SEVERITY:     high — source-corroborated remote execution or persistence behavior warrants prioritized review
SCOPE:        managed Windows endpoints; Falcon process/task/DNS telemetry; native task, proxy, browser, and application-control evidence
HYPOTHESIS:   H01 a newly introduced Node.js runtime executes JavaScript from an AppData Local Programs lure directory; H02 schtasks imports task XML from a temporary installer directory and the task action points node.exe to AppData JavaScript; H03 a GUID-named JavaScript file is written below AppData Local Programs near a bundled runtime; H04 node.exe or a lure-named executable resolves a source-published JustAskJacky API domain; H05 node.exe or a lure application spawns host reconnaissance commands shortly after install or task execution; H06 encoded JavaScript is received and evaluated entirely inside the Node.js process
QUERIES RUN:  Q01 hunt; Q02 alert-candidate; Q03 hunt; Q04 hunt
DO FIRST:     Q02 over 30 days, then Q01 and Q04 on every matching host; do not contact historical malicious domains.
FINDINGS:
GAPS:         Historical domains may be stale; in-memory evaluation and signer identity need non-portable telemetry. No tenant execution evidence exists.
ACTIONS:      SOC preserves and hunts evidence; IR contains corroborated infections; Endpoint and Network owners pilot controls with rollback
OWNER:        SOC / Incident Response / Endpoint Security / Network Security
VERSION:      v0.3 Draft · 2026-09-04 · STATIC REVIEW PASSED
14

Changelog

v0.3 Rich visual emphasis2026-09-04Added coordinated semantic color to Executive Summary lead-ins, threat metadata, Severity, and IOC counts. Detection logic, evidence, indicators, hardening, and validation claims are unchanged.
v0.2 Theme refresh2026-09-04Applied the deterministic threat-aware HuntPack palette. Detection logic, evidence, indicators, hardening, and validation claims are unchanged.
v0.1 Draft2026-09-04Initial pack with 4 conservative CQL queries, 10 source-bound indicators, 6 reversible controls, 2 playbooks, a five-phase containment workflow, explicit gaps, and no tenant execution claims.
15

References

IDPublisherEdition / dateAccessedUseURL
S01Red CanaryCurrent cited edition2026-09-04T11:35:00ZC01, C02, C03, C04, C05, C06, I01, I02, I03, I04, I05, I06, I07, I08, I09, I10https://redcanary.com/threat-detection-report/threats/justaskjacky/
S02Palo Alto Networks Unit 42Current cited edition2026-09-04T11:35:00ZC07, C08https://unit42.paloaltonetworks.com/tracking-tampered-chef-clusters/
S03Red CanaryCurrent cited edition2026-09-04T11:35:00ZC09https://redcanary.com/blog/threat-intelligence/intelligence-insights-january-2026/
S04Microsoft LearnCurrent cited edition2026-09-04T11:35:00ZC10https://learn.microsoft.com/en-us/windows/security/application-security/application-control/app-control-for-business/appcontrol