sqreen 1.15.1 → 1.15.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87e7db04c8d69640cf2da93b2dc235f5b1a95c8f2847db137c3047eb9f87ac1a
4
- data.tar.gz: 690b3963a003fced7eb7e699576a488b006dc63589e372c67b0f808d9b2aafd6
3
+ metadata.gz: bd9348f46f9d003e9a1302fdf2f138fe6f0db7e49e50a51d1482991ad68ee2a5
4
+ data.tar.gz: 2d49d42af3a45e9c1061d550c5b45c1652406f901f89c81525dca90c2f2c6584
5
5
  SHA512:
6
- metadata.gz: e70942a29b5a702ebd3e023d72ad49a58234510c798e0fbf88dfc99388ddbbb24bc0c25a41f3103df92884d1b9804355e2d724868372f9dc3197bcad134a9fd4
7
- data.tar.gz: 5719e61c1bae72c9dbf4257ccce892cf8135b7a887e69dce1320c5955ddae9b575a992ab42a83e28887daaa09187705686579a6cabc53c555d5931f90a812b11
6
+ metadata.gz: 3ccb75506d4344d4d2ec1d6c7f4e2c1957a762d7d60cee5e34bf2aec98abdf9d8c72158f4dd3e23fa0da8a054cbc694754d2a81d959facdbe9fd6911e36de1e2
7
+ data.tar.gz: 20933b21b52fa4f95de2964a3a15ab757f7dff8f4058b91a29547440f3446eae6510c40193ae4a44494c5494e60c9de1290d2c483033b687c79c5526dbff66ab
@@ -171,6 +171,7 @@ module Sqreen
171
171
  def matching_actions(client_ip)
172
172
  parsed_ip = IPAddr.new(client_ip)
173
173
  trie = parsed_ip.family == Socket::AF_INET6 ? @trie_v6 : @trie_v4
174
+ return [] unless trie
174
175
  found = trie.search_matching(parsed_ip.to_i, parsed_ip.family)
175
176
  return [] unless found.size > 0
176
177
 
@@ -271,6 +272,7 @@ module Sqreen
271
272
 
272
273
  class << self
273
274
  def actions_matching(identity_params)
275
+ return [] unless @idx
274
276
  key = stringify_keys(identity_params)
275
277
  actions = @idx[key]
276
278
  actions || []
@@ -127,23 +127,6 @@ module Sqreen
127
127
  framework && !framework.whitelisted_match.nil?
128
128
  end
129
129
 
130
- # Record an attack event into Sqreen system
131
- # @param infos [Hash] Additional information about request
132
- def record_event(infos, at = Time.now.utc)
133
- return unless framework
134
- payload = {
135
- :infos => infos,
136
- :rulespack_id => rulespack_id,
137
- :rule_name => rule_name,
138
- :test => test,
139
- :time => at,
140
- }
141
- if payload_tpl.include?('context')
142
- payload[:backtrace] = Sqreen::Context.new.bt
143
- end
144
- framework.observe(:attacks, payload, payload_tpl)
145
- end
146
-
147
130
  # Record a metric observation
148
131
  # @param category [String] Name of the metric observed
149
132
  # @param key [String] aggregation key
@@ -153,22 +136,5 @@ module Sqreen
153
136
  return unless framework
154
137
  framework.observe(:observations, [category, key, observation, at], [], false)
155
138
  end
156
-
157
- # Record an exception that just occurred
158
- # @param exception [Exception] Exception to send over
159
- # @param infos [Hash] Additional contextual information
160
- def record_exception(exception, infos = {}, at = Time.now.utc)
161
- return unless framework
162
- payload = {
163
- :exception => exception,
164
- :infos => infos,
165
- :rulespack_id => rulespack_id,
166
- :rule_name => rule_name,
167
- :test => test,
168
- :time => at,
169
- :backtrace => exception.backtrace || Sqreen::Context.bt,
170
- }
171
- framework.observe(:sqreen_exceptions, payload)
172
- end
173
139
  end
174
140
  end
@@ -15,7 +15,11 @@ module Sqreen
15
15
  alias original_push push
16
16
 
17
17
  def push(value)
18
- pop until size < @capacity
18
+ until size < @capacity
19
+ discarded = pop
20
+ Sqreen.log.debug { "Discarded from queue: #{discarded}" }
21
+ end
22
+ Sqreen.log.debug { "Pushed to the queue: #{value}" }
19
23
  original_push(value)
20
24
  end
21
25
  end
data/lib/sqreen/event.rb CHANGED
@@ -12,5 +12,9 @@ module Sqreen
12
12
  def to_hash
13
13
  payload.to_hash
14
14
  end
15
+
16
+ def to_s
17
+ "<#{self.class.name}: #{to_hash}>"
18
+ end
15
19
  end
16
20
  end
@@ -51,6 +51,40 @@ module Sqreen
51
51
  @rule[Attrs::PRIORITY] || super
52
52
  end
53
53
 
54
+ # Record an attack event into Sqreen system
55
+ # @param infos [Hash] Additional information about request
56
+ def record_event(infos, at = Time.now.utc)
57
+ return unless framework
58
+ payload = {
59
+ :infos => infos,
60
+ :rulespack_id => rulespack_id,
61
+ :rule_name => rule_name,
62
+ :test => test,
63
+ :time => at,
64
+ }
65
+ if payload_tpl.include?('context')
66
+ payload[:backtrace] = Sqreen::Context.new.bt
67
+ end
68
+ framework.observe(:attacks, payload, payload_tpl)
69
+ end
70
+
71
+ # Record an exception that just occurred
72
+ # @param exception [Exception] Exception to send over
73
+ # @param infos [Hash] Additional contextual information
74
+ def record_exception(exception, infos = {}, at = Time.now.utc)
75
+ return unless framework
76
+ payload = {
77
+ :exception => exception,
78
+ :infos => infos,
79
+ :rulespack_id => rulespack_id,
80
+ :rule_name => rule_name,
81
+ :test => test,
82
+ :time => at,
83
+ :backtrace => exception.backtrace || Sqreen::Context.bt,
84
+ }
85
+ framework.observe(:sqreen_exceptions, payload)
86
+ end
87
+
54
88
  # Recommend taking an action (optionnally adding more data/context)
55
89
  #
56
90
  # This will format the requested action and optionnally
@@ -292,6 +292,10 @@ module Sqreen
292
292
  h[EVENT_TYPE_KEY] = event_kind(event)
293
293
  h
294
294
  end
295
+ Sqreen.log.debug do
296
+ tally = Hash[events.group_by(&:class).map{ |k,v| [k, v.count] }]
297
+ "Doing batch with the following tally of event types: #{tally}"
298
+ end
295
299
  resilient_post(BATCH_KEY, BATCH_KEY => batch)
296
300
  end
297
301
 
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2015 Sqreen. All Rights Reserved.
2
2
  # Please refer to our terms for more information: https://www.sqreen.io/terms.html
3
3
  module Sqreen
4
- VERSION = '1.15.1'.freeze
4
+ VERSION = '1.15.2'.freeze
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sqreen
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.1
4
+ version: 1.15.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sqreen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-29 00:00:00.000000000 Z
11
+ date: 2018-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sq_mini_racer