CloudyScripts 1.7.27 → 1.8.29

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.
Files changed (32) hide show
  1. data/Rakefile +1 -1
  2. data/lib/audit/benchmark_apache.zip +0 -0
  3. data/lib/audit/benchmark_full.zip +0 -0
  4. data/lib/audit/benchmark_ssh.zip +0 -0
  5. data/lib/audit/checks/benchmark.group +0 -3
  6. data/lib/audit/checks/benchmark.group.apache +3 -0
  7. data/lib/audit/checks/benchmark.group.full +6 -0
  8. data/lib/audit/checks/benchmark.group.ssh +3 -0
  9. data/lib/audit/checks/benchmark.ssh.zip +0 -0
  10. data/lib/audit/lib/audit.rb +7 -7
  11. data/lib/audit/lib/benchmark/audit_benchmark.rb +5 -4
  12. data/lib/audit/lib/benchmark/benchmark_factory.rb +1 -1
  13. data/lib/audit/lib/benchmark/check.rb +2 -2
  14. data/lib/audit/lib/benchmark/group.rb +2 -2
  15. data/lib/audit/lib/benchmark/rule_result.rb +2 -2
  16. data/lib/audit/lib/benchmark/yaml_benchmark.rb +6 -7
  17. data/lib/audit/lib/connection/connection_factory.rb +2 -2
  18. data/lib/audit/lib/connection/ssh_connection.rb +1 -1
  19. data/lib/audit/lib/parser/command/attach_file_command.rb +5 -5
  20. data/lib/audit/lib/parser/command/check_finished_command.rb +3 -3
  21. data/lib/audit/lib/parser/command/cpe_name_command.rb +4 -4
  22. data/lib/audit/lib/parser/command/data_command.rb +5 -5
  23. data/lib/audit/lib/parser/command/listening_port_command.rb +2 -2
  24. data/lib/audit/lib/parser/command/message_command.rb +4 -4
  25. data/lib/audit/lib/parser/command/program_name_command.rb +4 -4
  26. data/lib/audit/lib/parser/script_output_parser.rb +11 -11
  27. data/lib/audit/lib/ssh_fingerprint.rb +2 -2
  28. data/lib/audit/lib/transformers/web_view_transformer.rb +2 -2
  29. data/lib/help/state_transition_helper.rb +60 -3
  30. data/lib/scripts/ec2/audit_via_ssh.rb +150 -0
  31. data/lib/scripts/ec2/ec2_script.rb +1 -1
  32. metadata +176 -157
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ require 'rake/testtask'
12
12
 
13
13
  spec = Gem::Specification.new do |s|
14
14
  s.name = 'CloudyScripts'
15
- s.version = '1.7.27'
15
+ s.version = '1.8.29'
16
16
  s.has_rdoc = true
17
17
  s.extra_rdoc_files = ['README.rdoc', 'LICENSE']
18
18
  s.summary = 'Scripts to facilitate programming for infrastructure clouds.'
Binary file
Binary file
Binary file
@@ -1,6 +1,3 @@
1
1
  ID: BENCHMARK
2
2
  Children:
3
- - APACHE2
4
3
  - SSH
5
- - LYNIS_AUTH
6
- - VARIOUS
@@ -0,0 +1,3 @@
1
+ ID: BENCHMARK
2
+ Children:
3
+ - APACHE2
@@ -0,0 +1,6 @@
1
+ ID: BENCHMARK
2
+ Children:
3
+ - APACHE2
4
+ - SSH
5
+ - LYNIS_AUTH
6
+ - VARIOUS
@@ -0,0 +1,3 @@
1
+ ID: BENCHMARK
2
+ Children:
3
+ - SSH
Binary file
@@ -1,12 +1,12 @@
1
1
  require 'logger'
2
2
 
3
- require 'connection/connection_factory'
4
- require 'benchmark/benchmark_factory'
5
- require 'linear_script_generator'
6
- require 'parser/script_output_parser'
7
- require 'util/random_string'
8
- require 'benchmark/benchmark_result'
9
- require 'lazy'
3
+ require 'audit/lib/connection/connection_factory'
4
+ require 'audit/lib/benchmark/benchmark_factory'
5
+ require 'audit/lib/linear_script_generator'
6
+ require 'audit/lib/parser/script_output_parser'
7
+ require 'audit/lib/util/random_string'
8
+ require 'audit/lib/benchmark/benchmark_result'
9
+ require 'audit/lib/lazy'
10
10
 
11
11
  class Audit
12
12
  attr_reader :benchmark
@@ -1,6 +1,7 @@
1
- require 'benchmark/check'
2
- require 'benchmark/item_exception'
3
- require 'lazy'
1
+ require 'audit/lib/benchmark/check'
2
+ require 'audit/lib/benchmark/item_exception'
3
+ require 'audit/lib/lazy'
4
+
4
5
 
5
6
  class AuditBenchmark
6
7
  attr_reader :item_repository
@@ -162,4 +163,4 @@ class AuditBenchmark
162
163
  :children => Lazy.new(Lazy.new(@children, :reject) {|x| !x.in_report?}, :map) {|child| Lazy.new(child, :to_hash)}
163
164
  }
164
165
  end
165
- end
166
+ end
@@ -1,4 +1,4 @@
1
- require 'benchmark/yaml_benchmark'
1
+ require 'audit/lib/benchmark/yaml_benchmark'
2
2
 
3
3
  class BenchmarkFactory
4
4
  def initialize(options)
@@ -1,4 +1,4 @@
1
- require 'lazy'
1
+ require 'audit/lib/lazy'
2
2
 
3
3
  class Check
4
4
  attr_reader :id # The ID by which this check is referenced from other elements
@@ -31,4 +31,4 @@ class Check
31
31
  def in_report?()
32
32
  return true
33
33
  end
34
- end
34
+ end
@@ -1,4 +1,4 @@
1
- require 'lazy'
1
+ require 'audit/lib/lazy'
2
2
 
3
3
 
4
4
  class Group
@@ -27,4 +27,4 @@ class Group
27
27
  def in_report?()
28
28
  true
29
29
  end
30
- end
30
+ end
@@ -1,5 +1,5 @@
1
- require 'benchmark/result_code'
2
- require 'lazy'
1
+ require 'audit/lib/benchmark/result_code'
2
+ require 'audit/lib/lazy'
3
3
 
4
4
  class RuleResult
5
5
  attr_reader :rule
@@ -2,12 +2,11 @@ require 'yaml'
2
2
  require 'logger'
3
3
  require 'zip/zip'
4
4
 
