tcell_agent 0.2.18 → 0.2.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +11 -0
  3. data/lib/tcell_agent/configuration.rb +8 -1
  4. data/lib/tcell_agent/instrumentation.rb +14 -10
  5. data/lib/tcell_agent/logger.rb +23 -23
  6. data/lib/tcell_agent/policies/appsensor/database_sensor.rb +61 -0
  7. data/lib/tcell_agent/policies/appsensor/injection_sensor.rb +10 -2
  8. data/lib/tcell_agent/policies/appsensor/misc_sensor.rb +66 -0
  9. data/lib/tcell_agent/policies/appsensor/response_codes_sensor.rb +11 -3
  10. data/lib/tcell_agent/policies/appsensor/size_sensor.rb +6 -5
  11. data/lib/tcell_agent/policies/appsensor/user_agent_sensor.rb +47 -0
  12. data/lib/tcell_agent/policies/appsensor_policy.rb +68 -5
  13. data/lib/tcell_agent/policies/patches_policy.rb +2 -2
  14. data/lib/tcell_agent/rails.rb +3 -0
  15. data/lib/tcell_agent/rails/auth/authlogic.rb +2 -2
  16. data/lib/tcell_agent/rails/auth/devise.rb +4 -4
  17. data/lib/tcell_agent/rails/better_ip.rb +36 -0
  18. data/lib/tcell_agent/rails/csrf_exception.rb +30 -0
  19. data/lib/tcell_agent/rails/dlp.rb +38 -76
  20. data/lib/tcell_agent/rails/middleware/body_filter_middleware.rb +5 -5
  21. data/lib/tcell_agent/rails/middleware/context_middleware.rb +6 -4
  22. data/lib/tcell_agent/rails/middleware/global_middleware.rb +7 -7
  23. data/lib/tcell_agent/rails/middleware/headers_middleware.rb +15 -15
  24. data/lib/tcell_agent/rails/path_parameters_setter.rb +43 -0
  25. data/lib/tcell_agent/rails/routes.rb +4 -4
  26. data/lib/tcell_agent/sensor_events/appsensor_meta_event.rb +11 -6
  27. data/lib/tcell_agent/version.rb +1 -1
  28. data/spec/lib/tcell_agent/policies/appsensor/database_sensor_spec.rb +165 -0
  29. data/spec/lib/tcell_agent/policies/appsensor/misc_sensor_spec.rb +432 -0
  30. data/spec/lib/tcell_agent/policies/appsensor/request_size_sensor_spec.rb +4 -4
  31. data/spec/lib/tcell_agent/policies/appsensor/response_codes_sensor_spec.rb +99 -24
  32. data/spec/lib/tcell_agent/policies/appsensor/response_size_sensor_spec.rb +4 -4
  33. data/spec/lib/tcell_agent/policies/appsensor/user_agent_sensor_spec.rb +156 -0
  34. data/spec/lib/tcell_agent/policies/appsensor/xss_sensor_spec.rb +175 -0
  35. data/spec/lib/tcell_agent/policies/appsensor_policy_spec.rb +79 -0
  36. data/spec/lib/tcell_agent/rails/better_ip_spec.rb +76 -0
  37. metadata +16 -2
@@ -43,6 +43,9 @@ module TCellAgent
43
43
  expect(empty_policy.options["nullbyte"]).to be_nil
44
44
  expect(empty_policy.options["retr"]).to be_nil
45
45
  expect(empty_policy.options["login"]).to be_nil
46
+ expect(empty_policy.options["ua"]).to be_nil
47
+ expect(empty_policy.options["errors"]).to be_nil
48
+ expect(empty_policy.options["database"]).to be_nil
46
49
  end
47
50
  end
48
51
 
@@ -70,6 +73,9 @@ module TCellAgent
70
73
  expect(empty_policy.options["nullbyte"]).to be_nil
71
74
  expect(empty_policy.options["retr"]).to be_nil
72
75
  expect(empty_policy.options["login"]).to be_nil
76
+ expect(empty_policy.options["ua"]).to be_nil
77
+ expect(empty_policy.options["errors"]).to be_nil
78
+ expect(empty_policy.options["database"]).to be_nil
73
79
  end
74
80
  end
75
81
 
@@ -97,6 +103,9 @@ module TCellAgent
97
103
  expect(policy.options["nullbyte"]).to_not be_nil
98
104
  expect(policy.options["retr"]).to_not be_nil
