@gendigital/sage-openclaw 0.9.0 → 0.11.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.
Files changed (35) hide show
  1. package/README.md +63 -20
  2. package/dist/index.cjs +1073 -653
  3. package/dist/index.cjs.map +4 -4
  4. package/dist/mcp-server.cjs +31776 -0
  5. package/dist/mcp-server.cjs.map +7 -0
  6. package/dist/model-download-worker.cjs +422 -29
  7. package/dist/model-download-worker.cjs.map +4 -4
  8. package/openclaw.plugin.json +1 -1
  9. package/package.json +13 -3
  10. package/resources/skills/security-awareness/SKILL.md +5 -1
  11. package/resources/threats/agent-layer.yaml +186 -0
  12. package/resources/threats/commands.yaml +24 -53
  13. package/resources/threats/credentials.yaml +12 -20
  14. package/resources/threats/dummy.yaml +22 -33
  15. package/resources/threats/files.yaml +34 -53
  16. package/resources/threats/mac-commands.yaml +20 -47
  17. package/resources/threats/mac-credentials.yaml +4 -12
  18. package/resources/threats/mac-files.yaml +5 -15
  19. package/resources/threats/mac-obfuscation.yaml +6 -13
  20. package/resources/threats/mac-persistence.yaml +11 -20
  21. package/resources/threats/mac-supply-chain.yaml +5 -8
  22. package/resources/threats/mitre.yaml +105 -167
  23. package/resources/threats/obfuscation.yaml +7 -15
  24. package/resources/threats/persistence.yaml +10 -17
  25. package/resources/threats/prompt-injection.yaml +94 -44
  26. package/resources/threats/self-defense.yaml +8 -12
  27. package/resources/threats/supply_chain.yaml +1 -2
  28. package/resources/threats/urls.yaml +9 -14
  29. package/resources/threats/win-commands.yaml +46 -106
  30. package/resources/threats/win-credentials.yaml +15 -25
  31. package/resources/threats/win-files.yaml +10 -20
  32. package/resources/threats/win-obfuscation.yaml +21 -37
  33. package/resources/threats/win-persistence.yaml +8 -16
  34. package/resources/threats/win-supply-chain.yaml +2 -3
  35. /package/resources/{allowlists → trusted-domains}/trusted-installer-domains.yaml +0 -0
@@ -24,7 +24,6 @@
24
24
  category: testing
25
25
  severity: critical
26
26
  confidence: 0.95
27
- action: block
28
27
  pattern: "__sage_test_deny_cmd_a75bf229__"
29
28
  match_on: command
30
29
  title: "[TEST] Canary deny command (alpha)"
@@ -35,7 +34,6 @@
35
34
  category: testing
36
35
  severity: critical
37
36
  confidence: 0.95
38
- action: block
39
37
  pattern: "__sage_test_deny_run_c3d91e4a__"
40
38
  match_on: command
41
39
  title: "[TEST] Canary deny command (bravo)"
@@ -44,9 +42,8 @@
44
42
 
45
43
  - id: "DUMMY-CMD-ASK-001"
46
44
  category: testing
47
- severity: high
48
- confidence: 0.90
49
- action: require_approval
45
+ severity: warning
46
+ confidence: 0.60
50
47
  pattern: "__sage_test_ask_cmd_8f2e6b71__"
51
48
  match_on: command
52
49
  title: "[TEST] Canary approval command (alpha)"
@@ -55,9 +52,8 @@
55
52
 
56
53
  - id: "DUMMY-CMD-ASK-002"
57
54
  category: testing
58
- severity: high
59
- confidence: 0.90
60
- action: require_approval
55
+ severity: warning
56
+ confidence: 0.60
61
57
  pattern: "__sage_test_ask_run_d4a09c53__"
62
58
  match_on: command
63
59
  title: "[TEST] Canary approval command (bravo)"
@@ -66,14 +62,14 @@
66
62
 
67
63
  - id: "DUMMY-CMD-LOG-001"
68
64
  category: testing