5
- require 'benchmark/group'
6
- require 'benchmark/item_exception'
7
- require 'benchmark/check'
8
- require 'benchmark/audit_benchmark'
9
- require 'benchmark/automatic_dependencies'
10
-
5
+ require 'audit/lib/benchmark/group'
6
+ require 'audit/lib/benchmark/item_exception'
7
+ require 'audit/lib/benchmark/check'
8
+ require 'audit/lib/benchmark/audit_benchmark'
9
+ require 'audit/lib/benchmark/automatic_dependencies'
11
10
 
12
11
 
13
12
  class YamlBenchmark < AuditBenchmark
@@ -130,4 +129,4 @@ class YamlBenchmark < AuditBenchmark
130
129
  raise ItemNotFoundException.new(id), "Item #{id} not found" if @item_repository[id].nil?
131
130
  return @item_repository[id]
132
131
  end
133
- end
132
+ end
@@ -1,4 +1,4 @@
1
- require 'connection/ssh_connection'
1
+ require 'audit/lib/connection/ssh_connection'
2
2
 
3
3
 
4
4
  class ConnectionFactory
@@ -24,4 +24,4 @@ class ConnectionFactory
24
24
  end
25
25
  end
26
26
  end
27
-
27
+
@@ -26,7 +26,7 @@ class SshConnection
26
26
  end
27
27
 
28
28
  @@logger.info("opening ssh connection with parameters: " + @parameters.to_s)
29
-
29
+
30
30
  parameters = @parameters.clone()
31
31
  host = @parameters[:host]
32
32
  user = @parameters[:user]
@@ -1,7 +1,7 @@
1
- require 'parser/command/abstract_command_result'
2
- require 'parser/command/abstract_command'
3
- require 'parser/parse_exception'
4
- require 'parser/result_type'
1
+ require 'audit/lib/parser/command/abstract_command_result'
2
+ require 'audit/lib/parser/command/abstract_command'
3
+ require 'audit/lib/parser/parse_exception'
4
+ require 'audit/lib/parser/result_type'
5
5
 
6
6
  class AttachFileCommandResult < AbstractCommandResult
7
7
  attr_reader :file
@@ -60,4 +60,4 @@ class AttachFileCommand < AbstractCommand
60
60
  def result()
61
61
  return AttachFileCommandResult.new(@check, @severity, @message, @local_path)
62
62
  end
63
- end
63
+ end
@@ -1,8 +1,8 @@
1
1
  # To change this template, choose Tools | Templates
2
2
  # and open the template in the editor.
3
- require 'parser/command/abstract_command_result'
4
- require 'parser/command/abstract_command'
5
- require 'parser/result_type'
3
+ require 'audit/lib/parser/command/abstract_command_result'
4
+ require 'audit/lib/parser/command/abstract_command'
5
+ require 'audit/lib/parser/result_type'
6
6
 
7
7
  class CheckFinishedCommandResult < AbstractCommandResult
8
8
  attr_reader :exit_code
@@ -1,6 +1,6 @@
1
- require 'parser/command/abstract_command'
2
- require 'parser/command/abstract_command_result'
3
- require 'parser/result_type'
1
+ require 'audit/lib/parser/command/abstract_command'
2
+ require 'audit/lib/parser/command/abstract_command_result'
3
+ require 'audit/lib/parser/result_type'
4
4
 
5
5
  class CpeNameCommandResult < AbstractCommandResult
6
6
  def initialize(check, severity, message, cpe_name)
@@ -34,4 +34,4 @@ class CpeNameCommand < AbstractCommand
34
34
  def result()
35
35
  return CpeNameCommandResult.new(@check, @severity, @message, @cpe_name)
36
36
  end
37
- end
37
+ end
@@ -1,7 +1,7 @@
1
- require 'parser/command/abstract_command'
2
- require 'parser/command/abstract_command_result'
3
- require 'parser/result_type'
4
- require 'parser/parse_exception'
1
+ require 'audit/lib/parser/command/abstract_command'
2
+ require 'audit/lib/parser/command/abstract_command_result'
3
+ require 'audit/lib/parser/result_type'
4
+ require 'audit/lib/parser/parse_exception'
5
5
 
6
6
  class DataCommandResult < AbstractCommandResult
7
7
  attr_reader :key
@@ -40,4 +40,4 @@ class DataCommand < AbstractCommand
40
40
  def result()
41
41
  return DataCommandResult.new(@check, @severity, @key, @value)
42
42
  end
43
- end
43
+ end
@@ -1,8 +1,8 @@
1
1
  # To change this template, choose Tools | Templates
2
2
  # and open the template in the editor.
3
3
 
4
- require 'parser/command/abstract_command'
5
- require 'parser/command/abstract_command_result'
4
+ require 'audit/lib/parser/command/abstract_command'
5
+ require 'audit/lib/parser/command/abstract_command_result'
6
6
 
7
7
 
8
8
  class ListeningPortCommandResult < AbstractCommandResult
@@ -1,6 +1,6 @@
1
- require 'parser/command/abstract_command'
2
- require 'parser/command/abstract_command_result'
3
- require 'parser/result_type'
1
+ require 'audit/lib/parser/command/abstract_command'
2
+ require 'audit/lib/parser/command/abstract_command_result'
3
+ require 'audit/lib/parser/result_type'
4
4
 
5
5
  class MessageCommandResult < AbstractCommandResult
6
6
  def initialize(check, severity, message)
@@ -18,4 +18,4 @@ class MessageCommand < AbstractCommand
18
18
  def result()
19
19
  return MessageCommandResult.new(@check, @severity, @message)
20
20
  end
21
- end
21
+ end
@@ -1,6 +1,6 @@
1
- require 'parser/command/abstract_command'
2
- require 'parser/command/abstract_command_result'
3
- require 'parser/result_type'
1
+ require 'audit/lib/parser/command/abstract_command'
2
+ require 'audit/lib/parser/command/abstract_command_result'
3
+ require 'audit/lib/parser/result_type'
4
4
 
5
5
  class ProgramNameCommandResult < AbstractCommandResult
6
6
  attr_reader :program_name
@@ -39,4 +39,4 @@ class ProgramNameCommand < AbstractCommand
39
39
  def result()
40
40
  return ProgramNameCommandResult.new(@check, @severity, @message, @name, @version)
41
41
  end
42
- end
42
+ end
@@ -1,16 +1,16 @@
1
1
  require 'logger'
2
2
 
