@@ -37,7 +37,7 @@ class SigmaParser(YamlRuleMixin):
3737 condition_tokenizer = SigmaConditionTokenizer()
3838 tokenizer: SigmaTokenizer = SigmaTokenizer()
3939 mappings: SigmaMappings = sigma_mappings
40- mandatory_fields = {"title", "description", "references", " logsource", "detection"}
40+ mandatory_fields = {"title", "description", "logsource", "detection"}
4141
4242 @staticmethod
4343 def __parse_false_positives(false_positives: Union[str, List[str], None]) -> list:
@@ -69,7 +69,11 @@ def __validate_rule(self, rule: dict):
6969 def parse(self, text: str) -> SiemContainer:
7070 sigma_rule = self.load_rule(text=text)
7171 self.__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+ }
7377 tokens = self.tokenizer.tokenize(detection=sigma_rule.get("detection"))
7478 field_tokens = QueryTokenizer.filter_tokens(tokens, Field)
7579 field_names = [field.source_name for field in field_tokens]
0 commit comments