@lateos/npm-scan 0.9.7 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,200 @@
1
+ # Changelog
2
+
3
+ All notable changes to [@lateos/npm-scan](https://github.com/lateos-ai/npm-scan) are documented here.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [Unreleased]
8
+
9
+ ### Added
10
+ - `scan --file <path>` flag to analyze local `.tgz` tarballs without fetching from npm registry
11
+ - `scan --fail-on <level>` flag to exit with code 1 when findings >= severity (CI/CD integration)
12
+ - `scan --sarif [file]` to output SARIF v2.1 format for GitHub Advanced Security, VS Code, Azure DevOps
13
+ - `scan --csv [file]` and `report --csv [file]` to export tabular CSV for Excel/Sheets import
14
+ - `scan --score-only` to output only risk score (0-10), auto-added to JSON output
15
+ - Government/SOC 2 features: `--audit-log`, `--fips`, `--stig`, `--cache-dir` for air-gapped/federal compliance
16
+ - **BYOC (Bring Your Own Cloud)**: Helm chart v1.0.0 for enterprise/government VPC deployments with SIEM, PDF, SSO
17
+
18
+ ## [0.9.7] — 2026-05-12
19
+
20
+ - Sigstore provenance attestation on every publish via new GitHub Actions workflow
21
+ - Fix duplicate Docker section in README.md
22
+ - Add SECURITY.md with vulnerability disclosure policy and PGP key
23
+
24
+ ## [0.9.6] — 2026-05-12
25
+
26
+ - Add Docker badge (`ghcr.io/lateos/npm-scan`) to all 5 READMEs
27
+ - Add dedicated Docker quick-start section in all languages
28
+ - Replace duplicate Docker pull instructions in Integrations with cross-references
29
+
30
+ ## [0.9.5] — 2026-05-12
31
+
32
+ - Fix literal `\n` escape sequences in LICENSING.md (replaced with real newlines)
33
+
34
+ ## [0.9.4] — 2026-05-11
35
+
36
+ - Fix language badge links to use absolute GitHub URLs so they work from npm web UI
37
+ - Fix GitHub organization links from `lateos` to `lateos-ai` across all READMEs
38
+
39
+ ## [0.9.3] — 2026-05-11
40
+
41
+ - Add multi-language README: Chinese (`README.zh.md`), Japanese (`README.ja.md`), French (`README.fr.md`), German (`README.de.md`)
42
+ - Language-switcher badges with absolute GitHub URLs in all 5 READMEs
43
+
44
+ ## [0.9.2] — 2026-05-11
45
+
46
+ - **222 tests across 8 test files** (212 passing, 10 skipped for known FPs)
47
+ - **85% line coverage** with Node.js native test runner
48
+ - New test files: `test/db.test.js`, `test/detectors-edge-cases.test.js`, `test/detectors-corpus.test.js`, `test/report-snapshots.test.js`, `test/fetch.test.js`, `test/policy-edge-cases.test.js`, `test/cli.test.js`, `test/fixtures/mock-data.js`
49
+ - `backend/db.js:close()` resets `initPromise = null` for test isolation
50
+ - GitHub Actions CI with Node 18/20/22 matrix, corpus tests, and self-scan
51
+ - GitHub Actions PR lockfile scanner with `fail-on: high`
52
+
53
+ ## [0.9.1] — 2026-05-11
54
+
55
+ - Remove `node-fetch` import and dependency (replaced in 0.9.0)
56
+
57
+ ## [0.9.0] — 2026-05-11
58
+
59
+ - **Replace `node-fetch` with native `fetch`** (Node 18+) — removes external HTTP dependency
60
+ - **Replace `better-sqlite3` with `sql.js`** (WASM) — zero native compilation, fixes `npx` silent failure on systems without build tools
61
+ - Add 404 check in `backend/fetch.js` for robust registry lookups
62
+ - Reduce ATK-009 false positives on `lodash`/`axios`/`express`
63
+ - Fix ATK-002/011 false positives — stricter eval+decode rules, remove self-referential checks
64
+ - Fix ATK-008 `knownRepos` for `vue`
65
+
66
+ ## [0.8.0] — 2026-05-11
67
+
68
+ - **YAML/JSON policy-as-code engine** — allowlists, severity overrides, suppressions, `fail_on` threshold
69
+ - **Text report generator** (free tier)
70
+ - **PDF report generator** (premium, via `pdf-lib`)
71
+ - **Docker**: multi-stage builds, Compose profiles, health checks, validation script, Makefile
72
+ - Comprehensive README rewrite with comparison table, ATK taxonomy, usage examples, integrations
73
+ - `.npmignore` cleanup for smaller package
74
+
75
+ ## [0.7.6] — 2026-05-10
76
+
77
+ - **GitHub Action** (`action.yml`) — scan on push/PR with lockfile or package mode, fail-on severity threshold, SIEM/SBOM output support
78
+ - **28 comprehensive tests** covering SIEM exporters (CEF, ECS, Sentinel, QRadar), EU CRA compliance, SBOM (CycloneDX + SPDX), License key gen/validation/edition/tamper/expiry, Report/NIST (HTML, SR-series table, severity badges, all 11 ATK IDs)
79
+ - Fix tampered key test determinism
80
+
81
+ ## [0.7.5] — 2026-05-10
82
+
83
+ - Add Elastic ECS, Microsoft Sentinel, and IBM QRadar SIEM exporters
84
+
85
+ ## [0.7.4] — 2026-05-10
86
+
87
+ - Version bump only; no functional changes
88
+
89
+ ## [0.7.3] — 2026-05-10
90
+
91
+ - Version bump only; no functional changes
92
+
93
+ ## [0.7.2] — 2026-05-10
94
+
95
+ - Fix duplicate Enterprise Features section in README
96
+
97
+ ## [0.7.1] — 2026-05-10
98
+
99
+ - Add SAML SSO and REST API sections to README
100
+
101
+ ## [0.7.0] — 2026-05-10
102
+
103
+ - **Enterprise SAML SSO integration**
104
+
105
+ ## [0.6.0] — 2026-05-10
106
+
107
+ - **License key enforcement** — HMAC-signed keys with community/premium/enterprise editions
108
+ - Feature gating for SIEM, CRA, REST API, Helm, PostgreSQL backend, SSO, audit logs
109
+ - **PostgreSQL schema** — teams, users, RBAC, audit log, webhooks, API keys, materialized `package_risk` view
110
+ - **FastAPI REST API** — scan/list/retrieve endpoints, webhook CRUD with HMAC-signed dispatch
111
+ - **Webhook engine** — event dispatch with retry, signature verification header
112
+ - **Helm chart** — API + worker + PostgreSQL deployments, secrets, ingress, PVC
113
+ - CLI hardened: premium features blocked without valid license key
114
+
115
+ ## [0.5.0] — 2026-05-10
116
+
117
+ - **ATK-011 (Transitive Propagation)** detector
118
+ - **SIEM CEF export** for Splunk and ArcSight integration
119
+ - **EU CRA compliance report** — EU Cyber Resilience Act readiness assessment
120
+ - Phase 3 enterprise foundation
121
+
122
+ ## [0.4.1] — 2026-05-10
123
+
124
+ - Update README for Phase 3 (ATK-011, SIEM, CRA)
125
+
126
+ ## [0.4.0] — 2026-05-10
127
+
128
+ - **ATK-008 (Tarball Tampering)**, **ATK-009 (Dormant Trigger)**, **ATK-010 (Sandbox Evasion)** detectors
129
+ - **SPDX 2.3 SBOM** support alongside CycloneDX
130
+ - **NIST SP 800-161 compliance report** — supply chain risk management controls
131
+ - Sandbox threat model and gVisor isolation strategy
132
+
133
+ ## [0.3.3] — 2026-05-10
134
+
135
+ - Fix report HTML/SBOM generation to use `atk_id`, description, package name, dynamic version
136
+
137
+ ## [0.3.2] — 2026-05-10
138
+
139
+ - Update README for Phase 2 (ATK-008–010, SPDX, NIST)
140
+
141
+ ## [0.3.1] — 2026-05-10
142
+
143
+ - Fix schema literal newlines
144
+ - Fix CLI SBOM defaults
145
+ - Fix SBOM finding IDs
146
+
147
+ ## [0.3.0] — 2026-05-10
148
+
149
+ - **ATK-001 (Lifecycle Script)** detector — detects `preinstall`, `postinstall`, `preuninstall` hooks with suspicious commands
150
+ - **ATK-002 (Obfuscated Payload)** detector — hex/base64/decode-driven eval, regex obfuscation
151
+ - **ATK-003 (Credential Harvester)** detector — env var exfiltration, filesystem credential scraping
152
+ - **ATK-004 (Persistence Mechanism)** detector — cron jobs, startup scripts, `postinstall` service installs
153
+ - **ATK-005 (Data Exfiltration)** detector — DNS tunneling, HTTP beaconing, unexpected network calls
154
+ - **ATK-006 (Dependency Confusion)** detector — internal package name heuristics
155
+ - **ATK-007 (Typosquatting)** detector — edit-distance based package name similarity
156
+
157
+ ## [0.2.5] — 2026-05-10
158
+
159
+ - Fix `.npmignore` to exclude corpus tarballs from published package
160
+
161
+ ## [0.2.4] — 2026-05-10
162
+
163
+ - Version bump only; no functional changes
164
+
165
+ ## [0.2.2] — 2026-05-10
166
+
167
+ - **Corpus test suite** — 50 clean packages (0% FP) + 22 malicious PoC (100% detect rate)
168
+ - **HTML report generator** with CLI `--html` flag
169
+ - ATK-007 edit-distance typosquatting implementation
170
+ - Switch from `adm-zip` to `tar` for tgz extraction
171
+ - ATK detectors hardened for fewer false positives
172
+ - `README.md`, `.gitignore`, corpus download scripts
173
+ - **Phase 1 exit**: FP < 2%, passes unit tests + corpus
174
+
175
+ ## [0.2.1] — 2026-05-10
176
+
177
+ - Version bump only; no functional changes
178
+
179
+ ## [0.2.0] — 2026-05-10
180
+
181
+ - **Commander.js CLI** with `scan`, `scan-lockfile`, `report` commands
182
+ - **ATK-001–007 detector stubs** via `backend/detectors/index.js` (`runAll`)
183
+ - **SQLite persistence** via `better-sqlite3` — scan auto-save, report by ID/recent
184
+ - **CycloneDX SBOM** — JSON and XML output with ATK vulnerability references
185
+ - `.github/workflows/scan.yml` — GitHub Action example for PR scanning
186
+ - Dependencies: `commander`, `adm-zip`, `acorn`, `node-fetch`
187
+
188
+ ## [0.1.0] — 2026-05-09
189
+
190
+ - **Initial foundation**
191
+ - Monorepo structure (`cli/`, `backend/`, `docker/`, `docs/`)
192
+ - `LICENSING.md` — Apache-2.0 core + Commons Clause for premium features
193
+ - `CONTRIBUTING.md`
194
+ - `docs/attack-taxonomy.md` — ATK-001 through ATK-011 stubs
195
+ - `backend/license.js` skeleton for HMAC-signed license key gating
196
+ - `backend/db/schema.sql`
197
+ - `docker/Dockerfile.cli` + `docker-compose.yml`
198
+ - npm scripts (lint, test stubs)
199
+ - `.github/workflows/ci.yml`
200
+ - `AGENTS.md` — project instructions
package/README.de.md CHANGED
@@ -108,6 +108,25 @@ Kein Node.js. Kein `npm install`. Keine globalen Pakete. Funktioniert auf jedem
108
108
 
109
109
  ---
110
110
 
111
+ ## 🛡️ Behörden- & SOC 2 L2-bereit
112
+
113
+ | Funktion | SOC 2 | NIST 800-161 | STIG/FedRAMP |
114
+ |----------|-------|--------------|--------------|
115
+ | Audit-Protokolle (--audit-log) | CC6.8 | AU-2 | ✓ |
116
+ | FIPS-Krypto (--fips) | CC6.1 | SC-13 | ✓ |
117
+ | STIG-Bericht (--stig) | CC7.3 | RA-5 | ✓ |
118
+ | Offline-Cache (--cache-dir) | A1.2 | SC-8 | ✓ |
119
+ | Sigstore-Herleitung | CC6.2 | SI-7 | ✓ |
120
+ | SBOM (SPDX/CycloneDX) | CC7.4 | SA-10 | ✓ |
121
+
122
+ ```bash
123
+ # Vollständig konformer Scan in luftdichten Umgebungen
124
+ npm-scan scan-lockfile --cache-dir /offline/cache --audit-log /var/log/npm-scan.audit --fips
125
+ npm-scan report --stig
126
+ ```
127
+
128
+ ---
129
+
111
130
  ## 📖 Verwendungsbeispiele
112
131
 
113
132
  ### Ein einzelnes Paket scannen
@@ -123,6 +142,9 @@ npm-scan scan express --sbom spdx # SPDX 2.3
123
142
 
124
143
  # Eine YAML-Policy anwenden
125
144
  npm-scan scan some-package --policy .npm-scan.yml
145
+
146
+ # Lokales Tarball scannen (kein Registry-Abruf nötig)
147
+ npm-scan scan --file path/to/malicious-package.tgz
126
148
  ```
127
149
 
128
150
  ### Eine Lock-Datei scannen
@@ -133,6 +155,18 @@ npm-scan scan-lockfile
133
155
 
134
156
  # Eine bestimmte Lock-Datei scannen
135
157
  npm-scan scan-lockfile -f ./path/to/package-lock.json
158
+
159
+ # CI/CD bei hohen oder kritischen Problemen fehlschlagen (Exit-Code 1)
160
+ npm-scan scan-lockfile --fail-on high
161
+
162
+ # Bei allen Erkenntnissen fehlschlagen (low und höher)
163
+ npm-scan scan-lockfile --fail-on low
164
+
165
+ # SARIF v2.1-Ausgabe für GitHub Advanced Security / VS Code generieren
166
+ npm-scan scan-lockfile --sarif results.sarif
167
+
168
+ # Nur Risiko-Score ausgeben (0-10) für Dashboards/Schwellenwerte
169
+ npm-scan scan-lockfile --score-only
136
170
  ```
137
171
 
138
172
  ### Berichte generieren
@@ -153,6 +187,10 @@ npm-scan report -i 42 --nist
153
187
  # EU-CRA-Compliance-Tabelle ausgeben
154
188
  npm-scan report --cra
155
189
 
190
+ # CSV-Export für Excel / Sheets (audit-bereit)
191
+ npm-scan report --csv risks.csv
192
+ npm-scan scan lodash --csv # CSV nach stdout
193
+
156
194
  # Textbericht (kostenlos)
157
195
  npm-scan report --text
158
196
 
@@ -576,6 +614,7 @@ node --test test/detectors-corpus.test.js
576
614
 
577
615
  ### Hilfe benötigt?
578
616
 
617
+ - 🔒 Siehe [Sicherheitsrichtlinie](SECURITY.md) für die Offenlegung von Schwachstellen
579
618
  - 📖 Lesen Sie den [Projektplan](docs/project-plan.md)
580
619
  - 🧬 Überprüfen Sie die [Angriffstaxonomie](docs/attack-taxonomy.md)
581
620
  - 🐛 Öffnen Sie ein Issue oder PR
@@ -587,6 +626,19 @@ node --test test/detectors-corpus.test.js
587
626
  Apache-2.0 Core + Commons Clause.
588
627
  Siehe [`LICENSING.md`](LICENSING.md) für die genaue Grenze zwischen kostenlosen und Premium-Funktionen.
589
628
 
629
+ ---
630
+
631
+ ## 👤 Über den Maintainer
632
+
633
+ **Roongrunchai Chongolnee** — Ersteller und Maintainer von `@lateos/npm-scan`. Zertifizierter Sicherheitsexperte (CISSP, CEH, Cisco Security, AWS Cloud Practitioner) mit einem Jahrzehnt Erfahrung in Infrastruktur- und Anwendungssicherheit bei Philips. Ich habe dieses Tool entwickelt, um der Open-Source-Community eine praktische, detektorgesteuerte Abwehr gegen Supply-Chain-Malware zu bieten — und ich bin bestrebt, es transparent, gemeinschaftseigen und kontinuierlich verbessert zu halten.
634
+
635
+ [![LinkedIn](https://img.shields.io/badge/LinkedIn-0A66C2?style=flat-square&logo=linkedin)](https://www.linkedin.com/in/roongrunchai-chong-c-ab9742108/)
636
+ [![GitHub](https://img.shields.io/badge/GitHub-lateos--ai-181717?style=flat-square&logo=github)](https://github.com/lateos-ai/npm-scan)
637
+
638
+ Issues, Ideen und Pull-Requests sind immer willkommen — Sicherheit ist am stärksten, wenn wir zusammenarbeiten.
639
+
640
+ ---
641
+
590
642
  ```
591
643
  @lateos/npm-scan — npm supply chain security scanner
592
644
  Copyright (C) 2026 Lateos
package/README.fr.md CHANGED
@@ -108,6 +108,25 @@ Pas de Node.js. Pas de `npm install`. Pas de paquets globaux. Fonctionne sur tou
108
108
 
109
109
  ---
110
110
 
111
+ ## 🛡️ Prêt pour le Gouvernement et SOC 2 L2
112
+
113
+ | Fonctionnalité | SOC 2 | NIST 800-161 | STIG/FedRAMP |
114
+ |----------------|-------|--------------|--------------|
115
+ | Journaux d'audit (--audit-log) | CC6.8 | AU-2 | ✓ |
116
+ | Crypto FIPS (--fips) | CC6.1 | SC-13 | ✓ |
117
+ | Rapport STIG (--stig) | CC7.3 | RA-5 | ✓ |
118
+ | Cache hors ligne (--cache-dir) | A1.2 | SC-8 | ✓ |
119
+ | Provenance Sigstore | CC6.2 | SI-7 | ✓ |
120
+ | SBOM (SPDX/CycloneDX) | CC7.4 | SA-10 | ✓ |
121
+
122
+ ```bash
123
+ # Scan conforme en environnement hermétique
124
+ npm-scan scan-lockfile --cache-dir /offline/cache --audit-log /var/log/npm-scan.audit --fips
125
+ npm-scan report --stig
126
+ ```
127
+
128
+ ---
129
+
111
130
  ## 📖 Exemples d'utilisation
112
131
 
113
132
  ### Scanner un seul paquet
@@ -123,6 +142,9 @@ npm-scan scan express --sbom spdx # SPDX 2.3
123
142
 
124
143
  # Appliquer une politique YAML
125
144
  npm-scan scan some-package --policy .npm-scan.yml
145
+
146
+ # Scanner un fichier tarball local (pas de téléchargement depuis le registre)
147
+ npm-scan scan --file path/to/malicious-package.tgz
126
148
  ```
127
149
 
128
150
  ### Scanner un fichier de verrouillage
@@ -133,6 +155,18 @@ npm-scan scan-lockfile
133
155
 
134
156
  # Scanner un fichier de verrouillage spécifique
135
157
  npm-scan scan-lockfile -f ./path/to/package-lock.json
158
+
159
+ # Échouer en CI/CD sur les découvertes de severity haute ou critique (code de sortie 1)
160
+ npm-scan scan-lockfile --fail-on high
161
+
162
+ # Échouer sur toute découverte (low et au-delà)
163
+ npm-scan scan-lockfile --fail-on low
164
+
165
+ # Générer une sortie SARIF v2.1 pour GitHub Advanced Security / VS Code
166
+ npm-scan scan-lockfile --sarif results.sarif
167
+
168
+ # Afficher uniquement le score de risque (0-10) pour les tableaux de bord/seuils
169
+ npm-scan scan-lockfile --score-only
136
170
  ```
137
171
 
138
172
  ### Générer des rapports
@@ -153,6 +187,10 @@ npm-scan report -i 42 --nist
153
187
  # Afficher le tableau de conformité EU CRA
154
188
  npm-scan report --cra
155
189
 
190
+ # Export CSV pour Excel / Sheets (prêt pour audit)
191
+ npm-scan report --csv risks.csv
192
+ npm-scan scan lodash --csv # CSV vers stdout
193
+
156
194
  # Rapport texte (gratuit)
157
195
  npm-scan report --text
158
196
 
@@ -576,6 +614,7 @@ node --test test/detectors-corpus.test.js
576
614
 
577
615
  ### Besoin d'aide ?
578
616
 
617
+ - 🔒 Voir la [politique de sécurité](SECURITY.md) pour la divulgation des vulnérabilités
579
618
  - 📖 Lire le [plan du projet](docs/project-plan.md)
580
619
  - 🧬 Consulter la [taxonomie des attaques](docs/attack-taxonomy.md)
581
620
  - 🐛 Ouvrir une issue ou une PR
@@ -587,6 +626,19 @@ node --test test/detectors-corpus.test.js
587
626
  Apache-2.0 core + Commons Clause.
588
627
  Voir [`LICENSING.md`](LICENSING.md) pour la limite exacte entre les fonctionnalités gratuites et premium.
589
628
 
629
+ ---
630
+
631
+ ## 👤 À propos du mainteneur
632
+
633
+ **Roongrunchai Chongolnee** — créateur et mainteneur de `@lateos/npm-scan`. Professionnel de la sécurité certifié (CISSP, CEH, Cisco Security, AWS Cloud Practitioner) avec une décennie d'expérience en sécurité des infrastructures et des applications chez Philips. J'ai construit cet outil pour offrir à la communauté open-source une défense pratique et pilotée par des détecteurs contre les logiciels malveillants de la chaîne d'approvisionnement — et je m'engage à le maintenir transparent, détenu par la communauté et en amélioration continue.
634
+
635
+ [![LinkedIn](https://img.shields.io/badge/LinkedIn-0A66C2?style=flat-square&logo=linkedin)](https://www.linkedin.com/in/roongrunchai-chong-c-ab9742108/)
636
+ [![GitHub](https://img.shields.io/badge/GitHub-lateos--ai-181717?style=flat-square&logo=github)](https://github.com/lateos-ai/npm-scan)
637
+
638
+ Les issues, idées et pull requests sont toujours les bienvenus — la sécurité est plus forte quand nous collaborons.
639
+
640
+ ---
641
+
590
642
  ```
591
643
  @lateos/npm-scan — npm supply chain security scanner
592
644
  Copyright (C) 2026 Lateos
package/README.ja.md CHANGED
@@ -108,6 +108,25 @@ Node.js不要。`npm install`不要。グローバルパッケージ不要。Doc
108
108
 
109
109
  ---
110
110
 
111
+ ## 🛡️ 政府機関・SOC 2 L2 対応
112
+
113
+ | 機能 | SOC 2 | NIST 800-161 | STIG/FedRAMP |
114
+ |------|-------|--------------|--------------|
115
+ | 監査ログ (--audit-log) | CC6.8 | AU-2 | ✓ |
116
+ | FIPS暗号化 (--fips) | CC6.1 | SC-13 | ✓ |
117
+ | STIGレポート (--stig) | CC7.3 | RA-5 | ✓ |
118
+ | オフラインキャッシュ (--cache-dir) | A1.2 | SC-8 | ✓ |
119
+ | Sigstoreプロvenes | CC6.2 | SI-7 | ✓ |
120
+ | SBOM (SPDX/CycloneDX) | CC7.4 | SA-10 | ✓ |
121
+
122
+ ```bash
123
+ # エアギャップ環境での完全なコンプライアンススキャンを実行
124
+ npm-scan scan-lockfile --cache-dir /offline/cache --audit-log /var/log/npm-scan.audit --fips
125
+ npm-scan report --stig
126
+ ```
127
+
128
+ ---
129
+
111
130
  ## 📖 使用例
112
131
 
113
132
  ### 単一パッケージのスキャン
@@ -123,6 +142,9 @@ npm-scan scan express --sbom spdx # SPDX 2.3
123
142
 
124
143
  # YAMLポリシーを適用
125
144
  npm-scan scan some-package --policy .npm-scan.yml
145
+
146
+ # ローカルtarballをスキャン(レジストリからの取得不要)
147
+ npm-scan scan --file path/to/malicious-package.tgz
126
148
  ```
127
149
 
128
150
  ### ロックファイルのスキャン
@@ -133,6 +155,18 @@ npm-scan scan-lockfile
133
155
 
134
156
  # 特定のロックファイルをスキャン
135
157
  npm-scan scan-lockfile -f ./path/to/package-lock.json
158
+
159
+ # 高重大または致命的な問題でCI/CDを失敗させる(終了コード1)
160
+ npm-scan scan-lockfile --fail-on high
161
+
162
+ # 任何の発見項目でビルドを失敗させる(low以上)
163
+ npm-scan scan-lockfile --fail-on low
164
+
165
+ # SARIF v2.1出力を生成(GitHub Advanced Security / VS Code向け)
166
+ npm-scan scan-lockfile --sarif results.sarif
167
+
168
+ # リスクスコアのみを出力(0-10)(ダッシュボード/閾値向け)
169
+ npm-scan scan-lockfile --score-only
136
170
  ```
137
171
 
138
172
  ### レポートの生成
@@ -576,6 +610,7 @@ node --test test/detectors-corpus.test.js
576
610
 
577
611
  ### ヘルプが必要ですか?
578
612
 
613
+ - 🔒 [セキュリティポリシー](SECURITY.md)で脆弱性の開示方法を確認
579
614
  - 📖 [プロジェクト計画](docs/project-plan.md)を読む
580
615
  - 🧬 [攻撃分類](docs/attack-taxonomy.md)を確認
581
616
  - 🐛 IssueまたはPRを開く
@@ -587,6 +622,19 @@ node --test test/detectors-corpus.test.js
587
622
  Apache-2.0コア+Commons Clause。
588
623
  無料版とプレミアム版機能の正確な境界については[`LICENSING.md`](LICENSING.md)を参照してください。
589
624
 
625
+ ---
626
+
627
+ ## 👤 メンテナーについて
628
+
629
+ **Roongrunchai Chongolnee** — `@lateos/npm-scan` の作成者兼メンテナー。CISSP、CEH、Cisco Security、AWS Cloud Practitioner の認定を持つセキュリティ専門家で、Philips で10年間のインフラおよびアプリケーションセキュリティの経験があります。このツールは、オープンソースコミュニティに実用的で検出器駆動型のサプライチェーン型マルウェア防御を提供するために構築しました。透明性、コミュニティ所有、継続的改善に取り組んでいます。
630
+
631
+ [![LinkedIn](https://img.shields.io/badge/LinkedIn-0A66C2?style=flat-square&logo=linkedin)](https://www.linkedin.com/in/roongrunchai-chong-c-ab9742108/)
632
+ [![GitHub](https://img.shields.io/badge/GitHub-lateos--ai-181717?style=flat-square&logo=github)](https://github.com/lateos-ai/npm-scan)
633
+
634
+ Issue、アイデア、PRはいつでも歓迎します——セキュリティは協力によって最も強力になります。
635
+
636
+ ---
637
+
590
638
  ```
591
639
  @lateos/npm-scan — npm supply chain security scanner
592
640
  Copyright (C) 2026 Lateos
package/README.md CHANGED
@@ -107,6 +107,61 @@ No Node.js. No `npm install`. No global packages. Works on any system with Docke
107
107
 
108
108
  ---
109
109
 
110
+ ## 🛡️ Government & SOC 2 L2 Ready
111
+
112
+ | Feature | SOC 2 | NIST 800-161 | STIG/FedRAMP |
113
+ |---------|-------|--------------|--------------|
114
+ | Audit logs (--audit-log) | CC6.8 | AU-2 | ✓ |
115
+ | FIPS crypto (--fips) | CC6.1 | SC-13 | ✓ |
116
+ | STIG report (--stig) | CC7.3 | RA-5 | ✓ |
117
+ | Offline cache (--cache-dir) | A1.2 | SC-8 | ✓ |
118
+ | Sigstore provenance | CC6.2 | SI-7 | ✓ |
119
+ | SBOM (SPDX/CycloneDX) | CC7.4 | SA-10 | ✓ |
120
+
121
+ ```bash
122
+ # Air-gapped scan with full compliance
123
+ npm-scan scan-lockfile --cache-dir /offline/cache --audit-log /var/log/npm-scan.audit --fips
124
+ npm-scan report --stig
125
+ ```
126
+
127
+ [![SOC 2 L2](https://img.shields.io/badge/SOC%202-L2-green?style=flat-square&logo=aicpa)](https://www.aicpa.org/interestareas/frc/assuranceadvisoryservices/sorhome.html)
128
+ [![FedRAMP](https://img.shields.io/badge/FedRAMP-Moderate-blue?style=flat-square)](https://fedramp.gov/)
129
+
130
+ ---
131
+
132
+ ## ☁️ BYOC — Bring Your Own Cloud
133
+
134
+ Deploy npm-scan in your VPC with full data sovereignty. No data leaves your infrastructure.
135
+
136
+ | Feature | Description |
137
+ |---------|-------------|
138
+ | **Self-hosted** | Run on EKS/GKE/AKS in your AWS/Azure/GCP account |
139
+ | **SIEM Export** | CEF/ECS/Sentinel/QRadar to your existing SIEM |
140
+ | **SSO/OIDC** | SAML/OIDC integration with your identity provider |
141
+ | **PDF Reports** | Generate NIST-compliant PDF reports locally |
142
+ | **External DB** | Connect to your existing PostgreSQL/Redis |
143
+
144
+ ```bash
145
+ # Deploy to your VPC with Helm
146
+ git clone https://github.com/lateos-ai/npm-scan.git
147
+ cd npm-scan/deploy/helm
148
+ helm install npm-scan -f values.byoc.yaml .
149
+
150
+ # BYOC values example (see values.byoc.yaml)
151
+ premium:
152
+ enabled: true
153
+ edition: enterprise
154
+ byoc:
155
+ enabled: true
156
+ cloudProvider: aws
157
+ vpcId: vpc-xxx
158
+ region: us-east-1
159
+ ```
160
+
161
+ **Pricing**: Enterprise license $10k/yr — self-supported (docs + GitHub issues).
162
+
163
+ ---
164
+
110
165
  ## 📖 Usage Examples
111
166
 
112
167
  ### Scan a single package
@@ -122,6 +177,9 @@ npm-scan scan express --sbom spdx # SPDX 2.3
122
177
 
123
178
  # Apply a YAML policy
124
179
  npm-scan scan some-package --policy .npm-scan.yml
180
+
181
+ # Scan a local tarball (no registry fetch needed)
182
+ npm-scan scan --file path/to/malicious-package.tgz
125
183
  ```
126
184
 
127
185
  ### Scan a lockfile
@@ -132,6 +190,18 @@ npm-scan scan-lockfile
132
190
 
133
191
  # Scan a specific lockfile
134
192
  npm-scan scan-lockfile -f ./path/to/package-lock.json
193
+
194
+ # Fail CI/CD on high or critical findings (exit code 1)
195
+ npm-scan scan-lockfile --fail-on high
196
+
197
+ # Fail on any findings (low and above)
198
+ npm-scan scan-lockfile --fail-on low
199
+
200
+ # Generate SARIF v2.1 output for GitHub Advanced Security / VS Code
201
+ npm-scan scan-lockfile --sarif results.sarif
202
+
203
+ # Output only risk score (0-10) for dashboards/thresholds
204
+ npm-scan scan-lockfile --score-only
135
205
  ```
136
206
 
137
207
  ### Generate reports
@@ -152,6 +222,10 @@ npm-scan report -i 42 --nist
152
222
  # Print EU CRA compliance table
153
223
  npm-scan report --cra
154
224
 
225
+ # CSV export for Excel / Sheets (audit-ready)
226
+ npm-scan report --csv risks.csv
227
+ npm-scan scan lodash --csv # CSV to stdout
228
+
155
229
  # Text report (free)
156
230
  npm-scan report --text
157
231
 
@@ -575,6 +649,7 @@ node --test test/detectors-corpus.test.js
575
649
 
576
650
  ### Need help?
577
651
 
652
+ - 🔒 See [security policy](SECURITY.md) for vulnerability disclosure
578
653
  - 📖 Read the [project plan](docs/project-plan.md)
579
654
  - 🧬 Review the [attack taxonomy](docs/attack-taxonomy.md)
580
655
  - 🐛 Open an issue or PR
@@ -586,6 +661,19 @@ node --test test/detectors-corpus.test.js
586
661
  Apache-2.0 core + Commons Clause.
587
662
  See [`LICENSING.md`](LICENSING.md) for the exact boundary between free and premium features.
588
663
 
664
+ ---
665
+
666
+ ## 👤 About the Maintainer
667
+
668
+ **Roongrunchai Chongolnee** — creator and maintainer of `@lateos/npm-scan`. Certified security professional (CISSP, CEH, Cisco Security, AWS Cloud Practitioner) with a decade of infrastructure and application security experience at Philips. I built this tool to give the open-source community a practical, detector-driven defense against supply-chain malware — and I'm committed to keeping it transparent, community-owned, and continuously improved.
669
+
670
+ [![LinkedIn](https://img.shields.io/badge/LinkedIn-0A66C2?style=flat-square&logo=linkedin)](https://www.linkedin.com/in/roongrunchai-chong-c-ab9742108/)
671
+ [![GitHub](https://img.shields.io/badge/GitHub-lateos--ai-181717?style=flat-square&logo=github)](https://github.com/lateos-ai/npm-scan)
672
+
673
+ Issues, ideas, and pull requests are always welcome — security is strongest when we collaborate.
674
+
675
+ ---
676
+
589
677
  ```
590
678
  @lateos/npm-scan — npm supply chain security scanner
591
679
  Copyright (C) 2026 Lateos
package/README.zh.md CHANGED
@@ -108,6 +108,25 @@ docker compose --profile pipeline up -d
108
108
 
109
109
  ---
110
110
 
111
+ ## 🛡️ 政府与 SOC 2 L2 就绪
112
+
113
+ | 功能 | SOC 2 | NIST 800-161 | STIG/FedRAMP |
114
+ |------|-------|--------------|--------------|
115
+ | 审计日志 (--audit-log) | CC6.8 | AU-2 | ✓ |
116
+ | FIPS 加密 (--fips) | CC6.1 | SC-13 | ✓ |
117
+ | STIG 报告 (--stig) | CC7.3 | RA-5 | ✓ |
118
+ | 离线缓存 (--cache-dir) | A1.2 | SC-8 | ✓ |
119
+ | Sigstore 溯源 | CC6.2 | SI-7 | ✓ |
120
+ | SBOM (SPDX/CycloneDX) | CC7.4 | SA-10 | ✓ |
121
+
122
+ ```bash
123
+ # 气隙环境下的完整合规扫描
124
+ npm-scan scan-lockfile --cache-dir /offline/cache --audit-log /var/log/npm-scan.audit --fips
125
+ npm-scan report --stig
126
+ ```
127
+
128
+ ---
129
+
111
130
  ## 📖 使用示例
112
131
 
113
132
  ### 扫描单个包
@@ -123,6 +142,9 @@ npm-scan scan express --sbom spdx # SPDX 2.3
123
142
 
124
143
  # 应用 YAML 策略
125
144
  npm-scan scan some-package --policy .npm-scan.yml
145
+
146
+ # 扫描本地 tarball(无需从注册表获取)
147
+ npm-scan scan --file path/to/malicious-package.tgz
126
148
  ```
127
149
 
128
150
  ### 扫描锁定文件
@@ -133,6 +155,18 @@ npm-scan scan-lockfile
133
155
 
134
156
  # 扫描特定锁定文件
135
157
  npm-scan scan-lockfile -f ./path/to/package-lock.json
158
+
159
+ # 在高危或严重问题时使 CI/CD 失败(退出码 1)
160
+ npm-scan scan-lockfile --fail-on high
161
+
162
+ # 任何发现项都使构建失败(low 及以上)
163
+ npm-scan scan-lockfile --fail-on low
164
+
165
+ # 生成 SARIF v2.1 输出,用于 GitHub Advanced Security / VS Code
166
+ npm-scan scan-lockfile --sarif results.sarif
167
+
168
+ # 仅输出风险分数(0-10)用于仪表板/阈值
169
+ npm-scan scan-lockfile --score-only
136
170
  ```
137
171
 
138
172
  ### 生成报告
@@ -153,6 +187,10 @@ npm-scan report -i 42 --nist
153
187
  # 打印 EU CRA 合规表格
154
188
  npm-scan report --cra
155
189
 
190
+ # CSV 导出用于 Excel / Sheets(审计就绪)
191
+ npm-scan report --csv risks.csv
192
+ npm-scan scan lodash --csv # CSV 输出到标准输出
193
+
156
194
  # 文本报告(免费)
157
195
  npm-scan report --text
158
196
 
@@ -576,6 +614,7 @@ node --test test/detectors-corpus.test.js
576
614
 
577
615
  ### 需要帮助?
578
616
 
617
+ - 🔒 查看[安全策略](SECURITY.md)了解漏洞披露流程
579
618
  - 📖 阅读[项目计划](docs/project-plan.md)
580
619
  - 🧬 查看[攻击分类](docs/attack-taxonomy.md)
581
620
  - 🐛 提交 issue 或 PR
@@ -587,6 +626,19 @@ node --test test/detectors-corpus.test.js
587
626
  Apache-2.0 核心 + Commons Clause。
588
627
  请参阅 [`LICENSING.md`](LICENSING.md) 了解免费版和高级版功能之间的确切界限。
589
628
 
629
+ ---
630
+
631
+ ## 👤 关于维护者
632
+
633
+ **Roongrunchai Chongolnee** — `@lateos/npm-scan` 的创建者和维护者。持有 CISSP、CEH、思科安全、AWS 云从业者认证的安全专业人士,在飞利浦拥有十年的基础设施和应用安全经验。我构建这个工具是为了让开源社区拥有一个实用、检测器驱动的供应链恶意软件防御方案——我致力于保持其透明、社区拥有和持续改进。
634
+
635
+ [![LinkedIn](https://img.shields.io/badge/LinkedIn-0A66C2?style=flat-square&logo=linkedin)](https://www.linkedin.com/in/roongrunchai-chong-c-ab9742108/)
636
+ [![GitHub](https://img.shields.io/badge/GitHub-lateos--ai-181717?style=flat-square&logo=github)](https://github.com/lateos-ai/npm-scan)
637
+
638
+ 欢迎提交 issue、想法和 PR——安全在协作中最强大。
639
+
640
+ ---
641
+
590
642
  ```
591
643
  @lateos/npm-scan — npm supply chain security scanner
592
644
  Copyright (C) 2026 Lateos