Module: Mihari

Extended by:
Dry::Configurable, Memist::Memoizable
Defined in:
lib/mihari.rb,
lib/mihari/http.rb,
lib/mihari/types.rb,
lib/mihari/errors.rb,
lib/mihari/version.rb,
lib/mihari/web/api.rb,
lib/mihari/web/app.rb,
lib/mihari/cli/base.rb,
lib/mihari/cli/main.rb,
lib/mihari/cli/rule.rb,
lib/mihari/database.rb,
lib/mihari/constants.rb,
lib/mihari/models/cpe.rb,
lib/mihari/models/dns.rb,
lib/mihari/models/tag.rb,
lib/mihari/feed/parser.rb,
lib/mihari/feed/reader.rb,
lib/mihari/models/port.rb,
lib/mihari/models/rule.rb,
lib/mihari/cli/database.rb,
lib/mihari/commands/web.rb,
lib/mihari/entities/cpe.rb,
lib/mihari/entities/dns.rb,
lib/mihari/entities/tag.rb,
lib/mihari/models/alert.rb,
lib/mihari/models/whois.rb,
lib/mihari/schemas/rule.rb,
lib/mihari/structs/rule.rb,
lib/mihari/type_checker.rb,
lib/mihari/analyzers/otx.rb,
lib/mihari/commands/rule.rb,
lib/mihari/emitters/base.rb,
lib/mihari/emitters/misp.rb,
lib/mihari/entities/port.rb,
lib/mihari/entities/rule.rb,
lib/mihari/mixins/refang.rb,
lib/mihari/analyzers/base.rb,
lib/mihari/analyzers/feed.rb,
lib/mihari/analyzers/rule.rb,
lib/mihari/emitters/slack.rb,
lib/mihari/enrichers/base.rb,
lib/mihari/entities/alert.rb,
lib/mihari/entities/whois.rb,
lib/mihari/models/tagging.rb,
lib/mihari/structs/censys.rb,
lib/mihari/structs/config.rb,
lib/mihari/structs/ipinfo.rb,
lib/mihari/structs/onyphe.rb,
lib/mihari/structs/shodan.rb,
lib/mihari/analyzers/circl.rb,
lib/mihari/analyzers/crtsh.rb,
lib/mihari/enrichers/whois.rb,
lib/mihari/entities/config.rb,
lib/mihari/mixins/database.rb,
lib/mihari/models/artifact.rb,
lib/mihari/schemas/emitter.rb,
lib/mihari/structs/filters.rb,
lib/mihari/structs/urlscan.rb,
lib/mihari/analyzers/censys.rb,
lib/mihari/analyzers/onyphe.rb,
lib/mihari/analyzers/shodan.rb,
lib/mihari/commands/version.rb,
lib/mihari/emitters/webhook.rb,
lib/mihari/enrichers/ipinfo.rb,
lib/mihari/enrichers/shodan.rb,
lib/mihari/entities/message.rb,
lib/mihari/mixins/retriable.rb,
lib/mihari/schemas/analyzer.rb,
lib/mihari/schemas/enricher.rb,
lib/mihari/analyzers/dnpedia.rb,
lib/mihari/analyzers/urlscan.rb,
lib/mihari/analyzers/zoomeye.rb,
lib/mihari/commands/database.rb,
lib/mihari/commands/searcher.rb,
lib/mihari/emitters/database.rb,
lib/mihari/emitters/the_hive.rb,
lib/mihari/entities/artifact.rb,
lib/mihari/structs/greynoise.rb,
lib/mihari/models/geolocation.rb,
lib/mihari/models/reverse_dns.rb,
lib/mihari/web/endpoints/tags.rb,
lib/mihari/analyzers/greynoise.rb,
lib/mihari/analyzers/pulsedive.rb,
lib/mihari/entities/ip_address.rb,
lib/mihari/mixins/configurable.rb,
lib/mihari/web/endpoints/rules.rb,
lib/mihari/analyzers/binaryedge.rb,
lib/mihari/analyzers/dnstwister.rb,
lib/mihari/analyzers/virustotal.rb,
lib/mihari/entities/geolocation.rb,
lib/mihari/entities/reverse_dns.rb,
lib/mihari/mixins/falsepositive.rb,
lib/mihari/web/endpoints/alerts.rb,
lib/mihari/analyzers/clients/otx.rb,
lib/mihari/web/endpoints/configs.rb,
lib/mihari/analyzers/passivetotal.rb,
lib/mihari/web/endpoints/artifacts.rb,
lib/mihari/analyzers/securitytrails.rb,
lib/mihari/mixins/autonomous_system.rb,
lib/mihari/models/autonomous_system.rb,
lib/mihari/mixins/error_notification.rb,
lib/mihari/structs/google_public_dns.rb,
lib/mihari/entities/autonomous_system.rb,
lib/mihari/web/endpoints/ip_addresses.rb,
lib/mihari/enrichers/google_public_dns.rb,
lib/mihari/structs/virustotal_intelligence.rb,
lib/mihari/analyzers/virustotal_intelligence.rb,
lib/mihari/web/middleware/connection_adapter.rb,
lib/mihari/web/middleware/error_notification_adapter.rb

Defined Under Namespace

Modules: Analyzers, CLI, Commands, Emitters, Endpoints, Enrichers, Entities, Feed, Middleware, Mixins, Schemas, Structs, Types Classes: API, Alert, App, Artifact, AutonomousSystem, CPE, ConfigurationError, Database, DnsRecord, Error, FeedParseError, FileNotFoundError, Geolocation, HTTP, HTTPError, InvalidArtifactFormatError, InvalidInputError, NetworkError, Port, RetryableError, ReverseDnsName, Rule, RuleValidationError, SSLError, Tag, Tagging, TimeoutError, TypeChecker, UnsuccessfulStatusCodeError, WhoisRecord, YAMLSyntaxError

Constant Summary collapse

VERSION =
"5.1.0"
DEFAULT_DATA_TYPES =
%w[hash ip domain url mail].freeze
DEFAULT_EMITTERS =
%w[database misp slack the_hive].map { |name| { emitter: name } }.freeze
DEFAULT_ENRICHERS =
%w[whois ipinfo shodan google_public_dns].map { |name| { enricher: name } }.freeze

Class Method Summary collapse

Class Method Details

.analyzersObject



119
120
121
# File 'lib/mihari.rb', line 119

def analyzers
  []
end

.configsObject



129
130
131
132
133
# File 'lib/mihari.rb', line 129

def configs
  (Mihari.analyzers + Mihari.emitters + Mihari.enrichers).map do |klass|
    Mihari::Structs::Config.from_class(klass)
  end.compact
end

.emittersObject



114
115
116
# File 'lib/mihari.rb', line 114

def emitters
  []
end

.enrichersObject



124
125
126
# File 'lib/mihari.rb', line 124

def enrichers
  []
end

.initialize_sentryObject



142
143
144
145
146
147
148
149
150
151
# File 'lib/mihari.rb', line 142

def initialize_sentry
  return if Mihari.config.sentry_dsn.nil?
  return if Sentry.initialized?

  Sentry.init do |config|
    config.dsn = Mihari.config.sentry_dsn

    config.traces_sample_rate = 0.5
  end
end

.loggerObject



135
136
137
138
139
# File 'lib/mihari.rb', line 135

def logger
  SemanticLogger.default_level = :info
  SemanticLogger.add_appender(io: $stderr, formatter: :color)
  SemanticLogger["Mihari"]
end