arbor-atlas 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 +7 -0
- checksums.yaml.gz.sig +3 -0
- data.tar.gz.sig +0 -0
- data/.gitignore +17 -0
- data/Gemfile +3 -11
- data/LICENSE.txt +3 -1
- data/{README.rdoc → README.md} +23 -20
- data/Rakefile +7 -49
- data/arbor-atlas.gemspec +24 -67
- data/bin/atlas +30 -0
- data/lib/{arbor-atlas/arbor-atlas.rb → arbor/atlas.rb} +4 -2
- data/lib/arbor/atlas/version.rb +5 -0
- data/test/helper.rb +1 -17
- data/test/test_arbor-atlas.rb +19 -14
- metadata +116 -154
- metadata.gz.sig +0 -0
- data/.document +0 -5
- data/Gemfile.lock +0 -22
- data/VERSION +0 -1
- data/lib/arbor-atlas.rb +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 087dc88c53109e0e0f4742fa7fdeefa868cdaf7d
|
4
|
+
data.tar.gz: 05816f62f7ebf0c2e4ab82b6e5d502ef53fbbfca
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c972b6818a1173ffa1544f2e5f4c1240a0a95c4f00698ae0072fcd9d0cb8a56bd1f2d9028f92479c9fa40b9d6f8ef54dbd3ce696d718fc7f7fa829b475d7873f
|
7
|
+
data.tar.gz: 20b0b03b1889e7ba3cb45bd55b0849c91f90457ccddbcffb0c17ae1d80af6287a38a452a9c92eb0e544ca235a7e51e99b06d1711ae71d97a9e973766fb2dde0a
|
checksums.yaml.gz.sig
ADDED
data.tar.gz.sig
CHANGED
Binary file
|
data/.gitignore
ADDED
data/Gemfile
CHANGED
@@ -1,12 +1,4 @@
|
|
1
|
-
source
|
2
|
-
# Add dependencies required to use your gem here.
|
3
|
-
gem "crack", ">= 0.1.8"
|
1
|
+
source 'https://rubygems.org'
|
4
2
|
|
5
|
-
#
|
6
|
-
|
7
|
-
group :development do
|
8
|
-
gem "shoulda", ">= 0"
|
9
|
-
gem "bundler", "~> 1.0.0"
|
10
|
-
gem "jeweler", "~> 1.5.2"
|
11
|
-
gem "rcov", ">= 0"
|
12
|
-
end
|
3
|
+
# Specify your gem's dependencies in arbor-atlas.gemspec
|
4
|
+
gemspec
|
data/LICENSE.txt
CHANGED
data/{README.rdoc → README.md}
RENAMED
@@ -1,14 +1,25 @@
|
|
1
|
-
|
1
|
+
# Arbor::Atlas
|
2
2
|
|
3
3
|
The arbor-atlas gem provides a very thin wrapper around Arbor Atlas' web interface, https://atlas.arbor.net/.
|
4
4
|
|
5
|
-
|
5
|
+
The ATLAS portal today is a public resource that delivers a sub-set of the intelligence derived from the ATLAS sensor network on host/port scanning activity, zero-day exploits and worm propagation, security events, vulnerability disclosures and dynamic botnet and phishing infrastructures.
|
6
6
|
|
7
|
-
|
7
|
+
## Installation
|
8
8
|
|
9
|
-
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
gem 'arbor-atlas'
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install arbor-atlas
|
20
|
+
|
21
|
+
## Usage
|
10
22
|
|
11
|
-
require 'rubygems'
|
12
23
|
require 'arbor-atlas'
|
13
24
|
username = "your atlas username"
|
14
25
|
password = "your atlas password"
|
@@ -19,7 +30,7 @@ sudo gem install arbor-atlas
|
|
19
30
|
cc_rec = arbor.lookup("US")
|
20
31
|
cve_rec = arbor.lookup("CVE-2006-4139")
|
21
32
|
|
22
|
-
|
33
|
+
all the records are simply hashes like the following
|
23
34
|
|
24
35
|
pp ip_rec # =>
|
25
36
|
{"report"=>
|
@@ -82,18 +93,10 @@ sudo gem install arbor-atlas
|
|
82
93
|
{"entity"=>
|
83
94
|
{"name"=>"Other", "controllers"=>"0", "percent"=>"0.0%"}}}}}}
|
84
95
|
|
85
|
-
|
86
|
-
|
87
|
-
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
88
|
-
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
89
|
-
* Fork the project
|
90
|
-
* Start a feature/bugfix branch
|
91
|
-
* Commit and push until you are happy with your contribution
|
92
|
-
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
93
|
-
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
94
|
-
|
95
|
-
== Copyright
|
96
|
-
|
97
|
-
Copyright (c) 2011 Chris Lee. See LICENSE.txt for
|
98
|
-
further details.
|
96
|
+
## Contributing
|
99
97
|
|
98
|
+
1. Fork it
|
99
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
100
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
101
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
102
|
+
5. Create new Pull Request
|
data/Rakefile
CHANGED
@@ -1,54 +1,12 @@
|
|
1
|
-
|
2
|
-
require
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
10
|
-
require 'rake'
|
11
|
-
|
12
|
-
require 'jeweler'
|
13
|
-
Jeweler::Tasks.new do |gem|
|
14
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
15
|
-
gem.name = "arbor-atlas"
|
16
|
-
gem.homepage = "http://github.com/chrislee35/arbor-atlas"
|
17
|
-
gem.license = "MIT"
|
18
|
-
gem.summary = %Q{A very thin wrapper around Arbor Atlas' web interface}
|
19
|
-
gem.description = %Q{https://atlas.arbor.net}
|
20
|
-
gem.email = "rubygems@chrislee.dhs.org"
|
21
|
-
gem.authors = ["Chris Lee"]
|
22
|
-
# Include your dependencies below. Runtime dependencies are required when using your gem,
|
23
|
-
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
24
|
-
gem.add_runtime_dependency "crack", ">= 0.1.8"
|
25
|
-
gem.signing_key = "#{File.dirname(__FILE__)}/../gem-private_key.pem"
|
26
|
-
gem.cert_chain = ["#{File.dirname(__FILE__)}/../gem-public_cert.pem"]
|
27
|
-
end
|
28
|
-
Jeweler::RubygemsDotOrgTasks.new
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
require "bundler/gem_tasks"
|
29
3
|
|
30
4
|
require 'rake/testtask'
|
31
|
-
Rake::TestTask.new(:test) do |test|
|
32
|
-
test.libs << 'lib' << 'test'
|
33
|
-
test.pattern = 'test/**/test_*.rb'
|
34
|
-
test.verbose = true
|
35
|
-
end
|
36
5
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
test.verbose = true
|
6
|
+
Rake::TestTask.new do |t|
|
7
|
+
t.libs << 'lib'
|
8
|
+
t.test_files = FileList['test/test_*.rb']
|
9
|
+
t.verbose = true
|
42
10
|
end
|
43
11
|
|
44
|
-
task :default => :test
|
45
|
-
|
46
|
-
require 'rake/rdoctask'
|
47
|
-
Rake::RDocTask.new do |rdoc|
|
48
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
49
|
-
|
50
|
-
rdoc.rdoc_dir = 'rdoc'
|
51
|
-
rdoc.title = "arbor-atlas #{version}"
|
52
|
-
rdoc.rdoc_files.include('README*')
|
53
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
54
|
-
end
|
12
|
+
task :default => :test
|
data/arbor-atlas.gemspec
CHANGED
@@ -1,72 +1,29 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'arbor/atlas/version'
|
5
5
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "arbor-atlas"
|
8
|
+
spec.version = Arbor::Atlas::VERSION
|
9
|
+
spec.authors = ["chrislee35"]
|
10
|
+
spec.email = ["rubygems@chrislee.dhs.org"]
|
11
|
+
spec.description = %q{The ATLAS portal today is a public resource that delivers a sub-set of the intelligence derived from the ATLAS sensor network on host/port scanning activity, zero-day exploits and worm propagation, security events, vulnerability disclosures and dynamic botnet and phishing infrastructures.}
|
12
|
+
spec.summary = %q{A very thin wrapper around Arbor Atlas' web interface}
|
13
|
+
spec.homepage = "https://github.com/chrislee35/arbor-atlas"
|
14
|
+
spec.license = "MIT"
|
9
15
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
s.description = %q{https://atlas.arbor.net}
|
15
|
-
s.email = %q{rubygems@chrislee.dhs.org}
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"LICENSE.txt",
|
18
|
-
"README.rdoc"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".document",
|
22
|
-
"Gemfile",
|
23
|
-
"Gemfile.lock",
|
24
|
-
"LICENSE.txt",
|
25
|
-
"README.rdoc",
|
26
|
-
"Rakefile",
|
27
|
-
"VERSION",
|
28
|
-
"arbor-atlas.gemspec",
|
29
|
-
"lib/arbor-atlas.rb",
|
30
|
-
"lib/arbor-atlas/arbor-atlas.rb",
|
31
|
-
"test/helper.rb",
|
32
|
-
"test/test_arbor-atlas.rb"
|
33
|
-
]
|
34
|
-
s.homepage = %q{http://github.com/chrislee35/arbor-atlas}
|
35
|
-
s.licenses = ["MIT"]
|
36
|
-
s.require_paths = ["lib"]
|
37
|
-
s.rubygems_version = %q{1.7.2}
|
38
|
-
s.signing_key = %q{/Users/chris/Documents/projects/rubygems/arbor-atlas/../gem-private_key.pem}
|
39
|
-
s.summary = %q{A very thin wrapper around Arbor Atlas' web interface}
|
40
|
-
s.test_files = [
|
41
|
-
"test/helper.rb",
|
42
|
-
"test/test_arbor-atlas.rb"
|
43
|
-
]
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
44
20
|
|
45
|
-
|
46
|
-
|
21
|
+
spec.add_runtime_dependency "configparser", "~> 0.1.1"
|
22
|
+
spec.add_runtime_dependency "json", ">= 1.4.3"
|
23
|
+
spec.add_runtime_dependency "crack", ">= 0.3.2"
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
25
|
+
spec.add_development_dependency "rake"
|
47
26
|
|
48
|
-
|
49
|
-
|
50
|
-
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
51
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
52
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
53
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
54
|
-
s.add_runtime_dependency(%q<crack>, [">= 0.1.8"])
|
55
|
-
else
|
56
|
-
s.add_dependency(%q<crack>, [">= 0.1.8"])
|
57
|
-
s.add_dependency(%q<shoulda>, [">= 0"])
|
58
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
59
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
60
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
61
|
-
s.add_dependency(%q<crack>, [">= 0.1.8"])
|
62
|
-
end
|
63
|
-
else
|
64
|
-
s.add_dependency(%q<crack>, [">= 0.1.8"])
|
65
|
-
s.add_dependency(%q<shoulda>, [">= 0"])
|
66
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
67
|
-
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
68
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
69
|
-
s.add_dependency(%q<crack>, [">= 0.1.8"])
|
70
|
-
end
|
27
|
+
spec.signing_key = "#{File.dirname(__FILE__)}/../gem-private_key.pem"
|
28
|
+
spec.cert_chain = ["#{File.dirname(__FILE__)}/../gem-public_cert.pem"]
|
71
29
|
end
|
72
|
-
|
data/bin/atlas
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'arbor/atlas'
|
3
|
+
require 'configparser'
|
4
|
+
require 'pp'
|
5
|
+
|
6
|
+
# need to parse arguments, then the config
|
7
|
+
configfile = ENV['HOME']+"/.arbor"
|
8
|
+
|
9
|
+
if ARGV.length > 0 and File.exist?(ARGV[0])
|
10
|
+
configfile = ARGV.shift
|
11
|
+
end
|
12
|
+
|
13
|
+
if not File.exist?(configfile)
|
14
|
+
puts "You must specify a configuration file or create one at #{ENV['HOME']}/.arbor"
|
15
|
+
exit
|
16
|
+
end
|
17
|
+
|
18
|
+
config = ConfigParser.new(configfile)
|
19
|
+
user = config['arbor']['user']
|
20
|
+
pass = config['arbor']['password']
|
21
|
+
a = Arbor::Atlas.new(user,pass)
|
22
|
+
if ARGV.length > 0
|
23
|
+
ARGV.each do |item|
|
24
|
+
pp a.lookup(item)
|
25
|
+
end
|
26
|
+
else
|
27
|
+
$stdin.each_line do |item|
|
28
|
+
pp a.lookup(item.chomp)
|
29
|
+
end
|
30
|
+
end
|
@@ -1,6 +1,8 @@
|
|
1
|
+
require "arbor/atlas/version"
|
1
2
|
require 'net/http'
|
2
3
|
require 'net/https'
|
3
4
|
require 'crack'
|
5
|
+
require "rexml/document" # bug workaround (see http://www.ruby-forum.com/topic/4411348)
|
4
6
|
|
5
7
|
module Arbor
|
6
8
|
class Atlas
|
@@ -16,7 +18,7 @@ module Arbor
|
|
16
18
|
def _post(path, params)
|
17
19
|
url = URI.parse "#{@@baseurl}/#{path}"
|
18
20
|
request = Net::HTTP::Post.new(url.path)
|
19
|
-
request.add_field("User-Agent", "Ruby/#{RUBY_VERSION} arbor-atlas rubygem
|
21
|
+
request.add_field("User-Agent", "Ruby/#{RUBY_VERSION} arbor-atlas rubygem v#{Arbor::Atlas::VERSION}")
|
20
22
|
request.add_field("Referer", @@baseurl)
|
21
23
|
request.add_field("Cookie", @cookie) if @cookie
|
22
24
|
request.set_form_data(params)
|
@@ -40,7 +42,7 @@ module Arbor
|
|
40
42
|
end.tr(' ', '+')
|
41
43
|
}.join("&")
|
42
44
|
request = Net::HTTP::Get.new(url.path+"?"+data)
|
43
|
-
request.add_field("User-Agent", "Ruby/#{RUBY_VERSION} arbor-atlas rubygem
|
45
|
+
request.add_field("User-Agent", "Ruby/#{RUBY_VERSION} arbor-atlas rubygem v#{Arbor::Atlas::VERSION}")
|
44
46
|
request.add_field("Referer", @@baseurl)
|
45
47
|
request.add_field("Cookie", @cookie) if @cookie
|
46
48
|
|
data/test/helper.rb
CHANGED
@@ -1,18 +1,2 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
10
1
|
require 'test/unit'
|
11
|
-
require '
|
12
|
-
|
13
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
15
|
-
require 'arbor-atlas'
|
16
|
-
|
17
|
-
class Test::Unit::TestCase
|
18
|
-
end
|
2
|
+
require File.expand_path('../../lib/arbor/atlas.rb', __FILE__)
|
data/test/test_arbor-atlas.rb
CHANGED
@@ -1,8 +1,19 @@
|
|
1
|
-
|
1
|
+
unless Kernel.respond_to?(:require_relative)
|
2
|
+
module Kernel
|
3
|
+
def require_relative(path)
|
4
|
+
require File.join(File.dirname(caller[0]), path.to_str)
|
5
|
+
end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
require_relative 'helper'
|
2
10
|
|
3
11
|
class TestArborAtlas < Test::Unit::TestCase
|
4
|
-
|
12
|
+
def setup
|
5
13
|
raise "You must set ARBORUSER and ARBORPASS in your environment before running tests" unless ENV['ARBORUSER'] and ENV['ARBORPASS']
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_return_host_report_on_1_2_3_4
|
6
17
|
a = Arbor::Atlas.new(ENV['ARBORUSER'], ENV['ARBORPASS'])
|
7
18
|
assert_not_nil(a.cookie)
|
8
19
|
ipinfo = a.lookup("1.2.3.4")
|
@@ -21,8 +32,7 @@ class TestArborAtlas < Test::Unit::TestCase
|
|
21
32
|
assert_not_nil(ipinfo['report']['servers'])
|
22
33
|
end
|
23
34
|
|
24
|
-
|
25
|
-
raise "You must set ARBORUSER and ARBORPASS in your environment before running tests" unless ENV['ARBORUSER'] and ENV['ARBORPASS']
|
35
|
+
def test_return_network_report_on_1_2_3_0_24
|
26
36
|
a = Arbor::Atlas.new(ENV['ARBORUSER'], ENV['ARBORPASS'])
|
27
37
|
assert_not_nil(a.cookie)
|
28
38
|
ipinfo = a.lookup("1.2.3.0/24")
|
@@ -41,8 +51,7 @@ class TestArborAtlas < Test::Unit::TestCase
|
|
41
51
|
assert_not_nil(ipinfo['report']['servers'])
|
42
52
|
end
|
43
53
|
|
44
|
-
|
45
|
-
raise "You must set ARBORUSER and ARBORPASS in your environment before running tests" unless ENV['ARBORUSER'] and ENV['ARBORPASS']
|
54
|
+
def test_return_network_as_report_for_AS701
|
46
55
|
a = Arbor::Atlas.new(ENV['ARBORUSER'], ENV['ARBORPASS'])
|
47
56
|
assert_not_nil(a.cookie)
|
48
57
|
ipinfo = a.lookup("AS701")
|
@@ -60,8 +69,7 @@ class TestArborAtlas < Test::Unit::TestCase
|
|
60
69
|
assert_not_nil(ipinfo['report']['dos_attacks'])
|
61
70
|
end
|
62
71
|
|
63
|
-
|
64
|
-
raise "You must set ARBORUSER and ARBORPASS in your environment before running tests" unless ENV['ARBORUSER'] and ENV['ARBORPASS']
|
72
|
+
def test_return_vulnerability_report_for_CVE_2006_4139
|
65
73
|
a = Arbor::Atlas.new(ENV['ARBORUSER'], ENV['ARBORPASS'])
|
66
74
|
assert_not_nil(a.cookie)
|
67
75
|
ipinfo = a.lookup("CVE-2006-4139")
|
@@ -76,8 +84,7 @@ class TestArborAtlas < Test::Unit::TestCase
|
|
76
84
|
assert_not_nil(ipinfo['report']['attacks'])
|
77
85
|
end
|
78
86
|
|
79
|
-
|
80
|
-
raise "You must set ARBORUSER and ARBORPASS in your environment before running tests" unless ENV['ARBORUSER'] and ENV['ARBORPASS']
|
87
|
+
def test_return_country_report_for_US
|
81
88
|
a = Arbor::Atlas.new(ENV['ARBORUSER'], ENV['ARBORPASS'])
|
82
89
|
assert_not_nil(a.cookie)
|
83
90
|
ipinfo = a.lookup("US")
|
@@ -90,8 +97,7 @@ class TestArborAtlas < Test::Unit::TestCase
|
|
90
97
|
assert_not_nil(ipinfo['report']['servers'])
|
91
98
|
end
|
92
99
|
|
93
|
-
|
94
|
-
raise "You must set ARBORUSER and ARBORPASS in your environment before running tests" unless ENV['ARBORUSER'] and ENV['ARBORPASS']
|
100
|
+
def test_return_service_report_for_tcp_445
|
95
101
|
a = Arbor::Atlas.new(ENV['ARBORUSER'], ENV['ARBORPASS'])
|
96
102
|
assert_not_nil(a.cookie)
|
97
103
|
ipinfo = a.lookup("tcp/445")
|
@@ -104,8 +110,7 @@ class TestArborAtlas < Test::Unit::TestCase
|
|
104
110
|
assert_not_nil(ipinfo['report']['vulnerabilities'])
|
105
111
|
end
|
106
112
|
|
107
|
-
|
108
|
-
raise "You must set ARBORUSER and ARBORPASS in your environment before running tests" unless ENV['ARBORUSER'] and ENV['ARBORPASS']
|
113
|
+
def test_raise_exception_on_unknown_query_type
|
109
114
|
a = Arbor::Atlas.new(ENV['ARBORUSER'], ENV['ARBORPASS'])
|
110
115
|
assert_not_nil(a.cookie)
|
111
116
|
assert_raise(ArgumentError) do a.lookup("unknown type") end
|
metadata
CHANGED
@@ -1,191 +1,153 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: arbor-atlas
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 1
|
10
|
-
version: 0.1.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
13
|
-
-
|
6
|
+
authors:
|
7
|
+
- chrislee35
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
|
-
cert_chain:
|
10
|
+
cert_chain:
|
17
11
|
- |
|
18
12
|
-----BEGIN CERTIFICATE-----
|
19
13
|
MIIDYjCCAkqgAwIBAgIBADANBgkqhkiG9w0BAQUFADBXMREwDwYDVQQDDAhydWJ5
|
20
14
|
Z2VtczEYMBYGCgmSJomT8ixkARkWCGNocmlzbGVlMRMwEQYKCZImiZPyLGQBGRYD
|
21
|
-
|
22
|
-
|
15
|
+
ZGhzMRMwEQYKCZImiZPyLGQBGRYDb3JnMB4XDTEzMDUyMjEyNTk0N1oXDTE0MDUy
|
16
|
+
MjEyNTk0N1owVzERMA8GA1UEAwwIcnVieWdlbXMxGDAWBgoJkiaJk/IsZAEZFghj
|
23
17
|
aHJpc2xlZTETMBEGCgmSJomT8ixkARkWA2RoczETMBEGCgmSJomT8ixkARkWA29y
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
18
|
+
ZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANcPrx8BZiWIR9xWWG8I
|
19
|
+
tqR538tS1t+UJ4FZFl+1vrtU9TiuWX3Vj37TwUpa2fFkziK0n5KupVThyEhcem5m
|
20
|
+
OGRjvgrRFbWQJSSscIKOpwqURHVKRpV9gVz/Hnzk8S+xotUR1Buo3Ugr+I1jHewD
|
21
|
+
Cgr+y+zgZbtjtHsJtsuujkOcPhEjjUinj68L9Fz9BdeJQt+IacjwAzULix6jWCht
|
22
|
+
Uc+g+0z8Esryca2G6I1GsrgX6WHw8dykyQDT9dCtS2flCOwSC1R0K5T/xHW54f+5
|
23
|
+
wcw8mm53KLNe+tmgVC6ZHyME+qJsBnP6uxF0aTEnGA/jDBQDhQNTF0ZP/abzyTsL
|
24
|
+
zjUCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFO8w
|
25
|
+
+aeP7T6kVJblCg6eusOII9DfMA0GCSqGSIb3DQEBBQUAA4IBAQBCQyRJLXsBo2Fy
|
26
|
+
8W6e/W4RemQRrlAw9DK5O6U71JtedVob2oq+Ob+zmS+PifE2+L+3RiJ2H6VTlOzi
|
27
|
+
x+A061MUXhGraqVq4J2FC8kt4EQywAD0P0Ta5GU24CGSF08Y3GkJy1Sa4XqTC2YC
|
28
|
+
o51s7JP+tkCCtpVYSdzJhTllieRAWBpGV1dtaoeUKE6tYPMBkosxSRcVGczk/Sc3
|
29
|
+
7eQCpexYy9JlUBI9u3BqIY9E+l+MSn8ihXSPmyK0DgrhaCu+voaSFVOX6Y+B5qbo
|
30
|
+
jLXMQu2ZgISYwXNjNbGVHehut82U7U9oiHoWcrOGazaRUmGO9TXP+aJLH0gw2dcK
|
31
|
+
AfMglXPi
|
38
32
|
-----END CERTIFICATE-----
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
hash: 11
|
49
|
-
segments:
|
50
|
-
- 0
|
51
|
-
- 1
|
52
|
-
- 8
|
53
|
-
version: 0.1.8
|
54
|
-
requirement: *id001
|
55
|
-
prerelease: false
|
56
|
-
name: crack
|
33
|
+
date: 2013-06-05 00:00:00.000000000 Z
|
34
|
+
dependencies:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: configparser
|
37
|
+
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ~>
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 0.1.1
|
57
42
|
type: :runtime
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
60
|
-
none: false
|
61
|
-
requirements:
|
62
|
-
- - ">="
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
hash: 3
|
65
|
-
segments:
|
66
|
-
- 0
|
67
|
-
version: "0"
|
68
|
-
requirement: *id002
|
69
43
|
prerelease: false
|
70
|
-
|
71
|
-
|
72
|
-
- !ruby/object:Gem::Dependency
|
73
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
|
-
requirements:
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
76
46
|
- - ~>
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 0.1.1
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: json
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 1.4.3
|
56
|
+
type: :runtime
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 1.4.3
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: crack
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.3.2
|
70
|
+
type: :runtime
|
85
71
|
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 0.3.2
|
77
|
+
- !ruby/object:Gem::Dependency
|
86
78
|
name: bundler
|
87
|
-
|
88
|
-
|
89
|
-
version_requirements: &id004 !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
|
-
requirements:
|
79
|
+
requirement: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
92
81
|
- - ~>
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
|
95
|
-
segments:
|
96
|
-
- 1
|
97
|
-
- 5
|
98
|
-
- 2
|
99
|
-
version: 1.5.2
|
100
|
-
requirement: *id004
|
101
|
-
prerelease: false
|
102
|
-
name: jeweler
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '1.3'
|
103
84
|
type: :development
|
104
|
-
- !ruby/object:Gem::Dependency
|
105
|
-
version_requirements: &id005 !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
hash: 3
|
111
|
-
segments:
|
112
|
-
- 0
|
113
|
-
version: "0"
|
114
|
-
requirement: *id005
|
115
85
|
prerelease: false
|
116
|
-
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ~>
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '1.3'
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: rake
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
117
98
|
type: :development
|
118
|
-
- !ruby/object:Gem::Dependency
|
119
|
-
version_requirements: &id006 !ruby/object:Gem::Requirement
|
120
|
-
none: false
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
hash: 11
|
125
|
-
segments:
|
126
|
-
- 0
|
127
|
-
- 1
|
128
|
-
- 8
|
129
|
-
version: 0.1.8
|
130
|
-
requirement: *id006
|
131
99
|
prerelease: false
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - '>='
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
description: The ATLAS portal today is a public resource that delivers a sub-set of
|
106
|
+
the intelligence derived from the ATLAS sensor network on host/port scanning activity,
|
107
|
+
zero-day exploits and worm propagation, security events, vulnerability disclosures
|
108
|
+
and dynamic botnet and phishing infrastructures.
|
109
|
+
email:
|
110
|
+
- rubygems@chrislee.dhs.org
|
111
|
+
executables:
|
112
|
+
- atlas
|
138
113
|
extensions: []
|
139
|
-
|
140
|
-
|
141
|
-
-
|
142
|
-
- README.rdoc
|
143
|
-
files:
|
144
|
-
- .document
|
114
|
+
extra_rdoc_files: []
|
115
|
+
files:
|
116
|
+
- .gitignore
|
145
117
|
- Gemfile
|
146
|
-
- Gemfile.lock
|
147
118
|
- LICENSE.txt
|
148
|
-
- README.
|
119
|
+
- README.md
|
149
120
|
- Rakefile
|
150
|
-
- VERSION
|
151
121
|
- arbor-atlas.gemspec
|
152
|
-
-
|
153
|
-
- lib/arbor
|
122
|
+
- bin/atlas
|
123
|
+
- lib/arbor/atlas.rb
|
124
|
+
- lib/arbor/atlas/version.rb
|
154
125
|
- test/helper.rb
|
155
126
|
- test/test_arbor-atlas.rb
|
156
|
-
homepage:
|
157
|
-
licenses:
|
127
|
+
homepage: https://github.com/chrislee35/arbor-atlas
|
128
|
+
licenses:
|
158
129
|
- MIT
|
130
|
+
metadata: {}
|
159
131
|
post_install_message:
|
160
132
|
rdoc_options: []
|
161
|
-
|
162
|
-
require_paths:
|
133
|
+
require_paths:
|
163
134
|
- lib
|
164
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
none: false
|
175
|
-
requirements:
|
176
|
-
- - ">="
|
177
|
-
- !ruby/object:Gem::Version
|
178
|
-
hash: 3
|
179
|
-
segments:
|
180
|
-
- 0
|
181
|
-
version: "0"
|
135
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - '>='
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
182
145
|
requirements: []
|
183
|
-
|
184
146
|
rubyforge_project:
|
185
|
-
rubygems_version:
|
147
|
+
rubygems_version: 2.0.3
|
186
148
|
signing_key:
|
187
|
-
specification_version:
|
149
|
+
specification_version: 4
|
188
150
|
summary: A very thin wrapper around Arbor Atlas' web interface
|
189
|
-
test_files:
|
151
|
+
test_files:
|
190
152
|
- test/helper.rb
|
191
153
|
- test/test_arbor-atlas.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/.document
DELETED
data/Gemfile.lock
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
crack (0.1.8)
|
5
|
-
git (1.2.5)
|
6
|
-
jeweler (1.5.2)
|
7
|
-
bundler (~> 1.0.0)
|
8
|
-
git (>= 1.2.5)
|
9
|
-
rake
|
10
|
-
rake (0.8.7)
|
11
|
-
rcov (0.9.9)
|
12
|
-
shoulda (2.11.3)
|
13
|
-
|
14
|
-
PLATFORMS
|
15
|
-
ruby
|
16
|
-
|
17
|
-
DEPENDENCIES
|
18
|
-
bundler (~> 1.0.0)
|
19
|
-
crack (>= 0.1.8)
|
20
|
-
jeweler (~> 1.5.2)
|
21
|
-
rcov
|
22
|
-
shoulda
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.1.1
|
data/lib/arbor-atlas.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'arbor-atlas/arbor-atlas'
|