3
- require 'parser/command/program_name_command'
4
- require 'parser/command/cpe_name_command'
5
- require 'parser/command/attach_file_command'
6
- require 'parser/command/message_command'
7
- require 'parser/command/check_finished_command'
8
- require 'parser/command/listening_port_command'
9
- require 'parser/command/data_command'
10
- require 'parser/parse_exception'
11
- require 'benchmark/rule_severity'
12
- require 'parser/stdout_line_buffer'
13
- require 'benchmark/rule_result'
3
+ require 'audit/lib/parser/command/program_name_command'
4
+ require 'audit/lib/parser/command/cpe_name_command'
5
+ require 'audit/lib/parser/command/attach_file_command'
6
+ require 'audit/lib/parser/command/message_command'
7
+ require 'audit/lib/parser/command/check_finished_command'
8
+ require 'audit/lib/parser/command/listening_port_command'
9
+ require 'audit/lib/parser/command/data_command'
10
+ require 'audit/lib/parser/parse_exception'
11
+ require 'audit/lib/benchmark/rule_severity'
12
+ require 'audit/lib/parser/stdout_line_buffer'
13
+ require 'audit/lib/benchmark/rule_result'
14
14
 
15
15
  # This class parses the output generated by a sh script.
16
16
  # Each output line is expected to start with the marker LINE_START
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'rexml/document'
4
- require 'util/random_string'
4
+ require 'audit/lib/util/random_string'
5
5
  require 'fileutils'
6
6
  require 'socket'
7
7
  require 'timeout'
@@ -217,4 +217,4 @@ module SSH_FINGERPRINT
217
217
  :algorithms => get_algorithms(host, port),
218
218
  :version1 => version1_supported?(host, port)}
219
219
  end
220
- end
220
+ end
@@ -3,8 +3,8 @@
3
3
 
4
4
  # icons taken from http://www.famfamfam.com/lab/icons/silk/
5
5
 
6
- require 'benchmark/audit_benchmark'
7
- require 'parser/result_type'
6
+ require 'audit/lib/benchmark/audit_benchmark'
7
+ require 'audit/lib/parser/result_type'
8
8
  require 'logger'
9
9
 
10
10
  class WebViewTransformer
@@ -96,6 +96,7 @@ module StateTransitionHelper
96
96
  # * ami_id => ID of the AMI to be launched
97
97
  # * key_name => name of the key to access the instance
98
98
  # * security_group_name => name of the security group to be used
99
+ # * type => type of instance to start
99
100
  # Returned information:
100
101
  # * instance_id => ID of the started instance
101
102
  # * dns_name => DNS name of the started instance
@@ -103,7 +104,7 @@ module StateTransitionHelper
103
104
  # * kernel_id => EC2 Kernel ID of the started instance
104
105
  # * ramdisk_id => EC2 Ramdisk ID of the started instance
105
106
  # * architecture => architecture (e.g. 386i, 64x) of the started instance
106
- def launch_instance(ami_id, key_name, security_group_name, ec2_handler = nil)
107
+ def launch_instance(ami_id, key_name, security_group_name, ec2_handler = nil, type = nil)
107
108
  ec2_handler = ec2_handler() if ec2_handler == nil
108
109
  post_message("starting up instance to execute the script (AMI = #{ami_id}) ...")
109
110
  @logger.debug "start up AMI #{ami_id}"
@@ -114,6 +115,7 @@ module StateTransitionHelper
114
115
  if architecture != "i386"
115
116
  instance_type = "m1.large"
116
117
  end
118
+ instance_type = type if type != nil
117
119
  arch_log_msg = "Architecture of image #{ami_id} is #{architecture}. Use instance_type #{instance_type}."
118
120
  @logger.info arch_log_msg
119
121
  post_message(arch_log_msg)
@@ -150,6 +152,59 @@ module StateTransitionHelper
150
152
  return instance_id, dns_name, availability_zone, kernel_id, ramdisk_id, architecture
151
153
  end
152
154
 
155
+ # Start an instance
156
+ # Input Paramters:
157
+ # * instance_id => ID of the instance to start
158
+ # * timeout => a timeout for waiting instance to start to avoid infinite loop (default set to 4m)
159
+ # Return Parameters (Array):
160
+ # * instance_id
161
+ # * public_dns_name
162
+ def start_instance(instance_id, timeout = 240)
163
+ dns_name = ""
164
+ post_message("going to start instance '#{instance_id}'...")
165
+ res = ec2_handler().describe_instances(:instance_id => instance_id)
166
+ state = res['reservationSet']['item'][0]['instancesSet']['item'][0]['instanceState']
167
+ if state['code'].to_i == 16
168
+ dns_name = res['reservationSet']['item'][0]['instancesSet']['item'][0]['dnsName']
169
+ msg = "instance '#{instance_id}' already started"
170
+ @logger.warn "#{msg}"
171
+ post_message("#{msg}")
172
+ done = true
173
+ else
174
+ @logger.debug "start instance #{instance_id}"
175
+ ec2_handler().start_instances(:instance_id => instance_id)
176
+ end
177
+ while timeout > 0 && !done
178
+ res = ec2_handler().describe_instances(:instance_id => instance_id)
179
+ state = res['reservationSet']['item'][0]['instancesSet']['item'][0]['instanceState']
180
+ @logger.debug "instance in state '#{state['name']}' (#{state['code']})"
181
+ if state['code'].to_i == 16
182
+ done = true
183
+ timeout = 0
184
+ dns_name = res['reservationSet']['item'][0]['instancesSet']['item'][0]['dnsName']
185
+ elsif state['code'].to_i != 0
186
+ done = false
187
+ timeout = 0
188
+ msg = "instance in state '#{state['name']}'"
189
+ @logger.error "#{msg}"
190
+ post_message("#{msg}")
191
+ end
192
+ sleep(5)
193
+ timeout -= 5
194
+ end
195
+ msg = ""
196
+ if !done
197
+ msg = "Failed to start instance '#{instance_id}"
198
+ @logger.error "#{msg}"
199
+ raise Exception.new("Unable to start instance '#{instance_id}'}")
200
+ else
201
+ msg = "'#{instance_id}' successfully started"
202
+ @logger.info "#{msg}"
203
+ end
204
+ post_message("#{msg}")
205
+ return instance_id, dns_name
206
+ end
207
+
153
208
  # Shuts down an instance.
154
209
  # Input Parameters:
155
210
  # * instance_id => ID of the instance to be shut down
@@ -270,11 +325,12 @@ module StateTransitionHelper
270
325
  msg = ""
271
326
  if !done
272
327
  msg = "Failed to attach volume '#{volume_id}' to instance '#{instance_id}"
328
+ @logger.error "#{msg}"
273
329
  raise Exception.new("volume #{mount_point} not attached")
274
330
  else
