tcell_agent 0.2.18 → 0.2.19

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 (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