tcell_agent 0.2.29 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/Readme.txt +7 -0
  3. data/bin/tcell_agent +9 -0
  4. data/lib/tcell_agent/agent/policy_manager.rb +3 -0
  5. data/lib/tcell_agent/agent/policy_types.rb +4 -1
  6. data/lib/tcell_agent/appsensor/injections_matcher.rb +20 -0
  7. data/lib/tcell_agent/appsensor/injections_reporter.rb +15 -56
  8. data/lib/tcell_agent/appsensor/meta_data.rb +56 -2
  9. data/lib/tcell_agent/appsensor/rules/baserules.json +371 -138
  10. data/lib/tcell_agent/cmdi.rb +113 -0
  11. data/lib/tcell_agent/config/unknown_options.rb +2 -0
  12. data/lib/tcell_agent/configuration.rb +30 -16
  13. data/lib/tcell_agent/hooks/login_fraud.rb +79 -0
  14. data/lib/tcell_agent/instrumentation.rb +6 -11
  15. data/lib/tcell_agent/patches/meta_data.rb +14 -11
  16. data/lib/tcell_agent/policies/appsensor/injection_sensor.rb +5 -9
  17. data/lib/tcell_agent/policies/appsensor_policy.rb +22 -206
  18. data/lib/tcell_agent/policies/clickjacking_policy.rb +4 -2
  19. data/lib/tcell_agent/policies/command_injection_policy.rb +196 -0
  20. data/lib/tcell_agent/policies/content_security_policy.rb +3 -2
  21. data/lib/tcell_agent/policies/dataloss_policy.rb +3 -1
  22. data/lib/tcell_agent/policies/honeytokens_policy.rb +3 -1
  23. data/lib/tcell_agent/policies/http_redirect_policy.rb +51 -37
  24. data/lib/tcell_agent/policies/http_tx_policy.rb +5 -1
  25. data/lib/tcell_agent/policies/login_fraud_policy.rb +6 -1
  26. data/lib/tcell_agent/policies/patches_policy.rb +3 -1
  27. data/lib/tcell_agent/policies/policy.rb +10 -0
  28. data/lib/tcell_agent/policies/secure_headers_policy.rb +5 -2
  29. data/lib/tcell_agent/rails/auth/devise.rb +12 -23
  30. data/lib/tcell_agent/rails/csrf_exception.rb +1 -1
  31. data/lib/tcell_agent/rails/dlp.rb +50 -54
  32. data/lib/tcell_agent/rails/middleware/body_filter_middleware.rb +0 -1
  33. data/lib/tcell_agent/rails/middleware/context_middleware.rb +0 -1
  34. data/lib/tcell_agent/rails/middleware/global_middleware.rb +0 -1
  35. data/lib/tcell_agent/rails/middleware/headers_middleware.rb +7 -10
  36. data/lib/tcell_agent/rails/on_start.rb +0 -1
  37. data/lib/tcell_agent/rails/tcell_body_proxy.rb +4 -4
  38. data/lib/tcell_agent/rails.rb +0 -2
  39. data/lib/tcell_agent/rust/libtcellagent-0.6.1.dylib +0 -0
  40. data/lib/tcell_agent/rust/libtcellagent-0.6.1.so +0 -0
  41. data/lib/tcell_agent/rust/models.rb +61 -0
  42. data/lib/tcell_agent/rust/tcellagent-0.6.1.dll +0 -0
  43. data/lib/tcell_agent/rust/whisperer.rb +112 -0
  44. data/lib/tcell_agent/sensor_events/appsensor_event.rb +25 -21
  45. data/lib/tcell_agent/sensor_events/appsensor_meta_event.rb +31 -24
  46. data/lib/tcell_agent/sensor_events/command_injection.rb +58 -0
  47. data/lib/tcell_agent/sensor_events/discovery.rb +1 -1
  48. data/lib/tcell_agent/sensor_events/login_fraud.rb +3 -13
  49. data/lib/tcell_agent/sensor_events/sensor.rb +81 -77
  50. data/lib/tcell_agent/sensor_events/util/sanitizer_utilities.rb +8 -0
  51. data/lib/tcell_agent/start_background_thread.rb +12 -3
  52. data/lib/tcell_agent/utils/io.rb +4 -1
  53. data/lib/tcell_agent/utils/params.rb +1 -0
  54. data/lib/tcell_agent/version.rb +1 -1
  55. data/lib/tcell_agent.rb +0 -1
  56. data/spec/lib/tcell_agent/appsensor/injections_matcher_spec.rb +27 -9
  57. data/spec/lib/tcell_agent/appsensor/injections_reporter_spec.rb +143 -193
  58. data/spec/lib/tcell_agent/appsensor/meta_data_spec.rb +67 -0
  59. data/spec/lib/tcell_agent/appsensor/rules/appsensor_rule_manager_spec.rb +0 -10
  60. data/spec/lib/tcell_agent/cmdi_spec.rb +748 -0
  61. data/spec/lib/tcell_agent/config/unknown_options_spec.rb +8 -0
  62. data/spec/lib/tcell_agent/configuration_spec.rb +138 -6
  63. data/spec/lib/tcell_agent/hooks/login_fraud_spec.rb +357 -0
  64. data/spec/lib/tcell_agent/patches/block_rule_spec.rb +70 -87
  65. data/spec/lib/tcell_agent/patches_spec.rb +9 -4
  66. data/spec/lib/tcell_agent/policies/appsensor/xss_sensor_spec.rb +186 -9
  67. data/spec/lib/tcell_agent/policies/appsensor_policy_spec.rb +309 -484
  68. data/spec/lib/tcell_agent/policies/command_injection_policy_spec.rb +736 -0
  69. data/spec/lib/tcell_agent/policies/http_redirect_policy_spec.rb +222 -41
  70. data/spec/lib/tcell_agent/policies/patches_policy_spec.rb +56 -32
  71. data/spec/lib/tcell_agent/rails/middleware/appsensor_middleware_spec.rb +161 -85
  72. data/spec/lib/tcell_agent/rails/middleware/tcell_body_proxy_spec.rb +40 -72
  73. data/spec/lib/tcell_agent/rust/whisperer_spec.rb +267 -0
  74. data/spec/lib/tcell_agent/sensor_events/appsensor_meta_event_spec.rb +20 -15
  75. data/spec/spec_helper.rb +0 -9
  76. data/tcell_agent.gemspec +8 -3
  77. metadata +40 -39
  78. data/lib/tcell_agent/appsensor/sensor.rb +0 -52
  79. data/lib/tcell_agent/policies/appsensor/database_sensor.rb +0 -56
  80. data/lib/tcell_agent/policies/appsensor/misc_sensor.rb +0 -59
  81. data/lib/tcell_agent/policies/appsensor/payloads_policy.rb +0 -150
  82. data/lib/tcell_agent/policies/appsensor/request_size_sensor.rb +0 -25
  83. data/lib/tcell_agent/policies/appsensor/response_codes_sensor.rb +0 -73
  84. data/lib/tcell_agent/policies/appsensor/response_size_sensor.rb +0 -25
  85. data/lib/tcell_agent/policies/appsensor/size_sensor.rb +0 -71
  86. data/lib/tcell_agent/policies/appsensor/user_agent_sensor.rb +0 -47
  87. data/lib/tcell_agent/rails/auth/hooks.rb +0 -79
  88. data/lib/tcell_agent/sensor_events/util/redirect_utils.rb +0 -22
  89. data/spec/lib/tcell_agent/policies/appsensor/database_sensor_spec.rb +0 -165
  90. data/spec/lib/tcell_agent/policies/appsensor/misc_sensor_spec.rb +0 -429
  91. data/spec/lib/tcell_agent/policies/appsensor/payloads_policy_apply_spec.rb +0 -466
  92. data/spec/lib/tcell_agent/policies/appsensor/payloads_policy_from_json_spec.rb +0 -890
  93. data/spec/lib/tcell_agent/policies/appsensor/payloads_policy_log_spec.rb +0 -417
  94. data/spec/lib/tcell_agent/policies/appsensor/request_size_sensor_spec.rb +0 -236
  95. data/spec/lib/tcell_agent/policies/appsensor/response_codes_sensor_spec.rb +0 -297
  96. data/spec/lib/tcell_agent/policies/appsensor/response_size_sensor_spec.rb +0 -241
  97. data/spec/lib/tcell_agent/policies/appsensor/user_agent_sensor_spec.rb +0 -172
  98. data/spec/lib/tcell_agent/rails/auth/hooks_spec.rb +0 -246
  99. data/spec/lib/tcell_agent/sensor_events/util/redirect_utils_spec.rb +0 -25
  100. data/spec/support/resources/baserules.json +0 -155