275
331
  msg = "volume #{volume_id} successfully attached"
332
+ @logger.info "#{msg}"
276
333
  end
277
- @logger.error "#{msg}"
278
334
  post_message("#{msg}")
279
335
  end
280
336
 
@@ -304,11 +360,12 @@ module StateTransitionHelper
304
360
  msg = ""
305
361
  if !done
306
362
  msg = "Failed to detach volume '#{volume_id}' from instance '#{instance_id}"
363
+ @logger.error "#{msg}"
307
364
  raise Exception.new("volume #{mount_point} not detached")
308
365
  else
309
366
  msg = "volume #{volume_id} successfully detached"
367
+ @logger.info "#{msg}"
310
368
  end
311
- @logger.error "#{msg}"
312
369
  post_message("#{msg}")
313
370
  end
314
371
 
@@ -0,0 +1,150 @@
1
+ require "help/script_execution_state"
2
+ require "scripts/ec2/ec2_script"
3
+ require "help/remote_command_handler"
4
+ require "help/ec2_helper"
5
+ require "audit/lib/audit"
6
+ require "AWS"
7
+ require 'pp'
8
+
9
+ # Audit an AMI or an instance via an SSH connection using a specific benchmark
10
+ #
11
+
12
+ class AuditViaSsh < Ec2Script
13
+ # Input parameters
14
+ # * ec2_api_handler => object that allows to access the EC2 API
15
+ # * ami_id => the ID of the AMI to be copied in another region
16
+ # * ssh_username => The username for ssh for source-instance (default = root)
17
+ # * key_name => Key name of the instance that manages the snaphot-volume in the source region
18
+ # * ssh_key_data => Key information for the security group that starts the AMI [if not set, use ssh_key_files]
19
+
20
+ def initialize(input_params)
21
+ super(input_params)
22
+ end
23
+
24
+ def check_input_parameters()
25
+ if @input_params[:ami_id] == nil && @input_params[:instance_id] == nil
26
+ raise Exception.new("No Instance ID or AMI ID specified")
27
+ end
28
+ if @input_params[:ami_id] != nil && !(@input_params[:ami_id] =~ /^ami-.*$/)
29
+ raise Exception.new("Invalid AMI ID specified")
30
+ end
31
+ if @input_params[:instance_id] != nil && !(@input_params[:instance_id] =~ /^i-.*$/)
32
+ raise Exception.new("Invalid Instance ID specified")
33
+ end
34
+
35
+ if @input_params[:sec_grp_name] == nil
36
+ @input_params[:sec_grp_name] = "default"
37
+ end
38
+ if @input_params[:audit_type] != nil && @input_params[:audit_type].casecmp("SSH")
39
+ @input_params[:benchmark_file] = "./lib/audit/benchmark_ssh.zip"
40
+ elsif @input_params[:audit_type] != nil && @input_params[:audit_type].casecmp("APACHE")
41
+ @input_params[:benchmark_file] = "./lib/audit/benchmark_apache.zip"
42
+ else
43
+ raise Exception.new("Invalid Audit '#{@input_params[:audit_type]}' specified")
44
+ end
45
+ ec2_helper = Ec2Helper.new(@input_params[:ec2_api_handler])
46
+ if !ec2_helper.check_open_port(@input_params[:sec_grp_name], 22)
47
+ raise Exception.new("Port 22 must be opened for security group 'default' to connect via SSH")
48
+ end
49
+ end
50
+
51
+ def load_initial_state()
52
+ AuditViaSshState.load_state(@input_params)
53
+ end
54
+
55
+ private
56
+
57
+ # Here begins the state machine implementation
58
+ class AuditViaSshState < ScriptExecutionState
59
+ def self.load_state(context)
60
+ state = context[:initial_state] == nil ? InitialState.new(context) : context[:initial_state]
61
+ state
62
+ end
63
+
64
+ end
65
+
66
+ # Start an instance and wait for it to be UP and running
67
+ # Create a temporary directory
68
+ class InitialState < AuditViaSshState
69
+ def enter
70
+ instances_info = []
71
+ tmp_dir = ""
72
+ if @context[:ami_id] != nil
73
+ instance_infos = launch_instance(@context[:ami_id], @context[:ssh_key_name], @context[:sec_grp_name], nil, "t1.micro")
74
+ tmp_dir = "/tmp/#{@context[:ami_id]}-#{Time.now().to_i}"
75
+ elsif @context[:instance_id] != nil
76
+ instance_infos = start_instance(@context[:instance_id])
77
+ tmp_dir = "/tmp/#{@context[:instance_id]}-#{Time.now().to_i}"
78
+ else
79
+ raise Exception.new("No Instance ID or AMI ID specified (should have been catched earlier)")
80
+ end
81
+ @context[:instance_id] = instance_infos[0]
82
+ @context[:public_dns_name] = instance_infos[1]
83
+ @context[:tmp_dir] = tmp_dir
84
+ #puts "DEBUG: Audit Scripts"
85
+ #pp @context
86
+
87
+ Dir::mkdir(tmp_dir)
88
+ if FileTest::directory?(tmp_dir)
89
+ post_message("local temporary directory created")
90
+ end
91
+
92
+ LaunchAuditViaSsh.new(@context)
93
+ end
94
+ end
95
+
96
+ # Launch the audit via SSH
97
+ class LaunchAuditViaSsh < AuditViaSshState
98
+ def enter
99
+ audit = Audit.new(:benchmark => @context[:benchmark_file], :attachment_dir => @context[:tmp_dir],
100
+ :connection_type => :ssh,
101
+ :connection_params => {:user => @context[:ssh_user],
102
+ :keys => @context[:ssh_key_file],
103
+ :host => @context[:public_dns_name],
104
+ :paranoid => false},
105
+ :logger => nil)
106
+ audit.start(false)
107
+ @context[:result][:audit_test] = []
108
+ audit.results.each() {|key, value|
109
+ if key =~ /^SSH_.*$/ || key =~ /^APACHE2_.*$/
110
+ #puts "DEBUG: Key: #{key}, Result: #{value.result}, Desc: #{value.rule.description}"
111
+ @context[:result][:audit_test] << {:name => key, :desc => value.rule.description, :status => value.result}
112
+ post_message("== > Test #{key}: Status: #{value.result.eql?("pass") ? "OK" : "NOK"}\n Desc: #{value.rule.description}")
113
+ end
114
+ }
115
+ CleanUpAuditViaSsh.new(@context)
116
+ end
117
+ end
118
+
119
+ # Terminate an instance
120
+ class CleanUpAuditViaSsh < AuditViaSshState
121
+ def enter
122
+ if @context[:ami_id] != nil
123
+ shut_down_instance(@context[:instance_id])
124
+ elsif @context[:instance_id] != nil
125
+ #TODO: stop the instance only if you have started it
126
+ #stop_instance(@context[:instance_id])
127
+ else
128
+ raise Exception.new("No Instance ID or AMI ID specified (should have been catched earlier)")
129
+ end
130
+
131
+ AnalyseAuditViaSsh.new(@context)
132
+ end
133
+ end
134
+
135
+ # Analyse audit via SSH results
136
+ class AnalyseAuditViaSsh < AuditViaSshState
137
+ def enter
138
+
139
+ Done.new(@context)
140
+ end
141
+ end
142
+
143
+ # Script done.
144
+ class Done < AuditViaSshState
145
+ def done?
146
+ true
147
+ end
148
+ end
149
+
150
+ end
@@ -12,7 +12,7 @@ class Ec2Script
12
12
  @progress_message_listeners = []
