deepsecurity 0.0.13hf1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. data/.gitignore +25 -0
  2. data/.yardopts +4 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +22 -0
  5. data/README.md +29 -0
  6. data/Rakefile +2 -0
  7. data/bin/dsc +186 -0
  8. data/deepsecurity.gemspec +30 -0
  9. data/lib/deepsecurity/ds_object.rb +37 -0
  10. data/lib/deepsecurity/enums.rb +539 -0
  11. data/lib/deepsecurity/exceptions/authentication_failed_exception.rb +7 -0
  12. data/lib/deepsecurity/exceptions/authentication_required_exception.rb +6 -0
  13. data/lib/deepsecurity/manager.rb +223 -0
  14. data/lib/deepsecurity/screenscraping.rb +149 -0
  15. data/lib/deepsecurity/transport_object.rb +21 -0
  16. data/lib/deepsecurity/transport_objects/anti_malware_event.rb +106 -0
  17. data/lib/deepsecurity/transport_objects/anti_malware_spyware_item.rb +32 -0
  18. data/lib/deepsecurity/transport_objects/application_type.rb +58 -0
  19. data/lib/deepsecurity/transport_objects/dpi_rule.rb +113 -0
  20. data/lib/deepsecurity/transport_objects/host.rb +171 -0
  21. data/lib/deepsecurity/transport_objects/host_detail.rb +167 -0
  22. data/lib/deepsecurity/transport_objects/host_filter.rb +62 -0
  23. data/lib/deepsecurity/transport_objects/host_group.rb +41 -0
  24. data/lib/deepsecurity/transport_objects/host_interface.rb +42 -0
  25. data/lib/deepsecurity/transport_objects/id_filter.rb +37 -0
  26. data/lib/deepsecurity/transport_objects/private/vulnerability.rb +52 -0
  27. data/lib/deepsecurity/transport_objects/protocol_icmp.rb +13 -0
  28. data/lib/deepsecurity/transport_objects/protocol_port_based.rb +11 -0
  29. data/lib/deepsecurity/transport_objects/security_profile.rb +90 -0
  30. data/lib/deepsecurity/transport_objects/system_event.rb +45 -0
  31. data/lib/deepsecurity/transport_objects/time_filter.rb +55 -0
  32. data/lib/deepsecurity/version.rb +3 -0
  33. data/lib/deepsecurity.rb +58 -0
  34. data/lib/dsc/anti_malware_event.rb +101 -0
  35. data/lib/dsc/dsc_object.rb +41 -0
  36. data/lib/dsc/helper.rb +48 -0
  37. data/lib/dsc/host_detail.rb +62 -0
  38. data/lib/dsc.rb +6 -0
  39. data/lib/dsc_version.rb +3 -0
  40. data/lib/savon_helper/caching_object.rb +48 -0
  41. data/lib/savon_helper/mapping_object.rb +421 -0
  42. data/lib/savon_helper/missing_type_mapping_exception.rb +11 -0
  43. data/lib/savon_helper/soap_exception.rb +7 -0
  44. data/lib/savon_helper/type_mappings.rb +218 -0
  45. data/lib/savon_helper.rb +7 -0
  46. metadata +188 -0
