Skip to content

Commit 1b8acba

Browse files
authored
Merge pull request #149 from UncoderIO/gis-7581
Fix empty index field in elastic rule
2 parents 5e4f6d4 + f27c9cf commit 1b8acba

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ def is_suitable(self, *args, **kwargs) -> bool:
2020
def __str__(self) -> str:
2121
raise NotImplementedError("Abstract method")
2222

23+
@property
24+
def default_source(self) -> dict:
25+
return self._default_source
26+
2327

2428
class FieldMapping:
2529
def __init__(self, generic_field_name: str, platform_field_name: str):

uncoder-core/app/translator/platforms/base/aql/escape_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ class AQLEscapeManager(EscapeManager):
1010
ValueType.value: [EscapeDetails(pattern=r"(')", escape_symbols=r"'\1")],
1111
ValueType.regex_value: [
1212
EscapeDetails(pattern=r"([$^*+()\[\]{}|.?\-\\])", escape_symbols=r"\\\1"),
13-
EscapeDetails(pattern=r"(')", escape_symbols=r"'\1")
14-
]
13+
EscapeDetails(pattern=r"(')", escape_symbols=r"'\1"),
14+
],
1515
}
1616

1717

uncoder-core/app/translator/platforms/elasticsearch/renders/detection_rule.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,14 @@ def finalize_query(
8585
query: str,
8686
functions: str,
8787
meta_info: Optional[MetaInfoContainer] = None,
88-
source_mapping: Optional[SourceMapping] = None, # noqa: ARG002
88+
source_mapping: Optional[SourceMapping] = None,
8989
not_supported_functions: Optional[list] = None,
9090
*args, # noqa: ARG002
9191
**kwargs, # noqa: ARG002
9292
) -> str:
9393
query = super().finalize_query(prefix=prefix, query=query, functions=functions)
9494
rule = copy.deepcopy(ELASTICSEARCH_DETECTION_RULE)
95+
index = source_mapping.log_source_signature.default_source.get("index") if source_mapping else None
9596
rule.update(
9697
{
9798
"query": query,
@@ -105,6 +106,7 @@ def finalize_query(
105106
"tags": meta_info.tags,
106107
"threat": self.__create_mitre_threat(meta_info.mitre_attack),
107108
"false_positives": meta_info.false_positives,
109+
"index": [index] if index else [],
108110
}
109111
)
110112
rule_str = json.dumps(rule, indent=4, sort_keys=False, ensure_ascii=False)

0 commit comments

Comments
 (0)