threatinator 0.1.6 → 0.2.0

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 (197) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -2
  3. data/Gemfile +18 -13
  4. data/Rakefile +1 -1
  5. data/VERSION +1 -1
  6. data/feeds/ET_block-ip_reputation.feed +26 -0
  7. data/feeds/ET_openbadlist-ip_reputation.feed +35 -0
  8. data/feeds/bambenek_c2_masterlist-domain_reputation.feed +15 -0
  9. data/feeds/bambenek_c2_masterlist-ip_reputation.feed +15 -0
  10. data/feeds/bambenek_dga_feed-domain_reputation.feed +15 -0
  11. data/feeds/berkeley-ip_reputation.feed +23 -0
  12. data/feeds/bitcash_cz_blacklist.feed +20 -0
  13. data/feeds/botscout-ip_reputation.feed +24 -0
  14. data/feeds/cert_mxpoison-ip_reputation.feed +21 -0
  15. data/feeds/chaosreigns-ip_reputation.feed +36 -0
  16. data/feeds/cydef_torexit-ip_reputation.feed +24 -0
  17. data/feeds/danger_bruteforce-ip_reputation.feed +23 -0
  18. data/feeds/falconcrest-ip_reputation.feed +18 -0
  19. data/feeds/h3x_asprox.feed +17 -0
  20. data/feeds/hosts-file_hphostspartial-domain_reputation.feed +18 -0
  21. data/feeds/infiltrated_vabl-ip_reputation.feed +29 -0
  22. data/feeds/isc_suspicious_high-domain_reputation.feed +25 -0
  23. data/feeds/isc_suspicious_low-domain_reputation.feed +25 -0
  24. data/feeds/isc_suspicious_medium-domain_reputation.feed +25 -0
  25. data/feeds/malwaredomainlist-url_reputation.feed +16 -0
  26. data/feeds/malwaredomains-domain_reputation.feed +27 -0
  27. data/feeds/malwaredomains_dyndns-domain_reputation.feed +27 -0
  28. data/feeds/malwaredomains_justdomains-domain_reputation.feed +18 -0
  29. data/feeds/multiproxy-ip_reputation.feed +20 -0
  30. data/feeds/openphish-url_reputation.feed +22 -0
  31. data/feeds/packetmail_perimeterbad-ip_reputation.feed +26 -0
  32. data/feeds/phishtank.feed +1 -1
  33. data/feeds/sigmaproject_atma.feed +25 -0
  34. data/feeds/sigmaproject_spyware.feed +24 -0
  35. data/feeds/sigmaproject_webexploit.feed +26 -0
  36. data/feeds/snort_bpf-ip_reputation.feed +19 -0
  37. data/feeds/steeman-ip_reputation.feed +19 -0
  38. data/feeds/trustedsec-ip_reputation.feed +17 -0
  39. data/feeds/virbl-ip_reputation.feed +24 -0
  40. data/feeds/vxvault-url_reputation.feed +22 -0
  41. data/feeds/yoyo_adservers-domain_reputation.feed +16 -0
  42. data/lib/threatinator/actions/run/action.rb +15 -3
  43. data/lib/threatinator/actions/run/coverage_observer.rb +12 -7
  44. data/lib/threatinator/actions/run/status_observer.rb +37 -0
  45. data/lib/threatinator/cli.rb +9 -3
  46. data/lib/threatinator/cli/parser.rb +14 -4
  47. data/lib/threatinator/config.rb +1 -0
  48. data/lib/threatinator/config/logger.rb +14 -0
  49. data/lib/threatinator/event.rb +28 -18
  50. data/lib/threatinator/event_builder.rb +52 -23
  51. data/lib/threatinator/exceptions.rb +3 -6
  52. data/lib/threatinator/feed.rb +1 -1
  53. data/lib/threatinator/feed_runner.rb +63 -7
  54. data/lib/threatinator/logger.rb +66 -0
  55. data/lib/threatinator/logging.rb +20 -0
  56. data/lib/threatinator/model/base.rb +23 -0
  57. data/lib/threatinator/model/collection.rb +64 -0
  58. data/lib/threatinator/model/observables/fqdn_collection.rb +13 -0
  59. data/lib/threatinator/model/observables/ipv4.rb +30 -0
  60. data/lib/threatinator/model/observables/ipv4_collection.rb +14 -0
  61. data/lib/threatinator/model/observables/url_collection.rb +16 -0
  62. data/lib/threatinator/model/validations.rb +1 -0
  63. data/lib/threatinator/model/validations/type.rb +21 -0
  64. data/lib/threatinator/plugins/output/csv.rb +20 -9
  65. data/spec/feeds/ET_block-ip_reputation_spec.rb +50 -0
  66. data/spec/feeds/ET_compromised-ip_reputation_spec.rb +2 -5
  67. data/spec/feeds/ET_openbadlist-ip_reputation_spec.rb +56 -0
  68. data/spec/feeds/alienvault-ip_reputation_spec.rb +2 -5
  69. data/spec/feeds/arbor_fastflux-domain_reputation_spec.rb +0 -3
  70. data/spec/feeds/arbor_ssh-ip_reputation_spec.rb +2 -5
  71. data/spec/feeds/autoshun_shunlist_spec.rb +1 -4
  72. data/spec/feeds/bambenek_c2_masterlist-domain_reputation_spec.rb +39 -0
  73. data/spec/feeds/bambenek_c2_masterlist-ip_reputation_spec.rb +39 -0
  74. data/spec/feeds/bambenek_dga_feed-domain_reputation_spec.rb +39 -0
  75. data/spec/feeds/berkeley-ip_reputation_spec.rb +47 -0
  76. data/spec/feeds/bitcash_cz_blacklist-ip_reputation_spec.rb +50 -0
  77. data/spec/feeds/blocklist_de_apache-ip_reputation_spec.rb +2 -5
  78. data/spec/feeds/blocklist_de_bots-ip_reputation_spec.rb +2 -5
  79. data/spec/feeds/blocklist_de_ftp-ip_reputation_spec.rb +2 -5
  80. data/spec/feeds/blocklist_de_imap-ip_reputation_spec.rb +2 -5
  81. data/spec/feeds/blocklist_de_pop3-ip_reputation_spec.rb +2 -5
  82. data/spec/feeds/blocklist_de_proftpd-ip_reputation_spec.rb +2 -5
  83. data/spec/feeds/blocklist_de_sip-ip_reputation_spec.rb +2 -5
  84. data/spec/feeds/blocklist_de_ssh-ip_reputation_spec.rb +2 -5
  85. data/spec/feeds/blocklist_de_strongips-ip_reputation_spec.rb +2 -5
  86. data/spec/feeds/botscout-ip_reputation_spec.rb +50 -0
  87. data/spec/feeds/cert_mxpoison-ip_reputation_spec.rb +47 -0
  88. data/spec/feeds/chaosreigns-ip_reputation_spec.rb +50 -0
  89. data/spec/feeds/ciarmy-ip_reputation_spec.rb +2 -5
  90. data/spec/feeds/cruzit-ip_reputation_spec.rb +2 -5
  91. data/spec/feeds/cydef_torexit-ip_reputation_spec.rb +47 -0
  92. data/spec/feeds/dan_me_uk_torlist-ip_reputation_spec.rb +2 -5
  93. data/spec/feeds/danger_bruteforce-ip_reputation_spec.rb +47 -0
  94. data/spec/feeds/data/ET_block-ip_reputation.txt +80 -0
  95. data/spec/feeds/data/ET_openbadlist-ip_reputation.txt +62 -0
  96. data/spec/feeds/data/bambenek_c2-dommasterlist.csv +30 -0
  97. data/spec/feeds/data/bambenek_c2-ipmasterlist.csv +27 -0
  98. data/spec/feeds/data/bambenek_dga_feed.csv +42 -0
  99. data/spec/feeds/data/berkeley.txt +29 -0
  100. data/spec/feeds/data/bitcash_cz_blacklist.txt +7 -0
  101. data/spec/feeds/data/botscout-ip-reputation.txt +713 -0
  102. data/spec/feeds/data/cert_mxpoison-ip_reputation.txt +17 -0
  103. data/spec/feeds/data/chaosreigns-ip-reputation.txt +26 -0
  104. data/spec/feeds/data/cydef_torexit-ip_reputation.txt +27 -0
  105. data/spec/feeds/data/danger_bruteforce-ip_reputation.txt +12 -0
  106. data/spec/feeds/data/falconcrest_iplist.txt +345 -0
  107. data/spec/feeds/data/h3x_asprox.txt +20 -0
  108. data/spec/feeds/data/hosts-file_hphostspartial_domainlist.txt +24 -0
  109. data/spec/feeds/data/infiltrated_vabl_iplist.txt +33 -0
  110. data/spec/feeds/data/isc_suspicious_high_domainlist.txt +26 -0
  111. data/spec/feeds/data/isc_suspicious_low_domainlist.txt +34 -0
  112. data/spec/feeds/data/isc_suspicious_medium_domainlist.txt +32 -0
  113. data/spec/feeds/data/malwaredomainlist-url-reputation.txt +8 -0
  114. data/spec/feeds/data/malwaredomains_domainlist.txt +24 -0
  115. data/spec/feeds/data/malwaredomains_dyndns_domainlist.txt +34 -0
  116. data/spec/feeds/data/malwaredomains_justdomains_domainlist.txt +18 -0
  117. data/spec/feeds/data/multiproxy_iplist.txt +15 -0
  118. data/spec/feeds/data/openphish-url-reputation.txt +16 -0
  119. data/spec/feeds/data/packetmail_perimeterbad-ip_reputation.txt +44 -0
  120. data/spec/feeds/data/sigmaproject_atma.return.gz +0 -0
  121. data/spec/feeds/data/sigmaproject_spyware.return.gz +0 -0
  122. data/spec/feeds/data/sigmaproject_webexploit.return.gz +0 -0
  123. data/spec/feeds/data/snort_bpf-ip_reputation.txt +16 -0
  124. data/spec/feeds/data/steeman-ip-reputation.txt +13 -0
  125. data/spec/feeds/data/trustedsec-ip-reputation.txt +12 -0
  126. data/spec/feeds/data/virbl-ip_reputation.txt +14 -0
  127. data/spec/feeds/data/vxvault-url-reputation.txt +15 -0
  128. data/spec/feeds/data/yoyo_adservers.txt +25 -0
  129. data/spec/feeds/dshield_attackers-top1000_spec.rb +1 -4
  130. data/spec/feeds/falconcrest-ip_reputation_spec.rb +37 -0
  131. data/spec/feeds/feodo-domain_reputation_spec.rb +0 -3
  132. data/spec/feeds/feodo-ip_reputation_spec.rb +2 -5
  133. data/spec/feeds/h3x_asprox-ip_reputation_spec.rb +50 -0
  134. data/spec/feeds/hosts-file_hphostspartial-domain_reputation_spec.rb +47 -0
  135. data/spec/feeds/infiltrated-ip_reputation_spec.rb +2 -5
  136. data/spec/feeds/infiltrated_vabl-ip_reputation_spec.rb +47 -0
  137. data/spec/feeds/isc_suspicious_high-domain_reputation_spec.rb +47 -0
  138. data/spec/feeds/isc_suspicious_low-domain_reputation_spec.rb +47 -0
  139. data/spec/feeds/isc_suspicious_medium-domain_reputation_spec.rb +47 -0
  140. data/spec/feeds/malc0de-domain_reputation_spec.rb +0 -3
  141. data/spec/feeds/malc0de-ip_reputation_spec.rb +2 -5
  142. data/spec/feeds/malwaredomainlist_url_reputation_spec.rb +50 -0
  143. data/spec/feeds/malwaredomains-domain_reputation_spec.rb +47 -0
  144. data/spec/feeds/malwaredomains_dyndns-domain_reputation_spec.rb +47 -0
  145. data/spec/feeds/malwaredomains_justdomains-domain_reputation_spec.rb +47 -0
  146. data/spec/feeds/mirc-domain_reputation_spec.rb +0 -3
  147. data/spec/feeds/multiproxy-ip_reputation_spec.rb +47 -0
  148. data/spec/feeds/nothink_irc-ip_reputation_spec.rb +2 -5
  149. data/spec/feeds/nothink_ssh-ip_reputation_spec.rb +2 -5
  150. data/spec/feeds/openbl-ip_reputation_spec.rb +2 -5
  151. data/spec/feeds/openphish_url_reputation_spec.rb +50 -0
  152. data/spec/feeds/packetmail_perimeterbad-ip_reputation_spec.rb +47 -0
  153. data/spec/feeds/palevo-domain_reputation_spec.rb +0 -3
  154. data/spec/feeds/palevo-ip_reputation_spec.rb +2 -5
  155. data/spec/feeds/phishtank_spec.rb +2 -5
  156. data/spec/feeds/sigmaproject_atma_spec.rb +63 -0
  157. data/spec/feeds/sigmaproject_spyware_spec.rb +64 -0
  158. data/spec/feeds/sigmaproject_webexploit_spec.rb +63 -0
  159. data/spec/feeds/snort_bpf-ip_reputation_spec.rb +47 -0
  160. data/spec/feeds/spyeye-domain_reputation_spec.rb +0 -3
  161. data/spec/feeds/spyeye-ip_reputation_spec.rb +2 -5
  162. data/spec/feeds/steeman-ip_reputation_spec.rb +50 -0
  163. data/spec/feeds/t-arend-de_ssh-ip_reputation_spec.rb +2 -5
  164. data/spec/feeds/the_haleys_ssh-ip_reputation_spec.rb +2 -5
  165. data/spec/feeds/trustedsec-ip_reputation_spec.rb +47 -0
  166. data/spec/feeds/virbl-ip_reputation_spec.rb +47 -0
  167. data/spec/feeds/vxvault_url_reputation_spec.rb +50 -0
  168. data/spec/feeds/yourcmc_ssh-ip_reputation_spec.rb +2 -5
  169. data/spec/feeds/yoyo_adservers_spec.rb +47 -0
  170. data/spec/feeds/zeus-domain_reputation_spec.rb +0 -3
  171. data/spec/feeds/zeus-ip_reputation_spec.rb +2 -5
  172. data/spec/spec_helper.rb +2 -0
  173. data/spec/support/factories/event.rb +11 -7
  174. data/spec/support/factories/feed.rb +28 -1
  175. data/spec/support/factories/ipv4.rb +36 -0
  176. data/spec/support/factories/url.rb +34 -0
  177. data/spec/support/shared/feed_runner_observer.rb +136 -0
  178. data/spec/support/shared/feeds.rb +19 -4
  179. data/spec/support/shared/model/collection.rb +164 -0
  180. data/spec/threatinator/actions/run/action_spec.rb +27 -10
  181. data/spec/threatinator/actions/run/coverage_observer_spec.rb +39 -4
  182. data/spec/threatinator/actions/run/status_observer_spec.rb +86 -0
  183. data/spec/threatinator/event_builder_spec.rb +111 -21
  184. data/spec/threatinator/event_spec.rb +237 -13
  185. data/spec/threatinator/event_spec.rb.new +319 -0
  186. data/spec/threatinator/feed_builder_spec.rb +0 -3
  187. data/spec/threatinator/feed_runner_spec.rb +254 -70
  188. data/spec/threatinator/logger_spec.rb +29 -0
  189. data/spec/threatinator/model/observables/fqdn_collection_spec.rb +42 -0
  190. data/spec/threatinator/model/observables/ipv4_collection_spec.rb +36 -0
  191. data/spec/threatinator/model/observables/ipv4_spec.rb +75 -0
  192. data/spec/threatinator/model/observables/url_collection_spec.rb +45 -0
  193. data/spec/threatinator/model/validations/type_spec.rb +37 -0
  194. data/spec/threatinator/plugins/output/csv_spec.rb +4 -3
  195. metadata +216 -19
  196. data/lib/threatinator/property_definer.rb +0 -101
  197. data/spec/threatinator/property_definer_spec.rb +0 -155
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+ require 'threatinator/model/observables/ipv4_collection'
3
+ require 'threatinator/model/observables/ipv4'
4
+
5
+ describe Threatinator::Model::Observables::Ipv4Collection do
6
+ it_behaves_like "a model collection" do
7
+ def generate_ten_valid_members
8
+ ret = []
9
+ 1.upto(10) do |i|
10
+ ret << build(:ipv4, ipv4: "1.2.3.#{i}")
11
+ end
12
+ ret
13
+ end
14
+
15
+ def generate_invalid_members
16
+ [1234, :foobar]
17
+ end
18
+ end
19
+
20
+ let(:collection) { described_class.new }
21
+
22
+ describe "#valid_member?(v)" do
23
+ context "when provided an Ipv4 observable" do
24
+ it "returns true" do
25
+ ipv4 = build(:ipv4, ipv4: "1.2.3.4")
26
+ expect(collection.valid_member?(ipv4)).to eq(true)
27
+ end
28
+ end
29
+
30
+ context "when provided something other than an Ipv4 observable" do
31
+ it "returns false" do
32
+ expect(collection.valid_member?("1.2.3.257")).to eq(false)
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,75 @@
1
+ require 'spec_helper'
2
+ require 'threatinator/model/observables/ipv4'
3
+
4
+ describe Threatinator::Model::Observables::Ipv4 do
5
+ let(:ipv4_opts) { {} }
6
+
7
+ describe ":ipv4" do
8
+ it "is required" do
9
+ ipv4_opts.delete(:ipv4)
10
+ expect {
11
+ described_class.new(ipv4_opts)
12
+ }.to raise_error(Threatinator::Exceptions::InvalidAttributeError)
13
+ end
14
+
15
+ it "must be an IP::V4 object" do
16
+ opts1 = ipv4_opts.dup
17
+ opts1[:ipv4] = '1.2.3.4'
18
+ expect {
19
+ described_class.new(opts1)
20
+ }.to raise_error(Threatinator::Exceptions::InvalidAttributeError)
21
+
22
+ opts2 = ipv4_opts.dup
23
+ opts2[:ipv4] = IP::V4.parse('1.2.3.4')
24
+ expect {
25
+ described_class.new(opts2)
26
+ }.not_to raise_error
27
+ end
28
+
29
+ it "must have a 32 bit prefix" do
30
+ opts1 = ipv4_opts.dup
31
+ opts1[:ipv4] = IP::V4.parse('10.1.1.0/24')
32
+ expect {
33
+ described_class.new(opts1)
34
+ }.to raise_error(Threatinator::Exceptions::InvalidAttributeError)
35
+
36
+ opts2 = ipv4_opts.dup
37
+ opts2[:ipv4] = IP::V4.parse('10.1.1.0/32')
38
+ expect {
39
+ described_class.new(opts2)
40
+ }.not_to raise_error
41
+ end
42
+
43
+
44
+ it "sets the value of #ipv4" do
45
+ ipv4 = IP::V4.parse('1.2.3.4')
46
+ ipv4_opts[:ipv4] = ipv4
47
+ o = described_class.new(ipv4_opts)
48
+ expect(o.ipv4).to be(ipv4)
49
+ end
50
+ end
51
+
52
+ describe "#==(other)" do
53
+ it "returns true when compared to an identically configured event" do
54
+ opts1 = ipv4_opts.dup
55
+ opts1[:ipv4] = IP::V4.parse('1.2.3.4')
56
+ opts2 = ipv4_opts.dup
57
+ opts2[:ipv4] = IP::V4.parse('1.2.3.4')
58
+ o1 = described_class.new(opts1)
59
+ o2 = described_class.new(opts2)
60
+ expect(o1).to be == o2
61
+ end
62
+
63
+ it "returns false when compared to differently configured event" do
64
+ opts1 = ipv4_opts.dup
65
+ opts1[:ipv4] = IP::V4.parse('1.2.3.4')
66
+ opts2 = ipv4_opts.dup
67
+ opts2[:ipv4] = IP::V4.parse('8.8.8.8')
68
+ o1 = described_class.new(opts1)
69
+ o2 = described_class.new(opts2)
70
+ expect(o1).not_to be == o2
71
+ end
72
+ end
73
+
74
+ end
75
+
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+ require 'threatinator/model/observables/url_collection'
3
+ require 'addressable/uri'
4
+
5
+ describe Threatinator::Model::Observables::UrlCollection do
6
+ it_behaves_like "a model collection" do
7
+ def generate_ten_valid_members
8
+ ret = []
9
+ 1.upto(10) do |i|
10
+ ret << ::Addressable::URI.parse("http://foobar#{i}.com")
11
+ end
12
+ ret
13
+ end
14
+
15
+ def generate_invalid_members
16
+ [
17
+ 1234,
18
+ :foobar,
19
+ 'http://yahoo.com',
20
+ ::Addressable::URI.parse('/foo/bar')
21
+ ]
22
+ end
23
+ end
24
+
25
+ let(:collection) { described_class.new }
26
+
27
+ describe "#valid_member?(v)" do
28
+ it "returns true when an absolute Addressable::URI" do
29
+ url = Addressable::URI.parse('http://yahoo.com')
30
+ expect(collection.valid_member?(url)).to eq(true)
31
+ end
32
+
33
+ it "returns false when the Addressable::URI is relative" do
34
+ url = Addressable::URI.parse('/foo/bar')
35
+ expect(collection.valid_member?(url)).to eq(false)
36
+ end
37
+
38
+ it "returns false when not an Addressable::URI" do
39
+ expect(collection.valid_member?('http://yahoo.com')).to eq(false)
40
+ expect(collection.valid_member?(:foobar)).to eq(false)
41
+ expect(collection.valid_member?(nil)).to eq(false)
42
+ end
43
+ end
44
+ end
45
+
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+ require 'threatinator/model/validations/type'
3
+
4
+ describe Threatinator::Model::Validations::TypeValidator do
5
+ before :each do
6
+ module Examples
7
+ class Person
8
+ include ActiveModel::Validations
9
+ include Threatinator::Model::Validations
10
+ attr_accessor :name, :age
11
+ end
12
+ end
13
+ end
14
+
15
+ after :each do
16
+ Examples::Person.clear_validators!
17
+ end
18
+
19
+ it "validates that the value is an instance of the class specified by :type" do
20
+ Examples::Person.validates :name, type: String
21
+ person = Examples::Person.new
22
+ expect(person).not_to be_valid
23
+
24
+ person.name = :asdf
25
+ expect(person).not_to be_valid
26
+
27
+ person.name = "Mike"
28
+ expect(person).to be_valid
29
+
30
+ Examples::Person.validates :age, type: Integer
31
+ expect(person).not_to be_valid
32
+ person.age = :eight
33
+ expect(person).not_to be_valid
34
+ person.age = 8
35
+ expect(person).to be_valid
36
+ end
37
+ end
@@ -24,7 +24,8 @@ describe Threatinator::Plugins::Output::Csv do
24
24
  ret << build(:event, feed_provider: "my_prov#{i}",
25
25
  feed_name: "my_name#{i}", type: :scanning,
26
26
  ipv4s: ["#{i}.1.1.1","#{i}.1.1.2","#{i}.1.1.3","#{i}.1.1.4","#{i}.1.1.5"],
27
- fqdns: ["a#{i}.com","b#{i}.com","c#{i}.com","d#{i}.com","e#{i}.com"]
27
+ fqdns: ["a#{i}.com","b#{i}.com","c#{i}.com","d#{i}.com","e#{i}.com"],
28
+ urls: ["http://a#{i}.com","http://b#{i}.com","http://c#{i}.com","http://d#{i}.com","http://e#{i}.com"],
28
29
  )
