|
33 | 33 | from .data import sysmon_schema |
34 | 34 | from .exceptions import NotSupportedError |
35 | 35 |
|
36 | | -class DeepFieldMappingMixin(object): |
37 | | - |
38 | | - def fieldNameMapping(self, fieldname, value): |
39 | | - if isinstance(fieldname, str): |
40 | | - get_config = self.sigmaconfig.fieldmappings.get(fieldname) |
41 | | - if not get_config and '|' in fieldname: |
42 | | - fieldname = fieldname.split('|', 1)[0] |
43 | | - get_config = self.sigmaconfig.fieldmappings.get(fieldname) |
44 | | - if isinstance(get_config, ConditionalFieldMapping): |
45 | | - condition = self.sigmaconfig.fieldmappings.get(fieldname).conditions |
46 | | - for key, item in self.logsource.items(): |
47 | | - if condition.get(key) and condition.get(key, {}).get(item): |
48 | | - new_fieldname = condition.get(key, {}).get(item) |
49 | | - if any(new_fieldname): |
50 | | - return super().fieldNameMapping(new_fieldname[0], value) |
51 | | - return super().fieldNameMapping(fieldname, value) |
52 | | - |
53 | | - |
54 | | - def generate(self, sigmaparser): |
55 | | - self.logsource = sigmaparser.parsedyaml.get("logsource", {}) |
56 | | - return super().generate(sigmaparser) |
57 | | - |
58 | | -class AzureLogAnalyticsBackend(DeepFieldMappingMixin, SingleTextQueryBackend): |
| 36 | +class AzureLogAnalyticsBackend(SingleTextQueryBackend): |
59 | 37 | """Converts Sigma rule into Azure Log Analytics Queries.""" |
60 | 38 | identifier = "ala" |
61 | 39 | active = True |
|
0 commit comments