99
105
  expect(policy.options["login"]).to_not be_nil
106
+ expect(policy.options["ua"]).to_not be_nil
107
+ expect(policy.options["errors"]).to_not be_nil
108
+ expect(policy.options["database"]).to_not be_nil
100
109
 
101
110
  expect(policy.options["req_size"].enabled).to eq(false)
102
111
  expect(policy.options["resp_size"].enabled).to eq(false)
@@ -108,6 +117,12 @@ module TCellAgent
108
117
  expect(policy.options["nullbyte"].enabled).to eq(true)
109
118
  expect(policy.options["retr"].enabled).to eq(false)
110
119
  expect(policy.options["login"].enabled).to eq(false)
120
+ expect(policy.options["ua"].enabled).to eq(false)
121
+ expect(policy.options["ua"].empty_enabled).to eq(false)
122
+ expect(policy.options["errors"].enabled).to eq(false)
123
+ expect(policy.options["errors"].csrf_exception_enabled).to eq(false)
124
+ expect(policy.options["errors"].sql_exception_enabled).to eq(false)
125
+ expect(policy.options["database"].enabled).to eq(false)
111
126
 
112
127
  expect(policy.options["xss"].v1_compatability_enabled).to eq(true)
113
128
  expect(policy.options["sqli"].v1_compatability_enabled).to eq(true)
@@ -142,6 +157,9 @@ module TCellAgent
142
157
  expect(empty_policy.options["nullbyte"]).to_not be_nil
143
158
  expect(empty_policy.options["retr"]).to_not be_nil
144
159
  expect(empty_policy.options["login"]).to_not be_nil
160
+ expect(empty_policy.options["ua"]).to_not be_nil
161
+ expect(empty_policy.options["errors"]).to_not be_nil
162
+ expect(empty_policy.options["database"]).to_not be_nil
145
163
 
146
164
  expect(empty_policy.options["req_size"].enabled).to eq(false)
147
165
  expect(empty_policy.options["resp_size"].enabled).to eq(false)
@@ -153,6 +171,12 @@ module TCellAgent
153
171
  expect(empty_policy.options["nullbyte"].enabled).to eq(false)
154
172
  expect(empty_policy.options["retr"].enabled).to eq(false)
155
173
  expect(empty_policy.options["login"].enabled).to eq(false)
174
+ expect(empty_policy.options["ua"].enabled).to eq(false)
175
+ expect(empty_policy.options["ua"].empty_enabled).to eq(false)
176
+ expect(empty_policy.options["errors"].enabled).to eq(false)
177
+ expect(empty_policy.options["errors"].csrf_exception_enabled).to eq(false)
178
+ expect(empty_policy.options["errors"].sql_exception_enabled).to eq(false)
179
+ expect(empty_policy.options["database"].enabled).to eq(false)
156
180
 
157
181
  expect(empty_policy.options["xss"].v1_compatability_enabled).to eq(true)
158
182
  expect(empty_policy.options["sqli"].v1_compatability_enabled).to eq(true)
@@ -197,6 +221,9 @@ module TCellAgent
197
221
  expect(policy.options["nullbyte"]).to_not be_nil
198
222
  expect(policy.options["retr"]).to_not be_nil
199
223
  expect(policy.options["login"]).to_not be_nil
224
+ expect(policy.options["ua"]).to_not be_nil
225
+ expect(policy.options["errors"]).to_not be_nil
226
+ expect(policy.options["database"]).to_not be_nil
200
227
 
201
228
  expect(policy.options["req_size"].enabled).to eq(true)
202
229
  expect(policy.options["resp_size"].enabled).to eq(true)
@@ -208,6 +235,12 @@ module TCellAgent
208
235
  expect(policy.options["nullbyte"].enabled).to eq(true)
209
236
  expect(policy.options["retr"].enabled).to eq(true)
210
237
  expect(policy.options["login"].enabled).to eq(true)
238
+ expect(policy.options["ua"].enabled).to eq(false)
239
+ expect(policy.options["ua"].empty_enabled).to eq(false)
240
+ expect(policy.options["errors"].enabled).to eq(false)
241
+ expect(policy.options["errors"].csrf_exception_enabled).to eq(false)
242
+ expect(policy.options["errors"].sql_exception_enabled).to eq(false)
243
+ expect(policy.options["database"].enabled).to eq(false)
211
244
 
212
245
  expect(policy.options["xss"].v1_compatability_enabled).to eq(true)
