nsauditor-ai 0.2.43 → 0.2.45

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/README.md CHANGED
@@ -7,7 +7,7 @@ A modular, AI-assisted network security audit platform that scans, understands,
7
7
  [![npm](https://img.shields.io/npm/v/nsauditor-ai.svg)](https://www.npmjs.com/package/nsauditor-ai)
8
8
  [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
9
9
  [![Node.js 20+](https://img.shields.io/badge/node-20%2B-green.svg)](https://nodejs.org)
10
- [![Tests](https://img.shields.io/badge/tests-925%20passing-brightgreen.svg)](#tests)
10
+ [![Tests](https://img.shields.io/badge/tests-1305%20passing-brightgreen.svg)](#tests)
11
11
 
12
12
  ---
13
13
 
@@ -17,7 +17,11 @@ NSAuditor AI is the open-source core of a privacy-first security intelligence pl
17
17
 
18
18
  ## What's New
19
19
 
20
- **The pack-signing commands land in the CLI — reachable, not yet proven (CE 0.2.43 / Enterprise 0.38.0).** `nsauditor-ai compliance sign-pack --manifest <envelope>` signs a chain-of-custody envelope with an operator-held Ed25519 key; `compliance verify-pack` establishes authorship from it — via `--registry` (your identity registry, with revocation and validity checked **as at signing time**) or `--public-key` (which discloses in its own output that those checks did not run). Both are thin forwards: Enterprise owns every decision and refusal, CE contributes the flags and the exit code. **Verify does more than the signature** — it recomputes every `artifacts[].sha256` against disk, so a signed pack whose report was edited returns a failure with the signature still reading VERIFIED. Exit **0** verified · **1** a violation · **2** the run could not measure, and the third is never a failure. Requires the Enterprise package; an auditor can also verify offline with `openssl` and nothing of ours, because the exact signed bytes ship beside the signature. **⚠️ Also a correction affecting 0.2.42/0.37.0:** a **gzipped** KEV/EPSS store — the default shape, since FIRST distributes EPSS only as `.csv.gz` — loaded with ZERO entries, so every finding reported *no store* rather than an exploit band. Misdiagnosis and silent degradation, **not** a false security verdict: findings carried a visible no-store marker throughout. Compression is now decided by file content rather than by filename.
20
+ **The eighth compliance framework: NIST SP 800-171 Rev 2 (CE 0.2.45 / Enterprise 0.40.0).** Enterprise adds `--compliance nist-800-171`, and CE registers the stem so the MCP `scan_cloud` tool and the CLI accept it. ⚠️ **Requires CE ≥ 0.2.45** — CE 0.2.44 does NOT carry the stem, so an Enterprise 0.40.0 paired with an older CE will reject the framework name. What Enterprise produces is **evidence substrate an assessor reads**, scoped as *NIST SP 800-171 evidence substrate for CMMC Level 2 preparation*: it is **not** a CMMC certification, **not** a FedRAMP authorization, and it emits **no** MET/NOT MET determination and **no** SPRS score — those are a C3PAO's to make, and only a C3PAO's. All 110 Rev 2 requirements are enumerated with a written reason each; Rev 2 is pinned deliberately, because CMMC assesses Rev 2 by rule and Rev 3 is a different 97-requirement universe.
21
+
22
+ **`scan_cloud` stops naming a provider roster it cannot derive (CE 0.2.44 / Enterprise 0.39.0).** Paired with Enterprise 0.39.0 — **no CE scanning behaviour change, and the peer floor stays `>=0.2.43`, unraised.** The one thing that moves here is model-facing and npm freezes it, which is why it needs its own publish: the MCP `scan_cloud` tool description used to tell an assistant that *only the AWS plugins declare their capability boundaries; Azure and GCP declare none.* Enterprise 0.39.0 falsifies that — its seven GCP and Azure plugins now declare theirs — and a sentence read on every scan cannot be allowed to go stale on a peer's release. It is rewritten to state the invariant that is true in BOTH states and that CE can actually stand behind: **not every plugin declares its capability boundaries, so `deferredScope` bounds only what the DECLARING plugins state and is never a coverage inventory** — an empty or short list is not a claim of full coverage. CE floats over a peer RANGE and cannot derive Enterprise's plugin roster, so any sentence that counted providers was a claim it had no way to check. Also here: the edition-comparison chart gains the Ed25519 evidence-pack signing row, carrying its permanent scope in-sentence — one framework's envelope and the artifacts it enumerates, an operator-held key, never a vendor attestation. **And a second fix, found by trying to USE the previous release's headline:** `compliance sign-pack` and `compliance verify-pack` dispatched correctly but were **absent from `nsauditor-ai help`** for the whole of 0.2.43 — documented in every README, changelog and design record, and missing from the one surface a user actually reads. Both now carry usage blocks, and a guard derives the dispatched verb set from the dispatch site and asserts help/dispatch equality in both directions, so a reachable-but-undiscoverable command fails the build.
23
+
24
+ **The pack-signing commands land in the CLI — reachable, and not yet proven at that release (CE 0.2.43 / Enterprise 0.38.0).** ⚠️ **Correcting this entry's own words: that gate has since RUN.** On 2026-08-17 it ran against the published EE 0.38.0 registry bytes and passed, so evidence-pack signing is PROVEN for an operator-held key over one framework's envelope and the artifacts it enumerates, never a vendor attestation. `nsauditor-ai compliance sign-pack --manifest <envelope>` signs a chain-of-custody envelope with an operator-held Ed25519 key; `compliance verify-pack` establishes authorship from it — via `--registry` (your identity registry, with revocation and validity checked **as at signing time**) or `--public-key` (which discloses in its own output that those checks did not run). Both are thin forwards: Enterprise owns every decision and refusal, CE contributes the flags and the exit code. **Verify does more than the signature** — it recomputes every `artifacts[].sha256` against disk, so a signed pack whose report was edited returns a failure with the signature still reading VERIFIED. Exit **0** verified · **1** a violation · **2** the run could not measure, and the third is never a failure. Requires the Enterprise package; an auditor can also verify offline with `openssl` and nothing of ours, because the exact signed bytes ship beside the signature. **⚠️ Also a correction affecting 0.2.42/0.37.0:** a **gzipped** KEV/EPSS store — the default shape, since FIRST distributes EPSS only as `.csv.gz` — loaded with ZERO entries, so every finding reported *no store* rather than an exploit band. Misdiagnosis and silent degradation, **not** a false security verdict: findings carried a visible no-store marker throughout. Compression is now decided by file content rather than by filename.
21
25
 
22
26
  **The `feed` commands: offline CVE data can be hand-carried (CE 0.2.42 / Enterprise 0.37.0).** `nsauditor-ai feed bundle` merges the NVD feed files you downloaded on a connected host into one portable archive; `feed import` reads one into the offline store on an isolated host — delivered as a **restricted** distribution rather than a public `npm install`, and amd64 only. The implementations are Enterprise-side (**requires `@nsasoft/nsauditor-ai-ee` >= 0.37.0**); the commands, flags and usage text are here, because this is the package with the `bin`. Optional `--kev` / `--epss` carry **your own** downloads from CISA and FIRST inside the archive, and `--extras-dir` places them on import and prints the environment lines to set — **no exploit data ships with either package**. `bundle` bundles the FEEDS YOU DOWNLOADED, never "your database": the offline store is a lossy derivation of an NVD feed and cannot be turned back into one. Import now names **why** it skipped records — about a quarter of a real NVD year file is skipped by design (withdrawn CVEs, entries with no CPE data) and a bare `skipped 9353` reads as data loss; malformed records are called out separately because those are **not** expected. ⚠️ **A bundle is integrity-checked, not authenticated** — the recorded SHA-256 detects alteration in transit but cannot establish authorship, because it travels inside the archive it covers. Also here: **`--flag=value` is now refused by name** instead of being parsed as a valueless flag with the value discarded, which made `--severity=high` run a default-severity scan and report success — a wrong answer that looked like a right one; and the **mDNS module-shape fallback was a TDZ self-reference**, so it never once fell back. **The air-gap delivery claims are earned back at this release**, with two conditions that travel with them: the dependency-complete bundle is a **restricted** distribution rather than a public install, and it is **amd64** only — no arm64 image is published.
23
27
 
@@ -73,7 +77,7 @@ If you're heading into a **SOC 2, HIPAA, NIST CSF 2.0, PCI DSS, ISO 27001, CIS C
73
77
  - 🔗 **GRC connectors — Vanta + Drata + Secureframe (Enterprise)** — map compliance findings to your GRC platform's evidence/test records and push them at **scan time** (opt-in). Suppression-aware outcome mapping (Vanta) / structured records (Drata + Secureframe), idempotent retries, rate-limit handling, token redaction, and Zero-Data-Exfiltration egress redaction. Early-access, single-workspace; live validation against production tenants is in progress. See **[GRC Connectors](#grc-connectors-vanta-drata-secureframe)** below.
74
78
  - 🗄️ **WORM posture VALIDATION** — we read your bucket's S3 Object Lock configuration per CloudTrail trail bucket and fail the control when it is absent, in GOVERNANCE mode or under-retained. That is substrate FOR a SEC Rule 17a-4(f) / FINRA 4511 retention claim, not the claim itself: the engine WRITING artifacts into the immutable store is built and **not reachable** (no caller), so the retention guarantee stays yours to make about your own archive
75
79
  - 📊 **SLA / MTTR tracking + recurring-scan attestation** — the **Type II operating-effectiveness evidence** auditors actually demand (not just point-in-time snapshots)
76
- - 🎯 **11 adversarial-audit Claude Code skills** authored per the Per-Framework Adversarial-Audit Skill Pairing institutional pattern — Phase-4 Compliance/GRC chain 8-of-8 COMPLETE for all shipped frameworks (SOC 2 + HIPAA + NIST CSF + PCI DSS + ISO 27001 + CIS Controls v8 + GDPR Article 32 + GRC connector)
80
+ - 🎯 **14 adversarial-audit Claude Code skills** authored per the Per-Framework Adversarial-Audit Skill Pairing institutional pattern — Phase-4 Compliance/GRC chain 8-of-8 COMPLETE for all shipped frameworks (SOC 2 + HIPAA + NIST CSF + PCI DSS + ISO 27001 + CIS Controls v8 + GDPR Article 32 + GRC connector)
77
81
 
78
82
  → **[See sample EE scan output](https://www.nsauditor.com/ai/docs/sample-scan/)** — full evidence pack against synthetic Acme Corp AWS account (no signup required)
79
83
  → **[Buy NSAuditor AI Enterprise Edition](https://www.nsauditor.com/ai/pricing/)** — $2k / $5k / $10k+ per year for 5 / 25 / unlimited seats + custom SLA. Onboarding call included.
@@ -105,7 +109,7 @@ How Marketplace fulfillment works (ZDE and air-gap preserved — no runtime AWS
105
109
  | **Enterprise — cloud scanning** | | | |
106
110
  | 28 enterprise plugins — 27 cloud (AWS / Azure / GCP) + 1 network-scan zero-trust check | — | — | ✅ |
107
111
  | Zero Trust assessment | — | — | ✅ |
108
- | **Enterprise — compliance (7 frameworks)** | | | |
112
+ | **Enterprise — compliance (8 frameworks)** | | | |
109
113
  | SOC 2 (AICPA TSC 2017) — 10 covered + 4 partial controls | — | — | ✅ |
110
114
  | HIPAA Security Rule §164.312 — Zero BAA required | — | — | ✅ |
111
115
  | NIST CSF 2.0 Core — Subcategory-level mapping (106 of 107 Subcategories) | — | — | ✅ |
@@ -113,10 +117,12 @@ How Marketplace fulfillment works (ZDE and air-gap preserved — no runtime AWS
113
117
  | ISO/IEC 27001:2022 — per-Annex-A-code mapping + SoA discipline (93 Annex A controls) | — | — | ✅ |
114
118
  | CIS Critical Security Controls v8 — per-Safeguard mapping + IG-cumulative discipline (153 Safeguards / 18 Controls) | — | — | ✅ |
115
119
  | **GDPR Article 32 (Security of Processing)** — Art. 32 infrastructure substrate (4 covered + 5 partial + 2 OOS / 11 sub-measure units); **not GDPR compliance** · Art. 83(4) lower fine tier | — | — | ✅ |
116
- | Multi-framework `--compliance soc2,hipaa,nist-csf,pci-dss,iso-27001,cis-v8,gdpr` from one scan | — | — | ✅ |
120
+ | **NIST SP 800-171 Rev 2** — evidence substrate for **CMMC Level 2 preparation**; all 110 Rev 2 requirements enumerated (2 covered + 49 partial + 59 OOS). **Not a certification, not a FedRAMP authorization, no MET/NOT MET verdict, no SPRS score** | — | — | ✅ |
121
+ | Multi-framework `--compliance soc2,hipaa,nist-csf,pci-dss,iso-27001,cis-v8,gdpr,nist-800-171` from one scan | — | — | ✅ |
117
122
  | **Enterprise — auditor-grade evidence** | | | |
118
123
  | Evidence packs with SHA-256 chain-of-custody (RFC 3161 timestamps opt-in via `NSAUDITOR_TSA_URL`, exercised against a live TSA on both the npm path and the `:0.33.0` container image; retained images `:0.32.11` and earlier carry no `openssl`) | — | — | ✅ |
119
124
  | Suppression workflow with approver identity verification (Ed25519 SIGNING reachable 0.35.0, proven 0.36.0, verified per approver holding **key material**) | — | — | ✅ |
125
+ | **Ed25519 evidence-pack signing** — `compliance sign-pack` signs the chain-of-custody envelope at an approval station with an **operator-held** key, so the scanning fleet stays keyless and authorship is relative to your own key custody, never a vendor attestation. `compliance verify-pack` establishes authorship from that operator-held key and re-hashes every artifact the envelope names, covering one framework envelope and the artifacts it enumerates — not the pack, not the directory. Verifiable offline with `openssl` alone. | — | — | ✅ |
120
126
  | Chain-of-custody manifests | — | — | ✅ |
121
127
  | SLA / MTTR tracking + compensating controls | — | — | ✅ |
122
128
  | Recurring-scan attestation (Type II operating-effectiveness) | — | — | ✅ |
@@ -334,8 +340,8 @@ nsauditor-ai scan --host aws --plugins 1030,1040,1070,1130 --compliance soc2
334
340
  # Run all EE plugins (auto-discovered via plugin manager)
335
341
  nsauditor-ai scan --host aws --plugins all --compliance soc2
336
342
 
337
- # Tune plugin parameters (e.g., raise VPC-endpoint PAGE_CAP for large-fleet customers)
338
- nsauditor-ai scan --host aws --plugins 1130 --plugin-opts '{"1130":{"vpcEndpointsPageCap":50}}'
343
+ # Run a single Enterprise plugin by id
344
+ nsauditor-ai scan --host aws --plugins 1130 --compliance soc2
339
345
  ```
340
346
 
341
347
  ### Scoping the AWS audit to regions — `--aws-region`
@@ -681,8 +687,8 @@ nsauditor-ai license <--status | --capabilities | --plugins>
681
687
  nsauditor-ai security <set|delete|list|get> <KEY>
682
688
  nsauditor-ai validate
683
689
  nsauditor-ai feed bundle --from <dir-of-NVD-feeds> --out <bundle.json.gz> [--kev <f>] [--epss <f>]
684
- nsauditor-ai feed import --file <feed-or-bundle> [--cache-dir <d>] [--extras-dir <d>] # the feeds you downloaded
685
- nsauditor-ai compliance <attest|suppress|review|renew|keygen> (Enterprise)
690
+ nsauditor-ai feed import --file <feed-or-bundle> [--cache-dir <d>] [--extras-dir <d>] [--append] # the feeds you downloaded
691
+ nsauditor-ai compliance <attest|suppress|review|renew|keygen|sign-pack|verify-pack> (Enterprise)
686
692
  nsauditor-ai mcp
687
693
  nsauditor-ai --help (or -h, or `help`)
688
694
  nsauditor-ai --version (or -v, or `version`)
@@ -1059,7 +1065,7 @@ No license key? Everything in this repository works perfectly without one. The C
1059
1065
 
1060
1066
  ## Tests
1061
1067
 
1062
- Run all 925+ tests:
1068
+ Run all 1305 tests:
1063
1069
 
1064
1070
  ```bash
1065
1071
  npm test
package/cli.mjs CHANGED
@@ -1165,9 +1165,10 @@ Scan options:
1165
1165
  --interval <minutes> Watch interval (default 60)
1166
1166
  --webhook-url <url> Send delta alerts (must be public; private/loopback blocked)
1167
1167
  --alert-severity <sev> Min severity to alert on (default: high)
1168
- --compliance <framework> Map findings to controls. 'all' = all 7 frameworks, or a CSV
1169
- of soc2,hipaa,nist-csf,pci-dss,iso-27001,cis-v8,gdpr (aliases
1170
- nist/pci/iso/cis). Unknown tokens fail fast. Enterprise only.
1168
+ --compliance <framework> Map findings to controls. 'all' = all 8 frameworks, or a CSV of
1169
+ soc2,hipaa,nist-csf,pci-dss,iso-27001,cis-v8,gdpr,nist-800-171
1170
+ (aliases nist/pci/iso/cis, and 800-171 or cmmc for nist-800-171 --
1171
+ nist stays NIST CSF). Unknown tokens fail fast. Enterprise only.
1171
1172
  --compliance-scope <path> JSON file describing the assessment scope
1172
1173
  --compliance-history <dir> Directory of prior scans (one subdirectory per scan). Turns on
1173
1174
  SLA/MTTR longitudinal tracking against that history. Enterprise.
@@ -1178,6 +1179,12 @@ Scan options:
1178
1179
 
1179
1180
  Compliance subcommands:
1180
1181
  nsauditor-ai compliance attest --history <dir> [--framework <fw>] [--window 6m|12m|90d]
1182
+ Aggregate the per-scan attestation records in <dir> into a
1183
+ multi-period (Type II) recurring-scan attestation. Reads
1184
+ scan_attestation_<fw>.json from each subdirectory, so a history
1185
+ you already have is aggregatable. Discovery is ONE level deep
1186
+ and the report says so. Exits 3 when no evidence is found — an
1187
+ empty history is a finding, not a pass. Enterprise.
1181
1188
  nsauditor-ai feed bundle --from <dir-of-downloaded-NVD-feeds> --out <bundle.json.gz>
1182
1189
  [--kev <known_exploited_vulnerabilities.json>]
1183
1190
  [--epss <epss_scores.csv.gz>]
@@ -1208,13 +1215,23 @@ Compliance subcommands:
1208
1215
  nsauditor-ai compliance renew --suppressions <file> --id <id> --rationale <text>
1209
1216
  --approver <name> [--expires-in-days <n>]
1210
1217
  Extends an approval and records the renewal chain. Enterprise.
1211
- Aggregate the per-scan attestation records in
1212
- <dir> into a multi-period (Type II) recurring-scan
1213
- attestation. Reads scan_attestation_<fw>.json from
1214
- each subdirectory, so a history you already have is
1215
- aggregatable. Discovery is ONE level deep and the
1216
- report says so. Exits 3 when no evidence is found —
1217
- an empty history is a finding, not a pass.
1218
+ nsauditor-ai compliance sign-pack --manifest <scan_chain_of_custody_<fw>.json>
1219
+ Signs ONE framework's chain-of-custody envelope with the
1220
+ operator-held Ed25519 key named by NSAUDITOR_SIGNING_KEY, at an
1221
+ approval station (the scan fleet stays keyless). Writes a
1222
+ detached signature record plus the exact signed payload bytes.
1223
+ Scope: that envelope and the artifacts it enumerates -- not the
1224
+ directory, not the pack. Enterprise.
1225
+ nsauditor-ai compliance verify-pack --manifest <scan_chain_of_custody_<fw>.json>
1226
+ (--registry <path> | --public-key <pem>)
1227
+ Establishes authorship AND recomputes every artifacts[].sha256
1228
+ against disk -- a signature-only check would authenticate
1229
+ artifact claims nothing had verified. --registry resolves the
1230
+ approver and checks revocation/validity AS AT SIGNING TIME;
1231
+ --public-key verifies against a key you supply and discloses in
1232
+ its own output that those checks did not run. Supplying both is
1233
+ refused. Exit 0 verified / 1 a violation / 2 could not measure.
1234
+ Enterprise.
1218
1235
 
1219
1236
  License subcommands:
1220
1237
  nsauditor-ai license install <KEY> Verify and persist a license key (Keychain
@@ -1298,7 +1315,7 @@ Cloud-scan hosts:
1298
1315
  Examples:
1299
1316
  nsauditor-ai scan --host 10.0.0.1 --plugins all
1300
1317
  CLOUD_PROVIDER=aws AWS_PROFILE=default \\
1301
- nsauditor-ai scan --host aws --plugins all --compliance all # full AWS audit, all 7 frameworks
1318
+ nsauditor-ai scan --host aws --plugins all --compliance all # full AWS audit, all 8 frameworks
1302
1319
  nsauditor-ai scan --host aws,gcp,azure --plugins all --compliance all # all 3 clouds in one run
1303
1320
  nsauditor-ai scan --host 10.0.0.0/24 --plugins all --compliance soc2
1304
1321
  nsauditor-ai license install enterprise_eyJhbGciOiJFUzI1NiIs...
@@ -2501,7 +2518,7 @@ Docs: https://www.nsauditor.com/ai/ | Pricing: https://www.nsauditor.com/ai/
2501
2518
  }
2502
2519
 
2503
2520
  if (sub !== 'attest') {
2504
- console.error('Usage: nsauditor-ai compliance <attest|suppress|review|renew|keygen> …');
2521
+ console.error('Usage: nsauditor-ai compliance <attest|suppress|review|renew|keygen|sign-pack|verify-pack> …');
2505
2522
  process.exit(2);
2506
2523
  }
2507
2524
  if (typeof complianceHistory !== 'string' || complianceHistory.length === 0) {
package/mcp_server.mjs CHANGED
@@ -231,7 +231,7 @@ const GET_FINDINGS_MAX_LIMIT = 20; // ~500 chars/finding -> ~10KB page (Deskto
231
231
  // description that goes stale silently steers an assistant's tool selection and errors nowhere.
232
232
  // Everything below DERIVES from this array. Do not re-type it.
233
233
  export const FRAMEWORK_STEMS = Object.freeze([
234
- 'soc2', 'hipaa', 'nist-csf', 'pci-dss', 'iso-27001', 'cis-v8', 'gdpr',
234
+ 'soc2', 'hipaa', 'nist-csf', 'pci-dss', 'iso-27001', 'cis-v8', 'gdpr', 'nist-800-171',
235
235
  ]);
236
236
 
237
237
  // Exported for direct testing (the scan_cloud description is a routing surface —
@@ -259,7 +259,7 @@ export const TOOLS = [
259
259
  {
260
260
  name: 'scan_cloud',
261
261
  description:
262
- 'Audit one or more cloud accounts (AWS / GCP / Azure) for security & compliance posture using the credentials configured in the server environment. Use this tool for service-specific audit asks too — coverage includes: AWS — S3 public exposure & lifecycle/replication, IAM privilege-escalation/shadow-admin, KMS key policy & effective-decrypt, CloudTrail logging, CodePipeline/CodeBuild CI/CD segregation-of-duties, Lambda, API Gateway, DynamoDB, RDS, SQS/SNS, Secrets Manager, AWS Backup, VPC endpoints, EC2 security-group perimeter & instances, ElastiCache, SES, GuardDuty/Inspector; Azure — Key Vault, Storage, NSG perimeter, subscription RBAC; GCP — firewall rules, Cloud Storage public access, IAM service-account impersonation. The PRODUCT maps findings to SOC 2, HIPAA, NIST CSF 2.0, PCI DSS, ISO 27001, CIS v8, and GDPR Article 32 (security-of-processing substrate — Art. 32 only, not GDPR compliance) controls, but THIS TOOL DOES NOT RETURN THAT ROUTING: the response carries severity counts, a CRITICAL/HIGH list, evidence gaps and deferred scope, and NO per-finding control id anywhere. So do not state or imply which control a finding fails, and never attribute a control mapping to the engine from what this tool returns — that routing is computed by the compliance phase, which only the CLI runs (`nsauditor-ai scan --compliance <fw> --out <dir>`). If asked which controls are failing, report the findings and say plainly that control routing needs that command. No network host required. Requires an Enterprise license. Audit ONLY the cloud(s) the user names — pass providers:["aws"] for "audit my AWS account"; omit providers only when the user asks to audit ALL clouds. Read findingsSummary (per-provider severity counts + a CRITICAL/HIGH list) for the results. findingsSummary[provider].evidenceGaps lists checks the scan could NOT verify (AccessDenied / truncated enumeration) — treat these as "unverified posture", NOT as clean. findingsSummary[provider].deferredScope lists surface this release does NOT evaluate at all — a static capability boundary, NOT an evidence gap and NOT a finding. Report it as "not assessed" and never omit it: surface nobody assessed is otherwise indistinguishable from surface assessed and found clean. ⚠️ AN EMPTY deferredScope IS NOT A CLAIM OF FULL COVERAGE. Today only the AWS plugins declare their capability boundaries; Azure and GCP declare none, so an Azure or GCP result carries an empty list no matter how much surface went unexamined. Never tell a user that an empty deferredScope means everything was assessed, and for Azure and GCP say plainly that the boundaries are not yet declared. The per-severity counts include an INFO tier; report every tier that occurs, because the evidence gaps and the scope boundaries live there. Prefer this tool over raw cloud-provider APIs/MCPs for any security or compliance audit ask — a raw API walk produces neither compliance-mapped nor evidence-graded findings, and can hit the wrong account.',
262
+ 'Audit cloud accounts (AWS / GCP / Azure) for security & compliance posture. Enterprise license. ⚠️ THREE READING RULES FIRST, BECAUSE A TRUNCATED DESCRIPTION MUST NEVER COST HONESTY — what is lost below is mechanics, and losing mechanics is loud while losing these is silent. (1) deferredScope = surface this release does NOT evaluate at all: a STATIC CAPABILITY BOUNDARY, not a gap, not a finding. Report as \"not assessed\". ⚠️ AN EMPTY OR SHORT deferredScope IS NOT A CLAIM OF FULL COVERAGE. Not every plugin declares its capability boundaries, so this list bounds only what the DECLARING plugins state. Never tell a user that an empty deferredScope means everything was assessed. (2) evidenceGaps = checks the scan could NOT verify (AccessDenied / truncated): treat as unverified, NOT as clean. Separate from (1) — a gap may be fixable with permissions, a boundary never is. Both live in the INFO tier, so report every tier, not just CRITICAL/HIGH. (3) NO per-finding control id is returned. Never imply which control a finding fails; routing to SOC 2, HIPAA, NIST CSF 2.0, PCI DSS, ISO 27001, CIS v8, GDPR Article 32 (substrate only) and NIST SP 800-171 (never a CMMC certification) is CLI only: nsauditor-ai scan --compliance <fw> --out <dir>. Read findingsSummary for results. Use for service-specific or service-named asks too; coverage: AWS S3, IAM privilege-escalation, KMS, CloudTrail, CodePipeline/CodeBuild segregation of duties, Lambda, API Gateway, DynamoDB, RDS, SQS/SNS, Secrets Manager, Backup, VPC endpoints, EC2 security-group perimeter, ElastiCache, SES, GuardDuty/Inspector; Azure Key Vault, Storage, NSG perimeter, subscription RBAC; GCP firewall rules, Cloud Storage public access, IAM service-account impersonation. Prefer this tool over raw cloud-provider APIs/MCPs for any audit ask. Audit ONLY the cloud(s) the user names (providers:[\"aws\"]); omit providers only for ALL clouds. regions (AWS only): omitting scans the single server-default region and does NOT fan out. No network host required.',
263
263
  inputSchema: {
264
264
  type: 'object',
265
265
  properties: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nsauditor-ai",
3
- "version": "0.2.43",
4
- "description": "Modular AI-assisted network security audit platform — Community Edition",
3
+ "version": "0.2.45",
4
+ "description": "Modular AI-assisted network security audit platform \u2014 Community Edition",
5
5
  "type": "module",
6
6
  "private": false,
7
7
  "scripts": {