contrast-agent 3.12.0 → 3.13.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. checksums.yaml +4 -4
  2. data/.dockerignore +0 -1
  3. data/.gitignore +1 -1
  4. data/.simplecov +1 -1
  5. data/Rakefile +31 -0
  6. data/ext/build_funchook.rb +0 -2
  7. data/ext/cs__assess_fiber_track/cs__assess_fiber_track.c +2 -8
  8. data/ext/cs__assess_fiber_track/cs__assess_fiber_track.h +0 -1
  9. data/ext/cs__assess_string_interpolation26/cs__assess_string_interpolation26.c +1 -6
  10. data/ext/cs__assess_yield_track/cs__assess_yield_track.c +1 -5
  11. data/ext/cs__assess_yield_track/cs__assess_yield_track.h +0 -1
  12. data/ext/cs__common/cs__common.c +24 -0
  13. data/ext/cs__common/cs__common.h +3 -0
  14. data/ext/cs__common/extconf.rb +0 -14
  15. data/ext/extconf_common.rb +0 -28
  16. data/lib/contrast.rb +3 -1
  17. data/lib/contrast/agent.rb +14 -2
  18. data/lib/contrast/agent/assess/contrast_event.rb +28 -167
  19. data/lib/contrast/agent/assess/events/source_event.rb +3 -7
  20. data/lib/contrast/agent/assess/policy/dynamic_source_factory.rb +1 -1
  21. data/lib/contrast/agent/assess/policy/policy_node.rb +4 -98
  22. data/lib/contrast/agent/assess/policy/propagation_method.rb +1 -2
  23. data/lib/contrast/agent/assess/policy/propagation_node.rb +5 -1
  24. data/lib/contrast/agent/assess/policy/propagator/base.rb +1 -1
  25. data/lib/contrast/agent/assess/policy/propagator/insert.rb +1 -4
  26. data/lib/contrast/agent/assess/policy/propagator/match_data.rb +9 -1
  27. data/lib/contrast/agent/assess/policy/propagator/remove.rb +6 -11
  28. data/lib/contrast/agent/assess/policy/propagator/select.rb +4 -4
  29. data/lib/contrast/agent/assess/policy/propagator/split.rb +2 -2
  30. data/lib/contrast/agent/assess/policy/propagator/substitution.rb +4 -4
  31. data/lib/contrast/agent/assess/policy/propagator/trim.rb +6 -10
  32. data/lib/contrast/agent/assess/policy/source_method.rb +1 -2
  33. data/lib/contrast/agent/assess/policy/trigger_method.rb +2 -10
  34. data/lib/contrast/agent/assess/policy/trigger_node.rb +16 -4
  35. data/lib/contrast/agent/assess/properties.rb +4 -382
  36. data/lib/contrast/agent/assess/property/evented.rb +78 -0
  37. data/lib/contrast/agent/assess/property/tagged.rb +339 -0
  38. data/lib/contrast/agent/assess/rule/provider/hardcoded_value_rule.rb +2 -20
  39. data/lib/contrast/agent/assess/tag.rb +27 -12
  40. data/lib/contrast/agent/at_exit_hook.rb +3 -1
  41. data/lib/contrast/agent/exclusion_matcher.rb +2 -2
  42. data/lib/contrast/agent/inventory/policy/datastores.rb +0 -1
  43. data/lib/contrast/agent/middleware.rb +2 -14
  44. data/lib/contrast/agent/patching/policy/patch.rb +1 -1
  45. data/lib/contrast/agent/patching/policy/policy.rb +3 -3
  46. data/lib/contrast/agent/patching/policy/policy_node.rb +2 -2
  47. data/lib/contrast/agent/protect/policy/rule_applicator.rb +2 -2
  48. data/lib/contrast/agent/protect/rule/base.rb +19 -31
  49. data/lib/contrast/agent/protect/rule/base_service.rb +1 -1
  50. data/lib/contrast/agent/protect/rule/http_method_tampering.rb +2 -7
  51. data/lib/contrast/agent/protect/rule/xxe.rb +1 -0
  52. data/lib/contrast/agent/reaction_processor.rb +3 -3
  53. data/lib/contrast/agent/request.rb +92 -331
  54. data/lib/contrast/agent/request_context.rb +15 -15
  55. data/lib/contrast/agent/request_handler.rb +1 -1
  56. data/lib/contrast/agent/response.rb +2 -14
  57. data/lib/contrast/agent/scope.rb +1 -1
  58. data/lib/contrast/agent/service_heartbeat.rb +7 -9
  59. data/lib/contrast/agent/static_analysis.rb +1 -1
  60. data/lib/contrast/agent/thread_watcher.rb +49 -0
  61. data/lib/contrast/agent/version.rb +1 -1
  62. data/lib/contrast/agent/worker_thread.rb +24 -0
  63. data/lib/contrast/api.rb +3 -5
  64. data/lib/contrast/api/communication.rb +20 -0
  65. data/lib/contrast/api/communication/connection_status.rb +41 -0
  66. data/lib/contrast/api/communication/messaging_queue.rb +79 -0
  67. data/lib/contrast/{utils/service_response_util.rb → api/communication/response_processor.rb} +9 -18
  68. data/lib/contrast/api/communication/service_lifecycle.rb +61 -0
  69. data/lib/contrast/api/communication/socket.rb +45 -0
  70. data/lib/contrast/api/communication/socket_client.rb +76 -0
  71. data/lib/contrast/api/communication/speedracer.rb +111 -0
  72. data/lib/contrast/api/communication/tcp_socket.rb +31 -0
  73. data/lib/contrast/api/communication/unix_socket.rb +27 -0
  74. data/lib/contrast/api/decorators.rb +10 -0
  75. data/lib/contrast/api/decorators/address.rb +60 -0
  76. data/lib/contrast/api/decorators/application_settings.rb +7 -3
  77. data/lib/contrast/api/decorators/application_update.rb +0 -9
  78. data/lib/contrast/api/decorators/http_request.rb +139 -0
  79. data/lib/contrast/api/decorators/message.rb +75 -0
  80. data/lib/contrast/api/decorators/rasp_rule_sample.rb +28 -0
  81. data/lib/contrast/api/decorators/route_coverage.rb +57 -0
  82. data/lib/contrast/api/decorators/trace_event.rb +99 -0
  83. data/lib/contrast/api/decorators/trace_event_object.rb +57 -0
  84. data/lib/contrast/api/decorators/trace_event_signature.rb +46 -0
  85. data/lib/contrast/api/decorators/trace_taint_range.rb +51 -0
  86. data/lib/contrast/api/decorators/trace_taint_range_tags.rb +109 -0
  87. data/lib/contrast/api/decorators/user_input.rb +40 -0
  88. data/lib/contrast/components/app_context.rb +0 -7
  89. data/lib/contrast/components/config.rb +4 -9
  90. data/lib/contrast/components/interface.rb +1 -1
  91. data/lib/contrast/components/settings.rb +0 -6
  92. data/lib/contrast/configuration.rb +2 -2
  93. data/lib/contrast/extension/assess.rb +0 -1
  94. data/lib/contrast/extension/assess/assess_extension.rb +1 -2
  95. data/lib/contrast/extension/assess/fiber.rb +1 -1
  96. data/lib/contrast/extension/assess/string.rb +1 -1
  97. data/lib/contrast/extension/inventory.rb +0 -1
  98. data/lib/contrast/framework/base_support.rb +0 -23
  99. data/lib/contrast/framework/manager.rb +0 -9
  100. data/lib/contrast/framework/rails/patch/action_controller_live_buffer.rb +1 -3
  101. data/lib/contrast/framework/rails/patch/assess_configuration.rb +3 -4
  102. data/lib/contrast/framework/rails/support.rb +3 -32
  103. data/lib/contrast/framework/sinatra/patch/base.rb +1 -1
  104. data/lib/contrast/framework/sinatra/support.rb +11 -22
  105. data/lib/contrast/funchook/funchook.rb +45 -0
  106. data/lib/contrast/logger/application.rb +1 -1
  107. data/lib/contrast/logger/format.rb +51 -0
  108. data/lib/contrast/logger/log.rb +16 -9
  109. data/lib/contrast/utils/assess/tracking_util.rb +45 -20
  110. data/lib/contrast/utils/class_util.rb +3 -1
  111. data/lib/contrast/utils/hash_digest.rb +11 -2
  112. data/lib/contrast/utils/invalid_configuration_util.rb +1 -17
  113. data/lib/contrast/utils/inventory_util.rb +2 -7
  114. data/lib/contrast/utils/object_share.rb +0 -1
  115. data/lib/contrast/utils/os.rb +16 -4
  116. data/lib/contrast/utils/stack_trace_utils.rb +0 -1
  117. data/lib/contrast/utils/tag_util.rb +1 -1
  118. data/lib/contrast/utils/thread_tracker.rb +1 -14
  119. data/lib/contrast/utils/timer.rb +1 -17
  120. data/resources/deadzone/policy.json +5 -0
  121. data/ruby-agent.gemspec +4 -4
  122. data/service_executables/VERSION +1 -1
  123. data/service_executables/linux/contrast-service +0 -0
  124. data/service_executables/mac/contrast-service +0 -0
  125. metadata +49 -71
  126. data/funchook/Makefile +0 -29
  127. data/funchook/autom4te.cache/output.0 +0 -4976
  128. data/funchook/autom4te.cache/requests +0 -78
  129. data/funchook/autom4te.cache/traces.0 +0 -364
  130. data/funchook/config.log +0 -490
  131. data/funchook/config.status +0 -1016
  132. data/funchook/configure +0 -4976
  133. data/funchook/src/Makefile +0 -70
  134. data/funchook/src/config.h +0 -101
  135. data/funchook/src/config.h.in +0 -100
  136. data/funchook/src/decoder.o +0 -0
  137. data/funchook/src/distorm.o +0 -0
  138. data/funchook/src/funchook.o +0 -0
  139. data/funchook/src/funchook_io.o +0 -0
  140. data/funchook/src/funchook_syscall.o +0 -0
  141. data/funchook/src/funchook_unix.o +0 -0
  142. data/funchook/src/funchook_x86.o +0 -0
  143. data/funchook/src/instructions.o +0 -0
  144. data/funchook/src/insts.o +0 -0
  145. data/funchook/src/libfunchook.so +0 -0
  146. data/funchook/src/mnemonics.o +0 -0
  147. data/funchook/src/operands.o +0 -0
  148. data/funchook/src/os_func.o +0 -0
  149. data/funchook/src/os_func_unix.o +0 -0
  150. data/funchook/src/prefix.o +0 -0
  151. data/funchook/src/printf_base.o +0 -0
  152. data/funchook/src/textdefs.o +0 -0
  153. data/funchook/src/wstring.o +0 -0
  154. data/funchook/test/Makefile +0 -43
  155. data/funchook/test/funchook_test +0 -0
  156. data/funchook/test/libfunchook_test.so +0 -0
  157. data/funchook/test/test_main.o +0 -0
  158. data/funchook/test/x86_64_test.o +0 -0
  159. data/lib/contrast/agent/assess/adjusted_span.rb +0 -27
  160. data/lib/contrast/agent/socket_client.rb +0 -134
  161. data/lib/contrast/api/connection_status.rb +0 -49
  162. data/lib/contrast/api/socket.rb +0 -43
  163. data/lib/contrast/api/speedracer.rb +0 -188
  164. data/lib/contrast/api/tcp_socket.rb +0 -29
  165. data/lib/contrast/api/unix_socket.rb +0 -25
  166. data/lib/contrast/framework/sinatra/application_helper.rb +0 -51
  167. data/lib/contrast/framework/view_technologies_descriptor.rb +0 -21
  168. data/lib/contrast/internal_exception.rb +0 -8
  169. data/lib/contrast/utils/cache.rb +0 -58
  170. data/lib/contrast/utils/service_sender_util.rb +0 -167
  171. data/lib/contrast/utils/sinatra_helper.rb +0 -49
