@@ -47,7 +47,7 @@ class MicrosoftSentinelRuleParser(MicrosoftSentinelQueryParser, JsonRuleMixin):
4747 mappings : MicrosoftSentinelMappings = microsoft_sentinel_rule_mappings
4848
4949 @staticmethod
50- def __parse_timeframe (raw_timeframe : Optional [str ]) -> Optional [timedelta ]:
50+ def _parse_timeframe (raw_timeframe : Optional [str ]) -> Optional [timedelta ]:
5151 with suppress (ISO8601Error ):
5252 return isodate .parse_duration (raw_timeframe )
5353
@@ -73,7 +73,7 @@ def parse_raw_query(self, text: str, language: str) -> RawQueryContainer:
7373 id_ = parsed_description .get ("rule_id" ),
7474 title = rule .get ("displayName" ),
7575 description = parsed_description .get ("description" ) or rule .get ("description" ),
76- timeframe = self .__parse_timeframe (rule .get ("queryFrequency" , "" )),
76+ timeframe = self ._parse_timeframe (rule .get ("queryFrequency" , "" )),
7777 severity = rule .get ("severity" , "medium" ),
7878 mitre_attack = mitre_attack ,
7979 author = parsed_description .get ("author" ) or [rule .get ("author" )],
@@ -85,15 +85,10 @@ def parse_raw_query(self, text: str, language: str) -> RawQueryContainer:
8585
8686
8787@parser_manager .register
88- class MicrosoftSentinelYAMLRuleParser (MicrosoftSentinelQueryParser , YamlRuleMixin ):
88+ class MicrosoftSentinelYAMLRuleParser (YamlRuleMixin , MicrosoftSentinelRuleParser ):
8989 details : PlatformDetails = microsoft_sentinel_yaml_rule_details
9090 mappings : MicrosoftSentinelMappings = microsoft_sentinel_rule_mappings
9191
92- @staticmethod
93- def __parse_timeframe (raw_timeframe : Optional [str ]) -> Optional [timedelta ]:
94- with suppress (ISO8601Error ):
95- return isodate .parse_duration (raw_timeframe )
96-
9792 def extract_tags (self , data : Union [dict , list , str ]) -> list [str ]:
9893 tags = []
9994 if isinstance (data , dict ):
@@ -138,8 +133,8 @@ def parse_raw_query(self, text: str, language: str) -> RawQueryContainer:
138133 if isinstance (tag , str ):
139134 tags .append (tag )
140135
141- timeframe = self .__parse_timeframe (rule .get ("queryFrequency" , "" ))
142- query_period = self .__parse_timeframe (rule .get ("queryPeriod" , "" ))
136+ timeframe = self ._parse_timeframe (rule .get ("queryFrequency" , "" ))
137+ query_period = self ._parse_timeframe (rule .get ("queryPeriod" , "" ))
143138
144139 return RawQueryContainer (
145140 query = rule ["query" ],
@@ -155,10 +150,10 @@ def parse_raw_query(self, text: str, language: str) -> RawQueryContainer:
155150 author = rule .get ("metadata" , {}).get ("author" , {}).get ("name" , "" ).split ("," ),
156151 tags = sorted (set (tags )),
157152 raw_metainfo_container = RawMetaInfoContainer (
158- trigger_operator = rule .get ("triggerOperator" , "" ),
159- trigger_threshold = rule .get ("triggerThreshold" , "" ),
160- query_frequency = rule .get ("queryFrequency" , "" ) if not timeframe else None ,
161- query_period = rule .get ("queryPeriod" , "" ) if not query_period else None ,
153+ trigger_operator = rule .get ("triggerOperator" ),
154+ trigger_threshold = rule .get ("triggerThreshold" ),
155+ query_frequency = rule .get ("queryFrequency" ) ,
156+ query_period = rule .get ("queryPeriod" ) ,
162157 ),
163158 ),
164159 )
0 commit comments