tcell_agent 0.2.19 → 0.2.21

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE_libinjection +32 -0
  3. data/Rakefile +14 -1
  4. data/ext/libinjection/extconf.rb +3 -0
  5. data/ext/libinjection/libinjection.h +65 -0
  6. data/ext/libinjection/libinjection_html5.c +847 -0
  7. data/ext/libinjection/libinjection_html5.h +54 -0
  8. data/ext/libinjection/libinjection_sqli.c +2317 -0
  9. data/ext/libinjection/libinjection_sqli.h +295 -0
  10. data/ext/libinjection/libinjection_sqli_data.h +9004 -0
  11. data/ext/libinjection/libinjection_wrap.c +3525 -0
  12. data/ext/libinjection/libinjection_xss.c +531 -0
  13. data/ext/libinjection/libinjection_xss.h +21 -0
  14. data/lib/tcell_agent/configuration.rb +0 -48
  15. data/lib/tcell_agent/logger.rb +1 -0
  16. data/lib/tcell_agent/policies/appsensor/database_sensor.rb +8 -20
  17. data/lib/tcell_agent/policies/appsensor/injection_sensor.rb +30 -46
  18. data/lib/tcell_agent/policies/appsensor/login_sensor.rb +1 -4
  19. data/lib/tcell_agent/policies/appsensor/misc_sensor.rb +8 -22
  20. data/lib/tcell_agent/policies/appsensor/payloads_policy.rb +143 -0
  21. data/lib/tcell_agent/policies/appsensor/response_codes_sensor.rb +3 -1
  22. data/lib/tcell_agent/policies/appsensor/sensor.rb +21 -2
  23. data/lib/tcell_agent/policies/appsensor/size_sensor.rb +3 -1
  24. data/lib/tcell_agent/policies/appsensor/sqli_sensor.rb +9 -0
  25. data/lib/tcell_agent/policies/appsensor/user_agent_sensor.rb +1 -5
  26. data/lib/tcell_agent/policies/appsensor/xss_sensor.rb +9 -1
  27. data/lib/tcell_agent/policies/appsensor_policy.rb +40 -19
  28. data/lib/tcell_agent/policies/http_redirect_policy.rb +12 -2
  29. data/lib/tcell_agent/rails/csrf_exception.rb +1 -1
  30. data/lib/tcell_agent/rails/dlp.rb +98 -76
  31. data/lib/tcell_agent/rails/middleware/global_middleware.rb +1 -2
  32. data/lib/tcell_agent/rails/middleware/headers_middleware.rb +2 -2
  33. data/lib/tcell_agent/rails/on_start.rb +53 -20
  34. data/lib/tcell_agent/sensor_events/appsensor_event.rb +12 -19
  35. data/lib/tcell_agent/sensor_events/appsensor_meta_event.rb +7 -2
  36. data/lib/tcell_agent/sensor_events/sensor.rb +10 -11
  37. data/lib/tcell_agent/sensor_events/server_agent.rb +17 -12
  38. data/lib/tcell_agent/sensor_events/util/sanitizer_utilities.rb +148 -139
  39. data/lib/tcell_agent/utils/params.rb +24 -21
  40. data/lib/tcell_agent/version.rb +1 -1
  41. data/spec/lib/tcell_agent/configuration_spec.rb +0 -179
  42. data/spec/lib/tcell_agent/policies/appsensor/database_sensor_spec.rb +6 -4
  43. data/spec/lib/tcell_agent/policies/appsensor/misc_sensor_spec.rb +31 -22
  44. data/spec/lib/tcell_agent/policies/appsensor/payloads_policy_apply_spec.rb +466 -0
  45. data/spec/lib/tcell_agent/policies/appsensor/payloads_policy_from_json_spec.rb +890 -0
  46. data/spec/lib/tcell_agent/policies/appsensor/payloads_policy_log_spec.rb +484 -0
  47. data/spec/lib/tcell_agent/policies/appsensor/request_size_sensor_spec.rb +4 -3
  48. data/spec/lib/tcell_agent/policies/appsensor/response_codes_sensor_spec.rb +4 -4
  49. data/spec/lib/tcell_agent/policies/appsensor/response_size_sensor_spec.rb +1 -1
  50. data/spec/lib/tcell_agent/policies/appsensor/sqli_sensor_spec.rb +85 -0
  51. data/spec/lib/tcell_agent/policies/appsensor/user_agent_sensor_spec.rb +36 -16
  52. data/spec/lib/tcell_agent/policies/appsensor/xss_sensor_spec.rb +188 -312
  53. data/spec/lib/tcell_agent/policies/appsensor_policy_spec.rb +61 -0
  54. data/spec/lib/tcell_agent/rails/middleware/appsensor_middleware_spec.rb +18 -11
  55. data/spec/lib/tcell_agent/rails/middleware/redirect_middleware_spec.rb +14 -15
  56. data/spec/lib/tcell_agent/sensor_events/appsensor_meta_event_spec.rb +1 -1
  57. data/spec/lib/tcell_agent/sensor_events/util/sanitizer_utilities_spec.rb +6 -5
  58. data/spec/lib/tcell_agent/utils/params_spec.rb +28 -108
  59. data/tcell_agent.gemspec +21 -1
  60. metadata +37 -4
