@upx-us/shield 0.3.16 → 0.4.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +601 -0
- package/README.md +174 -19
- package/dist/index.js +196 -13
- package/dist/src/case-monitor.d.ts +24 -0
- package/dist/src/case-monitor.js +193 -0
- package/dist/src/cli-cases.d.ts +1 -0
- package/dist/src/cli-cases.js +184 -0
- package/dist/src/config.d.ts +2 -0
- package/dist/src/config.js +2 -0
- package/dist/src/event-store.d.ts +31 -0
- package/dist/src/event-store.js +163 -0
- package/dist/src/events/exec/enrich.d.ts +1 -0
- package/dist/src/events/exec/enrich.js +74 -7
- package/dist/src/index.js +75 -0
- package/dist/src/inventory.d.ts +26 -0
- package/dist/src/inventory.js +191 -0
- package/dist/src/rpc/client.d.ts +12 -0
- package/dist/src/rpc/client.js +105 -0
- package/dist/src/rpc/handlers.d.ts +57 -0
- package/dist/src/rpc/handlers.js +141 -0
- package/dist/src/rpc/index.d.ts +10 -0
- package/dist/src/rpc/index.js +13 -0
- package/dist/src/safe-io.d.ts +2 -0
- package/dist/src/safe-io.js +78 -0
- package/dist/src/transformer.d.ts +1 -0
- package/dist/src/transformer.js +59 -20
- package/dist/src/updater.d.ts +49 -0
- package/dist/src/updater.js +477 -0
- package/openclaw.plugin.json +81 -57
- package/package.json +80 -70
- package/skills/shield/README.md +39 -0
- package/skills/shield/SKILL.md +66 -0
package/package.json
CHANGED
|
@@ -1,72 +1,82 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
2
|
+
"name": "@upx-us/shield",
|
|
3
|
+
"version": "0.4.36",
|
|
4
|
+
"description": "Security monitoring plugin for OpenClaw agents — streams enriched security events to the Shield detection platform",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"shield-bridge": "dist/src/index.js",
|
|
9
|
+
"shield-setup": "dist/src/setup.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist/index.js",
|
|
13
|
+
"dist/index.d.ts",
|
|
14
|
+
"dist/src/**/*.js",
|
|
15
|
+
"dist/src/**/*.d.ts",
|
|
16
|
+
"openclaw.plugin.json",
|
|
17
|
+
"skills/",
|
|
18
|
+
"README.md",
|
|
19
|
+
"LICENSE",
|
|
20
|
+
"CHANGELOG.md"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"prebuild": "npm run clean",
|
|
24
|
+
"build": "tsc",
|
|
25
|
+
"clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
26
|
+
"lint": "tsc --noEmit",
|
|
27
|
+
"test": "node --require tsx/cjs --test --test-reporter spec tests/**/*.test.ts tests/*.test.ts",
|
|
28
|
+
"test:watch": "node --require tsx/cjs --test --watch tests/**/*.test.ts tests/*.test.ts",
|
|
29
|
+
"test:parser": "node tests/run-parser.js",
|
|
30
|
+
"test:parser:short": "node tests/run-parser.js --short",
|
|
31
|
+
"test:parser:verbose": "node tests/run-parser.js --verbose",
|
|
32
|
+
"test:parser:help": "node tests/run-parser.js help",
|
|
33
|
+
"dev": "tsx scripts/dev-harness.ts",
|
|
34
|
+
"dev:dry": "tsx scripts/dev-harness.ts --dry-run",
|
|
35
|
+
"generate:schemas": "tsx scripts/generate-schemas.ts",
|
|
36
|
+
"package:check": "node scripts/prepublish-check.js",
|
|
37
|
+
"package:build": "npm run build",
|
|
38
|
+
"package:validate": "npm run build && npm run test && npm run package:check",
|
|
39
|
+
"package:pack": "npm pack",
|
|
40
|
+
"package:publish": "npm run package:validate && npm publish --access public",
|
|
41
|
+
"start": "node dist/src/index.js",
|
|
42
|
+
"setup": "node dist/src/setup.js",
|
|
43
|
+
"prepublishOnly": "npm run build"
|
|
44
|
+
},
|
|
45
|
+
"keywords": [
|
|
46
|
+
"agent-monitoring",
|
|
47
|
+
"ai-security",
|
|
48
|
+
"clawhub",
|
|
49
|
+
"compliance",
|
|
50
|
+
"detection",
|
|
51
|
+
"monitoring",
|
|
52
|
+
"openclaw",
|
|
53
|
+
"openclaw-plugin",
|
|
54
|
+
"openclaw-skill",
|
|
55
|
+
"security",
|
|
56
|
+
"siem"
|
|
57
|
+
],
|
|
58
|
+
"author": "UPX Security Services",
|
|
59
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
60
|
+
"publishConfig": {
|
|
61
|
+
"tag": "latest",
|
|
62
|
+
"access": "public"
|
|
63
|
+
},
|
|
64
|
+
"engines": {
|
|
65
|
+
"node": ">=20.0.0"
|
|
66
|
+
},
|
|
67
|
+
"openclaw": {
|
|
68
|
+
"extensions": [
|
|
69
|
+
"./dist/index.js"
|
|
70
|
+
]
|
|
71
|
+
},
|
|
72
|
+
"devDependencies": {
|
|
73
|
+
"@types/node": "^25.2.3",
|
|
74
|
+
"ts-json-schema-generator": "^2.5.0",
|
|
75
|
+
"tsx": "^4.21.0",
|
|
76
|
+
"typescript": "^5.9.3"
|
|
77
|
+
},
|
|
78
|
+
"homepage": "https://clawhub.ai/brunopradof/openclaw-shield-upx",
|
|
79
|
+
"clawhub": {
|
|
80
|
+
"slug": "openclaw-shield-upx"
|
|
81
|
+
}
|
|
72
82
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# OpenClaw Shield — Security Specialist
|
|
2
|
+
|
|
3
|
+
A skill that turns your OpenClaw agent into a cybersecurity specialist.
|
|
4
|
+
|
|
5
|
+
## What it does
|
|
6
|
+
|
|
7
|
+
When Shield is installed, your agent can:
|
|
8
|
+
|
|
9
|
+
- **Monitor** — check Shield health, event counts, and sync status
|
|
10
|
+
- **Inspect** — view host agent inventory and redaction vault via `shield vault show`
|
|
11
|
+
- **Interpret** — analyze security events and explain what they mean
|
|
12
|
+
- **Advise** — recommend remediation, hardening, and next steps
|
|
13
|
+
- **Triage** — assess alert severity and prioritize response
|
|
14
|
+
- **Explain** — break down attack techniques, privacy model, and detection scope
|
|
15
|
+
|
|
16
|
+
## Requirements
|
|
17
|
+
|
|
18
|
+
- [OpenClaw Shield plugin](https://www.npmjs.com/package/@upx-us/shield) installed and activated
|
|
19
|
+
- Active Shield subscription from [UPX](https://upx.com) — [start a free 30-day trial](https://www.upx.com/pt/lp/openclaw-shield-upx)
|
|
20
|
+
|
|
21
|
+
## Install
|
|
22
|
+
|
|
23
|
+
This skill is bundled with the Shield plugin. Install the plugin and the skill is available automatically:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
openclaw plugins install @upx-us/shield
|
|
27
|
+
openclaw shield activate <YOUR_KEY>
|
|
28
|
+
openclaw gateway restart
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Links
|
|
32
|
+
|
|
33
|
+
- **Plugin (npm)**: [@upx-us/shield](https://www.npmjs.com/package/@upx-us/shield)
|
|
34
|
+
- **Skill (ClawHub)**: [openclaw-shield-upx](https://clawhub.ai/brunopradof/openclaw-shield-upx)
|
|
35
|
+
- **Dashboard**: [uss.upx.com](https://uss.upx.com)
|
|
36
|
+
|
|
37
|
+
## About
|
|
38
|
+
|
|
39
|
+
Made by [UPX](https://upx.com) — cybersecurity engineering for critical environments.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openclaw-shield-upx
|
|
3
|
+
description: "Security monitoring for OpenClaw agents — check Shield health, review events, inspect vault. Use when: user asks about security status, Shield health, event logs, or redaction vault. NOT for: general OS hardening, firewall config, or network security."
|
|
4
|
+
metadata: {"openclaw": {"requires": {"config": ["plugins.entries.shield"]}, "homepage": "https://clawhub.ai/brunopradof/openclaw-shield-upx", "emoji": "🛡️"}}
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# OpenClaw Shield
|
|
8
|
+
|
|
9
|
+
Security monitoring for OpenClaw agents by [UPX](https://www.upx.com). Shield runs as a plugin inside the OpenClaw gateway, capturing agent activity and sending redacted telemetry to the UPX detection platform.
|
|
10
|
+
|
|
11
|
+
## Getting started
|
|
12
|
+
|
|
13
|
+
Shield requires the `@upx-us/shield` plugin and an active subscription.
|
|
14
|
+
|
|
15
|
+
- **Plugin (npm)**: [@upx-us/shield](https://www.npmjs.com/package/@upx-us/shield)
|
|
16
|
+
- **Subscribe / Free 30-day trial**: [upx.com/pt/lp/openclaw-shield-upx](https://www.upx.com/pt/lp/openclaw-shield-upx)
|
|
17
|
+
- **Dashboard**: [uss.upx.com](https://uss.upx.com)
|
|
18
|
+
|
|
19
|
+
## Commands
|
|
20
|
+
|
|
21
|
+
| Command | What it does |
|
|
22
|
+
|---|---|
|
|
23
|
+
| `openclaw shield status` | Plugin health, connection state, event counts, last sync |
|
|
24
|
+
| `openclaw shield flush` | Force an immediate sync to the platform |
|
|
25
|
+
| `openclaw shield activate <KEY>` | One-time activation with an Installation Key |
|
|
26
|
+
| `openclaw shield logs` | Recent events from the local buffer (last 24h) |
|
|
27
|
+
| `openclaw shield logs --last 20` | Show last N events |
|
|
28
|
+
| `openclaw shield logs --type TOOL_CALL --since 1h` | Filter by event type or time window |
|
|
29
|
+
| `openclaw shield logs --format json` | JSON output |
|
|
30
|
+
| `openclaw shield vault show` | Agent and workspace inventory (hashed IDs) |
|
|
31
|
+
| `openclaw shield vault redactions` | Redaction summary — token categories and counts |
|
|
32
|
+
| `openclaw shield cases` | List open security cases |
|
|
33
|
+
| `openclaw shield cases show <ID>` | Full case detail with events, rule, playbook |
|
|
34
|
+
| `openclaw shield cases resolve <ID>` | Resolve a case (--resolution, --root-cause, --comment) |
|
|
35
|
+
|
|
36
|
+
## When to use this skill
|
|
37
|
+
|
|
38
|
+
- "Is Shield running?" → `openclaw shield status`
|
|
39
|
+
- "What did Shield capture recently?" → `openclaw shield logs`
|
|
40
|
+
- "How many agents are on this machine?" → `openclaw shield vault show`
|
|
41
|
+
- "Force a sync now" → `openclaw shield flush`
|
|
42
|
+
- User asks about a security alert or event → interpret using your security knowledge and Shield data
|
|
43
|
+
- User asks about Shield's privacy model → all data is redacted on-device before transmission; raw values never leave the machine
|
|
44
|
+
|
|
45
|
+
## Status interpretation
|
|
46
|
+
|
|
47
|
+
After running `openclaw shield status`, check:
|
|
48
|
+
|
|
49
|
+
- **Connected** → healthy, nothing to do
|
|
50
|
+
- **Disconnected** → gateway may need a restart
|
|
51
|
+
- **High failure count** → platform connectivity issue, usually self-recovers; try `openclaw shield flush`
|
|
52
|
+
- **Rising quarantine** → possible version mismatch, suggest checking for plugin updates
|
|
53
|
+
|
|
54
|
+
## Cases
|
|
55
|
+
|
|
56
|
+
Cases are created automatically when detection rules fire. Check during heartbeats via `shield.cases_list`. If `pending_count > 0`, notify the user, then call `shield.cases_ack` to mark seen.
|
|
57
|
+
|
|
58
|
+
| RPC | Params | Purpose |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| `shield.cases_list` | `status`, `limit`, `since` | List open cases + pending notifications |
|
|
61
|
+
| `shield.case_detail` | `id` | Full case with events, rule, playbook |
|
|
62
|
+
| `shield.case_resolve` | `id`, `resolution`, `root_cause`, `comment` | Close a case |
|
|
63
|
+
| `shield.cases_ack` | `ids` | Mark cases as notified |
|
|
64
|
+
|
|
65
|
+
**Resolve values:** `true_positive`, `false_positive`, `benign`, `duplicate`
|
|
66
|
+
**Root cause values:** `user_initiated`, `misconfiguration`, `expected_behavior`, `actual_threat`, `testing`, `unknown`
|