@@ -37,7 +37,7 @@ class SigmaParser(YamlRuleMixin):
3737condition_tokenizer = SigmaConditionTokenizer ()
3838tokenizer :SigmaTokenizer = SigmaTokenizer ()
3939mappings :SigmaMappings = sigma_mappings
40- mandatory_fields = {"title" ,"description" ,"references" , " logsource" ,"detection" }
40+ mandatory_fields = {"title" ,"description" ,"logsource" ,"detection" }
4141
4242@staticmethod
4343def __parse_false_positives (false_positives :Union [str ,List [str ],None ])-> list :
@@ -69,7 +69,11 @@ def __validate_rule(self, rule: dict):
6969def parse (self ,text :str )-> SiemContainer :
7070sigma_rule = self .load_rule (text = text )
7171self .__validate_rule (rule = sigma_rule )
72- log_sources = {key : [value ]for key ,value in (sigma_rule .get ("logsource" , {})).items ()}
72+ log_sources = {
73+ key : [value ]
74+ for key ,value in (sigma_rule .get ("logsource" , {})).items ()
75+ if key in ("product" ,"service" ,"category" )
76+ }
7377tokens = self .tokenizer .tokenize (detection = sigma_rule .get ("detection" ))
7478field_tokens = QueryTokenizer .filter_tokens (tokens ,Field )
7579field_names = [field .source_name for field in field_tokens ]