lib/mihari/analyzers/rule.rb in mihari-4.6.1 vs lib/mihari/analyzers/rule.rb in mihari-4.7.0

- old
+ new

@@ -49,19 +49,21 @@ option :tags, default: proc { [] } option :allowed_data_types, default: proc { ALLOWED_DATA_TYPES } option :disallowed_data_values, default: proc { [] } option :emitters, optional: true + option :enrichers, optional: true attr_reader :source def initialize(**kwargs) super(**kwargs) @source = id @emitters = emitters || DEFAULT_EMITTERS + @enrichers = enrichers || DEFAULT_ENRICHERS validate_analyzer_configurations end # @@ -107,9 +109,24 @@ def normalized_artifacts @normalized_artifacts ||= artifacts.uniq(&:data).select(&:valid?).select do |artifact| allowed_data_types.include? artifact.data_type end.reject do |artifact| disallowed_data_value? artifact.data + end + end + + # + # Enriched artifacts + # + # @return [Array<Mihari::Artifact>] + # + def enriched_artifacts + @enriched_artifacts ||= Parallel.map(unique_artifacts) do |artifact| + enrichers.each do |enricher| + artifact.enrich_by_enricher(enricher[:enricher]) + end + + artifact end end # # Normalized disallowed data values