@@ -62,7 +62,7 @@ module TCellAgent
62
62
  sensor = UserAgentSensor.new({"enabled" => false, "empty_enabled" => false})
63
63
  @meta.user_agent = nil
64
64
 
65
- expect(sensor).to_not receive(:send_event)
65
+ expect(TCellAgent).to_not receive(:send_event)
66
66
  sensor.check(@meta)
67
67
  end
68
68
  end
@@ -72,7 +72,7 @@ module TCellAgent
72
72
  sensor = UserAgentSensor.new({"enabled" => false, "empty_enabled" => false})
73
73
  @meta.user_agent = "Mozilla"
74
74
 
75
- expect(sensor).to_not receive(:send_event)
75
+ expect(TCellAgent).to_not receive(:send_event)
76
76
  sensor.check(@meta)
77
77
  end
78
78
  end
@@ -87,9 +87,14 @@ module TCellAgent
87
87
  it "should send event" do
88
88
  @meta.user_agent = ""
89
89
 
90
- expect(@sensor).to receive(:send_event).with(
91
- @meta, UserAgentSensor::DP_CODE, nil, nil
92
- )
90
+ expect(TCellAgent).to receive(:send_event).with({
91
+ "event_type"=>"as",
92
+ "dp"=>UserAgentSensor::DP_CODE,
93
+ "param"=>nil,
94
+ "remote_addr"=>"remote_address",
95
+ "m"=>"get",
96
+ "rid"=>"route_id"
97
+ })
93
98
  @sensor.check(@meta)
94
99
  end
95
100
 
@@ -98,9 +103,14 @@ module TCellAgent
98
103
  @meta.user_agent = ""
99
104
  @sensor.excluded_route_ids = {}
100
105
 
101
- expect(@sensor).to receive(:send_event).with(
102
- @meta, UserAgentSensor::DP_CODE, nil, nil
103
- )
106
+ expect(TCellAgent).to receive(:send_event).with({
107
+ "event_type"=>"as",
108
+ "dp"=>UserAgentSensor::DP_CODE,
109
+ "param"=>nil,
110
+ "remote_addr"=>"remote_address",
111
+ "m"=>"get",
112
+ "rid"=>"route_id"
113
+ })
104
114
  @sensor.check(@meta)
105
115
  end
106
116
  end
@@ -111,7 +121,7 @@ module TCellAgent
111
121
  @meta.user_agent = ""
112
122
  @sensor.excluded_route_ids = {"route_id" => true}
113
123
 
114
- expect(@sensor).to_not receive(:send_event)
124
+ expect(TCellAgent).to_not receive(:send_event)
115
125
  @sensor.check(@meta)
116
126
  end
117
127
  end
@@ -120,9 +130,14 @@ module TCellAgent
120
130
  @meta.user_agent = ""
121
131
  @sensor.excluded_route_ids = {"nonmatching" => true}
122
132
 
123
- expect(@sensor).to receive(:send_event).with(
124
- @meta, UserAgentSensor::DP_CODE, nil, nil
125
- )
133
+ expect(TCellAgent).to receive(:send_event).with({
134
+ "event_type"=>"as",
135
+ "dp"=>UserAgentSensor::DP_CODE,
136
+ "param"=>nil,
137
+ "remote_addr"=>"remote_address",
138
+ "m"=>"get",
139
+ "rid"=>"route_id"
140
+ })
126
141
  @sensor.check(@meta)
127
142
  end
128
143
  end
@@ -133,9 +148,14 @@ module TCellAgent
133
148
  it "should not send event" do
134
149
  @meta.user_agent = "\n \t \s"
135
150
 
136
- expect(@sensor).to receive(:send_event).with(
137
- @meta, UserAgentSensor::DP_CODE, nil, nil
138
- )
151
+ expect(TCellAgent).to receive(:send_event).with({
152
+ "event_type"=>"as",
153
+ "dp"=>UserAgentSensor::DP_CODE,
154
+ "param"=>nil,
155
+ "remote_addr"=>"remote_address",
156
+ "m"=>"get",
157
+ "rid"=>"route_id"
158
+ })
139
159
  @sensor.check(@meta)
140
160
  end
141
161
  end
@@ -144,7 +164,7 @@ module TCellAgent
144
164
  it "should not send event" do
145
165
  @meta.user_agent = "Mozilla"
146
166
 
147
- expect(@sensor).to_not receive(:send_event)
167
+ expect(TCellAgent).to_not receive(:send_event)
148
168
  @sensor.check(@meta)
149
169
  end
150
170
  end