@@ -56,7 +56,9 @@ module Contrast
56
56
  # @return [String] the human readable form of the String, as defined by
57
57
  # https://bitbucket.org/contrastsecurity/assess-specifications/src/master/vulnerability/capture-snapshot.md
58
58
  def to_contrast_string object
59
- if object.cs__is_a?(String)
59
+ # Only treat object like a string if it actually is a string
60
+ # some subclasses of String override string methods we depend on
61
+ if object.cs__class == String
60
62
  cached = to_cached_string(object)
61
63
  return cached if cached
62
64
 
@@ -32,8 +32,8 @@ module Contrast
32
32
  request.parameters.each_key do |name|
33
33
  hash.update(name)
34
34
  end
35
- cl = request.normalized_request_headers[CONTENT_LENGTH_HEADER]
36
- hash.update(request.normalized_length_header(cl)) if cl
35
+ cl = request.headers[CONTENT_LENGTH_HEADER]
36
+ hash.update_on_content_length(cl) if cl
37
37
  hash.finish
38
38
  end
39
39
 
@@ -121,6 +121,15 @@ module Contrast
121
121
  end
122
122
  end
123
123
 
124
+ CHARS = %w[a b c d e f g].cs__freeze
125
+ # This method converts and integer value for length into a string value
126
+ # that we can hash on, based on the logarithmic value of the length, and
127
+ # updates the current hash with that value.
128
+ # @param chr [Numeric] the length to translate
129
+ def update_on_content_length chr
130
+ update(CHARS[Math.log10(chr.to_s.length).to_i] || CHARS[-1])
131
+ end
132
+
124
133
  def initialize