69
- severity: low
70
- confidence: 0.90
71
- action: log
65
+ severity: info
66
+ confidence: 0.10
72
67
  pattern: "__sage_test_log_cmd_1b7e3f82__"
73
68
  match_on: command
74
69
  title: "[TEST] Canary log-only command"
75
70
  expires_at: null
76
71
  revoked: false
72
+ flags: ["report"]
77
73
 
78
74
  # ─── File-path patterns (Write / Edit / Read / Delete tools) ────────
79
75
 
@@ -81,7 +77,6 @@
81
77
  category: testing
82
78
  severity: critical
83
79
  confidence: 0.95
84
- action: block
85
80
  pattern: "__sage_test_deny_file_e6c4a918__"
86
81
  match_on: file_path
87
82
  title: "[TEST] Canary deny file path"
@@ -90,9 +85,8 @@
90
85
 
91
86
  - id: "DUMMY-FILE-ASK-001"
92
87
  category: testing
93
- severity: high
94
- confidence: 0.90
95
- action: require_approval
88
+ severity: warning
89
+ confidence: 0.60
96
90
  pattern: "__sage_test_ask_file_52fd7b36__"
97
91
  match_on: file_path
98
92
  title: "[TEST] Canary approval file path"
@@ -101,14 +95,14 @@
101
95
 
102
96
  - id: "DUMMY-FILE-LOG-001"
103
97
  category: testing
104
- severity: low
105
- confidence: 0.90
106
- action: log
98
+ severity: info
99
+ confidence: 0.10
107
100
  pattern: "__sage_test_log_file_9a13de74__"
108
101
  match_on: file_path
109
102
  title: "[TEST] Canary log-only file path"
110
103
  expires_at: null
111
104
  revoked: false
105
+ flags: ["report"]
112
106
 
113
107
  # ─── Content patterns (Write / Edit tools — file body) ──────────────
114
108
 
@@ -116,7 +110,6 @@
116
110
  category: testing
117
111
  severity: critical
118
112
  confidence: 0.95
119
- action: block
120
113
  pattern: "__SAGE_TEST_DENY_CONTENT_3c8f15b7__"
121
114
  match_on: content
122
115
  title: "[TEST] Canary deny content"
@@ -125,9 +118,8 @@
125
118
 
126
119
  - id: "DUMMY-CONTENT-ASK-001"
127
120
  category: testing
128
- severity: high
129
- confidence: 0.90
130
- action: require_approval
121
+ severity: warning
122
+ confidence: 0.60
131
123
  pattern: "__SAGE_TEST_ASK_CONTENT_7d4ea2c9__"
132
124
  match_on: content
133
125
  title: "[TEST] Canary approval content"
@@ -136,14 +128,14 @@
136
128
 
137
129
  - id: "DUMMY-CONTENT-LOG-001"
138
130
  category: testing
139
- severity: low
140
- confidence: 0.90
141
- action: log
131
+ severity: info
132
+ confidence: 0.10
142
133
  pattern: "__SAGE_TEST_LOG_CONTENT_f0b683d1__"
143
134
  match_on: content
144
135
  title: "[TEST] Canary log-only content"
145
136
  expires_at: null
146
137
  revoked: false
138
+ flags: ["report"]
147
139
 
148
140
  # ─── URL patterns (WebFetch / Bash / Write content) ─────────────────
149
141
  # Uses .test TLD (RFC 2606 reserved, never resolves) for safety.
@@ -152,7 +144,6 @@
152
144
  category: testing
153
145
  severity: critical
154
146
  confidence: 0.95
155
- action: block
156
147
  pattern: "sage-canary-deny-4e91ca37\\.test"
157
148
  match_on: url
158
149
  title: "[TEST] Canary deny URL"
@@ -161,9 +152,8 @@
161
152
 
162
153
  - id: "DUMMY-URL-ASK-001"
163
154
  category: testing
