Sha256: 9df44f67970d39a15a9ac1fd1dfed5a0f7314e1ba9cf7e7ef9390cb1d1a4aa3a

Contents?: true

Size: 841 Bytes

Versions: 2

Compression:

Stored size: 841 Bytes

Contents

# frozen_string_literal: true

require "onyphe"

module Mihari
  module Analyzers
    class Onyphe < Base
      attr_reader :title
      attr_reader :description
      attr_reader :query
      attr_reader :tags

      def initialize(query, title: nil, description: nil, tags: [])
        super()

        @query = query
        @title = title || "Onyphe lookup"
        @description = description || "query = #{query}"
        @tags = tags
      end

      def artifacts
        result = search
        return [] unless result

        results = result.dig("results") || []
        results.map { |e| e.dig("ip") }.compact
      end

      private

      def config_keys
        %w(ONYPHE_API_KEY)
      end

      def api
        @api ||= ::Onyphe::API.new
      end

      def search
        api.datascan(query)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mihari-0.12.0 lib/mihari/analyzers/onyphe.rb
mihari-0.11.0 lib/mihari/analyzers/onyphe.rb