213
246
  expect(policy.options["sqli"].v1_compatability_enabled).to eq(true)
@@ -256,6 +289,9 @@ module TCellAgent
256
289
  expect(empty_policy.options["nullbyte"]).to be_nil
257
290
  expect(empty_policy.options["retr"]).to be_nil
258
291
  expect(empty_policy.options["login"]).to be_nil
292
+ expect(empty_policy.options["ua"]).to be_nil
293
+ expect(empty_policy.options["errors"]).to be_nil
294
+ expect(empty_policy.options["database"]).to be_nil
259
295
  end
260
296
  end
261
297
 
@@ -285,6 +321,9 @@ module TCellAgent
285
321
  expect(empty_policy.options["nullbyte"]).to be_nil
286
322
  expect(empty_policy.options["retr"]).to be_nil
287
323
  expect(empty_policy.options["login"]).to be_nil
324
+ expect(empty_policy.options["ua"]).to be_nil
325
+ expect(empty_policy.options["errors"]).to be_nil
326
+ expect(empty_policy.options["database"]).to be_nil
288
327
  end
289
328
  end
290
329
 
@@ -317,6 +356,9 @@ module TCellAgent
317
356
  expect(policy.options["nullbyte"]).to_not be_nil
318
357
  expect(policy.options["retr"]).to_not be_nil
319
358
  expect(policy.options["login"]).to_not be_nil
359
+ expect(policy.options["ua"]).to_not be_nil
360
+ expect(policy.options["errors"]).to_not be_nil
361
+ expect(policy.options["database"]).to_not be_nil
320
362
 
321
363
  expect(policy.options["req_size"].enabled).to eq(false)
322
364
  expect(policy.options["resp_size"].enabled).to eq(false)
@@ -328,6 +370,12 @@ module TCellAgent
328
370
  expect(policy.options["nullbyte"].enabled).to eq(true)
329
371
  expect(policy.options["retr"].enabled).to eq(false)
330
372
  expect(policy.options["login"].enabled).to eq(false)
373
+ expect(policy.options["ua"].enabled).to eq(false)
374
+ expect(policy.options["ua"].empty_enabled).to eq(false)
375
+ expect(policy.options["errors"].enabled).to eq(false)
376
+ expect(policy.options["errors"].csrf_exception_enabled).to eq(false)
377
+ expect(policy.options["errors"].sql_exception_enabled).to eq(false)
378
+ expect(policy.options["database"].enabled).to eq(false)
331
379
 
332
380
  expect(policy.options["xss"].v1_compatability_enabled).to eq(false)
333
381
  expect(policy.options["sqli"].v1_compatability_enabled).to eq(false)
@@ -371,6 +419,9 @@ module TCellAgent
371
419
  expect(policy.options["nullbyte"]).to_not be_nil
372
420
  expect(policy.options["retr"]).to_not be_nil
373
421
  expect(policy.options["login"]).to_not be_nil
422
+ expect(policy.options["ua"]).to_not be_nil
423
+ expect(policy.options["errors"]).to_not be_nil
424
+ expect(policy.options["database"]).to_not be_nil
374
425
 
375
426
  expect(policy.options["req_size"].enabled).to eq(false)
376
427
  expect(policy.options["resp_size"].enabled).to eq(false)
@@ -382,6 +433,12 @@ module TCellAgent
382
433
  expect(policy.options["nullbyte"].enabled).to eq(false)
383
434
  expect(policy.options["retr"].enabled).to eq(false)
384
435
  expect(policy.options["login"].enabled).to eq(false)
436
+ expect(policy.options["ua"].enabled).to eq(false)
437
+ expect(policy.options["ua"].empty_enabled).to eq(false)
438
+ expect(policy.options["errors"].enabled).to eq(false)
439
+ expect(policy.options["errors"].csrf_exception_enabled).to eq(false)
440
+ expect(policy.options["errors"].sql_exception_enabled).to eq(false)
441
+ expect(policy.options["database"].enabled).to eq(false)
385
442
 
386
443
  expect(policy.options["xss"].v1_compatability_enabled).to eq(false)
387
444
  expect(policy.options["sqli"].v1_compatability_enabled).to eq(false)
@@ -442,12 +499,24 @@ module TCellAgent
442
499
  "retr" => {
443
500
  "patterns" => ["1","2"]
444
501
  },
