norad_beacon 0.1.1 → 0.1.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
  SHA1:
3
- metadata.gz: 14e982822ee749402ff3bd736746133ffb7a4369
4
- data.tar.gz: 7a186075cf787bbdf0b8a19fce1f4cac2d08b9a2
3
+ metadata.gz: d13c67f1371165cae9ca885c7573faf2e1f39fa0
4
+ data.tar.gz: 26752d82f9b15c9f2a8871ae4b9f412457e6d3dd
5
5
  SHA512:
6
- metadata.gz: 996a5517ef20c314631e4c4f07e47a5534dd2fab78a7809a41aca682dd5158ff9f58a2acb15306e609fb7e3bf58e700a0dda3ae3a7d97f178b94e579fb29f86e
7
- data.tar.gz: a01bb23b25b3293b4670c299f6e6d9d0f65c0c60f6786aa6b971cca1488be8320ca83e6326276ceb33b70b428983b4afd8b582aca366614351c80e92b4566c3f
6
+ metadata.gz: bbd5d5da22ab1905f6635b3fc893cb063b55ff3b886ffae1fa7baf557a3e63ac2eea9409116dd5f189c3b308569ef124b90b84efacf6fc75426fe3d52ccd9aa7
7
+ data.tar.gz: 7e312d7ce61eb84a25440653d1a1b3d1b76cfdb5d56582fb41d939f6a37ad4279e5169b7f931141e7b17519798db7dfe45e6c129409ff135b183a053263e22bf
data/.rubocop.yml CHANGED
@@ -1,6 +1,10 @@
1
1
  AllCops:
2
2
  TargetRubyVersion: 2.3
3
+ DisplayCopNames: true
3
4
  Documentation:
4
5
  Enabled: false
5
6
  Metrics/LineLength:
6
7
  Max: 120
8
+ Metrics/BlockLength:
9
+ Exclude:
10
+ - 'spec/**/*'
@@ -18,14 +18,12 @@ module NoradBeacon
18
18
  # Reads encrypted credentials from disk, decrypts the
19
19
  # credentials, and loads and returns the YAML.
20
20
  # @return [Hash]
21
- # rubocop:disable YAMLLoad
22
21
  def decrypt_and_load
23
22
  aes_key = load_key_from_env
24
- symbolize YAML.load(decrypt_containers_file(aes_key))
23
+ symbolize YAML.safe_load(decrypt_containers_file(aes_key))
25
24
  rescue Psych::SyntaxError
26
25
  raise NoradBeaconError, e.message
27
26
  end
28
- # rubocop:enable YAMLLoad
29
27
 
30
28
  # Load the Base64 encoded key from the environment
31
29
  # @return [String] AES Key
@@ -1,8 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
  require 'json'
3
+ require 'openssl'
3
4
 
4
5
  module NoradBeacon
5
6
  class Result
7
+ attr_reader :nid, :sir, :status, :output, :title, :description, :signature
8
+
9
+ # I'm making both of these values constants to reinforce the idea that these values should
10
+ # *never* change. If they do, all ignore rules in the Norad database we'll be invalidated.
11
+ SIGNATURE_DIGEST = OpenSSL::Digest.new('sha256')
12
+ SIGNATURE_KEY = 'n0r4dRULES'
13
+
6
14
  # rubocop:disable ParameterLists
7
15
  def initialize(nid, status, output, title, description, sir = 'unevaluated')
8
16
  @nid = nid
@@ -11,12 +19,19 @@ module NoradBeacon
11
19
  @output = output
12
20
  @title = title
13
21
  @description = description
22
+ @signature = compute_signature
14
23
  end
15
24
  # rubocop:enable ParameterLists
16
25
 
17
26
  def to_json(*a)
18
27
  {
19
- nid: @nid, sir: @sir, status: @status, output: @output, title: @title, description: @description
28
+ nid: nid,
29
+ sir: sir,
30
+ status: status,
31
+ output: output,
32
+ title: title,
33
+ description: description,
34
+ signature: signature
20
35
  }.to_json(*a)
21
36
  end
22
37
 
@@ -33,5 +48,10 @@ module NoradBeacon
33
48
  return 'unevaluated'
34
49
  end
35
50
  end
51
+
52
+ def compute_signature
53
+ result_for_signature = nid.to_s + title.to_s + status.to_s
54
+ OpenSSL::HMAC.hexdigest(SIGNATURE_DIGEST, SIGNATURE_KEY, result_for_signature)
55
+ end
36
56
  end
37
57
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module NoradBeacon
3
- VERSION = '0.1.1'
3
+ VERSION = '0.1.2'
4
4
  end
data/norad_beacon.gemspec CHANGED
@@ -28,7 +28,8 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_development_dependency 'bundler', '~> 1.10'
30
30
  spec.add_development_dependency 'rake', '~> 10.0'
31
- spec.add_development_dependency 'rubocop'
32
- spec.add_development_dependency 'rspec'
31
+ spec.add_development_dependency 'rainbow', '~> 2.1.0' # There is a bug in rainbow 2.2.1
32
+ spec.add_development_dependency 'rubocop', '~> 0.47'
33
+ spec.add_development_dependency 'rspec', '~> 3.5'
33
34
  spec.add_development_dependency 'bundler-audit', '~> 0.5'
34
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: norad_beacon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Blake Hitchcock
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2017-01-17 00:00:00.000000000 Z
13
+ date: 2017-01-25 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -82,34 +82,48 @@ dependencies:
82
82
  - - "~>"
83
83
  - !ruby/object:Gem::Version
84
84
  version: '10.0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: rainbow
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: 2.1.0
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: 2.1.0
85
99
  - !ruby/object:Gem::Dependency
86
100
  name: rubocop
87
101
  requirement: !ruby/object:Gem::Requirement
88
102
  requirements:
89
- - - ">="
103
+ - - "~>"
90
104
  - !ruby/object:Gem::Version
91
- version: '0'
105
+ version: '0.47'
92
106
  type: :development
93
107
  prerelease: false
94
108
  version_requirements: !ruby/object:Gem::Requirement
95
109
  requirements:
96
- - - ">="
110
+ - - "~>"
97
111
  - !ruby/object:Gem::Version
98
- version: '0'
112
+ version: '0.47'
99
113
  - !ruby/object:Gem::Dependency
100
114
  name: rspec
101
115
  requirement: !ruby/object:Gem::Requirement
102
116
  requirements:
103
- - - ">="
117
+ - - "~>"
104
118
  - !ruby/object:Gem::Version
105
- version: '0'
119
+ version: '3.5'
106
120
  type: :development
107
121
  prerelease: false
108
122
  version_requirements: !ruby/object:Gem::Requirement
109
123
  requirements:
110
- - - ">="
124
+ - - "~>"
111
125
  - !ruby/object:Gem::Version
112
- version: '0'
126
+ version: '3.5'
113
127
  - !ruby/object:Gem::Dependency
114
128
  name: bundler-audit
115
129
  requirement: !ruby/object:Gem::Requirement
@@ -177,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
191
  version: '0'
178
192
  requirements: []
179
193
  rubyforge_project:
180
- rubygems_version: 2.6.8
194
+ rubygems_version: 2.6.9
181
195
  signing_key:
182
196
  specification_version: 4
183
197
  summary: Gem to help with posting blackbox results to Norad.