mihari 7.6.0 → 7.6.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aa05d5cca592eb276667bc95e7c7a88c12be39bb547ffb4f3bac810f9e5a72a6
4
- data.tar.gz: 81a9a73171dbb4c5171893cb23cc47963fcfef38d441cfebd37005e6e6dc6202
3
+ metadata.gz: 2fd0c07fe2661f57d6db5b409c527789c5e17d23e7691d5ac241ff5b36a20698
4
+ data.tar.gz: d7f2a832b3cb364aca8bdfad71cf762f72dc707892d2697ef8bb272bcb794b1d
5
5
  SHA512:
6
- metadata.gz: d6623c5441e14cf967987c2341349e9973922fdb18dc5d9c3473bcc8fbc7aaf813f9a48c8384331e49a4ada370ebd270d3cd68cbc7dcc6481f1bb886b0923109
7
- data.tar.gz: 0d112b4740054b7afe79effff48016b8549bf6ef45b337ba43b44fba13f162f7cc8b5f2bfe653bfacf4bb356c2f1b32c7a5964be174d028b877372d642aedfea
6
+ metadata.gz: 39c5c92cf79721ed6d98b09a63a3d609eab8e8da9ba5badb1cd1a9f01fcb04d8f11edaa3b50fd7e0aed6dcb44f7befb77166e9bbf8399bac4d6592eafd943763
7
+ data.tar.gz: 7c06bd2ca9616605aa9601d198a413529f92205861dcafbfd86e84fa5bca6e2344d42ef558f27ee4c358f09778679fdaa2018954a6d34bfa534f2a3fa155042d
@@ -35,5 +35,6 @@
35
35
  (env/set "THEHIVE_API_KEY" ())
36
36
  (env/set "THEHIVE_URL" ())
37
37
  (env/set "URLSCAN_API_KEY" ())
38
+ (env/set "VALIDIN_API_KEY" ())
38
39
  (env/set "VIRUSTOTAL_API_KEY" ())
39
40
  (env/set "ZOOMEYE_API_KEY" ())
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "mihari/clients/validin"
4
+
5
+ module Mihari
6
+ module Analyzers
7
+ #
8
+ # Validin analyzer
9
+ #
10
+ class Validin < Base
11
+ include Concerns::Refangable
12
+
13
+ # @return [String, nil]
14
+ attr_reader :type
15
+
16
+ # @return [String, nil]
17
+ attr_reader :username
18
+
19
+ # @return [String, nil]
20
+ attr_reader :api_key
21
+
22
+ #
23
+ # @param [String] query
24
+ # @param [Hash, nil] options
25
+ # @param [String, nil] api_key
26
+ #
27
+ def initialize(query, options: nil, api_key: nil)
28
+ super(refang(query), options:)
29
+
30
+ @type = DataType.type(query)
31
+
32
+ @api_key = api_key || Mihari.config.validin_api_key
33
+ end
34
+
35
+ def artifacts
36
+ case type
37
+ when "domain"
38
+ dns_history_search
39
+ when "ip"
40
+ reverse_ip_search
41
+ else
42
+ raise ValueError, "#{query}(type: #{type || "unknown"}) is not supported." unless valid_type?
43
+ end
44
+ end
45
+
46
+ private
47
+
48
+ def dns_history_search
49
+ res = client.dns_history_search(query)
50
+ (res.dig("records", "A") || []).filter_map do |r|
51
+ r["value"]
52
+ end
53
+ end
54
+
55
+ def reverse_ip_search
56
+ res = client.dns_history_search(query)
57
+ (res.dig("records", "A") || []).filter_map do |r|
58
+ r["value"]
59
+ end
60
+ end
61
+
62
+ def client
63
+ Clients::Validin.new(api_key:, timeout:)
64
+ end
65
+
66
+ #
67
+ # Check whether a type is valid or not
68
+ #
69
+ # @return [Boolean]
70
+ #
71
+ def valid_type?
72
+ %w[ip domain].include? type
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mihari
4
+ module Clients
5
+ #
6
+ # Validin API client
7
+ #
8
+ class Validin < Base
9
+ #
10
+ # @param [String] base_url
11
+ # @param [String, nil] api_key
12
+ # @param [Hash] headers
13
+ # @param [Integer, nil] timeout
14
+ #
15
+ def initialize(
16
+ base_url = "https://app.validin.com",
17
+ api_key:,
18
+ headers: {},
19
+ timeout: nil
20
+ )
21
+ raise(ArgumentError, "api_key is required") if api_key.nil?
22
+
23
+ headers["Authorization"] = "Bearer #{api_key}"
24
+
25
+ super(base_url, headers:, timeout:)
26
+ end
27
+
28
+ #
29
+ # @param [String] domain
30
+ #
31
+ # @return [Hash]
32
+ #
33
+ def dns_history_search(domain)
34
+ get_json "/api/axon/domain/dns/history/#{domain}/A"
35
+ end
36
+
37
+ #
38
+ # @param [String] ip
39
+ #
40
+ # @return [Hash]
41
+ #
42
+ def search_reverse_ip(ip)
43
+ get_json "/api/axon/ip/dns/history/#{ip}"
44
+ end
45
+ end
46
+ end
47
+ end
data/lib/mihari/config.rb CHANGED
@@ -33,6 +33,7 @@ module Mihari
33
33
  thehive_api_key: nil,
