@guava-parity/guard-scanner 13.0.0 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +170 -215
- package/README_ja.md +252 -0
- package/SECURITY.md +12 -4
- package/SKILL.md +148 -57
- package/dist/cli.cjs +5997 -0
- package/dist/cli.d.mts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.mjs +6003 -0
- package/dist/index.cjs +4825 -0
- package/dist/index.d.mts +17 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.mjs +4798 -0
- package/dist/mcp-server.cjs +4756 -0
- package/dist/mcp-server.d.mts +1 -0
- package/dist/mcp-server.d.ts +1 -0
- package/dist/mcp-server.mjs +4767 -0
- package/dist/openclaw-plugin.cjs +4863 -0
- package/dist/openclaw-plugin.d.mts +11 -0
- package/dist/openclaw-plugin.d.ts +11 -0
- package/dist/openclaw-plugin.mjs +4854 -0
- package/dist/types.cjs +18 -0
- package/dist/types.d.mts +215 -0
- package/dist/types.d.ts +215 -0
- package/dist/types.mjs +1 -0
- package/docs/EVIDENCE_DRIVEN.md +182 -0
- package/docs/banner.png +0 -0
- package/docs/data/benchmark-ledger.json +1428 -0
- package/docs/data/corpus-metrics.json +11 -0
- package/docs/data/fp-ledger.json +18 -0
- package/docs/data/latest.json +25837 -2481
- package/docs/data/quality-contract.json +36 -0
- package/docs/generated/npm-audit-20260312.json +96 -0
- package/docs/generated/openclaw-upstream-status.json +25 -0
- package/docs/glossary.md +46 -0
- package/docs/index.html +1085 -496
- package/docs/logo.png +0 -0
- package/docs/openclaw-compatibility-audit.md +45 -0
- package/docs/openclaw-continuous-compatibility-plan.md +37 -0
- package/docs/rules/a2a-contagion.md +68 -0
- package/docs/rules/advanced-exfil.md +52 -0
- package/docs/rules/agent-protocol.md +108 -0
- package/docs/rules/api-abuse.md +68 -0
- package/docs/rules/autonomous-risk.md +92 -0
- package/docs/rules/config-impact.md +132 -0
- package/docs/rules/credential-handling.md +100 -0
- package/docs/rules/cve-patterns.md +332 -0
- package/docs/rules/data-exposure.md +84 -0
- package/docs/rules/exfiltration.md +36 -0
- package/docs/rules/financial-access.md +84 -0
- package/docs/rules/identity-hijack.md +140 -0
- package/docs/rules/inference-manipulation.md +60 -0
- package/docs/rules/leaky-skills.md +52 -0
- package/docs/rules/malicious-code.md +108 -0
- package/docs/rules/mcp-security.md +148 -0
- package/docs/rules/memory-poisoning.md +84 -0
- package/docs/rules/model-poisoning.md +44 -0
- package/docs/rules/obfuscation.md +60 -0
- package/docs/rules/persistence.md +108 -0
- package/docs/rules/pii-exposure.md +116 -0
- package/docs/rules/prompt-injection.md +148 -0
- package/docs/rules/prompt-worm.md +44 -0
- package/docs/rules/safeguard-bypass.md +44 -0
- package/docs/rules/sandbox-escape.md +100 -0
- package/docs/rules/secret-detection.md +44 -0
- package/docs/rules/supply-chain-v2.md +92 -0
- package/docs/rules/suspicious-download.md +60 -0
- package/docs/rules/trust-boundary.md +76 -0
- package/docs/rules/trust-exploitation.md +92 -0
- package/docs/rules/unverifiable-deps.md +84 -0
- package/docs/rules/vdb-injection.md +84 -0
- package/docs/security-vulnerability-report-20260312.md +53 -0
- package/docs/spec/PRD_V2_ARCHITECTURE.md +55 -0
- package/docs/spec/capabilities.json +174 -0
- package/docs/spec/finding.schema.json +104 -0
- package/docs/spec/integration-manifest.md +39 -0
- package/docs/spec/plugin-trust.json +11 -0
- package/docs/spec/sbom.json +33 -0
- package/docs/threat-model.md +65 -0
- package/docs/v13-architecture-manifest.md +55 -0
- package/hooks/context.ts +306 -0
- package/hooks/guard-scanner/plugin.ts +24 -1
- package/openclaw-plugin.mts +107 -0
- package/openclaw.plugin.json +30 -53
- package/package.json +66 -13
- package/src/asset-auditor.js +0 -508
- package/src/ci-reporter.js +0 -135
- package/src/cli.js +0 -294
- package/src/html-template.js +0 -239
- package/src/ioc-db.js +0 -54
- package/src/mcp-server.js +0 -702
- package/src/patterns.js +0 -611
- package/src/quarantine.js +0 -41
- package/src/runtime-guard.js +0 -346
- package/src/scanner.js +0 -1157
- package/src/vt-client.js +0 -202
- package/src/watcher.js +0 -170
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Threat Category: supply-chain-v2
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `supply-chain-v2` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `SUPPLY_TYPOSQUAT_NPM`
|
|
6
|
+
- **Severity**: HIGH
|
|
7
|
+
- **Description**: Supply chain: NPM typosquatting of popular packages
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `SUPPLY_STAR_VERSION`
|
|
14
|
+
- **Severity**: HIGH
|
|
15
|
+
- **Description**: Supply chain: wildcard/latest version in package.json (unpinned deps)
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `SUPPLY_POSTINSTALL_RCE`
|
|
22
|
+
- **Severity**: CRITICAL
|
|
23
|
+
- **Description**: Supply chain: lifecycle script with shell execution
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `SUPPLY_GIT_DEPENDENCY`
|
|
30
|
+
- **Severity**: MEDIUM
|
|
31
|
+
- **Description**: Supply chain: git-based dependency (bypasses registry vetting)
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `SUPPLY_LOCKFILE_MISMATCH`
|
|
38
|
+
- **Severity**: LOW
|
|
39
|
+
- **Description**: Supply chain: lockfile integrity hash (verify not tampered)
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `SUPPLY_NODE_PRELOAD`
|
|
46
|
+
- **Severity**: HIGH
|
|
47
|
+
- **Description**: Supply chain: Node.js preload injection via --require flag
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
53
|
+
## Rule: `SUPPLY_PIP_INDEX`
|
|
54
|
+
- **Severity**: HIGH
|
|
55
|
+
- **Description**: Supply chain: pip installing from non-standard index
|
|
56
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
57
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
58
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
59
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
60
|
+
|
|
61
|
+
## Rule: `SUPPLY_CARGO_PATCH`
|
|
62
|
+
- **Severity**: MEDIUM
|
|
63
|
+
- **Description**: Supply chain: Cargo [patch] section pointing to non-official repo
|
|
64
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
65
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
66
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
67
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
68
|
+
|
|
69
|
+
## Rule: `SUPPLY_EXTENSION_SIDELOAD`
|
|
70
|
+
- **Severity**: HIGH
|
|
71
|
+
- **Description**: Supply chain: IDE extension sideloading (VSIX/unpacked)
|
|
72
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
73
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
74
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
75
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
76
|
+
|
|
77
|
+
## Rule: `SUPPLY_HUGGINGFACE_PICKLE`
|
|
78
|
+
- **Severity**: CRITICAL
|
|
79
|
+
- **Description**: Supply chain: HuggingFace model loading with trust_remote_code or pickle deserialization
|
|
80
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
81
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
82
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
83
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
84
|
+
|
|
85
|
+
## Rule: `CLAWHAVOC_CRYPTO_THEFT`
|
|
86
|
+
- **Severity**: CRITICAL
|
|
87
|
+
- **Description**: ClawHavoc malware crypto key exfiltration
|
|
88
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
89
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
90
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
91
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
92
|
+
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Threat Category: suspicious-download
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `suspicious-download` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `DL_CURL_BASH`
|
|
6
|
+
- **Severity**: CRITICAL
|
|
7
|
+
- **Description**: Pipe download to shell
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `DL_EXE`
|
|
14
|
+
- **Severity**: CRITICAL
|
|
15
|
+
- **Description**: Download executable/archive
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `DL_GITHUB_RELEASE`
|
|
22
|
+
- **Severity**: MEDIUM
|
|
23
|
+
- **Description**: GitHub release download
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `DL_PASSWORD_ZIP`
|
|
30
|
+
- **Severity**: CRITICAL
|
|
31
|
+
- **Description**: Password-protected archive (evasion technique)
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `PREREQ_DOWNLOAD`
|
|
38
|
+
- **Severity**: CRITICAL
|
|
39
|
+
- **Description**: Download in prerequisites
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `PREREQ_PASTE`
|
|
46
|
+
- **Severity**: HIGH
|
|
47
|
+
- **Description**: Terminal paste instruction
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
53
|
+
## Rule: `SLOPSQUATTING_INSTALL`
|
|
54
|
+
- **Severity**: HIGH
|
|
55
|
+
- **Description**: Slopsquatting: AI-themed package install (potential hallucinated package)
|
|
56
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
57
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
58
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
59
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
60
|
+
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Threat Category: trust-boundary
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `trust-boundary` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `TRUST_CALENDAR_EXEC`
|
|
6
|
+
- **Severity**: CRITICAL
|
|
7
|
+
- **Description**: Trust boundary: calendar → code execution
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `TRUST_EMAIL_EXEC`
|
|
14
|
+
- **Severity**: CRITICAL
|
|
15
|
+
- **Description**: Trust boundary: email → code execution
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `TRUST_WEB_EXEC`
|
|
22
|
+
- **Severity**: HIGH
|
|
23
|
+
- **Description**: Trust boundary: web content → code execution
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `TRUST_NOSANDBOX`
|
|
30
|
+
- **Severity**: HIGH
|
|
31
|
+
- **Description**: Trust boundary: sandbox disabled
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `FORCEDLEAK_SALESFORCE`
|
|
38
|
+
- **Severity**: CRITICAL
|
|
39
|
+
- **Description**: ForcedLeak: Salesforce Agentforce CRM exfiltration via IDPI
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `TRUST_CALENDAR_AI`
|
|
46
|
+
- **Severity**: CRITICAL
|
|
47
|
+
- **Description**: AI Browser trust boundary: calendar invite → code/data action (Zenity Labs)
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
53
|
+
## Rule: `TRUST_AGENTIC_BROWSER_PI`
|
|
54
|
+
- **Severity**: CRITICAL
|
|
55
|
+
- **Description**: PleaseFix: Agentic browser navigate → action chain (Zenity Labs zero-click)
|
|
56
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
57
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
58
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
59
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
60
|
+
|
|
61
|
+
## Rule: `AGENTIC_BROWSER_EXFIL_CHAIN`
|
|
62
|
+
- **Severity**: CRITICAL
|
|
63
|
+
- **Description**: Agentic browser exfiltration: navigate → data leak (PleaseFix/PerplexedBrowser)
|
|
64
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
65
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
66
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
67
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
68
|
+
|
|
69
|
+
## Rule: `SURVIVABILITY_CERT_GAP`
|
|
70
|
+
- **Severity**: HIGH
|
|
71
|
+
- **Description**: Survivability certification gap: agent deployed without adversarial safety certification
|
|
72
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
73
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
74
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
75
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
76
|
+
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Threat Category: trust-exploitation
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `trust-exploitation` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `TRUST_AUTHORITY_CLAIM`
|
|
6
|
+
- **Severity**: HIGH
|
|
7
|
+
- **Description**: Trust: authority role claim to override safety
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `TRUST_CREATOR_CLAIM`
|
|
14
|
+
- **Severity**: CRITICAL
|
|
15
|
+
- **Description**: Trust: creator impersonation to disable safety
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `TRUST_AUDIT_EXCUSE`
|
|
22
|
+
- **Severity**: CRITICAL
|
|
23
|
+
- **Description**: Trust: fake audit excuse for safety bypass
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `TRUST_PARTNER_EXPLOIT`
|
|
30
|
+
- **Severity**: CRITICAL
|
|
31
|
+
- **Description**: Trust exploitation: weaponizing partnership trust
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `TRUST_UNCONDITIONAL`
|
|
38
|
+
- **Severity**: HIGH
|
|
39
|
+
- **Description**: Trust exploitation: unconditional trust demand
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `TRUST_COMPLY_DEMAND`
|
|
46
|
+
- **Severity**: HIGH
|
|
47
|
+
- **Description**: Trust: compliance demand without question
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
53
|
+
## Rule: `CVE_2025_12420_SERVICENOW`
|
|
54
|
+
- **Severity**: CRITICAL
|
|
55
|
+
- **Description**: CVE-2025-12420: ServiceNow Now Assist unauthenticated impersonation via IDPI
|
|
56
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
57
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
58
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
59
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
60
|
+
|
|
61
|
+
## Rule: `AUTO_REFINE_WALLET_TAMPER`
|
|
62
|
+
- **Severity**: HIGH
|
|
63
|
+
- **Description**: Agent Wallet/Funding Destination Tampering
|
|
64
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
65
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
66
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
67
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
68
|
+
|
|
69
|
+
## Rule: `MOLTBOOK_CRYPTO_PUMP`
|
|
70
|
+
- **Severity**: CRITICAL
|
|
71
|
+
- **Description**: Moltbook crypto pump: AI-to-AI coordinated market manipulation scheme
|
|
72
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
73
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
74
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
75
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
76
|
+
|
|
77
|
+
## Rule: `DISTILLATION_EXTRACTION`
|
|
78
|
+
- **Severity**: HIGH
|
|
79
|
+
- **Description**: Model distillation/extraction attack: systematic capability theft
|
|
80
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
81
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
82
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
83
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
84
|
+
|
|
85
|
+
## Rule: `CVE_CODEX_SECURITY_AGENT`
|
|
86
|
+
- **Severity**: CRITICAL
|
|
87
|
+
- **Description**: OpenAI Codex Security agent impersonation: AI agent PR/commit injection pretending to be official security tool
|
|
88
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
89
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
90
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
91
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
92
|
+
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Threat Category: unverifiable-deps
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `unverifiable-deps` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `DEP_REMOTE_IMPORT`
|
|
6
|
+
- **Severity**: HIGH
|
|
7
|
+
- **Description**: Remote dynamic import
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `DEP_REMOTE_SCRIPT`
|
|
14
|
+
- **Severity**: MEDIUM
|
|
15
|
+
- **Description**: Remote script loading
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `DEPS_PHANTOM_IMPORT`
|
|
22
|
+
- **Severity**: LOW
|
|
23
|
+
- **Description**: Dependency: unscoped package import (verify existence)
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `DEPS_HTTP_IMPORT`
|
|
30
|
+
- **Severity**: CRITICAL
|
|
31
|
+
- **Description**: Dependency: HTTP URL import (unverifiable, MITM risk)
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `DEPS_DYNAMIC_REQUIRE`
|
|
38
|
+
- **Severity**: HIGH
|
|
39
|
+
- **Description**: Dependency: dynamic require with non-literal module spec
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `DEPS_CDN_UNPINNED`
|
|
46
|
+
- **Severity**: HIGH
|
|
47
|
+
- **Description**: Dependency: CDN import without pinned version
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
53
|
+
## Rule: `DEPS_WASM_UNSIGNED`
|
|
54
|
+
- **Severity**: HIGH
|
|
55
|
+
- **Description**: Dependency: unsigned WASM module loading
|
|
56
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
57
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
58
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
59
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
60
|
+
|
|
61
|
+
## Rule: `DEPS_SUBRESOURCE_NOINT`
|
|
62
|
+
- **Severity**: MEDIUM
|
|
63
|
+
- **Description**: Dependency: external script without subresource integrity
|
|
64
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
65
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
66
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
67
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
68
|
+
|
|
69
|
+
## Rule: `DEPS_GO_REPLACE`
|
|
70
|
+
- **Severity**: MEDIUM
|
|
71
|
+
- **Description**: Dependency: Go module replace directive to non-standard path
|
|
72
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
73
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
74
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
75
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
76
|
+
|
|
77
|
+
## Rule: `DEPS_AUTO_UPDATE`
|
|
78
|
+
- **Severity**: HIGH
|
|
79
|
+
- **Description**: Dependency: auto-merge policy for dependency updates (supply chain risk)
|
|
80
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
81
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
82
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
83
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
84
|
+
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Threat Category: vdb-injection
|
|
2
|
+
|
|
3
|
+
This document provides explainability for all rules in the `vdb-injection` category.
|
|
4
|
+
|
|
5
|
+
## Rule: `VDB_NOSQL_INJECT`
|
|
6
|
+
- **Severity**: CRITICAL
|
|
7
|
+
- **Description**: Vector DB/NoSQL injection via caller input
|
|
8
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
9
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
10
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
11
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
12
|
+
|
|
13
|
+
## Rule: `VDB_EMBEDDING_INJECT`
|
|
14
|
+
- **Severity**: CRITICAL
|
|
15
|
+
- **Description**: VectorDB: embedding injection with hidden instructions
|
|
16
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
17
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
18
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
19
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
20
|
+
|
|
21
|
+
## Rule: `VDB_SIMILARITY_POISON`
|
|
22
|
+
- **Severity**: HIGH
|
|
23
|
+
- **Description**: VectorDB: similarity score manipulation via adversarial embeddings
|
|
24
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
25
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
26
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
27
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
28
|
+
|
|
29
|
+
## Rule: `VDB_METADATA_INJECT`
|
|
30
|
+
- **Severity**: CRITICAL
|
|
31
|
+
- **Description**: VectorDB: metadata field injection with system-level instructions
|
|
32
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
33
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
34
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
35
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
36
|
+
|
|
37
|
+
## Rule: `VDB_CHUNK_BOUNDARY`
|
|
38
|
+
- **Severity**: HIGH
|
|
39
|
+
- **Description**: VectorDB: chunk boundary exploitation to hide payloads
|
|
40
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
41
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
42
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
43
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
44
|
+
|
|
45
|
+
## Rule: `VDB_INDEX_CORRUPT`
|
|
46
|
+
- **Severity**: CRITICAL
|
|
47
|
+
- **Description**: VectorDB: index corruption via destructive operations
|
|
48
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
49
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
50
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
51
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
52
|
+
|
|
53
|
+
## Rule: `VDB_QUERY_INJECT`
|
|
54
|
+
- **Severity**: CRITICAL
|
|
55
|
+
- **Description**: VectorDB: NoSQL/SQL injection in vector query parameters
|
|
56
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
57
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
58
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
59
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
60
|
+
|
|
61
|
+
## Rule: `VDB_CROSS_TENANT`
|
|
62
|
+
- **Severity**: HIGH
|
|
63
|
+
- **Description**: VectorDB: cross-tenant access via namespace manipulation
|
|
64
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
65
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
66
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
67
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
68
|
+
|
|
69
|
+
## Rule: `VDB_RETRIEVAL_AMPLIFY`
|
|
70
|
+
- **Severity**: MEDIUM
|
|
71
|
+
- **Description**: VectorDB: retrieval amplification via oversized top_k
|
|
72
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
73
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
74
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
75
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
76
|
+
|
|
77
|
+
## Rule: `OPENCLAW_MEMORY_POISONING`
|
|
78
|
+
- **Severity**: CRITICAL
|
|
79
|
+
- **Description**: OpenClaw Security Monitor Memory Poisoning Evasion
|
|
80
|
+
- **Rationale**: Explains why this pattern is considered dangerous.
|
|
81
|
+
- **Exploit Precondition**: What an attacker needs to trigger this.
|
|
82
|
+
- **Likely False Positives**: Scenarios where this might trigger safely.
|
|
83
|
+
- **Remediation Hint**: How to fix or mitigate the finding.
|
|
84
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# guard-scanner Vulnerability Report
|
|
2
|
+
|
|
3
|
+
Date: 2026-03-12
|
|
4
|
+
Scope: dependency and public-surface checks after OpenClaw compatibility work
|
|
5
|
+
|
|
6
|
+
## Executive summary
|
|
7
|
+
|
|
8
|
+
Application-level compatibility checks pass, and the latest-version watchdog confirms parity between npm and GitHub Releases for `openclaw@2026.3.8`, but `npm audit --json` still reports 3 high-severity dependency findings in the dev/test dependency tree introduced through direct `openclaw@2026.3.8`.
|
|
9
|
+
|
|
10
|
+
## Measured data
|
|
11
|
+
|
|
12
|
+
- Command: `npm audit --json`
|
|
13
|
+
- Dependency totals:
|
|
14
|
+
- `prod`: 2
|
|
15
|
+
- `dev`: 741
|
|
16
|
+
- `optional`: 109
|
|
17
|
+
- `peer`: 126
|
|
18
|
+
- `total`: 742
|
|
19
|
+
- Vulnerability totals:
|
|
20
|
+
- `high`: 3
|
|
21
|
+
- `critical`: 0
|
|
22
|
+
|
|
23
|
+
## Findings
|
|
24
|
+
|
|
25
|
+
1. `openclaw` direct dev dependency
|
|
26
|
+
- Severity: High
|
|
27
|
+
- Range: `>=2026.1.29-beta.1`
|
|
28
|
+
- Evidence: `npm audit --json`
|
|
29
|
+
- Impact: current compatibility baseline depends on a package tree flagged by npm advisory propagation.
|
|
30
|
+
|
|
31
|
+
2. `@buape/carbon` transitive dependency
|
|
32
|
+
- Severity: High
|
|
33
|
+
- Effect chain: `openclaw -> @buape/carbon`
|
|
34
|
+
- Range: `<=0.0.0-beta-20260306233624 || >=0.6.0`
|
|
35
|
+
- Evidence: `npm audit --json`
|
|
36
|
+
|
|
37
|
+
3. `@hono/node-server` transitive dependency
|
|
38
|
+
- Severity: High
|
|
39
|
+
- Advisory: `GHSA-wc8c-qw6v-h7f6`
|
|
40
|
+
- CVSS: `7.5`
|
|
41
|
+
- Affected range: `<1.19.10`
|
|
42
|
+
- Evidence: `npm audit --json`
|
|
43
|
+
|
|
44
|
+
## Interpretation
|
|
45
|
+
|
|
46
|
+
- The current findings are dependency-chain issues, not a measured break in `guard-scanner` runtime behavior.
|
|
47
|
+
- Because `openclaw@2026.3.8` is pinned for compatibility validation, remediation must be coordinated with upstream package releases rather than force-downgrading to an unrelated `0.0.1` suggestion from npm audit.
|
|
48
|
+
|
|
49
|
+
## Recommended next actions
|
|
50
|
+
|
|
51
|
+
1. Track upstream OpenClaw dependency fixes before changing the pinned compatibility baseline.
|
|
52
|
+
2. Re-run `npm audit --json` after every OpenClaw baseline update.
|
|
53
|
+
3. If these dependencies become production-path dependencies later, escalate from report-only to release-blocking policy.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# PRD: Guard Scanner V2 Architecture & Policy Enforcement
|
|
2
|
+
|
|
3
|
+
## 1. Objective
|
|
4
|
+
guard-scanner を「話題性のある pattern scanner」から、「仕様が一貫し、検知能力が証明可能で、agent security pipeline に組み込める実用ツール(Security policy and analysis layer)」へと進化させる。
|
|
5
|
+
|
|
6
|
+
## 2. Product Positioning (新ポジショニング)
|
|
7
|
+
**"Security policy and analysis layer for agent skills and MCP-connected workflows."**
|
|
8
|
+
|
|
9
|
+
**[禁止表現]**
|
|
10
|
+
- ❌ The first open-source...
|
|
11
|
+
- ❌ Zero dependencies (※ `ws` 依存が存在するため事実誤認)
|
|
12
|
+
- ❌ Catches what others can't (※ ベンチマーク証明なしの過剰主張)
|
|
13
|
+
|
|
14
|
+
**[推奨表現]**
|
|
15
|
+
- ✅ Lightweight & Policy-aware
|
|
16
|
+
- ✅ OpenClaw / MCP-friendly
|
|
17
|
+
- ✅ Complementary to existing malware scanners
|
|
18
|
+
- ✅ Combines static scans with runtime guardrails
|
|
19
|
+
|
|
20
|
+
## 3. Core Initiatives
|
|
21
|
+
|
|
22
|
+
### P0: Single Source of Truth (SSOT) の確立
|
|
23
|
+
README, SKILL.md, openclaw.plugin.json, package.json に分散・矛盾している能力値(検知パターン数、カテゴリ数、依存関係)を完全に統一する。
|
|
24
|
+
- **実装**: `docs/spec/capabilities.json` を唯一の正解(Canonical Source)とする。
|
|
25
|
+
- **CI連携**: `capabilities.json` と 各ドキュメント(README等)の数字が一致しない場合は CI/CD で fail させる仕組みを構築する。
|
|
26
|
+
|
|
27
|
+
### P0: Security Claim (境界) の再定義
|
|
28
|
+
「何でも検知できる」というMarketing Claimを廃し、セキュリティバウンダリを厳密に定義する。
|
|
29
|
+
- 冒頭に **"Not a complete defense (銀の弾丸ではない)"** と明記する。
|
|
30
|
+
- 静的スキャン(Static-only)で検知できるものと、ランタイム(Runtime hook)や外部通信(VT等)が必要なものを明確に分ける。
|
|
31
|
+
|
|
32
|
+
### P1: Rule Explainability (検知根拠の透明化)
|
|
33
|
+
パターンマッチによるFalse Positive(誤検知)のトリアージコストを下げるため、全 finding に説明メタデータを付与する。
|
|
34
|
+
- 追加フィールド: `rationale` (なぜ危険か), `exploit precondition` (成立条件), `likely false-positive cases` (誤検知しやすいケース), `remediation hint` (修正案)。
|
|
35
|
+
- SARIF および JSON 出力にこれらを統合する。
|
|
36
|
+
|
|
37
|
+
### P1: Threat Model Layer (脅威モデリング)
|
|
38
|
+
単なるパターンマッチの前に、対象Skillの「権限サーフェス(Threat Model)」を生成する。
|
|
39
|
+
- ファイルシステムアクセス権、ネットワーク通信能力、クレデンシャル参照の有無などを評価し、Risk Score の算出ロジックに組み込む(Context-aware validation)。
|
|
40
|
+
|
|
41
|
+
### P1: Runtime Guard Hardening
|
|
42
|
+
`before_tool_call` フックを高度な Policy Engine へと昇華させる。
|
|
43
|
+
- `monitor` / `enforce` / `strict` モードの挙動定義を厳密に文書化し、Audit log のスキーマバージョニングを導入する。
|
|
44
|
+
|
|
45
|
+
### P2: Benchmarking (自前ベンチマークの構築)
|
|
46
|
+
競合(他社製品)との比較ではなく、自前のテストデータセット(Benign skills, Malicious skills, Indirect PI samples 等)を用意する。
|
|
47
|
+
- `precision` (適合率) と `recall` (再現率) を測定し、「パターン数」ではなく「精度」を前面に押し出す。
|
|
48
|
+
|
|
49
|
+
## 4. Ecosystem Integration Modes
|
|
50
|
+
guard-scanner の動作モードを以下の5つに整理・明文化する。
|
|
51
|
+
1. **Offline static scan** (CLIベースの静的スキャン)
|
|
52
|
+
2. **Runtime guard mode** (OpenClaw hook / 実行前ブロック)
|
|
53
|
+
3. **MCP service mode** (他エージェントからの再利用)
|
|
54
|
+
4. **Asset audit mode** (npm/GitHub レジストリ監査)
|
|
55
|
+
5. **CI mode** (Fail-on-findings / SARIF出力)
|