29
30
  end
30
31
  ret
@@ -33,13 +34,13 @@ describe Threatinator::Plugins::Output::Csv do
33
34
 
34
35
  describe "the header" do
35
36
  subject { lines.first }
36
- it { is_expected.to eq("provider,feed_name,type,ipv4_1,ipv4_2,ipv4_3,ipv4_4,fqdn_1,fqdn_2,fqdn_3,fqdn_4\n") }
37
+ it { is_expected.to eq("provider,feed_name,type,ipv4_1,ipv4_2,ipv4_3,ipv4_4,fqdn_1,fqdn_2,fqdn_3,fqdn_4,url_1,url_2,url_3,url_4\n") }
37
38
  end
38
39
 
39
40
  it "outputs each event, limited to the first four IPs and four fqdns" do
40
41
  line2 = lines[1]
41
42
  1.upto(10) do |i|
42
- expect(lines[i]).to eq("my_prov#{i},my_name#{i},scanning,#{i}.1.1.1,#{i}.1.1.2,#{i}.1.1.3,#{i}.1.1.4,a#{i}.com,b#{i}.com,c#{i}.com,d#{i}.com\n")
43
+ expect(lines[i]).to eq("my_prov#{i},my_name#{i},scanning,#{i}.1.1.1,#{i}.1.1.2,#{i}.1.1.3,#{i}.1.1.4,a#{i}.com,b#{i}.com,c#{i}.com,d#{i}.com,http://a#{i}.com,http://b#{i}.com,http://c#{i}.com,http://d#{i}.com\n")
43
44
  end