13
13
  if input_params[:logger] == nil
14
14
  @logger = Logger.new(STDOUT)
15
- @logger .level = Logger::WARN
15
+ @logger.level = Logger::WARN
16
16
  input_params[:logger] = @logger
17
17
  else
18
18
  @logger = input_params[:logger]
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: CloudyScripts
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 13
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
7
- - 7
8
- - 27
9
- version: 1.7.27
8
+ - 8
9
+ - 29
10
+ version: 1.8.29
10
11
  platform: ruby
11
12
  authors:
12
13
  - Matthias Jung
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2011-07-04 00:00:00 +02:00
18
+ date: 2011-07-07 00:00:00 +00:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: amazon-ec2
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 3
27
30
  segments:
28
31
  - 0
29
32
  version: "0"
@@ -33,9 +36,11 @@ dependencies:
33
36
  name: net-ssh
34
37
  prerelease: false
35
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
36
40
  requirements:
37
41
  - - ">="
38
42
  - !ruby/object:Gem::Version
43
+ hash: 3
39
44
  segments:
40
45
  - 0
41
46
  version: "0"
@@ -45,9 +50,11 @@ dependencies:
45
50
  name: net-scp
46
51
  prerelease: false
47
52
  requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
48
54
  requirements:
49
55
  - - ">="
50
56
  - !ruby/object:Gem::Version
57
+ hash: 3
51
58
  segments:
52
59
  - 0
53
60
  version: "0"
@@ -66,191 +73,199 @@ files:
66
73
  - LICENSE
67
74
  - README.rdoc
68
75
  - Rakefile
69
- - lib/audit/checks/APACHE2.group
70
- - lib/audit/checks/APACHE2_CONFIG_01.check
71
- - lib/audit/checks/APACHE2_CONFIG_02.check
72
- - lib/audit/checks/APACHE2_CONFIG_03.check
73
76
  - lib/audit/checks/APACHE2_CONFIG_04.check
74
- - lib/audit/checks/APACHE2_CONFIG_05.check
75
- - lib/audit/checks/APACHE2_CONFIG_06.check
76
- - lib/audit/checks/APACHE2_INIT_1.check
77
- - lib/audit/checks/APACHE2_INIT_2.check
78
- - lib/audit/checks/APACHE2_INIT_3.check
79
- - lib/audit/checks/APACHE2_USER_7.check
80
- - lib/audit/checks/BACKUP_HOME_DOTFILES.check
77
+ - lib/audit/checks/LYNIS_AUTH.group
78
+ - lib/audit/checks/LOGGED_USERS.check
79
+ - lib/audit/checks/HAS_FILE_DOWNLOADER.check
80
+ - lib/audit/checks/MYSQL_HISTORY_1.check
81
+ - lib/audit/checks/DISTRIBUTION_FACTS.check
82
+ - lib/audit/checks/HAS_ID.check
83
+ - lib/audit/checks/MAYBE_HAS_TAR.check
84
+ - lib/audit/checks/FIND_SHADOW_FILE.check
85
+ - lib/audit/checks/HAS_UNAME.check
86
+ - lib/audit/checks/HAS_LSB_RELEASE.check
87
+ - lib/audit/checks/MYSQL_INIT_3.check
88
+ - lib/audit/checks/VARIOUS.group
81
89
  - lib/audit/checks/BACKUP_LOG.check
82
- - lib/audit/checks/BACKUP_MAIL.check
83
- - lib/audit/checks/BACKUP_WEB.check
90
+ - lib/audit/checks/PLATFORM_FACTS.check
91
+ - lib/audit/checks/script_header.template
92
+ - lib/audit/checks/SSH_CONFIG_03.check
93
+ - lib/audit/checks/benchmark.group.ssh
84
94
  - lib/audit/checks/benchmark.group
85
- - lib/audit/checks/CONFIGURATION_BACKUP.check
86
- - lib/audit/checks/DIRECTORY_LISTING.check
87
- - lib/audit/checks/DISTRIBUTION_FACTS.check
88
- - lib/audit/checks/DMESG_OUTPUT.check
89
- - lib/audit/checks/FIND_GROUP_FILE.check
95
+ - lib/audit/checks/LYNIS_AUTH_9208.check
96
+ - lib/audit/checks/SSH_CONFIG_10.check
90
97
  - lib/audit/checks/FIND_PASSWD_FILE.check
91
- - lib/audit/checks/FIND_SHADOW_FILE.check
92
- - lib/audit/checks/FIND_SUDOERS_FILE.check
93
- - lib/audit/checks/footer.template
94
- - lib/audit/checks/FREE_SPACE.check
95
- - lib/audit/checks/HAS_AWK.check
96
- - lib/audit/checks/HAS_BASE.check
98
+ - lib/audit/checks/LYNIS_AUTH_9204.check
99
+ - lib/audit/checks/SSH_CONFIG_09.check
100
+ - lib/audit/checks/MYSQL_INIT_2.check
101
+ - lib/audit/checks/HAS_GROUPS.check
102
+ - lib/audit/checks/LOADED_MODULES.check
97
103
  - lib/audit/checks/HAS_CAT.check
98
- - lib/audit/checks/HAS_COMPRESSOR.check
99
- - lib/audit/checks/HAS_CUT.check
104
+ - lib/audit/checks/HAS_SUPERUSER.check
105
+ - lib/audit/checks/SLOW.group
106
+ - lib/audit/checks/SSH_CONFIG_04.check
107
+ - lib/audit/checks/benchmark.group.full
108
+ - lib/audit/checks/LYNIS_AUTH_9226.check
109
+ - lib/audit/checks/APACHE2_CONFIG_01.check
110
+ - lib/audit/checks/MAYBE_HAS_UNAME.check
100
111
  - lib/audit/checks/HAS_DF.check
