mirror of
https://github.com/ghndrx/prowler.git
synced 2026-02-10 14:55:00 +00:00
fix(alias): allow multiple check aliases (#3378)
This commit is contained in:
@@ -34,7 +34,9 @@ def load_checks_to_execute(
|
|||||||
for check, metadata in bulk_checks_metadata.items():
|
for check, metadata in bulk_checks_metadata.items():
|
||||||
# Aliases
|
# Aliases
|
||||||
for alias in metadata.CheckAliases:
|
for alias in metadata.CheckAliases:
|
||||||
check_aliases[alias] = check
|
if alias not in check_aliases:
|
||||||
|
check_aliases[alias] = []
|
||||||
|
check_aliases[alias].append(check)
|
||||||
|
|
||||||
# Severities
|
# Severities
|
||||||
if metadata.Severity:
|
if metadata.Severity:
|
||||||
@@ -110,15 +112,20 @@ def update_checks_to_execute_with_aliases(
|
|||||||
) -> set:
|
) -> set:
|
||||||
"""update_checks_to_execute_with_aliases returns the checks_to_execute updated using the check aliases."""
|
"""update_checks_to_execute_with_aliases returns the checks_to_execute updated using the check aliases."""
|
||||||
# Verify if any input check is an alias of another check
|
# Verify if any input check is an alias of another check
|
||||||
for input_check in checks_to_execute:
|
try:
|
||||||
if (
|
new_checks_to_execute = checks_to_execute.copy()
|
||||||
input_check in check_aliases
|
for input_check in checks_to_execute:
|
||||||
and check_aliases[input_check] not in checks_to_execute
|
if input_check in check_aliases:
|
||||||
):
|
# Remove input check name and add the real one
|
||||||
# Remove input check name and add the real one
|
new_checks_to_execute.remove(input_check)
|
||||||
checks_to_execute.remove(input_check)
|
for alias in check_aliases[input_check]:
|
||||||
checks_to_execute.add(check_aliases[input_check])
|
if alias not in new_checks_to_execute:
|
||||||
print(
|
new_checks_to_execute.add(alias)
|
||||||
f"\nUsing alias {Fore.YELLOW}{input_check}{Style.RESET_ALL} for check {Fore.YELLOW}{check_aliases[input_check]}{Style.RESET_ALL}...\n"
|
print(
|
||||||
)
|
f"\nUsing alias {Fore.YELLOW}{input_check}{Style.RESET_ALL} for check {Fore.YELLOW}{alias}{Style.RESET_ALL}..."
|
||||||
return checks_to_execute
|
)
|
||||||
|
return new_checks_to_execute
|
||||||
|
except Exception as error:
|
||||||
|
logger.error(
|
||||||
|
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}] -- {error}"
|
||||||
|
)
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
"Provider": "aws",
|
"Provider": "aws",
|
||||||
"CheckID": "inspector2_active_findings_exist",
|
"CheckID": "inspector2_active_findings_exist",
|
||||||
"CheckTitle": "Check if Inspector2 findings exist",
|
"CheckTitle": "Check if Inspector2 findings exist",
|
||||||
|
"CheckAliases": [
|
||||||
|
"inspector2_findings_exist"
|
||||||
|
],
|
||||||
"CheckType": [],
|
"CheckType": [],
|
||||||
"ServiceName": "inspector2",
|
"ServiceName": "inspector2",
|
||||||
"SubServiceName": "",
|
"SubServiceName": "",
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
"Provider": "aws",
|
"Provider": "aws",
|
||||||
"CheckID": "inspector2_is_enabled",
|
"CheckID": "inspector2_is_enabled",
|
||||||
"CheckTitle": "Check if Inspector2 is enabled",
|
"CheckTitle": "Check if Inspector2 is enabled",
|
||||||
|
"CheckAliases": [
|
||||||
|
"inspector2_findings_exist"
|
||||||
|
],
|
||||||
"CheckType": [],
|
"CheckType": [],
|
||||||
"ServiceName": "inspector2",
|
"ServiceName": "inspector2",
|
||||||
"SubServiceName": "",
|
"SubServiceName": "",
|
||||||
|
|||||||
@@ -313,7 +313,14 @@ class TestCheckLoader:
|
|||||||
|
|
||||||
def test_update_checks_to_execute_with_aliases(self):
|
def test_update_checks_to_execute_with_aliases(self):
|
||||||
checks_to_execute = {"renamed_check"}
|
checks_to_execute = {"renamed_check"}
|
||||||
check_aliases = {"renamed_check": "check_name"}
|
check_aliases = {"renamed_check": ["check_name"]}
|
||||||
assert {"check_name"} == update_checks_to_execute_with_aliases(
|
assert {"check_name"} == update_checks_to_execute_with_aliases(
|
||||||
checks_to_execute, check_aliases
|
checks_to_execute, check_aliases
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_update_checks_to_execute_with_multiple_aliases(self):
|
||||||
|
checks_to_execute = {"renamed_check"}
|
||||||
|
check_aliases = {"renamed_check": ["check1_name", "check2_name"]}
|
||||||
|
assert {"check1_name", "check2_name"} == update_checks_to_execute_with_aliases(
|
||||||
|
checks_to_execute, check_aliases
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user