guard-scanner 4.0.1 β 4.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 +118 -205
- package/dist/cli.js +33 -13
- package/dist/cli.js.map +1 -1
- package/dist/scanner.d.ts +2 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +67 -1
- package/dist/scanner.js.map +1 -1
- package/package.json +2 -2
- package/ts-src/cli.ts +34 -13
- package/ts-src/scanner.ts +70 -1
package/README.md
CHANGED
|
@@ -1,34 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<a href="#plugin-api">Plugin API</a> β’
|
|
23
|
-
<a href="README_ja.md">π―π΅ ζ₯ζ¬θͺ</a>
|
|
24
|
-
</p>
|
|
25
|
-
</p>
|
|
26
|
-
|
|
27
|
-
<p align="center">
|
|
28
|
-
<img src="docs/html-report-preview.png" alt="guard-scanner HTML Report Preview" width="800">
|
|
29
|
-
<br>
|
|
30
|
-
<em>Dark Glassmorphism Dashboard β Risk gauges, severity distribution, interactive skill cards</em>
|
|
31
|
-
</p>
|
|
1
|
+
# π‘οΈ guard-scanner
|
|
2
|
+
|
|
3
|
+
**Security scanner for AI agent skills β catches the bad stuff before it runs.**
|
|
4
|
+
|
|
5
|
+
Prompt injection, identity hijacking, memory poisoning, and 22+ threat categories.
|
|
6
|
+
Zero dependencies. One command. Works with OpenClaw out of the box.
|
|
7
|
+
|
|
8
|
+
[](https://www.npmjs.com/package/guard-scanner)
|
|
9
|
+
[](https://www.npmjs.com/package/guard-scanner)
|
|
10
|
+
[](LICENSE)
|
|
11
|
+
[]()
|
|
12
|
+
[]()
|
|
13
|
+
[]()
|
|
14
|
+
[]()
|
|
15
|
+
|
|
16
|
+
[Quick Start](#quick-start) β’
|
|
17
|
+
[Threat Categories](#threat-categories) β’
|
|
18
|
+
[OpenClaw Plugin](#openclaw-plugin-setup) β’
|
|
19
|
+
[CI/CD](#cicd-integration) β’
|
|
20
|
+
[Plugin API](#plugin-api) β’
|
|
21
|
+
[π―π΅ ζ₯ζ¬θͺ](README_ja.md)
|
|
32
22
|
|
|
33
23
|
---
|
|
34
24
|
|
|
@@ -50,8 +40,8 @@ The AI agent skill ecosystem has the same supply-chain security problem that npm
|
|
|
50
40
|
| Feature | Description |
|
|
51
41
|
|---|---|
|
|
52
42
|
| **22 Threat Categories** | Snyk ToxicSkills + OWASP Agentic Top 10 + Identity Hijack + PII + Trust Exploitation |
|
|
53
|
-
| **
|
|
54
|
-
| **26 Runtime Checks** | Real-time `before_tool_call` hook β 5-layer defense
|
|
43
|
+
| **144+ Static Patterns** | Regex-based static analysis covering code, docs, and data files |
|
|
44
|
+
| **26 Runtime Checks** | Real-time `before_tool_call` hook β 5-layer defense |
|
|
55
45
|
| **IoC Database** | Known malicious IPs, domains, URLs, usernames, and typosquat names |
|
|
56
46
|
| **Data Flow Analysis** | Lightweight JS analysis: secret reads β network calls β exec chains |
|
|
57
47
|
| **Cross-File Analysis** | Phantom references, base64 fragment assembly, multi-file exfil detection |
|
|
@@ -75,24 +65,24 @@ The AI agent skill ecosystem has the same supply-chain security problem that npm
|
|
|
75
65
|
npx guard-scanner ./skills/
|
|
76
66
|
```
|
|
77
67
|
|
|
78
|
-
|
|
68
|
+
No install needed. Scans every subdirectory as a skill and tells you what's dangerous.
|
|
79
69
|
|
|
80
|
-
**
|
|
70
|
+
**More options:**
|
|
81
71
|
|
|
82
72
|
```bash
|
|
83
|
-
#
|
|
73
|
+
# Verbose output β see exactly what was found and why
|
|
84
74
|
npx guard-scanner ./skills/ --verbose
|
|
85
75
|
|
|
86
76
|
# Stricter detection (catches more edge cases)
|
|
87
77
|
npx guard-scanner ./skills/ --strict
|
|
88
78
|
|
|
89
|
-
# Full audit
|
|
79
|
+
# Full audit β JSON + SARIF + HTML report
|
|
90
80
|
npx guard-scanner ./skills/ --verbose --check-deps --json --sarif --html
|
|
91
81
|
```
|
|
92
82
|
|
|
93
|
-
**Output
|
|
83
|
+
**Output:**
|
|
94
84
|
```
|
|
95
|
-
π‘οΈ guard-scanner v4.0.
|
|
85
|
+
π‘οΈ guard-scanner v4.0.1
|
|
96
86
|
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
97
87
|
π Scanning: ./skills/
|
|
98
88
|
π¦ Skills found: 5
|
|
@@ -105,17 +95,19 @@ npx guard-scanner ./skills/ --verbose --check-deps --json --sarif --html
|
|
|
105
95
|
π’ good-skill β CLEAN (risk: 0)
|
|
106
96
|
```
|
|
107
97
|
|
|
108
|
-
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## OpenClaw Plugin Setup
|
|
109
101
|
|
|
110
102
|
```bash
|
|
111
103
|
# Install as OpenClaw plugin
|
|
112
104
|
openclaw plugins install guard-scanner
|
|
113
105
|
|
|
114
|
-
# Or
|
|
106
|
+
# Or global install
|
|
115
107
|
npm install -g guard-scanner
|
|
116
108
|
```
|
|
117
109
|
|
|
118
|
-
### What happens after install
|
|
110
|
+
### What happens after install
|
|
119
111
|
|
|
120
112
|
1. **Static scanning** β `npx guard-scanner [dir]` scans skills before installation
|
|
121
113
|
2. **Runtime guard** β `before_tool_call` hook automatically blocks dangerous operations
|
|
@@ -124,19 +116,15 @@ npm install -g guard-scanner
|
|
|
124
116
|
### 5-Layer Runtime Defense (26 checks)
|
|
125
117
|
|
|
126
118
|
```
|
|
127
|
-
Layer 1: Threat Detection β 12 checks (shells, exfil, SSRF,
|
|
128
|
-
Layer 2: Trust Defense
|
|
119
|
+
Layer 1: Threat Detection β 12 checks (shells, exfil, SSRF, etc.)
|
|
120
|
+
Layer 2: Trust Defense β 4 checks (memory/SOUL/config tampering)
|
|
129
121
|
Layer 3: Safety Judge β 3 checks (injection, trust bypass, shutdown refusal)
|
|
130
122
|
Layer 4: Brain / Behavioral β 3 checks (research skip, blind trust, chain bypass)
|
|
131
123
|
Layer 5: Trust Exploitation β 4 checks (OWASP ASI09: authority/trust/audit abuse)
|
|
132
124
|
```
|
|
133
125
|
|
|
134
|
-
> **v4.0.0** β Runtime Guard now available as standalone JS module (`src/runtime-guard.js`) + OpenClaw plugin (`hooks/guard-scanner/plugin.ts`).
|
|
135
|
-
|
|
136
|
-
### Quick Start
|
|
137
|
-
|
|
138
126
|
```bash
|
|
139
|
-
# Pre-install
|
|
127
|
+
# Pre-install static gate
|
|
140
128
|
npx guard-scanner ~/.openclaw/workspace/skills --self-exclude --verbose
|
|
141
129
|
```
|
|
142
130
|
|
|
@@ -144,33 +132,34 @@ npx guard-scanner ~/.openclaw/workspace/skills --self-exclude --verbose
|
|
|
144
132
|
|
|
145
133
|
## Threat Categories
|
|
146
134
|
|
|
147
|
-
guard-scanner covers **
|
|
135
|
+
guard-scanner covers **22 threat categories** derived from four sources:
|
|
148
136
|
|
|
149
137
|
| # | Category | Based On | Severity | What It Detects |
|
|
150
138
|
|---|----------|----------|----------|----------------|
|
|
151
|
-
| 1 | **Prompt Injection** | Snyk ToxicSkills | CRITICAL | Invisible Unicode (ZWSP, BiDi), homoglyphs
|
|
139
|
+
| 1 | **Prompt Injection** | Snyk ToxicSkills | CRITICAL | Invisible Unicode (ZWSP, BiDi), homoglyphs, role override, system tag injection, base64 execution instructions |
|
|
152
140
|
| 2 | **Malicious Code** | Snyk ToxicSkills | CRITICAL | `eval()`, `Function()` constructor, `child_process`, reverse shells, raw sockets, sandbox detection |
|
|
153
|
-
| 3 | **Suspicious Downloads** | Snyk ToxicSkills | CRITICAL | `curl\|bash` pipes, executable downloads, password-protected archives
|
|
154
|
-
| 4 | **Credential Handling** | Snyk ToxicSkills | HIGH | `.env` file reads, SSH key access, wallet seed phrases, credential echo/print
|
|
141
|
+
| 3 | **Suspicious Downloads** | Snyk ToxicSkills | CRITICAL | `curl\|bash` pipes, executable downloads, password-protected archives |
|
|
142
|
+
| 4 | **Credential Handling** | Snyk ToxicSkills | HIGH | `.env` file reads, SSH key access, wallet seed phrases, credential echo/print |
|
|
155
143
|
| 5 | **Secret Detection** | Snyk ToxicSkills | CRITICAL | AWS Access Keys (`AKIA...`), GitHub tokens (`ghp_/ghs_`), embedded private keys, high-entropy strings |
|
|
156
144
|
| 6 | **Exfiltration** | Snyk ToxicSkills | CRITICAL | webhook.site/requestbin.com/hookbin, POST with secrets, `curl --data`, DNS tunneling |
|
|
157
145
|
| 7 | **Unverifiable Deps** | Snyk ToxicSkills | HIGH | Remote dynamic imports, non-CDN script loading |
|
|
158
|
-
| 8 | **Financial Access** | Snyk ToxicSkills | HIGH |
|
|
159
|
-
| 9 | **Obfuscation** | Snyk ToxicSkills | HIGH | Hex strings, `atobβeval` chains, `String.fromCharCode`,
|
|
146
|
+
| 8 | **Financial Access** | Snyk ToxicSkills | HIGH | Payment API calls (Stripe/PayPal/Plaid), wallet transaction signing |
|
|
147
|
+
| 9 | **Obfuscation** | Snyk ToxicSkills | HIGH | Hex strings, `atobβeval` chains, `String.fromCharCode`, `base64 -d\|bash` |
|
|
160
148
|
| 10 | **Prerequisites Fraud** | Snyk ToxicSkills | CRITICAL | Download-in-prerequisites, terminal paste instructions |
|
|
161
|
-
| 11 | **Leaky Skills** | Snyk ToxicSkills | CRITICAL | "Save API key in memory", "Share token with user",
|
|
162
|
-
| 12 | **Memory Poisoning** | Palo Alto IBC | CRITICAL | SOUL.md/IDENTITY.md modification,
|
|
163
|
-
| 13 | **Prompt Worm** | Palo Alto IBC | CRITICAL | Self-replication instructions, agent-to-agent propagation,
|
|
149
|
+
| 11 | **Leaky Skills** | Snyk ToxicSkills | CRITICAL | "Save API key in memory", "Share token with user", PII collection, session log export |
|
|
150
|
+
| 12 | **Memory Poisoning** | Palo Alto IBC | CRITICAL | SOUL.md/IDENTITY.md modification, behavioral rule override, persistence instructions |
|
|
151
|
+
| 13 | **Prompt Worm** | Palo Alto IBC | CRITICAL | Self-replication instructions, agent-to-agent propagation, CSS-hidden content |
|
|
164
152
|
| 14 | **Persistence** | MITRE ATT&CK | HIGH | Scheduled tasks/cron, startup execution, LaunchAgents/systemd |
|
|
165
|
-
| 15 | **CVE Patterns** | CVE Database | CRITICAL | CVE-2026-25253 `gatewayUrl` injection, sandbox disabling,
|
|
166
|
-
| 16 | **MCP Security** | OWASP MCP Top 10 | CRITICAL | Tool poisoning (`<IMPORTANT>`), schema poisoning
|
|
167
|
-
| 17 | **Identity Hijacking** | Original Research | CRITICAL | SOUL.md/IDENTITY.md overwrite/redirect
|
|
168
|
-
| 18 | **Sandbox Validation** | v1.1 | HIGH | Dangerous binary requirements in SKILL.md, overly broad file scope, sensitive env vars
|
|
153
|
+
| 15 | **CVE Patterns** | CVE Database | CRITICAL | CVE-2026-25253 `gatewayUrl` injection, sandbox disabling, Gatekeeper bypass |
|
|
154
|
+
| 16 | **MCP Security** | OWASP MCP Top 10 | CRITICAL | Tool poisoning (`<IMPORTANT>`), schema poisoning, token leaks, shadow server registration, SSRF |
|
|
155
|
+
| 17 | **Identity Hijacking** | Original Research | CRITICAL | SOUL.md/IDENTITY.md overwrite/redirect, persona swap, memory wipe, name override |
|
|
156
|
+
| 18 | **Sandbox Validation** | v1.1 | HIGH | Dangerous binary requirements in SKILL.md, overly broad file scope, sensitive env vars |
|
|
169
157
|
| 19 | **Code Complexity** | v1.1 | MEDIUM | Excessive file length (>1000 lines), deep nesting (>5 levels), high eval/exec density |
|
|
170
|
-
| 20 | **Config Impact** | v1.1 | CRITICAL | `openclaw.json` writes, exec approval bypass,
|
|
171
|
-
| 21 | **PII Exposure** | v2.1 | CRITICAL | Hardcoded CC/SSN/phone/email
|
|
158
|
+
| 20 | **Config Impact** | v1.1 | CRITICAL | `openclaw.json` writes, exec approval bypass, internal hooks modification, network wildcard |
|
|
159
|
+
| 21 | **PII Exposure** | v2.1 | CRITICAL | Hardcoded CC/SSN/phone/email, PII logging/network send/plaintext store, Shadow AI |
|
|
160
|
+
| 22 | **Trust Exploitation** | OWASP ASI09 | HIGH | Authority abuse, audit bypass, trust chain manipulation |
|
|
172
161
|
|
|
173
|
-
> **Categories 17β
|
|
162
|
+
> **Categories 17β22** are unique to guard-scanner. Category 17 (Identity Hijacking) was developed from a real attack.
|
|
174
163
|
|
|
175
164
|
---
|
|
176
165
|
|
|
@@ -179,13 +168,12 @@ guard-scanner covers **21 threat categories** derived from four sources:
|
|
|
179
168
|
### Terminal (Default)
|
|
180
169
|
|
|
181
170
|
```
|
|
182
|
-
π‘οΈ guard-scanner
|
|
171
|
+
π‘οΈ guard-scanner v4.0.1
|
|
183
172
|
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
184
173
|
π Scanning: ./skills/
|
|
185
174
|
π¦ Skills found: 22
|
|
186
175
|
|
|
187
176
|
π’ my-safe-skill β CLEAN (risk: 0)
|
|
188
|
-
π’ another-skill β LOW RISK (risk: 5)
|
|
189
177
|
π‘ suspicious-one β SUSPICIOUS (risk: 45)
|
|
190
178
|
π credential-handling
|
|
191
179
|
π΄ [HIGH] Reading .env file β scripts/main.js:12
|
|
@@ -200,7 +188,6 @@ guard-scanner covers **21 threat categories** derived from four sources:
|
|
|
200
188
|
π Scan Summary
|
|
201
189
|
Scanned: 22
|
|
202
190
|
π’ Clean: 18
|
|
203
|
-
π’ Low Risk: 2
|
|
204
191
|
π‘ Suspicious: 1
|
|
205
192
|
π΄ Malicious: 1
|
|
206
193
|
Safety Rate: 91%
|
|
@@ -213,22 +200,11 @@ Writes `guard-scanner-report.json` with full findings, stats, recommendations, a
|
|
|
213
200
|
|
|
214
201
|
### SARIF (`--sarif`)
|
|
215
202
|
|
|
216
|
-
Writes `guard-scanner.sarif` β [SARIF 2.1.0](https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning) compatible
|
|
217
|
-
|
|
218
|
-
```yaml
|
|
219
|
-
# .github/workflows/scan.yml
|
|
220
|
-
- name: Scan agent skills
|
|
221
|
-
run: npx guard-scanner ./skills/ --sarif --fail-on-findings
|
|
222
|
-
|
|
223
|
-
- name: Upload SARIF
|
|
224
|
-
uses: github/codeql-action/upload-sarif@v3
|
|
225
|
-
with:
|
|
226
|
-
sarif_file: skills/guard-scanner.sarif
|
|
227
|
-
```
|
|
203
|
+
Writes `guard-scanner.sarif` β [SARIF 2.1.0](https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning) compatible for GitHub Code Scanning.
|
|
228
204
|
|
|
229
205
|
### HTML (`--html`)
|
|
230
206
|
|
|
231
|
-
Generates a dark-mode dashboard with stats grid and per-skill finding tables.
|
|
207
|
+
Generates a dark-mode dashboard with stats grid and per-skill finding tables.
|
|
232
208
|
|
|
233
209
|
---
|
|
234
210
|
|
|
@@ -237,6 +213,7 @@ Generates a dark-mode dashboard with stats grid and per-skill finding tables. Op
|
|
|
237
213
|
Each skill receives a **risk score (0β100)** based on:
|
|
238
214
|
|
|
239
215
|
### Base Score
|
|
216
|
+
|
|
240
217
|
| Severity | Weight |
|
|
241
218
|
|----------|--------|
|
|
242
219
|
| CRITICAL | 40 points |
|
|
@@ -246,8 +223,6 @@ Each skill receives a **risk score (0β100)** based on:
|
|
|
246
223
|
|
|
247
224
|
### Amplification Rules
|
|
248
225
|
|
|
249
|
-
Certain combinations multiply the base score:
|
|
250
|
-
|
|
251
226
|
| Combination | Multiplier | Rationale |
|
|
252
227
|
|---|---|---|
|
|
253
228
|
| Credential handling + Exfiltration | **Γ2** | Classic steal-and-send pattern |
|
|
@@ -262,17 +237,14 @@ Certain combinations multiply the base score:
|
|
|
262
237
|
| Identity hijacking | **Γ2** | Core identity compromise |
|
|
263
238
|
| Identity hijacking + Persistence | **min 90** | Full agent takeover |
|
|
264
239
|
| Config impact | **Γ2** | OpenClaw configuration tampering |
|
|
265
|
-
| Config impact + Sandbox violation | **min 70** | Combined config + capability abuse |
|
|
266
|
-
| Complexity + Malicious code/Obfuscation | **Γ1.5** | Complex code hiding threats |
|
|
267
240
|
| PII exposure + Exfiltration | **Γ3** | PII being sent to external servers |
|
|
268
241
|
| PII exposure + Shadow AI | **Γ2.5** | PII leak through unauthorized LLM |
|
|
269
|
-
| PII exposure + Credential handling | **Γ2** | Combined PII + credential risk |
|
|
270
242
|
| Known IoC (IP/URL/typosquat) | **= 100** | Confirmed malicious |
|
|
271
243
|
|
|
272
244
|
### Verdict Thresholds
|
|
273
245
|
|
|
274
246
|
| Mode | Suspicious | Malicious |
|
|
275
|
-
|------|-----------|-----------|
|
|
247
|
+
|------|-----------|-----------|
|
|
276
248
|
| Normal | β₯ 30 | β₯ 80 |
|
|
277
249
|
| Strict (`--strict`) | β₯ 20 | β₯ 60 |
|
|
278
250
|
|
|
@@ -364,8 +336,6 @@ guard-scanner ./skills/ --plugin ./my-org-rules.js
|
|
|
364
336
|
|
|
365
337
|
### Custom Rules via JSON
|
|
366
338
|
|
|
367
|
-
Alternatively, use a JSON rules file:
|
|
368
|
-
|
|
369
339
|
```json
|
|
370
340
|
[
|
|
371
341
|
{
|
|
@@ -439,22 +409,22 @@ Options:
|
|
|
439
409
|
```
|
|
440
410
|
guard-scanner/
|
|
441
411
|
βββ src/
|
|
442
|
-
β βββ scanner.js # GuardScanner class β core scan engine
|
|
443
|
-
β βββ patterns.js #
|
|
412
|
+
β βββ scanner.js # GuardScanner class β core scan engine
|
|
413
|
+
β βββ patterns.js # 144+ threat detection patterns (Cat 1β22)
|
|
444
414
|
β βββ ioc-db.js # Indicators of Compromise database
|
|
445
415
|
β βββ cli.js # CLI entry point and argument parser
|
|
446
416
|
βββ hooks/
|
|
447
417
|
β βββ guard-scanner/
|
|
448
|
-
β βββ plugin.ts # Plugin Hook
|
|
418
|
+
β βββ plugin.ts # Plugin Hook (26 checks, 5 layers, block/blockReason)
|
|
449
419
|
β βββ HOOK.md # Hook manifest
|
|
450
|
-
βββ openclaw.plugin.json # OpenClaw plugin manifest
|
|
420
|
+
βββ openclaw.plugin.json # OpenClaw plugin manifest
|
|
451
421
|
βββ test/
|
|
452
|
-
β βββ scanner.test.js #
|
|
453
|
-
β βββ plugin.test.js #
|
|
422
|
+
β βββ scanner.test.js # 98 tests β static scanner
|
|
423
|
+
β βββ plugin.test.js # 35 tests β Plugin Hook runtime guard
|
|
454
424
|
β βββ fixtures/ # Malicious, clean, complex, config-changer, pii-leaky samples
|
|
455
|
-
βββ package.json
|
|
425
|
+
βββ package.json
|
|
456
426
|
βββ CHANGELOG.md
|
|
457
|
-
βββ LICENSE
|
|
427
|
+
βββ LICENSE
|
|
458
428
|
βββ README.md
|
|
459
429
|
```
|
|
460
430
|
|
|
@@ -467,7 +437,6 @@ guard-scanner/
|
|
|
467
437
|
β
|
|
468
438
|
ββββββββββΌββββββββββ
|
|
469
439
|
β GuardScanner β
|
|
470
|
-
β constructor() β
|
|
471
440
|
β β’ Load plugins β
|
|
472
441
|
β β’ Load rules β
|
|
473
442
|
β β’ Set thresholdsβ
|
|
@@ -475,22 +444,21 @@ guard-scanner/
|
|
|
475
444
|
β
|
|
476
445
|
ββββββββββΌββββββββββ
|
|
477
446
|
β scanDirectory() β
|
|
478
|
-
β β’ Load
|
|
447
|
+
β β’ Load ignores β
|
|
479
448
|
β β’ Enumerate β
|
|
480
449
|
ββββββββββ¬ββββββββββ
|
|
481
450
|
β
|
|
482
451
|
ββββββββββββββββΌβββββββββββββββ
|
|
483
452
|
β β β
|
|
484
453
|
ββββββββββΌβββββββ ββββββΌβββββ βββββββββΌβββββββ
|
|
485
|
-
β Per-Skill β β
|
|
486
|
-
β File Scan β β
|
|
487
|
-
β β β
|
|
488
|
-
β β’ Pattern β β
|
|
489
|
-
β matching β β
|
|
490
|
-
β β’
|
|
491
|
-
β
|
|
492
|
-
β β’
|
|
493
|
-
β β’ Custom rulesβ β β β β
|
|
454
|
+
β Per-Skill β β IoC β β Structural β
|
|
455
|
+
β File Scan β β Check β β Checks β
|
|
456
|
+
β β β β β β
|
|
457
|
+
β β’ Pattern β β β’ IPs β β β’ SKILL.md β
|
|
458
|
+
β matching β β β’ URLs β β β’ Hidden β
|
|
459
|
+
β β’ Entropy β β β’ Names β β files β
|
|
460
|
+
β β’ Data flow β β β β β’ Deps β
|
|
461
|
+
β β’ Custom rulesβ β β β β’ Cross-file β
|
|
494
462
|
βββββββββ¬ββββββββ ββββββ¬βββββ ββββββββ¬ββββββββ
|
|
495
463
|
β β β
|
|
496
464
|
ββββββββββββββββΌβββββββββββββββ
|
|
@@ -556,17 +524,15 @@ const scanner = new GuardScanner({
|
|
|
556
524
|
verbose: false,
|
|
557
525
|
strict: true,
|
|
558
526
|
checkDeps: true,
|
|
559
|
-
summaryOnly: true,
|
|
560
527
|
plugins: ['./my-plugin.js']
|
|
561
528
|
});
|
|
562
529
|
|
|
563
530
|
scanner.scanDirectory('./skills/');
|
|
564
531
|
|
|
565
|
-
// Access results
|
|
566
532
|
console.log(scanner.stats); // { scanned, clean, low, suspicious, malicious }
|
|
567
533
|
console.log(scanner.findings); // Array of per-skill findings
|
|
568
534
|
console.log(scanner.toJSON()); // Full JSON report
|
|
569
|
-
console.log(scanner.toSARIF('.'));
|
|
535
|
+
console.log(scanner.toSARIF('.')); // SARIF 2.1.0 object
|
|
570
536
|
console.log(scanner.toHTML()); // HTML string
|
|
571
537
|
```
|
|
572
538
|
|
|
@@ -589,7 +555,7 @@ console.log(scanner.toHTML()); // HTML string
|
|
|
589
555
|
| Risk Score Calculation | 5 | Empty, single, combo amplifiers, IoC override |
|
|
590
556
|
| Verdict Determination | 5 | All verdicts + strict mode |
|
|
591
557
|
| Output Formats | 4 | JSON + SARIF 2.1.0 + HTML structure |
|
|
592
|
-
| Pattern Database | 4 |
|
|
558
|
+
| Pattern Database | 4 | 144+ count, required fields, category coverage, regex safety |
|
|
593
559
|
| IoC Database | 5 | Structure, ClawHavoc C2, webhook.site |
|
|
594
560
|
| Shannon Entropy | 2 | Low entropy, high entropy |
|
|
595
561
|
| Ignore Functionality | 1 | Pattern exclusion |
|
|
@@ -597,8 +563,8 @@ console.log(scanner.toHTML()); // HTML string
|
|
|
597
563
|
| Manifest Validation | 4 | Dangerous bins, broad files, sensitive env, clean negatives |
|
|
598
564
|
| Complexity Metrics | 2 | Deep nesting, clean negatives |
|
|
599
565
|
| Config Impact | 4 | openclaw.json write, exec approval, gateway host, clean negatives |
|
|
600
|
-
|
|
|
601
|
-
|
|
|
566
|
+
| PII Exposure Detection | 8 | Hardcoded CC/SSN, PII logging, network send, Shadow AI |
|
|
567
|
+
| Plugin Hook Runtime Guard | 35 | Blocking modes, all 5 threat layers, blockReason format |
|
|
602
568
|
|
|
603
569
|
---
|
|
604
570
|
|
|
@@ -606,24 +572,24 @@ console.log(scanner.toHTML()); // HTML string
|
|
|
606
572
|
|
|
607
573
|
OpenClaw's official [`THREAT-MODEL-ATLAS.md`](https://github.com/openclaw/openclaw/blob/main/docs/security/THREAT-MODEL-ATLAS.md) identifies security gaps that guard-scanner directly addresses:
|
|
608
574
|
|
|
609
|
-
| Gap (from ATLAS
|
|
575
|
+
| Gap (from ATLAS) | OpenClaw Status | guard-scanner |
|
|
610
576
|
|---|---|---|
|
|
611
|
-
| _"Simple regex easily bypassed"_
|
|
577
|
+
| _"Simple regex easily bypassed"_ | β οΈ Basic `FLAG_RULES` | β
144+ patterns, 22 categories |
|
|
612
578
|
| _"Does not analyze actual skill code content"_ | β Not implemented | β
Full code + doc + data flow analysis |
|
|
613
579
|
| No SOUL.md / IDENTITY.md integrity verification | β Not implemented | β
Identity hijacking detection (Cat 17) |
|
|
614
|
-
| `skill:before_install` hook | β Not implemented | π Proposed
|
|
580
|
+
| `skill:before_install` hook | β Not implemented | π Proposed |
|
|
615
581
|
| `before_tool_call` blocking reference impl | β No official plugin | β
First reference implementation (plugin.ts) |
|
|
616
582
|
| SARIF / CI integration for skill security | β Not available | β
SARIF 2.1.0 + GitHub Actions |
|
|
617
|
-
| Behavioral analysis beyond VirusTotal | β³ In progress | β
LLM-specific threat patterns
|
|
583
|
+
| Behavioral analysis beyond VirusTotal | β³ In progress | β
LLM-specific threat patterns |
|
|
618
584
|
|
|
619
|
-
> guard-scanner is **complementary** to OpenClaw's built-in security β not a replacement. OpenClaw handles infrastructure security
|
|
585
|
+
> guard-scanner is **complementary** to OpenClaw's built-in security β not a replacement. OpenClaw handles infrastructure security. guard-scanner handles **AI-specific threats** that traditional scanning misses.
|
|
620
586
|
|
|
621
587
|
---
|
|
622
588
|
|
|
623
589
|
## Related Work
|
|
624
590
|
|
|
625
591
|
| Tool | Language | Scope | Difference |
|
|
626
|
-
|------|----------|-------|-----------|
|
|
592
|
+
|------|----------|-------|-----------|
|
|
627
593
|
| [Snyk mcp-scan](https://github.com/AvidDollworker/mcp-scan) | Python | MCP servers | guard-scanner covers all skill types, not just MCP |
|
|
628
594
|
| [OWASP MCP Top 10](https://owasp.org/www-project-top-10-for-large-language-model-applications/) | β | Risk taxonomy | guard-scanner implements detection, not just documentation |
|
|
629
595
|
| [Semgrep](https://semgrep.dev) | Multi | General SAST | guard-scanner is agent-specific with LLM attack patterns |
|
|
@@ -637,19 +603,38 @@ guard-scanner's coverage of the [OWASP Top 10 for LLM Applications (2025)](https
|
|
|
637
603
|
| # | Risk | Status | Detection Method |
|
|
638
604
|
|---|------|--------|------------------|
|
|
639
605
|
| LLM01 | Prompt Injection | β οΈ Partial | Regex: Unicode exploits, role override, system tags, base64 instructions |
|
|
640
|
-
| LLM02 | Sensitive Information Disclosure | β οΈ Partial | PII Exposure Detection
|
|
606
|
+
| LLM02 | Sensitive Information Disclosure | β οΈ Partial | PII Exposure Detection: hardcoded PII, Shadow AI, PII collection |
|
|
641
607
|
| LLM03 | Training Data Poisoning | β¬ N/A | Out of scope for static analysis |
|
|
642
|
-
| LLM04 | Model Denial of Service | π
|
|
608
|
+
| LLM04 | Model Denial of Service | π Planned | Planned: excessive input / infinite loop patterns |
|
|
643
609
|
| LLM05 | Supply Chain Vulnerabilities | β οΈ Partial | IoC database, typosquat detection, dependency chain scan |
|
|
644
610
|
| LLM06 | Insecure Output Handling | β οΈ Partial | PII output detection (console.log, network send, plaintext store) |
|
|
645
|
-
| LLM07 | Insecure Plugin Design | π
|
|
646
|
-
| LLM08 | Excessive Agency | π
|
|
647
|
-
| LLM09 | Overreliance | π
|
|
648
|
-
| LLM10 | Model Theft | π
|
|
611
|
+
| LLM07 | Insecure Plugin Design | π Planned | Planned: unvalidated plugin input patterns |
|
|
612
|
+
| LLM08 | Excessive Agency | π Planned | Planned: over-permissioned scope detection |
|
|
613
|
+
| LLM09 | Overreliance | π Planned | Planned: unverified output trust patterns |
|
|
614
|
+
| LLM10 | Model Theft | π Planned | Planned: model file exfiltration patterns |
|
|
615
|
+
|
|
616
|
+
> **Current coverage: 5/10 (partial).** Full coverage targeted for v5.0.
|
|
649
617
|
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
618
|
+
---
|
|
619
|
+
|
|
620
|
+
## Roadmap
|
|
621
|
+
|
|
622
|
+
| Version | Focus | Key Features |
|
|
623
|
+
|---------|-------|------|
|
|
624
|
+
| v1.1.1 β
| Stability | 56 tests, bug fixes |
|
|
625
|
+
| v2.0.0 β
| Plugin Hook Runtime Guard | `block`/`blockReason` API, 3 modes, 91 tests |
|
|
626
|
+
| v2.1.0 β
| PII Exposure + Shadow AI | 13 PII patterns, OWASP LLM02/06, 99 tests |
|
|
627
|
+
| v3.0.0 β
| TypeScript Rewrite | Full TS, OWASP LLM Top 10 mapping |
|
|
628
|
+
| v4.0.1 β
| Runtime Guard + OWASP ASI | 26 runtime checks (5 layers), ASI01-10, 133 tests |
|
|
629
|
+
| **v5.0** π | LLM-assisted + Multi-tool | See below |
|
|
630
|
+
|
|
631
|
+
### v5.0 Vision
|
|
632
|
+
|
|
633
|
+
| Direction | What | Why |
|
|
634
|
+
|-----------|------|-----|
|
|
635
|
+
| π§ **LLM-assisted detection** | Pass suspicious cases to a lightweight LLM for intent analysis | Regex can be evaded; LLMs understand intent |
|
|
636
|
+
| π **OS-level enforcement** | File watcher (auto-rollback SOUL.md/.env), process monitor, daemon mode | Works regardless of which AI tool you use |
|
|
637
|
+
| π **Multi-tool support** | Adapters for Claude Code, Cursor, Antigravity, Windsurf, MCP servers | Same 144+ patterns, different skill discovery per tool |
|
|
653
638
|
|
|
654
639
|
---
|
|
655
640
|
|
|
@@ -659,7 +644,7 @@ guard-scanner's coverage of the [OWASP Top 10 for LLM Applications (2025)](https
|
|
|
659
644
|
2. Create a feature branch (`git checkout -b feature/new-pattern`)
|
|
660
645
|
3. Add your pattern to `src/patterns.js` with the required fields
|
|
661
646
|
4. Add a test case in `test/fixtures/` and `test/scanner.test.js`
|
|
662
|
-
5. Run `npm test` β all
|
|
647
|
+
5. Run `npm test` β all tests must pass
|
|
663
648
|
6. Submit a Pull Request
|
|
664
649
|
|
|
665
650
|
### Adding a New Detection Pattern
|
|
@@ -698,84 +683,12 @@ We built one.
|
|
|
698
683
|
|
|
699
684
|
---
|
|
700
685
|
|
|
701
|
-
## π Need More? β GuavaSuite
|
|
702
|
-
|
|
703
|
-
guard-scanner catches threats **before** installation and **blocks** CRITICAL threats at runtime. **GuavaSuite** unlocks **strict mode** β blocking HIGH + CRITICAL threats, plus exclusive defense-in-depth features.
|
|
704
|
-
|
|
705
|
-
### How to Upgrade
|
|
706
|
-
|
|
707
|
-
```bash
|
|
708
|
-
# 1. Install GuavaSuite
|
|
709
|
-
clawhub install guava-suite
|
|
710
|
-
|
|
711
|
-
# 2. Hold 1M+ $GUAVA on Polygon
|
|
712
|
-
# Token: 0x25cBD481901990bF0ed2ff9c5F3C0d4f743AC7B8
|
|
713
|
-
# Buy on QuickSwap V2: https://quickswap.exchange
|
|
714
|
-
|
|
715
|
-
# 3. Activate with your wallet β get JWT β strict mode enabled
|
|
716
|
-
```
|
|
717
|
-
|
|
718
|
-
### Feature Comparison
|
|
719
|
-
|
|
720
|
-
| | guard-scanner (Free) | GuavaSuite ($GUAVA) |
|
|
721
|
-
|---|---|---|
|
|
722
|
-
| Static scan (129 patterns, 22 categories) | β
| β
|
|
|
723
|
-
| Runtime Guard β `enforce` (block CRITICAL) | β
| β
|
|
|
724
|
-
| **Runtime Guard β `strict` (block HIGH + CRITICAL)** | β | β
|
|
|
725
|
-
| **Soul Lock** (SOUL.md integrity + auto-rollback) | β | β
|
|
|
726
|
-
| **Memory Guard** (L1-L5 θ¨ζΆδΏθ·) | β | β
|
|
|
727
|
-
| **On-chain Identity** (SoulRegistry V2 on Polygon) | β | β
|
|
|
728
|
-
| Audit Log (JSONL) | β
| β
|
|
|
729
|
-
|
|
730
|
-
guard-scanner is and always will be **free, open-source, and zero-dependency**.
|
|
731
|
-
|
|
732
|
-
---
|
|
733
|
-
|
|
734
|
-
## Roadmap
|
|
735
|
-
|
|
736
|
-
| Version | Focus | Key Features |
|
|
737
|
-
|---------|-------|------|
|
|
738
|
-
| v1.1.1 β
| Stability | 56 tests, bug fixes |
|
|
739
|
-
| v2.0.0 β
| **Plugin Hook Runtime Guard** | `block`/`blockReason` API, 3 modes, 91 tests |
|
|
740
|
-
| v2.1.0 β
| **PII Exposure + Shadow AI** | 13 PII patterns, OWASP LLM02/06, 99 tests |
|
|
741
|
-
| v3.0.0 β
| **TypeScript Rewrite** | Full TS, OWASP LLM Top 10 mapping |
|
|
742
|
-
| v4.0.0 β
| **Runtime Guard Module + OWASP ASI** | 26 runtime checks (5 layers), ASI01-10 verified, 133 tests |
|
|
743
|
-
| **v4.0** π | **LLM + OS + Multi-tool** | See below |
|
|
744
|
-
|
|
745
|
-
### v4.0 Vision (feedback welcome!)
|
|
746
|
-
|
|
747
|
-
| Direction | What | Why |
|
|
748
|
-
|-----------|------|-----|
|
|
749
|
-
| π§ **LLM-assisted detection** | Pass suspicious (not certain) cases to a lightweight LLM (Haiku/Flash) for intent analysis | Regex can be evaded; LLMs understand intent |
|
|
750
|
-
| π **OS-level enforcement** | File watcher (auto-rollback SOUL.md/.env), process monitor (kill netcat/socat), daemon mode | Works regardless of which AI tool you use |
|
|
751
|
-
| π **Multi-tool support** | Adapters for Claude Code, Cursor, Antigravity, Windsurf, MCP servers | Same 210+ patterns, different skill discovery per tool |
|
|
752
|
-
|
|
753
|
-
> **Which matters most to you?** Open an issue or join the discussion! We're building this for the community.
|
|
754
|
-
|
|
755
|
-
---
|
|
756
|
-
|
|
757
|
-
## π Sponsor This Project
|
|
758
|
-
|
|
759
|
-
If guard-scanner helps protect your agents, consider sponsoring continued development:
|
|
760
|
-
|
|
761
|
-
<p align="center">
|
|
762
|
-
<a href="https://github.com/sponsors/koatora20">π Sponsor on GitHub</a>
|
|
763
|
-
</p>
|
|
764
|
-
|
|
765
|
-
Sponsors help fund:
|
|
766
|
-
- π¬ New threat research and pattern updates
|
|
767
|
-
- π Security research papers and threat analysis
|
|
768
|
-
- π Community-driven security for the agent ecosystem
|
|
769
|
-
|
|
770
|
-
---
|
|
771
|
-
|
|
772
686
|
## License
|
|
773
687
|
|
|
774
688
|
MIT β see [LICENSE](LICENSE)
|
|
775
689
|
|
|
776
690
|
---
|
|
777
691
|
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
</p>
|
|
692
|
+
**Zero dependencies. Zero compromises. π‘οΈ**
|
|
693
|
+
|
|
694
|
+
*Built by Guava π & Dee β building safer agent ecosystems.*
|
package/dist/cli.js
CHANGED
|
@@ -48,36 +48,48 @@ const patterns_js_1 = require("./patterns.js");
|
|
|
48
48
|
const args = process.argv.slice(2);
|
|
49
49
|
if (args.includes('--help') || args.includes('-h')) {
|
|
50
50
|
console.log(`
|
|
51
|
-
π‘οΈ guard-scanner v${scanner_js_1.VERSION} β Agent Skill Security Scanner
|
|
51
|
+
π‘οΈ guard-scanner v${scanner_js_1.VERSION} β Agent Skill Security Scanner
|
|
52
52
|
|
|
53
53
|
Usage: guard-scanner [scan-dir] [options]
|
|
54
|
+
guard-scanner install-check <skill-path> [--strict] [--json] [--verbose]
|
|
54
55
|
|
|
55
56
|
Options:
|
|
56
57
|
--verbose, -v Detailed findings with categories and samples
|
|
57
|
-
--json Write JSON report to
|
|
58
|
-
--sarif Write SARIF report to
|
|
59
|
-
--
|
|
58
|
+
--json Write JSON report to guard-scanner-report.json
|
|
59
|
+
--sarif Write SARIF 2.1.0 report to guard-scanner.sarif
|
|
60
|
+
--html Write HTML dashboard to guard-scanner-report.html
|
|
61
|
+
--format json|sarif Print JSON or SARIF to stdout (pipeable)
|
|
60
62
|
--quiet Suppress all text output (use with --format for clean pipes)
|
|
61
63
|
--self-exclude Skip scanning the guard-scanner skill itself
|
|
62
|
-
--strict Lower detection thresholds (
|
|
64
|
+
--strict Lower detection thresholds (suspicious: 20, malicious: 60)
|
|
63
65
|
--summary-only Only print the summary table
|
|
64
66
|
--check-deps Scan package.json for dependency chain risks
|
|
65
67
|
--rules <file> Load custom rules from JSON file
|
|
66
|
-
--plugin <file> Load plugin module
|
|
68
|
+
--plugin <file> Load plugin module (repeatable)
|
|
67
69
|
--fail-on-findings Exit code 1 if any findings (CI/CD)
|
|
68
70
|
--help, -h Show this help
|
|
69
71
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
Exit codes:
|
|
73
|
+
0 No malicious skills
|
|
74
|
+
1 Malicious skill(s) detected, or --fail-on-findings with any findings
|
|
75
|
+
2 Invalid scan directory
|
|
76
|
+
|
|
77
|
+
New in v4.0.0:
|
|
78
|
+
β’ Runtime Guard module (src/runtime-guard.js) + OpenClaw plugin (hooks/guard-scanner/plugin.ts)
|
|
79
|
+
β’ OWASP Agentic Security Initiative ASI01-10 verified (90% coverage)
|
|
80
|
+
β’ 5-layer defense: Threat / Trust / Safety Judge / Brain / Trust Exploitation
|
|
81
|
+
β’ 26 runtime checks (before_tool_call hook)
|
|
82
|
+
|
|
83
|
+
New in v3.2.0:
|
|
84
|
+
β’ --format json|sarif (stdout, CI/CD pipeable)
|
|
85
|
+
β’ --quiet (suppress terminal output)
|
|
76
86
|
|
|
77
87
|
Examples:
|
|
78
88
|
guard-scanner ./skills/ --verbose --self-exclude
|
|
79
|
-
guard-scanner ./skills/ --strict --json --sarif --check-deps
|
|
89
|
+
guard-scanner ./skills/ --strict --json --sarif --html --check-deps
|
|
90
|
+
guard-scanner ./skills/ --format json --quiet | jq '.stats'
|
|
80
91
|
guard-scanner ./skills/ --fail-on-findings
|
|
92
|
+
guard-scanner install-check ./my-skill/ --strict --verbose
|
|
81
93
|
`);
|
|
82
94
|
process.exit(0);
|
|
83
95
|
}
|
|
@@ -150,6 +162,7 @@ const summaryOnly = args.includes('--summary-only');
|
|
|
150
162
|
const checkDeps = args.includes('--check-deps');
|
|
151
163
|
const failOnFindings = args.includes('--fail-on-findings');
|
|
152
164
|
const quietMode = args.includes('--quiet');
|
|
165
|
+
const htmlOutput = args.includes('--html');
|
|
153
166
|
// --format json|sarif β stdout output (v3.2.0)
|
|
154
167
|
const formatIdx = args.indexOf('--format');
|
|
155
168
|
const formatValue = formatIdx >= 0 ? args[formatIdx + 1] : undefined;
|
|
@@ -184,6 +197,13 @@ if (jsonOutput) {
|
|
|
184
197
|
if (!quietMode && !formatValue)
|
|
185
198
|
console.log(`\nπ JSON report: ${outPath}`);
|
|
186
199
|
}
|
|
200
|
+
if (htmlOutput) {
|
|
201
|
+
const html = scanner.toHTML();
|
|
202
|
+
const outPath = path.join(scanDir, 'guard-scanner-report.html');
|
|
203
|
+
fs.writeFileSync(outPath, html);
|
|
204
|
+
if (!quietMode && !formatValue)
|
|
205
|
+
console.log(`\nπ HTML report: ${outPath}`);
|
|
206
|
+
}
|
|
187
207
|
if (sarifOutput) {
|
|
188
208
|
const outPath = path.join(scanDir, 'guard-scanner.sarif');
|
|
189
209
|
fs.writeFileSync(outPath, JSON.stringify(scanner.toSARIF(scanDir), null, 2));
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../ts-src/cli.ts"],"names":[],"mappings":";;AACA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,6CAAqD;AACrD,+CAAyC;AAEzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC;sBACM,oBAAO
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../ts-src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/scanner.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Zero dependencies. MIT License.
|
|
8
8
|
*/
|
|
9
9
|
import type { SkillResult, ScannerOptions, ScanStats, Thresholds, JSONReport, SARIFReport } from './types.js';
|
|
10
|
-
export declare const VERSION = "
|
|
10
|
+
export declare const VERSION = "4.0.1";
|
|
11
11
|
export declare class GuardScanner {
|
|
12
12
|
readonly verbose: boolean;
|
|
13
13
|
readonly selfExclude: boolean;
|
|
@@ -52,5 +52,6 @@ export declare class GuardScanner {
|
|
|
52
52
|
printSummary(): void;
|
|
53
53
|
toJSON(): JSONReport;
|
|
54
54
|
toSARIF(scanDir: string): SARIFReport;
|
|
55
|
+
toHTML(): string;
|
|
55
56
|
}
|
|
56
57
|
//# sourceMappingURL=scanner.d.ts.map
|
package/dist/scanner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../ts-src/scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EACW,WAAW,EAC9B,cAAc,EAAE,SAAS,EAAE,UAAU,EACrC,UAAU,EAAkB,WAAW,EAE1C,MAAM,YAAY,CAAC;AAOpB,eAAO,MAAM,OAAO,UAAU,CAAC;AA4B/B,qBAAa,YAAY;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,EAAE,WAAW,EAAE,CAAM;IAC7B,KAAK,EAAE,SAAS,CAAiE;IAEjF,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,WAAW,CAAqB;gBAE5B,OAAO,GAAE,cAAmB;IAsBxC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAmBpC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAuCxC,OAAO,CAAC,cAAc;IA0BtB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE;IA2CzC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA2FrD,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,SAAS;IA+BjB,OAAO,CAAC,aAAa;IA+BrB,4EAA4E;IAC5E,OAAO,CAAC,eAAe;IA8CvB,iEAAiE;IACjE,OAAO,CAAC,0BAA0B;IA8ClC,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,kBAAkB;IAqD1B,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,eAAe;IAsDvB,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,aAAa;IA4CrB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,QAAQ;IAoBhB,YAAY,IAAI,IAAI;IAuBpB,MAAM,IAAI,UAAU;IAqCpB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../ts-src/scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EACW,WAAW,EAC9B,cAAc,EAAE,SAAS,EAAE,UAAU,EACrC,UAAU,EAAkB,WAAW,EAE1C,MAAM,YAAY,CAAC;AAOpB,eAAO,MAAM,OAAO,UAAU,CAAC;AA4B/B,qBAAa,YAAY;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,EAAE,WAAW,EAAE,CAAM;IAC7B,KAAK,EAAE,SAAS,CAAiE;IAEjF,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,WAAW,CAAqB;gBAE5B,OAAO,GAAE,cAAmB;IAsBxC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAmBpC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAuCxC,OAAO,CAAC,cAAc;IA0BtB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE;IA2CzC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA2FrD,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,SAAS;IA+BjB,OAAO,CAAC,aAAa;IA+BrB,4EAA4E;IAC5E,OAAO,CAAC,eAAe;IA8CvB,iEAAiE;IACjE,OAAO,CAAC,0BAA0B;IA8ClC,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,kBAAkB;IAqD1B,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,eAAe;IAsDvB,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,aAAa;IA4CrB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,QAAQ;IAoBhB,YAAY,IAAI,IAAI;IAuBpB,MAAM,IAAI,UAAU;IAqCpB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAwDrC,MAAM,IAAI,MAAM;CAqEnB"}
|
package/dist/scanner.js
CHANGED
|
@@ -48,7 +48,7 @@ const crypto = __importStar(require("crypto"));
|
|
|
48
48
|
const ioc_db_js_1 = require("./ioc-db.js");
|
|
49
49
|
const patterns_js_1 = require("./patterns.js");
|
|
50
50
|
// ββ Constants βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
51
|
-
exports.VERSION = '
|
|
51
|
+
exports.VERSION = '4.0.1';
|
|
52
52
|
const THRESHOLDS_MAP = {
|
|
53
53
|
normal: { suspicious: 30, malicious: 80 },
|
|
54
54
|
strict: { suspicious: 20, malicious: 60 },
|
|
@@ -1044,6 +1044,72 @@ class GuardScanner {
|
|
|
1044
1044
|
}],
|
|
1045
1045
|
};
|
|
1046
1046
|
}
|
|
1047
|
+
toHTML() {
|
|
1048
|
+
const report = this.toJSON();
|
|
1049
|
+
const ts = new Date().toISOString().replace('T', ' ').slice(0, 19) + ' UTC';
|
|
1050
|
+
const severityColor = {
|
|
1051
|
+
CRITICAL: '#ff4444', HIGH: '#ff8800', MEDIUM: '#ffcc00', LOW: '#aaaaaa',
|
|
1052
|
+
};
|
|
1053
|
+
const verdictColor = {
|
|
1054
|
+
MALICIOUS: '#ff4444', SUSPICIOUS: '#ffcc00', 'LOW RISK': '#44cc88', CLEAN: '#44cc88',
|
|
1055
|
+
};
|
|
1056
|
+
const rows = report.findings.map(sr => {
|
|
1057
|
+
const color = verdictColor[sr.verdict] || '#aaaaaa';
|
|
1058
|
+
const findingRows = sr.findings.map(f => {
|
|
1059
|
+
const c = severityColor[f.severity] || '#aaaaaa';
|
|
1060
|
+
const loc = f.file ? `${f.file}${f.line ? ':' + f.line : ''}` : 'β';
|
|
1061
|
+
const sample = f.sample ? `<code>${f.sample.replace(/</g, '<')}</code>` : 'β';
|
|
1062
|
+
return `<tr><td style="color:${c};font-weight:bold">${f.severity}</td><td>${f.id}</td><td>${f.desc}</td><td>${loc}</td><td>${sample}</td></tr>`;
|
|
1063
|
+
}).join('');
|
|
1064
|
+
const badge = `<span style="background:${color};color:#000;padding:2px 8px;border-radius:4px;font-weight:bold;font-size:0.85em">${sr.verdict}</span>`;
|
|
1065
|
+
return `<tr><td colspan="5" style="background:#1a1a2e;padding:8px 12px;font-weight:bold">
|
|
1066
|
+
π‘οΈ ${sr.skill} β ${badge} (risk: ${sr.risk})</td></tr>${findingRows}`;
|
|
1067
|
+
}).join('');
|
|
1068
|
+
const total = report.stats.scanned;
|
|
1069
|
+
const safe = report.stats.clean + report.stats.low;
|
|
1070
|
+
const safeRate = total ? Math.round(safe / total * 100) : 0;
|
|
1071
|
+
return `<!DOCTYPE html>
|
|
1072
|
+
<html lang="en">
|
|
1073
|
+
<head>
|
|
1074
|
+
<meta charset="UTF-8">
|
|
1075
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
1076
|
+
<title>guard-scanner v${exports.VERSION} Report</title>
|
|
1077
|
+
<style>
|
|
1078
|
+
body { font-family: 'Segoe UI', system-ui, sans-serif; background: #0d0d1a; color: #e0e0e0; margin: 0; padding: 24px; }
|
|
1079
|
+
h1 { color: #7ec8e3; margin: 0 0 4px; }
|
|
1080
|
+
.meta { color: #888; font-size: 0.85em; margin-bottom: 24px; }
|
|
1081
|
+
.stats { display: flex; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
|
|
1082
|
+
.stat { background: #1a1a2e; border: 1px solid #333; border-radius: 8px; padding: 12px 20px; text-align: center; min-width: 80px; }
|
|
1083
|
+
.stat-label { font-size: 0.75em; color: #888; margin-bottom: 4px; }
|
|
1084
|
+
.stat-val { font-size: 1.8em; font-weight: bold; }
|
|
1085
|
+
table { width: 100%; border-collapse: collapse; margin-top: 8px; }
|
|
1086
|
+
th { background: #1a1a2e; padding: 8px 12px; text-align: left; font-size: 0.85em; color: #888; border-bottom: 1px solid #333; }
|
|
1087
|
+
td { padding: 6px 12px; border-bottom: 1px solid #222; font-size: 0.85em; vertical-align: top; }
|
|
1088
|
+
tr:hover td { background: #13132a; }
|
|
1089
|
+
code { background: #1e1e3a; padding: 1px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em; word-break: break-all; }
|
|
1090
|
+
.clean { color: #44cc88; font-weight: bold; }
|
|
1091
|
+
.footer { margin-top: 32px; color: #555; font-size: 0.8em; }
|
|
1092
|
+
</style>
|
|
1093
|
+
</head>
|
|
1094
|
+
<body>
|
|
1095
|
+
<h1>π‘οΈ guard-scanner v${exports.VERSION}</h1>
|
|
1096
|
+
<div class="meta">Generated: ${ts} | Mode: ${report.mode} | Thresholds: suspiciousβ₯${report.thresholds.suspicious}, maliciousβ₯${report.thresholds.malicious}</div>
|
|
1097
|
+
<div class="stats">
|
|
1098
|
+
<div class="stat"><div class="stat-label">Scanned</div><div class="stat-val">${report.stats.scanned}</div></div>
|
|
1099
|
+
<div class="stat"><div class="stat-label">Clean</div><div class="stat-val" style="color:#44cc88">${report.stats.clean}</div></div>
|
|
1100
|
+
<div class="stat"><div class="stat-label">Low Risk</div><div class="stat-val" style="color:#44cc88">${report.stats.low}</div></div>
|
|
1101
|
+
<div class="stat"><div class="stat-label">Suspicious</div><div class="stat-val" style="color:#ffcc00">${report.stats.suspicious}</div></div>
|
|
1102
|
+
<div class="stat"><div class="stat-label">Malicious</div><div class="stat-val" style="color:#ff4444">${report.stats.malicious}</div></div>
|
|
1103
|
+
<div class="stat"><div class="stat-label">Safety Rate</div><div class="stat-val" style="color:${safeRate >= 80 ? '#44cc88' : '#ff8800'}">${safeRate}%</div></div>
|
|
1104
|
+
</div>
|
|
1105
|
+
${report.findings.length === 0 ? '<p class="clean">β
All clear β no threats detected.</p>' : `
|
|
1106
|
+
<table>
|
|
1107
|
+
<thead><tr><th>Severity</th><th>Pattern ID</th><th>Description</th><th>Location</th><th>Sample</th></tr></thead>
|
|
1108
|
+
<tbody>${rows}</tbody>
|
|
1109
|
+
</table>`}
|
|
1110
|
+
<div class="footer">guard-scanner v${exports.VERSION} | IoC DB: ${report.iocVersion} | Signatures: ${report.signaturesVersion} | <a href="https://github.com/koatora20/guard-scanner" style="color:#7ec8e3">GitHub</a></div>
|
|
1111
|
+
</body></html>`;
|
|
1112
|
+
}
|
|
1047
1113
|
}
|
|
1048
1114
|
exports.GuardScanner = GuardScanner;
|
|
1049
1115
|
//# sourceMappingURL=scanner.js.map
|
package/dist/scanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../ts-src/scanner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../ts-src/scanner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "guard-scanner",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "Agent security scanner + runtime guard β 210+ static patterns (22 categories), 26 runtime checks (5 layers), 0.016ms/scan, before_tool_call hook, CLI, SARIF. OpenClaw-compatible plugin.",
|
|
5
5
|
"openclaw.extensions": "./openclaw.plugin.json",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -56,4 +56,4 @@
|
|
|
56
56
|
"@types/node": "^22.0.0",
|
|
57
57
|
"typescript": "^5.7.0"
|
|
58
58
|
}
|
|
59
|
-
}
|
|
59
|
+
}
|
package/ts-src/cli.ts
CHANGED
|
@@ -16,36 +16,48 @@ const args = process.argv.slice(2);
|
|
|
16
16
|
|
|
17
17
|
if (args.includes('--help') || args.includes('-h')) {
|
|
18
18
|
console.log(`
|
|
19
|
-
π‘οΈ guard-scanner v${VERSION} β Agent Skill Security Scanner
|
|
19
|
+
π‘οΈ guard-scanner v${VERSION} β Agent Skill Security Scanner
|
|
20
20
|
|
|
21
21
|
Usage: guard-scanner [scan-dir] [options]
|
|
22
|
+
guard-scanner install-check <skill-path> [--strict] [--json] [--verbose]
|
|
22
23
|
|
|
23
24
|
Options:
|
|
24
25
|
--verbose, -v Detailed findings with categories and samples
|
|
25
|
-
--json Write JSON report to
|
|
26
|
-
--sarif Write SARIF report to
|
|
27
|
-
--
|
|
26
|
+
--json Write JSON report to guard-scanner-report.json
|
|
27
|
+
--sarif Write SARIF 2.1.0 report to guard-scanner.sarif
|
|
28
|
+
--html Write HTML dashboard to guard-scanner-report.html
|
|
29
|
+
--format json|sarif Print JSON or SARIF to stdout (pipeable)
|
|
28
30
|
--quiet Suppress all text output (use with --format for clean pipes)
|
|
29
31
|
--self-exclude Skip scanning the guard-scanner skill itself
|
|
30
|
-
--strict Lower detection thresholds (
|
|
32
|
+
--strict Lower detection thresholds (suspicious: 20, malicious: 60)
|
|
31
33
|
--summary-only Only print the summary table
|
|
32
34
|
--check-deps Scan package.json for dependency chain risks
|
|
33
35
|
--rules <file> Load custom rules from JSON file
|
|
34
|
-
--plugin <file> Load plugin module
|
|
36
|
+
--plugin <file> Load plugin module (repeatable)
|
|
35
37
|
--fail-on-findings Exit code 1 if any findings (CI/CD)
|
|
36
38
|
--help, -h Show this help
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
Exit codes:
|
|
41
|
+
0 No malicious skills
|
|
42
|
+
1 Malicious skill(s) detected, or --fail-on-findings with any findings
|
|
43
|
+
2 Invalid scan directory
|
|
44
|
+
|
|
45
|
+
New in v4.0.0:
|
|
46
|
+
β’ Runtime Guard module (src/runtime-guard.js) + OpenClaw plugin (hooks/guard-scanner/plugin.ts)
|
|
47
|
+
β’ OWASP Agentic Security Initiative ASI01-10 verified (90% coverage)
|
|
48
|
+
β’ 5-layer defense: Threat / Trust / Safety Judge / Brain / Trust Exploitation
|
|
49
|
+
β’ 26 runtime checks (before_tool_call hook)
|
|
50
|
+
|
|
51
|
+
New in v3.2.0:
|
|
52
|
+
β’ --format json|sarif (stdout, CI/CD pipeable)
|
|
53
|
+
β’ --quiet (suppress terminal output)
|
|
44
54
|
|
|
45
55
|
Examples:
|
|
46
56
|
guard-scanner ./skills/ --verbose --self-exclude
|
|
47
|
-
guard-scanner ./skills/ --strict --json --sarif --check-deps
|
|
57
|
+
guard-scanner ./skills/ --strict --json --sarif --html --check-deps
|
|
58
|
+
guard-scanner ./skills/ --format json --quiet | jq '.stats'
|
|
48
59
|
guard-scanner ./skills/ --fail-on-findings
|
|
60
|
+
guard-scanner install-check ./my-skill/ --strict --verbose
|
|
49
61
|
`);
|
|
50
62
|
process.exit(0);
|
|
51
63
|
}
|
|
@@ -127,6 +139,8 @@ const checkDeps = args.includes('--check-deps');
|
|
|
127
139
|
const failOnFindings = args.includes('--fail-on-findings');
|
|
128
140
|
const quietMode = args.includes('--quiet');
|
|
129
141
|
|
|
142
|
+
const htmlOutput = args.includes('--html');
|
|
143
|
+
|
|
130
144
|
// --format json|sarif β stdout output (v3.2.0)
|
|
131
145
|
const formatIdx = args.indexOf('--format');
|
|
132
146
|
const formatValue = formatIdx >= 0 ? args[formatIdx + 1] : undefined;
|
|
@@ -168,6 +182,13 @@ if (jsonOutput) {
|
|
|
168
182
|
if (!quietMode && !formatValue) console.log(`\nπ JSON report: ${outPath}`);
|
|
169
183
|
}
|
|
170
184
|
|
|
185
|
+
if (htmlOutput) {
|
|
186
|
+
const html = scanner.toHTML();
|
|
187
|
+
const outPath = path.join(scanDir, 'guard-scanner-report.html');
|
|
188
|
+
fs.writeFileSync(outPath, html);
|
|
189
|
+
if (!quietMode && !formatValue) console.log(`\nπ HTML report: ${outPath}`);
|
|
190
|
+
}
|
|
191
|
+
|
|
171
192
|
if (sarifOutput) {
|
|
172
193
|
const outPath = path.join(scanDir, 'guard-scanner.sarif');
|
|
173
194
|
fs.writeFileSync(outPath, JSON.stringify(scanner.toSARIF(scanDir), null, 2));
|
package/ts-src/scanner.ts
CHANGED
|
@@ -23,7 +23,7 @@ import { PATTERNS } from './patterns.js';
|
|
|
23
23
|
|
|
24
24
|
// ββ Constants βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
25
25
|
|
|
26
|
-
export const VERSION = '
|
|
26
|
+
export const VERSION = '4.0.1';
|
|
27
27
|
|
|
28
28
|
const THRESHOLDS_MAP: Record<string, Thresholds> = {
|
|
29
29
|
normal: { suspicious: 30, malicious: 80 },
|
|
@@ -1008,4 +1008,73 @@ export class GuardScanner {
|
|
|
1008
1008
|
}],
|
|
1009
1009
|
};
|
|
1010
1010
|
}
|
|
1011
|
+
toHTML(): string {
|
|
1012
|
+
const report = this.toJSON();
|
|
1013
|
+
const ts = new Date().toISOString().replace('T', ' ').slice(0, 19) + ' UTC';
|
|
1014
|
+
const severityColor: Record<string, string> = {
|
|
1015
|
+
CRITICAL: '#ff4444', HIGH: '#ff8800', MEDIUM: '#ffcc00', LOW: '#aaaaaa',
|
|
1016
|
+
};
|
|
1017
|
+
const verdictColor: Record<string, string> = {
|
|
1018
|
+
MALICIOUS: '#ff4444', SUSPICIOUS: '#ffcc00', 'LOW RISK': '#44cc88', CLEAN: '#44cc88',
|
|
1019
|
+
};
|
|
1020
|
+
|
|
1021
|
+
const rows = report.findings.map(sr => {
|
|
1022
|
+
const color = verdictColor[sr.verdict] || '#aaaaaa';
|
|
1023
|
+
const findingRows = sr.findings.map(f => {
|
|
1024
|
+
const c = severityColor[f.severity] || '#aaaaaa';
|
|
1025
|
+
const loc = f.file ? `${f.file}${f.line ? ':' + f.line : ''}` : 'β';
|
|
1026
|
+
const sample = f.sample ? `<code>${f.sample.replace(/</g, '<')}</code>` : 'β';
|
|
1027
|
+
return `<tr><td style="color:${c};font-weight:bold">${f.severity}</td><td>${f.id}</td><td>${f.desc}</td><td>${loc}</td><td>${sample}</td></tr>`;
|
|
1028
|
+
}).join('');
|
|
1029
|
+
const badge = `<span style="background:${color};color:#000;padding:2px 8px;border-radius:4px;font-weight:bold;font-size:0.85em">${sr.verdict}</span>`;
|
|
1030
|
+
return `<tr><td colspan="5" style="background:#1a1a2e;padding:8px 12px;font-weight:bold">
|
|
1031
|
+
π‘οΈ ${sr.skill} β ${badge} (risk: ${sr.risk})</td></tr>${findingRows}`;
|
|
1032
|
+
}).join('');
|
|
1033
|
+
|
|
1034
|
+
const total = report.stats.scanned;
|
|
1035
|
+
const safe = report.stats.clean + report.stats.low;
|
|
1036
|
+
const safeRate = total ? Math.round(safe / total * 100) : 0;
|
|
1037
|
+
|
|
1038
|
+
return `<!DOCTYPE html>
|
|
1039
|
+
<html lang="en">
|
|
1040
|
+
<head>
|
|
1041
|
+
<meta charset="UTF-8">
|
|
1042
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
1043
|
+
<title>guard-scanner v${VERSION} Report</title>
|
|
1044
|
+
<style>
|
|
1045
|
+
body { font-family: 'Segoe UI', system-ui, sans-serif; background: #0d0d1a; color: #e0e0e0; margin: 0; padding: 24px; }
|
|
1046
|
+
h1 { color: #7ec8e3; margin: 0 0 4px; }
|
|
1047
|
+
.meta { color: #888; font-size: 0.85em; margin-bottom: 24px; }
|
|
1048
|
+
.stats { display: flex; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
|
|
1049
|
+
.stat { background: #1a1a2e; border: 1px solid #333; border-radius: 8px; padding: 12px 20px; text-align: center; min-width: 80px; }
|
|
1050
|
+
.stat-label { font-size: 0.75em; color: #888; margin-bottom: 4px; }
|
|
1051
|
+
.stat-val { font-size: 1.8em; font-weight: bold; }
|
|
1052
|
+
table { width: 100%; border-collapse: collapse; margin-top: 8px; }
|
|
1053
|
+
th { background: #1a1a2e; padding: 8px 12px; text-align: left; font-size: 0.85em; color: #888; border-bottom: 1px solid #333; }
|
|
1054
|
+
td { padding: 6px 12px; border-bottom: 1px solid #222; font-size: 0.85em; vertical-align: top; }
|
|
1055
|
+
tr:hover td { background: #13132a; }
|
|
1056
|
+
code { background: #1e1e3a; padding: 1px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em; word-break: break-all; }
|
|
1057
|
+
.clean { color: #44cc88; font-weight: bold; }
|
|
1058
|
+
.footer { margin-top: 32px; color: #555; font-size: 0.8em; }
|
|
1059
|
+
</style>
|
|
1060
|
+
</head>
|
|
1061
|
+
<body>
|
|
1062
|
+
<h1>π‘οΈ guard-scanner v${VERSION}</h1>
|
|
1063
|
+
<div class="meta">Generated: ${ts} | Mode: ${report.mode} | Thresholds: suspiciousβ₯${report.thresholds.suspicious}, maliciousβ₯${report.thresholds.malicious}</div>
|
|
1064
|
+
<div class="stats">
|
|
1065
|
+
<div class="stat"><div class="stat-label">Scanned</div><div class="stat-val">${report.stats.scanned}</div></div>
|
|
1066
|
+
<div class="stat"><div class="stat-label">Clean</div><div class="stat-val" style="color:#44cc88">${report.stats.clean}</div></div>
|
|
1067
|
+
<div class="stat"><div class="stat-label">Low Risk</div><div class="stat-val" style="color:#44cc88">${report.stats.low}</div></div>
|
|
1068
|
+
<div class="stat"><div class="stat-label">Suspicious</div><div class="stat-val" style="color:#ffcc00">${report.stats.suspicious}</div></div>
|
|
1069
|
+
<div class="stat"><div class="stat-label">Malicious</div><div class="stat-val" style="color:#ff4444">${report.stats.malicious}</div></div>
|
|
1070
|
+
<div class="stat"><div class="stat-label">Safety Rate</div><div class="stat-val" style="color:${safeRate >= 80 ? '#44cc88' : '#ff8800'}">${safeRate}%</div></div>
|
|
1071
|
+
</div>
|
|
1072
|
+
${report.findings.length === 0 ? '<p class="clean">β
All clear β no threats detected.</p>' : `
|
|
1073
|
+
<table>
|
|
1074
|
+
<thead><tr><th>Severity</th><th>Pattern ID</th><th>Description</th><th>Location</th><th>Sample</th></tr></thead>
|
|
1075
|
+
<tbody>${rows}</tbody>
|
|
1076
|
+
</table>`}
|
|
1077
|
+
<div class="footer">guard-scanner v${VERSION} | IoC DB: ${report.iocVersion} | Signatures: ${report.signaturesVersion} | <a href="https://github.com/koatora20/guard-scanner" style="color:#7ec8e3">GitHub</a></div>
|
|
1078
|
+
</body></html>`;
|
|
1079
|
+
}
|
|
1011
1080
|
}
|