125
134
  @crc32 = 0
126
135
  end
@@ -44,29 +44,13 @@ module Contrast
44
44
  activity = Contrast::Api::Dtm::Activity.new
45
45
  activity.findings << finding
46
46
 
47
- # If assess is enabled, we can just send the activity
48
- if APP_CONTEXT.ready?
49
- build_tags(activity)
50
- Contrast::Utils::ServiceSenderUtil.push_to_ready_queue activity
51
- # Otherwise, if the Agent isn't ready, we have to queue the messages
52
- # until we know the starting state.
53
- else
54
- Contrast::Utils::ServiceSenderUtil.add_to_assess_messages activity
55
- end
47
+ Contrast::Agent.messaging_queue.send_event_eventually(activity)
56
48
  rescue StandardError => e
57
49
  logger.error('Unable to build a finding', e, rule: rule_id)
58
50
  end
59
51
 
60
52
  private
61
53
 
62
- # This seems silly to pull out, but we can ONLY call this in the case
63
- # where we have a configuration. Doing otherwise results in a bad error
64
- # case where we try to do other things, like logging, which behave
65
- # strangely without a config
66
- def build_tags activity
67
- activity.finding_tags = Contrast::Utils::StringUtils.force_utf8(ASSESS.tags)
68
- end
69
-
70
54
  def file_snippet file_path, call_location
