Sha256: 7efe99ff4353a0a00b4b807c80183f555b4983cda4724e3dde53ba7fd2847332

Contents?: true

Size: 1.79 KB

Versions: 5

Compression:

Stored size: 1.79 KB

Contents

module Mihari
  module Analyzers
    class Rule < Base
      include Mihari::Mixins::DisallowedDataValue

      attr_reader title: String
      attr_reader description: String
      attr_reader queries: Hash[(String | Symbol), untyped]
      attr_reader tags: Array[String]
      attr_reader allowed_data_types: Array[String]
      attr_reader disallowed_data_values: Array[String]
      attr_reader source: String
      attr_reader id: String?

      def initialize: (**untyped kwargs) -> void

      ANALYZER_TO_CLASS: Hash[String, singleton(Mihari::Analyzers::Base)]

      #
      # Returns a list of artifacts matched with queries
      #
      # @return [Array<Mihari::Artifact>]
      #
      def artifacts: () -> (Array[String] | Array[Mihari::Artifact])

      #
      # Normalize artifacts
      # - Uniquefy artifacts by #uniq(&:data)
      # - Reject an invalid artifact (for just in case)
      # - Select artifacts with allowed data types
      # - Reject artifacts with disallowed data values
      #
      # @return [Array<Mihari::Artifact>]
      #
      def normalized_artifacts: () -> untyped

      #
      # Normalized disallowed data values
      #
      # @return [Array<Regexp, String>]
      #
      def normalized_disallowed_data_values: () -> untyped

      #
      # Check whether a value is a disallowed data value or not
      #
      # @return [Boolean]
      #
      def disallowed_data_value?: (untyped value) -> untyped

      private

      #
      # Get analyzer class
      #
      # @param [String] analyzer_name
      #
      # @return [Class<Mihari::Analyzers::Base>] analyzer class
      #
      def get_analyzer_class: (untyped analyzer_name) -> untyped

      #
      # Validate configuration of analyzers
      #
      def validate_analyzer_configurations: () -> untyped
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mihari-3.8.0 sig/lib/mihari/analyzers/rule.rbs
mihari-3.7.2 sig/lib/mihari/analyzers/rule.rbs
mihari-3.7.1 sig/lib/mihari/analyzers/rule.rbs
mihari-3.7.0 sig/lib/mihari/analyzers/rule.rbs
mihari-3.6.1 sig/lib/mihari/analyzers/rule.rbs