502
+ "ua" => {
503
+ "empty_enabled" => true,
504
+ },
445
505
  "login" => {
446
506
  "lgnSccss_enabled" => true,
447
507
  "lgnFlr_enabled" => true,
448
508
  "psswdRstReq" => true,
449
509
  "psswdRstAttmpt" => true,
450
510
  "psswdRst" => true
511
+ },
512
+ "errors" => {
513
+ "csrf_exception_enabled" => true,
514
+ "sql_exception_enabled" => true
515
+ },
516
+ "database" => {
517
+ "large_result" => {
518
+ "limit" => 10
519
+ }
451
520
  }
452
521
  }
453
522
  }
@@ -466,6 +535,9 @@ module TCellAgent
466
535
  expect(policy.options["nullbyte"]).to_not be_nil
467
536
  expect(policy.options["retr"]).to_not be_nil
468
537
  expect(policy.options["login"]).to_not be_nil
538
+ expect(policy.options["ua"]).to_not be_nil
539
+ expect(policy.options["errors"]).to_not be_nil
540
+ expect(policy.options["database"]).to_not be_nil
469
541
 
470
542
  expect(policy.options["req_size"].enabled).to eq(true)
471
543
  expect(policy.options["resp_size"].enabled).to eq(true)
@@ -477,6 +549,13 @@ module TCellAgent
477
549
  expect(policy.options["nullbyte"].enabled).to eq(true)
478
550
  expect(policy.options["retr"].enabled).to eq(true)
479
551
  expect(policy.options["login"].enabled).to eq(true)
552
+ expect(policy.options["ua"].enabled).to eq(true)
553
+ expect(policy.options["ua"].empty_enabled).to eq(true)
554
+ expect(policy.options["errors"].enabled).to eq(true)
555
+ expect(policy.options["errors"].csrf_exception_enabled).to eq(true)
556
+ expect(policy.options["errors"].sql_exception_enabled).to eq(true)
557
+ expect(policy.options["database"].enabled).to eq(true)
558
+ expect(policy.options["database"].max_rows).to eq(10)
480
559
 
481
560
  expect(policy.options["xss"].v1_compatability_enabled).to eq(false)
482
561
  expect(policy.options["sqli"].v1_compatability_enabled).to eq(false)
@@ -0,0 +1,76 @@
1
+ require 'spec_helper'
2
+
3
+ module TCellAgent
4
+ module Utils
5
+
6
+ describe ".better_ip" do
7
+
8
+ context "with reverse_proxy off" do
9
+ it "should return the normal ip" do
10
+ configuration = double("configuration")
11
+ request = double("request", ip: "127.0.0.0")
12
+
13
+ expect(TCellAgent).to receive(:configuration).and_return(configuration)
14
+ expect(configuration).to receive(:reverse_proxy).and_return(false)
15
+ expect(Rails.better_ip(request)).to eq("127.0.0.0")
16
+ end
17
+ end
18
+
19
+ context "with reverse_proxy on" do
20
+ context "with empty reverse_proxy_ip_address_header" do
21
+ it "should return normal ip" do
22
+ configuration = double("configuration")
23
+ request = double("request", ip: "127.0.0.0")
24
+ env = double("env")
25
+
26
+ expect(TCellAgent).to receive(:configuration).and_return(configuration)
27
+ expect(configuration).to receive(:reverse_proxy).and_return(true)
28
+ expect(TCellAgent).to receive(:configuration).and_return(configuration)
29
+ expect(configuration).to receive(:reverse_proxy_ip_address_header).and_return("")
30
+ expect(request).to receive(:env).and_return(env)
31
+ expect(env).to receive(:[]).with("HTTP_X_FORWARDED_FOR").and_return("")
32
+ expect(Rails.better_ip(request)).to eq("127.0.0.0")
33
+ end
34
+ end
35
+
36
+ context "with reverse_proxy_ip_address_header that doesn't exist" do
37
+ it "should return normal ip" do
38
+ configuration = double("configuration")
39
+ request = double("request", ip: "127.0.0.0")
40
+ env = double("env")
41
+
42
+ expect(TCellAgent).to receive(:configuration).and_return(configuration)
43
+ expect(configuration).to receive(:reverse_proxy).and_return(true)
44
+ expect(TCellAgent).to receive(:configuration).and_return(configuration)
45
+ expect(configuration).to receive(:reverse_proxy_ip_address_header).and_return(
46
+ "weird-http-proxy-header"
47
+ )
48
+ expect(request).to receive(:env).and_return(env)
49
+ expect(env).to receive(:[]).with("HTTP_WEIRD_HTTP_PROXY_HEADER").and_return(nil)
50
+ expect(Rails.better_ip(request)).to eq("127.0.0.0")
51
+ end
52
+ end
53
+
54
+ context "with reverse_proxy_ip_address_header that exists" do
55
+ it "should return proxied ip" do
56
+ configuration = double("configuration")
57
+ request = double("request", ip: "127.0.0.0")
58
+ env = double("env")
59
+
60
+ expect(TCellAgent).to receive(:configuration).and_return(configuration)
61
+ expect(configuration).to receive(:reverse_proxy).and_return(true)
62
+ expect(TCellAgent).to receive(:configuration).and_return(configuration)
63
+ expect(configuration).to receive(:reverse_proxy_ip_address_header).and_return(
64
+ "X-Real-IP"
65
+ )
66
+ expect(request).to receive(:env).and_return(env)
67
+ expect(env).to receive(:[]).with("HTTP_X_REAL_IP").and_return("192.168.99.100")
68
+ expect(Rails.better_ip(request)).to eq("192.168.99.100")
69
+ end
70
+ end
71
+ end
72
+
73
+ end
74
+
75
+ end
76
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tcell_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.18
4
+ version: 0.2.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garrett
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-08 00:00:00.000000000 Z
11
+ date: 2016-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -135,9 +135,11 @@ files:
135
135
  - lib/tcell_agent/instrumentation.rb
