Class: Mihari::Analyzers::VirusTotal
- Inherits:
-
Base
- Object
- Mihari::Actor
- Base
- Mihari::Analyzers::VirusTotal
- Includes:
- Concerns::Refangable
- Defined in:
- lib/mihari/analyzers/virustotal.rb
Overview
VirusTotal analyzer
Constant Summary
Constants included from Concerns::Retriable
Concerns::Retriable::DEFAULT_CONDITION, Concerns::Retriable::RETRIABLE_ERRORS
Instance Attribute Summary collapse
- #api_key ⇒ String? readonly
- #type ⇒ String readonly
Attributes inherited from Base
Attributes inherited from Mihari::Actor
Class Method Summary collapse
Instance Method Summary collapse
- #artifacts ⇒ Object
-
#initialize(query, options: nil, api_key: nil) ⇒ VirusTotal
constructor
A new instance of VirusTotal.
Methods included from Concerns::Refangable
Methods inherited from Base
#call, from_params, #ignore_error?, inherited, #normalized_artifacts, #pagination_interval, #pagination_limit, #parallel?, #result, #truncated_query
Methods inherited from Mihari::Actor
#call, configuration_keys, key, keys, #result, #retry_exponential_backoff, #retry_interval, #retry_times, #timeout, type, #validate_configuration!
Methods included from Concerns::Retriable
Methods included from Concerns::Configurable
#configuration_keys?, #configured?
Constructor Details
#initialize(query, options: nil, api_key: nil) ⇒ VirusTotal
Returns a new instance of VirusTotal.
22 23 24 25 26 27 28 |
# File 'lib/mihari/analyzers/virustotal.rb', line 22 def initialize(query, options: nil, api_key: nil) super(refang(query), options:) @type = DataType.type(query) @api_key = api_key || Mihari.config.virustotal_api_key end |
Instance Attribute Details
#api_key ⇒ String? (readonly)
15 16 17 |
# File 'lib/mihari/analyzers/virustotal.rb', line 15 def api_key @api_key end |
#type ⇒ String (readonly)
12 13 14 |
# File 'lib/mihari/analyzers/virustotal.rb', line 12 def type @type end |
Class Method Details
.key_aliases ⇒ Array<String>?
45 46 47 |
# File 'lib/mihari/analyzers/virustotal.rb', line 45 def key_aliases ["vt"] end |
Instance Method Details
#artifacts ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/mihari/analyzers/virustotal.rb', line 30 def artifacts case type when "domain" domain_search when "ip" ip_search else raise ValueError, "#{query}(type: #{type || "unknown"}) is not supported." unless valid_type? end end |