Class: Mihari::Analyzers::VirusTotalIntelligence

Inherits:
Base show all
Defined in:
lib/mihari/analyzers/virustotal_intelligence.rb

Overview

VirusTotal Intelligence analyzer

Constant Summary

Constants included from Concerns::Retriable

Concerns::Retriable::DEFAULT_CONDITION, Concerns::Retriable::RETRIABLE_ERRORS

Instance Attribute Summary collapse

Attributes inherited from Base

#query

Attributes inherited from Mihari::Actor

#options

Class Method Summary collapse

Instance Method Summary collapse

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, keys, #result, #retry_exponential_backoff, #retry_interval, #retry_times, #timeout, type, #validate_configuration!

Methods included from Concerns::Retriable

#retry_on_error

Methods included from Concerns::Configurable

#configuration_keys?, #configured?

Constructor Details

#initialize(query, options: nil, api_key: nil) ⇒ VirusTotalIntelligence

Returns a new instance of VirusTotalIntelligence.

Parameters:

  • query (String)
  • options (Hash, nll) (defaults to: nil)
  • api_key (String, nil) (defaults to: nil)


17
18
19
20
21
# File 'lib/mihari/analyzers/virustotal_intelligence.rb', line 17

def initialize(query, options: nil, api_key: nil)
  super(query, options:)

  @api_key = api_key || Mihari.config.virustotal_api_key
end

Instance Attribute Details

#api_keyString? (readonly)

Returns:

  • (String, nil)


10
11
12
# File 'lib/mihari/analyzers/virustotal_intelligence.rb', line 10

def api_key
  @api_key
end

Class Method Details

.configuration_keysArray<String>

Returns:

  • (Array<String>)


45
46
47
# File 'lib/mihari/analyzers/virustotal_intelligence.rb', line 45

def configuration_keys
  %w[virustotal_api_key]
end

.keyString

Returns:

  • (String)


31
32
33
# File 'lib/mihari/analyzers/virustotal_intelligence.rb', line 31

def key
  "virustotal_intelligence"
end

.key_aliasesArray<String>?

Returns:

  • (Array<String>, nil)


38
39
40
# File 'lib/mihari/analyzers/virustotal_intelligence.rb', line 38

def key_aliases
  ["vt_intel"]
end

Instance Method Details

#artifactsObject



23
24
25
# File 'lib/mihari/analyzers/virustotal_intelligence.rb', line 23

def artifacts
  client.intel_search_with_pagination(query, pagination_limit:).map(&:artifacts).flatten
end