164
- severity: high
165
- confidence: 0.90
166
- action: require_approval
155
+ severity: warning
156
+ confidence: 0.60
167
157
  pattern: "sage-canary-ask-b26d80f5\\.test"
168
158
  match_on: url
169
159
  title: "[TEST] Canary approval URL"
@@ -172,14 +162,14 @@
172
162
 
173
163
  - id: "DUMMY-URL-LOG-001"
174
164
  category: testing
175
- severity: low
176
- confidence: 0.90
177
- action: log
165
+ severity: info
166
+ confidence: 0.10
178
167
  pattern: "sage-canary-log-65f3d7a4\\.test"
179
168
  match_on: url
180
169
  title: "[TEST] Canary log-only URL"
181
170
  expires_at: null
182
171
  revoked: false
172
+ flags: ["report"]
183
173
 
184
174
  # ─── Domain pattern (verifies domain→url routing in heuristics) ─────
185
175
 
@@ -187,7 +177,6 @@
187
177
  category: testing
188
178
  severity: critical
189
179
  confidence: 0.95
190
- action: block
191
180
  pattern: "sage-canary-domain-0c82eb16\\.test"
192
181
  match_on: domain
193
182
  title: "[TEST] Canary deny domain"
@@ -8,7 +8,6 @@
8
8
  category: secrets
9
9
  severity: critical
10
10
  confidence: 0.95
11
- action: block
12
11
  pattern: "(/etc/passwd|/etc/shadow|/etc/sudoers)"
13
12
  match_on: file_path
14
13
  title: "Access system authentication file"
@@ -20,7 +19,6 @@
20
19
  category: secrets
21
20
  severity: critical
22
21
  confidence: 0.95
23
- action: block
24
22
  pattern: "\\.ssh/authorized_keys"
25
23
  match_on: file_path
26
24
  title: "Access SSH authorized_keys (unauthorized access persistence)"
@@ -30,9 +28,8 @@
30
28
  # --- SSH private keys and config ---
31
29
  - id: "CLT-FILE-003"
32
30
  category: secrets
33
- severity: high
34
- confidence: 0.90
35
- action: require_approval
31
+ severity: warning
32
+ confidence: 0.60
36
33
  pattern: "\\.ssh/(id_rsa|id_ed25519|id_ecdsa|id_dsa|config)$"
37
34
  match_on: file_path
38
35
  title: "Access SSH key or config file"
@@ -42,9 +39,8 @@
42
39
  # --- Shell RC files ---
43
40
  - id: "CLT-FILE-004"
44
41
  category: tool
45
- severity: high
46
- confidence: 0.85
47
- action: require_approval
42
+ severity: warning
43
+ confidence: 0.60
48
44
  pattern: "\\.(bashrc|zshrc|profile|bash_profile|zprofile|zshenv)$"
49
45
  match_on: file_path
50
46
  title: "Access shell RC file (persistence mechanism)"
@@ -54,9 +50,8 @@
54
50
  # --- Cron directories ---
55
51
  - id: "CLT-FILE-006"
56
52
  category: tool
57
- severity: high
58
- confidence: 0.85
59
- action: require_approval
53
+ severity: warning
54
+ confidence: 0.60
60
55
  pattern: "(/etc/cron\\.(d|daily|hourly|weekly|monthly)/|/var/spool/cron/)"
61
56
  match_on: file_path
62
57
  title: "Access cron directory"
@@ -66,9 +61,8 @@
66
61
  # --- systemd unit files ---
67
62
  - id: "CLT-FILE-007"
68
63
  category: tool
69
- severity: high
70
- confidence: 0.85
71
- action: require_approval
64
+ severity: warning
65
+ confidence: 0.60
72
66
  pattern: "/etc/systemd/system/"
73
67
  match_on: file_path
74
68
  title: "Access systemd service unit file"
@@ -82,9 +76,8 @@
82
76
  # targeted than command-string matching.
83
77
  - id: "CLT-FILE-008"
84
78
  category: secrets
