prowler-cloud 5.14.1__py3-none-any.whl → 5.14.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- prowler/CHANGELOG.md +7 -0
- prowler/__main__.py +6 -0
- prowler/config/config.py +1 -1
- prowler/lib/check/check.py +43 -1
- {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.14.2.dist-info}/METADATA +1 -1
- {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.14.2.dist-info}/RECORD +9 -9
- {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.14.2.dist-info}/LICENSE +0 -0
- {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.14.2.dist-info}/WHEEL +0 -0
- {prowler_cloud-5.14.1.dist-info → prowler_cloud-5.14.2.dist-info}/entry_points.txt +0 -0
prowler/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to the **Prowler SDK** are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [v5.14.2] (Prowler v5.14.2)
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- Custom check folder metadata validation [(#9335)](https://github.com/prowler-cloud/prowler/pull/9335)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
5
12
|
## [v5.14.1] (Prowler v5.14.1)
|
|
6
13
|
|
|
7
14
|
### Fixed
|
prowler/__main__.py
CHANGED
|
@@ -24,6 +24,7 @@ from prowler.lib.check.check import (
|
|
|
24
24
|
list_checks_json,
|
|
25
25
|
list_fixers,
|
|
26
26
|
list_services,
|
|
27
|
+
load_custom_checks_metadata,
|
|
27
28
|
parse_checks_from_file,
|
|
28
29
|
parse_checks_from_folder,
|
|
29
30
|
print_categories,
|
|
@@ -185,6 +186,11 @@ def prowler():
|
|
|
185
186
|
logger.debug("Loading checks metadata from .metadata.json files")
|
|
186
187
|
bulk_checks_metadata = CheckMetadata.get_bulk(provider)
|
|
187
188
|
|
|
189
|
+
# Load custom checks metadata before validation
|
|
190
|
+
if checks_folder:
|
|
191
|
+
custom_folder_metadata = load_custom_checks_metadata(checks_folder)
|
|
192
|
+
bulk_checks_metadata.update(custom_folder_metadata)
|
|
193
|
+
|
|
188
194
|
if args.list_categories:
|
|
189
195
|
print_categories(list_categories(bulk_checks_metadata))
|
|
190
196
|
sys.exit()
|
prowler/config/config.py
CHANGED
|
@@ -38,7 +38,7 @@ class _MutableTimestamp:
|
|
|
38
38
|
|
|
39
39
|
timestamp = _MutableTimestamp(datetime.today())
|
|
40
40
|
timestamp_utc = _MutableTimestamp(datetime.now(timezone.utc))
|
|
41
|
-
prowler_version = "5.14.
|
|
41
|
+
prowler_version = "5.14.2"
|
|
42
42
|
html_logo_url = "https://github.com/prowler-cloud/prowler/"
|
|
43
43
|
square_logo_img = "https://raw.githubusercontent.com/prowler-cloud/prowler/dc7d2d5aeb92fdf12e8604f42ef6472cd3e8e889/docs/img/prowler-logo-black.png"
|
|
44
44
|
aws_logo = "https://user-images.githubusercontent.com/38561120/235953920-3e3fba08-0795-41dc-b480-9bea57db9f2e.png"
|
prowler/lib/check/check.py
CHANGED
|
@@ -14,7 +14,7 @@ from colorama import Fore, Style
|
|
|
14
14
|
import prowler
|
|
15
15
|
from prowler.config.config import orange_color
|
|
16
16
|
from prowler.lib.check.custom_checks_metadata import update_check_metadata
|
|
17
|
-
from prowler.lib.check.models import Check
|
|
17
|
+
from prowler.lib.check.models import Check, load_check_metadata
|
|
18
18
|
from prowler.lib.check.utils import recover_checks_from_provider
|
|
19
19
|
from prowler.lib.logger import logger
|
|
20
20
|
from prowler.lib.outputs.outputs import report
|
|
@@ -110,6 +110,48 @@ def parse_checks_from_folder(provider, input_folder: str) -> set:
|
|
|
110
110
|
sys.exit(1)
|
|
111
111
|
|
|
112
112
|
|
|
113
|
+
def load_custom_checks_metadata(input_folder: str) -> dict:
|
|
114
|
+
"""
|
|
115
|
+
Load check metadata from a custom checks folder without copying the checks.
|
|
116
|
+
This is used to validate check names before the provider is initialized.
|
|
117
|
+
|
|
118
|
+
Args:
|
|
119
|
+
input_folder (str): Path to the folder containing custom checks.
|
|
120
|
+
|
|
121
|
+
Returns:
|
|
122
|
+
dict: A dictionary with CheckID as key and CheckMetadata as value.
|
|
123
|
+
"""
|
|
124
|
+
custom_checks_metadata = {}
|
|
125
|
+
|
|
126
|
+
try:
|
|
127
|
+
if not os.path.isdir(input_folder):
|
|
128
|
+
return custom_checks_metadata
|
|
129
|
+
|
|
130
|
+
with os.scandir(input_folder) as checks:
|
|
131
|
+
for check in checks:
|
|
132
|
+
if check.is_dir():
|
|
133
|
+
check_name = check.name
|
|
134
|
+
metadata_file = os.path.join(
|
|
135
|
+
input_folder, check_name, f"{check_name}.metadata.json"
|
|
136
|
+
)
|
|
137
|
+
if os.path.isfile(metadata_file):
|
|
138
|
+
try:
|
|
139
|
+
check_metadata = load_check_metadata(metadata_file)
|
|
140
|
+
custom_checks_metadata[check_metadata.CheckID] = (
|
|
141
|
+
check_metadata
|
|
142
|
+
)
|
|
143
|
+
except Exception as error:
|
|
144
|
+
logger.warning(
|
|
145
|
+
f"Could not load metadata from {metadata_file}: {error}"
|
|
146
|
+
)
|
|
147
|
+
return custom_checks_metadata
|
|
148
|
+
except Exception as error:
|
|
149
|
+
logger.error(
|
|
150
|
+
f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}] -- {error}"
|
|
151
|
+
)
|
|
152
|
+
return custom_checks_metadata
|
|
153
|
+
|
|
154
|
+
|
|
113
155
|
# Load checks from custom folder
|
|
114
156
|
def remove_custom_checks_module(input_folder: str, provider: str):
|
|
115
157
|
# Check if input folder is a S3 URI
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: prowler-cloud
|
|
3
|
-
Version: 5.14.
|
|
3
|
+
Version: 5.14.2
|
|
4
4
|
Summary: Prowler is an Open Source security tool to perform AWS, GCP and Azure security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness. It contains hundreds of controls covering CIS, NIST 800, NIST CSF, CISA, RBI, FedRAMP, PCI-DSS, GDPR, HIPAA, FFIEC, SOC2, GXP, AWS Well-Architected Framework Security Pillar, AWS Foundational Technical Review (FTR), ENS (Spanish National Security Scheme) and your custom security frameworks.
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Author: Toni de la Fuente
|
|
@@ -105,9 +105,9 @@ dashboard/pages/overview.py,sha256=eH08NS-EKggKXjo63BvFXSALpp-WWIWhlWc54YIdM40,8
|
|
|
105
105
|
dashboard/src/input.css,sha256=ZjC7DV_hHZRH92s0D-8Wk-L9WpP5oqfwIkfLi16GJdk,2936
|
|
106
106
|
dashboard/tailwind.config.js,sha256=sDwGYIDZwdefOCPrcCkjsOT8cYDHrkZAedPosdDnwMY,2391
|
|
107
107
|
prowler/AGENTS.md,sha256=ETv0yNxU3eTxViCSe6K_qABihEsRosW9F2Y1BR7FgZE,14281
|
|
108
|
-
prowler/CHANGELOG.md,sha256=
|
|
108
|
+
prowler/CHANGELOG.md,sha256=WupDYcmN2tCX4QOi2uOSxFiXadUkZT5KlMeUBHBYJlM,50046
|
|
109
109
|
prowler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
|
-
prowler/__main__.py,sha256=
|
|
110
|
+
prowler/__main__.py,sha256=fbBKwqfb8h6hXdBUWin2wMNKK547an3elu-pUNmSJ4w,50050
|
|
111
111
|
prowler/compliance/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
112
112
|
prowler/compliance/aws/aws_account_security_onboarding_aws.json,sha256=zIIjKG3gzKGqLysSXdadweGoXTtZqsCpoQwim5j9EHU,34775
|
|
113
113
|
prowler/compliance/aws/aws_audit_manager_control_tower_guardrails_aws.json,sha256=ml0SQEpZXrT2Kzf5cC5pOhDSXsp2QhGU_mdGLlRGTYI,7057
|
|
@@ -204,7 +204,7 @@ prowler/config/aws_mutelist.yaml,sha256=PW3ekqtwhpBedyPWyvh5oXCiJz94P3nJLrMYGUGI
|
|
|
204
204
|
prowler/config/aws_mutelist_example.yaml,sha256=O3fscPxW73tBcrAtKGo43btqnA6_mNW3myC21Gj0ysQ,2848
|
|
205
205
|
prowler/config/azure_mutelist_example.yaml,sha256=r87OAhBg0N32s-XFRHEY4BzrHfZLGE9DfM8YgAHn7cY,2024
|
|
206
206
|
prowler/config/checklist_example.json,sha256=E36OiPBUXF3fuKIu4mK92R3a3zFRGzKdztZdYsx5vQs,165
|
|
207
|
-
prowler/config/config.py,sha256=
|
|
207
|
+
prowler/config/config.py,sha256=1xBSYNdlUslsjDwo5KHE4_SwAZ_JedcvnmlkqnhgkM0,8943
|
|
208
208
|
prowler/config/config.yaml,sha256=48OmXTeSL5wxAxJoicTXCOvuxrVjMjVIuafmYUHJ_8o,19394
|
|
209
209
|
prowler/config/custom_checks_metadata_example.yaml,sha256=vsn66e-kGDKfHJ0KhTa525wbquZN88Z5G_bMCIM0iG0,5720
|
|
210
210
|
prowler/config/fixer_config.yaml,sha256=D3yIuDsgcvLyMc4-nwhU4569l6z48CWm1UKekbqupKo,1591
|
|
@@ -220,7 +220,7 @@ prowler/exceptions/exceptions.py,sha256=OKJIHo6wqgpZzOoZur8HKFlD6Xiqbr_OJGg4yOTx
|
|
|
220
220
|
prowler/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
221
221
|
prowler/lib/banner.py,sha256=Wq9ITz9TaddSVBDRvw9FtRsLs5bPi9xBblVkx8_0u88,1104
|
|
222
222
|
prowler/lib/check/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
223
|
-
prowler/lib/check/check.py,sha256=
|
|
223
|
+
prowler/lib/check/check.py,sha256=zXi9izrdR57cbYms36b5S3FUzOeOzgOf4VNqfB5DWNI,29979
|
|
224
224
|
prowler/lib/check/checks_loader.py,sha256=jp_upHi0hAceukFUM2Njgw25IZVesGN7eDOZXFZ1GYw,9112
|
|
225
225
|
prowler/lib/check/compliance.py,sha256=mZdJmlAWYAWTceve2UMqz3AQvOhIsvS3UKuNxCvKq2M,1951
|
|
226
226
|
prowler/lib/check/compliance_models.py,sha256=N9isi0AD5na75ZeM-A4c_5yNTVWHFCKzP798u2sIFiQ,12777
|
|
@@ -4230,8 +4230,8 @@ prowler/providers/oraclecloud/services/objectstorage/objectstorage_bucket_versio
|
|
|
4230
4230
|
prowler/providers/oraclecloud/services/objectstorage/objectstorage_bucket_versioning_enabled/objectstorage_bucket_versioning_enabled.py,sha256=vkga-eV2ANNlrf_5spzoZZy05OCrBzVwuuusJzE0cqY,1374
|
|
4231
4231
|
prowler/providers/oraclecloud/services/objectstorage/objectstorage_client.py,sha256=2kMRKmX3bfHOGxBSKyXIzaRSAPCI_zhABJP3xmPrMRQ,235
|
|
4232
4232
|
prowler/providers/oraclecloud/services/objectstorage/objectstorage_service.py,sha256=N3lJfv-PHcz1wACQmcvNHA_pffyvLOjYIYPUNtYV7gA,4869
|
|
4233
|
-
prowler_cloud-5.14.
|
|
4234
|
-
prowler_cloud-5.14.
|
|
4235
|
-
prowler_cloud-5.14.
|
|
4236
|
-
prowler_cloud-5.14.
|
|
4237
|
-
prowler_cloud-5.14.
|
|
4233
|
+
prowler_cloud-5.14.2.dist-info/LICENSE,sha256=oGZr2ZEftLZTNys3IcUA_b0JftHKg0Zq2wfnrnr7guA,11348
|
|
4234
|
+
prowler_cloud-5.14.2.dist-info/METADATA,sha256=Gj7fTh_YlOG8kilnU-n05u_uJxSLTAEZ_SGSOBa2SeU,17519
|
|
4235
|
+
prowler_cloud-5.14.2.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
|
4236
|
+
prowler_cloud-5.14.2.dist-info/entry_points.txt,sha256=sWks5LHwHN_Rhj9HcrghwVKzHPIS4I4lebr-lkVZ-Dk,52
|
|
4237
|
+
prowler_cloud-5.14.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|