71
55
  idx = call_location&.lineno
72
56
  if file_path && idx && File.exist?(file_path)
@@ -18,11 +18,10 @@ module Contrast
18
18
  AC_TYPE_DB = 'db'
19
19
  # TeamServer only accepts certain values for FlowMap Services.
20
20
  # DO NOT CHANGE THIS
21
- DATABASE = 'Database'
22
21
  ADAPTER = 'adapter'
23
22
  HOST = 'host'
24
23
  PORT = 'port'
25
- DATABASE_LOWER = 'database'
24
+ DATABASE = 'database'
26
25
  DEFAULT = 'default'
27
26
  LOCALHOST = 'localhost'
28
27
 
@@ -42,7 +41,6 @@ module Contrast
42
41
  arr = build_from_db_config(hash_or_str)
43
42
  return unless arr&.any?
44
43
 
45
- activity_or_update.technologies[DATABASE] = true
46
44
  arr.each do |a|
47
45
  next unless a
48
46
 
@@ -51,9 +49,6 @@ module Contrast
51
49
  else
52
50
  activity_or_update.components << a
53
51
  end
54
- next if a.vendor.empty?
55
-
56
- activity_or_update.technologies[a.vendor] = true
57
52
  end
58
53
  rescue StandardError => e
59
54
  logger.error('Unable to append db config', e)
@@ -76,7 +71,7 @@ module Contrast
76
71
  ac.remote_host = host_from_hash(hash)
77
72
  ac.remote_port = port_from_hash(hash)
78
73
  ac.type = AC_TYPE_DB
79
- ac.url = hash[:database] || hash[DATABASE_LOWER] || DEFAULT
74
+ ac.url = hash[:database] || hash[DATABASE] || DEFAULT
80
75
  [ac]
81
76
  end
82
77
 
@@ -30,7 +30,6 @@ module Contrast
30
30
  SEMICOLON = ';'
31
31
  SINGLE_QUOTE = '\''
32
32
  SLASH = '/'
33
- SPACE = ' '
34
33
  UNDERSCORE = '_'
35
34
  DOUBLE_UNDERSCORE = '__'
36
35
  AT = '@'
@@ -1,23 +1,35 @@
1
1
  # Copyright (c) 2020 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details.
2
2
  # frozen_string_literal: true
3
3
 
4
+ cs__scoped_require 'contrast/components/interface'
5
+
4
6
  module Contrast
5
7
  module Utils
6
8
  # Simple utility used to make OS calls and determine state. For that state
7
9
  # which will not change at runtime, such as the operating system, the
8
10
  # Utility memozies to avoid multiple lookups.
9
11
  module OS
12
+ include Contrast::Components::Interface
13
+ access_component :scope
14
+
10
15
  class << self
11
16
  def running?
12
- process = `ps aux | grep contrast-servic[e]`
13
- process != ''
17
+ result = false
18
+ with_contrast_scope do
19
+ process = `ps aux | grep contrast-servic[e]`
20
+ processes = process.split("\n")
21
+ result = !processes.empty? && processes.any? { |process_descriptor| !process_descriptor.include?('grep') }
22
+ end
23
+ result
14
24
  end
15
25
 
16
26
  # check if service was killed and is a zombie process
17
27
  # returns an array of zombie process PIDs as strings; empty array if there are none
18
28
  def zombie_pids
19
- zombie_pid_list = `ps aux | grep contrast-servic[e] | grep Z | awk '{print $2}'` # retrieve pid of service processes
20
- zombie_pid_list.split("\n")
29
+ with_contrast_scope do
30
+ zombie_pid_list = `ps aux | grep contrast-servic[e] | grep Z | awk '{print $2}'` # retrieve pid of service processes
31
+ zombie_pid_list.split("\n")
32
+ end
21
33
  end
22
34
  end
23
35
  end
@@ -3,7 +3,6 @@
3
3
 
4
4
  cs__scoped_require 'contrast/utils/object_share'
5
5
  cs__scoped_require 'contrast/api'
6
- cs__scoped_require 'contrast/utils/cache'
7
6
 
8
7
  module Contrast
9
8
  module Utils
@@ -114,7 +114,7 @@ module Contrast
114
114
  arr.each do |existing|