85
- severity: high
86
- confidence: 0.85
87
- action: require_approval
79
+ severity: warning
80
+ confidence: 0.60
88
81
  pattern: "((^|[\\/\\\\])\\.env(\\.local|\\.production|\\.prod|\\.staging|\\.stage|\\.development|\\.dev|\\.test)?|\\.aws/credentials|\\.netrc|\\.pgpass)$"
89
82
  match_on: file_path
90
83
  title: "Access credential or environment file"
@@ -94,9 +87,8 @@
94
87
  # --- Git hooks ---
95
88
  - id: "CLT-FILE-009"
96
89
  category: tool
97
- severity: high
98
- confidence: 0.85
99
- action: require_approval
90
+ severity: warning
91
+ confidence: 0.60
100
92
  pattern: "\\.git/hooks/"
101
93
  match_on: file_path
102
94
  title: "Access git hook (potential code execution on git events)"
@@ -106,9 +98,8 @@
106
98
  # --- Android signing files ---
107
99
  - id: "CLT-FILE-010"
108
100
  category: secrets
109
- severity: high
110
- confidence: 0.85
111
- action: require_approval
101
+ severity: warning
102
+ confidence: 0.60
112
103
  pattern: "(key\\.properties|release\\.keystore|\\.jks|\\.keystore)$"
113
104
  match_on: file_path
114
105
  title: "Access Android signing file"
@@ -118,9 +109,8 @@
118
109
  # --- Firebase config files ---
119
110
  - id: "CLT-FILE-011"
120
111
  category: secrets
121
- severity: high
122
- confidence: 0.85
123
- action: require_approval
112
+ severity: warning
113
+ confidence: 0.60
124
114
  pattern: "(google-services\\.json|GoogleService-Info\\.plist)$"
125
115
  match_on: file_path
126
116
  title: "Access Firebase configuration file"
@@ -130,9 +120,8 @@
130
120
  # --- Cloud provider credential files ---
131
121
  - id: "CLT-FILE-012"
132
122
  category: secrets
133
- severity: high
134
- confidence: 0.85
135
- action: require_approval
123
+ severity: warning
124
+ confidence: 0.60
136
125
  pattern: "(application_default_credentials\\.json|\\.azure/(accessTokens|msal_token_cache)\\.json|\\.config/doctl/config\\.yaml)$"
137
126
  match_on: file_path
138
127
  title: "Access cloud provider credential file"
@@ -142,9 +131,8 @@
142
131
  # --- Package manager tokens ---
143
132
  - id: "CLT-FILE-013"
144
133
  category: secrets
145
- severity: high
146
- confidence: 0.85
147
- action: require_approval
134
+ severity: warning
135
+ confidence: 0.60
148
136
  pattern: "(\\.npmrc|\\.pypirc|\\.gem/credentials|\\.cargo/credentials\\.toml|\\.docker/config\\.json)$"
149
137
  match_on: file_path
150
138
  title: "Access package manager credential file"
@@ -154,9 +142,8 @@
154
142
  # --- Terraform state files ---
155
143
  - id: "CLT-FILE-014"
156
144
  category: secrets
157
- severity: high
158
- confidence: 0.85
159
- action: require_approval
145
+ severity: warning
146
+ confidence: 0.60
160
147
  pattern: "\\.(tfstate(\\.backup)?|tfvars(\\.json)?)$"
161
148
  match_on: file_path
162
149
  title: "Access Terraform state or variables file"
@@ -166,9 +153,8 @@
166
153
  # --- Secrets/vault files ---
167
154
  - id: "CLT-FILE-015"
168
155
  category: secrets
169
- severity: high
170
- confidence: 0.85
171
- action: require_approval
156
+ severity: warning
157
+ confidence: 0.60
172
158
  pattern: "(master\\.key|credentials\\.yml\\.enc|secrets\\.yml|vault\\.yml|\\.vault-pass|\\.vault-token)$"
173
159
  match_on: file_path
174
160
  title: "Access secrets or vault file"
@@ -181,9 +167,8 @@
181
167
  # would miss private key exfiltration.
