Skip to content

Commit 9fb67bd

Browse files
committed
Palo Alto Cortex XSIAM: Add support array of default logsources
1 parent 4f01f62 commit 9fb67bd

File tree

3 files changed

+26
-13
lines changed

3 files changed

+26
-13
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
platform: Palo Alto XSIAM
2+
source: webserver
3+
4+
default_log_source:
5+
dataset: [apache_tomcat_raw, nginx_nginx_raw, apache_tomcat_raw]
6+
7+
field_mapping:
8+
c-uri: xdm.network.http.url
9+
c-useragent: xdm.source.user_agent
10+
cs-method: xdm.network.http.method
11+
cs-bytes: xdm.target.sent_bytes
12+
c-uri-query: xdm.network.http.url
13+
cs-referrer: xdm.network.http.referrer
14+
sc-status: xdm.network.http.response_code

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

Lines changed: 11 additions & 2 deletions
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 (
44
DEFAULT_MAPPING_NAME,
@@ -18,8 +18,17 @@ def __init__(self, preset: Optional[list[str]], dataset: Optional[list[str]], de
1818
def is_suitable(self, preset: str, dataset: str) -> bool:
1919
return preset == self.preset or dataset == self.dataset
2020

21+
def __prepare_log_source_for_render(self, logsource: Union[str, list[str]], model: str = "datamodel") -> str:
22+
if isinstance(logsource, list):
23+
return f"{model} in ({', '.join([source for source in logsource])})"
24+
return f"{model} = {logsource}"
25+
2126
def __str__(self) -> str:
22-
return self._default_source.get("preset") or self._default_source.get("dataset")
27+
if preset_data := self._default_source.get("preset"):
28+
return self.__prepare_log_source_for_render(logsource=preset_data, model="preset")
29+
if dataset_data := self._default_source.get("dataset"):
30+
return self.__prepare_log_source_for_render(logsource=dataset_data, model="preset")
31+
return "datamodel"
2332

2433

2534
class CortexXSIAMMappings(BasePlatformMappings):

uncoder-core/app/translator/platforms/palo_alto/renders/cortex_xsiam.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -118,14 +118,4 @@ class CortexXQLQueryRender(PlatformQueryRender):
118118
is_single_line_comment = False
119119

120120
def generate_prefix(self, log_source_signature: CortexXSIAMLogSourceSignature) -> str:
121-
preset = (
122-
f"preset = {log_source_signature._default_source.get('preset')}"
123-
if log_source_signature._default_source.get("preset")
124-
else None
125-
)
126-
dataset = (
127-
f"dataset = {log_source_signature._default_source.get('dataset')}"
128-
if log_source_signature._default_source.get("dataset")
129-
else None
130-
)
131-
return preset or dataset or "datamodel"
121+
return str(log_source_signature)

0 commit comments

Comments
 (0)