101
- - lib/audit/checks/HAS_DPKG.check
102
- - lib/audit/checks/HAS_FILE_DOWNLOADER.check
112
+ - lib/audit/checks/HAS_UNIQ.check
113
+ - lib/audit/checks/APACHE2_INIT_1.check
114
+ - lib/audit/checks/APACHE2_INIT_2.check
115
+ - lib/audit/checks/USERS_INIT_2.check
116
+ - lib/audit/checks/PORTS_OPEN_NETSTAT.check
117
+ - lib/audit/checks/LIST_ROUTES.check
118
+ - lib/audit/checks/SSH_CONFIG_06.check
119
+ - lib/audit/checks/SSH_INIT_1.check
120
+ - lib/audit/checks/SLOW_1.check
121
+ - lib/audit/checks/MAYBE_HAS_LSB_RELEASE.check
122
+ - lib/audit/checks/APACHE2_CONFIG_05.check
103
123
  - lib/audit/checks/HAS_FIND.check
104
- - lib/audit/checks/HAS_GREP.check
105
- - lib/audit/checks/HAS_GROUPCHECK.check
106
- - lib/audit/checks/HAS_GROUPS.check
107
- - lib/audit/checks/HAS_HOSTNAME.check
108
- - lib/audit/checks/HAS_ID.check
109
- - lib/audit/checks/HAS_LSB_RELEASE.check
110
- - lib/audit/checks/HAS_MOUNT.check
124
+ - lib/audit/checks/LASTLOG.check
125
+ - lib/audit/checks/HAS_WHO.check
126
+ - lib/audit/checks/USERS_INIT_5.check
127
+ - lib/audit/checks/HAS_TAIL.check
128
+ - lib/audit/checks/header.template
111
129
  - lib/audit/checks/HAS_NETSTAT.check
112
- - lib/audit/checks/HAS_PASSWD_CHECK.check
113
- - lib/audit/checks/HAS_PS.check
130
+ - lib/audit/checks/VAR_LIST_HOME_DIRECTORIES.check
114
131
  - lib/audit/checks/HAS_ROUTE.check
115
- - lib/audit/checks/HAS_SH.check
132
+ - lib/audit/checks/PASSWORD_INFORMATION.check
133
+ - lib/audit/checks/FIND_SUDOERS_FILE.check
134
+ - lib/audit/checks/APACHE2_CONFIG_06.check
135
+ - lib/audit/checks/USERS_INIT_1.check
136
+ - lib/audit/checks/LYNIS_AUTH_9222.check
137
+ - lib/audit/checks/BACKUP_MAIL.check
138
+ - lib/audit/checks/BACKUP_WEB.check
139
+ - lib/audit/checks/HAS_COMPRESSOR.check
140
+ - lib/audit/checks/HAS_TAR.check
141
+ - lib/audit/checks/benchmark.ssh.zip
142
+ - lib/audit/checks/HAS_CUT.check
143
+ - lib/audit/checks/SLOW_3.check
144
+ - lib/audit/checks/APACHE2_INIT_3.check
145
+ - lib/audit/checks/SSH_INIT_2.check
146
+ - lib/audit/checks/SSH_CONFIG_01.check
147
+ - lib/audit/checks/benchmark.group.apache
148
+ - lib/audit/checks/HAS_PASSWD_CHECK.check
149
+ - lib/audit/checks/USER_INFORMATION.check
150
+ - lib/audit/checks/SSH_CONFIG_11.check
151
+ - lib/audit/checks/HAS_DPKG.check
116
152
  - lib/audit/checks/HAS_SORT.check
153
+ - lib/audit/checks/MAYBE_HAS_WGET.check
154
+ - lib/audit/checks/APACHE2.group
155
+ - lib/audit/checks/APACHE2_USER_7.check
156
+ - lib/audit/checks/SSH_CONFIG_08.check
157
+ - lib/audit/checks/SSH_CONFIG_07.check
158
+ - lib/audit/checks/SSH_CONFIG_02.check
159
+ - lib/audit/checks/LYNIS_AUTH_9228.check
160
+ - lib/audit/checks/FIND_GROUP_FILE.check
161
+ - lib/audit/checks/USERS_INIT_3.check
162
+ - lib/audit/checks/HAS_YUM.check
163
+ - lib/audit/checks/MAYBE_HAS_ID.check
164
+ - lib/audit/checks/SLOW_2.check
165
+ - lib/audit/checks/HAS_MOUNT.check
166
+ - lib/audit/checks/HAS_AWK.check
167
+ - lib/audit/checks/MOUNTED_DEVICES.check
168
+ - lib/audit/checks/MAYBE_HAS_HOSTNAME.check
169
+ - lib/audit/checks/SSH_CONFIG_05.check
170
+ - lib/audit/checks/HAS_BASE.check
171
+ - lib/audit/checks/HAS_GREP.check
172
+ - lib/audit/checks/SSH_KEYS_1.check
173
+ - lib/audit/checks/MAYBE_HAS_DU.check
174
+ - lib/audit/checks/PACKAGES_INSTALLED_YUM.check
117
175
  - lib/audit/checks/HAS_STAT.check
118
- - lib/audit/checks/HAS_SUPERUSER.check
119
- - lib/audit/checks/HAS_TAIL.check
120
- - lib/audit/checks/HAS_TAR.check
121
176
  - lib/audit/checks/HAS_TR.check
122
- - lib/audit/checks/HAS_UNAME.check
123
- - lib/audit/checks/HAS_UNIQ.check
124
- - lib/audit/checks/HAS_WC.check
125
- - lib/audit/checks/HAS_WHO.check
126
- - lib/audit/checks/HAS_YUM.check
127
- - lib/audit/checks/header.template
128
- - lib/audit/checks/helpers/head.sh
129
- - lib/audit/checks/LASTLOG.check
130
- - lib/audit/checks/LIST_ROUTES.check
131
- - lib/audit/checks/LIST_USER_ACCOUNTS.check
132
- - lib/audit/checks/LOADED_MODULES.check
133
- - lib/audit/checks/LOCAL_NMAP.check
134
- - lib/audit/checks/LOGGED_USERS.check
135
- - lib/audit/checks/LYNIS_AUTH.group
136
- - lib/audit/checks/LYNIS_AUTH_9204.check
137
- - lib/audit/checks/LYNIS_AUTH_9208.check
138
- - lib/audit/checks/LYNIS_AUTH_9216.check
139
- - lib/audit/checks/LYNIS_AUTH_9222.check
140
- - lib/audit/checks/LYNIS_AUTH_9226.check
141
- - lib/audit/checks/LYNIS_AUTH_9228.check
177
+ - lib/audit/checks/HAS_PS.check
142
178
  - lib/audit/checks/LYNIS_AUTH_9252.check
