|
1 | | -from app.translator.platforms.athena.parsers.athena import AthenaQueryParser |
2 | | -from app.translator.platforms.athena.renders.athena import AthenaQueryRender |
3 | | -from app.translator.platforms.athena.renders.athena_cti import AthenaCTI |
4 | | -from app.translator.platforms.carbonblack.renders.carbonblack_cti import CarbonBlackCTI |
5 | | -from app.translator.platforms.chronicle.parsers.chronicle import ChronicleQueryParser |
6 | | -from app.translator.platforms.chronicle.parsers.chronicle_rule import ChronicleRuleParser |
7 | | -from app.translator.platforms.chronicle.renders.chronicle import ChronicleQueryRender |
8 | | -from app.translator.platforms.chronicle.renders.chronicle_cti import ChronicleQueryCTI |
9 | | -from app.translator.platforms.chronicle.renders.chronicle_rule import ChronicleSecurityRuleRender |
10 | | -from app.translator.platforms.crowdstrike.parsers.crowdstrike import CrowdStrikeQueryParser |
11 | | -from app.translator.platforms.crowdstrike.renders.crowdstrike import CrowdStrikeQueryRender |
12 | | -from app.translator.platforms.crowdstrike.renders.crowdstrike_cti import CrowdStrikeCTI |
13 | | -from app.translator.platforms.elasticsearch.parsers.detection_rule import ElasticSearchRuleParser |
14 | | -from app.translator.platforms.elasticsearch.parsers.elasticsearch import ElasticSearchQueryParser |
15 | | -from app.translator.platforms.elasticsearch.renders.detection_rule import ElasticSearchRuleRender |
16 | | -from app.translator.platforms.elasticsearch.renders.elast_alert import ElastAlertRuleRender |
17 | | -from app.translator.platforms.elasticsearch.renders.elasticsearch import ElasticSearchQueryRender |
18 | | -from app.translator.platforms.elasticsearch.renders.elasticsearch_cti import ElasticsearchCTI |
19 | | -from app.translator.platforms.elasticsearch.renders.kibana import KibanaRuleRender |
20 | | -from app.translator.platforms.elasticsearch.renders.xpack_watcher import XPackWatcherRuleRender |
21 | | -from app.translator.platforms.fireeye_helix.renders.fireeye_helix_cti import FireeyeHelixCTI |
22 | | -from app.translator.platforms.forti_siem.renders.forti_siem_rule import FortiSiemRuleRender |
23 | | -from app.translator.platforms.graylog.parsers.graylog import GraylogQueryParser |
24 | | -from app.translator.platforms.graylog.renders.graylog import GraylogQueryRender |
25 | | -from app.translator.platforms.graylog.renders.graylog_cti import GraylogCTI |
26 | | -from app.translator.platforms.logpoint.renders.logpoint_cti import LogpointCTI |
27 | | -from app.translator.platforms.logrhythm_axon.renders.logrhythm_axon_query import LogRhythmAxonQueryRender |
28 | | -from app.translator.platforms.logrhythm_axon.renders.logrhythm_axon_rule import LogRhythmAxonRuleRender |
29 | | -from app.translator.platforms.logscale.parsers.logscale import LogScaleQueryParser |
30 | | -from app.translator.platforms.logscale.parsers.logscale_alert import LogScaleAlertParser |
31 | | -from app.translator.platforms.logscale.renders.logscale import LogScaleQueryRender |
32 | | -from app.translator.platforms.logscale.renders.logscale_alert import LogScaleAlertRender |
33 | | -from app.translator.platforms.logscale.renders.logscale_cti import LogScaleCTI |
34 | | -from app.translator.platforms.microsoft.parsers.microsoft_defender import MicrosoftDefenderQueryParser |
35 | | -from app.translator.platforms.microsoft.parsers.microsoft_sentinel import MicrosoftSentinelQueryParser |
36 | | -from app.translator.platforms.microsoft.parsers.microsoft_sentinel_rule import MicrosoftSentinelRuleParser |
37 | | -from app.translator.platforms.microsoft.renders.microsoft_defender import MicrosoftDefenderQueryRender |
38 | | -from app.translator.platforms.microsoft.renders.microsoft_defender_cti import MicrosoftDefenderCTI |
39 | | -from app.translator.platforms.microsoft.renders.microsoft_sentinel import MicrosoftSentinelQueryRender |
40 | | -from app.translator.platforms.microsoft.renders.microsoft_sentinel_cti import MicrosoftSentinelCTI |
41 | | -from app.translator.platforms.microsoft.renders.microsoft_sentinel_rule import MicrosoftSentinelRuleRender |
42 | | -from app.translator.platforms.opensearch.parsers.opensearch import OpenSearchQueryParser |
43 | | -from app.translator.platforms.opensearch.renders.opensearch import OpenSearchQueryRender |
44 | | -from app.translator.platforms.opensearch.renders.opensearch_cti import OpenSearchCTI |
45 | | -from app.translator.platforms.opensearch.renders.opensearch_rule import OpenSearchRuleRender |
46 | | -from app.translator.platforms.palo_alto.renders.cortex_xsiam import CortexXQLQueryRender |
47 | | -from app.translator.platforms.qradar.parsers.qradar import QradarQueryParser |
48 | | -from app.translator.platforms.qradar.renders.qradar import QradarQueryRender |
49 | | -from app.translator.platforms.qradar.renders.qradar_cti import QRadarCTI |
50 | | -from app.translator.platforms.qualys.renders.qualys_cti import QualysCTI |
51 | | -from app.translator.platforms.rsa_netwitness.renders.rsa_netwitness_cti import RSANetwitnessCTI |
52 | | -from app.translator.platforms.securonix.renders.securonix_cti import SecuronixCTI |
53 | | -from app.translator.platforms.sentinel_one.renders.s1_cti import S1EventsCTI |
54 | | -from app.translator.platforms.sigma.parsers.sigma import SigmaParser |
55 | | -from app.translator.platforms.sigma.renders.sigma import SigmaRender |
56 | | -from app.translator.platforms.snowflake.renders.snowflake_cti import SnowflakeCTI |
57 | | -from app.translator.platforms.splunk.parsers.splunk import SplunkQueryParser |
58 | | -from app.translator.platforms.splunk.parsers.splunk_alert import SplunkAlertParser |
59 | | -from app.translator.platforms.splunk.renders.splunk import SplunkQueryRender |
60 | | -from app.translator.platforms.splunk.renders.splunk_alert import SplunkAlertRender |
61 | | -from app.translator.platforms.splunk.renders.splunk_cti import SplunkCTI |
62 | | -from app.translator.platforms.sumo_logic.renders.sumologic_cti import SumologicCTI |
| 1 | +import importlib.util |
| 2 | +import os |
63 | 3 |
|
64 | | -__ALL_RENDERS = ( |
65 | | - SigmaRender(), |
66 | | - MicrosoftSentinelQueryRender(), |
67 | | - MicrosoftSentinelRuleRender(), |
68 | | - MicrosoftDefenderQueryRender(), |
69 | | - QradarQueryRender(), |
70 | | - CrowdStrikeQueryRender(), |
71 | | - SplunkQueryRender(), |
72 | | - SplunkAlertRender(), |
73 | | - ChronicleQueryRender(), |
74 | | - ChronicleSecurityRuleRender(), |
75 | | - AthenaQueryRender(), |
76 | | - ElasticSearchQueryRender(), |
77 | | - LogRhythmAxonQueryRender(), |
78 | | - LogRhythmAxonRuleRender(), |
79 | | - LogScaleQueryRender(), |
80 | | - LogScaleAlertRender(), |
81 | | - ElasticSearchRuleRender(), |
82 | | - ElastAlertRuleRender(), |
83 | | - KibanaRuleRender(), |
84 | | - XPackWatcherRuleRender(), |
85 | | - OpenSearchQueryRender(), |
86 | | - OpenSearchRuleRender(), |
87 | | - GraylogQueryRender(), |
88 | | - FortiSiemRuleRender(), |
89 | | - CortexXQLQueryRender(), |
90 | | -) |
| 4 | +from const import PLATFORMS_PATH |
91 | 5 |
|
92 | | -__ALL_PARSERS = ( |
93 | | - AthenaQueryParser(), |
94 | | - ChronicleQueryParser(), |
95 | | - ChronicleRuleParser(), |
96 | | - SplunkQueryParser(), |
97 | | - SplunkAlertParser(), |
98 | | - SigmaParser(), |
99 | | - QradarQueryParser(), |
100 | | - MicrosoftSentinelQueryParser(), |
101 | | - MicrosoftSentinelRuleParser(), |
102 | | - MicrosoftDefenderQueryParser(), |
103 | | - CrowdStrikeQueryParser(), |
104 | | - LogScaleQueryParser(), |
105 | | - LogScaleAlertParser(), |
106 | | - ElasticSearchQueryParser(), |
107 | | - ElasticSearchRuleParser(), |
108 | | - OpenSearchQueryParser(), |
109 | | - GraylogQueryParser(), |
110 | | -) |
111 | 6 |
|
| 7 | +def init_platforms(): |
| 8 | + for platform in [f for f in os.listdir(PLATFORMS_PATH) if os.path.isdir(os.path.join(PLATFORMS_PATH, f))]: |
| 9 | + if not platform.startswith("__") and not platform.endswith("__"): |
| 10 | + # Platforms __init__.py execution |
| 11 | + init_path = f"{PLATFORMS_PATH}/{platform}/__init__.py" |
| 12 | + spec = importlib.util.spec_from_file_location("__init__", init_path) |
| 13 | + init_module = importlib.util.module_from_spec(spec) |
| 14 | + spec.loader.exec_module(init_module) |
112 | 15 |
|
113 | | -__ALL_RENDERS_CTI = ( |
114 | | - MicrosoftSentinelCTI(), |
115 | | - MicrosoftDefenderCTI(), |
116 | | - QRadarCTI(), |
117 | | - SplunkCTI(), |
118 | | - ChronicleQueryCTI(), |
119 | | - CrowdStrikeCTI(), |
120 | | - SumologicCTI(), |
121 | | - ElasticsearchCTI(), |
122 | | - LogScaleCTI(), |
123 | | - OpenSearchCTI(), |
124 | | - FireeyeHelixCTI(), |
125 | | - CarbonBlackCTI(), |
126 | | - GraylogCTI(), |
127 | | - LogpointCTI(), |
128 | | - QualysCTI(), |
129 | | - RSANetwitnessCTI(), |
130 | | - S1EventsCTI(), |
131 | | - SecuronixCTI(), |
132 | | - SnowflakeCTI(), |
133 | | - AthenaCTI(), |
134 | | -) |
| 16 | + |
| 17 | +init_platforms() |
0 commit comments