Class: Mihari::Analyzers::Censys

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

Overview

Censys 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

Instance Method Summary collapse

Methods inherited from Base

#call, from_params, #get_result, #ignore_error?, inherited, #normalized_artifacts, #pagination_interval, #pagination_limit, #parallel?, #truncated_query

Methods inherited from Mihari::Actor

#call, configuration_keys, #get_result, key, key_aliases, keys, #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?

Constructor Details

#initialize(query, version: nil, options: nil, id: nil, secret: nil, pat: nil, organization_id: nil) ⇒ Censys

Returns a new instance of Censys.



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mihari/analyzers/censys.rb', line 24

def initialize(query, version: nil, options: nil, id: nil, secret: nil, pat: nil, organization_id: nil)
  super(query, options:)

  @version = version || Mihari.config.censys_version

  # v2
  @id = id || Mihari.config.censys_id
  @secret = secret || Mihari.config.censys_secret
  # v3
  @pat = pat || Mihari.config.censys_pat
  @organization_id = organization_id || Mihari.config.censys_organization_id
end

Instance Attribute Details

#idString? (readonly)

Returns:

  • (String, nil)


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

def id
  @id
end

#organization_idString? (readonly)

Returns:

  • (String, nil)


19
20
21
# File 'lib/mihari/analyzers/censys.rb', line 19

def organization_id
  @organization_id
end

#patString? (readonly)

Returns:

  • (String, nil)


16
17
18
# File 'lib/mihari/analyzers/censys.rb', line 16

def pat
  @pat
end

#secretString? (readonly)

Returns:

  • (String, nil)


13
14
15
# File 'lib/mihari/analyzers/censys.rb', line 13

def secret
  @secret
end

#versionInteger? (readonly)

Returns:

  • (Integer, nil)


22
23
24
# File 'lib/mihari/analyzers/censys.rb', line 22

def version
  @version
end

Instance Method Details

#artifactsObject



37
38
39
40
41
# File 'lib/mihari/analyzers/censys.rb', line 37

def artifacts
  client.search_with_pagination(query, pagination_limit:).flat_map do |res|
    res.artifacts
  end.uniq(&:data)
end

#configured?Boolean

Returns:

  • (Boolean)


43
44
45
46
47
48
49
50
51
52
# File 'lib/mihari/analyzers/censys.rb', line 43

def configured?
  case version
  when 2
    v2_configured?
  when 3
    v3_configured?
  else
    false
  end
end