182
168
  - id: "CLT-FILE-016"
183
169
  category: secrets
184
- severity: high
185
- confidence: 0.85
186
- action: require_approval
170
+ severity: warning
171
+ confidence: 0.60
187
172
  pattern: "\\.(pem|p12|pfx|p8)$"
188
173
  match_on: file_path
189
174
  title: "Access private key or certificate file"
@@ -193,9 +178,8 @@
193
178
  # --- Kubeconfig ---
194
179
  - id: "CLT-FILE-017"
195
180
  category: secrets
196
- severity: high
197
- confidence: 0.85
198
- action: require_approval
181
+ severity: warning
182
+ confidence: 0.60
199
183
  pattern: "(\\.kube/config|kubeconfig(\\.yaml|\\.yml)?)$"
200
184
  match_on: file_path
201
185
  title: "Access Kubernetes configuration file"
@@ -205,9 +189,8 @@
205
189
  # --- Build system credential files ---
206
190
  - id: "CLT-FILE-018"
207
191
  category: secrets
208
- severity: high
209
- confidence: 0.85
210
- action: require_approval
192
+ severity: warning
193
+ confidence: 0.60
211
194
  pattern: "(\\.m2/settings\\.xml|gradle\\.properties)$"
212
195
  match_on: file_path
213
196
  title: "Access build system credential file"
@@ -217,9 +200,8 @@
217
200
  # --- Shell/REPL history files ---
218
201
  - id: "CLT-FILE-019"
219
202
  category: secrets
220
- severity: high
221
- confidence: 0.85
222
- action: require_approval
203
+ severity: warning
204
+ confidence: 0.60
223
205
  pattern: "\\.(bash_history|zsh_history|mysql_history|python_history|node_repl_history|psql_history|irb_history)$"
224
206
  match_on: file_path
225
207
  title: "Access shell or REPL history file"
@@ -229,9 +211,8 @@
229
211
  # --- JetBrains IDE database credentials ---
230
212
  - id: "CLT-FILE-020"
231
213
  category: secrets
232
- severity: high
233
- confidence: 0.85
234
- action: require_approval
214
+ severity: warning
215
+ confidence: 0.60
235
216
  pattern: "\\.idea/dataSources(\\.xml|/)"
236
217
  match_on: file_path
237
218
  title: "Access JetBrains IDE database credential file"
@@ -10,7 +10,6 @@
10
10
  category: tool
11
11
  severity: critical
12
12
  confidence: 0.95
13
- action: block
14
13
  pattern: "\\bosascript\\b.*-e.*do shell script"
15
14
  case_insensitive: true
16
15
  match_on: command
@@ -23,7 +22,6 @@
23
22
  category: tool
24
23
  severity: critical
25
24
  confidence: 0.90
26
- action: block
27
25
  pattern: "\\bosascript\\b.*-l\\s+JavaScript"
28
26
  case_insensitive: true
29
27
  match_on: command
@@ -36,7 +34,6 @@
36
34
  category: tool
37
35
  severity: critical
38
36
  confidence: 0.90
39
- action: block
40
37
  pattern: "\\|\\s*osascript"
41
38
  match_on: command
42
39
  title: "Piped input to osascript (stdin AppleScript execution)"
@@ -48,7 +45,6 @@
48
45
  category: tool
49
46
  severity: critical
50
47
  confidence: 0.90
51
- action: block
52
48
  pattern: "(curl|wget).*\\|.*osascript|osascript.*(curl|wget)"
53
49
  case_insensitive: true
54
50
  match_on: command
@@ -61,9 +57,8 @@
61
57
  # open -a Terminal (launch Terminal with script)
62
58
  - id: "CLT-MAC-CMD-005"
63
59
  category: tool
64
- severity: high
65
- confidence: 0.80
66
- action: require_approval
60
+ severity: warning
61
+ confidence: 0.60
67
62
  pattern: "\\bopen\\s+-a\\s+Terminal"
68
63
  match_on: command
