@gendigital/sage-openclaw 0.5.3 → 0.5.4
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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gendigital/sage-openclaw",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.4",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Safety for Agents — ADR layer for OpenClaw",
|
|
7
7
|
"main": "./dist/index.cjs",
|
|
@@ -22,10 +22,8 @@
|
|
|
22
22
|
"optionalDependencies": {
|
|
23
23
|
"koffi": "^2.9.0"
|
|
24
24
|
},
|
|
25
|
-
"dependencies": {
|
|
26
|
-
"@sage/core": "workspace:*"
|
|
27
|
-
},
|
|
28
25
|
"devDependencies": {
|
|
26
|
+
"@sage/core": "workspace:*",
|
|
29
27
|
"@types/node": "^22.0.0",
|
|
30
28
|
"esbuild": "^0.25.0",
|
|
31
29
|
"typescript": "^5.9.0",
|
|
@@ -305,3 +305,40 @@
|
|
|
305
305
|
title: "Recursive deletion of critical system directory"
|
|
306
306
|
expires_at: null
|
|
307
307
|
revoked: false
|
|
308
|
+
|
|
309
|
+
# --- Deletion of .env files ---
|
|
310
|
+
- id: "CLT-CMD-027"
|
|
311
|
+
category: tool
|
|
312
|
+
severity: high
|
|
313
|
+
confidence: 0.85
|
|
314
|
+
action: require_approval
|
|
315
|
+
pattern: "\\brm\\s+(-{1,2}[\\w-]+(=\\S+)?\\s+)*(\\S+[\\\\/])?\\.env(?!\\S*\\.(example|sample|template|dist)\\b)(\\.(local|production|prod|staging|stage|development|dev|test))?\\b"
|
|
316
|
+
match_on: command
|
|
317
|
+
title: "Deletion of .env file"
|
|
318
|
+
expires_at: null
|
|
319
|
+
revoked: false
|
|
320
|
+
|
|
321
|
+
# --- Deletion of database files ---
|
|
322
|
+
- id: "CLT-CMD-028"
|
|
323
|
+
category: tool
|
|
324
|
+
severity: high
|
|
325
|
+
confidence: 0.85
|
|
326
|
+
action: require_approval
|
|
327
|
+
pattern: "\\brm\\s+(-{1,2}[\\w-]+(=\\S+)?\\s+)*\\S+\\.(db|sqlite|sqlite3)\\b"
|
|
328
|
+
match_on: command
|
|
329
|
+
title: "Deletion of database file"
|
|
330
|
+
expires_at: null
|
|
331
|
+
revoked: false
|
|
332
|
+
|
|
333
|
+
# --- Deletion of .git directory ---
|
|
334
|
+
- id: "CLT-CMD-029"
|
|
335
|
+
category: tool
|
|
336
|
+
severity: high
|
|
337
|
+
confidence: 0.90
|
|
338
|
+
action: require_approval
|
|
339
|
+
pattern: "\\b(rm|del|rmdir|rd|Remove-Item|unlink)\\b.*(\\s|[\\\\/])\\.git(\\s|[\\\\/]|$)"
|
|
340
|
+
case_insensitive: true
|
|
341
|
+
match_on: command
|
|
342
|
+
title: "Deletion of .git directory"
|
|
343
|
+
expires_at: null
|
|
344
|
+
revoked: false
|
|
@@ -73,3 +73,33 @@
|
|
|
73
73
|
title: "Long-form API key pattern detected (GitHub PAT, SendGrid, Stripe)"
|
|
74
74
|
expires_at: null
|
|
75
75
|
revoked: false
|
|
76
|
+
|
|
77
|
+
# --- Copy/move/link secret files ---
|
|
78
|
+
- id: "CLT-CRED-007"
|
|
79
|
+
category: secrets
|
|
80
|
+
severity: high
|
|
81
|
+
confidence: 0.80
|
|
82
|
+
action: require_approval
|
|
83
|
+
# Protected files: .env*, .aws/credentials, .ssh/(id_rsa|id_ed25519|id_ecdsa|id_dsa),
|
|
84
|
+
# .netrc, .pgpass, .npmrc, .pypirc, key.properties, .docker/config.json,
|
|
85
|
+
# kubeconfig, .kube/config, master.key, credentials.yml
|
|
86
|
+
pattern: "\\b(cp|mv|ln|rsync|install|ditto)\\s+.*(?<=[\\\\/\\s])(\\.env(?!\\S*\\.(example|sample|template|dist)\\b)(\\.\\w+)?(?=[\\s\\\\/]|$)|\\.aws/credentials|\\.ssh/(id_rsa|id_ed25519|id_ecdsa|id_dsa)|\\.netrc|\\.pgpass|\\.npmrc|\\.pypirc|key\\.properties|\\.docker/config\\.json|kubeconfig|\\.kube/config|master\\.key|credentials\\.yml)"
|
|
87
|
+
match_on: command
|
|
88
|
+
title: "Copy/move/link of credential or secret file"
|
|
89
|
+
expires_at: null
|
|
90
|
+
revoked: false
|
|
91
|
+
|
|
92
|
+
# --- Archive secret files ---
|
|
93
|
+
- id: "CLT-CRED-008"
|
|
94
|
+
category: secrets
|
|
95
|
+
severity: high
|
|
96
|
+
confidence: 0.80
|
|
97
|
+
action: require_approval
|
|
98
|
+
# Protected files: .env*, .aws/credentials, .ssh/(id_rsa|id_ed25519|id_ecdsa|id_dsa),
|
|
99
|
+
# .netrc, .pgpass, .npmrc, .pypirc, key.properties, .docker/config.json,
|
|
100
|
+
# kubeconfig, .kube/config, master.key, credentials.yml
|
|
101
|
+
pattern: "\\b(tar|zip|7z|rar|gzip)\\s+.*(?<=[\\\\/\\s])(\\.env(?!\\S*\\.(example|sample|template|dist)\\b)(\\.\\w+)?(?=[\\s\\\\/]|$)|\\.aws/credentials|\\.ssh/(id_rsa|id_ed25519|id_ecdsa|id_dsa)|\\.netrc|\\.pgpass|\\.npmrc|\\.pypirc|key\\.properties|\\.docker/config\\.json|kubeconfig|\\.kube/config|master\\.key|credentials\\.yml)"
|
|
102
|
+
match_on: command
|
|
103
|
+
title: "Archiving credential or secret file"
|
|
104
|
+
expires_at: null
|
|
105
|
+
revoked: false
|
|
@@ -102,3 +102,138 @@
|
|
|
102
102
|
title: "Access git hook (potential code execution on git events)"
|
|
103
103
|
expires_at: null
|
|
104
104
|
revoked: false
|
|
105
|
+
|
|
106
|
+
# --- Android signing files ---
|
|
107
|
+
- id: "CLT-FILE-010"
|
|
108
|
+
category: secrets
|
|
109
|
+
severity: high
|
|
110
|
+
confidence: 0.85
|
|
111
|
+
action: require_approval
|
|
112
|
+
pattern: "(key\\.properties|release\\.keystore|\\.jks|\\.keystore)$"
|
|
113
|
+
match_on: file_path
|
|
114
|
+
title: "Access Android signing file"
|
|
115
|
+
expires_at: null
|
|
116
|
+
revoked: false
|
|
117
|
+
|
|
118
|
+
# --- Firebase config files ---
|
|
119
|
+
- id: "CLT-FILE-011"
|
|
120
|
+
category: secrets
|
|
121
|
+
severity: high
|
|
122
|
+
confidence: 0.85
|
|
123
|
+
action: require_approval
|
|
124
|
+
pattern: "(google-services\\.json|GoogleService-Info\\.plist)$"
|
|
125
|
+
match_on: file_path
|
|
126
|
+
title: "Access Firebase configuration file"
|
|
127
|
+
expires_at: null
|
|
128
|
+
revoked: false
|
|
129
|
+
|
|
130
|
+
# --- Cloud provider credential files ---
|
|
131
|
+
- id: "CLT-FILE-012"
|
|
132
|
+
category: secrets
|
|
133
|
+
severity: high
|
|
134
|
+
confidence: 0.85
|
|
135
|
+
action: require_approval
|
|
136
|
+
pattern: "(application_default_credentials\\.json|\\.azure/(accessTokens|msal_token_cache)\\.json|\\.config/doctl/config\\.yaml)$"
|
|
137
|
+
match_on: file_path
|
|
138
|
+
title: "Access cloud provider credential file"
|
|
139
|
+
expires_at: null
|
|
140
|
+
revoked: false
|
|
141
|
+
|
|
142
|
+
# --- Package manager tokens ---
|
|
143
|
+
- id: "CLT-FILE-013"
|
|
144
|
+
category: secrets
|
|
145
|
+
severity: high
|
|
146
|
+
confidence: 0.85
|
|
147
|
+
action: require_approval
|
|
148
|
+
pattern: "(\\.npmrc|\\.pypirc|\\.gem/credentials|\\.cargo/credentials\\.toml|\\.docker/config\\.json)$"
|
|
149
|
+
match_on: file_path
|
|
150
|
+
title: "Access package manager credential file"
|
|
151
|
+
expires_at: null
|
|
152
|
+
revoked: false
|
|
153
|
+
|
|
154
|
+
# --- Terraform state files ---
|
|
155
|
+
- id: "CLT-FILE-014"
|
|
156
|
+
category: secrets
|
|
157
|
+
severity: high
|
|
158
|
+
confidence: 0.85
|
|
159
|
+
action: require_approval
|
|
160
|
+
pattern: "\\.(tfstate(\\.backup)?|tfvars(\\.json)?)$"
|
|
161
|
+
match_on: file_path
|
|
162
|
+
title: "Access Terraform state or variables file"
|
|
163
|
+
expires_at: null
|
|
164
|
+
revoked: false
|
|
165
|
+
|
|
166
|
+
# --- Secrets/vault files ---
|
|
167
|
+
- id: "CLT-FILE-015"
|
|
168
|
+
category: secrets
|
|
169
|
+
severity: high
|
|
170
|
+
confidence: 0.85
|
|
171
|
+
action: require_approval
|
|
172
|
+
pattern: "(master\\.key|credentials\\.yml\\.enc|secrets\\.yml|vault\\.yml|\\.vault-pass|\\.vault-token)$"
|
|
173
|
+
match_on: file_path
|
|
174
|
+
title: "Access secrets or vault file"
|
|
175
|
+
expires_at: null
|
|
176
|
+
revoked: false
|
|
177
|
+
|
|
178
|
+
# --- Private keys and certificates ---
|
|
179
|
+
# NOTE: .pem also matches public cert chains (fullchain.pem, ca-bundle.pem).
|
|
180
|
+
# Accepted trade-off: require_approval keeps noise bounded, and excluding .pem
|
|
181
|
+
# would miss private key exfiltration.
|
|
182
|
+
- id: "CLT-FILE-016"
|
|
183
|
+
category: secrets
|
|
184
|
+
severity: high
|
|
185
|
+
confidence: 0.85
|
|
186
|
+
action: require_approval
|
|
187
|
+
pattern: "\\.(pem|p12|pfx|p8)$"
|
|
188
|
+
match_on: file_path
|
|
189
|
+
title: "Access private key or certificate file"
|
|
190
|
+
expires_at: null
|
|
191
|
+
revoked: false
|
|
192
|
+
|
|
193
|
+
# --- Kubeconfig ---
|
|
194
|
+
- id: "CLT-FILE-017"
|
|
195
|
+
category: secrets
|
|
196
|
+
severity: high
|
|
197
|
+
confidence: 0.85
|
|
198
|
+
action: require_approval
|
|
199
|
+
pattern: "(\\.kube/config|kubeconfig(\\.yaml|\\.yml)?)$"
|
|
200
|
+
match_on: file_path
|
|
201
|
+
title: "Access Kubernetes configuration file"
|
|
202
|
+
expires_at: null
|
|
203
|
+
revoked: false
|
|
204
|
+
|
|
205
|
+
# --- Build system credential files ---
|
|
206
|
+
- id: "CLT-FILE-018"
|
|
207
|
+
category: secrets
|
|
208
|
+
severity: high
|
|
209
|
+
confidence: 0.85
|
|
210
|
+
action: require_approval
|
|
211
|
+
pattern: "(\\.m2/settings\\.xml|gradle\\.properties)$"
|
|
212
|
+
match_on: file_path
|
|
213
|
+
title: "Access build system credential file"
|
|
214
|
+
expires_at: null
|
|
215
|
+
revoked: false
|
|
216
|
+
|
|
217
|
+
# --- Shell/REPL history files ---
|
|
218
|
+
- id: "CLT-FILE-019"
|
|
219
|
+
category: secrets
|
|
220
|
+
severity: high
|
|
221
|
+
confidence: 0.85
|
|
222
|
+
action: require_approval
|
|
223
|
+
pattern: "\\.(bash_history|zsh_history|mysql_history|python_history|node_repl_history|psql_history|irb_history)$"
|
|
224
|
+
match_on: file_path
|
|
225
|
+
title: "Access shell or REPL history file"
|
|
226
|
+
expires_at: null
|
|
227
|
+
revoked: false
|
|
228
|
+
|
|
229
|
+
# --- JetBrains IDE database credentials ---
|
|
230
|
+
- id: "CLT-FILE-020"
|
|
231
|
+
category: secrets
|
|
232
|
+
severity: high
|
|
233
|
+
confidence: 0.85
|
|
234
|
+
action: require_approval
|
|
235
|
+
pattern: "\\.idea/dataSources(\\.xml|/)"
|
|
236
|
+
match_on: file_path
|
|
237
|
+
title: "Access JetBrains IDE database credential file"
|
|
238
|
+
expires_at: null
|
|
239
|
+
revoked: false
|
|
@@ -110,3 +110,19 @@
|
|
|
110
110
|
title: "WLAN password extraction via netsh"
|
|
111
111
|
expires_at: null
|
|
112
112
|
revoked: false
|
|
113
|
+
|
|
114
|
+
# --- Windows copy/move/link of secret files ---
|
|
115
|
+
- id: "CLT-WIN-CRED-010"
|
|
116
|
+
category: secrets
|
|
117
|
+
severity: high
|
|
118
|
+
confidence: 0.80
|
|
119
|
+
action: require_approval
|
|
120
|
+
# Protected files: .env*, .aws\credentials, .ssh\(id_rsa|id_ed25519|id_ecdsa|id_dsa),
|
|
121
|
+
# .netrc, .pgpass, .npmrc, .pypirc, key.properties, .docker\config.json,
|
|
122
|
+
# kubeconfig, .kube\config, master.key, credentials.yml
|
|
123
|
+
pattern: "\\b(copy|xcopy|robocopy|Copy-Item|Move-Item|mklink)\\b.*(?<=[\\\\/\\s])(\\.env(?!\\S*\\.(example|sample|template|dist)\\b)(\\.\\w+)?(?=[\\s\\\\/]|$)|\\.aws[\\\\/]credentials|\\.ssh[\\\\/](id_rsa|id_ed25519|id_ecdsa|id_dsa)|\\.netrc|\\.pgpass|\\.npmrc|\\.pypirc|key\\.properties|\\.docker[\\\\/]config\\.json|kubeconfig|\\.kube[\\\\/]config|master\\.key|credentials\\.yml)"
|
|
124
|
+
case_insensitive: true
|
|
125
|
+
match_on: command
|
|
126
|
+
title: "Windows copy/move of credential or secret file"
|
|
127
|
+
expires_at: null
|
|
128
|
+
revoked: false
|