Skip to content

Commit 442b379

Browse files
feat(google-workspace): add CIS Foundations Benchmark v1.3.0 compliance (#10462)
Co-authored-by: pedrooot <[email protected]>
1 parent 2a8b626 commit 442b379

File tree

6 files changed

+2053
-1
lines changed

6 files changed

+2053
-1
lines changed

prowler/CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@ All notable changes to the **Prowler SDK** are documented in this file.
66

77
### 🚀 Added
88

9-
- `apikeys_api_restricted_with_gemini_api` and `gemini_api_disabled`checks for GCP provider [(#10280)](https://github.com/prowler-cloud/prowler/pull/10280)
109
- `cloudfront_distributions_logging_enabled` detects Standard Logging v2 via CloudWatch Log Delivery [(#10090)](https://github.com/prowler-cloud/prowler/pull/10090)
1110
- `glue_etl_jobs_no_secrets_in_arguments` check for plaintext secrets in AWS Glue ETL job arguments [(#10368)](https://github.com/prowler-cloud/prowler/pull/10368)
1211
- `awslambda_function_no_dead_letter_queue`, `awslambda_function_using_cross_account_layers`, and `awslambda_function_env_vars_not_encrypted_with_cmk` checks for AWS Lambda [(#10381)](https://github.com/prowler-cloud/prowler/pull/10381)
1312
- `entra_conditional_access_policy_mdm_compliant_device_required` check for M365 provider [(#10220)](https://github.com/prowler-cloud/prowler/pull/10220)
1413
- `ec2_securitygroup_allow_ingress_from_internet_to_any_port_from_ip` check for AWS provider using `ipaddress.is_global` for accurate public IP detection [(#10335)](https://github.com/prowler-cloud/prowler/pull/10335)
1514
- `entra_conditional_access_policy_block_o365_elevated_insider_risk` check for M365 provider [(#10232)](https://github.com/prowler-cloud/prowler/pull/10232)
1615
- `--resource-group` and `--list-resource-groups` CLI flags to filter checks by resource group across all providers [(#10479)](https://github.com/prowler-cloud/prowler/pull/10479)
16+
- CIS Google Workspace Foundations Benchmark v1.3.0 compliance [(#10462)](https://github.com/prowler-cloud/prowler/pull/10462)
17+
- `apikeys_api_restricted_with_gemini_api` check for GCP provider [(#10280)](https://github.com/prowler-cloud/prowler/pull/10280)
18+
- `gemini_api_disabled` check for GCP provider [(#10280)](https://github.com/prowler-cloud/prowler/pull/10280)
1719

1820
### 🔄 Changed
1921

prowler/__main__.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
from prowler.lib.outputs.compliance.cis.cis_azure import AzureCIS
6868
from prowler.lib.outputs.compliance.cis.cis_gcp import GCPCIS
6969
from prowler.lib.outputs.compliance.cis.cis_github import GithubCIS
70+
from prowler.lib.outputs.compliance.cis.cis_googleworkspace import GoogleWorkspaceCIS
7071
from prowler.lib.outputs.compliance.cis.cis_kubernetes import KubernetesCIS
7172
from prowler.lib.outputs.compliance.cis.cis_m365 import M365CIS
7273
from prowler.lib.outputs.compliance.cis.cis_oraclecloud import OracleCloudCIS
@@ -1138,6 +1139,35 @@ def streaming_callback(findings_batch):
11381139
generated_outputs["compliance"].append(generic_compliance)
11391140
generic_compliance.batch_write_data_to_file()
11401141

1142+
elif provider == "googleworkspace":
1143+
for compliance_name in input_compliance_frameworks:
1144+
if compliance_name.startswith("cis_"):
1145+
# Generate CIS Finding Object
1146+
filename = (
1147+
f"{output_options.output_directory}/compliance/"
1148+
f"{output_options.output_filename}_{compliance_name}.csv"
1149+
)
1150+
cis = GoogleWorkspaceCIS(
1151+
findings=finding_outputs,
1152+
compliance=bulk_compliance_frameworks[compliance_name],
1153+
file_path=filename,
1154+
)
1155+
generated_outputs["compliance"].append(cis)
1156+
cis.batch_write_data_to_file()
1157+
else:
1158+
filename = (
1159+
f"{output_options.output_directory}/compliance/"
1160+
f"{output_options.output_filename}_{compliance_name}.csv"
1161+
)
1162+
generic_compliance = GenericCompliance(
1163+
findings=finding_outputs,
1164+
compliance=bulk_compliance_frameworks[compliance_name],
1165+
create_file_descriptor=True,
1166+
file_path=filename,
1167+
)
1168+
generated_outputs["compliance"].append(generic_compliance)
1169+
generic_compliance.batch_write_data_to_file()
1170+
11411171
elif provider == "oraclecloud":
11421172
for compliance_name in input_compliance_frameworks:
11431173
if compliance_name.startswith("cis_"):

prowler/compliance/googleworkspace/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)