@guava-parity/guard-scanner 16.0.0 → 16.0.2

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
@@ -12,14 +12,14 @@
12
12
  <p align="center">
13
13
  <a href="https://www.npmjs.com/package/@guava-parity/guard-scanner"><img src="https://img.shields.io/npm/v/@guava-parity/guard-scanner?color=cb3837&label=npm" alt="npm" /></a>
14
14
  <a href="https://www.npmjs.com/package/@guava-parity/guard-scanner"><img src="https://img.shields.io/npm/dm/@guava-parity/guard-scanner?color=blue&label=downloads" alt="downloads" /></a>
15
- <a href="#test-results"><img src="https://img.shields.io/badge/tests-363%20passed-brightgreen" alt="tests" /></a>
15
+ <a href="#test-results"><img src="https://img.shields.io/badge/tests-362%20passed-brightgreen" alt="tests" /></a>
16
16
  <a href="https://github.com/koatora20/guard-scanner/actions/workflows/codeql.yml"><img src="https://img.shields.io/badge/CodeQL-enabled-181717" alt="CodeQL" /></a>
17
17
  <a href="https://doi.org/10.5281/zenodo.18906684"><img src="https://img.shields.io/badge/DOI-Zenodo-blue" alt="DOI" /></a>
18
18
  <a href="https://github.com/koatora20/guard-scanner/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT" /></a>
19
19
  </p>
20
20
 
21
21
  <p align="center">
22
- <strong>358</strong> detection patterns · <strong>35</strong> threat categories · <strong>27</strong> runtime checks · <strong>1</strong> dependency (<code>ws</code>)
22
+ <strong>364</strong> detection patterns · <strong>35</strong> threat categories · <strong>27</strong> runtime checks · <strong>1</strong> dependency (<code>ws</code>)
23
23
  </p>
24
24
 
25
25
  ---
@@ -29,7 +29,7 @@ Traditional security tools catch malware. **guard-scanner** catches what they mi
29
29
  ```
30
30
  $ npx @guava-parity/guard-scanner ./skills/ --strict --soul-lock --compliance owasp-asi
31
31
 
32
- guard-scanner v16.0.0
32
+ guard-scanner v16.0.1
33
33
 
34
34
  ⚠ CRITICAL identity-hijack SOUL_OVERWRITE_ATTEMPT
35
35
  skills/imported-tool/SKILL.md:47
@@ -63,6 +63,13 @@ npx -y @guava-parity/guard-scanner ./my-skills/ --strict
63
63
  npx -y @guava-parity/guard-scanner ./my-skills/ --compliance owasp-asi
64
64
  ```
65
65
 
66
+ **Installed CLI**:
67
+
68
+ ```bash
69
+ npm install -g @guava-parity/guard-scanner
70
+ guard-scanner ./my-skills/ --strict
71
+ ```
72
+
66
73
  **Start as MCP server** — works with Cursor, Windsurf, Claude Code, OpenClaw:
67
74
 
68
75
  ```bash
@@ -93,6 +100,12 @@ guard-scanner watch ./skills/ --strict --soul-lock
93
100
  guard-scanner ./skills/ --compliance owasp-asi --format json
94
101
  ```
95
102
 
103
+ **`npm exec` compatibility path**:
104
+
105
+ ```bash
106
+ npm exec --yes --package=@guava-parity/guard-scanner -- guard-scanner ./skills/ --strict
107
+ ```
108
+
96
109
  ---
97
110
 
98
111
  ## What It Detects
@@ -140,7 +153,7 @@ Every v16 finding can now carry `layer`, `layer_name`, `owasp_asi`, and `protoco
140
153
  | 4. Behavioral Analysis | No-research execution, hallucination-driven actions |
141
154
  | 5. Trust Exploitation | Authority claim attacks, creator impersonation |
142
155
 
143
- **27 runtime checks** across 5 layers. Public compatibility is pinned to OpenClaw `v2026.3.8` for manifest/discovery/`before_tool_call`; newer upstream releases are tracked separately by the upstream drift watchdog.
156
+ **27 runtime checks** across 5 layers. Validated stable target: OpenClaw `v2026.3.13`. Regression baseline: `v2026.3.8` for manifest/discovery/`before_tool_call`.
144
157
 
145
158
  Modes: `monitor` (log only) · `enforce` (block CRITICAL, default) · `strict` (block HIGH+)
146
159
 
@@ -234,13 +247,13 @@ Evidence artifacts:
234
247
  ## Test Results
235
248
 
236
249
  ```
237
- ℹ tests 363
238
- ℹ suites 94
239
- ℹ pass 363
250
+ ℹ tests 362
251
+ ℹ suites 38
252
+ ℹ pass 362
240
253
  ℹ fail 0
