Sha256: 5e762b19796a5f2bc42d43872b6e376159d7176e8ed51bd07345203bb3a3e492

Contents?: true

Size: 1.77 KB

Versions: 31

Compression:

Stored size: 1.77 KB

Contents

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

    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

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

31 entries across 31 versions & 1 rubygems

Version Path
mihari-4.12.0 sig/lib/mihari/analyzers/rule.rbs
mihari-4.11.0 sig/lib/mihari/analyzers/rule.rbs
mihari-4.10.0 sig/lib/mihari/analyzers/rule.rbs
mihari-4.9.0 sig/lib/mihari/analyzers/rule.rbs
mihari-4.8.0 sig/lib/mihari/analyzers/rule.rbs
mihari-4.7.4 sig/lib/mihari/analyzers/rule.rbs
mihari-4.7.3 sig/lib/mihari/analyzers/rule.rbs
mihari-4.7.2 sig/lib/mihari/analyzers/rule.rbs
mihari-4.7.1 sig/lib/mihari/analyzers/rule.rbs
mihari-4.7.0 sig/lib/mihari/analyzers/rule.rbs
mihari-4.6.1 sig/lib/mihari/analyzers/rule.rbs
mihari-4.6.0 sig/lib/mihari/analyzers/rule.rbs
mihari-4.5.3 sig/lib/mihari/analyzers/rule.rbs
mihari-4.5.2 sig/lib/mihari/analyzers/rule.rbs
mihari-4.5.1 sig/lib/mihari/analyzers/rule.rbs
mihari-4.5.0 sig/lib/mihari/analyzers/rule.rbs
mihari-4.4.1 sig/lib/mihari/analyzers/rule.rbs
mihari-4.4.0 sig/lib/mihari/analyzers/rule.rbs
mihari-4.3.0 sig/lib/mihari/analyzers/rule.rbs
mihari-4.2.0 sig/lib/mihari/analyzers/rule.rbs