115
115
  break unless existing.start_idx < new_element.start_idx
116
116
 
117
- if existing.overlaps?(new_element)
117
+ if existing.overlaps?(new_element.start_idx, new_element.end_idx)
118
118
  existing.merge(new_element)
119
119
  return # rubocop:disable Lint/NonLocalExitFromIterator
120
120
  end
@@ -5,15 +5,12 @@ module Contrast
5
5
  module Utils
6
6
  # ThreadTracker allows tracking of singleton objects across threads
7
7
  class ThreadTracker
8
- def initialize logger = nil
9
- @logger = logger
10
- end
8
+ def initialize; end
11
9
 
12
10
  # Note about Ruby -- thread#[] is fiber-local,
13
11
  # #thread_variables is not.
14
12
 
15
13
  def get key, default = nil
16
- log(key)
17
14
  Thread.current[key] || default
18
15
  end
19
16
 
@@ -39,16 +36,6 @@ module Contrast
39
36
  def update_current_context context
40
37
  set(:current_context, context)
41
38
  end
42
-
43
- # logger may be nil so use this utility method instead
44
- def log key
45
- return unless @logger
46
- return unless @logger.debug?
47
-
48
- @logger.debug('Accessing object in Thread Tracker', name: key, p_id: Process.pid, thread_id: Thread.current.object_id)
49
- rescue StandardError
50
- false # NOOP
51
- end
52
39
  end
53
40
  end
54
41
  end
@@ -6,7 +6,7 @@ module Contrast
6
6
  # Timer is class that can track state about when an event starts and how long it takes
7
7
  # Also containes utility methods to get time values in milliseconds
8
8
  class Timer
9
- attr_reader :start_at, :start_ms, :events
9
+ attr_reader :start_ms, :events
10
10
 
11
11
  def initialize time = Time.now
12
12
  @start_at = time
@@ -14,22 +14,6 @@ module Contrast
14
14
  @events = {}
15
15
  end
16
16
 
17
- def elapsed label
18
- before = Time.now
19
- result = yield if block_given?
20
- events[label.to_s] = ((Time.now - before) * 1000).to_i
21
- result
22
- end
23
-
24
- def to_s
25
- pairs = events.to_a.map { |pair| "#{ pair[0] }=#{ pair[1] }ms" }
26
- start_at.strftime('%Y-%m-%d %H:%M:%S.%L') + pairs.join(Contrast::Utils::ObjectShare::SPACE)
27
- end
28
-
29
- def now_ms
30
- (Time.now.to_f * 1000).to_i
31
- end
32
-
33
17
  def self.now_ms
34
18
  (Time.now.to_f * 1000).to_i
35
19
  end
@@ -50,6 +50,11 @@
50
50
  "instance_method":true,
51
51
  "method_visibility": "public",
52
52
  "method_name":"server_name"
53
+ }, {
54
+ "class_name":"Rack::Session::Cookie",
55
+ "instance_method":true,
56
+ "method_visibility": "public",
57
+ "method_name":"commit_session"
53
58
  }
54
59
  ]
55
60
  }
@@ -68,9 +68,9 @@ end
68
68
  # dependencies.csv in this directory to indicate that and create a
69
69
  # corresponding update to the fake gem server data in TeamServer.
70
70
  def self.add_dependencies spec
71
- spec.add_dependency 'google-protobuf', '~> 3.9.0'
72
71
  spec.add_dependency 'ougai', '~> 1.8'
73
72
  spec.add_dependency 'parser', '~> 2.6'
73
+ spec.add_dependency 'protobuf', '~> 3.10'
74
74
  spec.add_dependency 'rack', '>= 2.0', '< 3.0'
75
75
  end
76
76
 
@@ -80,7 +80,7 @@ def self.add_files spec
80
80
  # Directories used for testing:
81
81
  f.match(%r{^(spec|test)/}) ||
82
82
  # Directories used in pipelines
83
- f.match(%r{^(bin|bitbucket_scripts|internal_resources|vendor)/}) ||
83
+ f.match(%r{^(\.github|bin|internal_resources|vendor)/}) ||
84
84
  # Configuration and other files that don't belong to one directory
85
85
  f.match(/(Dockerfile)/) ||
86
86
  f.match(/(.*\.csv)/) ||
@@ -90,8 +90,8 @@ def self.add_files spec
90
90
  f.match(/(.*\.ya?ml)/)
91
91
  end
92
92
 
93
- spec.files << 'lib/contrast/api/dtm_pb.rb'
94
- spec.files << 'lib/contrast/api/settings_pb.rb'
93
+ spec.files << 'lib/contrast/api/dtm.pb.rb'
94
+ spec.files << 'lib/contrast/api/settings.pb.rb'
95
95
  spec.files += Dir['service_executables/**/*']
96
96
  spec.files += Dir['funchook/**/*']