136
136
  - lib/tcell_agent/logger.rb
137
137
  - lib/tcell_agent/policies/appsensor/cmdi_sensor.rb
138
+ - lib/tcell_agent/policies/appsensor/database_sensor.rb
138
139
  - lib/tcell_agent/policies/appsensor/fpt_sensor.rb
139
140
  - lib/tcell_agent/policies/appsensor/injection_sensor.rb
140
141
  - lib/tcell_agent/policies/appsensor/login_sensor.rb
142
+ - lib/tcell_agent/policies/appsensor/misc_sensor.rb
141
143
  - lib/tcell_agent/policies/appsensor/nullbyte_sensor.rb
142
144
  - lib/tcell_agent/policies/appsensor/request_size_sensor.rb
143
145
  - lib/tcell_agent/policies/appsensor/response_codes_sensor.rb
@@ -146,6 +148,7 @@ files:
146
148
  - lib/tcell_agent/policies/appsensor/sensor.rb
147
149
  - lib/tcell_agent/policies/appsensor/size_sensor.rb
148
150
  - lib/tcell_agent/policies/appsensor/sqli_sensor.rb
151
+ - lib/tcell_agent/policies/appsensor/user_agent_sensor.rb
149
152
  - lib/tcell_agent/policies/appsensor/xss_sensor.rb
150
153
  - lib/tcell_agent/policies/appsensor_policy.rb
151
154
  - lib/tcell_agent/policies/clickjacking_policy.rb
@@ -159,12 +162,15 @@ files:
159
162
  - lib/tcell_agent/policies/secure_headers_policy.rb
160
163
  - lib/tcell_agent/rails/auth/authlogic.rb
161
164
  - lib/tcell_agent/rails/auth/devise.rb
165
+ - lib/tcell_agent/rails/better_ip.rb
166
+ - lib/tcell_agent/rails/csrf_exception.rb
162
167
  - lib/tcell_agent/rails/dlp.rb
163
168
  - lib/tcell_agent/rails/middleware/body_filter_middleware.rb
164
169
  - lib/tcell_agent/rails/middleware/context_middleware.rb
165
170
  - lib/tcell_agent/rails/middleware/global_middleware.rb
166
171
  - lib/tcell_agent/rails/middleware/headers_middleware.rb
167
172
  - lib/tcell_agent/rails/on_start.rb
173
+ - lib/tcell_agent/rails/path_parameters_setter.rb
168
174
  - lib/tcell_agent/rails/routes.rb
169
175
  - lib/tcell_agent/rails/settings_reporter.rb
170
176
  - lib/tcell_agent/rails.rb
@@ -251,14 +257,17 @@ files:
251
257
  - spec/lib/tcell_agent/configuration_spec.rb
252
258
  - spec/lib/tcell_agent/instrumentation_spec.rb
253
259
  - spec/lib/tcell_agent/policies/appsensor/cmdi_sensor_spec.rb