69
64
  title: "Launch Terminal application via open -a"
@@ -73,9 +68,8 @@
73
68
  # open with hidden/background flags
74
69
  - id: "CLT-MAC-CMD-006"
75
70
  category: tool
76
- severity: high
77
- confidence: 0.85
78
- action: require_approval
71
+ severity: warning
72
+ confidence: 0.60
79
73
  pattern: "\\bopen\\s+(-[jg]|--hide|--background)"
80
74
  match_on: command
81
75
  title: "Launch application hidden/background via open"
@@ -87,9 +81,8 @@
87
81
  # dscl user/group manipulation
88
82
  - id: "CLT-MAC-CMD-007"
89
83
  category: tool
90
- severity: high
91
- confidence: 0.85
92
- action: require_approval
84
+ severity: warning
85
+ confidence: 0.60
93
86
  pattern: "\\bdscl\\b.*(-create|-delete|-passwd|-append)"
94
87
  match_on: command
95
88
  title: "Directory Services user/group manipulation via dscl"
@@ -99,9 +92,8 @@
99
92
  # networksetup proxy/DNS manipulation
100
93
  - id: "CLT-MAC-CMD-008"
101
94
  category: tool
102
- severity: high
103
- confidence: 0.85
104
- action: require_approval
95
+ severity: warning
96
+ confidence: 0.60
105
97
  pattern: "\\bnetworksetup\\b.*(-setwebproxy|-setsocksfirewallproxy|-setdnsservers|-setautoproxyurl)"
106
98
  case_insensitive: true
107
99
  match_on: command
@@ -114,7 +106,6 @@
114
106
  category: tool
115
107
  severity: critical
116
108
  confidence: 0.90
117
- action: block
118
109
  pattern: "\\bsystemsetup\\b.*(-setremotelogin\\s+on|-setwakeonnetworkaccess\\s+on)"
119
110
  case_insensitive: true
120
111
  match_on: command
@@ -127,7 +118,6 @@
127
118
  category: tool
128
119
  severity: critical
129
120
  confidence: 0.90
130
- action: block
131
121
  pattern: "kickstart.*-activate.*-configure"
132
122
  case_insensitive: true
133
123
  match_on: command
@@ -138,9 +128,8 @@
138
128
  # installer -pkg -target / (silent package install)
139
129
  - id: "CLT-MAC-CMD-011"
140
130
  category: tool
141
- severity: high
142
- confidence: 0.85
143
- action: require_approval
131
+ severity: warning
132
+ confidence: 0.60
144
133
  pattern: "\\binstaller\\b.*-pkg.*-target"
145
134
  case_insensitive: true
146
135
  match_on: command
@@ -151,9 +140,8 @@
151
140
  # hdiutil mount remote DMG
152
141
  - id: "CLT-MAC-CMD-012"
153
142
  category: tool
154
- severity: high
155
- confidence: 0.85
156
- action: require_approval
143
+ severity: warning
144
+ confidence: 0.60
157
145
  pattern: "\\bhdiutil\\b.*\\b(attach|mount)\\b.*https?://"
158
146
  case_insensitive: true
159
147
  match_on: command
@@ -164,9 +152,8 @@
164
152
  # pkgutil --forget (package receipt manipulation)
165
153
  - id: "CLT-MAC-CMD-013"
166
154
  category: tool
167
- severity: high
168
- confidence: 0.80
169
- action: require_approval
155
+ severity: warning
156
+ confidence: 0.60
170
157
  pattern: "\\bpkgutil\\b.*--forget"
171
158
  match_on: command
172
159
  title: "Package receipt removal via pkgutil --forget"
@@ -180,7 +167,6 @@
180
167
  category: tool
181
168
  severity: critical
182
169
  confidence: 0.95
183
- action: block
184
170
  pattern: "\\bdiskutil\\b.*\\b(eraseDisk|partitionDisk|secureErase)\\b"
185
171
  match_on: command
186
172
  title: "Disk erase/partition via diskutil"