44
45
  end
45
46
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: threatinator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Ryan
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-05 00:00:00.000000000 Z
12
+ date: 2014-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: typhoeus
@@ -17,70 +17,140 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '0.6'
20
+ version: 0.6.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '0.6'
27
+ version: 0.6.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: nokogiri
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '1.6'
34
+ version: 1.6.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '1.6'
41
+ version: 1.6.0
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: docile
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '1.1'
48
+ version: 1.1.0
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '1.1'
55
+ version: 1.1.0
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: virtus
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '1.0'
62
+ version: 1.0.0
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '1.0'
69
+ version: 1.0.0
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: gli
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '2.12'
76
+ version: 2.12.0
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '2.12'
83
+ version: 2.12.0
84
+ - !ruby/object:Gem::Dependency
85
+ name: activemodel
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '4.0'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '4.0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: equalizer
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">"
103
+ - !ruby/object:Gem::Version
104
+ version: 0.0.0
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">"
110
+ - !ruby/object:Gem::Version
111
+ version: 0.0.0
112
+ - !ruby/object:Gem::Dependency
113
+ name: addressable
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: 2.3.0
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: 2.3.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: log4r
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: 1.1.10
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: 1.1.10
140
+ - !ruby/object:Gem::Dependency
141
+ name: ruby-ip
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: 0.9.3
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: 0.9.3
84
154
  - !ruby/object:Gem::Dependency