@@ -1,890 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module TCellAgent
4
- module Policies
5
-
6
- describe AppSensorPolicy do
7
-
8
- describe ".from_json" do
9
-
10
- context "with options" do
11
- context "that are missing" do
12
- it "should have defaults set" do
13
- policy_json = nil
14
- policy = PayloadsPolicy.from_json(policy_json)
15
-
16
- expect(policy.send_payloads).to eq(false)
17
- expect(policy.log_payloads).to eq(false)
18
- expect(policy.send_blacklist).to eq({})
19
- expect(policy.send_whitelist).to eq({})
20
- expect(policy.use_send_whitelist).to eq(false)
21
- expect(policy.log_blacklist).to eq({})
22
- expect(policy.log_whitelist).to eq({})
23
- expect(policy.use_log_whitelist).to eq(false)
24
- end
25
- end
26
-
27
- context "that are present" do
28
- context "with payloads" do
29
- context "that are missing" do
30
- it "should have defaults set" do
31
- policy_json = { }
32
- policy = PayloadsPolicy.from_json(policy_json)
33
-
34
- expect(policy.send_payloads).to eq(false)
35
- expect(policy.log_payloads).to eq(false)
36
- expect(policy.send_blacklist).to eq({})
37
- expect(policy.send_whitelist).to eq({})
38
- expect(policy.use_send_whitelist).to eq(false)
39
- expect(policy.log_blacklist).to eq({})
40
- expect(policy.log_whitelist).to eq({})
41
- expect(policy.use_log_whitelist).to eq(false)
42
- end
43
- end
44
-
45
- context "that are present" do
46
- context "but empty" do
47
- it "should have defaults set" do
48
- policy_json = {
49
- "payloads" => {}
50
- }
51
- policy = PayloadsPolicy.from_json(policy_json)
52
-
53
- expect(policy.send_payloads).to eq(false)
54
- expect(policy.log_payloads).to eq(false)
55
- expect(policy.send_blacklist).to eq({})
56
- expect(policy.send_whitelist).to eq({})
57
- expect(policy.use_send_whitelist).to eq(false)
58
- expect(policy.log_blacklist).to eq({})
59
- expect(policy.log_whitelist).to eq({})
60
- expect(policy.use_log_whitelist).to eq(false)
61
- end
62
- end
63
-
64
- context "with send_payloads == false" do
65
- it "should have send_payloads disabled" do
66
- policy_json = {
67
- "payloads" => {
68
- "send_payloads" => false
69
- }
70
- }
71
- policy = PayloadsPolicy.from_json(policy_json)
72
-
73
- expect(policy.send_payloads).to eq(false)
74
- expect(policy.log_payloads).to eq(false)
75
- expect(policy.send_blacklist).to eq({})
76
- expect(policy.send_whitelist).to eq({})
77
- expect(policy.use_send_whitelist).to eq(false)
78
- expect(policy.log_blacklist).to eq({})
79
- expect(policy.log_whitelist).to eq({})
80
- expect(policy.use_log_whitelist).to eq(false)
81
- end
82
-
83
- context "with send_blacklist missing" do
84
- it "should have an empty send_blacklist" do
85
- policy_json = {
86
- "payloads" => {
87
- "send_payloads" => false
88
- }
89
- }
90
- policy = PayloadsPolicy.from_json(policy_json)
91
-
92
- expect(policy.send_payloads).to eq(false)
93
- expect(policy.log_payloads).to eq(false)
94
- expect(policy.send_blacklist).to eq({})
95
- expect(policy.send_whitelist).to eq({})
96
- expect(policy.use_send_whitelist).to eq(false)
97
- expect(policy.log_blacklist).to eq({})
98
- expect(policy.log_whitelist).to eq({})
99
- expect(policy.use_log_whitelist).to eq(false)
100
- end
101
- end
102
-
103
- context "with send_blacklist present" do
104
- context "but empty" do
105
- it "should have an empty send_blacklist" do
106
- policy_json = {
107
- "payloads" => {
108
- "send_payloads" => false,
109
- "send_blacklist" => {}
110
- }
111
- }
112
- policy = PayloadsPolicy.from_json(policy_json)
113
-
114
- expect(policy.send_payloads).to eq(false)
115
- expect(policy.log_payloads).to eq(false)
116
- expect(policy.send_blacklist).to eq({})
117
- expect(policy.send_whitelist).to eq({})
118
- expect(policy.use_send_whitelist).to eq(false)
119
- expect(policy.log_blacklist).to eq({})
120
- expect(policy.log_whitelist).to eq({})
121
- expect(policy.use_log_whitelist).to eq(false)
122
- end
123
- end
124
-
125
- context "with one item present" do
126
- it "should have an empty send_blacklist" do
127
- policy_json = {
128
- "payloads" => {
129
- "send_payloads" => false,
130
- "send_blacklist" => {
131
- "password" => ["*"]
132
- }
133
- }
134
- }
135
- policy = PayloadsPolicy.from_json(policy_json)
136
-
137
- expect(policy.send_payloads).to eq(false)
138
- expect(policy.log_payloads).to eq(false)
139
- expect(policy.send_blacklist).to eq({})
140
- expect(policy.send_whitelist).to eq({})
141
- expect(policy.use_send_whitelist).to eq(false)
142
- expect(policy.log_blacklist).to eq({})
143
- expect(policy.log_whitelist).to eq({})
144
- expect(policy.use_log_whitelist).to eq(false)
145
- end
146
- end
147
-
148
- context "with two items present" do
149
- it "should have an empty send_blacklist" do
150
- policy_json = {
151
- "payloads" => {
152
- "send_payloads" => false,
153
- "send_blacklist" => {
154
- "username" => ["*"],
155
- "password" => ["*"]
156
- }
157
- }
158
- }
159
- policy = PayloadsPolicy.from_json(policy_json)
160
-
161
- expect(policy.send_payloads).to eq(false)
162
- expect(policy.log_payloads).to eq(false)
163
- expect(policy.send_blacklist).to eq({})
164
- expect(policy.send_whitelist).to eq({})
165
- expect(policy.use_send_whitelist).to eq(false)
166
- expect(policy.log_blacklist).to eq({})
167
- expect(policy.log_whitelist).to eq({})
168
- expect(policy.use_log_whitelist).to eq(false)
169
- end
170
- end
171
- end
172
-
173
-
174
- context "with send_whitelist missing" do
175
- it "should have an empty send_whitelist" do
176
- policy_json = {
177
- "payloads" => {
178
- "send_payloads" => false
179
- }
180
- }
181
- policy = PayloadsPolicy.from_json(policy_json)
182
-
183
- expect(policy.send_payloads).to eq(false)
184
- expect(policy.log_payloads).to eq(false)
185
- expect(policy.send_blacklist).to eq({})
186
- expect(policy.send_whitelist).to eq({})
187
- expect(policy.use_send_whitelist).to eq(false)
188
- expect(policy.log_blacklist).to eq({})
189
- expect(policy.log_whitelist).to eq({})
190
- expect(policy.use_log_whitelist).to eq(false)
191
- end
192
- end
193
-
194
- context "with send_whitelist present" do
195
- context "but empty" do
196
- it "should have an empty send_whitelist" do
197
- policy_json = {
198
- "payloads" => {
199
- "send_payloads" => false,
200
- "send_whitelist" => {}
201
- }
202
- }
203
- policy = PayloadsPolicy.from_json(policy_json)
204
-
205
- expect(policy.send_payloads).to eq(false)
206
- expect(policy.log_payloads).to eq(false)
207
- expect(policy.send_blacklist).to eq({})
208
- expect(policy.send_whitelist).to eq({})
209
- expect(policy.use_send_whitelist).to eq(false)
210
- expect(policy.log_blacklist).to eq({})
211
- expect(policy.log_whitelist).to eq({})
212
- expect(policy.use_log_whitelist).to eq(false)
213
- end
214
- end
215
-
216
- context "with one item present" do
217
- it "should have an empty send_whitelist" do
218
- policy_json = {
219
- "payloads" => {
220
- "send_payloads" => false,
221
- "send_whitelist" => {
222
- "password" => ["*"]
223
- }
224
- }
225
- }
226
- policy = PayloadsPolicy.from_json(policy_json)
227
-
228
- expect(policy.send_payloads).to eq(false)
229
- expect(policy.log_payloads).to eq(false)
230
- expect(policy.send_blacklist).to eq({})
231
- expect(policy.send_whitelist).to eq({})
232
- expect(policy.use_send_whitelist).to eq(false)
233
- expect(policy.log_blacklist).to eq({})
234
- expect(policy.log_whitelist).to eq({})
235
- expect(policy.use_log_whitelist).to eq(false)
236
- end
237
- end
238
-
239
- context "with two items present" do
240
- it "should have an empty send_whitelist" do
241
- policy_json = {
242
- "payloads" => {
243
- "send_payloads" => false,
244
- "send_whitelist" => {
245
- "username" => ["*"],
246
- "password" => ["*"]
247
- }
248
- }
249
- }
250
- policy = PayloadsPolicy.from_json(policy_json)
251
-
252
- expect(policy.send_payloads).to eq(false)
253
- expect(policy.log_payloads).to eq(false)
254
- expect(policy.send_blacklist).to eq({})
255
- expect(policy.send_whitelist).to eq({})
256
- expect(policy.use_send_whitelist).to eq(false)
257
- expect(policy.log_blacklist).to eq({})
258
- expect(policy.log_whitelist).to eq({})
259
- expect(policy.use_log_whitelist).to eq(false)
260
- end
261
- end
262
- end
263
- end
264
-
265
- context "with send_payloads == true" do
266
- it "should have send_payloads enabled" do
267
- policy_json = {
268
- "payloads" => {
269
- "send_payloads" => true
270
- }
271
- }
272
- policy = PayloadsPolicy.from_json(policy_json)
273
-
274
- expect(policy.send_payloads).to eq(true)
275
- expect(policy.log_payloads).to eq(false)
276
- expect(policy.send_blacklist).to eq({})
277
- expect(policy.send_whitelist).to eq({})
278
- expect(policy.log_blacklist).to eq({})
279
- expect(policy.log_whitelist).to eq({})
280
- end
281
-
282
- context "with send_blacklist missing" do
283
- it "should have an empty send_blacklist" do
284
- policy_json = {
285
- "payloads" => {
286
- "send_payloads" => true
287
- }
288
- }
289
- policy = PayloadsPolicy.from_json(policy_json)
290
-
291
- expect(policy.send_payloads).to eq(true)
292
- expect(policy.log_payloads).to eq(false)
293
- expect(policy.send_blacklist).to eq({})
294
- expect(policy.send_whitelist).to eq({})
295
- expect(policy.use_send_whitelist).to eq(false)
296
- expect(policy.log_blacklist).to eq({})
297
- expect(policy.log_whitelist).to eq({})
298
- expect(policy.use_log_whitelist).to eq(false)
299
- end
300
- end
301
-
302
- context "with send_blacklist present" do
303
- context "but empty" do
304
- it "should have an empty send_blacklist" do
305
- policy_json = {
306
- "payloads" => {
307
- "send_payloads" => true,
308
- "send_blacklist" => {}
309
- }
310
- }
311
- policy = PayloadsPolicy.from_json(policy_json)
312
-
313
- expect(policy.send_payloads).to eq(true)
314
- expect(policy.log_payloads).to eq(false)
315
- expect(policy.send_blacklist).to eq({})
316
- expect(policy.send_whitelist).to eq({})
317
- expect(policy.use_send_whitelist).to eq(false)
318
- expect(policy.log_blacklist).to eq({})
319
- expect(policy.log_whitelist).to eq({})
320
- expect(policy.use_log_whitelist).to eq(false)
321
- end
322
- end
323
-
324
- context "with one item present" do
325
- it "should have it set in send_blacklist" do
326
- policy_json = {
327
- "payloads" => {
328
- "send_payloads" => true,
329
- "send_blacklist" => {
330
- "password" => ["*"]
331
- }
332
- }
333
- }
334
- policy = PayloadsPolicy.from_json(policy_json)
335
-
336
- expect(policy.send_payloads).to eq(true)
337
- expect(policy.log_payloads).to eq(false)
338
- expect(policy.send_blacklist).to eq({
339
- "password" => Set.new(["*"])
340
- })
341
- expect(policy.send_whitelist).to eq({})
342
- expect(policy.use_send_whitelist).to eq(false)
343
- expect(policy.log_blacklist).to eq({})
344
- expect(policy.log_whitelist).to eq({})
345
- expect(policy.use_log_whitelist).to eq(false)
346
- end
347
- end
348
-
349
- context "with two items present" do
350
- it "should have them set in send_blacklist" do
351
- policy_json = {
352
- "payloads" => {
353
- "send_payloads" => true,
354
- "send_blacklist" => {
355
- "username" => ["*"],
356
- "password" => ["*"]
357
- }
358
- }
359
- }
360
- policy = PayloadsPolicy.from_json(policy_json)
361
-
362
- expect(policy.send_payloads).to eq(true)
363
- expect(policy.log_payloads).to eq(false)
364
- expect(policy.send_blacklist).to eq({
365
- "username" => Set.new(["*"]),
366
- "password" => Set.new(["*"])
367
- })
368
- expect(policy.send_whitelist).to eq({})
369
- expect(policy.use_send_whitelist).to eq(false)
370
- expect(policy.log_blacklist).to eq({})
371
- expect(policy.log_whitelist).to eq({})
372
- expect(policy.use_log_whitelist).to eq(false)
373
- end
374
- end
375
- end
376
-
377
-
378
- context "with send_whitelist missing" do
379
- it "should have an empty send_whitelist" do
380
- policy_json = {
381
- "payloads" => {
382
- "send_payloads" => true
383
- }
384
- }
385
- policy = PayloadsPolicy.from_json(policy_json)
386
-
387
- expect(policy.send_payloads).to eq(true)
388
- expect(policy.log_payloads).to eq(false)
389
- expect(policy.send_blacklist).to eq({})
390
- expect(policy.send_whitelist).to eq({})
391
- expect(policy.use_send_whitelist).to eq(false)
392
- expect(policy.log_blacklist).to eq({})
393
- expect(policy.log_whitelist).to eq({})
394
- expect(policy.use_log_whitelist).to eq(false)
395
- end
396
- end
397
-
398
- context "with send_whitelist present" do
399
- context "but empty" do
400
- it "should have an empty send_whitelist" do
401
- policy_json = {
402
- "payloads" => {
403
- "send_payloads" => true,
404
- "send_whitelist" => {}
405
- }
406
- }
407
- policy = PayloadsPolicy.from_json(policy_json)
408
-
409
- expect(policy.send_payloads).to eq(true)
410
- expect(policy.log_payloads).to eq(false)
411
- expect(policy.send_blacklist).to eq({})
412
- expect(policy.send_whitelist).to eq({})
413
- expect(policy.use_send_whitelist).to eq(true)
414
- expect(policy.log_blacklist).to eq({})
415
- expect(policy.log_whitelist).to eq({})
416
- expect(policy.use_log_whitelist).to eq(false)
417
- end
418
- end
419
-
420
- context "with one item present" do
421
- it "should have an empty send_whitelist" do
422
- policy_json = {
423
- "payloads" => {
424
- "send_payloads" => true,
425
- "send_whitelist" => {
426
- "password" => ["*"]
427
- }
428
- }
429
- }
430
- policy = PayloadsPolicy.from_json(policy_json)
431
-
432
- expect(policy.send_payloads).to eq(true)
433
- expect(policy.log_payloads).to eq(false)
434
- expect(policy.send_blacklist).to eq({})
435
- expect(policy.send_whitelist).to eq({
436
- "password" => Set.new(["*"])
437
- })
438
- expect(policy.use_send_whitelist).to eq(true)
439
- expect(policy.log_blacklist).to eq({})
440
- expect(policy.log_whitelist).to eq({})
441
- expect(policy.use_log_whitelist).to eq(false)
442
- end
443
- end
444
-
445
- context "with two items present" do
446
- it "should have an empty send_whitelist" do
447
- policy_json = {
448
- "payloads" => {
449
- "send_payloads" => true,
450
- "send_whitelist" => {
451
- "username" => ["*"],
452
- "password" => ["*"]
453
- }
454
- }
455
- }
456
- policy = PayloadsPolicy.from_json(policy_json)
457
-
458
- expect(policy.send_payloads).to eq(true)
459
- expect(policy.log_payloads).to eq(false)
460
- expect(policy.send_blacklist).to eq({})
461
- expect(policy.send_whitelist).to eq({
462
- "username" => Set.new(["*"]),
463
- "password" => Set.new(["*"])
464
- })
465
- expect(policy.use_send_whitelist).to eq(true)
466
- expect(policy.log_blacklist).to eq({})
467
- expect(policy.log_whitelist).to eq({})
468
- expect(policy.use_log_whitelist).to eq(false)
469
- end
470
- end
471
- end
472
- end
473
-
474
- context "with log_payloads == false" do
475
- it "should have log_payloads disabled" do
476
- policy_json = {
477
- "payloads" => {
478
- "log_payloads" => false
479
- }
480
- }
481
- policy = PayloadsPolicy.from_json(policy_json)
482
-
483
- expect(policy.send_payloads).to eq(false)
484
- expect(policy.log_payloads).to eq(false)
485
- expect(policy.send_blacklist).to eq({})
486
- expect(policy.send_whitelist).to eq({})
487
- expect(policy.log_blacklist).to eq({})
488
- expect(policy.log_whitelist).to eq({})
489
- end
490
-
491
- context "with log_blacklist missing" do
492
- it "should have an empty log_blacklist" do
493
- policy_json = {
494
- "payloads" => {
495
- "log_payloads" => false
496
- }
497
- }
498
- policy = PayloadsPolicy.from_json(policy_json)
499
-
500
- expect(policy.send_payloads).to eq(false)
501
- expect(policy.log_payloads).to eq(false)
502
- expect(policy.send_blacklist).to eq({})
503
- expect(policy.send_whitelist).to eq({})
504
- expect(policy.use_send_whitelist).to eq(false)
505
- expect(policy.log_blacklist).to eq({})
506
- expect(policy.log_whitelist).to eq({})
507
- expect(policy.use_log_whitelist).to eq(false)
508
- end
509
- end
510
-
511
- context "with log_blacklist present" do
512
- context "but empty" do
513
- it "should have an empty log_blacklist" do
514
- policy_json = {
515
- "payloads" => {
516
- "log_payloads" => false,
517
- "log_blacklist" => {}
518
- }
519
- }
520
- policy = PayloadsPolicy.from_json(policy_json)
521
-
522
- expect(policy.send_payloads).to eq(false)
523
- expect(policy.log_payloads).to eq(false)
524
- expect(policy.send_blacklist).to eq({})
525
- expect(policy.send_whitelist).to eq({})
526
- expect(policy.use_send_whitelist).to eq(false)
527
- expect(policy.log_blacklist).to eq({})
528
- expect(policy.log_whitelist).to eq({})
529
- expect(policy.use_log_whitelist).to eq(false)
530
- end
531
- end
532
-
533
- context "with one item present" do
534
- it "should have an empty log_blacklist" do
535
- policy_json = {
536
- "payloads" => {
537
- "log_payloads" => false,
538
- "log_blacklist" => {
539
- "password" => ["*"]
540
- }
541
- }
542
- }
543
- policy = PayloadsPolicy.from_json(policy_json)
544
-
545
- expect(policy.send_payloads).to eq(false)
546
- expect(policy.log_payloads).to eq(false)
547
- expect(policy.send_blacklist).to eq({})
548
- expect(policy.send_whitelist).to eq({})
549
- expect(policy.use_send_whitelist).to eq(false)
550
- expect(policy.log_blacklist).to eq({})
551
- expect(policy.log_whitelist).to eq({})
552
- expect(policy.use_log_whitelist).to eq(false)
553
- end
554
- end
555
-
556
- context "with two items present" do
557
- it "should have an empty log_blacklist" do
558
- policy_json = {
559
- "payloads" => {
560
- "log_payloads" => false,
561
- "log_blacklist" => {
562
- "username" => ["*"],
563
- "password" => ["*"]
564
- }
565
- }
566
- }
567
- policy = PayloadsPolicy.from_json(policy_json)
568
-
569
- expect(policy.send_payloads).to eq(false)
570
- expect(policy.log_payloads).to eq(false)
571
- expect(policy.send_blacklist).to eq({})
572
- expect(policy.send_whitelist).to eq({})
573
- expect(policy.use_send_whitelist).to eq(false)
574
- expect(policy.log_blacklist).to eq({})
575
- expect(policy.log_whitelist).to eq({})
576
- expect(policy.use_log_whitelist).to eq(false)
577
- end
578
- end
579
- end
580
-
581
-
582
- context "with log_whitelist missing" do
583
- it "should have an empty log_whitelist" do
584
- policy_json = {
585
- "payloads" => {
586
- "log_payloads" => false
587
- }
588
- }
589
- policy = PayloadsPolicy.from_json(policy_json)
590
-
591
- expect(policy.send_payloads).to eq(false)
592
- expect(policy.log_payloads).to eq(false)
593
- expect(policy.send_blacklist).to eq({})
594
- expect(policy.send_whitelist).to eq({})
595
- expect(policy.use_send_whitelist).to eq(false)
596
- expect(policy.log_blacklist).to eq({})
597
- expect(policy.log_whitelist).to eq({})
598
- expect(policy.use_log_whitelist).to eq(false)
599
- end
600
- end
601
-
602
- context "with log_whitelist present" do
603
- context "but empty" do
604
- it "should have an empty log_whitelist" do
605
- policy_json = {
606
- "payloads" => {
607
- "log_payloads" => false,
608
- "log_whitelist" => {}
609
- }
610
- }
611
- policy = PayloadsPolicy.from_json(policy_json)
612
-
613
- expect(policy.send_payloads).to eq(false)
614
- expect(policy.log_payloads).to eq(false)
615
- expect(policy.send_blacklist).to eq({})
616
- expect(policy.send_whitelist).to eq({})
617
- expect(policy.use_send_whitelist).to eq(false)
618
- expect(policy.log_blacklist).to eq({})
619
- expect(policy.log_whitelist).to eq({})
620
- expect(policy.use_log_whitelist).to eq(false)
621
- end
622
- end
623
-
624
- context "with one item present" do
625
- it "should have an empty log_whitelist" do
626
- policy_json = {
627
- "payloads" => {
628
- "log_payloads" => false,
629
- "log_whitelist" => {
630
- "password" => ["*"]
631
- }
632
- }
633
- }
634
- policy = PayloadsPolicy.from_json(policy_json)
635
-
636
- expect(policy.send_payloads).to eq(false)
637
- expect(policy.log_payloads).to eq(false)
638
- expect(policy.send_blacklist).to eq({})
639
- expect(policy.send_whitelist).to eq({})
640
- expect(policy.use_send_whitelist).to eq(false)
641
- expect(policy.log_blacklist).to eq({})
642
- expect(policy.log_whitelist).to eq({})
643
- expect(policy.use_log_whitelist).to eq(false)
644
- end
645
- end
646
-
647
- context "with two items present" do
648
- it "should have an empty log_whitelist" do
649
- policy_json = {
650
- "payloads" => {
651
- "log_payloads" => false,
652
- "log_whitelist" => {
653
- "username" => ["*"],
654
- "password" => ["*"]
655
- }
656
- }
657
- }
658
- policy = PayloadsPolicy.from_json(policy_json)
659
-
660
- expect(policy.send_payloads).to eq(false)
661
- expect(policy.log_payloads).to eq(false)
662
- expect(policy.send_blacklist).to eq({})
663
- expect(policy.send_whitelist).to eq({})
664
- expect(policy.use_send_whitelist).to eq(false)
665
- expect(policy.log_blacklist).to eq({})
666
- expect(policy.log_whitelist).to eq({})
667
- expect(policy.use_log_whitelist).to eq(false)
668
- end
669
- end
670
- end
671
- end
672
-
673
- context "with log_payloads == true" do
674
- it "should have log_payloads enabled" do
675
- policy_json = {
676
- "payloads" => {
677
- "log_payloads" => true
678
- }
679
- }
680
- policy = PayloadsPolicy.from_json(policy_json)
681
-
682
- expect(policy.send_payloads).to eq(false)
683
- expect(policy.log_payloads).to eq(true)
684
- expect(policy.send_blacklist).to eq({})
685
- expect(policy.send_whitelist).to eq({})
686
- expect(policy.log_blacklist).to eq({})
687
- expect(policy.log_whitelist).to eq({})
688
- end
689
-
690
- context "with log_blacklist missing" do
691
- it "should have an empty log_blacklist" do
692
- policy_json = {
693
- "payloads" => {
694
- "log_payloads" => true
695
- }
696
- }
697
- policy = PayloadsPolicy.from_json(policy_json)
698
-
699
- expect(policy.send_payloads).to eq(false)
700
- expect(policy.log_payloads).to eq(true)
701
- expect(policy.send_blacklist).to eq({})
702
- expect(policy.send_whitelist).to eq({})
703
- expect(policy.use_send_whitelist).to eq(false)
704
- expect(policy.log_blacklist).to eq({})
705
- expect(policy.log_whitelist).to eq({})
706
- expect(policy.use_log_whitelist).to eq(false)
707
- end
708
- end
709
-
710
- context "with log_blacklist present" do
711
- context "but empty" do
712
- it "should have an empty log_blacklist" do
713
- policy_json = {
714
- "payloads" => {
715
- "log_payloads" => true,
716
- "log_blacklist" => {}
717
- }
718
- }
719
- policy = PayloadsPolicy.from_json(policy_json)
720
-
721
- expect(policy.send_payloads).to eq(false)
722
- expect(policy.log_payloads).to eq(true)
723
- expect(policy.send_blacklist).to eq({})
724
- expect(policy.send_whitelist).to eq({})
725
- expect(policy.use_send_whitelist).to eq(false)
726
- expect(policy.log_blacklist).to eq({})
727
- expect(policy.log_whitelist).to eq({})
728
- expect(policy.use_log_whitelist).to eq(false)
729
- end
730
- end
731
-
732
- context "with one item present" do
733
- it "should have it set in log_blacklist" do
734
- policy_json = {
735
- "payloads" => {
736
- "log_payloads" => true,
737
- "log_blacklist" => {
738
- "password" => ["*"]
739
- }
740
- }
741
- }
742
- policy = PayloadsPolicy.from_json(policy_json)
743
-
744
- expect(policy.send_payloads).to eq(false)
745
- expect(policy.log_payloads).to eq(true)
746
- expect(policy.send_blacklist).to eq({})
747
- expect(policy.send_whitelist).to eq({})
748
- expect(policy.use_send_whitelist).to eq(false)
749
- expect(policy.log_blacklist).to eq({
750
- "password" => Set.new(["*"])
751
- })
752
- expect(policy.log_whitelist).to eq({})
753
- expect(policy.use_log_whitelist).to eq(false)
754
- end
755
- end
756
-
757
- context "with two items present" do
758
- it "should have them set in log_blacklist" do
759
- policy_json = {
760
- "payloads" => {
761
- "log_payloads" => true,
762
- "log_blacklist" => {
763
- "username" => ["*"],
764
- "password" => ["*"]
765
- }
766
- }
767
- }
768
- policy = PayloadsPolicy.from_json(policy_json)
769
-
770
- expect(policy.send_payloads).to eq(false)
771
- expect(policy.log_payloads).to eq(true)
772
- expect(policy.send_blacklist).to eq({})
773
- expect(policy.send_whitelist).to eq({})
774
- expect(policy.use_send_whitelist).to eq(false)
775
- expect(policy.log_blacklist).to eq({
776
- "username" => Set.new(["*"]),
777
- "password" => Set.new(["*"])
778
- })
779
- expect(policy.log_whitelist).to eq({})
780
- expect(policy.use_log_whitelist).to eq(false)
781
- end
782
- end
783
- end
784
-
785
-
786
- context "with log_whitelist missing" do
787
- it "should have an empty log_whitelist" do
788
- policy_json = {
789
- "payloads" => {
790
- "log_payloads" => true
791
- }
792
- }
793
- policy = PayloadsPolicy.from_json(policy_json)
794
-
795
- expect(policy.send_payloads).to eq(false)
796
- expect(policy.log_payloads).to eq(true)
797
- expect(policy.send_blacklist).to eq({})
798
- expect(policy.send_whitelist).to eq({})
799
- expect(policy.use_send_whitelist).to eq(false)
800
- expect(policy.log_blacklist).to eq({})
801
- expect(policy.log_whitelist).to eq({})
802
- expect(policy.use_log_whitelist).to eq(false)
803
- end
804
- end
805
-
806
- context "with log_whitelist present" do
807
- context "but empty" do
808
- it "should have an empty log_whitelist" do
809
- policy_json = {
810
- "payloads" => {
811
- "log_payloads" => true,
812
- "log_whitelist" => {}
813
- }
814
- }
815
- policy = PayloadsPolicy.from_json(policy_json)
816
-
817
- expect(policy.send_payloads).to eq(false)
818
- expect(policy.log_payloads).to eq(true)
819
- expect(policy.send_blacklist).to eq({})
820
- expect(policy.send_whitelist).to eq({})
821
- expect(policy.use_send_whitelist).to eq(false)
822
- expect(policy.log_blacklist).to eq({})
823
- expect(policy.log_whitelist).to eq({})
824
- expect(policy.use_log_whitelist).to eq(true)
825
- end
826
- end
827
-
828
- context "with one item present" do
829
- it "should have it set in log_whitelist" do
830
- policy_json = {
831
- "payloads" => {
832
- "log_payloads" => true,
833
- "log_whitelist" => {
834
- "password" => ["*"]
835
- }
836
- }
837
- }
838
- policy = PayloadsPolicy.from_json(policy_json)
839
-
840
- expect(policy.send_payloads).to eq(false)
841
- expect(policy.log_payloads).to eq(true)
842
- expect(policy.send_blacklist).to eq({})
843
- expect(policy.send_whitelist).to eq({})
844
- expect(policy.use_send_whitelist).to eq(false)
845
- expect(policy.log_blacklist).to eq({})
846
- expect(policy.log_whitelist).to eq({
847
- "password" => Set.new(["*"])
848
- })
849
- expect(policy.use_log_whitelist).to eq(true)
850
- end
851
- end
852
-
853
- context "with two items present" do
854
- it "should have them set in log_whitelist" do
855
- policy_json = {
856
- "payloads" => {
857
- "log_payloads" => true,
858
- "log_whitelist" => {
859
- "username" => ["*"],
860
- "password" => ["*"]
861
- }
862
- }
863
- }
864
- policy = PayloadsPolicy.from_json(policy_json)
865
-
866
- expect(policy.send_payloads).to eq(false)
867
- expect(policy.log_payloads).to eq(true)
868
- expect(policy.send_blacklist).to eq({})
869
- expect(policy.send_whitelist).to eq({})
870
- expect(policy.use_send_whitelist).to eq(false)
871
- expect(policy.log_blacklist).to eq({})
872
- expect(policy.log_whitelist).to eq({
873
- "username" => Set.new(["*"]),
874
- "password" => Set.new(["*"])
875
- })
876
- expect(policy.use_log_whitelist).to eq(true)
877
- end
878
- end
879
- end
880
- end
881
- end
882
- end
883
- end
884
- end
885
- end
886
-
887
- end
888
-
889
- end
890
- end