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.
- checksums.yaml +4 -4
- data/.dockerignore +0 -1
- data/.gitignore +1 -1
- data/.simplecov +1 -1
- data/Rakefile +31 -0
- data/ext/build_funchook.rb +0 -2
- data/ext/cs__assess_fiber_track/cs__assess_fiber_track.c +2 -8
- data/ext/cs__assess_fiber_track/cs__assess_fiber_track.h +0 -1
- data/ext/cs__assess_string_interpolation26/cs__assess_string_interpolation26.c +1 -6
- data/ext/cs__assess_yield_track/cs__assess_yield_track.c +1 -5
- data/ext/cs__assess_yield_track/cs__assess_yield_track.h +0 -1
- data/ext/cs__common/cs__common.c +24 -0
- data/ext/cs__common/cs__common.h +3 -0
- data/ext/cs__common/extconf.rb +0 -14
- data/ext/extconf_common.rb +0 -28
- data/lib/contrast.rb +3 -1
- data/lib/contrast/agent.rb +14 -2
- data/lib/contrast/agent/assess/contrast_event.rb +28 -167
- data/lib/contrast/agent/assess/events/source_event.rb +3 -7
- data/lib/contrast/agent/assess/policy/dynamic_source_factory.rb +1 -1
- data/lib/contrast/agent/assess/policy/policy_node.rb +4 -98
- data/lib/contrast/agent/assess/policy/propagation_method.rb +1 -2
- data/lib/contrast/agent/assess/policy/propagation_node.rb +5 -1
- data/lib/contrast/agent/assess/policy/propagator/base.rb +1 -1
- data/lib/contrast/agent/assess/policy/propagator/insert.rb +1 -4
- data/lib/contrast/agent/assess/policy/propagator/match_data.rb +9 -1
- data/lib/contrast/agent/assess/policy/propagator/remove.rb +6 -11
- data/lib/contrast/agent/assess/policy/propagator/select.rb +4 -4
- data/lib/contrast/agent/assess/policy/propagator/split.rb +2 -2
- data/lib/contrast/agent/assess/policy/propagator/substitution.rb +4 -4
- data/lib/contrast/agent/assess/policy/propagator/trim.rb +6 -10
- data/lib/contrast/agent/assess/policy/source_method.rb +1 -2
- data/lib/contrast/agent/assess/policy/trigger_method.rb +2 -10
- data/lib/contrast/agent/assess/policy/trigger_node.rb +16 -4
- data/lib/contrast/agent/assess/properties.rb +4 -382
- data/lib/contrast/agent/assess/property/evented.rb +78 -0
- data/lib/contrast/agent/assess/property/tagged.rb +339 -0
- data/lib/contrast/agent/assess/rule/provider/hardcoded_value_rule.rb +2 -20
- data/lib/contrast/agent/assess/tag.rb +27 -12
- data/lib/contrast/agent/at_exit_hook.rb +3 -1
- data/lib/contrast/agent/exclusion_matcher.rb +2 -2
- data/lib/contrast/agent/inventory/policy/datastores.rb +0 -1
- data/lib/contrast/agent/middleware.rb +2 -14
- data/lib/contrast/agent/patching/policy/patch.rb +1 -1
- data/lib/contrast/agent/patching/policy/policy.rb +3 -3
- data/lib/contrast/agent/patching/policy/policy_node.rb +2 -2
- data/lib/contrast/agent/protect/policy/rule_applicator.rb +2 -2
- data/lib/contrast/agent/protect/rule/base.rb +19 -31
- data/lib/contrast/agent/protect/rule/base_service.rb +1 -1
- data/lib/contrast/agent/protect/rule/http_method_tampering.rb +2 -7
- data/lib/contrast/agent/protect/rule/xxe.rb +1 -0
- data/lib/contrast/agent/reaction_processor.rb +3 -3
- data/lib/contrast/agent/request.rb +92 -331
- data/lib/contrast/agent/request_context.rb +15 -15
- data/lib/contrast/agent/request_handler.rb +1 -1
- data/lib/contrast/agent/response.rb +2 -14
- data/lib/contrast/agent/scope.rb +1 -1
- data/lib/contrast/agent/service_heartbeat.rb +7 -9
- data/lib/contrast/agent/static_analysis.rb +1 -1
- data/lib/contrast/agent/thread_watcher.rb +49 -0
- data/lib/contrast/agent/version.rb +1 -1
- data/lib/contrast/agent/worker_thread.rb +24 -0
- data/lib/contrast/api.rb +3 -5
- data/lib/contrast/api/communication.rb +20 -0
- data/lib/contrast/api/communication/connection_status.rb +41 -0
- data/lib/contrast/api/communication/messaging_queue.rb +79 -0
- data/lib/contrast/{utils/service_response_util.rb → api/communication/response_processor.rb} +9 -18
- data/lib/contrast/api/communication/service_lifecycle.rb +61 -0
- data/lib/contrast/api/communication/socket.rb +45 -0
- data/lib/contrast/api/communication/socket_client.rb +76 -0
- data/lib/contrast/api/communication/speedracer.rb +111 -0
- data/lib/contrast/api/communication/tcp_socket.rb +31 -0
- data/lib/contrast/api/communication/unix_socket.rb +27 -0
- data/lib/contrast/api/decorators.rb +10 -0
- data/lib/contrast/api/decorators/address.rb +60 -0
- data/lib/contrast/api/decorators/application_settings.rb +7 -3
- data/lib/contrast/api/decorators/application_update.rb +0 -9
- data/lib/contrast/api/decorators/http_request.rb +139 -0
- data/lib/contrast/api/decorators/message.rb +75 -0
- data/lib/contrast/api/decorators/rasp_rule_sample.rb +28 -0
- data/lib/contrast/api/decorators/route_coverage.rb +57 -0
- data/lib/contrast/api/decorators/trace_event.rb +99 -0
- data/lib/contrast/api/decorators/trace_event_object.rb +57 -0
- data/lib/contrast/api/decorators/trace_event_signature.rb +46 -0
- data/lib/contrast/api/decorators/trace_taint_range.rb +51 -0
- data/lib/contrast/api/decorators/trace_taint_range_tags.rb +109 -0
- data/lib/contrast/api/decorators/user_input.rb +40 -0
- data/lib/contrast/components/app_context.rb +0 -7
- data/lib/contrast/components/config.rb +4 -9
- data/lib/contrast/components/interface.rb +1 -1
- data/lib/contrast/components/settings.rb +0 -6
- data/lib/contrast/configuration.rb +2 -2
- data/lib/contrast/extension/assess.rb +0 -1
- data/lib/contrast/extension/assess/assess_extension.rb +1 -2
- data/lib/contrast/extension/assess/fiber.rb +1 -1
- data/lib/contrast/extension/assess/string.rb +1 -1
- data/lib/contrast/extension/inventory.rb +0 -1
- data/lib/contrast/framework/base_support.rb +0 -23
- data/lib/contrast/framework/manager.rb +0 -9
- data/lib/contrast/framework/rails/patch/action_controller_live_buffer.rb +1 -3
- data/lib/contrast/framework/rails/patch/assess_configuration.rb +3 -4
- data/lib/contrast/framework/rails/support.rb +3 -32
- data/lib/contrast/framework/sinatra/patch/base.rb +1 -1
- data/lib/contrast/framework/sinatra/support.rb +11 -22
- data/lib/contrast/funchook/funchook.rb +45 -0
- data/lib/contrast/logger/application.rb +1 -1
- data/lib/contrast/logger/format.rb +51 -0
- data/lib/contrast/logger/log.rb +16 -9
- data/lib/contrast/utils/assess/tracking_util.rb +45 -20
- data/lib/contrast/utils/class_util.rb +3 -1
- data/lib/contrast/utils/hash_digest.rb +11 -2
- data/lib/contrast/utils/invalid_configuration_util.rb +1 -17
- data/lib/contrast/utils/inventory_util.rb +2 -7
- data/lib/contrast/utils/object_share.rb +0 -1
- data/lib/contrast/utils/os.rb +16 -4
- data/lib/contrast/utils/stack_trace_utils.rb +0 -1
- data/lib/contrast/utils/tag_util.rb +1 -1
- data/lib/contrast/utils/thread_tracker.rb +1 -14
- data/lib/contrast/utils/timer.rb +1 -17
- data/resources/deadzone/policy.json +5 -0
- data/ruby-agent.gemspec +4 -4
- data/service_executables/VERSION +1 -1
- data/service_executables/linux/contrast-service +0 -0
- data/service_executables/mac/contrast-service +0 -0
- metadata +49 -71
- data/funchook/Makefile +0 -29
- data/funchook/autom4te.cache/output.0 +0 -4976
- data/funchook/autom4te.cache/requests +0 -78
- data/funchook/autom4te.cache/traces.0 +0 -364
- data/funchook/config.log +0 -490
- data/funchook/config.status +0 -1016
- data/funchook/configure +0 -4976
- data/funchook/src/Makefile +0 -70
- data/funchook/src/config.h +0 -101
- data/funchook/src/config.h.in +0 -100
- data/funchook/src/decoder.o +0 -0
- data/funchook/src/distorm.o +0 -0
- data/funchook/src/funchook.o +0 -0
- data/funchook/src/funchook_io.o +0 -0
- data/funchook/src/funchook_syscall.o +0 -0
- data/funchook/src/funchook_unix.o +0 -0
- data/funchook/src/funchook_x86.o +0 -0
- data/funchook/src/instructions.o +0 -0
- data/funchook/src/insts.o +0 -0
- data/funchook/src/libfunchook.so +0 -0
- data/funchook/src/mnemonics.o +0 -0
- data/funchook/src/operands.o +0 -0
- data/funchook/src/os_func.o +0 -0
- data/funchook/src/os_func_unix.o +0 -0
- data/funchook/src/prefix.o +0 -0
- data/funchook/src/printf_base.o +0 -0
- data/funchook/src/textdefs.o +0 -0
- data/funchook/src/wstring.o +0 -0
- data/funchook/test/Makefile +0 -43
- data/funchook/test/funchook_test +0 -0
- data/funchook/test/libfunchook_test.so +0 -0
- data/funchook/test/test_main.o +0 -0
- data/funchook/test/x86_64_test.o +0 -0
- data/lib/contrast/agent/assess/adjusted_span.rb +0 -27
- data/lib/contrast/agent/socket_client.rb +0 -134
- data/lib/contrast/api/connection_status.rb +0 -49
- data/lib/contrast/api/socket.rb +0 -43
- data/lib/contrast/api/speedracer.rb +0 -188
- data/lib/contrast/api/tcp_socket.rb +0 -29
- data/lib/contrast/api/unix_socket.rb +0 -25
- data/lib/contrast/framework/sinatra/application_helper.rb +0 -51
- data/lib/contrast/framework/view_technologies_descriptor.rb +0 -21
- data/lib/contrast/internal_exception.rb +0 -8
- data/lib/contrast/utils/cache.rb +0 -58
- data/lib/contrast/utils/service_sender_util.rb +0 -167
- 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
|
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.
|
36
|
-
hash.
|
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
|
-
|
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
|
-
|
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[
|
74
|
+
ac.url = hash[:database] || hash[DATABASE] || DEFAULT
|
80
75
|
[ac]
|
81
76
|
end
|
82
77
|
|
data/lib/contrast/utils/os.rb
CHANGED
@@ -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
|
-
|
13
|
-
|
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
|
-
|
20
|
-
|
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
|
@@ -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
|
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
|
data/lib/contrast/utils/timer.rb
CHANGED
@@ -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 :
|
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
|
data/ruby-agent.gemspec
CHANGED
@@ -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|
|
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/
|
94
|
-
spec.files << 'lib/contrast/api/
|
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/**/*']
|
data/service_executables/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.9.5
|
Binary file
|
Binary file
|
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.
|
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-
|
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:
|
396
|
+
name: ougai
|
397
397
|
requirement: !ruby/object:Gem::Requirement
|
398
398
|
requirements:
|
399
399
|
- - "~>"
|
400
400
|
- !ruby/object:Gem::Version
|
401
|
-
version:
|
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:
|
408
|
+
version: '1.8'
|
409
409
|
- !ruby/object:Gem::Dependency
|
410
|
-
name:
|
410
|
+
name: parser
|
411
411
|
requirement: !ruby/object:Gem::Requirement
|
412
412
|
requirements:
|
413
413
|
- - "~>"
|
414
414
|
- !ruby/object:Gem::Version
|
415
|
-
version: '
|
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: '
|
422
|
+
version: '2.6'
|
423
423
|
- !ruby/object:Gem::Dependency
|
424
|
-
name:
|
424
|
+
name: protobuf
|
425
425
|
requirement: !ruby/object:Gem::Requirement
|
426
426
|
requirements:
|
427
427
|
- - "~>"
|
428
428
|
- !ruby/object:Gem::Version
|
429
|
-
version: '
|
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: '
|
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/
|
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/
|
470
|
-
- ext/
|
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/
|
474
|
-
- ext/
|
475
|
-
- ext/
|
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/
|
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/
|
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/
|
834
|
-
- lib/contrast/api/
|
835
|
-
- lib/contrast/api/
|
836
|
-
- lib/contrast/api/
|
837
|
-
- lib/contrast/api/
|
838
|
-
- lib/contrast/api/
|
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/
|
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)
|