contrast-agent-lib 0.1.2 → 0.1.4
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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/contrast-agent-lib.gemspec +35 -6
- data/lib/consts.rb +49 -0
- data/lib/contrast-agent-lib.rb +5 -2
- data/lib/utils/os.rb +6 -0
- data/lib/utils/version.rb +8 -0
- data/scripts/build_gem.sh +1 -3
- data/usage_files/libcontrast_c.dylib +0 -0
- data/usage_files/libcontrast_c.so +0 -0
- data/usage_files/libcontrast_c_musl.so +0 -0
- data/usage_files/libcontrast_darwin_arm.dylib +0 -0
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33852f7c0ff32dda5f1bb383ea6e22cccbe9f6a8e9eb86d931d42fd87f4ba97d
|
4
|
+
data.tar.gz: f8d8483d5eccf6dac6a4c0d14fc0db4cd7a6310b0edaa6ee48d1e6cf2036637d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6223cc990aef9e0c680ff225a7e2a497fc1deb9760b2518a24d1d2dc7f7298f5806bdc6cc1caf1d2691248d13fe1f9a2f13e685e4eca6a539b383fe6be993505
|
7
|
+
data.tar.gz: 64d87019fb7f61c59d613efda6f06540261c8c52ae56918a70472f6d0edfaead92f24e54be21109550c14ce44a60429eb0a30ef8a83c3b2c886af5a8bdd93a05
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.0.0
|
1
|
+
3.0.0
|
data/contrast-agent-lib.gemspec
CHANGED
@@ -14,6 +14,38 @@ def self.add_authors spec
|
|
14
14
|
]
|
15
15
|
end
|
16
16
|
|
17
|
+
# Adds files to the gemspec required for the agent lib.
|
18
|
+
# It is best to call the build of the gem inside the sdks/ruby dir.
|
19
|
+
def self.add_files spec
|
20
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
21
|
+
# Directories used for testing:
|
22
|
+
f.match(%r{^(spec|test)/}) ||
|
23
|
+
f.match(%r{^(\.github|bin|sig|vendor|docs|crates|ci_scripts|raw-protect-rules|scripts|target|utils)/}) ||
|
24
|
+
# Configuration and other files that don't belong to one directory
|
25
|
+
f.match(/(Dockerfile)/) ||
|
26
|
+
f.match(/(CODEOWNERS)/) ||
|
27
|
+
f.match(/(.*\.csv)/) ||
|
28
|
+
f.match(/(.*\.md)/) ||
|
29
|
+
f.match(/(.*\.sh)/) ||
|
30
|
+
f.match(/(.*\.xml)/) ||
|
31
|
+
f.match(/(.*\.toml)/) ||
|
32
|
+
f.match(/(.*\.lock)/) ||
|
33
|
+
f.match(/(.*\.json)/) ||
|
34
|
+
f.match(%r{^(spec|test)/}) ||
|
35
|
+
f.match(/(.*\.ya?ml)/)
|
36
|
+
end
|
37
|
+
|
38
|
+
# exclude . files:
|
39
|
+
spec.files -= `git ls-files -- .??*`.split("\n")
|
40
|
+
|
41
|
+
spec.files += Dir['lib/**/*.rb']
|
42
|
+
spec.files += Dir['scripts/**/*.sh']
|
43
|
+
spec.files += %w[LICENSE.txt Gemfile contrast-agent-lib.gemspec .ruby-version]
|
44
|
+
# add the binary files created.
|
45
|
+
spec.files += Dir['usage_files/**/*.dylib']
|
46
|
+
spec.files += Dir['usage_files/**/*.so']
|
47
|
+
end
|
48
|
+
|
17
49
|
# Add dev dependencies
|
18
50
|
def self.add_development_dependencies spec
|
19
51
|
spec.add_development_dependency('ffi', '~> 1.15', '>= 1.15.5')
|
@@ -25,15 +57,12 @@ Gem::Specification.new do |spec|
|
|
25
57
|
spec.summary = "This is the Ruby Interface for Rust Agent Library"
|
26
58
|
spec.description = "Gem including the interface for the Rust Agent Library, which will be used within the Ruby-Agent"
|
27
59
|
spec.email = %w[ruby@contrastsecurity.com]
|
28
|
-
spec.files = %w[lib/utils/os.rb lib/contrast-agent-lib.rb usage_files/libcontrast_c.dylib
|
29
|
-
usage_files/libcontrast_c.so usage_files/libcontrast_c_musl.so scripts/build_gem.sh
|
30
|
-
.ruby-version contrast-agent-lib.gemspec Gemfile LICENSE.txt
|
31
|
-
]
|
32
60
|
spec.require_paths = ['lib']
|
33
61
|
spec.homepage = 'https://www.contrastsecurity.com'
|
34
62
|
spec.license = 'CONTRAST SECURITY (see license file)'
|
35
|
-
spec.required_ruby_version = ['>= 2.7.0', '
|
63
|
+
spec.required_ruby_version = ['>= 2.7.0', '<= 3.2.0']
|
36
64
|
|
37
65
|
add_authors(spec)
|
66
|
+
add_files(spec)
|
38
67
|
add_development_dependencies(spec)
|
39
|
-
end
|
68
|
+
end
|
data/lib/consts.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
|
2
|
+
# this file generated by c-bindings' build.rs file.
|
3
|
+
# DO NOT EDIT
|
4
|
+
|
5
|
+
|
6
|
+
module ContrastAgentLib
|
7
|
+
module EvalOptions
|
8
|
+
PREFER_WORTH_WATCHING = 1
|
9
|
+
end
|
10
|
+
|
11
|
+
module RuleType
|
12
|
+
UNSAFE_FILE_UPLOAD = 1
|
13
|
+
PATH_TRAVERSAL = 2
|
14
|
+
REFLECTED_XSS = 4
|
15
|
+
SQL_INJECTION = 8
|
16
|
+
CMD_INJECTION = 16
|
17
|
+
NOSQL_INJECTION_MONGO = 32
|
18
|
+
BOT_BLOCKER = 64
|
19
|
+
SSJS_INJECTION = 128
|
20
|
+
METHOD_TAMPERING = 256
|
21
|
+
PROTOTYPE_POLLUTION = 512
|
22
|
+
end
|
23
|
+
|
24
|
+
module InputType
|
25
|
+
COOKIE_NAME = 1
|
26
|
+
COOKIE_VALUE = 2
|
27
|
+
HEADER_KEY = 3
|
28
|
+
HEADER_VALUE = 4
|
29
|
+
JSON_KEY = 5
|
30
|
+
JSON_VALUE = 6
|
31
|
+
METHOD = 7
|
32
|
+
PARAMETER_KEY = 8
|
33
|
+
PARAMETER_VALUE = 9
|
34
|
+
URI_PATH = 10
|
35
|
+
URL_PARAMETER = 11
|
36
|
+
MULTIPART_NAME = 12
|
37
|
+
XML_VALUE = 13
|
38
|
+
end
|
39
|
+
|
40
|
+
module DbType
|
41
|
+
DB2 = 1
|
42
|
+
MYSQL = 2
|
43
|
+
ORACLE = 3
|
44
|
+
POSTGRES = 4
|
45
|
+
SQLITE = 5
|
46
|
+
SQLSERVER = 6
|
47
|
+
UNKNOWN = 7
|
48
|
+
end
|
49
|
+
end
|
data/lib/contrast-agent-lib.rb
CHANGED
@@ -3,17 +3,20 @@
|
|
3
3
|
|
4
4
|
require 'ffi'
|
5
5
|
require 'utils/os'
|
6
|
+
# Load the constants
|
7
|
+
require_relative 'consts'
|
6
8
|
|
7
9
|
module ContrastAgentLib
|
8
10
|
include ContrastAgentLib::OS
|
9
11
|
LINUX_LIB = File.join(__dir__, '..', 'usage_files/libcontrast_c.so')
|
10
12
|
MAC_LIB = File.join(__dir__, '..', 'usage_files/libcontrast_c.dylib')
|
13
|
+
MAC_M1_LIB = File.join(__dir__, '..', 'usage_files/libcontrast_darwin_arm.dylib')
|
11
14
|
ALPINE_LIB = File.join(__dir__, '..', 'usage_files/libcontrast_c_musl.so')
|
12
15
|
# Since we need two different extensions for each platform we
|
13
16
|
# need to detect the used OS before loading the dynamic library.
|
14
17
|
CONTRAST_C = if ContrastAgentLib::OS.linux?
|
15
18
|
ContrastAgentLib::OS.alpine? ? ALPINE_LIB : LINUX_LIB
|
16
19
|
else
|
17
|
-
MAC_LIB
|
20
|
+
ContrastAgentLib::OS.m1_mac? ? MAC_M1_LIB : MAC_LIB
|
18
21
|
end
|
19
|
-
end
|
22
|
+
end
|
data/lib/utils/os.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Copyright (c) 2022 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details.
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require 'rbconfig'
|
5
|
+
|
4
6
|
module ContrastAgentLib
|
5
7
|
module OS
|
6
8
|
class << self
|
@@ -17,6 +19,10 @@ module ContrastAgentLib
|
|
17
19
|
@_mac
|
18
20
|
end
|
19
21
|
|
22
|
+
def m1_mac?
|
23
|
+
mac? && RbConfig::CONFIG['host_cpu'].include?('arm64')
|
24
|
+
end
|
25
|
+
|
20
26
|
def unix?
|
21
27
|
!windows?
|
22
28
|
end
|
data/scripts/build_gem.sh
CHANGED
@@ -5,6 +5,4 @@ set -Eeuo pipefail
|
|
5
5
|
gem build contrast-agent-lib.gemspec
|
6
6
|
|
7
7
|
# Push to RubyGems
|
8
|
-
#
|
9
|
-
#curl -u username https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials;
|
10
|
-
#chmod 0600 ~/.gem/credentials
|
8
|
+
# This is moved as separate job in the pipeline
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: contrast-agent-lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- teodor.raychev@contrastsecurity.com
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2022-
|
15
|
+
date: 2022-11-29 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: ffi
|
@@ -46,12 +46,15 @@ files:
|
|
46
46
|
- Gemfile
|
47
47
|
- LICENSE.txt
|
48
48
|
- contrast-agent-lib.gemspec
|
49
|
+
- lib/consts.rb
|
49
50
|
- lib/contrast-agent-lib.rb
|
50
51
|
- lib/utils/os.rb
|
52
|
+
- lib/utils/version.rb
|
51
53
|
- scripts/build_gem.sh
|
52
54
|
- usage_files/libcontrast_c.dylib
|
53
55
|
- usage_files/libcontrast_c.so
|
54
56
|
- usage_files/libcontrast_c_musl.so
|
57
|
+
- usage_files/libcontrast_darwin_arm.dylib
|
55
58
|
homepage: https://www.contrastsecurity.com
|
56
59
|
licenses:
|
57
60
|
- CONTRAST SECURITY (see license file)
|
@@ -65,7 +68,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
65
68
|
- - ">="
|
66
69
|
- !ruby/object:Gem::Version
|
67
70
|
version: 2.7.0
|
68
|
-
- - "
|
71
|
+
- - "<="
|
69
72
|
- !ruby/object:Gem::Version
|
70
73
|
version: 3.2.0
|
71
74
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -74,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
74
77
|
- !ruby/object:Gem::Version
|
75
78
|
version: '0'
|
76
79
|
requirements: []
|
77
|
-
rubygems_version: 3.
|
80
|
+
rubygems_version: 3.3.26
|
78
81
|
signing_key:
|
79
82
|
specification_version: 4
|
80
83
|
summary: This is the Ruby Interface for Rust Agent Library
|