Skip to content

Commit 5f25417

Browse files
Changed behavior on 0 scoreRuleType to be changed to 1
1 parent 865bd85 commit 5f25417

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

engine/rules/rules.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ func FilterRules(selectedList, ignoreList, specialList []string,
297297

298298
// Fill in missing fields in custom rules if they match default rules.
299299
// Needs to run before selection/ignoring so that if rule names are used in selected/ignored, overrides will be selected/ignored properly
300-
completeOverridesWithDefaultFields(customRules, selectedRules)
300+
completeQueriesFields(customRules, selectedRules)
301301

302302
if len(selectedList) > 0 {
303303
selectedRules = selectRules(selectedRules, selectedList)
@@ -351,9 +351,14 @@ func addCustomRules(selectedRules, customRules []*ruledefine.Rule) []*ruledefine
351351
return selectedRules
352352
}
353353

354-
// completeOverridesWithDefaultFields fills in some missing fields in custom rules if they match default rules by ruleID
355-
func completeOverridesWithDefaultFields(customRules, defaultRules []*ruledefine.Rule) {
354+
// completeQueriesFields fills some missing fields, including in case of overrides
355+
func completeQueriesFields(customRules, defaultRules []*ruledefine.Rule) {
356356
for _, customRule := range customRules {
357+
// always consider scoreRuleType 1 if left empty (0) in custom rule
358+
if customRule.ScoreRuleType == 0 {
359+
customRule.ScoreRuleType = 1
360+
}
361+
// fill missing fields from default rules if custom rule is an override
357362
for _, defaultRule := range defaultRules {
358363
if defaultRule.RuleID == customRule.RuleID {
359364
if customRule.RuleName == "" {
@@ -362,10 +367,6 @@ func completeOverridesWithDefaultFields(customRules, defaultRules []*ruledefine.
362367

363368
if customRule.Category == "" {
364369
customRule.Category = defaultRule.Category
365-
// only replace with default ScoreRuleType if category wasn't defined, otherwise assume user set RuleType at 0 intentionally
366-
if customRule.ScoreRuleType == 0 {
367-
customRule.ScoreRuleType = defaultRule.ScoreRuleType
368-
}
369370
}
370371
break
371372
}

engine/rules/rules_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ func Test_CustomRules(t *testing.T) {
174174
Regex: "[A-Za-z0-9]{32}",
175175
Tags: []string{"custom"},
176176
Category: ruledefine.GenericCredential().Category,
177-
ScoreRuleType: ruledefine.GenericCredential().ScoreRuleType,
177+
ScoreRuleType: 1,
178178
}
179179

180180
completeGenericCredentialOverride := &ruledefine.Rule{
@@ -184,7 +184,7 @@ func Test_CustomRules(t *testing.T) {
184184
Regex: "[A-Za-z0-9]{32}",
185185
Tags: []string{"custom"},
186186
Category: ruledefine.CategorySaaS,
187-
ScoreRuleType: 1,
187+
ScoreRuleType: 2,
188188
}
189189

190190
deprecatedGenericCredentialOverride := &ruledefine.Rule{

pkg/testData/expectedReports/customRules/onlyOverrideRules.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"validationStatus": "Unknown",
3838
"ruleDescription": "Custom Generic Api Key override, should override the default one (very specific regex just for testing purposes)",
3939
"severity": "Medium",
40-
"cvssScore": 8.2
40+
"cvssScore": 4.6
4141
}
4242
],
4343
"993b789425c810d4956c5ed8c84f02f90b0531ee": [
@@ -94,7 +94,7 @@
9494
"validationStatus": "Unknown",
9595
"ruleDescription": "Custom Generic Api Key override, should override the default one (very specific regex just for testing purposes)",
9696
"severity": "Medium",
97-
"cvssScore": 8.2
97+
"cvssScore": 4.6
9898
}
9999
]
100100
}

0 commit comments

Comments
 (0)