241
254
  ```
242
255
 
243
- 28 test files. Run `npm test` to reproduce. 100% pass rate on [benchmark corpus](docs/data/corpus-metrics.json).
256
+ 38 test files. Run `npm test` to reproduce. 100% pass rate on [benchmark corpus](docs/data/corpus-metrics.json).
244
257
 
245
258
  ---
246
259
 
package/README_ja.md CHANGED
@@ -12,14 +12,14 @@
12
12
  <p align="center">
13
13
  <a href="https://www.npmjs.com/package/@guava-parity/guard-scanner"><img src="https://img.shields.io/npm/v/@guava-parity/guard-scanner?color=cb3837&label=npm" alt="npm" /></a>
14
14
  <a href="https://www.npmjs.com/package/@guava-parity/guard-scanner"><img src="https://img.shields.io/npm/dm/@guava-parity/guard-scanner?color=blue&label=downloads" alt="downloads" /></a>
15
- <a href="#テスト結果"><img src="https://img.shields.io/badge/テスト-363_passed-brightgreen" alt="tests" /></a>
15
+ <a href="#テスト結果"><img src="https://img.shields.io/badge/テスト-362_passed-brightgreen" alt="tests" /></a>
16
16
  <a href="https://github.com/koatora20/guard-scanner/actions/workflows/codeql.yml"><img src="https://img.shields.io/badge/CodeQL-有効-181717" alt="CodeQL" /></a>
17
17
  <a href="https://doi.org/10.5281/zenodo.18906684"><img src="https://img.shields.io/badge/DOI-Zenodo-blue" alt="DOI" /></a>
18
18
  <a href="https://github.com/koatora20/guard-scanner/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT" /></a>
19
19
  </p>
20
20
 
21
21
  <p align="center">
22
- <strong>358</strong> 検出パターン · <strong>35</strong> 脅威カテゴリ · <strong>27</strong> ランタイムチェック · 依存: <strong>1</strong> (<code>ws</code> のみ)
22
+ <strong>364</strong> 検出パターン · <strong>35</strong> 脅威カテゴリ · <strong>27</strong> ランタイムチェック · 依存: <strong>1</strong> (<code>ws</code> のみ)
23
23
  </p>
24
24
 
25
25
  <p align="center">
@@ -33,7 +33,7 @@
33
33
  ```
34
34
  $ npx @guava-parity/guard-scanner ./skills/ --strict --soul-lock --compliance owasp-asi
35
35
 
36
- guard-scanner v16.0.0
36
+ guard-scanner v16.0.1
37
37
 
38
38
  ⚠ CRITICAL identity-hijack SOUL_OVERWRITE_ATTEMPT
39
39
  skills/imported-tool/SKILL.md:47
@@ -67,6 +67,13 @@ npx -y @guava-parity/guard-scanner ./my-skills/ --strict
67
67
  npx -y @guava-parity/guard-scanner ./my-skills/ --compliance owasp-asi
68
68
  ```
69
69
 
70
+ **インストール済み CLI**:
71
+
72
+ ```bash
73
+ npm install -g @guava-parity/guard-scanner
74
+ guard-scanner ./my-skills/ --strict
75
+ ```
76
+
70
77
  **MCPサーバーとして起動** — Cursor, Windsurf, Claude Code, OpenClaw対応:
71
78
 
72
79
  ```bash
@@ -97,6 +104,12 @@ guard-scanner watch ./skills/ --strict --soul-lock
97
104
  guard-scanner ./skills/ --compliance owasp-asi --format json
98
105
  ```
99
106
 
107
+ **`npm exec` 互換パス**:
108
+
109
+ ```bash
110
+ npm exec --yes --package=@guava-parity/guard-scanner -- guard-scanner ./skills/ --strict
111
+ ```
112
+
100
113
  ---
101
114
 
102
115
  ## 検出対象
@@ -144,7 +157,7 @@ v16 の JSON / MCP 出力では各 finding に `layer`, `layer_name`, `owasp_asi
144
157
  | 4. 行動分析 | リサーチ未実施での実行、ハルシネーション駆動アクション |
145
158
  | 5. 信頼搾取 | 権限主張攻撃、作成者なりすまし |
146
159
 
147
- **27のランタイムチェック**を5層で実行。公開互換の保証面は OpenClaw `v2026.3.8` manifest/discovery/`before_tool_call` に固定し、新しい upstream は drift watchdog で別途追跡する。
160
+ **27のランタイムチェック**を5層で実行。検証済みの安定ターゲットは OpenClaw `v2026.3.13`、回帰ベースラインは manifest/discovery/`before_tool_call` `v2026.3.8`。
148
161
 