260
+ - spec/lib/tcell_agent/policies/appsensor/database_sensor_spec.rb
254
261
  - spec/lib/tcell_agent/policies/appsensor/fpt_sensor_spec.rb
255
262
  - spec/lib/tcell_agent/policies/appsensor/login_sensor_spec.rb
263
+ - spec/lib/tcell_agent/policies/appsensor/misc_sensor_spec.rb
256
264
  - spec/lib/tcell_agent/policies/appsensor/nullbyte_sensor_spec.rb
257
265
  - spec/lib/tcell_agent/policies/appsensor/request_size_sensor_spec.rb
258
266
  - spec/lib/tcell_agent/policies/appsensor/response_codes_sensor_spec.rb
259
267
  - spec/lib/tcell_agent/policies/appsensor/response_size_sensor_spec.rb
260
268
  - spec/lib/tcell_agent/policies/appsensor/retr_sensor_spec.rb
261
269
  - spec/lib/tcell_agent/policies/appsensor/sqli_sensor_spec.rb
270
+ - spec/lib/tcell_agent/policies/appsensor/user_agent_sensor_spec.rb
262
271
  - spec/lib/tcell_agent/policies/appsensor/xss_sensor_spec.rb
263
272
  - spec/lib/tcell_agent/policies/appsensor_policy_spec.rb
264
273
  - spec/lib/tcell_agent/policies/clickjacking_policy_spec.rb
@@ -270,6 +279,7 @@ files:
270
279
  - spec/lib/tcell_agent/policies/login_policy_spec.rb
271
280
  - spec/lib/tcell_agent/policies/patches_policy_spec.rb
272
281
  - spec/lib/tcell_agent/policies/secure_headers_policy_spec.rb
282
+ - spec/lib/tcell_agent/rails/better_ip_spec.rb
273
283
  - spec/lib/tcell_agent/rails/logger_spec.rb
274
284
  - spec/lib/tcell_agent/rails/middleware/appsensor_middleware_spec.rb
275
285
  - spec/lib/tcell_agent/rails/middleware/dlp_middleware_spec.rb
@@ -375,14 +385,17 @@ test_files:
375
385
  - spec/lib/tcell_agent/configuration_spec.rb
376
386
  - spec/lib/tcell_agent/instrumentation_spec.rb
377
387
  - spec/lib/tcell_agent/policies/appsensor/cmdi_sensor_spec.rb
388
+ - spec/lib/tcell_agent/policies/appsensor/database_sensor_spec.rb
378
389
  - spec/lib/tcell_agent/policies/appsensor/fpt_sensor_spec.rb
379
390
  - spec/lib/tcell_agent/policies/appsensor/login_sensor_spec.rb
391
+ - spec/lib/tcell_agent/policies/appsensor/misc_sensor_spec.rb
380
392
  - spec/lib/tcell_agent/policies/appsensor/nullbyte_sensor_spec.rb
381
393
  - spec/lib/tcell_agent/policies/appsensor/request_size_sensor_spec.rb
382
394
  - spec/lib/tcell_agent/policies/appsensor/response_codes_sensor_spec.rb
383
395
  - spec/lib/tcell_agent/policies/appsensor/response_size_sensor_spec.rb
384
396
  - spec/lib/tcell_agent/policies/appsensor/retr_sensor_spec.rb
385
397
  - spec/lib/tcell_agent/policies/appsensor/sqli_sensor_spec.rb
398
+ - spec/lib/tcell_agent/policies/appsensor/user_agent_sensor_spec.rb
386
399
  - spec/lib/tcell_agent/policies/appsensor/xss_sensor_spec.rb
387
400
  - spec/lib/tcell_agent/policies/appsensor_policy_spec.rb
388
401
  - spec/lib/tcell_agent/policies/clickjacking_policy_spec.rb
@@ -394,6 +407,7 @@ test_files:
394
407
  - spec/lib/tcell_agent/policies/login_policy_spec.rb
395
408
  - spec/lib/tcell_agent/policies/patches_policy_spec.rb
396
409
  - spec/lib/tcell_agent/policies/secure_headers_policy_spec.rb
410
+ - spec/lib/tcell_agent/rails/better_ip_spec.rb
397
411
  - spec/lib/tcell_agent/rails/logger_spec.rb
398
412
  - spec/lib/tcell_agent/rails/middleware/appsensor_middleware_spec.rb
399
413
  - spec/lib/tcell_agent/rails/middleware/dlp_middleware_spec.rb