Skip to content

Commit 24390de

Browse files
Configurable hard limit for rules
1 parent efb9ad3 commit 24390de

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

analyzers/Yara/Yara.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@
2929
"type": "string",
3030
"multi": false,
3131
"required": false
32+
},
33+
{
34+
"name": "rules_limit",
35+
"description": "Enforce a limit on the number of YARA rules tested against the file",
36+
"type": "number",
37+
"multi": false,
38+
"required": false
3239
}
3340
]
3441
}

analyzers/Yara/yara_analyzer.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@ def __init__(self):
160160

161161
self.github_urls = self.get_param('config.github_urls', None, 'No GitHub URLs provided.')
162162
self.github_token = self.get_param('config.github_token', None, 'No GitHub PAT provided.')
163+
164+
self.rules_limit = self.get_param('config.rules_limit', None, 'No rules limit provided.')
163165

164166
self.ruleset = []
165167
self.ignored_rules = []
@@ -218,6 +220,16 @@ def __init__(self):
218220

219221
if not self.ruleset:
220222
print("Warning: No valid YARA rules were loaded.")
223+
224+
# Enforce the rules limit if set
225+
if self.rules_limit:
226+
try:
227+
limit = int(self.rules_limit)
228+
if len(self.ruleset) > limit:
229+
self.ruleset = self.ruleset[:limit]
230+
except ValueError:
231+
self.error("Invalid rules_limit value; it should be an integer.")
232+
221233

222234

223235
def check(self, file_path):

0 commit comments

Comments
 (0)