85
155
  name: oj
86
156
  requirement: !ruby/object:Gem::Requirement
@@ -101,28 +171,28 @@ dependencies:
101
171
  requirements:
102
172
  - - "~>"
103
173
  - !ruby/object:Gem::Version
104
- version: '2'
174
+ version: '2.0'
105
175
  type: :development
106
176
  prerelease: false
107
177
  version_requirements: !ruby/object:Gem::Requirement
108
178
  requirements:
109
179
  - - "~>"
110
180
  - !ruby/object:Gem::Version
111
- version: '2'
181
+ version: '2.0'
112
182
  - !ruby/object:Gem::Dependency
113
183
  name: pry
114
184
  requirement: !ruby/object:Gem::Requirement
115
185
  requirements:
116
186
  - - "~>"
117
187
  - !ruby/object:Gem::Version
118
- version: '0.10'
188
+ version: 0.10.0
119
189
  type: :development
120
190
  prerelease: false
121
191
  version_requirements: !ruby/object:Gem::Requirement
122
192
  requirements:
123
193
  - - "~>"
124
194
  - !ruby/object:Gem::Version
125
- version: '0.10'
195
+ version: 0.10.0
126
196
  description: Threatinator is a library and tool for parsing threat data feeds.
127
197
  email: falter@gmail.com
