|
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