data/.gitignore ADDED
@@ -0,0 +1,25 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ sample.rb
19
+ *.pdf
20
+ .idea
21
+ DS4R/
22
+ dsm.der
23
+ keystore
24
+ playground.html
25
+ convert_cert.sh
data/.yardopts ADDED
@@ -0,0 +1,4 @@
1
+ --markup-provider=redcarpet
2
+ --markup=markdown
3
+ --no-private
4
+ --files lib/deepsecurity/transport_object.rb
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in deepsecurity.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Udo Schneider
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Deepsecurity
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'deepsecurity'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install deepsecurity
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
data/bin/dsc ADDED
@@ -0,0 +1,186 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # 1.9 adds realpath to resolve symlinks; 1.8 doesn't
4
+ # have this method, so we add it so we get resolved symlinks
5
+ # and compatibility
6
+ unless File.respond_to? :realpath
7
+ class File #:nodoc:
8
+ def self.realpath path
9
+ return realpath(File.readlink(path)) if symlink?(path)
10
+ path
11
+ end
12
+ end
13
+ end
14
+ $: << File.expand_path(File.dirname(File.realpath(__FILE__)) + '/../lib')
15
+
16
+ require 'rubygems'
17
+ require 'gli'
18
+
19
+ require 'deepsecurity'
20
+ require 'dsc'
21
+
22
+ include GLI::App
23
+
24
+ # config_file '.dsc.rc'
25
+
26
+ program_desc 'DeepSecurity command line client'
27
+
28
+ version Dsc::VERSION
29
+
30
+ desc 'Enable client debug output. One of debug, info, warn, error or fatal'
31
+ arg_name 'debug'
32
+ flag [:d, :debug]
33
+
34
+ desc 'Deep Security Manager'
35
+ arg_name 'hostname'
36
+ flag [:m, :manager]
37
+
38
+ desc 'Webservice Port'
39
+ arg_name 'port'
40
+ default_value '4119'
41
+ flag [:port]
42
+
43
+ desc 'Tennat'
44
+ arg_name 'tenat'
45
+ default_value ''
46
+ flag [:t, :tenant]
47
+
48
+ desc 'Username'
49
+ arg_name 'username'
50
+ default_value 'MasterAdmin'
51
+ flag [:u, :username]
52
+
53
+ desc 'Password'
54
+ arg_name 'password'
55
+ flag [:p, :password]
56
+
57
+ desc 'Output file'
58
+ default_value '--'
59
+ flag [:o, :outfile]
60
+
61
+ desc 'Show progress'
62
+ default_value false
63
+ switch [:P]
64
+
65
+ desc 'host detail'
66
+ # arg_name 'Describe arguments to host_status here'
67
+ command :host_detail do |c|
68
+
69
+ c.desc "list"
70
+ c.command :list do |list|
71
+
72
+ list.desc 'fields'
73
+ list.default_value Dsc::HostDetail.default_fields_string
74
+ list.flag [:fields]
75
+
76
+ list.action do |global_options, options, args|
77
+ Dsc.output_from_option(global_options[:o]) do |output|
78
+ Dsc::HostDetail.list(global_options[:m],
79
+ global_options[:port].to_i,
80
+ global_options[:t],
81
+ global_options[:u],
82
+ global_options[:p],
83
+ :host_filter,
84
+ Dsc::HostDetail.fields_from_string(options[:fields]),
85
+ output, global_options[:P],
86
+ Dsc.debug_level_from_option(global_options[:d]))
87
+ end
88
+ end
89
+ end
90
+
91
+ c.desc "schema"
92
+ c.command :schema do |schema|
93
+ schema.action do |global_options, options, args|
94
+ Dsc.output_from_option(global_options[:o]) do |output|
95
+ Dsc::HostDetail.print_schema(output)
96
+ end
97
+ end
98
+ end
99
+
100
+ end
101
+
102
+ desc 'anti malware events'
103
+ # arg_name 'Describe arguments to host_status here'
104
+ command :anti_malware_events do |c|
105
+
106
+ c.desc "list"
107
+ c.command :list do |list|
108
+
109
+ list.desc 'fields'
110
+ list.default_value Dsc::AntiMalwareEvent.default_fields_string
111
+ list.flag [:fields]
112
+
113
+ list.desc 'time filter'
114
+ list.long_desc "One of #{Dsc::AntiMalwareEvent.valid_time_filters.keys.join(', ')}"
115
+ list.default_value "last_day"
116
+ list.flag [:time_filter]
117
+
118
+ list.action do |global_options, options, args|
119
+ Dsc.output_from_option(global_options[:o]) do |output|
120
+ Dsc::AntiMalwareEvent.list(global_options[:m],
121
+ global_options[:port].to_i,
122
+ global_options[:t],
123
+ global_options[:u],
124
+ global_options[:p],
125
+ :host_filter,
126
+ Dsc::AntiMalwareEvent.parse_time_filter(options[:time_filter]),
127
+ Dsc::AntiMalwareEvent.fields_from_string(options[:fields]),
128
+ output, global_options[:P],
129
+ Dsc.debug_level_from_option(global_options[:d]))
130
+ end
131
+ end
132
+ end
133
+
134
+ c.desc "schema"
135
+ c.command :schema do |schema|
136
+ schema.action do |global_options, options, args|
137
+ Dsc.output_from_option(global_options[:o]) do |output|
138
+ Dsc::AntiMalwareEvent.print_schema(output)
139
+ end
140
+ end
141
+ end
142
+
143
+ end
144
+
145
+ desc 'API Version'
146
+ command :api_version do |c|
147
+
148
+ c.action do |global_options, options, args|
149
+ Dsc.output_from_option(global_options[:o]) do |output|
150
+ Dsc.print_api_version(global_options[:m], global_options[:port].to_i, global_options[:t], global_options[:u], global_options[:p], output, Dsc.debug_level_from_option(global_options[:d]))
151
+ end
152
+ end
153
+ end
154
+
155
+ desc 'Manager time'
156
+ command :manager_time do |c|
157
+
158
+ c.action do |global_options, options, args|
159
+ Dsc.output_from_option(global_options[:o]) do |output|
160
+ Dsc.print_manager_time(global_options[:m], global_options[:port].to_i, global_options[:t], global_options[:u], global_options[:p], output, Dsc.debug_level_from_option(global_options[:d]))
161
+ end
162
+ end
163
+ end
164
+
165
+ pre do |global, command, options, args|
166
+ # Pre logic here
167
+ # Return true to proceed; false to abort and not call the
168
+ # chosen command
169
+ # Use skips_pre before a command to skip this block
170
+ # on that command only
171
+ true
172
+ end
173
+
174
+ post do |global, command, options, args|
175
+ # Post logic here
176
+ # Use skips_post before a command to skip this
177
+ # block on that command only
178
+ end
179
+
180
+ on_error do |exception|
181
+ # Error logic here
182
+ # return false to skip default error handling
183
+ true
184
+ end
185
+
186
+ exit run(ARGV)
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/deepsecurity/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = ["Udo Schneider"]
6
+ gem.email = ["Udo.Schneider@homeaddress.de"]
7
+ gem.description = %q{Trend Micro DeepSecurity Wrapper}
8
+ gem.summary = %q{Trend Micro DeepSecurity Wrapper}
9
+ gem.homepage = ""
10
+
11
+ gem.files = `git ls-files`.split($\)
12
+ gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
13
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.name = "deepsecurity"
15
+ gem.require_paths = ["lib"]
16
+ gem.version = DeepSecurity::VERSION
17
+
18
+ gem.add_dependency "json"
19
+ gem.add_dependency "savon"
20
+ gem.add_dependency "ruby-cache"
21
+
22
+ gem.add_dependency "gli"
23
+
24
+ gem.add_dependency 'yard'
25
+ # gem.add_dependency 'redcarpet'
26
+ # gem.add_dependency 'github-markup'
27
+ gem.add_dependency 'progressbar'
28
+
29
+ end
30
+
@@ -0,0 +1,37 @@
1
+ module DeepSecurity
2
+
3
+ class DSObject < SavonHelper::CachingObject
4
+
5
+ def self.logger
6
+ DeepSecurity.logger
7
+ end
8
+
9
+ def self.dsm
10
+ DeepSecurity.dsm
11
+ end
12
+
13
+ def logger
14
+ self.class.logger
15
+ end
16
+
17
+ def dsm
18
+ self.class.dsm
19
+ end
20
+
21
+ def retryable(options = {}, &block)
22
+ opts = {:tries => 1, :on => Exception}.merge(options)
23
+
24
+ retry_exception, retries = opts[:on], opts[:tries]
25
+
26
+ begin
27
+ return yield
28
+ rescue retry_exception
29
+ retry if (retries -= 1) > 0
30
+ end
31
+
32
+ yield
33
+ end
34
+
35
+ end
36
+
37
+ end