128
198
  executables:
@@ -140,11 +210,18 @@ files:
140
210
  - Rakefile
141
211
  - VERSION
142
212
  - bin/threatinator
213
+ - feeds/ET_block-ip_reputation.feed
143
214
  - feeds/ET_compromised-ip_reputation.feed
215
+ - feeds/ET_openbadlist-ip_reputation.feed
144
216
  - feeds/alienvault-ip_reputation.feed
145
217
  - feeds/arbor_fastflux-domain_reputation.feed
146
218
  - feeds/arbor_ssh-ip_reputation.feed
147
219
  - feeds/autoshun_shunlist.feed
220
+ - feeds/bambenek_c2_masterlist-domain_reputation.feed
221
+ - feeds/bambenek_c2_masterlist-ip_reputation.feed
222
+ - feeds/bambenek_dga_feed-domain_reputation.feed
223
+ - feeds/berkeley-ip_reputation.feed
224
+ - feeds/bitcash_cz_blacklist.feed
148
225
  - feeds/blocklist_de_apache-ip_reputation.feed
149
226
  - feeds/blocklist_de_bots-ip_reputation.feed
150
227
  - feeds/blocklist_de_ftp-ip_reputation.feed
@@ -154,27 +231,55 @@ files:
154
231
  - feeds/blocklist_de_sip-ip_reputation.feed
155
232
  - feeds/blocklist_de_ssh-ip_reputation.feed
156
233
  - feeds/blocklist_de_strongips-ip_reputation.feed
234
+ - feeds/botscout-ip_reputation.feed
235
+ - feeds/cert_mxpoison-ip_reputation.feed
236
+ - feeds/chaosreigns-ip_reputation.feed
157
237
  - feeds/ciarmy-ip_reputation.feed
158
238
  - feeds/cruzit-ip_reputation.feed
239
+ - feeds/cydef_torexit-ip_reputation.feed
159
240
  - feeds/dan_me_uk_torlist-ip_reputation.feed
241
+ - feeds/danger_bruteforce-ip_reputation.feed
160
242
  - feeds/dshield_attackers-top1000.feed
243
+ - feeds/falconcrest-ip_reputation.feed
161
244
  - feeds/feodo-domain_reputation.feed
162
245
  - feeds/feodo-ip_reputation.feed
246
+ - feeds/h3x_asprox.feed
247
+ - feeds/hosts-file_hphostspartial-domain_reputation.feed
163
248
  - feeds/infiltrated-ip_reputation.feed
249
+ - feeds/infiltrated_vabl-ip_reputation.feed
250
+ - feeds/isc_suspicious_high-domain_reputation.feed
251
+ - feeds/isc_suspicious_low-domain_reputation.feed
252
+ - feeds/isc_suspicious_medium-domain_reputation.feed
164
253
  - feeds/malc0de-domain_reputation.feed
165
254
  - feeds/malc0de-ip_reputation.feed
255
+ - feeds/malwaredomainlist-url_reputation.feed
256
+ - feeds/malwaredomains-domain_reputation.feed
257
+ - feeds/malwaredomains_dyndns-domain_reputation.feed
258
+ - feeds/malwaredomains_justdomains-domain_reputation.feed
166
259
  - feeds/mirc-domain_reputation.feed
