Skip to content

Commit 4e38719

Browse files
committed
sigma mapping selection method
1 parent 6f75623 commit 4e38719

File tree

1 file changed

+15
-1
lines changed
  • uncoder-core/app/translator/platforms/sigma

1 file changed

+15
-1
lines changed

uncoder-core/app/translator/platforms/sigma/mapping.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Optional
1+
from typing import Optional, Union
22

33
from app.translator.core.mapping import DEFAULT_MAPPING_NAME, BasePlatformMappings, LogSourceSignature, SourceMapping
44
from app.translator.platforms.sigma.const import sigma_rule_details
@@ -48,5 +48,19 @@ def prepare_log_source_signature(self, mapping: dict) -> SigmaLogSourceSignature
4848
product=product, service=service, category=category, default_source=default_log_source
4949
)
5050

51+
def get_suitable_source_mappings(
52+
self, field_names: list[str], log_sources: dict[str, list[Union[int, str]]]
53+
) -> list[SourceMapping]:
54+
source_mappings = []
55+
for source_mapping in self._source_mappings.values():
56+
if source_mapping.source_id == DEFAULT_MAPPING_NAME:
57+
continue
58+
59+
log_source_signature: LogSourceSignature = source_mapping.log_source_signature
60+
if log_source_signature and log_source_signature.is_suitable(**log_sources):
61+
source_mappings.append(source_mapping)
62+
63+
return source_mappings or [self._source_mappings[DEFAULT_MAPPING_NAME]]
64+
5165

5266
sigma_rule_mappings = SigmaMappings(platform_dir="sigma", platform_details=sigma_rule_details)

0 commit comments

Comments
 (0)