@@ -192,7 +178,6 @@
192
178
  category: tool
193
179
  severity: critical
194
180
  confidence: 0.95
195
- action: block
196
181
  pattern: "\\btmutil\\b.*\\b(delete|disable)\\b"
197
182
  match_on: command
198
183
  title: "Time Machine backup deletion/disable via tmutil (ransomware indicator)"
@@ -206,7 +191,6 @@
206
191
  category: tool
207
192
  severity: critical
208
193
  confidence: 0.95
209
- action: block
210
194
  pattern: "\\bspctl\\b.*--master-disable"
211
195
  match_on: command
212
196
  title: "Gatekeeper disable via spctl --master-disable"
@@ -218,7 +202,6 @@
218
202
  category: tool
219
203
  severity: critical
220
204
  confidence: 0.95
221
- action: block
222
205
  pattern: "\\bcsrutil\\b.*\\bdisable\\b"
223
206
  match_on: command
224
207
  title: "System Integrity Protection disable via csrutil"
@@ -230,7 +213,6 @@
230
213
  category: tool
231
214
  severity: critical
232
215
  confidence: 0.90
233
- action: block
234
216
  pattern: "\\bdefaults\\b.*\\bwrite\\b.*LSQuarantine"
235
217
  case_insensitive: true
236
218
  match_on: command
@@ -241,9 +223,8 @@
241
223
  # xattr -d com.apple.quarantine (quarantine removal)
242
224
  - id: "CLT-MAC-CMD-019"
243
225
  category: tool
244
- severity: high
245
- confidence: 0.85
246
- action: require_approval
226
+ severity: warning
227
+ confidence: 0.60
247
228
  pattern: "\\bxattr\\b.*-d.*com\\.apple\\.quarantine"
248
229
  match_on: command
249
230
  title: "Quarantine attribute removal via xattr"
@@ -255,7 +236,6 @@
255
236
  category: tool
256
237
  severity: critical
257
238
  confidence: 0.90
258
- action: block
259
239
  pattern: "\\bpfctl\\b.*\\s-d\\b"
260
240
  match_on: command
261
241
  title: "Packet filter (firewall) disable via pfctl -d"
@@ -267,7 +247,6 @@
267
247
  category: tool
268
248
  severity: critical
269
249
  confidence: 0.90
270
- action: block
271
250
  pattern: "\\btccutil\\b.*\\breset\\b"
272
251
  match_on: command
273
252
  title: "TCC privacy permissions reset via tccutil"
@@ -279,7 +258,6 @@
279
258
  category: tool
280
259
  severity: critical
281
260
  confidence: 0.90
282
- action: block
283
261
  pattern: "\\blaunchctl\\b.*\\b(unload|bootout)\\b.*(com\\.apple\\.MRT|com\\.apple\\.XProtect|com\\.apple\\.security)"
284
262
  case_insensitive: true
285
263
  match_on: command
@@ -292,7 +270,6 @@
292
270
  category: tool
293
271
  severity: critical
294
272
  confidence: 0.90
295
- action: block
296
273
  pattern: "\\bdefaults\\b.*\\bwrite\\b.*(com\\.apple\\.Finder\\s+AppleShowAllFiles|com\\.apple\\.LaunchServices\\s+LSQuarantine|com\\.apple\\.loginwindow)"
297
274
  case_insensitive: true
298
275
  match_on: command
@@ -307,7 +284,6 @@
307
284
  category: tool
308
285
  severity: critical
309
286
  confidence: 0.90
310
- action: block
311
287
  pattern: "\\bdscl\\b.*\\s-passwd\\b"
312
288
  match_on: command
313
289
  title: "User password change via dscl"
@@ -319,7 +295,6 @@
319
295
  category: tool
320
296
  severity: critical
321
297
  confidence: 0.95
322
- action: block
323
298
  pattern: "\\bdseditgroup\\b.*-o\\s+edit.*-a.*admin"
324
299
  match_on: command
325
300
  title: "Add user to admin group via dseditgroup"