260
+ - feeds/multiproxy-ip_reputation.feed
167
261
  - feeds/nothink_irc-ip_reputation.feed
168
262
  - feeds/nothink_ssh-ip_reputation.feed
169
263
  - feeds/openbl-ip_reputation.feed
264
+ - feeds/openphish-url_reputation.feed
265
+ - feeds/packetmail_perimeterbad-ip_reputation.feed
170
266
  - feeds/palevo-domain_reputation.feed
171
267
  - feeds/palevo-ip_reputation.feed
172
268
  - feeds/phishtank.feed
269
+ - feeds/sigmaproject_atma.feed
270
+ - feeds/sigmaproject_spyware.feed
271
+ - feeds/sigmaproject_webexploit.feed
272
+ - feeds/snort_bpf-ip_reputation.feed
173
273
  - feeds/spyeye-domain_reputation.feed
174
274
  - feeds/spyeye-ip_reputation.feed
275
+ - feeds/steeman-ip_reputation.feed
175
276
  - feeds/t-arend-de_ssh-ip_reputation.feed
176
277
  - feeds/the_haleys_ssh-ip_reputation.feed
278
+ - feeds/trustedsec-ip_reputation.feed
279
+ - feeds/virbl-ip_reputation.feed
280
+ - feeds/vxvault-url_reputation.feed
177
281
  - feeds/yourcmc_ssh-ip_reputation.feed
282
+ - feeds/yoyo_adservers-domain_reputation.feed
178
283
  - feeds/zeus-domain_reputation.feed
179
284
  - feeds/zeus-ip_reputation.feed
180
285
  - lib/threatinator.rb
@@ -187,6 +292,7 @@ files:
187
292
  - lib/threatinator/actions/run/config.rb
188
293
  - lib/threatinator/actions/run/coverage_observer.rb
189
294
  - lib/threatinator/actions/run/output_config.rb
295
+ - lib/threatinator/actions/run/status_observer.rb
190
296
  - lib/threatinator/cli.rb
191
297
  - lib/threatinator/cli/action_builder.rb
192
298
  - lib/threatinator/cli/list_action_builder.rb
@@ -195,6 +301,7 @@ files:
195
301
  - lib/threatinator/config.rb
196
302
  - lib/threatinator/config/base.rb
197
303
  - lib/threatinator/config/feed_search.rb
304
+ - lib/threatinator/config/logger.rb
198
305
  - lib/threatinator/decoder.rb
199
306
  - lib/threatinator/decoders/gzip.rb
200
307
  - lib/threatinator/event.rb
@@ -210,6 +317,16 @@ files:
210
317
  - lib/threatinator/filters/block.rb
211
318
  - lib/threatinator/filters/comments.rb
212
319
  - lib/threatinator/filters/whitespace.rb
320
+ - lib/threatinator/logger.rb
321
+ - lib/threatinator/logging.rb
322
+ - lib/threatinator/model/base.rb
323
+ - lib/threatinator/model/collection.rb
324
+ - lib/threatinator/model/observables/fqdn_collection.rb
325
+ - lib/threatinator/model/observables/ipv4.rb
326
+ - lib/threatinator/model/observables/ipv4_collection.rb
327
+ - lib/threatinator/model/observables/url_collection.rb
328
+ - lib/threatinator/model/validations.rb
329
+ - lib/threatinator/model/validations/type.rb
213
330
  - lib/threatinator/output.rb
214
331
  - lib/threatinator/parser.rb
215
332
  - lib/threatinator/parsers/csv.rb
@@ -232,15 +349,21 @@ files:
232
349
  - lib/threatinator/plugins/output/csv.rb
233
350
  - lib/threatinator/plugins/output/null.rb
234
351
  - lib/threatinator/plugins/output/rubydebug.rb
235
- - lib/threatinator/property_definer.rb
236
352
  - lib/threatinator/record.rb
237
353
  - lib/threatinator/registry.rb
238
354
  - lib/threatinator/util.rb
355
+ - spec/feeds/ET_block-ip_reputation_spec.rb
239
356
  - spec/feeds/ET_compromised-ip_reputation_spec.rb
357
+ - spec/feeds/ET_openbadlist-ip_reputation_spec.rb
240
358
  - spec/feeds/alienvault-ip_reputation_spec.rb
241
359
  - spec/feeds/arbor_fastflux-domain_reputation_spec.rb
242
360
  - spec/feeds/arbor_ssh-ip_reputation_spec.rb
243
361
  - spec/feeds/autoshun_shunlist_spec.rb
362
+ - spec/feeds/bambenek_c2_masterlist-domain_reputation_spec.rb
363
+ - spec/feeds/bambenek_c2_masterlist-ip_reputation_spec.rb
364
+ - spec/feeds/bambenek_dga_feed-domain_reputation_spec.rb
365
+ - spec/feeds/berkeley-ip_reputation_spec.rb
366
+ - spec/feeds/bitcash_cz_blacklist-ip_reputation_spec.rb
244
367
  - spec/feeds/blocklist_de_apache-ip_reputation_spec.rb
245
368
  - spec/feeds/blocklist_de_bots-ip_reputation_spec.rb
246
369
  - spec/feeds/blocklist_de_ftp-ip_reputation_spec.rb
@@ -250,14 +373,26 @@ files:
250
373
  - spec/feeds/blocklist_de_sip-ip_reputation_spec.rb
251
374
  - spec/feeds/blocklist_de_ssh-ip_reputation_spec.rb
252
375
  - spec/feeds/blocklist_de_strongips-ip_reputation_spec.rb
376
+ - spec/feeds/botscout-ip_reputation_spec.rb
377
+ - spec/feeds/cert_mxpoison-ip_reputation_spec.rb
378
+ - spec/feeds/chaosreigns-ip_reputation_spec.rb
253
379
  - spec/feeds/ciarmy-ip_reputation_spec.rb
254
380
  - spec/feeds/cruzit-ip_reputation_spec.rb
381
+ - spec/feeds/cydef_torexit-ip_reputation_spec.rb
255
382
  - spec/feeds/dan_me_uk_torlist-ip_reputation_spec.rb
383
+ - spec/feeds/danger_bruteforce-ip_reputation_spec.rb
384
+ - spec/feeds/data/ET_block-ip_reputation.txt
256
385
  - spec/feeds/data/ET_compromised-ip_reputation.txt