143
- - lib/audit/checks/MAYBE_HAS_BZIP2.check
144
- - lib/audit/checks/MAYBE_HAS_CURL.check
145
- - lib/audit/checks/MAYBE_HAS_DU.check
146
- - lib/audit/checks/MAYBE_HAS_HOSTNAME.check
147
- - lib/audit/checks/MAYBE_HAS_ID.check
148
- - lib/audit/checks/MAYBE_HAS_LSB_RELEASE.check
179
+ - lib/audit/checks/CONFIGURATION_BACKUP.check
180
+ - lib/audit/checks/HAS_SH.check
181
+ - lib/audit/checks/HAS_GROUPCHECK.check
182
+ - lib/audit/checks/LOCAL_NMAP.check
183
+ - lib/audit/checks/APACHE2_CONFIG_02.check
184
+ - lib/audit/checks/footer.template
185
+ - lib/audit/checks/DIRECTORY_LISTING.check
186
+ - lib/audit/checks/FREE_SPACE.check
187
+ - lib/audit/checks/LIST_USER_ACCOUNTS.check
188
+ - lib/audit/checks/APACHE2_CONFIG_03.check
149
189
  - lib/audit/checks/MAYBE_HAS_SUPERUSER.check
150
- - lib/audit/checks/MAYBE_HAS_TAR.check
151
- - lib/audit/checks/MAYBE_HAS_UNAME.check
152
- - lib/audit/checks/MAYBE_HAS_WGET.check
153
- - lib/audit/checks/MOUNTED_DEVICES.check
154
- - lib/audit/checks/MYSQL_HISTORY_1.check
190
+ - lib/audit/checks/MAYBE_HAS_CURL.check
191
+ - lib/audit/checks/DMESG_OUTPUT.check
192
+ - lib/audit/checks/HAS_WC.check
155
193
  - lib/audit/checks/MYSQL_INIT_1.check
156
- - lib/audit/checks/MYSQL_INIT_2.check
157
- - lib/audit/checks/MYSQL_INIT_3.check
158
- - lib/audit/checks/PACKAGES_INSTALLED_DPKG.check
159
- - lib/audit/checks/PACKAGES_INSTALLED_YUM.check
160
- - lib/audit/checks/PASSWORD_INFORMATION.check
161
- - lib/audit/checks/PLATFORM_FACTS.check
162
- - lib/audit/checks/PORTS_OPEN_NETSTAT.check
163
194
  - lib/audit/checks/PROCESS_LIST.check
164
- - lib/audit/checks/script_header.template
165
- - lib/audit/checks/SLOW.group
166
- - lib/audit/checks/SLOW_1.check
167
- - lib/audit/checks/SLOW_2.check
168
- - lib/audit/checks/SLOW_3.check
169
- - lib/audit/checks/SSH.group
170
- - lib/audit/checks/SSH_CONFIG_01.check
171
- - lib/audit/checks/SSH_CONFIG_02.check
172
- - lib/audit/checks/SSH_CONFIG_03.check
173
- - lib/audit/checks/SSH_CONFIG_04.check
174
- - lib/audit/checks/SSH_CONFIG_05.check
175
- - lib/audit/checks/SSH_CONFIG_06.check
176
- - lib/audit/checks/SSH_CONFIG_07.check
177
- - lib/audit/checks/SSH_CONFIG_08.check
178
- - lib/audit/checks/SSH_CONFIG_09.check
179
- - lib/audit/checks/SSH_CONFIG_10.check
180
- - lib/audit/checks/SSH_CONFIG_11.check
181
- - lib/audit/checks/SSH_INIT_1.check
182
- - lib/audit/checks/SSH_INIT_2.check
183
- - lib/audit/checks/SSH_KEYS_1.check
184
- - lib/audit/checks/USER_INFORMATION.check
185
- - lib/audit/checks/USERS_INIT_1.check
186
- - lib/audit/checks/USERS_INIT_2.check
187
- - lib/audit/checks/USERS_INIT_3.check
195
+ - lib/audit/checks/helpers/head.sh
188
196
  - lib/audit/checks/USERS_INIT_4.check
189
- - lib/audit/checks/USERS_INIT_5.check
190
- - lib/audit/checks/VAR_LIST_HOME_DIRECTORIES.check
191
- - lib/audit/checks/VARIOUS.group
192
- - lib/audit/create_benchmark.sh
193
- - lib/audit/lib/audit.rb
197
+ - lib/audit/checks/BACKUP_HOME_DOTFILES.check
198
+ - lib/audit/checks/PACKAGES_INSTALLED_DPKG.check
199
+ - lib/audit/checks/HAS_HOSTNAME.check
200
+ - lib/audit/checks/MAYBE_HAS_BZIP2.check
201
+ - lib/audit/checks/SSH.group
202
+ - lib/audit/checks/LYNIS_AUTH_9216.check
203
+ - lib/audit/benchmark_apache.zip
204
+ - lib/audit/lib/ssh_utils.rb
205
+ - lib/audit/lib/http_fingerprint.rb
206
+ - lib/audit/lib/ssh_fingerprint2.rb
207
+ - lib/audit/lib/nessus_utils.rb
208
+ - lib/audit/lib/my_option_parser.rb
209
+ - lib/audit/lib/util/random_string.rb
210
+ - lib/audit/lib/main.rb
194
211
  - lib/audit/lib/audit_facade.rb
212
+ - lib/audit/lib/benchmark/check.rb
213
+ - lib/audit/lib/benchmark/rule_result.rb
214
+ - lib/audit/lib/benchmark/rule_severity.rb
215
+ - lib/audit/lib/benchmark/item_exception.rb
216
+ - lib/audit/lib/benchmark/result_code.rb
195
217
  - lib/audit/lib/benchmark/audit_benchmark.rb
196
- - lib/audit/lib/benchmark/automatic_dependencies.rb
218
+ - lib/audit/lib/benchmark/yaml_benchmark.rb
197
219
  - lib/audit/lib/benchmark/benchmark_factory.rb
198
220
  - lib/audit/lib/benchmark/benchmark_result.rb
199
- - lib/audit/lib/benchmark/check.rb
221
+ - lib/audit/lib/benchmark/automatic_dependencies.rb
200
222
  - lib/audit/lib/benchmark/group.rb
