Skip to content

Commit 7d05a5b

Browse files
authored
regression update (#51)
1 parent d27f175 commit 7d05a5b

3 files changed

Lines changed: 28 additions & 3 deletions

File tree

sigma/validators/sigmahq/metadata.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,9 @@ class SigmahqUnknownFieldValidator(SigmaRuleValidator):
237237

238238
def validate(self, rule: SigmaRuleBase) -> List[SigmaValidationIssue]:
239239
if len(rule.custom_attributes) > 0:
240-
return [SigmahqUnknownFieldIssue([rule], list(rule.custom_attributes.keys()))]
240+
custom_keys = list(rule.custom_attributes.keys())
241+
if "regression_tests_path" not in custom_keys or "simulation" not in custom_keys:
242+
return [SigmahqUnknownFieldIssue([rule], custom_keys)]
241243
else:
242244
return []
243245

@@ -278,7 +280,9 @@ def validate(self, rule: SigmaRuleBase) -> List[SigmaValidationIssue]:
278280
if rule.date is not None and rule.status is not None:
279281
if rule.status > SigmaStatus.EXPERIMENTAL:
280282
if (datetime.now().date() - rule.date).days <= self.min_days:
281-
return [SigmahqStatusToHighIssue([rule])]
283+
custom_keys = list(rule.custom_attributes.keys())
284+
if "regression_tests_path" not in custom_keys:
285+
return [SigmahqStatusToHighIssue([rule])]
282286
return []
283287

284288

sigma/validators/sigmahq/tags.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class SigmahqTagsTechniquesWithoutTacticsIssue(SigmaValidationIssue):
101101
description: ClassVar[str] = (
102102
"A MITRE ATT&CK technique tag was found without its corresponding tactic name. (e.g. when using 'attack.t1059' you have to add 'attack.execution' as well)"
103103
)
104-
severity: ClassVar[SigmaValidationIssueSeverity] = SigmaValidationIssueSeverity.HIGH
104+
severity: ClassVar[SigmaValidationIssueSeverity] = SigmaValidationIssueSeverity.MEDIUM
105105
techniques: List[str]
106106
missing_tactic: str
107107

tests/test_metadata.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,27 @@ def test_validator_SigmahqStatusToHigh_valid():
616616
assert validator.validate(rule) == []
617617

618618

619+
def test_validator_SigmahqStatusToHigh_with_regression_valid():
620+
validator = SigmahqStatusToHighValidator()
621+
rule = SigmaRule.from_yaml(
622+
"""
623+
title: Test
624+
description: Test
625+
status: test
626+
date: 1975-01-01
627+
logsource:
628+
category: test
629+
detection:
630+
sel:
631+
candle|exists: true
632+
condition: sel
633+
regression_tests_path: regression/rule/test_rule.yml
634+
"""
635+
)
636+
rule.date = datetime.now().date()
637+
assert validator.validate(rule) == []
638+
639+
619640
def test_validator_SigmahqGithubLink():
620641
validator = SigmahqGithubLinkValidator()
621642
rule = SigmaRule.from_yaml(

0 commit comments

Comments
 (0)