97
97
  spec.files += Dir['shared_libraries/**/*']
@@ -1 +1 @@
1
- 2.8.1
1
+ 2.9.5
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contrast-agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.12.0
4
+ version: 3.13.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - galen.palmer@contrastsecurity.com
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: exe
14
14
  cert_chain: []
15
- date: 2020-06-22 00:00:00.000000000 Z
15
+ date: 2020-07-29 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: amazing_print
@@ -393,47 +393,47 @@ dependencies:
393
393
  - !ruby/object:Gem::Version
394
394
  version: '2.0'
395
395
  - !ruby/object:Gem::Dependency
396
- name: google-protobuf
396
+ name: ougai
397
397
  requirement: !ruby/object:Gem::Requirement
398
398
  requirements:
399
399
  - - "~>"
400
400
  - !ruby/object:Gem::Version
401
- version: 3.9.0
401
+ version: '1.8'
402
402
  type: :runtime
403
403
  prerelease: false
404
404
  version_requirements: !ruby/object:Gem::Requirement
405
405
  requirements:
406
406
  - - "~>"
407
407
  - !ruby/object:Gem::Version
408
- version: 3.9.0
408
+ version: '1.8'
409
409
  - !ruby/object:Gem::Dependency
410
- name: ougai
410
+ name: parser
411
411
  requirement: !ruby/object:Gem::Requirement
412
412
  requirements:
413
413
  - - "~>"
414
414
  - !ruby/object:Gem::Version
415
- version: '1.8'
415
+ version: '2.6'
416
416
  type: :runtime
417
417
  prerelease: false
418
418
  version_requirements: !ruby/object:Gem::Requirement
419
419
  requirements:
420
420
  - - "~>"
421
421
  - !ruby/object:Gem::Version
422
- version: '1.8'
422
+ version: '2.6'
423
423
  - !ruby/object:Gem::Dependency
424
- name: parser
424
+ name: protobuf
425
425
  requirement: !ruby/object:Gem::Requirement
426
426
  requirements:
427
427
  - - "~>"
428
428
  - !ruby/object:Gem::Version
429
- version: '2.6'
429
+ version: '3.10'
430
430
  type: :runtime
431
431
  prerelease: false
432
432
  version_requirements: !ruby/object:Gem::Requirement
433
433
  requirements:
434
434
  - - "~>"
435
435
  - !ruby/object:Gem::Version
436
- version: '2.6'
436
+ version: '3.10'
437
437
  - !ruby/object:Gem::Dependency
438
438
  name: rack
439
439
  requirement: !ruby/object:Gem::Requirement
@@ -463,19 +463,19 @@ executables:
463
463
  extensions:
464
464
  - ext/cs__common/extconf.rb
465
465
  - ext/cs__assess_marshal_module/extconf.rb
466
- - ext/cs__assess_basic_object/extconf.rb
467
- - ext/cs__assess_fiber_track/extconf.rb
466
+ - ext/cs__assess_active_record_named/extconf.rb
468
467
  - ext/cs__assess_string_interpolation26/extconf.rb
469
- - ext/cs__contrast_patch/extconf.rb
470
- - ext/cs__assess_array/extconf.rb
468
+ - ext/cs__assess_module/extconf.rb
469
+ - ext/cs__protect_kernel/extconf.rb
470
+ - ext/cs__assess_hash/extconf.rb
471
+ - ext/cs__assess_fiber_track/extconf.rb
471
472
  - ext/cs__assess_kernel/extconf.rb
472
473
  - ext/cs__assess_string/extconf.rb
473
- - ext/cs__assess_hash/extconf.rb
474
- - ext/cs__assess_module/extconf.rb
475
- - ext/cs__assess_regexp/extconf.rb
474
+ - ext/cs__assess_basic_object/extconf.rb
475
+ - ext/cs__assess_array/extconf.rb
476
+ - ext/cs__contrast_patch/extconf.rb
476
477
  - ext/cs__assess_yield_track/extconf.rb
477
- - ext/cs__assess_active_record_named/extconf.rb
478
- - ext/cs__protect_kernel/extconf.rb
478
+ - ext/cs__assess_regexp/extconf.rb
479
479
  extra_rdoc_files: []
480
480
  files:
481
481
  - ".clang-format"
@@ -537,19 +537,12 @@ files:
537
537
  - ext/cs__protect_kernel/extconf.rb
538
538
  - ext/extconf_common.rb
539
539
  - funchook/LICENSE
540
- - funchook/Makefile
541
540
  - funchook/Makefile.in
542
541
  - funchook/README.md
543
542
  - funchook/appveyor.yml
544
543
  - funchook/autogen.sh
545
- - funchook/autom4te.cache/output.0
546
- - funchook/autom4te.cache/requests
547
- - funchook/autom4te.cache/traces.0
548
544
  - funchook/config.guess