149
162
  モード: `monitor`(ログのみ)· `enforce`(CRITICAL をブロック、デフォルト)· `strict`(HIGH+をブロック)
150
163
 
@@ -216,13 +229,13 @@ MCPサーバーとして実行時に公開されるツール:
216
229
  ## テスト結果
217
230
 
218
231
  ```
219
- ℹ tests 363
220
- ℹ suites 94
221
- ℹ pass 363
232
+ ℹ tests 362
233
+ ℹ suites 38
234
+ ℹ pass 362
222
235
  ℹ fail 0
223
236
  ```
224
237
 
225
- テストファイル28件。`npm test` で再現可能。[ベンチマークコーパス](docs/data/corpus-metrics.json) 100%パス。
238
+ テストファイル38件。`npm test` で再現可能。[ベンチマークコーパス](docs/data/corpus-metrics.json) 100%パス。
226
239
 
227
240
  ---
228
241
 
package/SECURITY.md CHANGED
@@ -14,14 +14,14 @@ We will respond within 48 hours and provide a fix within 7 days for critical iss
14
14
 
15
15
  | Version | Status |
16
16
  |---------|--------|
17
- | Latest major (`14.x`) | ✅ Supported |
17
+ | Latest major (`16.x`) | ✅ Supported |
18
18
  | Older releases | ⚠️ Best effort only |
19
19
 
20
20
  ## Scope
21
21
 
22
22
  guard-scanner is a **static analysis tool** — it reads files but never executes them. It does not:
23
23
  - Execute any code from scanned skills
24
- - Make network requests
24
+ - Make network requests (except optional VirusTotal integration)
25
25
  - Modify any files in the scan directory
26
26
  - Require elevated privileges
27
27
 
