sqreen 1.24.2 → 1.25.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/lib/sqreen/dependency/sinatra.rb +1 -0
- data/lib/sqreen/frameworks/generic.rb +14 -2
- data/lib/sqreen/js/js_service.rb +16 -1
- data/lib/sqreen/js/mini_racer_adapter.rb +1 -1
- data/lib/sqreen/js/mini_racer_executable_js.rb +1 -1
- data/lib/sqreen/rules/rule_cb.rb +5 -1
- data/lib/sqreen/rules/waf_cb.rb +2 -2
- data/lib/sqreen/version.rb +1 -1
- data/lib/sqreen/weave/legacy/instrumentation.rb +11 -2
- metadata +7 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6328da058ba9dbd5f216152de2a9751d3d967a2f4d65304032137849a8b10d25
|
4
|
+
data.tar.gz: 7835057ef1b3c18d6995136c6d7c10ed6168bb9f42be32d91959518bcbe287cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2a151b0bdc36e3ff4872c533e3e701cce5a70c9dbf9758b2ee53cf7026317f6dc49e85741a92c61c38cd0128575741e27b7b6995cd5d0fd66289ee883300975
|
7
|
+
data.tar.gz: 28c72b896a9cf0b5a7bd49cb1ebb5ef0fe2cb99a349f91f70f02b667ffc8346c1d47e940bac3ec6823240c95935204bb96aedd8d666ae13d01a5017d082a00f7
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
## 1.25.1
|
2
|
+
|
3
|
+
* Add compatibility with ddtrace 1.0
|
4
|
+
* Fix issue on WAF garbage collection
|
5
|
+
|
6
|
+
## 1.25.0
|
7
|
+
|
8
|
+
* Switch from old sq_mini_racer to upstream mini_racer
|
9
|
+
* Support Ruby 3.1
|
10
|
+
* Restrict compatiblity to Ruby 2.6 and up
|
11
|
+
|
12
|
+
## 1.24.3
|
13
|
+
|
14
|
+
* Fix WAF exception reporting corner case
|
15
|
+
|
1
16
|
## 1.24.2
|
2
17
|
|
3
18
|
* Fix kwargs for rule callbacks on Ruby 3+
|
@@ -66,6 +66,7 @@ module Sqreen
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def insert_datadog_middleware(builder, *args, &block)
|
69
|
+
return unless defined?(Datadog) && defined?(Datadog::Tracing)
|
69
70
|
return unless defined?(Datadog) && Datadog.respond_to?(:configuration) && Datadog.configuration.instrumented_integrations.key?(:sinatra)
|
70
71
|
|
71
72
|
Datadog.configure do |c|
|
@@ -182,9 +182,21 @@ module Sqreen
|
|
182
182
|
end
|
183
183
|
|
184
184
|
def datadog_span
|
185
|
-
return unless defined?(Datadog)
|
185
|
+
return unless defined?(Datadog)
|
186
186
|
|
187
|
-
|
187
|
+
if defined?(Datadog::Tracing) && Datadog::Tracing.respond_to?(:active_span)
|
188
|
+
Datadog::Tracing.active_span
|
189
|
+
elsif Datadog.respond_to?(:tracer) && Datadog.tracer
|
190
|
+
Datadog.tracer.active_span
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
def datadog_trace
|
195
|
+
return unless defined?(Datadog)
|
196
|
+
|
197
|
+
if defined?(Datadog::Tracing) && Datadog::Tracing.respond_to?(:active_trace)
|
198
|
+
Datadog::Tracing.active_trace
|
199
|
+
end
|
188
200
|
end
|
189
201
|
|
190
202
|
def response_infos
|
data/lib/sqreen/js/js_service.rb
CHANGED
@@ -33,7 +33,7 @@ module Sqreen
|
|
33
33
|
private
|
34
34
|
|
35
35
|
def detect_adapter
|
36
|
-
@online = try_sq_mini_racer || try_rhino
|
36
|
+
@online = try_sq_mini_racer || try_mini_racer || try_rhino
|
37
37
|
|
38
38
|
Sqreen.log.info "JS engine online: #{variant}" if @online
|
39
39
|
end
|
@@ -53,6 +53,21 @@ module Sqreen
|
|
53
53
|
false
|
54
54
|
end
|
55
55
|
|
56
|
+
def try_mini_racer
|
57
|
+
gem = Gem.loaded_specs['mini_racer']
|
58
|
+
unless gem
|
59
|
+
Sqreen.log.info "mini_racer gem not detected"
|
60
|
+
return false
|
61
|
+
end
|
62
|
+
|
63
|
+
require 'mini_racer'
|
64
|
+
require 'sqreen/js/mini_racer_adapter'
|
65
|
+
@adapter = MiniRacerAdapter.new(false)
|
66
|
+
rescue LoadError => e
|
67
|
+
Sqreen.log.warn "Failed loading mini_racer: #{e}"
|
68
|
+
false
|
69
|
+
end
|
70
|
+
|
56
71
|
def try_rhino
|
57
72
|
gem = Gem.loaded_specs['therubyrhino']
|
58
73
|
unless gem
|
@@ -34,7 +34,7 @@ module Sqreen
|
|
34
34
|
|
35
35
|
def self.static_init
|
36
36
|
return if @done_static_init
|
37
|
-
Sqreen::MiniRacer::Platform.set_flags! :noconcurrent_recompilation
|
37
|
+
Sqreen::MiniRacer::Platform.set_flags! :noconcurrent_recompilation if @vendored
|
38
38
|
@done_static_init = true
|
39
39
|
end
|
40
40
|
end
|
@@ -118,7 +118,7 @@ module Sqreen
|
|
118
118
|
|
119
119
|
# garbage collections max 1 in every 4 calls (avg)
|
120
120
|
if heap_stats[:total_heap_size] > @gc_threshold_in_bytes
|
121
|
-
low_memory_notification
|
121
|
+
low_memory_notification if respond_to?(:low_memory_notification)
|
122
122
|
@gc_load += 4
|
123
123
|
else
|
124
124
|
@gc_load = [0, @gc_load - 1].max
|
data/lib/sqreen/rules/rule_cb.rb
CHANGED
@@ -76,7 +76,11 @@ module Sqreen
|
|
76
76
|
:datadog_trace_id => datadog_span.trace_id,
|
77
77
|
:datadog_span_id => datadog_span.span_id,
|
78
78
|
)
|
79
|
-
|
79
|
+
if (datadog_trace = framework.datadog_trace)
|
80
|
+
datadog_trace.keep!
|
81
|
+
else
|
82
|
+
datadog_span.set_tag(Datadog::Ext::ManualTracing::TAG_KEEP, true)
|
83
|
+
end
|
80
84
|
datadog_span.set_tag('sqreen.event', true)
|
81
85
|
end
|
82
86
|
framework.observe(:attacks, payload, payload_tpl)
|
data/lib/sqreen/rules/waf_cb.rb
CHANGED
@@ -126,7 +126,7 @@ module Sqreen
|
|
126
126
|
lambda do |object_id|
|
127
127
|
return unless WAFCB.libsqreen?
|
128
128
|
|
129
|
-
::LibSqreen::WAF.delete(
|
129
|
+
::LibSqreen::WAF.delete(rule_name)
|
130
130
|
Sqreen.log.debug("WAF rule #{rule_name} deleted, from #<#{name}:0x#{object_id.to_s(16).rjust(16, '0')}>")
|
131
131
|
end
|
132
132
|
end
|
@@ -146,7 +146,7 @@ module Sqreen
|
|
146
146
|
error_code: ERROR_CODES[e.error],
|
147
147
|
}.tap do |r|
|
148
148
|
r[:error_data] = e.data if e.data
|
149
|
-
r[:args] = e.args if e.
|
149
|
+
r[:args] = e.args if e.args
|
150
150
|
end,
|
151
151
|
}
|
152
152
|
end
|
data/lib/sqreen/version.rb
CHANGED
@@ -244,8 +244,17 @@ class Sqreen::Weave::Legacy::Instrumentation
|
|
244
244
|
|
245
245
|
# shrinkwrap_timer = Sqreen::Graft::Timer.new('weave,shrinkwrap')
|
246
246
|
# shrinkwrap_timer.start
|
247
|
-
if defined?(Datadog)
|
248
|
-
|
247
|
+
if defined?(Datadog)
|
248
|
+
if defined?(Datadog::Tracing) && Datadog::Tracing.respond_to?(:active_trace)
|
249
|
+
datadog_active_trace = Datadog::Tracing.active_trace
|
250
|
+
datadog_span = datadog_active_trace.send(:root_span) if datadog_active_trace
|
251
|
+
elsif Datadog.respond_to?(:tracer) && Datadog.tracer
|
252
|
+
datadog_span = Datadog.tracer.active_root_span
|
253
|
+
end
|
254
|
+
|
255
|
+
if datadog_span
|
256
|
+
Sqreen::Weave.logger.debug { "request datadog:true span_id:#{datadog_span.span_id} parent_id:#{datadog_span.parent_id} trace_id:#{datadog_span.trace_id}" }
|
257
|
+
end
|
249
258
|
end
|
250
259
|
|
251
260
|
request_timer = Sqreen::Graft::Timer.new("request")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqreen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.25.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sqreen
|
@@ -39,25 +39,19 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.2.4
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: mini_racer
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0.2'
|
48
|
-
- - "<"
|
45
|
+
- - ">="
|
49
46
|
- !ruby/object:Gem::Version
|
50
|
-
version: 0.
|
47
|
+
version: 0.4.0
|
51
48
|
type: :runtime
|
52
49
|
prerelease: false
|
53
50
|
version_requirements: !ruby/object:Gem::Requirement
|
54
51
|
requirements:
|
55
|
-
- - "
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '0.2'
|
58
|
-
- - "<"
|
52
|
+
- - ">="
|
59
53
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0.
|
54
|
+
version: 0.4.0
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
56
|
name: libsqreen
|
63
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -347,7 +341,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
347
341
|
requirements:
|
348
342
|
- - ">="
|
349
343
|
- !ruby/object:Gem::Version
|
350
|
-
version: '2.
|
344
|
+
version: '2.6'
|
351
345
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
352
346
|
requirements:
|
353
347
|
- - ">="
|