@@ -329,9 +304,8 @@
329
304
  # createhomedir — create home directory for arbitrary user
330
305
  - id: "CLT-MAC-CMD-026"
331
306
  category: tool
332
- severity: high
333
- confidence: 0.80
334
- action: require_approval
307
+ severity: warning
308
+ confidence: 0.60
335
309
  pattern: "\\bcreatehomedir\\b"
336
310
  match_on: command
337
311
  title: "Create home directory for user via createhomedir"
@@ -345,9 +319,8 @@
345
319
  # screencapture to remote or hidden location
346
320
  - id: "CLT-MAC-CMD-027"
347
321
  category: tool
348
- severity: high
349
- confidence: 0.80
350
- action: require_approval
322
+ severity: warning
323
+ confidence: 0.60
351
324
  pattern: "\\bscreencapture\\b.*(-x|-C)"
352
325
  match_on: command
353
326
  title: "Silent screen capture via screencapture"
@@ -7,7 +7,6 @@
7
7
  category: secrets
8
8
  severity: critical
9
9
  confidence: 0.95
10
- action: block
11
10
  pattern: "\\bsecurity\\b.*\\bfind-generic-password\\b.*-w"
12
11
  match_on: command
13
12
  title: "Keychain password extraction via security find-generic-password"
@@ -19,7 +18,6 @@
19
18
  category: secrets
20
19
  severity: critical
21
20
  confidence: 0.95
22
- action: block
23
21
  pattern: "\\bsecurity\\b.*\\bfind-internet-password\\b.*-w"
24
22
  match_on: command
25
23
  title: "Keychain internet password extraction via security find-internet-password"
@@ -31,7 +29,6 @@
31
29
  category: secrets
32
30
  severity: critical
33
31
  confidence: 0.95
34
- action: block
35
32
  pattern: "\\bsecurity\\b.*\\bdump-keychain\\b"
36
33
  match_on: command
37
34
  title: "Full keychain dump via security dump-keychain"
@@ -43,7 +40,6 @@
43
40
  category: secrets
44
41
  severity: critical
45
42
  confidence: 0.90
46
- action: block
47
43
  pattern: "\\bsecurity\\b.*\\bunlock-keychain\\b.*-p"
48
44
  match_on: command
49
45
  title: "Keychain unlock with plaintext password"
@@ -53,9 +49,8 @@
53
49
  # Keychain export
54
50
  - id: "CLT-MAC-CRED-005"
55
51
  category: secrets
56
- severity: high
57
- confidence: 0.85
58
- action: require_approval
52
+ severity: warning
53
+ confidence: 0.60
59
54
  pattern: "\\bsecurity\\b.*\\bexport\\b.*-k"
60
55
  match_on: command
61
56
  title: "Keychain item export via security export"
@@ -67,7 +62,6 @@
67
62
  category: secrets
68
63
  severity: critical
69
64
  confidence: 0.90
70
- action: block
71
65
  pattern: "\\bsecurity\\b.*\\bdelete-keychain\\b"
72
66
  match_on: command
73
67
  title: "Keychain deletion via security delete-keychain"
@@ -77,9 +71,8 @@
77
71
  # Directory Services auth data read
78
72
  - id: "CLT-MAC-CRED-007"
79
73
  category: secrets
80
- severity: high
81
- confidence: 0.85
82
- action: require_approval
74
+ severity: warning
75
+ confidence: 0.60
83
76
  pattern: "\\bdscl\\b.*-read.*(AuthenticationAuthority|Password|ShadowHash)"
84
77
  match_on: command
85
78
  title: "Read user authentication data via dscl"
@@ -91,7 +84,6 @@
91
84
  category: secrets
92
85
  severity: critical
93
86
  confidence: 0.90
94
- action: block
95
87
  pattern: "\\bsqlite3\\b.*(/Library/Keychains/|login\\.keychain)"
96
88
  match_on: command
97
89
  title: "Direct Keychain database access via sqlite3"