Answers for the most common questions when using the Supply Chain Attack Simulator.
Only in an isolated lab environment (VM or dedicated machine). Malicious samples are gated by TESTBENCH_MODE=enabled and exfiltrate to localhost only, but you should still treat the repo as intentionally vulnerable code.
npm/pip installs may need network for dependencies. Exfiltration in labs does not contact external attacker infrastructure.
No. This is for education only. Do not publish malicious packages to public registries or deploy lab payloads outside isolated environments.
- Read ZERO_TO_HERO.md
- Run
./START_HERE.shor follow SETUP.md - Complete Scenario 01 with ZERO_TO_HERO_SCENARIO_01.md
| Doc | Purpose |
|---|---|
| ZERO_TO_HERO.md | Short getting-started guide for your first lab |
| learning-path/SUPPLY_CHAIN_ATTACKS_ZERO_TO_HERO.md | Full curriculum across all scenarios |
See SCENARIO_LEARNING_PATH.md. Minimum: 01 → 02 → 03. Finish 01–05 before 06 (Shai-Hulud).
Almost always TESTBENCH_MODE is not set:
export TESTBENCH_MODE=enabled
echo $TESTBENCH_MODE # should print: enabledA previous mock server is still running:
./scripts/setup/kill-port.sh 3000
# or all known ports:
./scripts/setup/kill-port.sh --allPort reference: OPERATIONS.md · CATALOG.md
Run setup first — it generates the lab tree:
cd scenarios/11-registry-mirror-poisoning
./setup.shStop the mock server before npm start on the victim Express app (documented in scenario README and zero-to-hero guide).
Every scenario: scenarios/<folder>/DETECT.md
Example: scenarios/01-typosquatting/DETECT.md
node detection-tools/package-scanner.js scenarios/01-typosquatting/victim-app
node detection-tools/package-scanner.js scenarios/01-typosquatting/victim-app --jsonSee DETECTION_AND_OBSERVABILITY.md and observability/README.md.
The index is created on first document. Run a scenario with SCAS_ES_URL set, or backfill:
node detection-tools/es/ship-captures.jsCreate data views and saved searches:
./scripts/observability/setup-kibana-data-views.shScenario 01's package may produce zero scanner findings (subtle payload). The smoke script also runs ship-captures.js — ensure captured-data.json exists from a prior lab run.
documentation/ — this folder. The docs/ folder adds GitHub Pages HTML and symlinks to the same Markdown.
documentation index and the scenario catalog.
Raja Nagori holds copyright (© 2024–2026) in the original scenarios, documentation, curriculum, and related materials. See AUTHORS.md and LEGAL.md.
No. You must keep copyright and license notices. Removing attribution or presenting SCAS documentation as your own original work violates the licenses and may be subject to takedown (see ATTRIBUTION.md).
| Material | License |
|---|---|
Software (scenarios/, scripts/, tools) |
MIT |
Documentation (documentation/, guides, modules) |
CC BY-NC-ND 4.0 |
You may fork and use software under MIT with attribution. Documentation may be shared with credit but not commercially republished as modified derivatives without permission.
- Check the scenario README:
scenarios/NN-*/README.md - Check the zero-to-hero guide:
documentation/scenario-guides/zero-to-hero/ZERO_TO_HERO_SCENARIO_NN.md - Run
./scripts/setup/teardown.shand retry from./setup.sh - Open an issue with scenario number, OS, and error output