@@ -29,7 +29,7 @@ The only files guard-scanner writes are output reports (`--json`, `--sarif`, `--
29
29
 
30
30
  ## Supply Chain Security
31
31
 
32
- guard-scanner itself keeps runtime dependencies intentionally small. As of `14.0.0`, it ships with **one runtime dependency** (`ws`) to support the MCP server.
32
+ guard-scanner itself keeps runtime dependencies intentionally small. As of `16.0.1`, it ships with **one runtime dependency** (`ws`) to support the MCP server.
33
33
 
34
34
  - Small runtime surface area
35
35
  - No `postinstall` scripts
@@ -38,16 +38,16 @@ guard-scanner itself keeps runtime dependencies intentionally small. As of `14.0
38
38
 
39
39
  ## Pattern Updates
40
40
 
41
- The threat pattern database (`src/patterns.js`) and IoC database (`src/ioc-db.js`) are updated based on:
41
+ The threat pattern database (`src/patterns.ts`) and IoC database (`src/ioc-db.ts`) are updated based on:
42
42
  - Snyk ToxicSkills taxonomy
43
- - OWASP MCP Top 10
43
+ - OWASP LLM Top 10 & Agentic Security Top 10
44
44
  - CVE reports affecting AI agents
45
45
  - Community-reported incidents
46
46
  - Original research from real-world attacks
47
47
 
48
48
  ## Responsible Disclosure
49
49
 
50
- The test fixtures in `test/fixtures/malicious-skill/` contain **intentionally malicious patterns** for testing purposes. These files are:
50
+ The test fixtures in `tests/fixtures/malicious-skill/` contain **intentionally malicious patterns** for testing purposes. These files are:
51
51
  - Clearly marked as test fixtures
52
52
  - Non-functional (will error if executed)
53
53
  - Necessary for validating detection capabilities
package/SKILL.md CHANGED
@@ -1,13 +1,15 @@
1
1
  ---
2
2
  name: guard-scanner
3
- description: "Security scanner and runtime guard for AI agent skills. 358 static threat patterns across 35 categories + 27 runtime checks, with v16 5-layer analysis output (`layer`, `layer_name`, `owasp_asi`, `protocol_surface`) and `--compliance owasp-asi`. Use when scanning skill directories for security threats, auditing npm/GitHub/ClawHub assets for leaked credentials, running real-time file watch during development, integrating security checks into CI/CD pipelines (SARIF/JSON), setting up MCP server for editor-integrated scanning (Cursor, Windsurf, Claude Code, OpenClaw), or runtime guarding tool calls via the OpenClaw v2026.3.8 before_tool_call compatibility surface. Single dependency (ws). MIT licensed."
3
+ description: "Security scanner and runtime guard for OpenClaw skills, MCP servers, and AI agent workflows. Detects prompt injection, identity hijacking, memory poisoning, A2A contagion, secret leaks, supply-chain abuse, and dangerous tool calls with 364 static threat patterns across 35 threat categories plus 27 runtime checks. Use when reviewing a new skill before install, scanning a workspace in CI/CD (SARIF/JSON/HTML), auditing npm/GitHub/ClawHub assets for leaked credentials, running watch mode during development, exposing scanner tools over MCP for Cursor/Windsurf/Claude Code/OpenClaw, or enforcing before_tool_call policy in OpenClaw. v16 adds 5-layer analysis output (`layer`, `layer_name`, `owasp_asi`, `protocol_surface`) and `--compliance owasp-asi`. MIT licensed; single runtime dependency (`ws`)."
4
4
  license: MIT
5
5
  metadata: {"openclaw": {"requires": {"bins": ["node"]}}}
6
6
  ---
7
7
 
8
8
  # guard-scanner
9
9
 
10
- Scan AI agent skills for 35 categories of threats. v16 adds a 5-layer analysis pipeline, OWASP ASI projection mode, richer finding metadata, and Rust runtime evidence integration on top of the existing prompt injection, identity hijacking, memory poisoning, MCP poisoning, and supply chain coverage.
10
+ Security scanner and runtime guard for the agentic stack. Use it before installing a skill from ClawHub, when auditing MCP servers or OpenClaw workspaces, when wiring security checks into CI/CD, or when you want OpenClaw to block dangerous tool calls at runtime.
11
+
12
+ It covers prompt injection, identity hijacking, memory poisoning, A2A contagion, MCP abuse, secret leakage, supply-chain abuse, and dangerous execution patterns. v16 adds a 5-layer analysis pipeline, OWASP ASI projection mode, richer finding metadata, and Rust runtime evidence integration.
11
13
 
12
14
  ## Quick Start
13
15
 
@@ -20,6 +22,12 @@ npx -y @guava-parity/guard-scanner ./skills/ --soul-lock --strict
20
22
 
21
23
  # Filter to OWASP ASI mapped findings only
22
24
  npx -y @guava-parity/guard-scanner ./skills/ --compliance owasp-asi --format json
25
+
26
+ # Installed CLI
27
+ guard-scanner ./skills/ --strict
28
+
29
+ # npm exec compatibility
30
+ npm exec --yes --package=@guava-parity/guard-scanner -- guard-scanner ./skills/ --strict
23
31
  ```
24
32
 
25
33
  ## Core Commands
@@ -73,7 +81,7 @@ MCP tools: `scan_skill`, `scan_text`, `check_tool_call`, `audit_assets`, `get_st
73
81
 
74
82
  Public quality contract:
75
83
 
76
- - Benchmark corpus version: `2026-03-13.quality-v1`
84
+ - Benchmark corpus version: `2026-03-15.quality-v17`
77
85
  - Precision target: `>= 0.90`
78
86
  - Recall target: `>= 0.90`
79
87
  - FPR/FNR budgets: `<= 0.10`
@@ -106,7 +114,7 @@ guard-scanner scan ./skills/ --vt-scan
106
114
 
107
115
  ## Runtime Guard
108
116
 
109
- The validated OpenClaw surface is the compiled runtime plugin entry (`dist/openclaw-plugin.mjs`) discovered through `package.json > openclaw.extensions` and mounted on `before_tool_call` for OpenClaw `v2026.3.8`. Newer upstream releases are measured by the drift watchdog before any public compatibility claim is widened.
117
+ The validated OpenClaw surface is the compiled runtime plugin entry (`dist/openclaw-plugin.mjs`) discovered through `package.json > openclaw.extensions` and mounted on `before_tool_call` for OpenClaw `v2026.3.13`, with regression coverage kept on `v2026.3.8`.
110
118
 
111
119
  The `before_tool_call` hook provides 27 runtime checks across 5 defense layers, while v16 scan output adds a second 5-layer analysis view:
112
120
 
@@ -169,7 +177,7 @@ guard-scanner ./skills/ --plugin ./my-plugin.js
169
177
 
170
178
  ## Threat Categories
171
179
 
172
- 35 categories covering OWASP LLM Top 10 + Agentic Security Top 10. See `src/patterns.js` for the full pattern database. Key categories:
180
+ 35 categories covering OWASP LLM Top 10 + Agentic Security Top 10. See `src/patterns.ts` for the full pattern database. Key categories:
173
181
 
174
182
  - **Prompt Injection** — hidden instructions, invisible Unicode, homoglyphs
175
183
  - **Identity Hijacking** ⚿ — persona swap, SOUL.md overwrites, memory wipe