34
34
  thehive_url: nil,
35
35
  urlscan_api_key: nil,
36
+ validin_api_key: nil,
36
37
  virustotal_api_key: nil,
37
38
  yeti_api_key: nil,
38
39
  yeti_url: nil,
@@ -122,6 +123,9 @@ module Mihari
122
123
  # @!attribute [r] urlscan_api_key
123
124
  # @return [String, nil]
124
125
 
126
+ # @!attribute [r] validin_api_key
127
+ # @return [String, nil]
128
+
125
129
  # @!attribute [r] virustotal_api_key
126
130
  # @return [String, nil]
127
131
 
@@ -15,6 +15,7 @@ module Mihari
15
15
  Mihari::Analyzers::Onyphe.keys,
16
16
  Mihari::Analyzers::Shodan.keys,
17
17
  Mihari::Analyzers::Urlscan.keys,
18
+ Mihari::Analyzers::Validin.keys,
18
19
  Mihari::Analyzers::VirusTotalIntelligence.keys
19
20
  ].each do |keys|
20
21
  key = keys.first
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mihari
4
- VERSION = "7.6.0"
4
+ VERSION = "7.6.1"
5
5
  end
data/lib/mihari.rb CHANGED
@@ -268,6 +268,7 @@ require "mihari/analyzers/pulsedive"
268
268
  require "mihari/analyzers/securitytrails"
269
269
  require "mihari/analyzers/shodan"
270
270
  require "mihari/analyzers/urlscan"
271
+ require "mihari/analyzers/validin"
271
272
  require "mihari/analyzers/virustotal_intelligence"
272
273
  require "mihari/analyzers/virustotal"
273
274
  require "mihari/analyzers/zoomeye"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mihari
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.6.0
4
+ version: 7.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manabu Niseki
@@ -1062,6 +1062,7 @@ files:
1062
1062
  - lib/mihari/analyzers/securitytrails.rb
1063
1063
  - lib/mihari/analyzers/shodan.rb
1064
1064
  - lib/mihari/analyzers/urlscan.rb
1065
+ - lib/mihari/analyzers/validin.rb
1065
1066
  - lib/mihari/analyzers/virustotal.rb
1066
1067
  - lib/mihari/analyzers/virustotal_intelligence.rb
1067
1068
  - lib/mihari/analyzers/zoomeye.rb
@@ -1094,6 +1095,7 @@ files:
1094
1095
  - lib/mihari/clients/shodan_internet_db.rb
1095
1096
  - lib/mihari/clients/the_hive.rb
1096
1097
  - lib/mihari/clients/urlscan.rb
1098
+ - lib/mihari/clients/validin.rb
1097
1099
  - lib/mihari/clients/virustotal.rb
1098
1100
  - lib/mihari/clients/whois.rb
1099
1101
  - lib/mihari/clients/yeti.rb