549
- - funchook/config.log
550
- - funchook/config.status
551
545
  - funchook/config.sub
552
- - funchook/configure
553
546
  - funchook/configure.ac
554
547
  - funchook/distorm/COPYING
555
548
  - funchook/distorm/MANIFEST
@@ -642,54 +635,28 @@ files:
642
635
  - funchook/distorm/src/x86defs.h
643
636
  - funchook/include/funchook.h
644
637
  - funchook/install-sh
645
- - funchook/src/Makefile
646
638
  - funchook/src/Makefile.in
647
639
  - funchook/src/__strerror.h
648
- - funchook/src/config.h
649
- - funchook/src/config.h.in
650
- - funchook/src/decoder.o
651
- - funchook/src/distorm.o
652
640
  - funchook/src/funchook.c
653
- - funchook/src/funchook.o
654
641
  - funchook/src/funchook_internal.h
655
642
  - funchook/src/funchook_io.c
656
643
  - funchook/src/funchook_io.h
657
- - funchook/src/funchook_io.o
658
644
  - funchook/src/funchook_syscall.S
659
- - funchook/src/funchook_syscall.o
660
645
  - funchook/src/funchook_unix.c
661
- - funchook/src/funchook_unix.o
662
646
  - funchook/src/funchook_windows.c
663
647
  - funchook/src/funchook_x86.c
664
- - funchook/src/funchook_x86.o
665
- - funchook/src/instructions.o
666
- - funchook/src/insts.o
667
- - funchook/src/libfunchook.so
668
- - funchook/src/mnemonics.o
669
- - funchook/src/operands.o
670
648
  - funchook/src/os_func.c
671
649
  - funchook/src/os_func.h
672
- - funchook/src/os_func.o
673
650
  - funchook/src/os_func_unix.c
674
- - funchook/src/os_func_unix.o
675
651
  - funchook/src/os_func_windows.c
676
- - funchook/src/prefix.o
677
652
  - funchook/src/printf_base.c
678
653
  - funchook/src/printf_base.h
679
- - funchook/src/printf_base.o
680
- - funchook/src/textdefs.o
681
- - funchook/src/wstring.o
682
- - funchook/test/Makefile
683
654
  - funchook/test/Makefile.in
684
- - funchook/test/funchook_test
685
655
  - funchook/test/libfunchook_test.c
686
- - funchook/test/libfunchook_test.so
687
656
  - funchook/test/libfunchook_test2.c
688
657
  - funchook/test/suffix.list
689
658
  - funchook/test/test_main.c
690
- - funchook/test/test_main.o
691
659
  - funchook/test/x86_64_test.S
692
- - funchook/test/x86_64_test.o
693
660
  - funchook/test/x86_test.S
694
661
  - funchook/win32/config.h
695
662
  - funchook/win32/funchook.sln
@@ -704,7 +671,6 @@ files:
704
671
  - lib/contrast.rb
705
672
  - lib/contrast/agent.rb
706
673
  - lib/contrast/agent/assess.rb
707
- - lib/contrast/agent/assess/adjusted_span.rb
708
674
  - lib/contrast/agent/assess/contrast_event.rb
709
675
  - lib/contrast/agent/assess/events/event_factory.rb
710
676
  - lib/contrast/agent/assess/events/source_event.rb
@@ -749,6 +715,8 @@ files:
749
715
  - lib/contrast/agent/assess/policy/trigger_validation/trigger_validation.rb
750
716
  - lib/contrast/agent/assess/policy/trigger_validation/xss_validator.rb
751
717
  - lib/contrast/agent/assess/properties.rb
718
+ - lib/contrast/agent/assess/property/evented.rb
719
+ - lib/contrast/agent/assess/property/tagged.rb
752
720
  - lib/contrast/agent/assess/rule.rb
753
721
  - lib/contrast/agent/assess/rule/base.rb
754
722
  - lib/contrast/agent/assess/rule/provider.rb
@@ -817,25 +785,42 @@ files:
817
785
  - lib/contrast/agent/rule_set.rb
818
786
  - lib/contrast/agent/scope.rb
819
787
  - lib/contrast/agent/service_heartbeat.rb
820
- - lib/contrast/agent/socket_client.rb
821
788
  - lib/contrast/agent/static_analysis.rb
822
789
  - lib/contrast/agent/thread.rb
790
+ - lib/contrast/agent/thread_watcher.rb
823
791
  - lib/contrast/agent/tracepoint_hook.rb
824
792
  - lib/contrast/agent/version.rb
793
+ - lib/contrast/agent/worker_thread.rb
825
794
  - lib/contrast/api.rb
826
795
  - lib/contrast/api/.gitkeep