386
+ - spec/feeds/data/ET_openbadlist-ip_reputation.txt
257
387
  - spec/feeds/data/alienvault-ip_reputation.txt
258
388
  - spec/feeds/data/arbor_domainlist.txt
259
389
  - spec/feeds/data/arbor_ssh.txt
260
390
  - spec/feeds/data/autoshun_shunlist.csv
391
+ - spec/feeds/data/bambenek_c2-dommasterlist.csv
392
+ - spec/feeds/data/bambenek_c2-ipmasterlist.csv
393
+ - spec/feeds/data/bambenek_dga_feed.csv
394
+ - spec/feeds/data/berkeley.txt
395
+ - spec/feeds/data/bitcash_cz_blacklist.txt
261
396
  - spec/feeds/data/blocklist_de_apache-ip-reputation.txt
262
397
  - spec/feeds/data/blocklist_de_bots-ip-reputation.txt
263
398
  - spec/feeds/data/blocklist_de_ftp-ip-reputation.txt
@@ -267,47 +402,98 @@ files:
267
402
  - spec/feeds/data/blocklist_de_sip-ip-reputation.txt
268
403
  - spec/feeds/data/blocklist_de_ssh-ip-reputation.txt
269
404
  - spec/feeds/data/blocklist_de_strongips-ip-reputation.txt
405
+ - spec/feeds/data/botscout-ip-reputation.txt
406
+ - spec/feeds/data/cert_mxpoison-ip_reputation.txt
407
+ - spec/feeds/data/chaosreigns-ip-reputation.txt
270
408
  - spec/feeds/data/ciarmy-ip-reputation.txt
271
409
  - spec/feeds/data/cruzit-ip-reputation.txt
410
+ - spec/feeds/data/cydef_torexit-ip_reputation.txt
272
411
  - spec/feeds/data/dan_me_uk_torlist-ip-reputation.txt
412
+ - spec/feeds/data/danger_bruteforce-ip_reputation.txt
273
413
  - spec/feeds/data/dshield_topattackers.xml
414
+ - spec/feeds/data/falconcrest_iplist.txt
274
415
  - spec/feeds/data/feodo_domainlist.txt
275
416
  - spec/feeds/data/feodo_iplist.txt
417
+ - spec/feeds/data/h3x_asprox.txt
418
+ - spec/feeds/data/hosts-file_hphostspartial_domainlist.txt
276
419
  - spec/feeds/data/infiltrated_iplist.txt
420
+ - spec/feeds/data/infiltrated_vabl_iplist.txt
421
+ - spec/feeds/data/isc_suspicious_high_domainlist.txt
422
+ - spec/feeds/data/isc_suspicious_low_domainlist.txt
423
+ - spec/feeds/data/isc_suspicious_medium_domainlist.txt
277
424
  - spec/feeds/data/malc0de_domainlist.txt
278
425
  - spec/feeds/data/malc0de_iplist.txt
426
+ - spec/feeds/data/malwaredomainlist-url-reputation.txt
427
+ - spec/feeds/data/malwaredomains_domainlist.txt
428
+ - spec/feeds/data/malwaredomains_dyndns_domainlist.txt
429
+ - spec/feeds/data/malwaredomains_justdomains_domainlist.txt
279
430
  - spec/feeds/data/mirc_domainlist.txt
431
+ - spec/feeds/data/multiproxy_iplist.txt
280
432
  - spec/feeds/data/nothink_irc_iplist.txt
281
433
  - spec/feeds/data/nothink_ssh_iplist.txt
282
434
  - spec/feeds/data/openbl_iplist.txt
435
+ - spec/feeds/data/openphish-url-reputation.txt
436
+ - spec/feeds/data/packetmail_perimeterbad-ip_reputation.txt
283
437
  - spec/feeds/data/palevo_domainlist.txt
284
438
  - spec/feeds/data/palevo_iplist.txt
285
439
  - spec/feeds/data/phishtank-sample.json.gz
440
+ - spec/feeds/data/sigmaproject_atma.return.gz
441
+ - spec/feeds/data/sigmaproject_spyware.return.gz
442
+ - spec/feeds/data/sigmaproject_webexploit.return.gz
443
+ - spec/feeds/data/snort_bpf-ip_reputation.txt
286
444
  - spec/feeds/data/spyeye_domainlist.txt
287
445
  - spec/feeds/data/spyeye_iplist.txt
446
+ - spec/feeds/data/steeman-ip-reputation.txt
288
447
  - spec/feeds/data/t-arend-de_ssh_iplist.txt
289
448
  - spec/feeds/data/the_haleys_ssh_iplist.txt
449
+ - spec/feeds/data/trustedsec-ip-reputation.txt
450
+ - spec/feeds/data/virbl-ip_reputation.txt
451
+ - spec/feeds/data/vxvault-url-reputation.txt
290
452
  - spec/feeds/data/yourcmc_ssh-ip_reputation.txt
453
+ - spec/feeds/data/yoyo_adservers.txt
291
454
  - spec/feeds/data/zeus-ip_reputation.txt
292
455
  - spec/feeds/data/zeus_domainlist.txt
293
456
  - spec/feeds/dshield_attackers-top1000_spec.rb
457
+ - spec/feeds/falconcrest-ip_reputation_spec.rb
294
458
  - spec/feeds/feodo-domain_reputation_spec.rb
295
459
  - spec/feeds/feodo-ip_reputation_spec.rb
460
+ - spec/feeds/h3x_asprox-ip_reputation_spec.rb
461
+ - spec/feeds/hosts-file_hphostspartial-domain_reputation_spec.rb
296
462
  - spec/feeds/infiltrated-ip_reputation_spec.rb
463
+ - spec/feeds/infiltrated_vabl-ip_reputation_spec.rb
464
+ - spec/feeds/isc_suspicious_high-domain_reputation_spec.rb
465
+ - spec/feeds/isc_suspicious_low-domain_reputation_spec.rb
466
+ - spec/feeds/isc_suspicious_medium-domain_reputation_spec.rb
297
467
  - spec/feeds/malc0de-domain_reputation_spec.rb
298
468
  - spec/feeds/malc0de-ip_reputation_spec.rb