201
- - lib/audit/lib/benchmark/item_exception.rb
202
- - lib/audit/lib/benchmark/result_code.rb
203
- - lib/audit/lib/benchmark/rule_result.rb
204
223
  - lib/audit/lib/benchmark/rule_role.rb
205
- - lib/audit/lib/benchmark/rule_severity.rb
206
- - lib/audit/lib/benchmark/yaml_benchmark.rb
207
- - lib/audit/lib/connection/ami_connection.rb
208
- - lib/audit/lib/connection/connection_factory.rb
209
- - lib/audit/lib/connection/ssh_connection.rb
210
- - lib/audit/lib/ec2_utils.rb
211
- - lib/audit/lib/http_fingerprint.rb
212
- - lib/audit/lib/lazy.rb
213
- - lib/audit/lib/linear_script_generator.rb
214
- - lib/audit/lib/main.rb
215
- - lib/audit/lib/my_option_parser.rb
224
+ - lib/audit/lib/transformers/web_view_transformer.rb
225
+ - lib/audit/lib/transformers/yaml_transformer.rb
226
+ - lib/audit/lib/audit.rb
216
227
  - lib/audit/lib/nessus_new.rb
217
- - lib/audit/lib/nessus_utils.rb
218
- - lib/audit/lib/parser/command/abstract_command.rb
219
- - lib/audit/lib/parser/command/abstract_command_result.rb
220
- - lib/audit/lib/parser/command/attach_file_command.rb
221
- - lib/audit/lib/parser/command/check_finished_command.rb
222
- - lib/audit/lib/parser/command/cpe_name_command.rb
223
- - lib/audit/lib/parser/command/data_command.rb
228
+ - lib/audit/lib/linear_script_generator.rb
229
+ - lib/audit/lib/parser/result_type.rb
230
+ - lib/audit/lib/parser/parse_exception.rb
231
+ - lib/audit/lib/parser/stdout_line_buffer.rb
232
+ - lib/audit/lib/parser/script_output_parser.rb
224
233
  - lib/audit/lib/parser/command/listening_port_command.rb
234
+ - lib/audit/lib/parser/command/check_finished_command.rb
225
235
  - lib/audit/lib/parser/command/message_command.rb
236
+ - lib/audit/lib/parser/command/data_command.rb
237
+ - lib/audit/lib/parser/command/cpe_name_command.rb
238
+ - lib/audit/lib/parser/command/attach_file_command.rb
239
+ - lib/audit/lib/parser/command/abstract_command_result.rb
226
240
  - lib/audit/lib/parser/command/program_name_command.rb
227
- - lib/audit/lib/parser/parse_exception.rb
228
- - lib/audit/lib/parser/result_type.rb
229
- - lib/audit/lib/parser/script_output_parser.rb
230
- - lib/audit/lib/parser/stdout_line_buffer.rb
241
+ - lib/audit/lib/parser/command/abstract_command.rb
231
242
  - lib/audit/lib/ssh_fingerprint.rb
232
- - lib/audit/lib/ssh_fingerprint2.rb
233
- - lib/audit/lib/ssh_utils.rb
234
- - lib/audit/lib/transformers/web_view_transformer.rb
235
- - lib/audit/lib/transformers/yaml_transformer.rb
236
- - lib/audit/lib/util/random_string.rb
243
+ - lib/audit/lib/ec2_utils.rb
244
+ - lib/audit/lib/lazy.rb
245
+ - lib/audit/lib/connection/ami_connection.rb
246
+ - lib/audit/lib/connection/ssh_connection.rb
247
+ - lib/audit/lib/connection/connection_factory.rb
237
248
  - lib/audit/lib/version.rb
238
- - lib/cloudyscripts.rb
239
- - lib/help/dm_crypt_helper.rb
240
- - lib/help/ec2_helper.rb
241
- - lib/help/progress_message_listener.rb
242
- - lib/help/remote_command_handler.rb
243
- - lib/help/script_execution_state.rb
244
- - lib/help/state_change_listener.rb
245
- - lib/help/state_transition_helper.rb
249
+ - lib/audit/create_benchmark.sh
250
+ - lib/audit/benchmark_full.zip
251
+ - lib/audit/benchmark_ssh.zip
252
+ - lib/scripts/ec2/port_range_detector.rb
253
+ - lib/scripts/ec2/dm_encrypt.rb
246
254
  - lib/scripts/ec2/ami2_ebs_conversion.rb
255
+ - lib/scripts/ec2/audit_via_ssh.rb
256
+ - lib/scripts/ec2/open_port_checker.rb
247
257
  - lib/scripts/ec2/copy_ami.rb
248
258
  - lib/scripts/ec2/copy_snapshot.rb
249
- - lib/scripts/ec2/dm_encrypt.rb
250
- - lib/scripts/ec2/download_snapshot.rb
251
259
  - lib/scripts/ec2/ec2_script.rb
252
- - lib/scripts/ec2/open_port_checker.rb
253
- - lib/scripts/ec2/port_range_detector.rb
260
+ - lib/scripts/ec2/download_snapshot.rb
261
+ - lib/help/ec2_helper.rb
262
+ - lib/help/dm_crypt_helper.rb
263
+ - lib/help/state_transition_helper.rb
264
+ - lib/help/script_execution_state.rb
265
+ - lib/help/progress_message_listener.rb
266
+ - lib/help/remote_command_handler.rb
267
+ - lib/help/state_change_listener.rb
268
+ - lib/cloudyscripts.rb
254
269
  has_rdoc: true
255
270
  homepage: http://elastic-security.com
256
271
  licenses: []
@@ -261,23 +276,27 @@ rdoc_options: []
261
276
  require_paths:
262
277
  - lib
263
278
  required_ruby_version: !ruby/object:Gem::Requirement
279
+ none: false
264
280
  requirements:
265
281
  - - ">="
266
282
  - !ruby/object:Gem::Version
283
+ hash: 3
267
284
  segments:
268
285
  - 0
269
286
  version: "0"
270
287
  required_rubygems_version: !ruby/object:Gem::Requirement
288
+ none: false
271
289
  requirements:
272
290
  - - ">="
273
291
  - !ruby/object:Gem::Version
292
+ hash: 3
274
293
  segments:
275
294
  - 0
276
295
  version: "0"
277
296
  requirements: []
278
297
 
279
298
  rubyforge_project: cloudyscripts
280
- rubygems_version: 1.3.6
299
+ rubygems_version: 1.3.7
281
300
  signing_key:
282
301
  specification_version: 3
283
302
  summary: Scripts to facilitate programming for infrastructure clouds.