827
- - lib/contrast/api/connection_status.rb
796
+ - lib/contrast/api/communication.rb
797
+ - lib/contrast/api/communication/connection_status.rb
798
+ - lib/contrast/api/communication/messaging_queue.rb
799
+ - lib/contrast/api/communication/response_processor.rb
800
+ - lib/contrast/api/communication/service_lifecycle.rb
801
+ - lib/contrast/api/communication/socket.rb
802
+ - lib/contrast/api/communication/socket_client.rb
803
+ - lib/contrast/api/communication/speedracer.rb
804
+ - lib/contrast/api/communication/tcp_socket.rb
805
+ - lib/contrast/api/communication/unix_socket.rb
828
806
  - lib/contrast/api/decorators.rb
807
+ - lib/contrast/api/decorators/address.rb
829
808
  - lib/contrast/api/decorators/application_settings.rb
830
809
  - lib/contrast/api/decorators/application_update.rb
810
+ - lib/contrast/api/decorators/http_request.rb
831
811
  - lib/contrast/api/decorators/input_analysis.rb
812
+ - lib/contrast/api/decorators/message.rb
813
+ - lib/contrast/api/decorators/rasp_rule_sample.rb
814
+ - lib/contrast/api/decorators/route_coverage.rb
832
815
  - lib/contrast/api/decorators/server_features.rb
833
- - lib/contrast/api/dtm_pb.rb
834
- - lib/contrast/api/settings_pb.rb
835
- - lib/contrast/api/socket.rb
836
- - lib/contrast/api/speedracer.rb
837
- - lib/contrast/api/tcp_socket.rb
838
- - lib/contrast/api/unix_socket.rb
816
+ - lib/contrast/api/decorators/trace_event.rb
817
+ - lib/contrast/api/decorators/trace_event_object.rb
818
+ - lib/contrast/api/decorators/trace_event_signature.rb
819
+ - lib/contrast/api/decorators/trace_taint_range.rb
820
+ - lib/contrast/api/decorators/trace_taint_range_tags.rb
821
+ - lib/contrast/api/decorators/user_input.rb
822
+ - lib/contrast/api/dtm.pb.rb
823
+ - lib/contrast/api/settings.pb.rb
839
824
  - lib/contrast/common_agent_configuration.rb
840
825
  - lib/contrast/components/agent.rb
841
826
  - lib/contrast/components/app_context.rb
@@ -904,13 +889,12 @@ files:
904
889
  - lib/contrast/framework/rails/rewrite/active_record_named.rb
905
890
  - lib/contrast/framework/rails/rewrite/active_record_time_zone_inherited.rb
906
891
  - lib/contrast/framework/rails/support.rb
907
- - lib/contrast/framework/sinatra/application_helper.rb
908
892
  - lib/contrast/framework/sinatra/patch/base.rb
909
893
  - lib/contrast/framework/sinatra/patch/support.rb
910
894
  - lib/contrast/framework/sinatra/support.rb
911
- - lib/contrast/framework/view_technologies_descriptor.rb
912
- - lib/contrast/internal_exception.rb
895
+ - lib/contrast/funchook/funchook.rb
913
896
  - lib/contrast/logger/application.rb
897
+ - lib/contrast/logger/format.rb
914
898
  - lib/contrast/logger/log.rb
915
899
  - lib/contrast/logger/time.rb
916
900
  - lib/contrast/security_exception.rb
@@ -919,7 +903,6 @@ files:
919
903
  - lib/contrast/utils/assess/sampling_util.rb
920
904
  - lib/contrast/utils/assess/tracking_util.rb
921
905
  - lib/contrast/utils/boolean_util.rb
922
- - lib/contrast/utils/cache.rb
923
906
  - lib/contrast/utils/class_util.rb
924
907
  - lib/contrast/utils/duck_utils.rb
925
908
  - lib/contrast/utils/env_configuration_item.rb
@@ -937,10 +920,7 @@ files:
937
920
  - lib/contrast/utils/prevent_serialization.rb
938
921
  - lib/contrast/utils/resource_loader.rb
939
922
  - lib/contrast/utils/ruby_ast_rewriter.rb
940
- - lib/contrast/utils/service_response_util.rb
941
- - lib/contrast/utils/service_sender_util.rb
942
923
  - lib/contrast/utils/sha256_builder.rb
943
- - lib/contrast/utils/sinatra_helper.rb
944
924
  - lib/contrast/utils/stack_trace_utils.rb
945
925
  - lib/contrast/utils/string_utils.rb
946
926
  - lib/contrast/utils/tag_util.rb
@@ -957,8 +937,6 @@ files:
957
937
  - service_executables/linux/contrast-service
958
938
  - service_executables/mac/contrast-service
959
939
  - shared_libraries/.gitkeep
960
- - shared_libraries/funchook.h
961
- - shared_libraries/libfunchook.so
962
940
  homepage: https://www.contrastsecurity.com
963
941
  licenses:
964
942
  - CONTRAST SECURITY (see license file)