469
+ - spec/feeds/malwaredomainlist_url_reputation_spec.rb
470
+ - spec/feeds/malwaredomains-domain_reputation_spec.rb
471
+ - spec/feeds/malwaredomains_dyndns-domain_reputation_spec.rb
472
+ - spec/feeds/malwaredomains_justdomains-domain_reputation_spec.rb
299
473
  - spec/feeds/mirc-domain_reputation_spec.rb
474
+ - spec/feeds/multiproxy-ip_reputation_spec.rb
300
475
  - spec/feeds/nothink_irc-ip_reputation_spec.rb
301
476
  - spec/feeds/nothink_ssh-ip_reputation_spec.rb
302
477
  - spec/feeds/openbl-ip_reputation_spec.rb
478
+ - spec/feeds/openphish_url_reputation_spec.rb
479
+ - spec/feeds/packetmail_perimeterbad-ip_reputation_spec.rb
303
480
  - spec/feeds/palevo-domain_reputation_spec.rb
304
481
  - spec/feeds/palevo-ip_reputation_spec.rb
305
482
  - spec/feeds/phishtank_spec.rb
483
+ - spec/feeds/sigmaproject_atma_spec.rb
484
+ - spec/feeds/sigmaproject_spyware_spec.rb
485
+ - spec/feeds/sigmaproject_webexploit_spec.rb
486
+ - spec/feeds/snort_bpf-ip_reputation_spec.rb
306
487
  - spec/feeds/spyeye-domain_reputation_spec.rb
307
488
  - spec/feeds/spyeye-ip_reputation_spec.rb
489
+ - spec/feeds/steeman-ip_reputation_spec.rb
308
490
  - spec/feeds/t-arend-de_ssh-ip_reputation_spec.rb
309
491
  - spec/feeds/the_haleys_ssh-ip_reputation_spec.rb
492
+ - spec/feeds/trustedsec-ip_reputation_spec.rb
493
+ - spec/feeds/virbl-ip_reputation_spec.rb
494
+ - spec/feeds/vxvault_url_reputation_spec.rb
310
495
  - spec/feeds/yourcmc_ssh-ip_reputation_spec.rb
496
+ - spec/feeds/yoyo_adservers_spec.rb
311
497
  - spec/feeds/zeus-domain_reputation_spec.rb
312
498
  - spec/feeds/zeus-ip_reputation_spec.rb
313
499
  - spec/fixtures/feed/provider1/feed1.feed
@@ -331,17 +517,21 @@ files:
331
517
  - spec/support/factories/feed.rb
332
518
  - spec/support/factories/feed_builder.rb
333
519
  - spec/support/factories/feed_registry.rb
520
+ - spec/support/factories/ipv4.rb
334
521
  - spec/support/factories/output.rb
335
522
  - spec/support/factories/record.rb
523
+ - spec/support/factories/url.rb
336
524
  - spec/support/factories/xml_node.rb
337
525
  - spec/support/helpers/io.rb
338
526
  - spec/support/helpers/models.rb
339
527
  - spec/support/shared/action_builder.rb
340
528
  - spec/support/shared/decoder.rb
529
+ - spec/support/shared/feed_runner_observer.rb
341
530
  - spec/support/shared/feeds.rb
342
531
  - spec/support/shared/fetcher.rb
343
532
  - spec/support/shared/filter.rb
344
533
  - spec/support/shared/io-like.rb
534
+ - spec/support/shared/model/collection.rb
345
535
  - spec/support/shared/output.rb
346
536
  - spec/support/shared/parsers.rb
347
537
  - spec/support/shared/record.rb
@@ -350,6 +540,7 @@ files:
350
540
  - spec/threatinator/actions/run/config_spec.rb
351
541
  - spec/threatinator/actions/run/coverage_observer_spec.rb
352
542
  - spec/threatinator/actions/run/output_config_spec.rb
543
+ - spec/threatinator/actions/run/status_observer_spec.rb
353
544
  - spec/threatinator/cli/list_action_builder_spec.rb
354
545
  - spec/threatinator/cli/run_action_builder_spec.rb
355
546
  - spec/threatinator/cli_spec.rb
@@ -358,6 +549,7 @@ files:
358
549
  - spec/threatinator/decoders/gzip_spec.rb
359
550
  - spec/threatinator/event_builder_spec.rb
360
551
  - spec/threatinator/event_spec.rb
552
+ - spec/threatinator/event_spec.rb.new
361
553
  - spec/threatinator/feed_builder_spec.rb
362
554
  - spec/threatinator/feed_registry_spec.rb
363
555
  - spec/threatinator/feed_runner_spec.rb
@@ -368,6 +560,12 @@ files:
368
560
  - spec/threatinator/filters/block_spec.rb
369
561
  - spec/threatinator/filters/comments_spec.rb
370
562
  - spec/threatinator/filters/whitespace_spec.rb
563
+ - spec/threatinator/logger_spec.rb
564
+ - spec/threatinator/model/observables/fqdn_collection_spec.rb
565
+ - spec/threatinator/model/observables/ipv4_collection_spec.rb
566
+ - spec/threatinator/model/observables/ipv4_spec.rb
567
+ - spec/threatinator/model/observables/url_collection_spec.rb
568
+ - spec/threatinator/model/validations/type_spec.rb
371
569
  - spec/threatinator/parser_spec.rb
372
570
  - spec/threatinator/parsers/csv/parser_spec.rb
373
571
  - spec/threatinator/parsers/getline/parser_spec.rb
@@ -382,7 +580,6 @@ files:
382
580
  - spec/threatinator/plugins/output/csv_spec.rb
383
581
  - spec/threatinator/plugins/output/null_spec.rb
384
582
  - spec/threatinator/plugins/output/rubydebug_spec.rb
385
- - spec/threatinator/property_definer_spec.rb
386
583
  - spec/threatinator/record_spec.rb
387
584
  - spec/threatinator/registry_spec.rb
388
585
  - spec/threatinator/runner_spec.rb
@@ -406,7 +603,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
406
603
  version: '0'
407
604
  requirements: []
408
605
  rubyforge_project:
409
- rubygems_version: 2.2.0
606
+ rubygems_version: 2.2.2
410
607
  signing_key:
411
608
  specification_version: 4
412
609
  summary: Threatinator is a library and tool for parsing threat data feeds.