From 7d84d679354a1f04a3206b048e533a1e10aa5205 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Mart=C3=ADn?= Date: Wed, 21 May 2025 12:38:34 +0200 Subject: [PATCH 001/111] feat(gcp): add CIS 4.0 compliance framework (#7785) --- README.md | 2 +- dashboard/compliance/cis_4_0_gcp.py | 24 + prowler/CHANGELOG.md | 1 + prowler/compliance/gcp/cis_4.0_gcp.json | 1846 +++++++++++++++++ ...rate_compliance_json_from_csv_for_cis15.py | 44 +- 5 files changed, 1903 insertions(+), 14 deletions(-) create mode 100644 dashboard/compliance/cis_4_0_gcp.py create mode 100644 prowler/compliance/gcp/cis_4.0_gcp.json diff --git a/README.md b/README.md index 9064d36891..24f6201f46 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ prowler dashboard | Provider | Checks | Services | [Compliance Frameworks](https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/compliance/) | [Categories](https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/misc/#categories) | |---|---|---|---|---| | AWS | 564 | 82 | 34 | 10 | -| GCP | 79 | 13 | 7 | 3 | +| GCP | 79 | 13 | 9 | 3 | | Azure | 140 | 18 | 8 | 3 | | Kubernetes | 83 | 7 | 5 | 7 | | GitHub | 3 | 2 | 1 | 0 | diff --git a/dashboard/compliance/cis_4_0_gcp.py b/dashboard/compliance/cis_4_0_gcp.py new file mode 100644 index 0000000000..94558f33ad --- /dev/null +++ b/dashboard/compliance/cis_4_0_gcp.py @@ -0,0 +1,24 @@ +import warnings + +from dashboard.common_methods import get_section_containers_cis + +warnings.filterwarnings("ignore") + + +def get_table(data): + aux = data[ + [ + "REQUIREMENTS_ID", + "REQUIREMENTS_DESCRIPTION", + "REQUIREMENTS_ATTRIBUTES_SECTION", + "CHECKID", + "STATUS", + "REGION", + "ACCOUNTID", + "RESOURCEID", + ] + ].copy() + + return get_section_containers_cis( + aux, "REQUIREMENTS_ID", "REQUIREMENTS_ATTRIBUTES_SECTION" + ) diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index bfe2c91df2..75a7f1ec42 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -10,6 +10,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Add new check `entra_users_mfa_capable`. [(#7734)](https://github.com/prowler-cloud/prowler/pull/7734) - Add new check `admincenter_organization_customer_lockbox_enabled`. [(#7732)](https://github.com/prowler-cloud/prowler/pull/7732) - Add new check `admincenter_external_calendar_sharing_disabled`. [(#7733)](https://github.com/prowler-cloud/prowler/pull/7733) +- Add CIS 4.0 compliance framework for GCP. [(7785)](https://github.com/prowler-cloud/prowler/pull/7785) ### Fixed - Fix `m365_powershell test_credentials` to use sanitized credentials. [(#7761)](https://github.com/prowler-cloud/prowler/pull/7761) diff --git a/prowler/compliance/gcp/cis_4.0_gcp.json b/prowler/compliance/gcp/cis_4.0_gcp.json new file mode 100644 index 0000000000..827d894789 --- /dev/null +++ b/prowler/compliance/gcp/cis_4.0_gcp.json @@ -0,0 +1,1846 @@ +{ + "Framework": "CIS", + "Version": "4.0", + "Provider": "GCP", + "Description": "The CIS Google Cloud Platform Foundations Benchmark provides prescriptive guidance for configuring security options for a subset of GCP with an emphasis on foundational, testable, and architecture agnostic settings.", + "Requirements": [ + { + "Id": "1.1", + "Description": "Ensure that Corporate Login Credentials are Used", + "Checks": [], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 1", + "AssessmentStatus": "Manual", + "Description": "Use corporate login credentials instead of consumer accounts, such as Gmail accounts.", + "RationaleStatement": "It is recommended fully-managed corporate Google accounts be used for increased visibility, auditing, and controlling access to Cloud Platform resources. Email accounts based outside of the user's organization, such as consumer accounts, should not be used for business purposes.", + "ImpactStatement": "There will be increased overhead as maintaining accounts will now be required. For smaller organizations, this will not be an issue, but will balloon with size.", + "RemediationProcedure": "Remove all consumer Google accounts from IAM policies. Follow the documentation and setup corporate login accounts. **Prevention:** To ensure that no email addresses outside the organization can be granted IAM permissions to its Google Cloud projects, folders or organization, turn on the Organization Policy for `Domain Restricted Sharing`. Learn more at: [https://cloud.google.com/resource-manager/docs/organization-policy/restricting-domains](https://cloud.google.com/resource-manager/docs/organization-policy/restricting-domains)", + "AuditProcedure": "For each Google Cloud Platform project, list the accounts that have been granted access to that project: **From Google Cloud CLI** gcloud projects get-iam-policy PROJECT_ID Also list the accounts added on each folder: gcloud resource-manager folders get-iam-policy FOLDER_ID And list your organization's IAM policy: gcloud organizations get-iam-policy ORGANIZATION_ID No email accounts outside the organization domain should be granted permissions in the IAM policies. This excludes Google-owned service accounts.", + "AdditionalInformation": "", + "References": "https://support.google.com/work/android/answer/6371476:https://cloud.google.com/sdk/gcloud/reference/projects/get-iam-policy:https://cloud.google.com/sdk/gcloud/reference/resource-manager/folders/get-iam-policy:https://cloud.google.com/sdk/gcloud/reference/organizations/get-iam-policy:https://cloud.google.com/resource-manager/docs/organization-policy/restricting-domains:https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints", + "DefaultValue": "By default, no email addresses outside the organization's domain have access to its Google Cloud deployments, but any user email account can be added to the IAM policy for Google Cloud Platform projects, folders, or organizations." + } + ] + }, + { + "Id": "1.2", + "Description": "Ensure that Multi-Factor Authentication is 'Enabled' for All Non-Service Accounts", + "Checks": [], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 1", + "AssessmentStatus": "Manual", + "Description": "Setup multi-factor authentication for Google Cloud Platform accounts.", + "RationaleStatement": "Multi-factor authentication requires more than one mechanism to authenticate a user. This secures user logins from attackers exploiting stolen or weak credentials.", + "ImpactStatement": "", + "RemediationProcedure": "**From Google Cloud Console** For each Google Cloud Platform project: 1. Identify non-service accounts. 1. Setup multi-factor authentication for each account.", + "AuditProcedure": "**From Google Cloud Console** For each Google Cloud Platform project, folder, or organization: 1. Identify non-service accounts. 1. Manually verify that multi-factor authentication for each account is set.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/solutions/securing-gcp-account-u2f:https://support.google.com/accounts/answer/185839", + "DefaultValue": "By default, multi-factor authentication is not set." + } + ] + }, + { + "Id": "1.3", + "Description": "Ensure that Security Key Enforcement is Enabled for All Admin Accounts", + "Checks": [], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 2", + "AssessmentStatus": "Manual", + "Description": "Setup Security Key Enforcement for Google Cloud Platform admin accounts.", + "RationaleStatement": "Google Cloud Platform users with Organization Administrator roles have the highest level of privilege in the organization. These accounts should be protected with the strongest form of two-factor authentication: Security Key Enforcement. Ensure that admins use Security Keys to log in instead of weaker second factors like SMS or one-time passwords (OTP). Security Keys are actual physical keys used to access Google Organization Administrator Accounts. They send an encrypted signature rather than a code, ensuring that logins cannot be phished.", + "ImpactStatement": "If an organization administrator loses access to their security key, the user could lose access to their account. For this reason, it is important to set up backup security keys.", + "RemediationProcedure": "1. Identify users with the Organization Administrator role. 2. Setup Security Key Enforcement for each account. Learn more at: [https://cloud.google.com/security-key/](https://cloud.google.com/security-key/)", + "AuditProcedure": "1. Identify users with Organization Administrator privileges: gcloud organizations get-iam-policy ORGANIZATION_ID Look for members granted the role roles/resourcemanager.organizationAdmin. 2. Manually verify that Security Key Enforcement has been enabled for each account.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/security-key/:https://gsuite.google.com/learn-more/key_for_working_smarter_faster_and_more_securely.html", + "DefaultValue": "By default, Security Key Enforcement is not enabled for Organization Administrators." + } + ] + }, + { + "Id": "1.4", + "Description": "Ensure That There Are Only GCP-Managed Service Account Keys for Each Service Account", + "Checks": [ + "iam_sa_no_user_managed_keys" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "User-managed service accounts should not have user-managed keys.", + "RationaleStatement": "Anyone who has access to the keys will be able to access resources through the service account. GCP-managed keys are used by Cloud Platform services such as App Engine and Compute Engine. These keys cannot be downloaded. Google will keep the keys and automatically rotate them on an approximately weekly basis. User-managed keys are created, downloadable, and managed by users. They expire 10 years from creation. For user-managed keys, the user has to take ownership of key management activities which include: - Key storage - Key distribution - Key revocation - Key rotation - Protecting the keys from unauthorized users - Key recovery Even with key owner precautions, keys can be easily leaked by common development malpractices like checking keys into the source code or leaving them in the Downloads directory, or accidentally leaving them on support blogs/channels. It is recommended to prevent user-managed service account keys.", + "ImpactStatement": "Deleting user-managed service account keys may break communication with the applications using the corresponding keys.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the IAM page in the GCP Console using `https://console.cloud.google.com/iam-admin/iam` 2. In the left navigation pane, click `Service accounts`. All service accounts and their corresponding keys are listed. 3. Click the service account. 4. Click the `edit` and delete the keys. **From Google Cloud CLI** To delete a user managed Service Account Key, gcloud iam service-accounts keys delete --iam-account= **Prevention:** You can disable service account key creation through the `Disable service account key creation` Organization policy by visiting [https://console.cloud.google.com/iam-admin/orgpolicies/iam-disableServiceAccountKeyCreation](https://console.cloud.google.com/iam-admin/orgpolicies/iam-disableServiceAccountKeyCreation). Learn more at: [https://cloud.google.com/resource-manager/docs/organization-policy/restricting-service-accounts](https://cloud.google.com/resource-manager/docs/organization-policy/restricting-service-accounts) In addition, if you do not need to have service accounts in your project, you can also prevent the creation of service accounts through the `Disable service account creation` Organization policy: [https://console.cloud.google.com/iam-admin/orgpolicies/iam-disableServiceAccountCreation](https://console.cloud.google.com/iam-admin/orgpolicies/iam-disableServiceAccountCreation).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the IAM page in the GCP Console using `https://console.cloud.google.com/iam-admin/iam` 2. In the left navigation pane, click `Service accounts`. All service accounts and their corresponding keys are listed. 3. Click the service accounts and check if keys exist. **From Google Cloud CLI** List All the service accounts: gcloud iam service-accounts list Identify user-managed service accounts which have an account `EMAIL` ending with `iam.gserviceaccount.com` For each user-managed service account, list the keys managed by the user: gcloud iam service-accounts keys list --iam-account= --managed-by=user No keys should be listed.", + "AdditionalInformation": "A user-managed key cannot be created on GCP-Managed Service Accounts.", + "References": "https://cloud.google.com/iam/docs/understanding-service-accounts#managing_service_account_keys:https://cloud.google.com/resource-manager/docs/organization-policy/restricting-service-accounts", + "DefaultValue": "By default, there are no user-managed keys created for user-managed service accounts." + } + ] + }, + { + "Id": "1.5", + "Description": "Ensure That Service Account Has No Admin Privileges", + "Checks": [ + "iam_sa_no_administrative_privileges" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "A service account is a special Google account that belongs to an application or a VM, instead of to an individual end-user. The application uses the service account to call the service's Google API so that users aren't directly involved. It's recommended not to use admin access for ServiceAccount.", + "RationaleStatement": "Service accounts represent service-level security of the Resources (application or a VM) which can be determined by the roles assigned to it. Enrolling ServiceAccount with Admin rights gives full access to an assigned application or a VM. A ServiceAccount Access holder can perform critical actions like delete, update change settings, etc. without user intervention. For this reason, it's recommended that service accounts not have Admin rights.", + "ImpactStatement": "Removing `*Admin` or `*admin` or `Editor` or `Owner` role assignments from service accounts may break functionality that uses impacted service accounts. Required role(s) should be assigned to impacted service accounts in order to restore broken functionalities.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `IAM & admin/IAM` using `https://console.cloud.google.com/iam-admin/iam` 2. Under the `IAM` Tab look for `VIEW BY PRINCIPALS` 3. Filter `PRINCIPALS` using `type : Service account` 4. Look for the Service Account with the Principal nomenclature: `SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com` 5. Identify `User-Managed user created` service account with roles containing `*Admin` or `*admin` or role matching `Editor` or role matching `Owner` under `Role` Column. 6. Click on `Edit (Pencil Icon)` for the Service Account, it will open all the roles which are assigned to the Service Account. 7. Click the `Delete bin` icon to remove the role from the Principal (service account in this case) **From Google Cloud CLI** gcloud projects get-iam-policy PROJECT_ID --format json > iam.json 1. Using a text editor, Remove `Role` which contains `roles/*Admin` or `roles/*admin` or matched `roles/editor` or matches 'roles/owner`. Add a role to the bindings array that defines the group members and the role for those members. For example, to grant the role roles/appengine.appViewer to the `ServiceAccount` which is roles/editor, you would change the example shown below as follows: { bindings: [ { members: [ serviceAccount:our-project-123@appspot.gserviceaccount.com, ], role: roles/appengine.appViewer }, { members: [ user:email1@gmail.com ], role: roles/owner }, { members: [ serviceAccount:our-project-123@appspot.gserviceaccount.com, serviceAccount:123456789012-compute@developer.gserviceaccount.com ], role: roles/editor } ], etag: BwUjMhCsNvY= } 2. Update the project's IAM policy: gcloud projects set-iam-policy PROJECT_ID iam.json ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `IAM & admin/IAM` using `https://console.cloud.google.com/iam-admin/iam` 2. Under the `IAM` Tab look for `VIEW BY PRINCIPALS` 3. Filter `PRINCIPALS` using `type : Service account` 4. Look for the Service Account with the nomenclature: `SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com` 5. Ensure that there are no such Service Accounts with roles containing `*Admin` or `*admin` or role matching `Editor` or role matching `Owner` under `Role` column. **From Google Cloud CLI** 1. Get the policy that you want to modify, and write it to a JSON file: gcloud projects get-iam-policy PROJECT_ID --format json > iam.json 2. The contents of the JSON file will look similar to the following. Note that `role` of members group associated with each `serviceaccount` does not contain `*Admin` or `*admin` or does not match `roles/editor` or does not match `roles/owner`. This recommendation is only applicable to `User-Managed user-created` service accounts. These accounts have the nomenclature: `SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com`. Note that some Google-managed, Google-created service accounts have the same naming format, and should be excluded (e.g., `appsdev-apps-dev-script-auth@system.gserviceaccount.com` which needs the Owner role). **Sample Json output:** { bindings: [ { members: [ serviceAccount:our-project-123@appspot.gserviceaccount.com, ], role: roles/appengine.appAdmin }, { members: [ user:email1@gmail.com ], role: roles/owner }, { members: [ serviceAccount:our-project-123@appspot.gserviceaccount.com, serviceAccount:123456789012-compute@developer.gserviceaccount.com ], role: roles/editor } ], etag: BwUjMhCsNvY=, version: 1 }", + "AdditionalInformation": "Default (user-managed but not user-created) service accounts have the `Editor (roles/editor)` role assigned to them to support GCP services they offer. Such Service accounts are: `PROJECT_NUMBER-compute@developer.gserviceaccount.com`, `PROJECT_ID@appspot.gserviceaccount.com`.", + "References": "https://cloud.google.com/sdk/gcloud/reference/iam/service-accounts/:https://cloud.google.com/iam/docs/understanding-roles:https://cloud.google.com/iam/docs/understanding-service-accounts", + "DefaultValue": "User Managed (and not user-created) default service accounts have the `Editor (roles/editor)` role assigned to them to support GCP services they offer. By default, there are no roles assigned to `User Managed User created` service accounts." + } + ] + }, + { + "Id": "1.6", + "Description": "Ensure That IAM Users Are Not Assigned the Service Account User or Service Account Token Creator Roles at Project Level", + "Checks": [ + "iam_no_service_roles_at_project_level" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to assign the `Service Account User (iam.serviceAccountUser)` and `Service Account Token Creator (iam.serviceAccountTokenCreator)` roles to a user for a specific service account rather than assigning the role to a user at project level.", + "RationaleStatement": "A service account is a special Google account that belongs to an application or a virtual machine (VM), instead of to an individual end-user. Application/VM-Instance uses the service account to call the service's Google API so that users aren't directly involved. In addition to being an identity, a service account is a resource that has IAM policies attached to it. These policies determine who can use the service account. Users with IAM roles to update the App Engine and Compute Engine instances (such as App Engine Deployer or Compute Instance Admin) can effectively run code as the service accounts used to run these instances, and indirectly gain access to all the resources for which the service accounts have access. Similarly, SSH access to a Compute Engine instance may also provide the ability to execute code as that instance/Service account. Based on business needs, there could be multiple user-managed service accounts configured for a project. Granting the `iam.serviceAccountUser` or `iam.serviceAccountTokenCreator` roles to a user for a project gives the user access to all service accounts in the project, including service accounts that may be created in the future. This can result in elevation of privileges by using service accounts and corresponding `Compute Engine instances`. In order to implement `least privileges` best practices, IAM users should not be assigned the `Service Account User` or `Service Account Token Creator` roles at the project level. Instead, these roles should be assigned to a user for a specific service account, giving that user access to the service account. The `Service Account User` allows a user to bind a service account to a long-running job service, whereas the `Service Account Token Creator` role allows a user to directly impersonate (or assert) the identity of a service account.", + "ImpactStatement": "After revoking `Service Account User` or `Service Account Token Creator` roles at the project level from all impacted user account(s), these roles should be assigned to a user(s) for specific service account(s) according to business needs.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the IAM page in the GCP Console by visiting: [https://console.cloud.google.com/iam-admin/iam](https://console.cloud.google.com/iam-admin/iam). 2. Click on the filter table text bar. Type `Role: Service Account User` 3. Click the `Delete Bin` icon in front of the role `Service Account User` for every user listed as a result of a filter. 4. Click on the filter table text bar. Type `Role: Service Account Token Creator` 5. Click the `Delete Bin` icon in front of the role `Service Account Token Creator` for every user listed as a result of a filter. **From Google Cloud CLI** 1. Using a text editor, remove the bindings with the `roles/iam.serviceAccountUser` or `roles/iam.serviceAccountTokenCreator`. For example, you can use the iam.json file shown below as follows: { bindings: [ { members: [ serviceAccount:our-project-123@appspot.gserviceaccount.com, ], role: roles/appengine.appViewer }, { members: [ user:email1@gmail.com ], role: roles/owner }, { members: [ serviceAccount:our-project-123@appspot.gserviceaccount.com, serviceAccount:123456789012-compute@developer.gserviceaccount.com ], role: roles/editor } ], etag: BwUjMhCsNvY= } 2. Update the project's IAM policy: gcloud projects set-iam-policy PROJECT_ID iam.json ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the IAM page in the GCP Console by visiting [https://console.cloud.google.com/iam-admin/iam](https://console.cloud.google.com/iam-admin/iam) 2. Click on the filter table text bar, Type `Role: Service Account User`. 3. Ensure no user is listed as a result of the filter. 4. Click on the filter table text bar, Type `Role: Service Account Token Creator`. 3. Ensure no user is listed as a result of the filter. **From Google Cloud CLI** To ensure IAM users are not assigned Service Account User role at the project level: gcloud projects get-iam-policy PROJECT_ID --format json | jq '.bindings[].role' | grep roles/iam.serviceAccountUser gcloud projects get-iam-policy PROJECT_ID --format json | jq '.bindings[].role' | grep roles/iam.serviceAccountTokenCreator These commands should not return any output.", + "AdditionalInformation": "To assign the role `roles/iam.serviceAccountUser` or `roles/iam.serviceAccountTokenCreator` to a user role on a service account instead of a project: 1. Go to [https://console.cloud.google.com/projectselector/iam-admin/serviceaccounts](https://console.cloud.google.com/projectselector/iam-admin/serviceaccounts) 2. Select ` Target Project` 3. Select `target service account`. Click `Permissions` on the top bar. It will open permission pane on right side of the page 4. Add desired members with `Service Account User` or `Service Account Token Creator` role.", + "References": "https://cloud.google.com/iam/docs/service-accounts:https://cloud.google.com/iam/docs/granting-roles-to-service-accounts:https://cloud.google.com/iam/docs/understanding-roles:https://cloud.google.com/iam/docs/granting-changing-revoking-access:https://console.cloud.google.com/iam-admin/iam", + "DefaultValue": "By default, users do not have the Service Account User or Service Account Token Creator role assigned at project level." + } + ] + }, + { + "Id": "1.7", + "Description": "Ensure User-Managed/External Keys for Service Accounts Are Rotated Every 90 Days or Fewer", + "Checks": [ + "iam_sa_user_managed_key_rotate_90_days" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Service Account keys consist of a key ID (Private_key_Id) and Private key, which are used to sign programmatic requests users make to Google cloud services accessible to that particular service account. It is recommended that all Service Account keys are regularly rotated.", + "RationaleStatement": "Rotating Service Account keys will reduce the window of opportunity for an access key that is associated with a compromised or terminated account to be used. Service Account keys should be rotated to ensure that data cannot be accessed with an old key that might have been lost, cracked, or stolen. Each service account is associated with a key pair managed by Google Cloud Platform (GCP). It is used for service-to-service authentication within GCP. Google rotates the keys daily. GCP provides the option to create one or more user-managed (also called external key pairs) key pairs for use from outside GCP (for example, for use with Application Default Credentials). When a new key pair is created, the user is required to download the private key (which is not retained by Google). With external keys, users are responsible for keeping the private key secure and other management operations such as key rotation. External keys can be managed by the IAM API, gcloud command-line tool, or the Service Accounts page in the Google Cloud Platform Console. GCP facilitates up to 10 external service account keys per service account to facilitate key rotation.", + "ImpactStatement": "Rotating service account keys will break communication for dependent applications. Dependent applications need to be configured manually with the new key `ID` displayed in the `Service account keys` section and the `private key` downloaded by the user.", + "RemediationProcedure": "**From Google Cloud Console** **Delete any external (user-managed) Service Account Key older than 90 days:** 1. Go to `APIs & ServicesCredentials` using `https://console.cloud.google.com/apis/credentials` 2. In the Section `Service Account Keys`, for every external (user-managed) service account key where `creation date` is greater than or equal to the past 90 days, click `Delete Bin Icon` to `Delete Service Account key` **Create a new external (user-managed) Service Account Key for a Service Account:** 1. Go to `APIs & ServicesCredentials` using `https://console.cloud.google.com/apis/credentials` 2. Click `Create Credentials` and Select `Service Account Key`. 3. Choose the service account in the drop-down list for which an External (user-managed) Service Account key needs to be created. 4. Select the desired key type format among `JSON` or `P12`. 5. Click `Create`. It will download the `private key`. Keep it safe. 6. Click `Close` if prompted. 7. The site will redirect to the `APIs & ServicesCredentials` page. Make a note of the new `ID` displayed in the `Service account keys` section.", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `APIs & ServicesCredentials` using `https://console.cloud.google.com/apis/credentials` 2. In the section `Service Account Keys`, for every External (user-managed) service account key listed ensure the `creation date` is within the past 90 days. **From Google Cloud CLI** 1. List all Service accounts from a project. gcloud iam service-accounts list 2. For every service account list service account keys. gcloud iam service-accounts keys list --iam-account [Service_Account_Email_Id] --format=json 3. Ensure every service account key for a service account has a `validAfterTime` value within the past 90 days.", + "AdditionalInformation": "For user-managed Service Account key(s), key management is entirely the user's responsibility.", + "References": "https://cloud.google.com/iam/docs/understanding-service-accounts#managing_service_account_keys:https://cloud.google.com/sdk/gcloud/reference/iam/service-accounts/keys/list:https://cloud.google.com/iam/docs/service-accounts", + "DefaultValue": "GCP does not provide an automation option for External (user-managed) Service key rotation." + } + ] + }, + { + "Id": "1.8", + "Description": "Ensure That Separation of Duties Is Enforced While Assigning Service Account Related Roles to Users", + "Checks": [ + "iam_role_kms_enforce_separation_of_duties" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "It is recommended that the principle of 'Separation of Duties' is enforced while assigning service-account related roles to users.", + "RationaleStatement": "The built-in/predefined IAM role `Service Account admin` allows the user/identity to create, delete, and manage service account(s). The built-in/predefined IAM role `Service Account User` allows the user/identity (with adequate privileges on Compute and App Engine) to assign service account(s) to Apps/Compute Instances. Separation of duties is the concept of ensuring that one individual does not have all necessary permissions to be able to complete a malicious action. In Cloud IAM - service accounts, this could be an action such as using a service account to access resources that user should not normally have access to. Separation of duties is a business control typically used in larger organizations, meant to help avoid security or privacy incidents and errors. It is considered best practice. No user should have `Service Account Admin` and `Service Account User` roles assigned at the same time.", + "ImpactStatement": "The removed role should be assigned to a different user based on business needs.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `IAM & Admin/IAM` using `https://console.cloud.google.com/iam-admin/iam`. 2. For any member having both `Service Account Admin` and `Service account User` roles granted/assigned, click the `Delete Bin` icon to remove either role from the member. Removal of a role should be done based on the business requirements.", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `IAM & Admin/IAM` using `https://console.cloud.google.com/iam-admin/iam`. 2. Ensure no member has the roles `Service Account Admin` and `Service account User` assigned together. **From Google Cloud CLI** 1. List all users and role assignments: gcloud projects get-iam-policy [Project_ID] --format json | jq -r '[ ([Service_Account_Admin_and_User] | (., map(length*-))), ( [ .bindings[] | select(.role == roles/iam.serviceAccountAdmin or .role == roles/iam.serviceAccountUser).members[] ] | group_by(.) | map({User: ., Count: length}) | .[] | select(.Count == 2).User | unique ) ] | .[] | @tsv' 2. All common users listed under `Service_Account_Admin_and_User` are assigned both the `roles/iam.serviceAccountAdmin` and `roles/iam.serviceAccountUser` roles.", + "AdditionalInformation": "Users granted with Owner (roles/owner) and Editor (roles/editor) have privileges equivalent to `Service Account Admin` and `Service Account User`. To avoid the misuse, Owner and Editor roles should be granted to very limited users and Use of these primitive privileges should be minimal. These requirements are addressed in separate recommendations.", + "References": "https://cloud.google.com/iam/docs/service-accounts:https://cloud.google.com/iam/docs/understanding-roles:https://cloud.google.com/iam/docs/granting-roles-to-service-accounts", + "DefaultValue": "" + } + ] + }, + { + "Id": "1.9", + "Description": "Ensure That Cloud KMS Cryptokeys Are Not Anonymously or Publicly Accessible", + "Checks": [ + "kms_key_not_publicly_accessible" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended that the IAM policy on Cloud KMS `cryptokeys` should restrict anonymous and/or public access.", + "RationaleStatement": "Granting permissions to `allUsers` or `allAuthenticatedUsers` allows anyone to access the dataset. Such access might not be desirable if sensitive data is stored at the location. In this case, ensure that anonymous and/or public access to a Cloud KMS `cryptokey` is not allowed.", + "ImpactStatement": "Removing the binding for `allUsers` and `allAuthenticatedUsers` members denies accessing `cryptokeys` to anonymous or public users.", + "RemediationProcedure": "**From Google Cloud CLI** 1. List all Cloud KMS `Cryptokeys`. gcloud kms keys list --keyring=[key_ring_name] --location=global --format=json | jq '.[].name' 2. Remove IAM policy binding for a KMS key to remove access to `allUsers` and `allAuthenticatedUsers` using the below command. gcloud kms keys remove-iam-policy-binding [key_name] --keyring=[key_ring_name] --location=global --member='allAuthenticatedUsers' --role='[role]' gcloud kms keys remove-iam-policy-binding [key_name] --keyring=[key_ring_name] --location=global --member='allUsers' --role='[role]' ", + "AuditProcedure": "**From Google Cloud CLI** 1. List all Cloud KMS `Cryptokeys`. gcloud kms keys list --keyring=[key_ring_name] --location=global --format=json | jq '.[].name' 2. Ensure the below command's output does not contain `allUsers` or `allAuthenticatedUsers`. gcloud kms keys get-iam-policy [key_name] --keyring=[key_ring_name] --location=global --format=json | jq '.bindings[].members[]' ", + "AdditionalInformation": "[key_ring_name] : Is the resource ID of the key ring, which is the fully-qualified Key ring name. This value is case-sensitive and in the form: projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING You can retrieve the key ring resource ID using the Cloud Console: 1. Open the `Cryptographic Keys` page in the Cloud Console. 2. For the key ring whose resource ID you are retrieving, click the `More icon (3 vertical dots)`. 3. Click `Copy Resource ID`. The resource ID for the key ring is copied to your clipboard. [key_name] : Is the resource ID of the key, which is the fully-qualified CryptoKey name. This value is case-sensitive and in the form: projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY You can retrieve the key resource ID using the Cloud Console: 1. Open the `Cryptographic Keys` page in the Cloud Console. 2. Click the name of the key ring that contains the key. 3. For the key whose resource ID you are retrieving, click the `More icon (3 vertical dots)`. 4. Click `Copy Resource ID`. The resource ID for the key is copied to your clipboard. [role] : The role to remove the member from.", + "References": "https://cloud.google.com/sdk/gcloud/reference/kms/keys/remove-iam-policy-binding:https://cloud.google.com/sdk/gcloud/reference/kms/keys/set-iam-policy:https://cloud.google.com/sdk/gcloud/reference/kms/keys/get-iam-policy:https://cloud.google.com/kms/docs/object-hierarchy#key_resource_id", + "DefaultValue": "By default Cloud KMS does not allow access to `allUsers` or `allAuthenticatedUsers`." + } + ] + }, + { + "Id": "1.10", + "Description": "Ensure KMS Encryption Keys Are Rotated Within a Period of 90 Days", + "Checks": [ + "kms_key_rotation_enabled" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Google Cloud Key Management Service stores cryptographic keys in a hierarchical structure designed for useful and elegant access control management. The format for the rotation schedule depends on the client library that is used. For the gcloud command-line tool, the next rotation time must be in `ISO` or `RFC3339` format, and the rotation period must be in the form `INTEGER[UNIT]`, where units can be one of seconds (s), minutes (m), hours (h) or days (d).", + "RationaleStatement": "Set a key rotation period and starting time. A key can be created with a specified `rotation period`, which is the time between when new key versions are generated automatically. A key can also be created with a specified next rotation time. A key is a named object representing a `cryptographic key` used for a specific purpose. The key material, the actual bits used for `encryption`, can change over time as new key versions are created. A key is used to protect some `corpus of data`. A collection of files could be encrypted with the same key and people with `decrypt` permissions on that key would be able to decrypt those files. Therefore, it's necessary to make sure the `rotation period` is set to a specific time.", + "ImpactStatement": "After a successful key rotation, the older key version is required in order to decrypt the data encrypted by that previous key version.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `Cryptographic Keys` by visiting: [https://console.cloud.google.com/security/kms](https://console.cloud.google.com/security/kms). 2. Click on the specific key ring 3. From the list of keys, choose the specific key and Click on `Right side pop up the blade (3 dots)`. 4. Click on `Edit rotation period`. 5. On the pop-up window, `Select a new rotation period` in days which should be less than 90 and then choose `Starting on` date (date from which the rotation period begins). **From Google Cloud CLI** 1. Update and schedule rotation by `ROTATION_PERIOD` and `NEXT_ROTATION_TIME` for each key: gcloud kms keys update new --keyring=KEY_RING --location=LOCATION --next-rotation-time=NEXT_ROTATION_TIME --rotation-period=ROTATION_PERIOD ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `Cryptographic Keys` by visiting: [https://console.cloud.google.com/security/kms](https://console.cloud.google.com/security/kms). 2. Click on each key ring, then ensure each key in the keyring has `Next Rotation` set for less than 90 days from the current date. **From Google Cloud CLI** 1. Ensure rotation is scheduled by `ROTATION_PERIOD` and `NEXT_ROTATION_TIME` for each key : gcloud kms keys list --keyring= --location= --format=json'(rotationPeriod)' Ensure outcome values for `rotationPeriod` and `nextRotationTime` satisfy the below criteria: `rotationPeriod is <= 129600m` `rotationPeriod is <= 7776000s` `rotationPeriod is <= 2160h` `rotationPeriod is <= 90d` `nextRotationTime is <= 90days` from current DATE", + "AdditionalInformation": "- Key rotation does NOT re-encrypt already encrypted data with the newly generated key version. If you suspect unauthorized use of a key, you should re-encrypt the data protected by that key and then disable or schedule destruction of the prior key version. - It is not recommended to rely solely on irregular rotation, but rather to use irregular rotation if needed in conjunction with a regular rotation schedule.", + "References": "https://cloud.google.com/kms/docs/key-rotation#frequency_of_key_rotation:https://cloud.google.com/kms/docs/re-encrypt-data", + "DefaultValue": "By default, KMS encryption keys are rotated every 90 days." + } + ] + }, + { + "Id": "1.11", + "Description": "Ensure That Separation of Duties Is Enforced While Assigning KMS Related Roles to Users", + "Checks": [ + "iam_role_kms_enforce_separation_of_duties" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "It is recommended that the principle of 'Separation of Duties' is enforced while assigning KMS related roles to users.", + "RationaleStatement": "The built-in/predefined IAM role `Cloud KMS Admin` allows the user/identity to create, delete, and manage service account(s). The built-in/predefined IAM role `Cloud KMS CryptoKey Encrypter/Decrypter` allows the user/identity (with adequate privileges on concerned resources) to encrypt and decrypt data at rest using an encryption key(s). The built-in/predefined IAM role `Cloud KMS CryptoKey Encrypter` allows the user/identity (with adequate privileges on concerned resources) to encrypt data at rest using an encryption key(s). The built-in/predefined IAM role `Cloud KMS CryptoKey Decrypter` allows the user/identity (with adequate privileges on concerned resources) to decrypt data at rest using an encryption key(s). Separation of duties is the concept of ensuring that one individual does not have all necessary permissions to be able to complete a malicious action. In Cloud KMS, this could be an action such as using a key to access and decrypt data a user should not normally have access to. Separation of duties is a business control typically used in larger organizations, meant to help avoid security or privacy incidents and errors. It is considered best practice. No user(s) should have `Cloud KMS Admin` and any of the `Cloud KMS CryptoKey Encrypter/Decrypter`, `Cloud KMS CryptoKey Encrypter`, `Cloud KMS CryptoKey Decrypter` roles assigned at the same time.", + "ImpactStatement": "Removed roles should be assigned to another user based on business needs.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `IAM & Admin/IAM` using `https://console.cloud.google.com/iam-admin/iam` 2. For any member having `Cloud KMS Admin` and any of the `Cloud KMS CryptoKey Encrypter/Decrypter`, `Cloud KMS CryptoKey Encrypter`, `Cloud KMS CryptoKey Decrypter` roles granted/assigned, click the `Delete Bin` icon to remove the role from the member. Note: Removing a role should be done based on the business requirement.", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `IAM & Admin/IAM` by visiting: [https://console.cloud.google.com/iam-admin/iam](https://console.cloud.google.com/iam-admin/iam) 2. Ensure no member has the roles `Cloud KMS Admin` and any of the `Cloud KMS CryptoKey Encrypter/Decrypter`, `Cloud KMS CryptoKey Encrypter`, `Cloud KMS CryptoKey Decrypter` assigned. **From Google Cloud CLI** 1. List all users and role assignments: gcloud projects get-iam-policy PROJECT_ID 2. Ensure that there are no common users found in the member section for roles `cloudkms.admin` and any one of `Cloud KMS CryptoKey Encrypter/Decrypter`, `Cloud KMS CryptoKey Encrypter`, `Cloud KMS CryptoKey Decrypter`", + "AdditionalInformation": "Users granted with Owner (roles/owner) and Editor (roles/editor) have privileges equivalent to `Cloud KMS Admin` and `Cloud KMS CryptoKey Encrypter/Decrypter`. To avoid misuse, Owner and Editor roles should be granted to a very limited group of users. Use of these primitive privileges should be minimal.", + "References": "https://cloud.google.com/kms/docs/separation-of-duties", + "DefaultValue": "" + } + ] + }, + { + "Id": "1.12", + "Description": "Ensure API Keys Only Exist for Active Services", + "Checks": [ + "apikeys_key_exists" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "API Keys should only be used for services in cases where other authentication methods are unavailable. Unused keys with their permissions in tact may still exist within a project. Keys are insecure because they can be viewed publicly, such as from within a browser, or they can be accessed on a device where the key resides. It is recommended to use standard authentication flow instead.", + "RationaleStatement": "To avoid the security risk in using API keys, it is recommended to use standard authentication flow instead. Security risks involved in using API-Keys appear below: - API keys are simple encrypted strings - API keys do not identify the user or the application making the API request - API keys are typically accessible to clients, making it easy to discover and steal an API key", + "ImpactStatement": "Deleting an API key will break dependent applications (if any).", + "RemediationProcedure": "**From Console:** 1. Go to `APIs & ServicesCredentials` using https://console.cloud.google.com/apis/credentials. 1. In the section `API Keys`, to delete API Keys: Click the `Delete Bin Icon` in front of every `API Key Name`. **From Google Cloud Command Line** 1. Run the following from within the project you wish to audit gcloud services api-keys list --filter 1. Run the following command, providing the ID of the key or fully qualified identifier for the key for : gcloud services api-keys delete ", + "AuditProcedure": "**From Console:** 1. From within the Project you wish to audit Go to `APIs & ServicesCredentials`. 1. In the section `API Keys`, no API key should be listed. **From Google Cloud Command Line** 1. Run the following from within the project you wish to audit gcloud services api-keys list --filter 1. There should be no keys listed at the project level.", + "AdditionalInformation": "Google recommends using the standard authentication flow instead of using API keys. However, there are limited cases where API keys are more appropriate. For example, if there is a mobile application that needs to use the Google Cloud Translation API, but doesn't otherwise need a backend server, API keys are the simplest way to authenticate to that API. If a business requires API keys to be used, then the API keys should be secured properly.", + "References": "https://cloud.google.com/docs/authentication/api-keys:https://cloud.google.com/sdk/gcloud/reference/services/api-keys/list:https://cloud.google.com/docs/authentication:https://cloud.google.com/sdk/gcloud/reference/services/api-keys/delete", + "DefaultValue": "By default, API keys are not created for a project." + } + ] + }, + { + "Id": "1.13", + "Description": "Ensure API Keys Are Restricted To Use by Only Specified Hosts and Apps", + "Checks": [], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 2", + "AssessmentStatus": "Manual", + "Description": "API Keys should only be used for services in cases where other authentication methods are unavailable. In this case, unrestricted keys are insecure because they can be viewed publicly, such as from within a browser, or they can be accessed on a device where the key resides. It is recommended to restrict API key usage to trusted hosts, HTTP referrers and apps. It is recommended to use the more secure standard authentication flow instead.", + "RationaleStatement": "Security risks involved in using API-Keys appear below: - API keys are simple encrypted strings - API keys do not identify the user or the application making the API request - API keys are typically accessible to clients, making it easy to discover and steal an API key In light of these potential risks, Google recommends using the standard authentication flow instead of API keys. However, there are limited cases where API keys are more appropriate. For example, if there is a mobile application that needs to use the Google Cloud Translation API, but doesn't otherwise need a backend server, API keys are the simplest way to authenticate to that API. In order to reduce attack vectors, API-Keys can be restricted only to trusted hosts, HTTP referrers and applications.", + "ImpactStatement": "Setting `Application Restrictions` may break existing application functioning, if not done carefully.", + "RemediationProcedure": "**From Google Cloud Console** ***Leaving Keys in Place*** 1. Go to `APIs & ServicesCredentials` using `https://console.cloud.google.com/apis/credentials` 2. In the section `API Keys`, Click the `API Key Name`. The API Key properties display on a new page. 3. In the `Key restrictions` section, set the application restrictions to any of `HTTP referrers, IP addresses, Android apps, iOS apps`. 4. Click `Save`. 1. Repeat steps 2,3,4 for every unrestricted API key. **Note:** Do not set `HTTP referrers` to wild-cards (* or *.[TLD] or *.[TLD]/*) allowing access to any/wide HTTP referrer(s) Do not set `IP addresses` and referrer to `any host (0.0.0.0 or 0.0.0.0/0 or ::0)` ***Removing Keys*** Another option is to remove the keys entirely. 1. Go to `APIs & ServicesCredentials` using `https://console.cloud.google.com/apis/credentials` 2. In the section `API Keys`, select the checkbox next to each key you wish to remove 3. Select `Delete` and confirm.", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `APIs & ServicesCredentials` using `https://console.cloud.google.com/apis/credentials` 1. In the section `API Keys`, Click the `API Key Name`. The API Key properties display on a new page. 1. For every API Key, ensure the section `Key restrictions` parameter `Application restrictions` is not set to `None`. Or, 1. Ensure `Application restrictions` is set to `HTTP referrers` and the referrer is not set to wild-cards `(* or *.[TLD] or *.[TLD]/*) allowing access to any/wide HTTP referrer(s)` Or, 1. Ensure `Application restrictions` is set to `IP addresses` and referrer is not set to `any host (0.0.0.0 or 0.0.0.0/0 or ::0)` **From Google Cloud Command Line** 1. Run the following from within the project you wish to audit gcloud services api-keys list --filter=-restrictions:* --format=table[box](displayName:label='Key With No Restrictions') ", + "AdditionalInformation": "", + "References": "https://cloud.google.com/docs/authentication/api-keys:https://cloud.google.com/sdk/gcloud/reference/services/api-keys/list:https://cloud.google.com/sdk/gcloud/reference/services/api-keys/update", + "DefaultValue": "By default, `Application Restrictions` are set to `None`." + } + ] + }, + { + "Id": "1.14", + "Description": "Ensure API Keys Are Restricted to Only APIs That Application Needs Access", + "Checks": [ + "apikeys_api_restrictions_configured" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "API Keys should only be used for services in cases where other authentication methods are unavailable. API keys are always at risk because they can be viewed publicly, such as from within a browser, or they can be accessed on a device where the key resides. It is recommended to restrict API keys to use (call) only APIs required by an application.", + "RationaleStatement": "Security risks involved in using API-Keys are below: - API keys are simple encrypted strings - API keys do not identify the user or the application making the API request - API keys are typically accessible to clients, making it easy to discover and steal an API key In light of these potential risks, Google recommends using the standard authentication flow instead of API-Keys. However, there are limited cases where API keys are more appropriate. For example, if there is a mobile application that needs to use the Google Cloud Translation API, but doesn't otherwise need a backend server, API keys are the simplest way to authenticate to that API. In order to reduce attack surfaces by providing `least privileges`, API-Keys can be restricted to use (call) only APIs required by an application.", + "ImpactStatement": "Setting `API restrictions` may break existing application functioning, if not done carefully.", + "RemediationProcedure": "**From Console:** 1. Go to `APIs & ServicesCredentials` using `https://console.cloud.google.com/apis/credentials` 2. In the section `API Keys`, Click the `API Key Name`. The API Key properties display on a new page. 3. In the `Key restrictions` section go to `API restrictions`. 4. Click the `Select API` drop-down to choose an API. 5. Click `Save`. 6. Repeat steps 2,3,4,5 for every unrestricted API key **Note:** Do not set `API restrictions` to `Google Cloud APIs`, as this option allows access to all services offered by Google cloud. **From Google Cloud CLI** 1. List all API keys. gcloud services api-keys list 2. Note the `UID` of the key to add restrictions to. 3. Run the update command with the appropriate API target service or flags file with API target services and methods to add the required restrictions. Command with appropriate API target service: gcloud services api-keys update --api-target=service= Command with flags file: gcloud services api-keys update --flags-file=.yaml Content of flags file: - --api-target: service: foo.service.com - --api-target: service: bar.service.com methods: - foomethod - barmethod Note: Flags can be found by running: gcloud services api-keys update --help Note: Services can be found by running: gcloud services list or in this documentation https://cloud.google.com/sdk/gcloud/reference/services/api-keys/update", + "AuditProcedure": "**From Console:** 1. Go to `APIs & ServicesCredentials` using `https://console.cloud.google.com/apis/credentials` 2. In the section `API Keys`, Click the `API Key Name`. The API Key properties display on a new page. 3. For every API Key, ensure the section `Key restrictions` parameter `API restrictions` is not set to `None`. Or, Ensure `API restrictions` is not set to `Google Cloud APIs` **Note:** `Google Cloud APIs` represents the API collection of all cloud services/APIs offered by Google cloud. **From Google Cloud CLI** 1. List all API Keys. gcloud services api-keys list Each key should have a line that says `restrictions:` followed by varying parameters and NOT have a line saying `- service: cloudapis.googleapis.com` as shown here restrictions: apiTargets: - service: cloudapis.googleapis.com ", + "AdditionalInformation": "", + "References": "https://cloud.google.com/docs/authentication/api-keys:https://cloud.google.com/apis/docs/overview", + "DefaultValue": "By default, `API restrictions` are set to `None`." + } + ] + }, + { + "Id": "1.15", + "Description": "Ensure API Keys Are Rotated Every 90 Days", + "Checks": [ + "apikeys_key_rotated_in_90_days" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "API Keys should only be used for services in cases where other authentication methods are unavailable. If they are in use it is recommended to rotate API keys every 90 days.", + "RationaleStatement": "Security risks involved in using API-Keys are listed below: - API keys are simple encrypted strings - API keys do not identify the user or the application making the API request - API keys are typically accessible to clients, making it easy to discover and steal an API key Because of these potential risks, Google recommends using the standard authentication flow instead of API Keys. However, there are limited cases where API keys are more appropriate. For example, if there is a mobile application that needs to use the Google Cloud Translation API, but doesn't otherwise need a backend server, API keys are the simplest way to authenticate to that API. Once a key is stolen, it has no expiration, meaning it may be used indefinitely unless the project owner revokes or regenerates the key. Rotating API keys will reduce the window of opportunity for an access key that is associated with a compromised or terminated account to be used. API keys should be rotated to ensure that data cannot be accessed with an old key that might have been lost, cracked, or stolen.", + "ImpactStatement": "`Regenerating Key` may break existing client connectivity as the client will try to connect with older API keys they have stored on devices.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `APIs & ServicesCredentials` using `https://console.cloud.google.com/apis/credentials` 2. In the section `API Keys`, Click the `API Key Name`. The API Key properties display on a new page. 3. Click `REGENERATE KEY` to rotate API key. 4. Click `Save`. 5. Repeat steps 2,3,4 for every API key that has not been rotated in the last 90 days. **Note:** Do not set `HTTP referrers` to wild-cards (* or *.[TLD] or *.[TLD]/*) allowing access to any/wide HTTP referrer(s) Do not set `IP addresses` and referrer to `any host (0.0.0.0 or 0.0.0.0/0 or ::0)` **From Google Cloud CLI** There is not currently a way to regenerate and API key using gcloud commands. To 'regenerate' a key you will need to create a new one, duplicate the restrictions from the key being rotated, and delete the old key. 1. List existing keys. gcloud services api-keys list 2. Note the `UID` and restrictions of the key to regenerate. 3. Run this command to create a new API key. is the display name of the new key. ` gcloud services api-keys create --display-name= ` Note the `UID` of the newly created key 4. Run the update command to add required restrictions. Note - the restriction may vary for each key. Refer to this documentation for the appropriate flags. https://cloud.google.com/sdk/gcloud/reference/services/api-keys/update gcloud services api-keys update 5. Delete the old key. gcloud services api-keys delete ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `APIs & ServicesCredentials` using `https://console.cloud.google.com/apis/credentials` 2. In the section `API Keys`, for every key ensure the `creation date` is less than 90 days. **From Google Cloud CLI** To list keys, use the command gcloud services api-keys list Ensure the date in `createTime` is within 90 days.", + "AdditionalInformation": "There is no option to automatically regenerate (rotate) API keys periodically.", + "References": "https://developers.google.com/maps/api-security-best-practices#regenerate-apikey:https://cloud.google.com/sdk/gcloud/reference/services/api-keys/update", + "DefaultValue": "" + } + ] + }, + { + "Id": "1.16", + "Description": "Ensure Essential Contacts is Configured for Organization", + "Checks": [ + "iam_organization_essential_contacts_configured" + ], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended that Essential Contacts is configured to designate email addresses for Google Cloud services to notify of important technical or security information.", + "RationaleStatement": "Many Google Cloud services, such as Cloud Billing, send out notifications to share important information with Google Cloud users. By default, these notifications are sent to members with certain Identity and Access Management (IAM) roles. With Essential Contacts, you can customize who receives notifications by providing your own list of contacts.", + "ImpactStatement": "There is no charge for Essential Contacts except for the 'Technical Incidents' category that is only available to premium support customers.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `Essential Contacts` by visiting https://console.cloud.google.com/iam-admin/essential-contacts 2. Make sure the organization appears in the resource selector at the top of the page. The resource selector tells you what project, folder, or organization you are currently managing contacts for. 3. Click `+Add contact` 4. In the `Email` and `Confirm Email` fields, enter the email address of the contact. 5. From the `Notification categories` drop-down menu, select the notification categories that you want the contact to receive communications for. 6. Click `Save` **From Google Cloud CLI** 1. To add an organization Essential Contacts run a command: gcloud essential-contacts create --email= --notification-categories= --organization= ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `Essential Contacts` by visiting https://console.cloud.google.com/iam-admin/essential-contacts 2. Make sure the organization appears in the resource selector at the top of the page. The resource selector tells you what project, folder, or organization you are currently managing contacts for. 3. Ensure that appropriate email addresses are configured for each of the following notification categories: - `Legal` - `Security` - `Suspension` - `Technical` Alternatively, appropriate email addresses can be configured for the `All` notification category to receive all possible important notifications. **From Google Cloud CLI** 1. To list all configured organization Essential Contacts run a command: gcloud essential-contacts list --organization= 2. Ensure at least one appropriate email address is configured for each of the following notification categories: - `LEGAL` - `SECURITY` - `SUSPENSION` - `TECHNICAL` Alternatively, appropriate email addresses can be configured for the `ALL` notification category to receive all possible important notifications.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/resource-manager/docs/managing-notification-contacts", + "DefaultValue": "By default, there are no Essential Contacts configured. In the absence of an Essential Contact, the following IAM roles are used to identify users to notify for the following categories: - **Legal**: `roles/billing.admin` - **Security**: `roles/resourcemanager.organizationAdmin` - **Suspension**: `roles/owner` - **Technical**: `roles/owner` - **Technical Incidents**: `roles/owner`" + } + ] + }, + { + "Id": "1.17", + "Description": "Ensure Secrets are Not Stored in Cloud Functions Environment Variables by Using Secret Manager", + "Checks": [], + "Attributes": [ + { + "Section": "1 Identity and Access Management", + "Profile": "Level 1", + "AssessmentStatus": "Manual", + "Description": "Google Cloud Functions allow you to host serverless code that is executed when an event is triggered, without the requiring the management a host operating system. These functions can also store environment variables to be used by the code that may contain authentication or other information that needs to remain confidential.", + "RationaleStatement": "It is recommended to use the Secret Manager, because environment variables are stored unencrypted, and accessible for all users who have access to the code.", + "ImpactStatement": "There should be no impact on the Cloud Function. There are minor costs after 10,000 requests a month to the Secret Manager API as well for a high use of other functions. Modifying the Cloud Function to use the Secret Manager may prevent it running to completion.", + "RemediationProcedure": "Enable Secret Manager API for your Project **From Google Cloud Console** 1. Within the project you wish to enable, select the Navigation hamburger menu in the top left. Hover over 'APIs & Services' to under the heading 'Serverless', then select 'Enabled APIs & Services' in the menu that opens up. 2. Click the button '+ Enable APIS and Services' 3. In the Search bar, search for 'Secret Manager API' and select it. 4. Click the blue box that says 'Enable'. **From Google Cloud CLI** 1. Within the project you wish to enable the API in, run the following command. gcloud services enable Secret Manager API Reviewing Environment Variables That Should Be Migrated to Secret Manager **From Google Cloud Console** 1. Log in to the Google Cloud Web Portal (https://console.cloud.google.com/) 1. Go to Cloud Functions 1. Click on a function name from the list 1. Click on Edit and review the Runtime environment for variables that should be secrets. Leave this list open for the next step. **From Google Cloud CLI** 1. To view a list of your cloud functions run gcloud functions list 2. For each cloud function run the following command. gcloud functions describe 3. Review the settings of the buildEnvironmentVariables and environmentVariables. Keep this information for the next step. Migrating Environment Variables to Secrets within the Secret Manager **From Google Cloud Console** 1. Go to the Secret Manager page in the Cloud Console. 1. On the Secret Manager page, click Create Secret. 1. On the Create secret page, under Name, enter the name of the Environment Variable you are replacing. This will then be the Secret Variable you will reference in your code. 1. You will also need to add a version. This is the actual value of the variable that will be referenced from the code. To add a secret version when creating the initial secret, in the Secret value field, enter the value from the Environment Variable you are replacing. 1. Leave the Regions section unchanged. 1. Click the Create secret button. 1. Repeat for all Environment Variables **From Google Cloud CLI** 1. Run the following command with the Environment Variable name you are replacing in the ``. It is most secure to point this command to a file with the Environment Variable value located in it, as if you entered it via command line it would show up in your shell’s command history. gcloud secrets create --data-file=/path/to/file.txt Granting your Runtime's Service Account Access to Secrets **From Google Cloud Console** 1. Within the project containing your runtime login with account that has the 'roles/secretmanager.secretAccessor' permission. 2. Select the Navigation hamburger menu in the top left. Hover over 'Security' to under the then select 'Secret Manager' in the menu that opens up. 3. Click the name of a secret listed in this screen. 4. If it is not already open, click Show Info Panel in this screen to open the panel. 5.In the info panel, click Add principal. 6.In the New principals field, enter the service account your function uses for its identity. (If you need help locating or updating your runtime's service account, please see the 'docs/securing/function-identity#runtime_service_account' reference.) 7. In the Select a role dropdown, choose Secret Manager and then Secret Manager Secret Accessor. **From Google Cloud CLI** As of the time of writing, using Google CLI to list Runtime variables is only in beta. Because this is likely to change we are not including it here. Modifying the Code to use the Secrets in Secret Manager **From Google Cloud Console** This depends heavily on which language your runtime is in. For the sake of the brevity of this recommendation, please see the '/docs/creating-and-accessing-secrets#access' reference for language specific instructions. **From Google Cloud CLI** This depends heavily on which language your runtime is in. For the sake of the brevity of this recommendation, please see the' /docs/creating-and-accessing-secrets#access' reference for language specific instructions. Deleting the Insecure Environment Variables **Be certain to do this step last.** Removing variables from code actively referencing them will prevent it from completing successfully. **From Google Cloud Console** 1. Select the Navigation hamburger menu in the top left. Hover over 'Security' then select 'Secret Manager' in the menu that opens up. 1. Click the name of a function. Click Edit. 1. Click Runtime, build and connections settings to expand the advanced configuration options. 1. Click 'Security’. Hover over the secret you want to remove, then click 'Delete'. 1. Click Next. Click Deploy. The latest version of the runtime will now reference the secrets in Secret Manager. **From Google Cloud CLI** gcloud functions deploy --remove-env-vars If you need to find the env vars to remove, they are from the step where ‘gcloud functions describe ``’ was run.", + "AuditProcedure": "Determine if Confidential Information is Stored in your Functions in Cleartext **From Google Cloud Console** 1. Within the project you wish to audit, select the Navigation hamburger menu in the top left. Scroll down to under the heading 'Serverless', then select 'Cloud Functions' 1. Click on a function name from the list 1. Open the Variables tab and you will see both buildEnvironmentVariables and environmentVariables 1. Review the variables whether they are secrets 1. Repeat step 3-5 until all functions are reviewed **From Google Cloud CLI** 1. To view a list of your cloud functions run gcloud functions list 2. For each cloud function in the list run the following command. gcloud functions describe 3. Review the settings of the buildEnvironmentVariables and environmentVariables. Determine if this is data that should not be publicly accessible. Determine if Secret Manager API is 'Enabled' for your Project **From Google Cloud Console** 1. Within the project you wish to audit, select the Navigation hamburger menu in the top left. Hover over 'APIs & Services' to under the heading 'Serverless', then select 'Enabled APIs & Services' in the menu that opens up. 1. Click the button '+ Enable APIS and Services' 1. In the Search bar, search for 'Secret Manager API' and select it. 1. If it is enabled, the blue box that normally says 'Enable' will instead say 'Manage'. **From Google Cloud CLI** 1. Within the project you wish to audit, run the following command. gcloud services list 2. If 'Secret Manager API' is in the list, it is enabled.", + "AdditionalInformation": "There are slight additional costs to using the Secret Manager API. Review the documentation to determine your organizations' needs.", + "References": "https://cloud.google.com/functions/docs/configuring/env-var#managing_secrets:https://cloud.google.com/secret-manager/docs/overview", + "DefaultValue": "By default Secret Manager is not enabled." + } + ] + }, + { + "Id": "2.1", + "Description": "Ensure That Cloud Audit Logging Is Configured Properly", + "Checks": [ + "iam_audit_logs_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended that Cloud Audit Logging is configured to track all admin activities and read, write access to user data.", + "RationaleStatement": "Cloud Audit Logging maintains two audit logs for each project, folder, and organization: Admin Activity and Data Access. 1. Admin Activity logs contain log entries for API calls or other administrative actions that modify the configuration or metadata of resources. Admin Activity audit logs are enabled for all services and cannot be configured. 2. Data Access audit logs record API calls that create, modify, or read user-provided data. These are disabled by default and should be enabled. There are three kinds of Data Access audit log information: - Admin read: Records operations that read metadata or configuration information. Admin Activity audit logs record writes of metadata and configuration information that cannot be disabled. - Data read: Records operations that read user-provided data. - Data write: Records operations that write user-provided data. It is recommended to have an effective default audit config configured in such a way that: 1. logtype is set to DATA_READ (to log user activity tracking) and DATA_WRITES (to log changes/tampering to user data). 2. audit config is enabled for all the services supported by the Data Access audit logs feature. 3. Logs should be captured for all users, i.e., there are no exempted users in any of the audit config sections. This will ensure overriding the audit config will not contradict the requirement.", + "ImpactStatement": "There is no charge for Admin Activity audit logs. Enabling the Data Access audit logs might result in your project being charged for the additional logs usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `Audit Logs` by visiting [https://console.cloud.google.com/iam-admin/audit](https://console.cloud.google.com/iam-admin/audit). 2. Follow the steps at [https://cloud.google.com/logging/docs/audit/configure-data-access](https://cloud.google.com/logging/docs/audit/configure-data-access) to enable audit logs for all Google Cloud services. Ensure that no exemptions are allowed. **From Google Cloud CLI** 1. To read the project's IAM policy and store it in a file run a command: gcloud projects get-iam-policy PROJECT_ID > /tmp/project_policy.yaml Alternatively, the policy can be set at the organization or folder level. If setting the policy at the organization level, it is not necessary to also set it for each folder or project. gcloud organizations get-iam-policy ORGANIZATION_ID > /tmp/org_policy.yaml gcloud resource-manager folders get-iam-policy FOLDER_ID > /tmp/folder_policy.yaml 2. Edit policy in /tmp/policy.yaml, adding or changing only the audit logs configuration to: **Note: Admin Activity Logs are enabled by default, and cannot be disabled. So they are not listed in these configuration changes.** auditConfigs: - auditLogConfigs: - logType: DATA_WRITE - logType: DATA_READ service: allServices **Note:** `exemptedMembers:` is not set as audit logging should be enabled for all the users 3. To write new IAM policy run command: gcloud organizations set-iam-policy ORGANIZATION_ID /tmp/org_policy.yaml gcloud resource-manager folders set-iam-policy FOLDER_ID /tmp/folder_policy.yaml gcloud projects set-iam-policy PROJECT_ID /tmp/project_policy.yaml If the preceding command reports a conflict with another change, then repeat these steps, starting with the first step.", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `Audit Logs` by visiting [https://console.cloud.google.com/iam-admin/audit](https://console.cloud.google.com/iam-admin/audit). 2. Ensure that Admin Read, Data Write, and Data Read are enabled for all Google Cloud services and that no exemptions are allowed. **From Google Cloud CLI** 1. List the Identity and Access Management (IAM) policies for the project, folder, or organization: gcloud organizations get-iam-policy ORGANIZATION_ID gcloud resource-manager folders get-iam-policy FOLDER_ID gcloud projects get-iam-policy PROJECT_ID 2. Policy should have a default auditConfigs section which has the logtype set to DATA_WRITES and DATA_READ for all services. Note that projects inherit settings from folders, which in turn inherit settings from the organization. When called, projects get-iam-policy, the result shows only the policies set in the project, not the policies inherited from the parent folder or organization. Nevertheless, if the parent folder has Cloud Audit Logging enabled, the project does as well. Sample output for default audit configs may look like this: auditConfigs: - auditLogConfigs: - logType: ADMIN_READ - logType: DATA_WRITE - logType: DATA_READ service: allServices 3. Any of the auditConfigs sections should not have parameter exemptedMembers: set, which will ensure that Logging is enabled for all users and no user is exempted.", + "AdditionalInformation": "- Log type `DATA_READ` is equally important to that of `DATA_WRITE` to track detailed user activities. - BigQuery Data Access logs are handled differently from other data access logs. BigQuery logs are enabled by default and cannot be disabled. They do not count against logs allotment and cannot result in extra logs charges.", + "References": "https://cloud.google.com/logging/docs/audit/:https://cloud.google.com/logging/docs/audit/configure-data-access", + "DefaultValue": "Admin Activity logs are always enabled. They cannot be disabled. Data Access audit logs are disabled by default because they can be quite large." + } + ] + }, + { + "Id": "2.2", + "Description": "Ensure That Sinks Are Configured for All Log Entries", + "Checks": [ + "cloudstorage_bucket_log_retention_policy_lock" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to create a sink that will export copies of all the log entries. This can help aggregate logs from multiple projects and export them to a Security Information and Event Management (SIEM).", + "RationaleStatement": "Log entries are held in Cloud Logging. To aggregate logs, export them to a SIEM. To keep them longer, it is recommended to set up a log sink. Exporting involves writing a filter that selects the log entries to export, and choosing a destination in Cloud Storage, BigQuery, or Cloud Pub/Sub. The filter and destination are held in an object called a sink. To ensure all log entries are exported to sinks, ensure that there is no filter configured for a sink. Sinks can be created in projects, organizations, folders, and billing accounts.", + "ImpactStatement": "There are no costs or limitations in Cloud Logging for exporting logs, but the export destinations charge for storing or transmitting the log data.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `Logs Router` by visiting [https://console.cloud.google.com/logs/router](https://console.cloud.google.com/logs/router). 2. Click on the arrow symbol with `CREATE SINK` text. 3. Fill out the fields for `Sink details`. 4. Choose Cloud Logging bucket in the Select sink destination drop down menu. 5. Choose a log bucket in the next drop down menu. 6. If an inclusion filter is not provided for this sink, all ingested logs will be routed to the destination provided above. This may result in higher than expected resource usage. 7. Click `Create Sink`. For more information, see [https://cloud.google.com/logging/docs/export/configure_export_v2#dest-create](https://cloud.google.com/logging/docs/export/configure_export_v2#dest-create). **From Google Cloud CLI** To create a sink to export all log entries in a Google Cloud Storage bucket: gcloud logging sinks create storage.googleapis.com/DESTINATION_BUCKET_NAME Sinks can be created for a folder or organization, which will include all projects. gcloud logging sinks create storage.googleapis.com/DESTINATION_BUCKET_NAME --include-children --folder=FOLDER_ID | --organization=ORGANIZATION_ID **Note:** 1. A sink created by the command-line above will export logs in storage buckets. However, sinks can be configured to export logs into BigQuery, or Cloud Pub/Sub, or `Custom Destination`. 2. While creating a sink, the sink option `--log-filter` is not used to ensure the sink exports all log entries. 3. A sink can be created at a folder or organization level that collects the logs of all the projects underneath bypassing the option `--include-children` in the gcloud command.", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `Logs Router` by visiting [https://console.cloud.google.com/logs/router](https://console.cloud.google.com/logs/router). 2. For every sink, click the 3-dot button for Menu options and select `View sink details`. 3. Ensure there is at least one sink with an `empty` Inclusion filter. 4. Additionally, ensure that the resource configured as `Destination` exists. **From Google Cloud CLI** 1. Ensure that a sink with an `empty filter` exists. List the sinks for the project, folder or organization. If sinks are configured at a folder or organization level, they do not need to be configured for each project: gcloud logging sinks list --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID The output should list at least one sink with an `empty filter`. 2. Additionally, ensure that the resource configured as `Destination` exists. See [https://cloud.google.com/sdk/gcloud/reference/beta/logging/sinks/list](https://cloud.google.com/sdk/gcloud/reference/beta/logging/sinks/list) for more information.", + "AdditionalInformation": "For Command-Line Audit and Remediation, the sink destination of type `Cloud Storage Bucket` is considered. However, the destination could be configured to `Cloud Storage Bucket` or `BigQuery` or `Cloud PubSub` or `Custom Destination`. Command Line Interface commands would change accordingly.", + "References": "https://cloud.google.com/logging/docs/reference/tools/gcloud-logging:https://cloud.google.com/logging/quotas:https://cloud.google.com/logging/docs/routing/overview:https://cloud.google.com/logging/docs/export/using_exported_logs:https://cloud.google.com/logging/docs/export/configure_export_v2:https://cloud.google.com/logging/docs/export/aggregated_exports:https://cloud.google.com/sdk/gcloud/reference/beta/logging/sinks/list", + "DefaultValue": "By default, there are no sinks configured." + } + ] + }, + { + "Id": "2.3", + "Description": "Ensure That Retention Policies on Cloud Storage Buckets Used for Exporting Logs Are Configured Using Bucket Lock", + "Checks": [ + "cloudstorage_bucket_log_retention_policy_lock" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "Enabling retention policies on log buckets will protect logs stored in cloud storage buckets from being overwritten or accidentally deleted. It is recommended to set up retention policies and configure Bucket Lock on all storage buckets that are used as log sinks.", + "RationaleStatement": "Logs can be exported by creating one or more sinks that include a log filter and a destination. As Cloud Logging receives new log entries, they are compared against each sink. If a log entry matches a sink's filter, then a copy of the log entry is written to the destination. Sinks can be configured to export logs in storage buckets. It is recommended to configure a data retention policy for these cloud storage buckets and to lock the data retention policy; thus permanently preventing the policy from being reduced or removed. This way, if the system is ever compromised by an attacker or a malicious insider who wants to cover their tracks, the activity logs are definitely preserved for forensics and security investigations.", + "ImpactStatement": "Locking a bucket is an irreversible action. Once you lock a bucket, you cannot remove the retention policy from the bucket or decrease the retention period for the policy. You will then have to wait for the retention period for all items within the bucket before you can delete them, and then the bucket.", + "RemediationProcedure": "**From Google Cloud Console** 1. If sinks are **not** configured, first follow the instructions in the recommendation: `Ensure that sinks are configured for all Log entries`. 2. For each storage bucket configured as a sink, go to the Cloud Storage browser at `https://console.cloud.google.com/storage/browser/`. 3. Select the Bucket Lock tab near the top of the page. 4. In the Retention policy entry, click the Add Duration link. The `Set a retention policy` dialog box appears. 5. Enter the desired length of time for the retention period and click `Save policy`. 6. Set the `Lock status` for this retention policy to `Locked`. **From Google Cloud CLI** 1. To list all sinks destined to storage buckets: gcloud logging sinks list --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID 2. For each storage bucket listed above, set a retention policy and lock it: gsutil retention set [TIME_DURATION] gs://[BUCKET_NAME] gsutil retention lock gs://[BUCKET_NAME] For more information, visit [https://cloud.google.com/storage/docs/using-bucket-lock#set-policy](https://cloud.google.com/storage/docs/using-bucket-lock#set-policy).", + "AuditProcedure": "**From Google Cloud Console** 1. Open the Cloud Storage browser in the Google Cloud Console by visiting [https://console.cloud.google.com/storage/browser](https://console.cloud.google.com/storage/browser). 2. In the Column display options menu, make sure `Retention policy` is checked. 3. In the list of buckets, the retention period of each bucket is found in the `Retention policy` column. If the retention policy is locked, an image of a lock appears directly to the left of the retention period. **From Google Cloud CLI** 1. To list all sinks destined to storage buckets: gcloud logging sinks list --folder=FOLDER_ID | --organization=ORGANIZATION_ID | --project=PROJECT_ID 2. For every storage bucket listed above, verify that retention policies and Bucket Lock are enabled: gsutil retention get gs://BUCKET_NAME For more information, see [https://cloud.google.com/storage/docs/using-bucket-lock#view-policy](https://cloud.google.com/storage/docs/using-bucket-lock#view-policy).", + "AdditionalInformation": "Caution: Locking a retention policy is an irreversible action. Once locked, you must delete the entire bucket in order to remove the bucket's retention policy. However, before you can delete the bucket, you must be able to delete all the objects in the bucket, which itself is only possible if all the objects have reached the retention period set by the retention policy.", + "References": "https://cloud.google.com/storage/docs/bucket-lock:https://cloud.google.com/storage/docs/using-bucket-lock:https://cloud.google.com/storage/docs/bucket-lock", + "DefaultValue": "By default, storage buckets used as log sinks do not have retention policies and Bucket Lock configured." + } + ] + }, + { + "Id": "2.4", + "Description": "Ensure Log Metric Filter and Alerts Exist for Project Ownership Assignments/Changes", + "Checks": [ + "logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "In order to prevent unnecessary project ownership assignments to users/service-accounts and further misuses of projects and resources, all `roles/Owner` assignments should be monitored. Members (users/Service-Accounts) with a role assignment to primitive role `roles/Owner` are project owners. The project owner has all the privileges on the project the role belongs to. These are summarized below: - All viewer permissions on all GCP Services within the project - Permissions for actions that modify the state of all GCP services within the project - Manage roles and permissions for a project and all resources within the project - Set up billing for a project Granting the owner role to a member (user/Service-Account) will allow that member to modify the Identity and Access Management (IAM) policy. Therefore, grant the owner role only if the member has a legitimate purpose to manage the IAM policy. This is because the project IAM policy contains sensitive access control data. Having a minimal set of users allowed to manage IAM policy will simplify any auditing that may be necessary.", + "RationaleStatement": "Project ownership has the highest level of privileges on a project. To avoid misuse of project resources, the project ownership assignment/change actions mentioned above should be monitored and alerted to concerned recipients. - Sending project ownership invites - Acceptance/Rejection of project ownership invite by user - Adding `roleOwner` to a user/service-account - Removing a user/Service account from `roleOwner`", + "ImpactStatement": "Enabling of logging may result in your project being charged for the additional logs usage.", + "RemediationProcedure": "**From Google Cloud Console** **Create the prescribed log metric:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics) and click CREATE METRIC. 2. Click the down arrow symbol on the `Filter Bar` at the rightmost corner and select `Convert to Advanced Filter`. 3. Clear any text and add: (protoPayload.serviceName=cloudresourcemanager.googleapis.com) AND (ProjectOwnership OR projectOwnerInvitee) OR (protoPayload.serviceData.policyDelta.bindingDeltas.action=REMOVE AND protoPayload.serviceData.policyDelta.bindingDeltas.role=roles/owner) OR (protoPayload.serviceData.policyDelta.bindingDeltas.action=ADD AND protoPayload.serviceData.policyDelta.bindingDeltas.role=roles/owner) 4. Click `Submit Filter`. The logs display based on the filter text entered by the user. 5. In the `Metric Editor` menu on the right, fill out the name field. Set `Units` to `1` (default) and the `Type` to `Counter`. This ensures that the log metric counts the number of log entries matching the advanced logs query. 6. Click `Create Metric`. **Create the display prescribed Alert Policy:** 1. Identify the newly created metric under the section `User-defined Metrics` at [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. Click the 3-dot icon in the rightmost column for the desired metric and select `Create alert from Metric`. A new page opens. 3. Fill out the alert policy configuration and click `Save`. Choose the alerting threshold and configuration that makes sense for the user's organization. For example, a threshold of zero(0) for the most recent value will ensure that a notification is triggered for every owner change in the project: Set `Aggregator` to `Count` Set `Configuration`: - Condition: above - Threshold: 0 - For: most recent value 4. Configure the desired notifications channels in the section `Notifications`. 5. Name the policy and click `Save`. **From Google Cloud CLI** Create a prescribed Log Metric: - Use the command: gcloud beta logging metrics create - Reference for Command Usage: https://cloud.google.com/sdk/gcloud/reference/beta/logging/metrics/create Create prescribed Alert Policy - Use the command: gcloud alpha monitoring policies create - Reference for Command Usage: https://cloud.google.com/sdk/gcloud/reference/alpha/monitoring/policies/create", + "AuditProcedure": "**From Google Cloud Console** **Ensure that the prescribed log metric is present:** 1. Go to `Logging/Log-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. In the `User-defined Metrics` section, ensure that at least one metric `` is present with filter text: (protoPayload.serviceName=cloudresourcemanager.googleapis.com) AND (ProjectOwnership OR projectOwnerInvitee) OR (protoPayload.serviceData.policyDelta.bindingDeltas.action=REMOVE AND protoPayload.serviceData.policyDelta.bindingDeltas.role=roles/owner) OR (protoPayload.serviceData.policyDelta.bindingDeltas.action=ADD AND protoPayload.serviceData.policyDelta.bindingDeltas.role=roles/owner) **Ensure that the prescribed Alerting Policy is present:** 3. Go to `Alerting` by visiting [https://console.cloud.google.com/monitoring/alerting](https://console.cloud.google.com/monitoring/alerting). 4. Under the `Policies` section, ensure that at least one alert policy exists for the log metric above. Clicking on the policy should show that it is configured with a condition. For example, `Violates when: Any logging.googleapis.com/user/ stream` `is above a threshold of zero(0) for greater than zero(0) seconds` means that the alert will trigger for any new owner change. Verify that the chosen alerting thresholds make sense for your organization. 5. Ensure that the appropriate notifications channels have been set up. **From Google Cloud CLI** **Ensure that the prescribed log metric is present:** 1. List the log metrics: gcloud logging metrics list --format json 2. Ensure that the output contains at least one metric with filter set to: (protoPayload.serviceName=cloudresourcemanager.googleapis.com) AND (ProjectOwnership OR projectOwnerInvitee) OR (protoPayload.serviceData.policyDelta.bindingDeltas.action=REMOVE AND protoPayload.serviceData.policyDelta.bindingDeltas.role=roles/owner) OR (protoPayload.serviceData.policyDelta.bindingDeltas.action=ADD AND protoPayload.serviceData.policyDelta.bindingDeltas.role=roles/owner) 3. Note the value of the property `metricDescriptor.type` for the identified metric, in the format `logging.googleapis.com/user/`. **Ensure that the prescribed alerting policy is present:** 4. List the alerting policies: gcloud alpha monitoring policies list --format json 5. Ensure that the output contains an least one alert policy where: - `conditions.conditionThreshold.filter` is set to `metric.type=logging.googleapis.com/user/` - AND `enabled` is set to `true`", + "AdditionalInformation": "1. Project ownership assignments for a user cannot be done using the gcloud utility as assigning project ownership to a user requires sending, and the user accepting, an invitation. 2. Project Ownership assignment to a service account does not send any invites. SetIAMPolicy to `role/owner`is directly performed on service accounts.", + "References": "https://cloud.google.com/logging/docs/logs-based-metrics/:https://cloud.google.com/monitoring/custom-metrics/:https://cloud.google.com/monitoring/alerts/:https://cloud.google.com/logging/docs/reference/tools/gcloud-logging", + "DefaultValue": "" + } + ] + }, + { + "Id": "2.5", + "Description": "Ensure That the Log Metric Filter and Alerts Exist for Audit Configuration Changes", + "Checks": [ + "logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Google Cloud Platform (GCP) services write audit log entries to the Admin Activity and Data Access logs to help answer the questions of, who did what, where, and when? within GCP projects. Cloud audit logging records information includes the identity of the API caller, the time of the API call, the source IP address of the API caller, the request parameters, and the response elements returned by GCP services. Cloud audit logging provides a history of GCP API calls for an account, including API calls made via the console, SDKs, command-line tools, and other GCP services.", + "RationaleStatement": "Admin activity and data access logs produced by cloud audit logging enable security analysis, resource change tracking, and compliance auditing. Configuring the metric filter and alerts for audit configuration changes ensures the recommended state of audit configuration is maintained so that all activities in the project are audit-able at any point in time.", + "ImpactStatement": "Enabling of logging may result in your project being charged for the additional logs usage.", + "RemediationProcedure": "**From Google Cloud Console** **Create the prescribed log metric:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics) and click CREATE METRIC. 2. Click the down arrow symbol on the `Filter Bar` at the rightmost corner and select `Convert to Advanced Filter`. 3. Clear any text and add: protoPayload.methodName=SetIamPolicy AND protoPayload.serviceData.policyDelta.auditConfigDeltas:* 4. Click `Submit Filter`. Display logs appear based on the filter text entered by the user. 5. In the `Metric Editor` menu on the right, fill out the name field. Set `Units` to `1` (default) and `Type` to `Counter`. This will ensure that the log metric counts the number of log entries matching the user's advanced logs query. 6. Click `Create Metric`. **Create a prescribed Alert Policy:** 1. Identify the new metric the user just created, under the section `User-defined Metrics` at [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. Click the 3-dot icon in the rightmost column for the new metric and select `Create alert from Metric`. A new page opens. 3. Fill out the alert policy configuration and click `Save`. Choose the alerting threshold and configuration that makes sense for the organization. For example, a threshold of zero(0) for the most recent value will ensure that a notification is triggered for every owner change in the project: Set `Aggregator` to `Count` Set `Configuration`: - Condition: above - Threshold: 0 - For: most recent value 4. Configure the desired notifications channels in the section `Notifications`. 5. Name the policy and click `Save`. **From Google Cloud CLI** Create a prescribed Log Metric: - Use the command: gcloud beta logging metrics create - Reference for command usage: [https://cloud.google.com/sdk/gcloud/reference/beta/logging/metrics/create ](https://cloud.google.com/sdk/gcloud/reference/beta/logging/metrics/create) Create prescribed Alert Policy - Use the command: gcloud alpha monitoring policies create - Reference for command usage: [https://cloud.google.com/sdk/gcloud/reference/alpha/monitoring/policies/create](https://cloud.google.com/sdk/gcloud/reference/alpha/monitoring/policies/create)", + "AuditProcedure": "**From Google Cloud Console** **Ensure the prescribed log metric is present:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. In the `User-defined Metrics` section, ensure that at least one metric `` is present with the filter text: protoPayload.methodName=SetIamPolicy AND protoPayload.serviceData.policyDelta.auditConfigDeltas:* **Ensure that the prescribed alerting policy is present:** 3. Go to `Alerting` by visiting [https://console.cloud.google.com/monitoring/alerting](https://console.cloud.google.com/monitoring/alerting). 4. Under the `Policies` section, ensure that at least one alert policy exists for the log metric above. Clicking on the policy should show that it is configured with a condition. For example, `Violates when: Any logging.googleapis.com/user/ stream` `is above a threshold of 0 for greater than zero(0) seconds`, means that the alert will trigger for any new owner change. Verify that the chosen alerting thresholds make sense for the user's organization. 5. Ensure that appropriate notifications channels have been set up. **From Google Cloud CLI** **Ensure that the prescribed log metric is present:** 1. List the log metrics: gcloud beta logging metrics list --format json 2. Ensure that the output contains at least one metric with the filter set to: protoPayload.methodName=SetIamPolicy AND protoPayload.serviceData.policyDelta.auditConfigDeltas:* 3. Note the value of the property `metricDescriptor.type` for the identified metric, in the format `logging.googleapis.com/user/`. **Ensure that the prescribed alerting policy is present:** 4. List the alerting policies: gcloud alpha monitoring policies list --format json 5. Ensure that the output contains at least one alert policy where: - `conditions.conditionThreshold.filter` is set to `metric.type=logging.googleapis.com/user/` - AND `enabled` is set to `true`", + "AdditionalInformation": "", + "References": "https://cloud.google.com/logging/docs/logs-based-metrics/:https://cloud.google.com/monitoring/custom-metrics/:https://cloud.google.com/monitoring/alerts/:https://cloud.google.com/logging/docs/reference/tools/gcloud-logging:https://cloud.google.com/logging/docs/audit/configure-data-access#getiampolicy-setiampolicy", + "DefaultValue": "" + } + ] + }, + { + "Id": "2.6", + "Description": "Ensure That the Log Metric Filter and Alerts Exist for Custom Role Changes", + "Checks": [ + "logging_log_metric_filter_and_alert_for_custom_role_changes_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended that a metric filter and alarm be established for changes to Identity and Access Management (IAM) role creation, deletion and updating activities.", + "RationaleStatement": "Google Cloud IAM provides predefined roles that give granular access to specific Google Cloud Platform resources and prevent unwanted access to other resources. However, to cater to organization-specific needs, Cloud IAM also provides the ability to create custom roles. Project owners and administrators with the Organization Role Administrator role or the IAM Role Administrator role can create custom roles. Monitoring role creation, deletion and updating activities will help in identifying any over-privileged role at early stages.", + "ImpactStatement": "Enabling of logging may result in your project being charged for the additional logs usage.", + "RemediationProcedure": "**From Console:** **Create the prescribed log metric:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics) and click CREATE METRIC. 1. Click the down arrow symbol on the `Filter Bar` at the rightmost corner and select `Convert to Advanced Filter`. 1. Clear any text and add: resource.type=iam_role AND (protoPayload.methodName = google.iam.admin.v1.CreateRole OR protoPayload.methodName=google.iam.admin.v1.DeleteRole OR protoPayload.methodName=google.iam.admin.v1.UpdateRole OR protoPayload.methodName=google.iam.admin.v1.UndeleteRole) 1. Click `Submit Filter`. Display logs appear based on the filter text entered by the user. 1. In the `Metric Editor` menu on the right, fill out the name field. Set `Units` to `1` (default) and `Type` to `Counter`. This ensures that the log metric counts the number of log entries matching the advanced logs query. 1. Click `Create Metric`. **Create a prescribed Alert Policy:** 1. Identify the new metric that was just created under the section `User-defined Metrics` at [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. Click the 3-dot icon in the rightmost column for the metric and select `Create alert from Metric`. A new page displays. 3. Fill out the alert policy configuration and click `Save`. Choose the alerting threshold and configuration that makes sense for the user's organization. For example, a threshold of zero(0) for the most recent value ensures that a notification is triggered for every owner change in the project: Set `Aggregator` to `Count` Set `Configuration`: - Condition: above - Threshold: 0 - For: most recent value 1. Configure the desired notification channels in the section `Notifications`. 1. Name the policy and click `Save`. **From Google Cloud CLI** Create the prescribed Log Metric: - Use the command: gcloud logging metrics create Create the prescribed Alert Policy: - Use the command: gcloud alpha monitoring policies create ", + "AuditProcedure": "**From Console:** **Ensure that the prescribed log metric is present:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. In the `User-defined Metrics` section, ensure that at least one metric `` is present with filter text: resource.type=iam_role AND (protoPayload.methodName=google.iam.admin.v1.CreateRole OR protoPayload.methodName=google.iam.admin.v1.DeleteRole OR protoPayload.methodName=google.iam.admin.v1.UpdateRole OR protoPayload.methodName=google.iam.admin.v1.UndeleteRole) **Ensure that the prescribed alerting policy is present:** 3. Go to `Alerting` by visiting [https://console.cloud.google.com/monitoring/alerting](https://console.cloud.google.com/monitoring/alerting). 4. Under the `Policies` section, ensure that at least one alert policy exists for the log metric above. Clicking on the policy should show that it is configured with a condition. For example, `Violates when: Any logging.googleapis.com/user/ stream` `is above a threshold of zero(0) for greater than zero(0) seconds` means that the alert will trigger for any new owner change. Verify that the chosen alerting thresholds make sense for the user's organization. 5. Ensure that the appropriate notifications channels have been set up. **From Google Cloud CLI** Ensure that the prescribed log metric is present: 1. List the log metrics: gcloud logging metrics list --format json 2. Ensure that the output contains at least one metric with the filter set to: resource.type=iam_role AND (protoPayload.methodName = google.iam.admin.v1.CreateRole OR protoPayload.methodName=google.iam.admin.v1.DeleteRole OR protoPayload.methodName=google.iam.admin.v1.UpdateRole OR protoPayload.methodName=google.iam.admin.v1.UndeleteRole) 3. Note the value of the property `metricDescriptor.type` for the identified metric, in the format `logging.googleapis.com/user/`. **Ensure that the prescribed alerting policy is present:** 4. List the alerting policies: gcloud alpha monitoring policies list --format json 5. Ensure that the output contains an least one alert policy where: - `conditions.conditionThreshold.filter` is set to `metric.type=logging.googleapis.com/user/` - AND `enabled` is set to `true`.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/logging/docs/logs-based-metrics/:https://cloud.google.com/monitoring/custom-metrics/:https://cloud.google.com/monitoring/alerts/:https://cloud.google.com/logging/docs/reference/tools/gcloud-logging:https://cloud.google.com/iam/docs/understanding-custom-roles", + "DefaultValue": "" + } + ] + }, + { + "Id": "2.7", + "Description": "Ensure That the Log Metric Filter and Alerts Exist for VPC Network Firewall Rule Changes", + "Checks": [ + "logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "It is recommended that a metric filter and alarm be established for Virtual Private Cloud (VPC) Network Firewall rule changes.", + "RationaleStatement": "Monitoring for Create or Update Firewall rule events gives insight to network access changes and may reduce the time it takes to detect suspicious activity.", + "ImpactStatement": "Enabling of logging may result in your project being charged for the additional logs usage. These charges could be significant depending on the size of the organization.", + "RemediationProcedure": "**From Google Cloud Console** **Create the prescribed log metric:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics) and click CREATE METRIC. 2. Click the down arrow symbol on the `Filter Bar` at the rightmost corner and select `Convert to Advanced Filter`. 3. Clear any text and add: resource.type=gce_firewall_rule AND (protoPayload.methodName:compute.firewalls.patch OR protoPayload.methodName:compute.firewalls.insert OR protoPayload.methodName:compute.firewalls.delete) 4. Click `Submit Filter`. Display logs appear based on the filter text entered by the user. 5. In the `Metric Editor` menu on the right, fill out the name field. Set `Units` to `1` (default) and `Type` to `Counter`. This ensures that the log metric counts the number of log entries matching the advanced logs query. 6. Click `Create Metric`. **Create the prescribed Alert Policy:** 1. Identify the newly created metric under the section `User-defined Metrics` at [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. Click the 3-dot icon in the rightmost column for the new metric and select `Create alert from Metric`. A new page displays. 3. Fill out the alert policy configuration and click `Save`. Choose the alerting threshold and configuration that makes sense for the user's organization. For example, a threshold of zero(0) for the most recent value ensures that a notification is triggered for every owner change in the project: Set `Aggregator` to `Count` Set `Configuration`: - Condition: above - Threshold: 0 - For: most recent value 4. Configure the desired notifications channels in the section `Notifications`. 5. Name the policy and click `Save`. **From Google Cloud CLI** Create the prescribed Log Metric - Use the command: gcloud logging metrics create Create the prescribed alert policy: - Use the command: gcloud alpha monitoring policies create", + "AuditProcedure": "**From Google Cloud Console** **Ensure that the prescribed log metric is present:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. In the `User-defined Metrics` section, ensure at least one metric `` is present with this filter text: resource.type=gce_firewall_rule AND (protoPayload.methodName:compute.firewalls.patch OR protoPayload.methodName:compute.firewalls.insert OR protoPayload.methodName:compute.firewalls.delete) **Ensure that the prescribed alerting policy is present:** 3. Go to `Alerting` by visiting [https://console.cloud.google.com/monitoring/alerting](https://console.cloud.google.com/monitoring/alerting). 4. Under the `Policies` section, ensure that at least one alert policy exists for the log metric above. Clicking on the policy should show that it is configured with a condition. For example, `Violates when: Any logging.googleapis.com/user/ stream` `is above a threshold of zero(0) for greater than zero(0) seconds` means that the alert will trigger for any new owner change. Verify that the chosen alerting thresholds make sense for the user's organization. 5. Ensure that appropriate notification channels have been set up. **From Google Cloud CLI** **Ensure that the prescribed log metric is present:** 1. List the log metrics: gcloud logging metrics list --format json 2. Ensure that the output contains at least one metric with the filter set to: resource.type=gce_firewall_rule AND (protoPayload.methodName:compute.firewalls.patch OR protoPayload.methodName:compute.firewalls.insert OR protoPayload.methodName:compute.firewalls.delete) 3. Note the value of the property `metricDescriptor.type` for the identified metric, in the format `logging.googleapis.com/user/`. **Ensure that the prescribed alerting policy is present:** 4. List the alerting policies: gcloud alpha monitoring policies list --format json 5. Ensure that the output contains an least one alert policy where: - `conditions.conditionThreshold.filter` is set to `metric.type=logging.googleapis.com/user/` - AND `enabled` is set to `true`", + "AdditionalInformation": "", + "References": "https://cloud.google.com/logging/docs/logs-based-metrics/:https://cloud.google.com/monitoring/custom-metrics/:https://cloud.google.com/monitoring/alerts/:https://cloud.google.com/logging/docs/reference/tools/gcloud-logging:https://cloud.google.com/vpc/docs/firewalls", + "DefaultValue": "" + } + ] + }, + { + "Id": "2.8", + "Description": "Ensure That the Log Metric Filter and Alerts Exist for VPC Network Route Changes", + "Checks": [ + "logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "It is recommended that a metric filter and alarm be established for Virtual Private Cloud (VPC) network route changes.", + "RationaleStatement": "Google Cloud Platform (GCP) routes define the paths network traffic takes from a VM instance to another destination. The other destination can be inside the organization VPC network (such as another VM) or outside of it. Every route consists of a destination and a next hop. Traffic whose destination IP is within the destination range is sent to the next hop for delivery. Monitoring changes to route tables will help ensure that all VPC traffic flows through an expected path.", + "ImpactStatement": "Enabling of logging may result in your project being charged for the additional logs usage. These charges could be significant depending on the size of the organization.", + "RemediationProcedure": "**From Google Cloud Console** **Create the prescribed Log Metric:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics) and click CREATE METRIC. 2. Click the down arrow symbol on the `Filter Bar` at the rightmost corner and select `Convert to Advanced Filter` 3. Clear any text and add: resource.type=gce_route AND (protoPayload.methodName:compute.routes.delete OR protoPayload.methodName:compute.routes.insert) 4. Click `Submit Filter`. Display logs appear based on the filter text entered by the user. 5. In the `Metric Editor` menu on the right, fill out the name field. Set `Units` to `1` (default) and `Type` to `Counter`. This ensures that the log metric counts the number of log entries matching the user's advanced logs query. 6. Click `Create Metric`. **Create the prescribed alert policy:** 1. Identify the newly created metric under the section `User-defined Metrics` at [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. Click the 3-dot icon in the rightmost column for the new metric and select `Create alert from Metric`. A new page displays. 3. Fill out the alert policy configuration and click `Save`. Choose the alerting threshold and configuration that makes sense for the user's organization. For example, a threshold of zero(0) for the most recent value ensures that a notification is triggered for every owner change in the project: Set `Aggregator` to `Count` Set `Configuration`: - Condition: above - Threshold: 0 - For: most recent value 4. Configure the desired notification channels in the section `Notifications`. 5. Name the policy and click `Save`. **From Google Cloud CLI** Create the prescribed Log Metric: - Use the command: gcloud logging metrics create Create the prescribed the alert policy: - Use the command: gcloud alpha monitoring policies create", + "AuditProcedure": "**From Google Cloud Console** **Ensure that the prescribed Log metric is present:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. In the `User-defined Metrics` section, ensure that at least one metric `` is present with the filter text: resource.type=gce_route AND (protoPayload.methodName:compute.routes.delete OR protoPayload.methodName:compute.routes.insert) **Ensure the prescribed alerting policy is present:** 3. Go to `Alerting` by visiting: [https://console.cloud.google.com/monitoring/alerting](https://console.cloud.google.com/monitoring/alerting). 4. Under the `Policies` section, ensure that at least one alert policy exists for the log metric above. Clicking on the policy should show that it is configured with a condition. For example, `Violates when: Any logging.googleapis.com/user/ stream` `is above a threshold of 0 for greater than zero(0) seconds` means that the alert will trigger for any new owner change. Verify that the chosen alert thresholds make sense for the user's organization. 5. Ensure that the appropriate notification channels have been set up. **From Google Cloud CLI** **Ensure the prescribed log metric is present:** 1. List the log metrics: gcloud logging metrics list --format json 2. Ensure that the output contains at least one metric with the filter set to: resource.type=gce_route AND (protoPayload.methodName:compute.routes.delete OR protoPayload.methodName:compute.routes.insert) 3. Note the value of the property `metricDescriptor.type` for the identified metric, in the format `logging.googleapis.com/user/`. **Ensure that the prescribed alerting policy is present:** 4. List the alerting policies: gcloud alpha monitoring policies list --format json 5. Ensure that the output contains an least one alert policy where: - `conditions.conditionThreshold.filter` is set to `metric.type=logging.googleapis.com/user/` - AND `enabled` is set to `true`", + "AdditionalInformation": "", + "References": "https://cloud.google.com/logging/docs/logs-based-metrics/:https://cloud.google.com/monitoring/custom-metrics/:https://cloud.google.com/monitoring/alerts/:https://cloud.google.com/logging/docs/reference/tools/gcloud-logging:https://cloud.google.com/storage/docs/access-control/iam:https://cloud.google.com/sdk/gcloud/reference/beta/logging/metrics/create:https://cloud.google.com/sdk/gcloud/reference/alpha/monitoring/policies/create", + "DefaultValue": "" + } + ] + }, + { + "Id": "2.9", + "Description": "Ensure That the Log Metric Filter and Alerts Exist for VPC Network Changes", + "Checks": [ + "logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "It is recommended that a metric filter and alarm be established for Virtual Private Cloud (VPC) network changes.", + "RationaleStatement": "It is possible to have more than one VPC within a project. In addition, it is also possible to create a peer connection between two VPCs enabling network traffic to route between VPCs. Monitoring changes to a VPC will help ensure VPC traffic flow is not getting impacted.", + "ImpactStatement": "Enabling of logging may result in your project being charged for the additional logs usage. These charges could be significant depending on the size of the organization.", + "RemediationProcedure": "**From Google Cloud Console** **Create the prescribed log metric:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics) and click CREATE METRIC. 2. Click the down arrow symbol on `Filter Bar` at the rightmost corner and select `Convert to Advanced Filter`. 3. Clear any text and add: resource.type=gce_network AND (protoPayload.methodName:compute.networks.insert OR protoPayload.methodName:compute.networks.patch OR protoPayload.methodName:compute.networks.delete OR protoPayload.methodName:compute.networks.removePeering OR protoPayload.methodName:compute.networks.addPeering) 4. Click `Submit Filter`. Display logs appear based on the filter text entered by the user. 5. In the `Metric Editor` menu on the right, fill out the name field. Set `Units` to `1` (default) and `Type` to `Counter`. This ensures that the log metric counts the number of log entries matching the user's advanced logs query. 6. Click `Create Metric`. **Create the prescribed alert policy:** 1. Identify the newly created metric under the section `User-defined Metrics` at [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. Click the 3-dot icon in the rightmost column for the new metric and select `Create alert from Metric`. A new page appears. 3. Fill out the alert policy configuration and click `Save`. Choose the alerting threshold and configuration that makes sense for the user's organization. For example, a threshold of 0 for the most recent value will ensure that a notification is triggered for every owner change in the project: Set `Aggregator` to `Count` Set `Configuration`: - Condition: above - Threshold: 0 - For: most recent value 4. Configure the desired notification channels in the section `Notifications`. 5. Name the policy and click `Save`. **From Google Cloud CLI** Create the prescribed Log Metric: - Use the command: gcloud logging metrics create Create the prescribed alert policy: - Use the command: gcloud alpha monitoring policies create", + "AuditProcedure": "**From Google Cloud Console** **Ensure the prescribed log metric is present:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. In the `User-defined Metrics` section, ensure at least one metric `` is present with filter text: resource.type=gce_network AND (protoPayload.methodName:compute.networks.insert OR protoPayload.methodName:compute.networks.patch OR protoPayload.methodName:compute.networks.delete OR protoPayload.methodName:compute.networks.removePeering OR protoPayload.methodName:compute.networks.addPeering) **Ensure the prescribed alerting policy is present:** 3. Go to `Alerting` by visiting [https://console.cloud.google.com/monitoring/alerting](https://console.cloud.google.com/monitoring/alerting). 4. Under the `Policies` section, ensure that at least one alert policy exists for the log metric above. Clicking on the policy should show that it is configured with a condition. For example, `Violates when: Any logging.googleapis.com/user/ stream` `is above a threshold of 0 for greater than 0 seconds` means that the alert will trigger for any new owner change. Verify that the chosen alerting thresholds make sense for the user's organization. 5. Ensure that appropriate notification channels have been set up. **From Google Cloud CLI** **Ensure the log metric is present:** 1. List the log metrics: gcloud logging metrics list --format json 2. Ensure that the output contains at least one metric with filter set to: resource.type=gce_network AND protoPayload.methodName=beta.compute.networks.insert OR protoPayload.methodName=beta.compute.networks.patch OR protoPayload.methodName=v1.compute.networks.delete OR protoPayload.methodName=v1.compute.networks.removePeering OR protoPayload.methodName=v1.compute.networks.addPeering 3. Note the value of the property `metricDescriptor.type` for the identified metric, in the format `logging.googleapis.com/user/`. **Ensure the prescribed alerting policy is present:** 4. List the alerting policies: gcloud alpha monitoring policies list --format json 5. Ensure that the output contains at least one alert policy where: - `conditions.conditionThreshold.filter` is set to `metric.type=logging.googleapis.com/user/` - AND `enabled` is set to `true`", + "AdditionalInformation": "", + "References": "https://cloud.google.com/logging/docs/logs-based-metrics/:https://cloud.google.com/monitoring/custom-metrics/:https://cloud.google.com/monitoring/alerts/:https://cloud.google.com/logging/docs/reference/tools/gcloud-logging:https://cloud.google.com/vpc/docs/overview", + "DefaultValue": "" + } + ] + }, + { + "Id": "2.10", + "Description": "Ensure That the Log Metric Filter and Alerts Exist for Cloud Storage IAM Permission Changes", + "Checks": [ + "logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "It is recommended that a metric filter and alarm be established for Cloud Storage Bucket IAM changes.", + "RationaleStatement": "Monitoring changes to cloud storage bucket permissions may reduce the time needed to detect and correct permissions on sensitive cloud storage buckets and objects inside the bucket.", + "ImpactStatement": "Enabling of logging may result in your project being charged for the additional logs usage. These charges could be significant depending on the size of the organization.", + "RemediationProcedure": "**From Google Cloud Console** **Create the prescribed log metric:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics) and click CREATE METRIC. 2. Click the down arrow symbol on the `Filter Bar` at the rightmost corner and select `Convert to Advanced Filter`. 3. Clear any text and add: resource.type=gcs_bucket AND protoPayload.methodName=storage.setIamPermissions 4. Click `Submit Filter`. Display logs appear based on the filter text entered by the user. 5. In the `Metric Editor` menu on right, fill out the name field. Set `Units` to `1` (default) and `Type` to `Counter`. This ensures that the log metric counts the number of log entries matching the user's advanced logs query. 6. Click `Create Metric`. **Create the prescribed Alert Policy:** 1. Identify the newly created metric under the section `User-defined Metrics` at [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. Click the 3-dot icon in the rightmost column for the new metric and select `Create alert from Metric`. A new page appears. 3. Fill out the alert policy configuration and click `Save`. Choose the alerting threshold and configuration that makes sense for the user's organization. For example, a threshold of zero(0) for the most recent value will ensure that a notification is triggered for every owner change in the project: Set `Aggregator` to `Count` Set `Configuration`: - Condition: above - Threshold: 0 - For: most recent value 4. Configure the desired notifications channels in the section `Notifications`. 5. Name the policy and click `Save`. **From Google Cloud CLI** Create the prescribed Log Metric: - Use the command: gcloud beta logging metrics create Create the prescribed alert policy: - Use the command: gcloud alpha monitoring policies create", + "AuditProcedure": "**From Google Cloud Console** **Ensure the prescribed log metric is present:** 1. For each project that contains cloud storage buckets, go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. In the `User-defined Metrics` section, ensure at least one metric `` is present with the filter text: resource.type=gcs_bucket AND protoPayload.methodName=storage.setIamPermissions **Ensure that the prescribed alerting policy is present:** 3. Go to `Alerting` by visiting [https://console.cloud.google.com/monitoring/alerting](https://console.cloud.google.com/monitoring/alerting). 4. Under the `Policies` section, ensure that at least one alert policy exists for the log metric above. Clicking on the policy should show that it is configured with a condition. For example, `Violates when: Any logging.googleapis.com/user/ stream` `is above a threshold of 0 for greater than 0 seconds` means that the alert will trigger for any new owner change. Verify that the chosen alerting thresholds make sense for the user's organization. 5. Ensure that the appropriate notifications channels have been set up. **From Google Cloud CLI** **Ensure that the prescribed log metric is present:** 1. List the log metrics: gcloud logging metrics list --format json 2. Ensure that the output contains at least one metric with the filter set to: resource.type=gcs_bucket AND protoPayload.methodName=storage.setIamPermissions 3. Note the value of the property `metricDescriptor.type` for the identified metric, in the format `logging.googleapis.com/user/`. **Ensure the prescribed alerting policy is present:** 4. List the alerting policies: gcloud alpha monitoring policies list --format json 5. Ensure that the output contains an least one alert policy where: - `conditions.conditionThreshold.filter` is set to `metric.type=logging.googleapis.com/user/` - AND `enabled` is set to `true`", + "AdditionalInformation": "", + "References": "https://cloud.google.com/logging/docs/logs-based-metrics/:https://cloud.google.com/monitoring/custom-metrics/:https://cloud.google.com/monitoring/alerts/:https://cloud.google.com/logging/docs/reference/tools/gcloud-logging:https://cloud.google.com/storage/docs/overview:https://cloud.google.com/storage/docs/access-control/iam-roles", + "DefaultValue": "" + } + ] + }, + { + "Id": "2.11", + "Description": "Ensure That the Log Metric Filter and Alerts Exist for SQL Instance Configuration Changes", + "Checks": [ + "logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "It is recommended that a metric filter and alarm be established for SQL instance configuration changes.", + "RationaleStatement": "Monitoring changes to SQL instance configuration changes may reduce the time needed to detect and correct misconfigurations done on the SQL server. Below are a few of the configurable options which may the impact security posture of an SQL instance: - Enable auto backups and high availability: Misconfiguration may adversely impact business continuity, disaster recovery, and high availability - Authorize networks: Misconfiguration may increase exposure to untrusted networks", + "ImpactStatement": "Enabling of logging may result in your project being charged for the additional logs usage. These charges could be significant depending on the size of the organization.", + "RemediationProcedure": "**From Google Cloud Console** **Create the prescribed Log Metric:** 1. Go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics) and click CREATE METRIC. 2. Click the down arrow symbol on the `Filter Bar` at the rightmost corner and select `Convert to Advanced Filter`. 3. Clear any text and add: protoPayload.methodName=cloudsql.instances.update 4. Click `Submit Filter`. Display logs appear based on the filter text entered by the user. 5. In the `Metric Editor` menu on right, fill out the name field. Set `Units` to `1` (default) and `Type` to `Counter`. This ensures that the log metric counts the number of log entries matching the user's advanced logs query. 6. Click `Create Metric`. **Create the prescribed alert policy:** 1. Identify the newly created metric under the section `User-defined Metrics` at [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. Click the 3-dot icon in the rightmost column for the new metric and select `Create alert from Metric`. A new page appears. 3. Fill out the alert policy configuration and click `Save`. Choose the alerting threshold and configuration that makes sense for the user's organization. For example, a threshold of zero(0) for the most recent value will ensure that a notification is triggered for every owner change in the user's project: Set `Aggregator` to `Count` Set `Configuration`: - Condition: above - Threshold: 0 - For: most recent value 4. Configure the desired notification channels in the section `Notifications`. 5. Name the policy and click `Save`. **From Google Cloud CLI** Create the prescribed log metric: - Use the command: gcloud logging metrics create Create the prescribed alert policy: - Use the command: gcloud alpha monitoring policies create - Reference for command usage: [https://cloud.google.com/sdk/gcloud/reference/alpha/monitoring/policies/create](https://cloud.google.com/sdk/gcloud/reference/alpha/monitoring/policies/create)", + "AuditProcedure": "**From Google Cloud Console** **Ensure the prescribed log metric is present:** 1. For each project that contains Cloud SQL instances, go to `Logging/Logs-based Metrics` by visiting [https://console.cloud.google.com/logs/metrics](https://console.cloud.google.com/logs/metrics). 2. In the `User-defined Metrics` section, ensure that at least one metric `` is present with the filter text: protoPayload.methodName=cloudsql.instances.update **Ensure that the prescribed alerting policy is present:** 3. Go to `Alerting` by visiting [https://console.cloud.google.com/monitoring/alerting](https://console.cloud.google.com/monitoring/alerting). 4. Under the `Policies` section, ensure that at least one alert policy exists for the log metric above. Clicking on the policy should show that it is configured with a condition. For example, `Violates when: Any logging.googleapis.com/user/ stream` `is above a threshold of zero(0) for greater than zero(0) seconds` means that the alert will trigger for any new owner change. Verify that the chosen alerting thresholds make sense for the user's organization. 5. Ensure that the appropriate notifications channels have been set up. **From Google Cloud CLI** **Ensure that the prescribed log metric is present:** 1. List the log metrics: gcloud logging metrics list --format json 2. Ensure that the output contains at least one metric with the filter set to protoPayload.methodName=cloudsql.instances.update 3. Note the value of the property `metricDescriptor.type` for the identified metric, in the format `logging.googleapis.com/user/`. **Ensure that the prescribed alerting policy is present:** 4. List the alerting policies: gcloud alpha monitoring policies list --format json 5. Ensure that the output contains at least one alert policy where: - `conditions.conditionThreshold.filter` is set to `metric.type=logging.googleapis.com/user/` - AND `enabled` is set to `true`", + "AdditionalInformation": "", + "References": "https://cloud.google.com/logging/docs/logs-based-metrics/:https://cloud.google.com/monitoring/custom-metrics/:https://cloud.google.com/monitoring/alerts/:https://cloud.google.com/logging/docs/reference/tools/gcloud-logging:https://cloud.google.com/storage/docs/overview:https://cloud.google.com/sql/docs/:https://cloud.google.com/sql/docs/mysql/:https://cloud.google.com/sql/docs/postgres/", + "DefaultValue": "" + } + ] + }, + { + "Id": "2.12", + "Description": "Ensure That Cloud DNS Logging Is Enabled for All VPC Networks", + "Checks": [], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Cloud DNS logging records the queries from the name servers within your VPC to Stackdriver. Logged queries can come from Compute Engine VMs, GKE containers, or other GCP resources provisioned within the VPC.", + "RationaleStatement": "Security monitoring and forensics cannot depend solely on IP addresses from VPC flow logs, especially when considering the dynamic IP usage of cloud resources, HTTP virtual host routing, and other technology that can obscure the DNS name used by a client from the IP address. Monitoring of Cloud DNS logs provides visibility to DNS names requested by the clients within the VPC. These logs can be monitored for anomalous domain names, evaluated against threat intelligence, and Note: For full capture of DNS, firewall must block egress UDP/53 (DNS) and TCP/443 (DNS over HTTPS) to prevent client from using external DNS name server for resolution.", + "ImpactStatement": "Enabling of Cloud DNS logging might result in your project being charged for the additional logs usage.", + "RemediationProcedure": "**From Google Cloud CLI** **Add New DNS Policy With Logging Enabled** For each VPC network that needs a DNS policy with logging enabled: gcloud dns policies create enable-dns-logging --enable-logging --description=Enable DNS Logging --networks=VPC_NETWORK_NAME The VPC_NETWORK_NAME can be one or more networks in comma-separated list **Enable Logging for Existing DNS Policy** For each VPC network that has an existing DNS policy that needs logging enabled: gcloud dns policies update POLICY_NAME --enable-logging --networks=VPC_NETWORK_NAME The VPC_NETWORK_NAME can be one or more networks in comma-separated list", + "AuditProcedure": "**From Google Cloud CLI** 1. List all VPCs networks in a project: gcloud compute networks list --format=table[box,title='All VPC Networks'](name:label='VPC Network Name') 2. List all DNS policies, logging enablement, and associated VPC networks: gcloud dns policies list --flatten=networks[] --format=table[box,title='All DNS Policies By VPC Network'](name:label='Policy Name',enableLogging:label='Logging Enabled':align=center,networks.networkUrl.basename():label='VPC Network Name') Each VPC Network should be associated with a DNS policy with logging enabled.", + "AdditionalInformation": "Additional Info - Only queries that reach a name server are logged. Cloud DNS resolvers cache responses, queries answered from caches, or direct queries to an external DNS resolver outside the VPC are not logged.", + "References": "https://cloud.google.com/dns/docs/monitoring", + "DefaultValue": "Cloud DNS logging is disabled by default on each network." + } + ] + }, + { + "Id": "2.13", + "Description": "Ensure Cloud Asset Inventory Is Enabled", + "Checks": [ + "iam_cloud_asset_inventory_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "GCP Cloud Asset Inventory is services that provides a historical view of GCP resources and IAM policies through a time-series database. The information recorded includes metadata on Google Cloud resources, metadata on policies set on Google Cloud projects or resources, and runtime information gathered within a Google Cloud resource. Cloud Asset Inventory Service (CAIS) API enablement is not required for operation of the service, but rather enables the mechanism for searching/exporting CAIS asset data directly.", + "RationaleStatement": "The GCP resources and IAM policies captured by GCP Cloud Asset Inventory enables security analysis, resource change tracking, and compliance auditing. It is recommended GCP Cloud Asset Inventory be enabled for all GCP projects.", + "ImpactStatement": "", + "RemediationProcedure": "**From Google Cloud Console** Enable the Cloud Asset API: 1. Go to `API & Services/Library` by visiting [https://console.cloud.google.com/apis/library](https://console.cloud.google.com/apis/library) 2. Search for `Cloud Asset API` and select the result for _Cloud Asset API_ 3. Click the `ENABLE` button. **From Google Cloud CLI** Enable the Cloud Asset API: 1. Enable the Cloud Asset API through the services interface: gcloud services enable cloudasset.googleapis.com ", + "AuditProcedure": "**From Google Cloud Console** Ensure that the Cloud Asset API is enabled: 1. Go to `API & Services/Library` by visiting [https://console.cloud.google.com/apis/library](https://console.cloud.google.com/apis/library) 2. Search for `Cloud Asset API` and select the result for _Cloud Asset API_ 3. Ensure that `API Enabled` is displayed. **From Google Cloud CLI** Ensure that the Cloud Asset API is enabled: 1. Query enabled services: gcloud services list --enabled --filter=name:cloudasset.googleapis.com If the API is listed, then it is enabled. If the response is `Listed 0 items` the API is not enabled.", + "AdditionalInformation": "Additional info - Cloud Asset Inventory only keeps a five-week history of Google Cloud asset metadata. If a longer history is desired, automation to export the history to Cloud Storage or BigQuery should be evaluated. Users need not enable CAI API if they don't have any plans to export.", + "References": "https://cloud.google.com/asset-inventory/docs", + "DefaultValue": "The Cloud Asset Inventory API is disabled by default in each project." + } + ] + }, + { + "Id": "2.14", + "Description": "Ensure 'Access Transparency' is 'Enabled'", + "Checks": [], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 2", + "AssessmentStatus": "Manual", + "Description": "GCP Access Transparency provides audit logs for all actions that Google personnel take in your Google Cloud resources.", + "RationaleStatement": "Controlling access to your information is one of the foundations of information security. Given that Google Employees do have access to your organizations' projects for support reasons, you should have logging in place to view who, when, and why your information is being accessed.", + "ImpactStatement": "To use Access Transparency your organization will need to have at one of the following support level: Premium, Enterprise, Platinum, or Gold. There will be subscription costs associated with support, as well as increased storage costs for storing the logs. You will also not be able to turn Access Transparency off yourself, and you will need to submit a service request to Google Cloud Support.", + "RemediationProcedure": "**From Google Cloud Console** **Add privileges to enable Access Transparency** 1. From the Google Cloud Home, within the project you wish to check, click on the Navigation hamburger menu in the top left. Hover over the 'IAM and Admin'. Select `IAM` in the top of the column that opens. 2. Click the blue button the says `+add` at the top of the screen. 3. In the `principals` field, select a user or group by typing in their associated email address. 4. Click on the `role` field to expand it. In the filter field enter `Access Transparency Admin` and select it. 5. Click `save`. **Verify that the Google Cloud project is associated with a billing account** 1. From the Google Cloud Home, click on the Navigation hamburger menu in the top left. Select `Billing`. 2. If you see `This project is not associated with a billing account` you will need to enter billing information or switch to a project with a billing account. **Enable Access Transparency** 1. From the Google Cloud Home, click on the Navigation hamburger menu in the top left. Hover over the IAM & Admin Menu. Select `settings` in the middle of the column that opens. 2. Click the blue button labeled Enable `Access Transparency for Organization`", + "AuditProcedure": "**From Google Cloud Console** **Determine if Access Transparency is Enabled** 1. From the Google Cloud Home, click on the Navigation hamburger menu in the top left. Hover over the IAM & Admin Menu. Select `settings` in the middle of the column that opens. 2. The status will be under the heading `Access Transparency`. Status should be `Enabled`", + "AdditionalInformation": "To enable Access Transparency for your Google Cloud organization, your Google Cloud organization must have one of the following customer support levels: Premium, Enterprise, Platinum, or Gold.", + "References": "https://cloud.google.com/cloud-provider-access-management/access-transparency/docs/overview:https://cloud.google.com/cloud-provider-access-management/access-transparency/docs/enable:https://cloud.google.com/cloud-provider-access-management/access-transparency/docs/reading-logs:https://cloud.google.com/cloud-provider-access-management/access-transparency/docs/reading-logs#justification_reason_codes:https://cloud.google.com/cloud-provider-access-management/access-transparency/docs/supported-services", + "DefaultValue": "By default Access Transparency is not enabled." + } + ] + }, + { + "Id": "2.15", + "Description": "Ensure 'Access Approval' is 'Enabled'", + "Checks": [ + "iam_account_access_approval_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "GCP Access Approval enables you to require your organizations' explicit approval whenever Google support try to access your projects. You can then select users within your organization who can approve these requests through giving them a security role in IAM. All access requests display which Google Employee requested them in an email or Pub/Sub message that you can choose to Approve. This adds an additional control and logging of who in your organization approved/denied these requests.", + "RationaleStatement": "Controlling access to your information is one of the foundations of information security. Google Employees do have access to your organizations' projects for support reasons. With Access Approval, organizations can then be certain that their information is accessed by only approved Google Personnel.", + "ImpactStatement": "To use Access Approval your organization will need have enabled Access Transparency and have at one of the following support level: Enhanced or Premium. There will be subscription costs associated with these support levels, as well as increased storage costs for storing the logs. You will also not be able to turn the Access Transparency which Access Approval depends on, off yourself. To do so you will need to submit a service request to Google Cloud Support. There will also be additional overhead in managing user permissions. There may also be a potential delay in support times as Google Personnel will have to wait for their access to be approved.", + "RemediationProcedure": "**From Google Cloud Console** 1. From the Google Cloud Home, within the project you wish to enable, click on the Navigation hamburger menu in the top left. Hover over the `Security` Menu. Select `Access Approval` in the middle of the column that opens. 2. The status will be displayed here. On this screen, there is an option to click `Enroll`. If it is greyed out and you see an error bar at the top of the screen that says `Access Transparency is not enabled` please view the corresponding reference within this section to enable it. 3. In the second screen click `Enroll`. **Grant an IAM Group or User the role with permissions to Add Users to be Access Approval message Recipients** 1. From the Google Cloud Home, within the project you wish to enable, click on the Navigation hamburger menu in the top left. Hover over the `IAM and Admin`. Select `IAM` in the middle of the column that opens. 2. Click the blue button the says `+ ADD` at the top of the screen. 3. In the `principals` field, select a user or group by typing in their associated email address. 4. Click on the role field to expand it. In the filter field enter `Access Approval Approver` and select it. 5. Click `save`. **Add a Group or User as an Approver for Access Approval Requests** 1. As a user with the `Access Approval Approver` permission, within the project where you wish to add an email address to which request will be sent, click on the Navigation hamburger menu in the top left. Hover over the `Security` Menu. Select `Access Approval` in the middle of the column that opens. 2. Click `Manage Settings` 3. Under `Set up approval notifications`, enter the email address associated with a Google Cloud User or Group you wish to send Access Approval requests to. All future access approvals will be sent as emails to this address. **From Google Cloud CLI** 1. To update all services in an entire project, run the following command from an account that has permissions as an 'Approver for Access Approval Requests' gcloud access-approval settings update --project= --enrolled_services=all --notification_emails='@' ", + "AuditProcedure": "**From Google Cloud Console** **Determine if Access Transparency is Enabled as it is a Dependency** 1. From the Google Cloud Home inside the project you wish to audit, click on the Navigation hamburger menu in the top left. Hover over the `IAM & Admin` Menu. Select `settings` in the middle of the column that opens. 2. The status should be Enabled' under the heading `Access Transparency` **Determine if Access Approval is Enabled** 1. From the Google Cloud Home, within the project you wish to check, click on the Navigation hamburger menu in the top left. Hover over the `Security` Menu. Select `Access Approval` in the middle of the column that opens. 2. The status will be displayed here. If you see a screen saying you need to enroll in Access Approval, it is not enabled. **From Google Cloud CLI** **Determine if Access Approval is Enabled** 1. From within the project you wish to audit, run the following command. gcloud access-approval settings get 2. The status will be displayed in the output. IF Access Approval is not enabled you should get this output: API [accessapproval.googleapis.com] not enabled on project [-----]. Would you like to enable and retry (this will take a few minutes)? (y/N)? After entering `Y` if you get the following output, it means that `Access Transparency` is not enabled: ERROR: (gcloud.access-approval.settings.get) FAILED_PRECONDITION: Precondition check failed. ", + "AdditionalInformation": "The recipients of Access Requests will also need to be logged into a Google Cloud account associated with an email address in this list. To approve requests they can click approve within the email. Or they can view requests at the the Access Approval page within the Security submenu.", + "References": "https://cloud.google.com/cloud-provider-access-management/access-approval/docs:https://cloud.google.com/cloud-provider-access-management/access-approval/docs/overview:https://cloud.google.com/cloud-provider-access-management/access-approval/docs/quickstart-custom-key:https://cloud.google.com/cloud-provider-access-management/access-approval/docs/supported-services:https://cloud.google.com/cloud-provider-access-management/access-approval/docs/view-historical-requests", + "DefaultValue": "By default Access Approval and its dependency of Access Transparency are not enabled." + } + ] + }, + { + "Id": "2.16", + "Description": "Ensure Logging is enabled for HTTP(S) Load Balancer", + "Checks": [ + "compute_loadbalancer_logging_enabled" + ], + "Attributes": [ + { + "Section": "2 Logging and Monitoring", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "Logging enabled on a HTTPS Load Balancer will show all network traffic and its destination.", + "RationaleStatement": "Logging will allow you to view HTTPS network traffic to your web applications.", + "ImpactStatement": "On high use systems with a high percentage sample rate, the logging file may grow to high capacity in a short amount of time. Ensure that the sample rate is set appropriately so that storage costs are not exorbitant.", + "RemediationProcedure": "**From Google Cloud Console** 1. From Google Cloud home open the Navigation Menu in the top left. 1. Under the `Networking` heading select `Network services`. 1. Select the HTTPS load-balancer you wish to audit. 1. Select `Edit` then `Backend Configuration`. 1. Select `Edit` on the corresponding backend service. 1. Click `Enable Logging`. 1. Set `Sample Rate` to a desired value. This is a percentage as a decimal point. 1.0 is 100%. **From Google Cloud CLI** 1. Run the following command gcloud compute backend-services update --region=REGION --enable-logging --logging-sample-rate= ", + "AuditProcedure": "**From Google Cloud Console** 1. From Google Cloud home open the Navigation Menu in the top left. 1. Under the `Networking` heading select `Network services`. 1. Select the HTTPS load-balancer you wish to audit. 1. Select `Edit` then `Backend Configuration`. 1. Select `Edit` on the corresponding backend service. 1. Ensure that `Enable Logging` is selected. Also ensure that `Sample Rate` is set to an appropriate level for your needs. **From Google Cloud CLI** 1. Run the following command gcloud compute backend-services describe 1. Ensure that enable-logging is enabled and sample rate is set to your desired level.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/load-balancing/:https://cloud.google.com/load-balancing/docs/https/https-logging-monitoring#gcloud:-global-mode:https://cloud.google.com/sdk/gcloud/reference/compute/backend-services/", + "DefaultValue": "By default logging for https load balancing is disabled. When logging is enabled it sets the default sample rate as 1.0 or 100%. Ensure this value fits the need of your organization to avoid high storage costs." + } + ] + }, + { + "Id": "3.1", + "Description": "Ensure That the Default Network Does Not Exist in a Project", + "Checks": [ + "compute_network_default_in_use" + ], + "Attributes": [ + { + "Section": "3 Networking", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "To prevent use of `default` network, a project should not have a `default` network.", + "RationaleStatement": "The `default` network has a preconfigured network configuration and automatically generates the following insecure firewall rules: - default-allow-internal: Allows ingress connections for all protocols and ports among instances in the network. - default-allow-ssh: Allows ingress connections on TCP port 22(SSH) from any source to any instance in the network. - default-allow-rdp: Allows ingress connections on TCP port 3389(RDP) from any source to any instance in the network. - default-allow-icmp: Allows ingress ICMP traffic from any source to any instance in the network. These automatically created firewall rules do not get audit logged by default. Furthermore, the default network is an auto mode network, which means that its subnets use the same predefined range of IP addresses, and as a result, it's not possible to use Cloud VPN or VPC Network Peering with the default network. Based on organization security and networking requirements, the organization should create a new network and delete the `default` network.", + "ImpactStatement": "When an organization deletes the default network, it will need to remove all asests from that network and migrate them to a new network.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the `VPC networks` page by visiting: [https://console.cloud.google.com/networking/networks/list](https://console.cloud.google.com/networking/networks/list). 2. Click the network named `default`. 2. On the network detail page, click `EDIT`. 3. Click `DELETE VPC NETWORK`. 4. If needed, create a new network to replace the default network. **From Google Cloud CLI** For each Google Cloud Platform project, 1. Delete the default network: gcloud compute networks delete default 2. If needed, create a new network to replace it: gcloud compute networks create NETWORK_NAME **Prevention:** The user can prevent the default network and its insecure default firewall rules from being created by setting up an Organization Policy to `Skip default network creation` at [https://console.cloud.google.com/iam-admin/orgpolicies/compute-skipDefaultNetworkCreation](https://console.cloud.google.com/iam-admin/orgpolicies/compute-skipDefaultNetworkCreation).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the `VPC networks` page by visiting: [https://console.cloud.google.com/networking/networks/list](https://console.cloud.google.com/networking/networks/list). 2. Ensure that a network with the name `default` is not present. **From Google Cloud CLI** 1. Set the project name in the Google Cloud Shell: gcloud config set project PROJECT_ID 2. List the networks configured in that project: gcloud compute networks list It should not list `default` as one of the available networks in that project.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/compute/docs/networking#firewall_rules:https://cloud.google.com/compute/docs/reference/latest/networks/insert:https://cloud.google.com/compute/docs/reference/latest/networks/delete:https://cloud.google.com/vpc/docs/firewall-rules-logging:https://cloud.google.com/vpc/docs/vpc#default-network:https://cloud.google.com/sdk/gcloud/reference/compute/networks/delete", + "DefaultValue": "By default, for each project, a `default` network is created." + } + ] + }, + { + "Id": "3.2", + "Description": "Ensure Legacy Networks Do Not Exist for Older Projects", + "Checks": [ + "compute_network_not_legacy" + ], + "Attributes": [ + { + "Section": "3 Networking", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "In order to prevent use of legacy networks, a project should not have a legacy network configured. As of now, Legacy Networks are gradually being phased out, and you can no longer create projects with them. This recommendation is to check older projects to ensure that they are not using Legacy Networks.", + "RationaleStatement": "Legacy networks have a single network IPv4 prefix range and a single gateway IP address for the whole network. The network is global in scope and spans all cloud regions. Subnetworks cannot be created in a legacy network and are unable to switch from legacy to auto or custom subnet networks. Legacy networks can have an impact for high network traffic projects and are subject to a single point of contention or failure.", + "ImpactStatement": "None.", + "RemediationProcedure": "**From Google Cloud CLI** For each Google Cloud Platform project, 1. Follow the documentation and create a non-legacy network suitable for the organization's requirements. 2. Follow the documentation and delete the networks in the `legacy` mode.", + "AuditProcedure": "**From Google Cloud CLI** For each Google Cloud Platform project, 1. Set the project name in the Google Cloud Shell: gcloud config set project 2. List the networks configured in that project: gcloud compute networks list None of the listed networks should be in the `legacy` mode.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/vpc/docs/using-legacy#creating_a_legacy_network:https://cloud.google.com/vpc/docs/using-legacy#deleting_a_legacy_network", + "DefaultValue": "By default, networks are not created in the `legacy` mode." + } + ] + }, + { + "Id": "3.3", + "Description": "Ensure That DNSSEC Is Enabled for Cloud DNS", + "Checks": [ + "dns_dnssec_disabled" + ], + "Attributes": [ + { + "Section": "3 Networking", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Cloud Domain Name System (DNS) is a fast, reliable and cost-effective domain name system that powers millions of domains on the internet. Domain Name System Security Extensions (DNSSEC) in Cloud DNS enables domain owners to take easy steps to protect their domains against DNS hijacking and man-in-the-middle and other attacks.", + "RationaleStatement": "Domain Name System Security Extensions (DNSSEC) adds security to the DNS protocol by enabling DNS responses to be validated. Having a trustworthy DNS that translates a domain name like www.example.com into its associated IP address is an increasingly important building block of today’s web-based applications. Attackers can hijack this process of domain/IP lookup and redirect users to a malicious site through DNS hijacking and man-in-the-middle attacks. DNSSEC helps mitigate the risk of such attacks by cryptographically signing DNS records. As a result, it prevents attackers from issuing fake DNS responses that may misdirect browsers to nefarious websites.", + "ImpactStatement": "", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `Cloud DNS` by visiting [https://console.cloud.google.com/net-services/dns/zones](https://console.cloud.google.com/net-services/dns/zones). 2. For each zone of `Type` `Public`, set `DNSSEC` to `On`. **From Google Cloud CLI** Use the below command to enable `DNSSEC` for Cloud DNS Zone Name. gcloud dns managed-zones update ZONE_NAME --dnssec-state on ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `Cloud DNS` by visiting [https://console.cloud.google.com/net-services/dns/zones](https://console.cloud.google.com/net-services/dns/zones). 2. For each zone of `Type` `Public`, ensure that `DNSSEC` is set to `On`. **From Google Cloud CLI** 1. List all the Managed Zones in a project: gcloud dns managed-zones list 2. For each zone of `VISIBILITY` `public`, get its metadata: gcloud dns managed-zones describe ZONE_NAME 3. Ensure that `dnssecConfig.state` property is `on`.", + "AdditionalInformation": "", + "References": "https://cloudplatform.googleblog.com/2017/11/DNSSEC-now-available-in-Cloud-DNS.html:https://cloud.google.com/dns/dnssec-config#enabling:https://cloud.google.com/dns/dnssec", + "DefaultValue": "By default DNSSEC is not enabled." + } + ] + }, + { + "Id": "3.4", + "Description": "Ensure That RSASHA1 Is Not Used for the Key-Signing Key in Cloud DNS DNSSEC", + "Checks": [ + "dns_rsasha1_in_use_to_key_sign_in_dnssec" + ], + "Attributes": [ + { + "Section": "3 Networking", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "NOTE: Currently, the SHA1 algorithm has been removed from general use by Google, and, if being used, needs to be whitelisted on a project basis by Google and will also, therefore, require a Google Cloud support contract. DNSSEC algorithm numbers in this registry may be used in CERT RRs. Zone signing (DNSSEC) and transaction security mechanisms (SIG(0) and TSIG) make use of particular subsets of these algorithms. The algorithm used for key signing should be a recommended one and it should be strong.", + "RationaleStatement": "Domain Name System Security Extensions (DNSSEC) algorithm numbers in this registry may be used in CERT RRs. Zonesigning (DNSSEC) and transaction security mechanisms (SIG(0) and TSIG) make use of particular subsets of these algorithms. The algorithm used for key signing should be a recommended one and it should be strong. When enabling DNSSEC for a managed zone, or creating a managed zone with DNSSEC, the user can select the DNSSEC signing algorithms and the denial-of-existence type. Changing the DNSSEC settings is only effective for a managed zone if DNSSEC is not already enabled. If there is a need to change the settings for a managed zone where it has been enabled, turn DNSSEC off and then re-enable it with different settings.", + "ImpactStatement": "", + "RemediationProcedure": "**From Google Cloud CLI** 1. If it is necessary to change the settings for a managed zone where it has been enabled, DNSSEC must be turned off and re-enabled with different settings. To turn off DNSSEC, run the following command: gcloud dns managed-zones update ZONE_NAME --dnssec-state off 2. To update key-signing for a reported managed DNS Zone, run the following command: gcloud dns managed-zones update ZONE_NAME --dnssec-state on --ksk-algorithm KSK_ALGORITHM --ksk-key-length KSK_KEY_LENGTH --zsk-algorithm ZSK_ALGORITHM --zsk-key-length ZSK_KEY_LENGTH --denial-of-existence DENIAL_OF_EXISTENCE Supported algorithm options and key lengths are as follows. Algorithm KSK Length ZSK Length --------- ---------- ---------- RSASHA1 1024,2048 1024,2048 RSASHA256 1024,2048 1024,2048 RSASHA512 1024,2048 1024,2048 ECDSAP256SHA256 256 256 ECDSAP384SHA384 384 384", + "AuditProcedure": "**From Google Cloud CLI** Ensure the property algorithm for keyType keySigning is not using `RSASHA1`. gcloud dns managed-zones describe ZONENAME --format=json(dnsName,dnssecConfig.state,dnssecConfig.defaultKeySpecs)", + "AdditionalInformation": "1. RSASHA1 key-signing support may be required for compatibility reasons. 2. Remediation CLI works well with gcloud-cli version 221.0.0 and later.", + "References": "https://cloud.google.com/dns/dnssec-advanced#advanced_signing_options", + "DefaultValue": "" + } + ] + }, + { + "Id": "3.5", + "Description": "Ensure That RSASHA1 Is Not Used for the Zone-Signing Key in Cloud DNS DNSSEC", + "Checks": [ + "dns_rsasha1_in_use_to_zone_sign_in_dnssec" + ], + "Attributes": [ + { + "Section": "3 Networking", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "NOTE: Currently, the SHA1 algorithm has been removed from general use by Google, and, if being used, needs to be whitelisted on a project basis by Google and will also, therefore, require a Google Cloud support contract. DNSSEC algorithm numbers in this registry may be used in CERT RRs. Zone signing (DNSSEC) and transaction security mechanisms (SIG(0) and TSIG) make use of particular subsets of these algorithms. The algorithm used for key signing should be a recommended one and it should be strong.", + "RationaleStatement": "DNSSEC algorithm numbers in this registry may be used in CERT RRs. Zone signing (DNSSEC) and transaction security mechanisms (SIG(0) and TSIG) make use of particular subsets of these algorithms. The algorithm used for key signing should be a recommended one and it should be strong. When enabling DNSSEC for a managed zone, or creating a managed zone with DNSSEC, the DNSSEC signing algorithms and the denial-of-existence type can be selected. Changing the DNSSEC settings is only effective for a managed zone if DNSSEC is not already enabled. If the need exists to change the settings for a managed zone where it has been enabled, turn DNSSEC off and then re-enable it with different settings.", + "ImpactStatement": "", + "RemediationProcedure": "**From Google Cloud CLI** 1. If the need exists to change the settings for a managed zone where it has been enabled, DNSSEC must be turned off and then re-enabled with different settings. To turn off DNSSEC, run following command: gcloud dns managed-zones update ZONE_NAME --dnssec-state off 2. To update zone-signing for a reported managed DNS Zone, run the following command: gcloud dns managed-zones update ZONE_NAME --dnssec-state on --ksk-algorithm KSK_ALGORITHM --ksk-key-length KSK_KEY_LENGTH --zsk-algorithm ZSK_ALGORITHM --zsk-key-length ZSK_KEY_LENGTH --denial-of-existence DENIAL_OF_EXISTENCE Supported algorithm options and key lengths are as follows. Algorithm KSK Length ZSK Length --------- ---------- ---------- RSASHA1 1024,2048 1024,2048 RSASHA256 1024,2048 1024,2048 RSASHA512 1024,2048 1024,2048 ECDSAP256SHA256 256 384 ECDSAP384SHA384 384 384", + "AuditProcedure": "**From Google Cloud CLI** Ensure the property algorithm for keyType zone signing is not using RSASHA1. gcloud dns managed-zones describe --format=json(dnsName,dnssecConfig.state,dnssecConfig.defaultKeySpecs) ", + "AdditionalInformation": "1. RSASHA1 zone-signing support may be required for compatibility reasons. 2. The remediation CLI works well with gcloud-cli version 221.0.0 and later.", + "References": "https://cloud.google.com/dns/dnssec-advanced#advanced_signing_options", + "DefaultValue": "" + } + ] + }, + { + "Id": "3.6", + "Description": "Ensure That SSH Access Is Restricted From the Internet", + "Checks": [ + "compute_firewall_ssh_access_from_the_internet_allowed" + ], + "Attributes": [ + { + "Section": "3 Networking", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "GCP `Firewall Rules` are specific to a `VPC Network`. Each rule either `allows` or `denies` traffic when its conditions are met. Its conditions allow the user to specify the type of traffic, such as ports and protocols, and the source or destination of the traffic, including IP addresses, subnets, and instances. Firewall rules are defined at the VPC network level and are specific to the network in which they are defined. The rules themselves cannot be shared among networks. Firewall rules only support IPv4 traffic. When specifying a source for an ingress rule or a destination for an egress rule by address, only an `IPv4` address or `IPv4 block in CIDR` notation can be used. Generic `(0.0.0.0/0)` incoming traffic from the internet to VPC or VM instance using `SSH` on `Port 22` can be avoided.", + "RationaleStatement": "GCP `Firewall Rules` within a `VPC Network` apply to outgoing (egress) traffic from instances and incoming (ingress) traffic to instances in the network. Egress and ingress traffic flows are controlled even if the traffic stays within the network (for example, instance-to-instance communication). For an instance to have outgoing Internet access, the network must have a valid Internet gateway route or custom route whose destination IP is specified. This route simply defines the path to the Internet, to avoid the most general `(0.0.0.0/0)` destination `IP Range` specified from the Internet through `SSH` with the default `Port 22`. Generic access from the Internet to a specific IP Range needs to be restricted.", + "ImpactStatement": "All Secure Shell (SSH) connections from outside of the network to the concerned VPC(s) will be blocked. There could be a business need where SSH access is required from outside of the network to access resources associated with the VPC. In that case, specific source IP(s) should be mentioned in firewall rules to white-list access to SSH port for the concerned VPC(s).", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `VPC Network`. 2. Go to the `Firewall Rules`. 3. Click the `Firewall Rule` you want to modify. 4. Click `Edit`. 5. Modify `Source IP ranges` to specific `IP`. 6. Click `Save`. **From Google Cloud CLI** 1.Update the Firewall rule with the new `SOURCE_RANGE` from the below command: gcloud compute firewall-rules update FirewallName --allow=[PROTOCOL[:PORT[-PORT]],...] --source-ranges=[CIDR_RANGE,...]", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `VPC network`. 2. Go to the `Firewall Rules`. 3. Ensure that `Port` is not equal to `22` and `Action` is not set to `Allow`. 4. Ensure `IP Ranges` is not equal to `0.0.0.0/0` under `Source filters`. **From Google Cloud CLI** gcloud compute firewall-rules list --format=table'(name,direction,sourceRanges,allowed)' Ensure that there is no rule matching the below criteria: - `SOURCE_RANGES` is `0.0.0.0/0` - AND `DIRECTION` is `INGRESS` - AND IPProtocol is `tcp` or `ALL` - AND `PORTS` is set to `22` or `range containing 22` or `Null (not set)` Note: - When ALL TCP ports are allowed in a rule, PORT does not have any value set (`NULL`) - When ALL Protocols are allowed in a rule, PORT does not have any value set (`NULL`)", + "AdditionalInformation": "Currently, GCP VPC only supports IPV4; however, Google is already working on adding IPV6 support for VPC. In that case along with source IP range `0.0.0.0`, the rule should be checked for IPv6 equivalent `::/0` as well.", + "References": "https://cloud.google.com/vpc/docs/firewalls#blockedtraffic:https://cloud.google.com/blog/products/identity-security/cloud-iap-enables-context-aware-access-to-vms-via-ssh-and-rdp-without-bastion-hosts", + "DefaultValue": "" + } + ] + }, + { + "Id": "3.7", + "Description": "Ensure That RDP Access Is Restricted From the Internet", + "Checks": [ + "compute_firewall_rdp_access_from_the_internet_allowed" + ], + "Attributes": [ + { + "Section": "3 Networking", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "GCP `Firewall Rules` are specific to a `VPC Network`. Each rule either `allows` or `denies` traffic when its conditions are met. Its conditions allow users to specify the type of traffic, such as ports and protocols, and the source or destination of the traffic, including IP addresses, subnets, and instances. Firewall rules are defined at the VPC network level and are specific to the network in which they are defined. The rules themselves cannot be shared among networks. Firewall rules only support IPv4 traffic. When specifying a source for an ingress rule or a destination for an egress rule by address, an `IPv4` address or `IPv4 block in CIDR` notation can be used. Generic `(0.0.0.0/0)` incoming traffic from the Internet to a VPC or VM instance using `RDP` on `Port 3389` can be avoided.", + "RationaleStatement": "GCP `Firewall Rules` within a `VPC Network`. These rules apply to outgoing (egress) traffic from instances and incoming (ingress) traffic to instances in the network. Egress and ingress traffic flows are controlled even if the traffic stays within the network (for example, instance-to-instance communication). For an instance to have outgoing Internet access, the network must have a valid Internet gateway route or custom route whose destination IP is specified. This route simply defines the path to the Internet, to avoid the most general `(0.0.0.0/0)` destination `IP Range` specified from the Internet through `RDP` with the default `Port 3389`. Generic access from the Internet to a specific IP Range should be restricted.", + "ImpactStatement": "All Remote Desktop Protocol (RDP) connections from outside of the network to the concerned VPC(s) will be blocked. There could be a business need where secure shell access is required from outside of the network to access resources associated with the VPC. In that case, specific source IP(s) should be mentioned in firewall rules to white-list access to RDP port for the concerned VPC(s).", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `VPC Network`. 2. Go to the `Firewall Rules`. 3. Click the `Firewall Rule` to be modified. 4. Click `Edit`. 5. Modify `Source IP ranges` to specific `IP`. 6. Click `Save`. **From Google Cloud CLI** 1.Update RDP Firewall rule with new `SOURCE_RANGE` from the below command: gcloud compute firewall-rules update FirewallName --allow=[PROTOCOL[:PORT[-PORT]],...] --source-ranges=[CIDR_RANGE,...]", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `VPC network`. 2. Go to the `Firewall Rules`. 3. Ensure `Port` is not equal to `3389` and `Action` is not `Allow`. 4. Ensure `IP Ranges` is not equal to `0.0.0.0/0` under `Source filters`. **From Google Cloud CLI** gcloud compute firewall-rules list --format=table'(name,direction,sourceRanges,allowed)' Ensure that there is no rule matching the below criteria: - `SOURCE_RANGES` is `0.0.0.0/0` - AND `DIRECTION` is `INGRESS` - AND IPProtocol is `TCP` or `ALL` - AND `PORTS` is set to `3389` or `range containing 3389` or `Null (not set)` Note: - When ALL TCP ports are allowed in a rule, PORT does not have any value set (`NULL`) - When ALL Protocols are allowed in a rule, PORT does not have any value set (`NULL`)", + "AdditionalInformation": "Currently, GCP VPC only supports IPV4; however, Google is already working on adding IPV6 support for VPC. In that case along with source IP range `0.0.0.0`, the rule should be checked for IPv6 equivalent `::/0` as well.", + "References": "https://cloud.google.com/vpc/docs/firewalls#blockedtraffic:https://cloud.google.com/blog/products/identity-security/cloud-iap-enables-context-aware-access-to-vms-via-ssh-and-rdp-without-bastion-hosts", + "DefaultValue": "" + } + ] + }, + { + "Id": "3.8", + "Description": "Ensure that VPC Flow Logs is Enabled for Every Subnet in a VPC Network", + "Checks": [ + "compute_subnet_flow_logs_enabled" + ], + "Attributes": [ + { + "Section": "3 Networking", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "Flow Logs is a feature that enables users to capture information about the IP traffic going to and from network interfaces in the organization's VPC Subnets. Once a flow log is created, the user can view and retrieve its data in Stackdriver Logging. It is recommended that Flow Logs be enabled for every business-critical VPC subnet.", + "RationaleStatement": "VPC networks and subnetworks not reserved for internal HTTP(S) load balancing provide logically isolated and secure network partitions where GCP resources can be launched. When Flow Logs are enabled for a subnet, VMs within that subnet start reporting on all Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) flows. Each VM samples the TCP and UDP flows it sees, inbound and outbound, whether the flow is to or from another VM, a host in the on-premises datacenter, a Google service, or a host on the Internet. If two GCP VMs are communicating, and both are in subnets that have VPC Flow Logs enabled, both VMs report the flows. Flow Logs supports the following use cases: - Network monitoring - Understanding network usage and optimizing network traffic expenses - Network forensics - Real-time security analysis Flow Logs provide visibility into network traffic for each VM inside the subnet and can be used to detect anomalous traffic or provide insight during security workflows. The Flow Logs must be configured such that all network traffic is logged, the interval of logging is granular to provide detailed information on the connections, no logs are filtered, and metadata to facilitate investigations are included. **Note**: Subnets reserved for use by internal HTTP(S) load balancers do not support VPC flow logs.", + "ImpactStatement": "Standard pricing for Stackdriver Logging, BigQuery, or Cloud Pub/Sub applies. VPC Flow Logs generation will be charged starting in GA as described in reference: https://cloud.google.com/vpc/", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the VPC network GCP Console visiting `https://console.cloud.google.com/networking/networks/list` 2. Click the name of a subnet, The `Subnet details` page displays. 3. Click the `EDIT` button. 4. Set `Flow Logs` to `On`. 5. Expand the `Configure Logs` section. 6. Set `Aggregation Interval` to `5 SEC`. 7. Check the box beside `Include metadata`. 8. Set `Sample rate` to `100`. 9. Click Save. **Note**: It is not possible to configure a Log filter from the console. **From Google Cloud CLI** To enable VPC Flow Logs for a network subnet, run the following command: gcloud compute networks subnets update [SUBNET_NAME] --region [REGION] --enable-flow-logs --logging-aggregation-interval=interval-5-sec --logging-flow-sampling=1 --logging-metadata=include-all ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the VPC network GCP Console visiting `https://console.cloud.google.com/networking/networks/list` 2. From the list of network subnets, make sure for each subnet: - `Flow Logs` is set to `On` - `Aggregation Interval` is set to `5 sec` - `Include metadata` checkbox is checked - `Sample rate` is set to `100%` **Note**: It is not possible to determine if a Log filter has been defined from the console. **From Google Cloud CLI** gcloud compute networks subnets list --format json | jq -r '([Subnet,Purpose,Flow_Logs,Aggregation_Interval,Flow_Sampling,Metadata,Logs_Filtered] | (., map(length*-))), (.[] | [ .name, .purpose, (if has(enableFlowLogs) and .enableFlowLogs == true then Enabled else Disabled end), (if has(logConfig) then .logConfig.aggregationInterval else N/A end), (if has(logConfig) then .logConfig.flowSampling else N/A end), (if has(logConfig) then .logConfig.metadata else N/A end), (if has(logConfig) then (.logConfig | has(filterExpr)) else N/A end) ] ) | @tsv' | column -t The output of the above command will list: - each subnet - the subnet's purpose - a `Enabled` or `Disabled` value if `Flow Logs` are enabled - the value for `Aggregation Interval` or `N/A` if disabled, the value for `Flow Sampling` or `N/A` if disabled - the value for `Metadata` or `N/A` if disabled - 'true' or 'false' if a Logging Filter is configured or 'N/A' if disabled. If the subnet's purpose is `PRIVATE` then `Flow Logs` should be `Enabled`. If `Flow Logs` is enabled then: - `Aggregation_Interval` should be `INTERVAL_5_SEC` - `Flow_Sampling` should be 1 - `Metadata` should be `INCLUDE_ALL_METADATA` - `Logs_Filtered` should be `false`.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/vpc/docs/using-flow-logs#enabling_vpc_flow_logging:https://cloud.google.com/vpc/", + "DefaultValue": "By default, Flow Logs is set to Off when a new VPC network subnet is created." + } + ] + }, + { + "Id": "3.9", + "Description": "Ensure No HTTPS or SSL Proxy Load Balancers Permit SSL Policies With Weak Cipher Suites", + "Checks": [], + "Attributes": [ + { + "Section": "3 Networking", + "Profile": "Level 1", + "AssessmentStatus": "Manual", + "Description": "Secure Sockets Layer (SSL) policies determine what port Transport Layer Security (TLS) features clients are permitted to use when connecting to load balancers. To prevent usage of insecure features, SSL policies should use (a) at least TLS 1.2 with the MODERN profile; or (b) the RESTRICTED profile, because it effectively requires clients to use TLS 1.2 regardless of the chosen minimum TLS version; or (3) a CUSTOM profile that does not support any of the following features: TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA ", + "RationaleStatement": "Load balancers are used to efficiently distribute traffic across multiple servers. Both SSL proxy and HTTPS load balancers are external load balancers, meaning they distribute traffic from the Internet to a GCP network. GCP customers can configure load balancer SSL policies with a minimum TLS version (1.0, 1.1, or 1.2) that clients can use to establish a connection, along with a profile (Compatible, Modern, Restricted, or Custom) that specifies permissible cipher suites. To comply with users using outdated protocols, GCP load balancers can be configured to permit insecure cipher suites. In fact, the GCP default SSL policy uses a minimum TLS version of 1.0 and a Compatible profile, which allows the widest range of insecure cipher suites. As a result, it is easy for customers to configure a load balancer without even knowing that they are permitting outdated cipher suites.", + "ImpactStatement": "Creating more secure SSL policies can prevent clients using older TLS versions from establishing a connection.", + "RemediationProcedure": "**From Google Cloud Console** If the TargetSSLProxy or TargetHttpsProxy does not have an SSL policy configured, create a new SSL policy. Otherwise, modify the existing insecure policy. 1. Navigate to the `SSL Policies` page by visiting: [https://console.cloud.google.com/net-security/sslpolicies](https://console.cloud.google.com/net-security/sslpolicies) 2. Click on the name of the insecure policy to go to its `SSL policy details` page. 3. Click `EDIT`. 4. Set `Minimum TLS version` to `TLS 1.2`. 5. Set `Profile` to `Modern` or `Restricted`. 6. Alternatively, if teh user selects the profile `Custom`, make sure that the following features are disabled: TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA **From Google Cloud CLI** 1. For each insecure SSL policy, update it to use secure cyphers: gcloud compute ssl-policies update NAME [--profile COMPATIBLE|MODERN|RESTRICTED|CUSTOM] --min-tls-version 1.2 [--custom-features FEATURES] 2. If the target proxy has a GCP default SSL policy, use the following command corresponding to the proxy type to update it. gcloud compute target-ssl-proxies update TARGET_SSL_PROXY_NAME --ssl-policy SSL_POLICY_NAME gcloud compute target-https-proxies update TARGET_HTTPS_POLICY_NAME --ssl-policy SSL_POLICY_NAME ", + "AuditProcedure": "**From Google Cloud Console** 1. See all load balancers by visiting [https://console.cloud.google.com/net-services/loadbalancing/loadBalancers/list](https://console.cloud.google.com/net-services/loadbalancing/loadBalancers/list). 2. For each load balancer for `SSL (Proxy)` or `HTTPS`, click on its name to go the `Load balancer details` page. 3. Ensure that each target proxy entry in the `Frontend` table has an `SSL Policy` configured. 4. Click on each SSL policy to go to its `SSL policy details` page. 5. Ensure that the SSL policy satisfies one of the following conditions: - has a `Min TLS` set to `TLS 1.2` and `Profile` set to `Modern` profile, or - has `Profile` set to `Restricted`. Note that a Restricted profile effectively requires clients to use TLS 1.2 regardless of the chosen minimum TLS version, or - has `Profile` set to `Custom` and the following features are all disabled: TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA **From Google Cloud CLI** 1. List all TargetHttpsProxies and TargetSslProxies. gcloud compute target-https-proxies list gcloud compute target-ssl-proxies list 2. For each target proxy, list its properties: gcloud compute target-https-proxies describe TARGET_HTTPS_PROXY_NAME gcloud compute target-ssl-proxies describe TARGET_SSL_PROXY_NAME 3. Ensure that the `sslPolicy` field is present and identifies the name of the SSL policy: sslPolicy: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/sslPolicies/SSL_POLICY_NAME If the `sslPolicy` field is missing from the configuration, it means that the GCP default policy is used, which is insecure. 4. Describe the SSL policy: gcloud compute ssl-policies describe SSL_POLICY_NAME 5. Ensure that the policy satisfies one of the following conditions: - has `Profile` set to `Modern` and `minTlsVersion` set to `TLS_1_2`, or - has `Profile` set to `Restricted`, or - has `Profile` set to `Custom` and `enabledFeatures` does not contain any of the following values: TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA ", + "AdditionalInformation": "", + "References": "https://cloud.google.com/load-balancing/docs/use-ssl-policies:https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-52r2.pdf", + "DefaultValue": "The GCP default SSL policy is the least secure setting: Min TLS 1.0 and Compatible profile" + } + ] + }, + { + "Id": "3.1", + "Description": "Use Identity Aware Proxy (IAP) to Ensure Only Traffic From Google IP Addresses are 'Allowed'", + "Checks": [], + "Attributes": [ + { + "Section": "3 Networking", + "Profile": "Level 2", + "AssessmentStatus": "Manual", + "Description": "IAP authenticates the user requests to your apps via a Google single sign in. You can then manage these users with permissions to control access. It is recommended to use both IAP permissions and firewalls to restrict this access to your apps with sensitive information.", + "RationaleStatement": "IAP ensure that access to VMs is controlled by authenticating incoming requests. Access to your apps and the VMs should be restricted by firewall rules that allow only the proxy IAP IP addresses contained in the 35.235.240.0/20 subnet. Otherwise, unauthenticated requests can be made to your apps. To ensure that load balancing works correctly health checks should also be allowed.", + "ImpactStatement": "If firewall rules are not configured correctly, legitimate business services could be negatively impacted. It is recommended to make these changes during a time of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud Console [VPC network > Firewall rules](https://console.cloud.google.com/networking/firewalls/list?_ga=2.72166934.480049361.1580860862-1336643914.1580248695). 2. Select the checkbox next to the following rules: - default-allow-http - default-allow-https - default-allow-internal 3. Click `Delete`. 4. Click `Create firewall rule` and set the following values: - Name: allow-iap-traffic - Targets: All instances in the network - Source IP ranges (press Enter after you paste each value in the box, copy each full CIDR IP address): - IAP Proxy Addresses `35.235.240.0/20` - Google Health Check `130.211.0.0/22` - Google Health Check `35.191.0.0/16` - Protocols and ports: - Specified protocols and ports required for access and management of your app. For example most health check connection protocols would be covered by; - tcp:80 (Default HTTP Health Check port) - tcp:443 (Default HTTPS Health Check port) **Note: if you have custom ports used by your load balancers, you will need to list them here** 5. When you're finished updating values, click `Create`.", + "AuditProcedure": "**From Google Cloud Console** 1. For each of your apps that have IAP enabled go to the Cloud Console VPC network > Firewall rules. 2. Verify that the only rules correspond to the following values: - Targets: All instances in the network - Source IP ranges: - IAP Proxy Addresses `35.235.240.0/20` - Google Health Check `130.211.0.0/22` - Google Health Check `35.191.0.0/16` - Protocols and ports: - Specified protocols and ports required for access and management of your app. For example most health check connection protocols would be covered by; - tcp:80 (Default HTTP Health Check port) - tcp:443 (Default HTTPS Health Check port) **Note: if you have custom ports used by your load balancers, you will need to list them here**", + "AdditionalInformation": "", + "References": "https://cloud.google.com/iap/docs/concepts-overview:https://cloud.google.com/iap/docs/load-balancer-howto:https://cloud.google.com/load-balancing/docs/health-checks:https://cloud.google.com/blog/products/identity-security/cloud-iap-enables-context-aware-access-to-vms-via-ssh-and-rdp-without-bastion-hosts", + "DefaultValue": "By default all traffic is allowed." + } + ] + }, + { + "Id": "4.1", + "Description": "Ensure That Instances Are Not Configured To Use the Default Service Account", + "Checks": [ + "compute_instance_default_service_account_in_use" + ], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to configure your instance to not use the default Compute Engine service account because it has the Editor role on the project.", + "RationaleStatement": "When a default Compute Engine service account is created, it is automatically granted the Editor role (roles/editor) on your project which allows read and write access to most Google Cloud Services. This role includes a very large number of permissions. To defend against privilege escalations if your VM is compromised and prevent an attacker from gaining access to all of your project, you should either revoke the Editor role from the default Compute Engine service account or create a new service account and assign only the permissions needed by your instance. To mitigate this at scale, we strongly recommend that you disable the automatic role grant by adding a constraint to your organization policy. The default Compute Engine service account is named `[PROJECT_NUMBER]-compute@developer.gserviceaccount.com`.", + "ImpactStatement": "", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. Click on the instance name to go to its `VM instance details` page. 3. Click `STOP` and then click `EDIT`. 4. Under the section `API and identity management`, select a service account other than the default Compute Engine service account. You may first need to create a new service account. 5. Click `Save` and then click `START`. **From Google Cloud CLI** 1. Stop the instance: gcloud compute instances stop 2. Update the instance: gcloud compute instances set-service-account --service-account= 3. Restart the instance: gcloud compute instances start ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. Click on each instance name to go to its `VM instance details` page. 3. Under the section `API and identity management`, ensure that the default Compute Engine service account is not used. This account is named `[PROJECT_NUMBER]-compute@developer.gserviceaccount.com`. **From Google Cloud CLI** 1. List the instances in your project and get details on each instance: gcloud compute instances list --format=json | jq -r '. | SA: (.[].serviceAccounts[].email) Name: (.[].name)' 2. Ensure that the service account section has an email that does not match the pattern `[PROJECT_NUMBER]-compute@developer.gserviceaccount.com`. **Exception:** VMs created by GKE should be excluded. These VMs have names that start with `gke-` and are labeled `goog-gke-node`.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/compute/docs/access/service-accounts:https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances:https://cloud.google.com/sdk/gcloud/reference/compute/instances/set-service-account", + "DefaultValue": "By default, Compute instances are configured to use the default Compute Engine service account." + } + ] + }, + { + "Id": "4.2", + "Description": "Ensure That Instances Are Not Configured To Use the Default Service Account With Full Access to All Cloud APIs", + "Checks": [ + "compute_instance_default_service_account_in_use_with_full_api_access" + ], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "To support principle of least privileges and prevent potential privilege escalation it is recommended that instances are not assigned to default service account `Compute Engine default service account` with Scope `Allow full access to all Cloud APIs`.", + "RationaleStatement": "Along with ability to optionally create, manage and use user managed custom service accounts, Google Compute Engine provides default service account `Compute Engine default service account` for an instances to access necessary cloud services. `Project Editor` role is assigned to `Compute Engine default service account` hence, This service account has almost all capabilities over all cloud services except billing. However, when `Compute Engine default service account` assigned to an instance it can operate in 3 scopes. 1. Allow default access: Allows only minimum access required to run an Instance (Least Privileges) 2. Allow full access to all Cloud APIs: Allow full access to all the cloud APIs/Services (Too much access) 3. Set access for each API: Allows Instance administrator to choose only those APIs that are needed to perform specific business functionality expected by instance When an instance is configured with `Compute Engine default service account` with Scope `Allow full access to all Cloud APIs`, based on IAM roles assigned to the user(s) accessing Instance, it may allow user to perform cloud operations/API calls that user is not supposed to perform leading to successful privilege escalation.", + "ImpactStatement": "In order to change service account or scope for an instance, it needs to be stopped.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. Click on the impacted VM instance. 3. If the instance is not stopped, click the `Stop` button. Wait for the instance to be stopped. 4. Next, click the `Edit` button. 5. Scroll down to the `Service Account` section. 6. Select a different service account or ensure that `Allow full access to all Cloud APIs` is not selected. 7. Click the `Save` button to save your changes and then click `START`. **From Google Cloud CLI** 1. Stop the instance: gcloud compute instances stop 2. Update the instance: gcloud compute instances set-service-account --service-account= --scopes [SCOPE1, SCOPE2...] 3. Restart the instance: gcloud compute instances start ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. Click on each instance name to go to its `VM instance details` page. 3. Under the `API and identity management`, ensure that `Cloud API access scopes` is not set to `Allow full access to all Cloud APIs`. **From Google Cloud CLI** 1. List the instances in your project and get details on each instance: gcloud compute instances list --format=json | jq -r '. | SA Scopes: (.[].serviceAccounts[].scopes) Name: (.[].name) Email: (.[].serviceAccounts[].email)' 2. Ensure that the service account section has an email that does not match the pattern `[PROJECT_NUMBER]-compute@developer.gserviceaccount.com`. **Exception:** VMs created by GKE should be excluded. These VMs have names that start with `gke-` and are labeled `goog-gke-node", + "AdditionalInformation": "- User IAM roles will override service account scope but configuring minimal scope ensures defense in depth - Non-default service accounts do not offer selection of access scopes like default service account. IAM roles with non-default service accounts should be used to control VM access.", + "References": "https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances:https://cloud.google.com/compute/docs/access/service-accounts", + "DefaultValue": "While creating an VM instance, default service account is used with scope `Allow default access`." + } + ] + }, + { + "Id": "4.3", + "Description": "Ensure “Block Project-Wide SSH Keys” Is Enabled for VM Instances", + "Checks": [ + "compute_instance_block_project_wide_ssh_keys_disabled" + ], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to use Instance specific SSH key(s) instead of using common/shared project-wide SSH key(s) to access Instances.", + "RationaleStatement": "Project-wide SSH keys are stored in Compute/Project-meta-data. Project wide SSH keys can be used to login into all the instances within project. Using project-wide SSH keys eases the SSH key management but if compromised, poses the security risk which can impact all the instances within project. It is recommended to use Instance specific SSH keys which can limit the attack surface if the SSH keys are compromised.", + "ImpactStatement": "Users already having Project-wide ssh key pairs and using third party SSH clients will lose access to the impacted Instances. For Project users using gcloud or GCP Console based SSH option, no manual key creation and distribution is required and will be handled by GCE (Google Compute Engine) itself. To access Instance using third party SSH clients Instance specific SSH key pairs need to be created and distributed to the required users.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). It will list all the instances in your project. 2. Click on the name of the Impacted instance 3. Click `Edit` in the toolbar 4. Under SSH Keys, go to the `Block project-wide SSH keys` checkbox 5. To block users with project-wide SSH keys from connecting to this instance, select `Block project-wide SSH keys` 6. Click `Save` at the bottom of the page 7. Repeat steps for every impacted Instance **From Google Cloud CLI** To block project-wide public SSH keys, set the metadata value to `TRUE`: gcloud compute instances add-metadata --metadata block-project-ssh-keys=TRUE ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the `VM instances` page by visiting [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). It will list all the instances in your project. 2. For every instance, click on the name of the instance. 3. Under `SSH Keys`, ensure `Block project-wide SSH keys` is selected. **From Google Cloud CLI** 1. List the instances in your project and get details on each instance: gcloud compute instances list --format=json 2. Ensure `key: block-project-ssh-keys` is set to `value: 'true'`.", + "AdditionalInformation": "If OS Login is enabled, SSH keys in instance metadata are ignored, and therefore blocking project-wide SSH keys is not necessary.", + "References": "https://cloud.google.com/compute/docs/instances/adding-removing-ssh-keys:https://cloud.google.com/sdk/gcloud/reference/topic/formats", + "DefaultValue": "By Default `Block Project-wide SSH keys` is not enabled." + } + ] + }, + { + "Id": "4.4", + "Description": "Ensure Oslogin Is Enabled for a Project", + "Checks": [ + "compute_project_os_login_enabled" + ], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Enabling OS login binds SSH certificates to IAM users and facilitates effective SSH certificate management.", + "RationaleStatement": "Enabling osLogin ensures that SSH keys used to connect to instances are mapped with IAM users. Revoking access to IAM user will revoke all the SSH keys associated with that particular user. It facilitates centralized and automated SSH key pair management which is useful in handling cases like response to compromised SSH key pairs and/or revocation of external/third-party/Vendor users.", + "ImpactStatement": "Enabling OS Login on project disables metadata-based SSH key configurations on all instances from a project. Disabling OS Login restores SSH keys that you have configured in project or instance meta-data.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the VM compute metadata page by visiting: [https://console.cloud.google.com/compute/metadata](https://console.cloud.google.com/compute/metadata). 2. Click `Edit`. 3. Add a metadata entry where the key is `enable-oslogin` and the value is `TRUE`. 4. Click `Save` to apply the changes. 5. For every instance that overrides the project setting, go to the `VM Instances` page at [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 6. Click the name of the instance on which you want to remove the metadata value. 7. At the top of the instance details page, click `Edit` to edit the instance settings. 8. Under `Custom metadata`, remove any entry with key `enable-oslogin` and the value is `FALSE` 9. At the bottom of the instance details page, click `Save` to apply your changes to the instance. **From Google Cloud CLI** 1. Configure oslogin on the project: gcloud compute project-info add-metadata --metadata enable-oslogin=TRUE 2. Remove instance metadata that overrides the project setting. gcloud compute instances remove-metadata --keys=enable-oslogin Optionally, you can enable two factor authentication for OS login. For more information, see: [https://cloud.google.com/compute/docs/oslogin/setup-two-factor-authentication](https://cloud.google.com/compute/docs/oslogin/setup-two-factor-authentication).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the VM compute metadata page by visiting [https://console.cloud.google.com/compute/metadata](https://console.cloud.google.com/compute/metadata). 2. Ensure that key `enable-oslogin` is present with value set to `TRUE`. 3. Because instances can override project settings, ensure that no instance has custom metadata with key `enable-oslogin` and value `FALSE`. **From Google Cloud CLI** 1. List the instances in your project and get details on each instance: gcloud compute instances list --format=json 2. Verify that the section `commonInstanceMetadata` has a key `enable-oslogin` set to value `TRUE`. **Exception:** VMs created by GKE should be excluded. These VMs have names that start with `gke-` and are labeled `goog-gke-node`", + "AdditionalInformation": "1. In order to use osLogin, instance using Custom Images must have the latest version of the Linux Guest Environment installed. The following image families do not yet support OS Login: Project cos-cloud (Container-Optimized OS) image family cos-stable. All project coreos-cloud (CoreOS) image families Project suse-cloud (SLES) image family sles-11 All Windows Server and SQL Server image families 2. Project enable-oslogin can be over-ridden by setting enable-oslogin parameter to an instance metadata individually.", + "References": "https://cloud.google.com/compute/docs/instances/managing-instance-access:https://cloud.google.com/compute/docs/instances/managing-instance-access#enable_oslogin:https://cloud.google.com/sdk/gcloud/reference/compute/instances/remove-metadata:https://cloud.google.com/compute/docs/oslogin/setup-two-factor-authentication", + "DefaultValue": "By default, parameter `enable-oslogin` is not set, which is equivalent to setting it to `FALSE`." + } + ] + }, + { + "Id": "4.5", + "Description": "Ensure ‘Enable Connecting to Serial Ports’ Is Not Enabled for VM Instance", + "Checks": [ + "compute_instance_serial_ports_in_use" + ], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Interacting with a serial port is often referred to as the serial console, which is similar to using a terminal window, in that input and output is entirely in text mode and there is no graphical interface or mouse support. If you enable the interactive serial console on an instance, clients can attempt to connect to that instance from any IP address. Therefore interactive serial console support should be disabled.", + "RationaleStatement": "A virtual machine instance has four virtual serial ports. Interacting with a serial port is similar to using a terminal window, in that input and output is entirely in text mode and there is no graphical interface or mouse support. The instance's operating system, BIOS, and other system-level entities often write output to the serial ports, and can accept input such as commands or answers to prompts. Typically, these system-level entities use the first serial port (port 1) and serial port 1 is often referred to as the serial console. The interactive serial console does not support IP-based access restrictions such as IP whitelists. If you enable the interactive serial console on an instance, clients can attempt to connect to that instance from any IP address. This allows anybody to connect to that instance if they know the correct SSH key, username, project ID, zone, and instance name. Therefore interactive serial console support should be disabled.", + "ImpactStatement": "", + "RemediationProcedure": "**From Google Cloud Console** 1. Login to Google Cloud console 2. Go to Computer Engine 3. Go to VM instances 4. Click on the Specific VM 5. Click `EDIT` 6. Unselect `Enable connecting to serial ports` below `Remote access` block. 7. Click `Save` **From Google Cloud CLI** Use the below command to disable gcloud compute instances add-metadata --zone= --metadata=serial-port-enable=false or gcloud compute instances add-metadata --zone= --metadata=serial-port-enable=0 **Prevention:** You can prevent VMs from having serial port access enable by `Disable VM serial port access` organization policy: [https://console.cloud.google.com/iam-admin/orgpolicies/compute-disableSerialPortAccess](https://console.cloud.google.com/iam-admin/orgpolicies/compute-disableSerialPortAccess).", + "AuditProcedure": "**From Google Cloud Console** 1. Login to Google Cloud console 2. Go to Compute Engine 3. Go to VM instances 4. Click on the Specific VM 5. Ensure the statement `Connecting to serial serial ports is disabled` is displayed at the top of the details tab, just below the `Connect to serial console` drop-down.. **From Google Cloud CLI** Ensure the below command's output shows `null`: gcloud compute instances describe --zone= --format=json(metadata.items[].key,metadata.items[].value) or `key` and `value` properties from below command's json response are equal to `serial-port-enable` and `0` or `false` respectively. { metadata: { items: [ { key: serial-port-enable, value: 0 } ] } } ", + "AdditionalInformation": "", + "References": "https://cloud.google.com/compute/docs/instances/interacting-with-serial-console", + "DefaultValue": "By default, connecting to serial ports is not enabled." + } + ] + }, + { + "Id": "4.6", + "Description": "Ensure That IP Forwarding Is Not Enabled on Instances", + "Checks": [ + "compute_instance_ip_forwarding_is_enabled" + ], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Compute Engine instance cannot forward a packet unless the source IP address of the packet matches the IP address of the instance. Similarly, GCP won't deliver a packet whose destination IP address is different than the IP address of the instance receiving the packet. However, both capabilities are required if you want to use instances to help route packets. Forwarding of data packets should be disabled to prevent data loss or information disclosure.", + "RationaleStatement": "Compute Engine instance cannot forward a packet unless the source IP address of the packet matches the IP address of the instance. Similarly, GCP won't deliver a packet whose destination IP address is different than the IP address of the instance receiving the packet. However, both capabilities are required if you want to use instances to help route packets. To enable this source and destination IP check, disable the `canIpForward` field, which allows an instance to send and receive packets with non-matching destination or source IPs.", + "ImpactStatement": "", + "RemediationProcedure": "You only edit the `canIpForward` setting at instance creation or using CLI. **From Google Cloud CLI** 1. Use the instances export command to export the existing instance properties: gcloud compute instances export --project --zone --destination= **Note**Replace the following: INSTANCE_NAME the name for the instance that you want to export. PROJECT_ID: the project ID for this request. ZONE: the zone for this instance. FILE_PATH: the output path where you want to save the instance configuration file on your local workstation. 2. Use a text editor to modify this file Replace `canIpForward: true` with `canIpForward: false` 3. Run this command to import the file you just modified gcloud compute instances update-from-file INSTANCE_NAME --project PROJECT_ID --zone ZONE --source=FILE_PATH --most-disruptive-allowed-action=REFRESH If the update request is valid and the required resources are available, the instance update process begins. You can monitor the status of this operation by viewing the audit logs. This update requires only a REFRESH not a full restart.", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the `VM Instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. For every instance, click on its name to go to the `VM instance details` page. 3. Under the `Network interfaces` section, ensure that `IP forwarding` is set to `Off` for every network interface. **From Google Cloud CLI** 1. List all instances: gcloud compute instances list --format='table(name,canIpForward)' 2. Ensure that `CAN_IP_FORWARD` column in the output of above command does not contain `True` for any VM instance. **Exception:** Instances created by GKE should be excluded because they need to have IP forwarding enabled and cannot be changed. Instances created by GKE have names that start with gke-.", + "AdditionalInformation": "You can only set the `canIpForward` field at instance creation time or using CLI.", + "References": "https://cloud.google.com/vpc/docs/using-routes#canipforward:https://cloud.google.com/compute/docs/instances/update-instance-properties", + "DefaultValue": "By default, instances are not configured to allow IP forwarding." + } + ] + }, + { + "Id": "4.7", + "Description": "Ensure VM Disks for Critical VMs Are Encrypted With Customer-Supplied Encryption Keys (CSEK)", + "Checks": [ + "compute_instance_encryption_with_csek_enabled" + ], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "Customer-Supplied Encryption Keys (CSEK) are a feature in Google Cloud Storage and Google Compute Engine. If you supply your own encryption keys, Google uses your key to protect the Google-generated keys used to encrypt and decrypt your data. By default, Google Compute Engine encrypts all data at rest. Compute Engine handles and manages this encryption for you without any additional actions on your part. However, if you wanted to control and manage this encryption yourself, you can provide your own encryption keys.", + "RationaleStatement": "By default, Google Compute Engine encrypts all data at rest. Compute Engine handles and manages this encryption for you without any additional actions on your part. However, if you wanted to control and manage this encryption yourself, you can provide your own encryption keys. If you provide your own encryption keys, Compute Engine uses your key to protect the Google-generated keys used to encrypt and decrypt your data. Only users who can provide the correct key can use resources protected by a customer-supplied encryption key. Google does not store your keys on its servers and cannot access your protected data unless you provide the key. This also means that if you forget or lose your key, there is no way for Google to recover the key or to recover any data encrypted with the lost key. At least business critical VMs should have VM disks encrypted with CSEK.", + "ImpactStatement": "If you lose your encryption key, you will not be able to recover the data.", + "RemediationProcedure": "Currently there is no way to update the encryption of an existing disk. Therefore you should create a new disk with `Encryption` set to `Customer supplied`. **From Google Cloud Console** 1. Go to Compute Engine `Disks` by visiting: [https://console.cloud.google.com/compute/disks](https://console.cloud.google.com/compute/disks). 2. Click `CREATE DISK`. 3. Set `Encryption type` to `Customer supplied`, 4. Provide the `Key` in the box. 5. Select `Wrapped key`. 6. Click `Create`. **From Google Cloud CLI** In the gcloud compute tool, encrypt a disk using the --csek-key-file flag during instance creation. If you are using an RSA-wrapped key, use the gcloud beta component: gcloud compute instances create --csek-key-file To encrypt a standalone persistent disk: gcloud compute disks create --csek-key-file ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to Compute Engine `Disks` by visiting: [https://console.cloud.google.com/compute/disks](https://console.cloud.google.com/compute/disks). 2. Click on the disk for your critical VMs to see its configuration details. 4. Ensure that `Encryption type` is set to `Customer supplied`. **From Google Cloud CLI** Ensure `diskEncryptionKey` property in the below command's response is not null, and contains key `sha256` with corresponding value gcloud compute disks describe --zone --format=json(diskEncryptionKey,name) ", + "AdditionalInformation": "`Note 1:` When you delete a persistent disk, Google discards the cipher keys, rendering the data irretrievable. This process is irreversible. `Note 2:` It is up to you to generate and manage your key. You must provide a key that is a 256-bit string encoded in RFC 4648 standard base64 to Compute Engine. `Note 3:` An example key file looks like this. [ { uri: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/disks/example-disk, key: acXTX3rxrKAFTF0tYVLvydU1riRZTvUNC4g5I11NY-c=, key-type: raw }, { uri: https://www.googleapis.com/compute/v1/projects/myproject/global/snapshots/my-private-snapshot, key: ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFHz0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoDD6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oeQ5lAbtt7bYAAHf5l+gJWw3sUfs0/Glw5fpdjT8Uggrr+RMZezGrltJEF293rvTIjWOEB3z5OHyHwQkvdrPDFcTqsLfh+8Hr8g+mf+7zVPEC8nEbqpdl3GPv3A7AwpFp7MA== key-type: rsa-encrypted } ]", + "References": "https://cloud.google.com/compute/docs/disks/customer-supplied-encryption#encrypt_a_new_persistent_disk_with_your_own_keys:https://cloud.google.com/compute/docs/reference/rest/v1/disks/get:https://cloud.google.com/compute/docs/disks/customer-supplied-encryption#key_file", + "DefaultValue": "By default, VM disks are encrypted with Google-managed keys. They are not encrypted with Customer-Supplied Encryption Keys." + } + ] + }, + { + "Id": "4.8", + "Description": "Ensure Compute Instances Are Launched With Shielded VM Enabled", + "Checks": [ + "compute_instance_shielded_vm_enabled" + ], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "To defend against advanced threats and ensure that the boot loader and firmware on your VMs are signed and untampered, it is recommended that Compute instances are launched with Shielded VM enabled.", + "RationaleStatement": "Shielded VMs are virtual machines (VMs) on Google Cloud Platform hardened by a set of security controls that help defend against rootkits and bootkits. Shielded VM offers verifiable integrity of your Compute Engine VM instances, so you can be confident your instances haven't been compromised by boot- or kernel-level malware or rootkits. Shielded VM's verifiable integrity is achieved through the use of Secure Boot, virtual trusted platform module (vTPM)-enabled Measured Boot, and integrity monitoring. Shielded VM instances run firmware which is signed and verified using Google's Certificate Authority, ensuring that the instance's firmware is unmodified and establishing the root of trust for Secure Boot. Integrity monitoring helps you understand and make decisions about the state of your VM instances and the Shielded VM vTPM enables Measured Boot by performing the measurements needed to create a known good boot baseline, called the integrity policy baseline. The integrity policy baseline is used for comparison with measurements from subsequent VM boots to determine if anything has changed. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails.", + "ImpactStatement": "", + "RemediationProcedure": "To be able turn on `Shielded VM` on an instance, your instance must use an image with Shielded VM support. **From Google Cloud Console** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. Click on the instance name to see its `VM instance details` page. 3. Click `STOP` to stop the instance. 4. When the instance has stopped, click `EDIT`. 5. In the Shielded VM section, select `Turn on vTPM` and `Turn on Integrity Monitoring`. 6. Optionally, if you do not use any custom or unsigned drivers on the instance, also select `Turn on Secure Boot`. 7. Click the `Save` button to modify the instance and then click `START` to restart it. **From Google Cloud CLI** You can only enable Shielded VM options on instances that have Shielded VM support. For a list of Shielded VM public images, run the gcloud compute images list command with the following flags: gcloud compute images list --project gce-uefi-images --no-standard-images 1. Stop the instance: gcloud compute instances stop 2. Update the instance: gcloud compute instances update --shielded-vtpm --shielded-vm-integrity-monitoring 3. Optionally, if you do not use any custom or unsigned drivers on the instance, also turn on secure boot. gcloud compute instances update --shielded-vm-secure-boot 4. Restart the instance: gcloud compute instances start **Prevention:** You can ensure that all new VMs will be created with Shielded VM enabled by setting up an Organization Policy to for `Shielded VM` at [https://console.cloud.google.com/iam-admin/orgpolicies/compute-requireShieldedVm](https://console.cloud.google.com/iam-admin/orgpolicies/compute-requireShieldedVm). Learn more at: [https://cloud.google.com/security/shielded-cloud/shielded-vm#organization-policy-constraint](https://cloud.google.com/security/shielded-cloud/shielded-vm#organization-policy-constraint).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. Click on the instance name to see its `VM instance details` page. 3. Under the section `Shielded VM`, ensure that `vTPM` and `Integrity Monitoring` are `on`. **From Google Cloud CLI** 1. For each instance in your project, get its metadata: gcloud compute instances list --format=json | jq -r '. | vTPM: (.[].shieldedInstanceConfig.enableVtpm) IntegrityMonitoring: (.[].shieldedInstanceConfig.enableIntegrityMonitoring) Name: (.[].name)' 2. Ensure that there is a `shieldedInstanceConfig` configuration and that configuration has the `enableIntegrityMonitoring` and `enableVtpm` set to `true`. If the VM is not a Shield VM image, you will not see a shieldedInstanceConfig` in the output.", + "AdditionalInformation": "If you do use custom or unsigned drivers on the instance, enabling Secure Boot will cause the machine to no longer boot. Turn on Secure Boot only on instances that have been verified to not have any custom drivers installed.", + "References": "https://cloud.google.com/compute/docs/instances/modifying-shielded-vm:https://cloud.google.com/shielded-vm:https://cloud.google.com/security/shielded-cloud/shielded-vm#organization-policy-constraint", + "DefaultValue": "By default, Compute Instances do not have Shielded VM enabled." + } + ] + }, + { + "Id": "4.9", + "Description": "Ensure That Compute Instances Do Not Have Public IP Addresses", + "Checks": [ + "compute_instance_public_ip" + ], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "Compute instances should not be configured to have external IP addresses.", + "RationaleStatement": "To reduce your attack surface, Compute instances should not have public IP addresses. Instead, instances should be configured behind load balancers, to minimize the instance's exposure to the internet.", + "ImpactStatement": "Removing the external IP address from your Compute instance may cause some applications to stop working.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. Click on the instance name to go the the `Instance detail page`. 3. Click `Edit`. 4. For each Network interface, ensure that `External IP` is set to `None`. 5. Click `Done` and then click `Save`. **From Google Cloud CLI** 1. Describe the instance properties: gcloud compute instances describe --zone= 2. Identify the access config name that contains the external IP address. This access config appears in the following format: networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: External NAT natIP: 130.211.181.55 type: ONE_TO_ONE_NAT 3. Delete the access config. gcloud compute instances delete-access-config --zone= --access-config-name In the above example, the `ACCESS_CONFIG_NAME` is `External NAT`. The name of your access config might be different. **Prevention:** You can configure the `Define allowed external IPs for VM instances` Organization Policy to prevent VMs from being configured with public IP addresses. Learn more at: [https://console.cloud.google.com/orgpolicies/compute-vmExternalIpAccess](https://console.cloud.google.com/orgpolicies/compute-vmExternalIpAccess)", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. For every VM, ensure that there is no `External IP` configured. **From Google Cloud CLI** gcloud compute instances list --format=json 1. The output should not contain an `accessConfigs` section under `networkInterfaces`. Note that the `natIP` value is present only for instances that are running or for instances that are stopped but have a static IP address. For instances that are stopped and are configured to have an ephemeral public IP address, the `natIP` field will not be present. Example output: networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: External NAT networkTier: STANDARD type: ONE_TO_ONE_NAT **Exception:** Instances created by GKE should be excluded because some of them have external IP addresses and cannot be changed by editing the instance settings. Instances created by GKE should be excluded. These instances have names that start with gke- and are labeled goog-gke-node.", + "AdditionalInformation": "You can connect to Linux VMs that do not have public IP addresses by using Identity-Aware Proxy for TCP forwarding. Learn more at [https://cloud.google.com/compute/docs/instances/connecting-advanced#sshbetweeninstances](https://cloud.google.com/compute/docs/instances/connecting-advanced#sshbetweeninstances) For Windows VMs, see [https://cloud.google.com/compute/docs/instances/connecting-to-instance](https://cloud.google.com/compute/docs/instances/connecting-to-instance).", + "References": "https://cloud.google.com/load-balancing/docs/backend-service#backends_and_external_ip_addresses:https://cloud.google.com/compute/docs/instances/connecting-advanced#sshbetweeninstances:https://cloud.google.com/compute/docs/instances/connecting-to-instance:https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address#unassign_ip:https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints", + "DefaultValue": "By default, Compute instances have a public IP address." + } + ] + }, + { + "Id": "4.1", + "Description": "Ensure That App Engine Applications Enforce HTTPS Connections", + "Checks": [], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 2", + "AssessmentStatus": "Manual", + "Description": "In order to maintain the highest level of security all connections to an application should be secure by default.", + "RationaleStatement": "Insecure HTTP connections maybe subject to eavesdropping which can expose sensitive data.", + "ImpactStatement": "All connections to appengine will automatically be redirected to the HTTPS endpoint ensuring that all connections are secured by TLS.", + "RemediationProcedure": "Add a line to the app.yaml file controlling the application which enforces secure connections. For example handlers: - url: /.* **secure: always** redirect_http_response_code: 301 script: auto [https://cloud.google.com/appengine/docs/standard/python3/config/appref]", + "AuditProcedure": "Verify that the app.yaml file controlling the application contains a line which enforces secure connections. For example handlers: - url: /.* secure: always redirect_http_response_code: 301 script: auto [https://cloud.google.com/appengine/docs/standard/python3/config/appref](https://cloud.google.com/appengine/docs/standard/python3/config/appref)", + "AdditionalInformation": "", + "References": "https://cloud.google.com/appengine/docs/standard/python3/config/appref:https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml", + "DefaultValue": "By default both HTTP and HTTP are supported" + } + ] + }, + { + "Id": "4.11", + "Description": "Ensure That Compute Instances Have Confidential Computing Enabled", + "Checks": [ + "compute_instance_confidential_computing_enabled" + ], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "Google Cloud encrypts data at-rest and in-transit, but customer data must be decrypted for processing. Confidential Computing is a breakthrough technology that encrypts data in-use while it is being processed. Confidential Computing environments keep data encrypted in memory and elsewhere outside the central processing unit (CPU). Confidential VMs leverage hardware-based memory encryption technologies, such as AMD Secure Encrypted Virtualization (SEV), AMD SEV-SNP, and Intel Trust Domain Extensions (TDX), depending on the chosen machine type and CPU platform. Customer data will stay encrypted while it is used, indexed, queried, or trained on. Encryption keys are generated by and reside solely in dedicated hardware and are not exportable, enhancing isolation and security. Built-in hardware optimizations ensure Confidential Computing workloads experience minimal to no significant performance penalties.", + "RationaleStatement": "Confidential Computing enables customers' sensitive code and other data encrypted in memory during processing. Google does not have access to the encryption keys. Confidential VM can help alleviate concerns about risk related to either dependency on Google infrastructure or Google insiders' access to customer data in the clear.", + "ImpactStatement": "- Confidential Computing for Compute instances does not support live migration. Unlike regular Compute instances, Confidential VMs experience disruptions during maintenance events like a software or hardware update. - Additional charges may be incurred when enabling this security feature. See [https://cloud.google.com/compute/confidential-vm/pricing](https://cloud.google.com/compute/confidential-vm/pricing) for more info.", + "RemediationProcedure": "Confidential Computing can only be enabled when an instance is created. You must delete the current instance and create a new one. **From Google Cloud Console** 1. Go to the VM instances page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. Click `CREATE INSTANCE`. 3. Fill out the desired configuration for your instance. 4. Under the `Confidential VM service` section, check the option `Enable the Confidential Computing service on this VM instance`. 5. Click `Create`. **From Google Cloud CLI** Create a new instance with Confidential Compute enabled. gcloud compute instances create --zone --confidential-compute --maintenance-policy=TERMINATE ", + "AuditProcedure": "Note: Confidential Computing is currently only supported on limited VM configurations. To learn more about VM configurations supported by Confidential Computing, visit [https://cloud.google.com/confidential-computing/confidential-vm/docs/supported-configurations](https://cloud.google.com/confidential-computing/confidential-vm/docs/supported-configurations) **From Google Cloud Console** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. Click on the instance name to see its VM instance details page. 3. Ensure that `Confidential VM service` is `Enabled`. **From Google Cloud CLI** 1. List the instances in your project and get details on each instance: gcloud compute instances list --format=json 2. Ensure that `enableConfidentialCompute` is set to `true` for all instances with machine type starting with n2d-. confidentialInstanceConfig: enableConfidentialCompute: true ", + "AdditionalInformation": "", + "References": "https://cloud.google.com/compute/confidential-vm/docs/creating-cvm-instance:https://cloud.google.com/compute/confidential-vm/docs/about-cvm:https://cloud.google.com/confidential-computing:https://cloud.google.com/blog/products/identity-security/introducing-google-cloud-confidential-computing-with-confidential-vms", + "DefaultValue": "By default, Confidential Computing is disabled for Compute instances." + } + ] + }, + { + "Id": "4.12", + "Description": "Ensure the Latest Operating System Updates Are Installed On Your Virtual Machines in All Projects", + "Checks": [], + "Attributes": [ + { + "Section": "4 Virtual Machines", + "Profile": "Level 2", + "AssessmentStatus": "Manual", + "Description": "Google Cloud Virtual Machines have the ability via an OS Config agent API to periodically (about every 10 minutes) report OS inventory data. A patch compliance API periodically reads this data, and cross references metadata to determine if the latest updates are installed. This is not the only Patch Management solution available to your organization and you should weigh your needs before committing to using this method.", + "RationaleStatement": "Keeping virtual machine operating systems up to date is a security best practice. Using this service will simplify this process.", + "ImpactStatement": "Most Operating Systems require a restart or changing critical resources to apply the updates. Using the Google Cloud VM manager for its OS Patch management will incur additional costs for each VM managed by it. Please view the VM manager pricing reference for further information.", + "RemediationProcedure": "**From Google Cloud Console** **Enabling OS Patch Management on a Project by Project Basis** **Install OS Config API for the Project** 1. Navigate into a project. In the expanded portal menu located at the top left of the screen hover over APIs & Services. Then in the menu right of that select API Libraries 2. Search for VM Manager (OS Config API) or scroll down in the left hand column and select the filter labeled Compute where it is the last listed. Open this API. 3. Click the blue 'Enable' button. **Add MetaData Tags for OSConfig Parsing** 1. From the main Google Cloud console, open the portal menu in the top left. Mouse over Computer Engine to expand the menu next to it. 2. Under the Settings heading, select Metadata. 3. In this view there will be a list of the project wide metadata tags for VMs. Click edit and 'add item' in the key column type 'enable-osconfig' and in the value column set it to 'true'. From Command Line 1. For project wide tagging, run the following command gcloud compute project-info add-metadata --project --metadata=enable-osconfig=TRUE Please see the reference /compute/docs/troubleshooting/vm-manager/verify-setup#metadata-enabled at the bottom for more options like instance specific tagging. Note: Adding a new tag via commandline may overwrite existing tags. You will need to do this at a time of low usage for the least impact. **Install and Start the Local OSConfig for Data Parsing** There is no way to centrally manage or start the Local OSConfig agent. Please view the reference of manage-os#agent-install to view specific operating system commands. **Setup a project wide Service Account** Please view Recommendation 4.1 to view how to setup a service account. Rerun the audit procedure to test if it has taken effect. **Enable NAT or Configure Private Google Access to allow Access to Public Update Hosting** For the sake of brevity, please see the attached resources to enable NAT or Private Google Access. Rerun the audit procedure to test if it has taken effect. From Command Line: **Install OS Config API for the Project** 1. In each project you wish to audit run gcloud services enable osconfig.googleapis.com **Install and Start the Local OSConfig for Data Parsing** Please view the reference of manage-os#agent-install to view specific operating system commands. **Setup a project wide Service Account** Please view Recommendation 4.1 to view how to setup a service account. Rerun the audit procedure to test if it has taken effect. **Enable NAT or Configure Private Google Access to allow Access to Public Update Hosting** For the sake of brevity, please see the attached resources to enable NAT or Private Google Access. Rerun the audit procedure to test if it has taken effect. Determine if Instances can connect to public update hosting Linux Debian Based Operating Systems sudo apt update The output should have a numbered list of lines with Hit: URL of updates. Redhat Based Operating Systems yum check-update The output should show a list of packages that have updates available. Windows ping http://windowsupdate.microsoft.com/ The ping should successfully be delivered and received.", + "AuditProcedure": "**From Google Cloud Console** **Determine if OS Config API is Enabled for the Project** 1. Navigate into a project. In the expanded navigation menu located at the top left of the screen hover over `APIs & Services`. Then in the menu right of that select `API Libraries` 2. Search for VM Manager (OS Config API) or scroll down in the left hand column and select the filter labeled Compute where it is the last listed. Open this API. 3. Verify the blue button at the top is enabled. **Determine if VM Instances have correct metadata tags for OSConfig parsing** 1. From the main Google Cloud console, open the hamburger menu in the top left. Mouse over Computer Engine to expand the menu next to it. 1. Under the Settings heading, select Metadata. 1. In this view there will be a list of the project wide metadata tags for VMs. Determine if the tag enable-osconfig is set to true. **Determine if the Operating System of VM Instances have the local OS-Config Agent running** There is no way to determine this from the Google Cloud console. The only way is to run operating specific commands locally inside the operating system via remote connection. For the sake of brevity of this recommendation please view the docs/troubleshooting/vm-manager/verify-setup reference at the bottom of the page. If you initialized your VM instance with a Google Supplied OS Image with a build date of later than v20200114 it will have the service installed. You should still determine its status for proper operation. **Verify the service account you have setup for the project in Recommendation 4.1 is running** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. Click on each instance name to go to its `VM instance details` page. 3. Under the section `Service Account`, take note of the service account 4. Run the commands locally for your operating system that are located at the docs/troubleshooting/vm-manager/verify-setup#service-account-enabled reference located at the bottom of this page. They should return the name of your service account. **Determine if Instances can connect to public update hosting** Each type of operating system has its own update process. You will need to determine on each operating system that it can reach the update servers via its network connection. The VM Manager doesn't host the updates, it will only allow you to centrally issue a command to each VM to update. **Determine if OS Config API is Enabled for the Project** 1. In each project you wish to enable run the following command gcloud services list 2. If osconfig.googleapis.com is in the left hand column it is enabled for this project. **Determine if VM Manager is Enabled for the Project** 1. Within the project run the following command: gcloud compute instances os-inventory describe VM-NAME --zone=ZONE The output will look like INSTANCE_ID INSTANCE_NAME OS OSCONFIG_AGENT_VERSION UPDATE_TIME 29255009728795105 centos7 CentOS Linux 7 (Core) 20210217.00-g1.el7 2021-04-12T22:19:36.559Z 5138980234596718741 rhel-8 Red Hat Enterprise Linux 8.3 (Ootpa) 20210316.00-g1.el8 2021-09-16T17:19:24Z 7127836223366142250 windows Microsoft Windows Server 2019 Datacenter 20210316.00.0+win@1 2021-09-16T17:13:18Z **Determine if VM Instances have correct metadata tags for OSConfig parsing** 1. Select the project you want to view tagging in. **From Google Cloud Console** 1. From the main Google Cloud console, open the hamburger menu in the top left. Mouse over Computer Engine to expand the menu next to it. 2. Under the Settings heading, select Metadata. 3. In this view there will be a list of the project wide metadata tags for Vms. Verify a tag of ‘enable-osconfig’ is in this list and it is set to ‘true’. **From Command Line** Run the following command to view instance data gcloud compute instances list --format=table(name,status,tags.list()) On each instance it should have a tag of ‘enable-osconfig’ set to ‘true’ **Determine if the Operating System of VM Instances have the local OS-Config Agent running** There is no way to determine this from the Google Cloud CLI. The best way is to run the the commands inside the operating system located at 'Check OS-Config agent is installed and running' at the /docs/troubleshooting/vm-manager/verify-setup reference at the bottom of the page. If you initialized your VM instance with a Google Supplied OS Image with a build date of later than v20200114 it will have the service installed. You should still determine its status. **Verify the service account you have setup for the project in Recommendation 4.1 is running** 1. Go to the `VM instances` page by visiting: [https://console.cloud.google.com/compute/instances](https://console.cloud.google.com/compute/instances). 2. Click on each instance name to go to its `VM instance details` page. 3. Under the section `Service Account`, take note of the service account 4. View the compute/docs/troubleshooting/vm-manager/verify-setup#service-account-enabled resource at the bottom of the page for operating system specific commands to run locally. **Determine if Instances can connect to public update hosting** Linux Debian Based Operating Systems sudo apt update The output should have a numbered list of lines with Hit: URL of updates. Redhat Based Operating Systems yum check-update The output should show a list of packages that have updates available. Windows ping http://windowsupdate.microsoft.com/ The ping should successfully be delivered and received.", + "AdditionalInformation": "This is not your only solution to handle updates. This is a Google Cloud specific recommendation to leverage a resource to solve the need for comprehensive update procedures and policy. If you have a solution already in place you do not need to make the switch. There are also further resources that would be out of the scope of this recommendation. If you need to allow your VMs to access public hosted updates, please see the reference to setup NAT or Private Google Access.", + "References": "https://cloud.google.com/compute/docs/manage-os:https://cloud.google.com/compute/docs/os-patch-management:https://cloud.google.com/compute/docs/vm-manager:https://cloud.google.com/compute/docs/images/os-details#vm-manager:https://cloud.google.com/compute/docs/vm-manager#pricing:https://cloud.google.com/compute/docs/troubleshooting/vm-manager/verify-setup:https://cloud.google.com/compute/docs/instances/view-os-details#view-data-tools:https://cloud.google.com/compute/docs/os-patch-management/create-patch-job:https://cloud.google.com/nat/docs/set-up-network-address-translation:https://cloud.google.com/vpc/docs/configure-private-google-access:https://workbench.cisecurity.org/sections/811638/recommendations/1334335:https://cloud.google.com/compute/docs/manage-os#agent-install:https://cloud.google.com/compute/docs/troubleshooting/vm-manager/verify-setup#service-account-enabled:https://cloud.google.com/compute/docs/os-patch-management#use-dashboard:https://cloud.google.com/compute/docs/troubleshooting/vm-manager/verify-setup#metadata-enabled", + "DefaultValue": "By default most operating systems and programs do not update themselves. The Google Cloud VM Manager which is a dependency of the OS Patch management feature is installed on Google Built OS images with a build date of v20200114 or later. The VM manager is not enabled in a project by default and will need to be setup." + } + ] + }, + { + "Id": "5.1", + "Description": "Ensure That Cloud Storage Bucket Is Not Anonymously or Publicly Accessible", + "Checks": [ + "cloudstorage_bucket_public_access" + ], + "Attributes": [ + { + "Section": "5 Storage", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended that IAM policy on Cloud Storage bucket does not allows anonymous or public access.", + "RationaleStatement": "Allowing anonymous or public access grants permissions to anyone to access bucket content. Such access might not be desired if you are storing any sensitive data. Hence, ensure that anonymous or public access to a bucket is not allowed.", + "ImpactStatement": "No storage buckets would be publicly accessible. You would have to explicitly administer bucket access.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `Storage browser` by visiting [https://console.cloud.google.com/storage/browser](https://console.cloud.google.com/storage/browser). 2. Click on the bucket name to go to its `Bucket details` page. 3. Click on the `Permissions` tab. 4. Click `Delete` button in front of `allUsers` and `allAuthenticatedUsers` to remove that particular role assignment. **From Google Cloud CLI** Remove `allUsers` and `allAuthenticatedUsers` access. gsutil iam ch -d allUsers gs://BUCKET_NAME gsutil iam ch -d allAuthenticatedUsers gs://BUCKET_NAME **Prevention:** You can prevent Storage buckets from becoming publicly accessible by setting up the `Domain restricted sharing` organization policy at:[ https://console.cloud.google.com/iam-admin/orgpolicies/iam-allowedPolicyMemberDomains ](https://console.cloud.google.com/iam-admin/orgpolicies/iam-allowedPolicyMemberDomains).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `Storage browser` by visiting [https://console.cloud.google.com/storage/browser](https://console.cloud.google.com/storage/browser). 2. Click on each bucket name to go to its `Bucket details` page. 3. Click on the `Permissions` tab. 4. Ensure that `allUsers` and `allAuthenticatedUsers` are not in the `Members` list. **From Google Cloud CLI** 1. List all buckets in a project gsutil ls 2. Check the IAM Policy for each bucket: gsutil iam get gs://BUCKET_NAME No role should contain `allUsers` and/or `allAuthenticatedUsers` as a member. **Using Rest API** 1. List all buckets in a project Get https://www.googleapis.com/storage/v1/b?project= 2. Check the IAM Policy for each bucket GET https://www.googleapis.com/storage/v1/b//iam No role should contain `allUsers` and/or `allAuthenticatedUsers` as a member.", + "AdditionalInformation": "To implement Access restrictions on buckets, configuring Bucket IAM is preferred way than configuring Bucket ACL. On GCP console, Edit Permissions for bucket exposes IAM configurations only. Bucket ACLs are configured automatically as per need in order to implement/support User enforced Bucket IAM policy. In-case administrator changes bucket ACL using command-line(gsutils)/API bucket IAM also gets updated automatically.", + "References": "https://cloud.google.com/storage/docs/access-control/iam-reference:https://cloud.google.com/storage/docs/access-control/making-data-public:https://cloud.google.com/storage/docs/gsutil/commands/iam", + "DefaultValue": "By Default, Storage buckets are not publicly shared." + } + ] + }, + { + "Id": "5.2", + "Description": "Ensure That Cloud Storage Buckets Have Uniform Bucket-Level Access Enabled", + "Checks": [ + "cloudstorage_bucket_uniform_bucket_level_access" + ], + "Attributes": [ + { + "Section": "5 Storage", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "It is recommended that uniform bucket-level access is enabled on Cloud Storage buckets.", + "RationaleStatement": "It is recommended to use uniform bucket-level access to unify and simplify how you grant access to your Cloud Storage resources. Cloud Storage offers two systems for granting users permission to access your buckets and objects: Cloud Identity and Access Management (Cloud IAM) and Access Control Lists (ACLs). These systems act in parallel - in order for a user to access a Cloud Storage resource, only one of the systems needs to grant the user permission. Cloud IAM is used throughout Google Cloud and allows you to grant a variety of permissions at the bucket and project levels. ACLs are used only by Cloud Storage and have limited permission options, but they allow you to grant permissions on a per-object basis. In order to support a uniform permissioning system, Cloud Storage has uniform bucket-level access. Using this feature disables ACLs for all Cloud Storage resources: access to Cloud Storage resources then is granted exclusively through Cloud IAM. Enabling uniform bucket-level access guarantees that if a Storage bucket is not publicly accessible, no object in the bucket is publicly accessible either.", + "ImpactStatement": "If you enable uniform bucket-level access, you revoke access from users who gain their access solely through object ACLs. Certain Google Cloud services, such as Stackdriver, Cloud Audit Logs, and Datastore, cannot export to Cloud Storage buckets that have uniform bucket-level access enabled.", + "RemediationProcedure": "**From Google Cloud Console** 1. Open the Cloud Storage browser in the Google Cloud Console by visiting: [https://console.cloud.google.com/storage/browser](https://console.cloud.google.com/storage/browser) 2. In the list of buckets, click on the name of the desired bucket. 3. Select the `Permissions` tab near the top of the page. 4. In the text box that starts with `This bucket uses fine-grained access control...`, click `Edit`. 5. In the pop-up menu that appears, select `Uniform`. 6. Click `Save`. **From Google Cloud CLI** Use the on option in a uniformbucketlevelaccess set command: gsutil uniformbucketlevelaccess set on gs://BUCKET_NAME/ **Prevention** You can set up an Organization Policy to enforce that any new bucket has uniform bucket level access enabled. Learn more at: [https://cloud.google.com/storage/docs/setting-org-policies#uniform-bucket](https://cloud.google.com/storage/docs/setting-org-policies#uniform-bucket)", + "AuditProcedure": "**From Google Cloud Console** 1. Open the Cloud Storage browser in the Google Cloud Console by visiting: [https://console.cloud.google.com/storage/browser](https://console.cloud.google.com/storage/browser) 2. For each bucket, make sure that `Access control` column has the value `Uniform`. **From Google Cloud CLI** 1. List all buckets in a project gsutil ls 2. For each bucket, verify that uniform bucket-level access is enabled. gsutil uniformbucketlevelaccess get gs://BUCKET_NAME/ If uniform bucket-level access is enabled, the response looks like: Uniform bucket-level access setting for gs://BUCKET_NAME/: Enabled: True LockedTime: LOCK_DATE ", + "AdditionalInformation": "Uniform bucket-level access can no longer be disabled if it has been active on a bucket for 90 consecutive days.", + "References": "https://cloud.google.com/storage/docs/uniform-bucket-level-access:https://cloud.google.com/storage/docs/using-uniform-bucket-level-access:https://cloud.google.com/storage/docs/setting-org-policies#uniform-bucket", + "DefaultValue": "By default, Cloud Storage buckets do not have uniform bucket-level access enabled." + } + ] + }, + { + "Id": "6.4", + "Description": "Ensure That the Cloud SQL Database Instance Requires All Incoming Connections To Use SSL", + "Checks": [ + "cloudsql_instance_ssl_connections" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to enforce all incoming connections to SQL database instance to use SSL.", + "RationaleStatement": "SQL database connections if successfully trapped (MITM); can reveal sensitive data like credentials, database queries, query outputs etc. For security, it is recommended to always use SSL encryption when connecting to your instance. This recommendation is applicable for Postgresql, MySql generation 1, MySql generation 2 and SQL Server 2017 instances.", + "ImpactStatement": "After enforcing SSL requirement for connections, existing client will not be able to communicate with Cloud SQL database instance unless they use SSL encrypted connections to communicate to Cloud SQL database instance.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Click on an instance name to see its configuration overview. 3. In the left-side panel, select `Connections`. 3. In the `security` section, select SSL mode as `Allow only SSL connections`. 4. Under `Configure SSL server certificates` click `Create new certificate` and save the setting **From Google Cloud CLI** To enforce SSL encryption for an instance run the command: gcloud sql instances patch INSTANCE_NAME --ssl-mode= ENCRYPTED_ONLY Note: `RESTART` is required for type MySQL Generation 1 Instances (`backendType: FIRST_GEN`) to get this configuration in effect.", + "AuditProcedure": "**From Google Cloud Console** 1. Go to [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Click on an instance name to see its configuration overview. 3. In the left-side panel, select `Connections`. 3. In the `Security` section, ensure that `Allow only SSL connections` option is selected. **From Google Cloud CLI** 1. Get the detailed configuration for every SQL database instance using the following command: gcloud sql instances list --format=json Ensure that section `settings: ipConfiguration` has the parameter `sslMode` set to `ENCRYPTED_ONLY `.", + "AdditionalInformation": "By default `Settings: ipConfiguration` has no `authorizedNetworks` set/configured. In that case even if by default `sslMode` is not set, which is equivalent to `sslMode:ALLOW_UNENCRYPTED_AND_ENCRYPTED ` there is no risk as instance cannot be accessed outside of the network unless `authorizedNetworks` are configured. However, If default for `sslMode` is not updated to `ENCRYPTED_ONLY ` any `authorizedNetworks` created later on will not enforce SSL only connection.", + "References": "https://cloud.google.com/sql/docs/postgres/configure-ssl-instance/", + "DefaultValue": "By default parameter `settings: ipConfiguration: sslMode` is not set which is equivalent to `sslMode:ALLOW_UNENCRYPTED_AND_ENCRYPTED`." + } + ] + }, + { + "Id": "6.5", + "Description": "Ensure That Cloud SQL Database Instances Do Not Implicitly Whitelist All Public IP Addresses", + "Checks": [ + "cloudsql_instance_public_access" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Database Server should accept connections only from trusted Network(s)/IP(s) and restrict access from public IP addresses.", + "RationaleStatement": "To minimize attack surface on a Database server instance, only trusted/known and required IP(s) should be white-listed to connect to it. An authorized network should not have IPs/networks configured to `0.0.0.0/0` which will allow access to the instance from anywhere in the world. Note that authorized networks apply only to instances with public IPs.", + "ImpactStatement": "The Cloud SQL database instance would not be available to public IP addresses.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Click the instance name to open its `Instance details` page. 3. Under the `Configuration` section click `Edit configurations` 4. Under `Configuration options` expand the `Connectivity` section. 5. Click the `delete` icon for the authorized network `0.0.0.0/0`. 6. Click `Save` to update the instance. **From Google Cloud CLI** Update the authorized network list by dropping off any addresses. gcloud sql instances patch --authorized-networks=IP_ADDR1,IP_ADDR2... **Prevention:** To prevent new SQL instances from being configured to accept incoming connections from any IP addresses, set up a `Restrict Authorized Networks on Cloud SQL instances` Organization Policy at: [https://console.cloud.google.com/iam-admin/orgpolicies/sql-restrictAuthorizedNetworks](https://console.cloud.google.com/iam-admin/orgpolicies/sql-restrictAuthorizedNetworks).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Click the instance name to open its `Instance details` page. 3. Under the `Configuration` section click `Edit configurations` 4. Under `Configuration options` expand the `Connectivity` section. 5. Ensure that no authorized network is configured to allow `0.0.0.0/0`. **From Google Cloud CLI** 1. Get detailed configuration for every Cloud SQL database instance. gcloud sql instances list --format=json Ensure that the section `settings: ipConfiguration : authorizedNetworks` does not have any parameter `value` containing `0.0.0.0/0`.", + "AdditionalInformation": "There is no IPv6 configuration found for Google cloud SQL server services.", + "References": "https://cloud.google.com/sql/docs/mysql/configure-ip:https://console.cloud.google.com/iam-admin/orgpolicies/sql-restrictAuthorizedNetworks:https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints:https://cloud.google.com/sql/docs/mysql/connection-org-policy", + "DefaultValue": "By default, authorized networks are not configured. Remote connection to Cloud SQL database instance is not possible unless authorized networks are configured." + } + ] + }, + { + "Id": "6.6", + "Description": "Ensure That Cloud SQL Database Instances Do Not Have Public IPs", + "Checks": [ + "cloudsql_instance_public_access" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "It is recommended to configure Second Generation Sql instance to use private IPs instead of public IPs.", + "RationaleStatement": "To lower the organization's attack surface, Cloud SQL databases should not have public IPs. Private IPs provide improved network security and lower latency for your application.", + "ImpactStatement": "Removing the public IP address on SQL instances may break some applications that relied on it for database connectivity.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console: [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances) 2. Click the instance name to open its Instance details page. 3. Select the `Connections` tab. 4. Deselect the `Public IP` checkbox. 5. Click `Save` to update the instance. **From Google Cloud CLI** 1. For every instance remove its public IP and assign a private IP instead: gcloud sql instances patch --network= --no-assign-ip 2. Confirm the changes using the following command:: gcloud sql instances describe **Prevention:** To prevent new SQL instances from getting configured with public IP addresses, set up a `Restrict Public IP access on Cloud SQL instances` Organization policy at: [https://console.cloud.google.com/iam-admin/orgpolicies/sql-restrictPublicIp](https://console.cloud.google.com/iam-admin/orgpolicies/sql-restrictPublicIp).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console: [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances) 2. Ensure that every instance has a private IP address and no public IP address configured. **From Google Cloud CLI** 1. List all Cloud SQL database instances using the following command: gcloud sql instances list 2. For every instance of type `instanceType: CLOUD_SQL_INSTANCE` with `backendType: SECOND_GEN`, get detailed configuration. Ignore instances of type `READ_REPLICA_INSTANCE` because these instances inherit their settings from the primary instance. Also, note that first generation instances cannot be configured to have a private IP address. gcloud sql instances describe 3. Ensure that the setting `ipAddresses` has an IP address configured of `type: PRIVATE` and has no IP address of `type: PRIMARY`. `PRIMARY` IP addresses are public addresses. An instance can have both a private and public address at the same time. Note also that you cannot use private IP with First Generation instances.", + "AdditionalInformation": "Replicas inherit their private IP status from their primary instance. You cannot configure a private IP directly on a replica.", + "References": "https://cloud.google.com/sql/docs/mysql/configure-private-ip:https://cloud.google.com/sql/docs/mysql/private-ip:https://cloud.google.com/resource-manager/docs/organization-policy/org-policy-constraints:https://console.cloud.google.com/iam-admin/orgpolicies/sql-restrictPublicIp", + "DefaultValue": "By default, Cloud Sql instances have a public IP." + } + ] + }, + { + "Id": "6.7", + "Description": "Ensure That Cloud SQL Database Instances Are Configured With Automated Backups", + "Checks": [ + "cloudsql_instance_automated_backups" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to have all SQL database instances set to enable automated backups.", + "RationaleStatement": "Backups provide a way to restore a Cloud SQL instance to recover lost data or recover from a problem with that instance. Automated backups need to be set for any instance that contains data that should be protected from loss or damage. This recommendation is applicable for SQL Server, PostgreSql, MySql generation 1 and MySql generation 2 instances.", + "ImpactStatement": "Automated Backups will increase required size of storage and costs associated with it.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance where the backups need to be configured. 3. Click `Edit`. 4. In the `Backups` section, check `Enable automated backups', and choose a backup window. 5. Click `Save`. **From Google Cloud CLI** 1. List all Cloud SQL database instances using the following command: gcloud sql instances list --format=json | jq '. | map(select(.instanceType != READ_REPLICA_INSTANCE)) | .[].name' NOTE: gcloud command has been added with the filter to exclude read-replicas instances, as GCP do not provide Automated Backups for read-replica instances. 2. Enable `Automated backups` for every Cloud SQL database instance using the below command: gcloud sql instances patch --backup-start-time <[HH:MM]> The `backup-start-time` parameter is specified in 24-hour time, in the UTC±00 time zone, and specifies the start of a 4-hour backup window. Backups can start any time during the backup window.", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Click the instance name to open its instance details page. 3. Go to the `Backups` menu. 4. Ensure that `Automated backups` is set to `Enabled` and `Backup time` is mentioned. **From Google Cloud CLI** 1. List all Cloud SQL database instances using the following command: gcloud sql instances list --format=json | jq '. | map(select(.instanceType != READ_REPLICA_INSTANCE)) | .[].name' NOTE: gcloud command has been added with the filter to exclude read-replicas instances, as GCP do not provide Automated Backups for read-replica instances. 2. Ensure that the below command returns `True` for every Cloud SQL database instance. gcloud sql instances describe --format=value('Enabled':settings.backupConfiguration.enabled) ", + "AdditionalInformation": "", + "References": "https://cloud.google.com/sql/docs/mysql/backup-recovery/backups:https://cloud.google.com/sql/docs/postgres/backup-recovery/backups:https://cloud.google.com/sql/docs/sqlserver/backup-recovery/backups:https://cloud.google.com/sql/docs/mysql/backup-recovery/backing-up:https://cloud.google.com/sql/docs/postgres/backup-recovery/backing-up:https://cloud.google.com/sql/docs/sqlserver/backup-recovery/backing-up", + "DefaultValue": "By default, automated backups are not configured for Cloud SQL instances." + } + ] + }, + { + "Id": "6.1.1", + "Description": "Ensure That a MySQL Instance Does Not Allow Anyone To Connect With Administrative Privileges", + "Checks": [], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.1 MySQL Database", + "Profile": "Level 1", + "AssessmentStatus": "Manual", + "Description": "It is recommended to set a password for the administrative user (`root` by default) to prevent unauthorized access to the SQL database instances. This recommendation is applicable only for MySQL Instances. PostgreSQL does not offer any setting for No Password from the cloud console.", + "RationaleStatement": "At the time of MySQL Instance creation, not providing an administrative password allows anyone to connect to the SQL database instance with administrative privileges. The root password should be set to ensure only authorized users have these privileges.", + "ImpactStatement": "Connection strings for administrative clients need to be reconfigured to use a password.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Platform Console using `https://console.cloud.google.com/sql/` 2. Select the instance to open its Overview page. 3. Select `Access Control > Users`. 4. Click the `More actions icon` for the user to be updated. 5. Select `Change password`, specify a `New password`, and click `OK`. **From Google Cloud CLI** 1. Set a password to a MySql instance: gcloud sql users set-password root --host= --instance= --prompt-for-password 2. A prompt will appear, requiring the user to enter a password: Instance Password: 3. With a successful password configured, the following message should be seen: Updating Cloud SQL user...done. ", + "AuditProcedure": "**From Google Cloud CLI** 1. List All SQL database instances of type MySQL: gcloud sql instances list --filter='DATABASE_VERSION:MYSQL*' --project --format=(NAME,PRIMARY_ADDRESS) 2. For every MySQL instance try to connect using the `PRIMARY_ADDRESS`, if available: mysql -u root -h The command should return either an error message or a password prompt. Sample Error message: ERROR 1045 (28000): Access denied for user 'root'@'' (using password: NO) If a command produces the `mysql>` prompt, the MySQL instance allows anyone to connect with administrative privileges without needing a password. **Note:** The `No Password` setting is exposed only at the time of MySQL instance creation. Once the instance is created, the Google Cloud Platform Console does not expose the set to confirm whether a password for an administrative user is set to a MySQL instance.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/sql/docs/mysql/create-manage-users:https://cloud.google.com/sql/docs/mysql/create-instance", + "DefaultValue": "From the Google Cloud Platform Console, the `Create Instance` workflow enforces the rule to enter the root password unless the option `No Password` is selected explicitly." + } + ] + }, + { + "Id": "6.1.2", + "Description": "Ensure ‘Skip_show_database’ Database Flag for Cloud SQL MySQL Instance Is Set to ‘On’", + "Checks": [ + "cloudsql_instance_mysql_skip_show_database_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.1 MySQL Database", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to set `skip_show_database` database flag for Cloud SQL Mysql instance to `on`", + "RationaleStatement": "`skip_show_database` database flag prevents people from using the SHOW DATABASES statement if they do not have the SHOW DATABASES privilege. This can improve security if you have concerns about users being able to see databases belonging to other users. Its effect depends on the SHOW DATABASES privilege: If the variable value is ON, the SHOW DATABASES statement is permitted only to users who have the SHOW DATABASES privilege, and the statement displays all database names. If the value is OFF, SHOW DATABASES is permitted to all users, but displays the names of only those databases for which the user has the SHOW DATABASES or other privilege. This recommendation is applicable to Mysql database instances.", + "ImpactStatement": "", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the Mysql instance for which you want to enable to database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add a Database Flag`, choose the flag `skip_show_database` from the drop-down menu, and set its value to `on`. 6. Click `Save` to save your changes. 7. Confirm your changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. List all Cloud SQL database Instances gcloud sql instances list 2. Configure the `skip_show_database` database flag for every Cloud SQL Mysql database instance using the below command. gcloud sql instances patch --database-flags skip_show_database=on **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Ensure the database flag `skip_show_database` that has been set is listed under the `Database flags` section. **From Google Cloud CLI** 1. List all Cloud SQL database Instances gcloud sql instances list 2. Ensure the below command returns `on` for every Cloud SQL Mysql database instance gcloud sql instances describe --format=json | jq '.settings.databaseFlags[] | select(.name==skip_show_database)|.value' ", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/mysql/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag restarts the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/mysql/flags:https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_skip_show_database", + "DefaultValue": "" + } + ] + }, + { + "Id": "6.1.3", + "Description": "Ensure That the ‘Local_infile’ Database Flag for a Cloud SQL MySQL Instance Is Set to ‘Off’", + "Checks": [ + "cloudsql_instance_mysql_local_infile_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.1 MySQL Database", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to set the `local_infile` database flag for a Cloud SQL MySQL instance to `off`.", + "RationaleStatement": "The `local_infile` flag controls the server-side LOCAL capability for LOAD DATA statements. Depending on the `local_infile` setting, the server refuses or permits local data loading by clients that have LOCAL enabled on the client side. To explicitly cause the server to refuse LOAD DATA LOCAL statements (regardless of how client programs and libraries are configured at build time or runtime), start mysqld with local_infile disabled. local_infile can also be set at runtime. Due to security issues associated with the `local_infile` flag, it is recommended to disable it. This recommendation is applicable to MySQL database instances.", + "ImpactStatement": "Disabling `local_infile` makes the server refuse local data loading by clients that have LOCAL enabled on the client side.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the MySQL instance where the database flag needs to be enabled. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add a Database Flag`, choose the flag `local_infile` from the drop-down menu, and set its value to `off`. 6. Click `Save`. 7. Confirm the changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. List all Cloud SQL database instances using the following command: gcloud sql instances list 2. Configure the `local_infile` database flag for every Cloud SQL Mysql database instance using the below command: gcloud sql instances patch --database-flags local_infile=off **Note**: This command will overwrite all database flags that were previously set. To keep those and add new ones, include the values for all flags to be set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Ensure the database flag `local_infile` that has been set is listed under the `Database flags` section. **From Google Cloud CLI** 1. List all Cloud SQL database instances: gcloud sql instances list 2. Ensure the below command returns `off` for every Cloud SQL MySQL database instance. gcloud sql instances describe --format=json | jq '.settings.databaseFlags[] | select(.name==local_infile)|.value' ", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require the instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/mysql/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines.", + "References": "https://cloud.google.com/sql/docs/mysql/flags:https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_local_infile:https://dev.mysql.com/doc/refman/5.7/en/load-data-local.html", + "DefaultValue": "By default `local_infile` is `on`." + } + ] + }, + { + "Id": "6.2.1", + "Description": "Ensure ‘Log_error_verbosity’ Database Flag for Cloud SQL PostgreSQL Instance Is Set to ‘DEFAULT’ or Stricter", + "Checks": [ + "cloudsql_instance_postgres_log_error_verbosity_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.2 PostgreSQL Database", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "The `log_error_verbosity` flag controls the verbosity/details of messages logged. Valid values are: - `TERSE` - `DEFAULT` - `VERBOSE` `TERSE` excludes the logging of `DETAIL`, `HINT`, `QUERY`, and `CONTEXT` error information. `VERBOSE` output includes the `SQLSTATE` error code, source code file name, function name, and line number that generated the error. Ensure an appropriate value is set to 'DEFAULT' or stricter.", + "RationaleStatement": "Auditing helps in troubleshooting operational problems and also permits forensic analysis. If `log_error_verbosity` is not set to the correct value, too many details or too few details may be logged. This flag should be configured with a value of 'DEFAULT' or stricter. This recommendation is applicable to PostgreSQL database instances.", + "ImpactStatement": "Turning on logging will increase the required storage over time. Mismanaged logs may cause your storage costs to increase. Setting custom flags via command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended you apply these flags changes during a period of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting https://console.cloud.google.com/sql/instances. 2. Select the PostgreSQL instance for which you want to enable the database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add a Database Flag`, choose the flag `log_error_verbosity` from the drop-down menu and set appropriate value. 6. Click `Save` to save your changes. 7. Confirm your changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. Configure the log_error_verbosity database flag for every Cloud SQL PosgreSQL database instance using the below command. gcloud sql instances patch INSTANCE_NAME --database-flags log_error_verbosity= **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Go to `Configuration` card 4. Under `Database flags`, check the value of `log_error_verbosity` flag is set to 'DEFAULT' or stricter. **From Google Cloud CLI** 1. Use the below command for every Cloud SQL PostgreSQL database instance to verify the value of `log_error_verbosity` gcloud sql instances describe [INSTANCE_NAME] --format=json | jq '.settings.databaseFlags[] | select(.name==log_error_verbosity)|.value' In the output, database flags are listed under the settings as the collection databaseFlags.", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/postgres/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag does not require restarting the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/postgres/flags:https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ERROR-VERBOSITY", + "DefaultValue": "By default `log_error_verbosity` is `DEFAULT`." + } + ] + }, + { + "Id": "6.2.2", + "Description": "Ensure That the ‘Log_connections’ Database Flag for Cloud SQL PostgreSQL Instance Is Set to ‘On’", + "Checks": [ + "cloudsql_instance_postgres_log_connections_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.2 PostgreSQL Database", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Enabling the `log_connections` setting causes each attempted connection to the server to be logged, along with successful completion of client authentication. This parameter cannot be changed after the session starts.", + "RationaleStatement": "PostgreSQL does not log attempted connections by default. Enabling the `log_connections` setting will create log entries for each attempted connection as well as successful completion of client authentication which can be useful in troubleshooting issues and to determine any unusual connection attempts to the server. This recommendation is applicable to PostgreSQL database instances.", + "ImpactStatement": "Turning on logging will increase the required storage over time. Mismanaged logs may cause your storage costs to increase. Setting custom flags via command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended you apply these flags changes during a period of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting https://console.cloud.google.com/sql/instances. 2. Select the PostgreSQL instance for which you want to enable the database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add a Database Flag`, choose the flag `log_connections` from the drop-down menu and set the value as `on`. 6. Click `Save`. 7. Confirm the changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. Configure the `log_connections` database flag for every Cloud SQL PosgreSQL database instance using the below command. gcloud sql instances patch --database-flags log_connections=on **Note**: This command will overwrite all previously set database flags. To keep those and add new ones, include the values for all flags to be set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page. 3. Go to the `Configuration` card. 4. Under `Database flags`, check the value of `log_connections` flag to determine if it is configured as expected. **From Google Cloud CLI** 1. Ensure the below command returns `on` for every Cloud SQL PostgreSQL database instance: gcloud sql instances describe [INSTANCE_NAME] --format=json | jq '.settings.databaseFlags[] | select(.name==log_connections)|.value' In the output, database flags are listed under the `settings` as the collection `databaseFlags`.", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/postgres/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability and remove the instance from the Cloud SQL SLA. For information about these flags, see the Operational Guidelines. **Note**: Configuring the above flag does not require restarting the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/postgres/flags:https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-CONNECTIONS", + "DefaultValue": "By default `log_connections` is `off`." + } + ] + }, + { + "Id": "6.2.3", + "Description": "Ensure That the ‘Log_disconnections’ Database Flag for Cloud SQL PostgreSQL Instance Is Set to ‘On’", + "Checks": [ + "cloudsql_instance_postgres_log_disconnections_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.2 PostgreSQL Database", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Enabling the `log_disconnections` setting logs the end of each session, including the session duration.", + "RationaleStatement": "PostgreSQL does not log session details such as duration and session end by default. Enabling the `log_disconnections` setting will create log entries at the end of each session which can be useful in troubleshooting issues and determine any unusual activity across a time period. The `log_disconnections` and `log_connections` work hand in hand and generally, the pair would be enabled/disabled together. This recommendation is applicable to PostgreSQL database instances.", + "ImpactStatement": "Turning on logging will increase the required storage over time. Mismanaged logs may cause your storage costs to increase. Setting custom flags via command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended you apply these flags changes during a period of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the PostgreSQL instance where the database flag needs to be enabled. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add a Database Flag`, choose the flag `log_disconnections` from the drop-down menu and set the value as `on`. 6. Click `Save`. 7. Confirm the changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. Configure the `log_disconnections` database flag for every Cloud SQL PosgreSQL database instance using the below command: gcloud sql instances patch --database-flags log_disconnections=on **Note**: This command will overwrite all previously set database flags. To keep those and add new ones, include the values for all flags to be set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Go to the `Configuration` card. 4. Under `Database flags`, check the value of `log_disconnections` flag is configured as expected. **From Google Cloud CLI** 1. Ensure the below command returns `on` for every Cloud SQL PostgreSQL database instance: gcloud sql instances list --format=json | jq '.[].settings.databaseFlags[] | select(.name==log_disconnections)|.value' ", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/postgres/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag does not require restarting the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/postgres/flags:https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-DISCONNECTIONS", + "DefaultValue": "By default `log_disconnections` is off." + } + ] + }, + { + "Id": "6.2.4", + "Description": "Ensure ‘Log_statement’ Database Flag for Cloud SQL PostgreSQL Instance Is Set Appropriately", + "Checks": [ + "cloudsql_instance_postgres_log_statement_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.2 PostgreSQL Database", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "The value of `log_statement` flag determined the SQL statements that are logged. Valid values are: - `none` - `ddl` - `mod` - `all` The value `ddl` logs all data definition statements. The value `mod` logs all ddl statements, plus data-modifying statements. The statements are logged after a basic parsing is done and statement type is determined, thus this does not logs statements with errors. When using extended query protocol, logging occurs after an Execute message is received and values of the Bind parameters are included. A value of 'ddl' is recommended unless otherwise directed by your organization's logging policy.", + "RationaleStatement": "Auditing helps in forensic analysis. If `log_statement` is not set to the correct value, too many statements may be logged leading to issues in finding the relevant information from the logs, or too few statements may be logged with relevant information missing from the logs. Setting log_statement to align with your organization's security and logging policies facilitates later auditing and review of database activities. This recommendation is applicable to PostgreSQL database instances.", + "ImpactStatement": "Turning on logging will increase the required storage over time. Mismanaged logs may cause your storage costs to increase. Setting custom flags via command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended you apply these flags changes during a period of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the PostgreSQL instance for which you want to enable the database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add a Database Flag`, choose the flag `log_statement` from the drop-down menu and set appropriate value. 6. Click `Save` to save your changes. 7. Confirm your changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. Configure the `log_statement` database flag for every Cloud SQL PosgreSQL database instance using the below command. gcloud sql instances patch --database-flags log_statement= **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Go to `Configuration` card 4. Under `Database flags`, check the value of `log_statement` flag is set to appropriately. **From Google Cloud CLI** 1. Use the below command for every Cloud SQL PostgreSQL database instance to verify the value of `log_statement` gcloud sql instances list --format=json | jq '.[].settings.databaseFlags[] | select(.name==log_statement)|.value' ", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/postgres/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag does not require restarting the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/postgres/flags:https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-STATEMENT", + "DefaultValue": "`none`" + } + ] + }, + { + "Id": "6.2.5", + "Description": "Ensure that the ‘Log_min_messages’ Flag for a Cloud SQL PostgreSQL Instance is set at minimum to 'Warning'", + "Checks": [ + "cloudsql_instance_postgres_log_min_messages_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.2 PostgreSQL Database", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "The `log_min_messages` flag defines the minimum message severity level that is considered as an error statement. Messages for error statements are logged with the SQL statement. Valid values include (from lowest to highest severity) `DEBUG5`, `DEBUG4`, `DEBUG3`, `DEBUG2`, `DEBUG1`, `INFO`, `NOTICE`, `WARNING`, `ERROR`, `LOG`, `FATAL`, and `PANIC`. Each severity level includes the subsequent levels mentioned above. ERROR is considered the best practice setting. Changes should only be made in accordance with the organization's logging policy.", + "RationaleStatement": "Auditing helps in troubleshooting operational problems and also permits forensic analysis. If `log_min_messages` is not set to the correct value, messages may not be classified as error messages appropriately. Setting the threshold to 'Warning' will log messages for the most needed error messages. This recommendation is applicable to PostgreSQL database instances.", + "ImpactStatement": "Setting the threshold too low will might result in increased log storage size and length, making it difficult to find actual errors. Higher severity levels may cause errors needed to troubleshoot to not be logged. An organization will need to decide their own threshold for logging `log_min_messages` flag. **Note**: To effectively turn off logging failing statements, set this parameter to PANIC.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances) 2. Select the PostgreSQL instance for which you want to enable the database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add a Database Flag`, choose the flag `log_min_messages` from the drop-down menu and set appropriate value. 6. Click `Save` to save the changes. 7. Confirm the changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. Configure the `log_min_messages` database flag for every Cloud SQL PosgreSQL database instance using the below command. gcloud sql instances patch --database-flags log_min_messages= **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags to be set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page. 3. Go to the `Configuration` card. 4. Under `Database flags`, check the value of `log_min_messages` flag is set to `warning` or higher (WARNING|ERROR|LOG|FATAL|PANIC). **From Google Cloud CLI** 1. Use the below command for every Cloud SQL PostgreSQL database instance to verify that the value of `log_min_messages` is set to `warning` or higher . gcloud sql instances describe [INSTANCE_NAME] --format=json | jq '.settings.databaseFlags[] | select(.name==log_min_messages)|.value' ", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/postgres/flags - to see if your instance will be restarted when this patch is submitted. **Note**: Some database flag settings can affect instance availability or stability and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag does not require restarting the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/postgres/flags:https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-MIN-MESSAGES", + "DefaultValue": "By default `log_min_messages` is `ERROR`." + } + ] + }, + { + "Id": "6.2.6", + "Description": "Ensure ‘Log_min_error_statement’ Database Flag for Cloud SQL PostgreSQL Instance Is Set to ‘Error’ or Stricter", + "Checks": [ + "cloudsql_instance_postgres_log_min_error_statement_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.2 PostgreSQL Database", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "The `log_min_error_statement` flag defines the minimum message severity level that are considered as an error statement. Messages for error statements are logged with the SQL statement. Valid values include (from lowest to highest severity) `DEBUG5`, `DEBUG4`, `DEBUG3`, `DEBUG2`, `DEBUG1`, `INFO`, `NOTICE`, `WARNING`, `ERROR`, `LOG`, `FATAL`, and `PANIC`. Each severity level includes the subsequent levels mentioned above. Ensure a value of `ERROR` or stricter is set.", + "RationaleStatement": "Auditing helps in troubleshooting operational problems and also permits forensic analysis. If `log_min_error_statement` is not set to the correct value, messages may not be classified as error messages appropriately. Considering general log messages as error messages would make is difficult to find actual errors and considering only stricter severity levels as error messages may skip actual errors to log their SQL statements. The `log_min_error_statement` flag should be set to `ERROR` or stricter. This recommendation is applicable to PostgreSQL database instances.", + "ImpactStatement": "Turning on logging will increase the required storage over time. Mismanaged logs may cause your storage costs to increase. Setting custom flags via command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended you apply these flags changes during a period of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the PostgreSQL instance for which you want to enable the database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add item`, choose the flag `log_min_error_statement` from the drop-down menu and set appropriate value. 6. Click `Save` to save your changes. 7. Confirm your changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. Configure the `log_min_error_statement` database flag for every Cloud SQL PosgreSQL database instance using the below command. gcloud sql instances patch --database-flags log_min_error_statement= **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Go to `Configuration` card 4. Under `Database flags`, check the value of `log_min_error_statement` flag is configured as to `ERROR` or stricter. **From Google Cloud CLI** 1. Use the below command for every Cloud SQL PostgreSQL database instance to verify the value of `log_min_error_statement` is set to `ERROR` or stricter. gcloud sql instances describe --format=json | jq '.[].settings.databaseFlags[] | select(.name==log_min_error_statement)|.value' In the output, database flags are listed under the `settings` as the collection `databaseFlags`.", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/postgres/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag does not require restarting the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/postgres/flags:https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-MIN-ERROR-STATEMENT", + "DefaultValue": "By default `log_min_error_statement` is `ERROR`." + } + ] + }, + { + "Id": "6.2.7", + "Description": "Ensure That the ‘Log_min_duration_statement’ Database Flag for Cloud SQL PostgreSQL Instance Is Set to '-1' (Disabled)", + "Checks": [ + "cloudsql_instance_postgres_log_min_duration_statement_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.2 PostgreSQL Database", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "The `log_min_duration_statement` flag defines the minimum amount of execution time of a statement in milliseconds where the total duration of the statement is logged. Ensure that `log_min_duration_statement` is disabled, i.e., a value of `-1` is set.", + "RationaleStatement": "Logging SQL statements may include sensitive information that should not be recorded in logs. This recommendation is applicable to PostgreSQL database instances.", + "ImpactStatement": "Turning on logging will increase the required storage over time. Mismanaged logs may cause your storage costs to increase. Setting custom flags via command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended you apply these flags changes during a period of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the PostgreSQL instance where the database flag needs to be enabled. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add item`, choose the flag `log_min_duration_statement` from the drop-down menu and set a value of `-1`. 6. Click `Save`. 7. Confirm the changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. List all Cloud SQL database instances using the following command: gcloud sql instances list 2. Configure the `log_min_duration_statement` flag for every Cloud SQL PosgreSQL database instance using the below command: gcloud sql instances patch --database-flags log_min_duration_statement=-1 **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags to be set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page. 3. Go to the `Configuration` card. 4. Under `Database flags`, check that the value of `log_min_duration_statement` flag is set to `-1`. **From Google Cloud CLI** 1. Use the below command for every Cloud SQL PostgreSQL database instance to verify the value of `log_min_duration_statement` is set to `-1`. gcloud sql instances describe --format=json| jq '.settings.databaseFlags[] | select(.name==log_min_duration_statement)|.value' In the output, database flags are listed under the `settings` as the collection `databaseFlags`.", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/postgres/flags - to see if your instance will be restarted when this patch is submitted. **Note**: Some database flag settings can affect instance availability or stability and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag does not require restarting the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/postgres/flags:https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-MIN-DURATION-STATEMENT", + "DefaultValue": "By default `log_min_duration_statement` is `-1`." + } + ] + }, + { + "Id": "6.2.8", + "Description": "Ensure That 'cloudsql.enable_pgaudit' Database Flag for each Cloud Sql Postgresql Instance Is Set to 'on' For Centralized Logging", + "Checks": [ + "cloudsql_instance_postgres_enable_pgaudit_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.2 PostgreSQL Database", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "Ensure `cloudsql.enable_pgaudit` database flag for Cloud SQL PostgreSQL instance is set to `on` to allow for centralized logging.", + "RationaleStatement": "As numerous other recommendations in this section consist of turning on flags for logging purposes, your organization will need a way to manage these logs. You may have a solution already in place. If you do not, consider installing and enabling the open source pgaudit extension within PostgreSQL and enabling its corresponding flag of `cloudsql.enable_pgaudit`. This flag and installing the extension enables database auditing in PostgreSQL through the open-source pgAudit extension. This extension provides detailed session and object logging to comply with government, financial, & ISO standards and provides auditing capabilities to mitigate threats by monitoring security events on the instance. Enabling the flag and settings later in this recommendation will send these logs to Google Logs Explorer so that you can access them in a central location. to This recommendation is applicable only to PostgreSQL database instances.", + "ImpactStatement": "Enabling the pgAudit extension can lead to increased data storage requirements and to ensure durability of pgAudit log records in the event of unexpected storage issues, it is recommended to enable the `Enable automatic storage increases` setting on the instance. Enabling flags via the command line will also overwrite all existing flags, so you should apply all needed flags in the CLI command. Also flags may require a restart of the server to be implemented or will break existing functionality so update your servers at a time of low usage.", + "RemediationProcedure": "**Initialize the pgAudit flag** **From Google Cloud Console** 1. Go to [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Overview` page. 3. Click `Edit`. 4. Scroll down and expand `Flags`. 5. To set a flag that has not been set on the instance before, click `Add item`. 6. Enter `cloudsql.enable_pgaudit` for the flag name and set the flag to `on`. 7. Click `Done`. 8. Click `Save` to update the configuration. 9. Confirm your changes under `Flags` on the `Overview` page. **From Google Cloud CLI** Run the below command by providing `` to enable `cloudsql.enable_pgaudit` flag. gcloud sql instances patch --database-flags cloudsql.enable_pgaudit=on Note: `RESTART` is required to get this configuration in effect. **Creating the extension** 1. Connect to the the server running PostgreSQL or through a SQL client of your choice. 2. Run the following command as a superuser. CREATE EXTENSION pgaudit; **Updating the previously created pgaudit.log flag for your Logging Needs** **From Console:** Note: there are multiple options here. This command will enable logging for all databases on a server. Please see the customizing database audit logging reference for more flag options. 1. Go to [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Overview` page. 3. Click `Edit`. 4. Scroll down and expand `Flags`. 5. To set a flag that has not been set on the instance before, click `Add item`. 6. Enter `pgaudit.log=all` for the flag name and set the flag to `on`. 7. Click `Done`. 8. Click `Save` to update the configuration. 9. Confirm your changes under `Flags` on the `Overview` page. **From Command Line:** Run the command gcloud sql instances patch --database-flags cloudsql.enable_pgaudit=on,pgaudit.log=all **Determine if logs are being sent to Logs Explorer** 1. From the Google Console home page, open the hamburger menu in the top left. 2. In the menu that pops open, scroll down to Logs Explorer under Operations. 3. In the query box, paste the following and search resource.type=cloudsql_database logName=projects//logs/cloudaudit.googleapis.com%2Fdata_access protoPayload.request.@type=type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry If it returns any log sources, they are correctly setup.", + "AuditProcedure": "**Determining if the pgAudit Flag is set to 'on'** **From Google Cloud Console** 1. Go to [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Overview` page. 3. Click `Edit`. 4. Scroll down and expand `Flags`. 5. Ensure that `cloudsql.enable_pgaudit` flag is set to `on`. **From Google Cloud CLI** Run the command by providing ``. Ensure the value of the flag is `on`. gcloud sql instances describe --format=json | jq '.settings|.|.databaseFlags[]|select(.name==cloudsql.enable_pgaudit)|.value' **Determine if the pgAudit extension is installed** 1. Connect to the the server running PostgreSQL or through a SQL client of your choice. 2. Run the following command SELECT * FROM pg_extension; 3. If pgAudit is in this list. If so, it is installed. **Determine if Data Access Audit logs are enabled for your project and have sufficient privileges** 1. From the homepage open the hamburger menu in the top left. 2. Scroll down to `IAM & Admin`and hover over it. 3. In the menu that opens up, select `Audit Logs` 4. In the middle of the page, in the search box next to `filter` search for `Cloud Composer API` 5. Select it, and ensure that both 'Admin Read' and 'Data Read' are checked. **Determine if logs are being sent to Logs Explorer** 1. From the Google Console home page, open the hamburger menu in the top left. 2. In the menu that pops open, scroll down to Logs Explorer under Operations. 3. In the query box, paste the following and search resource.type=cloudsql_database logName=projects//logs/cloudaudit.googleapis.com%2Fdata_access protoPayload.request.@type=type.googleapis.com/google.cloud.sql.audit.v1.PgAuditEntry 4. If it returns any log sources, they are correctly setup.", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/postgres/flags - to see if your instance will be restarted when this patch is submitted. Note: Configuring the 'cloudsql.enable_pgaudit' database flag requires restarting the Cloud SQL PostgreSQL instance.", + "References": "https://cloud.google.com/sql/docs/postgres/flags#list-flags-postgres:https://cloud.google.com/sql/docs/postgres/pg-audit#enable-auditing-flag:https://cloud.google.com/sql/docs/postgres/pg-audit#customizing-database-audit-logging:https://cloud.google.com/logging/docs/audit/configure-data-access#config-console-enable", + "DefaultValue": "By default `cloudsql.enable_pgaudit` database flag is set to `off` and the extension is not enabled." + } + ] + }, + { + "Id": "6.3.1", + "Description": "Ensure 'external scripts enabled' Database Flag for Cloud SQL SQL Server Instance Is Set to 'off'", + "Checks": [ + "cloudsql_instance_sqlserver_external_scripts_enabled_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.3 SQL Server", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to set `external scripts enabled` database flag for Cloud SQL SQL Server instance to `off`", + "RationaleStatement": "`external scripts enabled` enable the execution of scripts with certain remote language extensions. This property is OFF by default. When Advanced Analytics Services is installed, setup can optionally set this property to true. As the External Scripts Enabled feature allows scripts external to SQL such as files located in an R library to be executed, which could adversely affect the security of the system, hence this should be disabled. This recommendation is applicable to SQL Server database instances.", + "ImpactStatement": "Setting custom flags via command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended you apply these flags changes during a period of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the SQL Server instance for which you want to enable to database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add item`, choose the flag `external scripts enabled` from the drop-down menu, and set its value to `off`. 6. Click `Save` to save your changes. 7. Confirm your changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. Configure the `external scripts enabled` database flag for every Cloud SQL SQL Server database instance using the below command. gcloud sql instances patch --database-flags external scripts enabled=off **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Ensure the database flag `external scripts enabled` that has been set is listed under the `Database flags` section. **From Google Cloud CLI** 1. Ensure the below command returns `off` for every Cloud SQL SQL Server database instance gcloud sql instances describe --format=json | jq '.settings.databaseFlags[] | select(.name==external scripts enabled)|.value' In the output, database flags are listed under the `settings` as the collection `databaseFlags`.", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/sqlserver/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag restarts the Cloud SQL instance.", + "References": "https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/external-scripts-enabled-server-configuration-option?view=sql-server-ver15:https://cloud.google.com/sql/docs/sqlserver/flags:https://docs.microsoft.com/en-us/sql/advanced-analytics/concepts/security?view=sql-server-ver15:https://www.stigviewer.com/stig/ms_sql_server_2016_instance/2018-03-09/finding/V-79347", + "DefaultValue": "By default `external scripts enabled` is `off`" + } + ] + }, + { + "Id": "6.3.2", + "Description": "Ensure 'cross db ownership chaining' Database Flag for Cloud SQL SQL Server Instance Is Set to 'off'", + "Checks": [ + "cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.3 SQL Server", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to set `cross db ownership chaining` database flag for Cloud SQL SQL Server instance to `off`. This flag is deprecated for all SQL Server versions in CGP. Going forward, you can't set its value to on. However, if you have this flag enabled, we strongly recommend that you either remove the flag from your database or set it to off. For cross-database access, use the [Microsoft tutorial for signing stored procedures with a certificate](https://learn.microsoft.com/en-us/sql/relational-databases/tutorial-signing-stored-procedures-with-a-certificate?view=sql-server-ver16).", + "RationaleStatement": "Use the `cross db ownership` for chaining option to configure cross-database ownership chaining for an instance of Microsoft SQL Server. This server option allows you to control cross-database ownership chaining at the database level or to allow cross-database ownership chaining for all databases. Enabling `cross db ownership` is not recommended unless all of the databases hosted by the instance of SQL Server must participate in cross-database ownership chaining and you are aware of the security implications of this setting. This recommendation is applicable to SQL Server database instances.", + "ImpactStatement": "Updating flags may cause the database to restart. This may cause it to unavailable for a short amount of time, so this is best done at a time of low usage. You should also determine if the tables in your databases reference another table without using credentials for that database, as turning off cross database ownership will break this relationship.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the SQL Server instance for which you want to enable to database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add item`, choose the flag `cross db ownership chaining` from the drop-down menu, and set its value to `off`. 6. Click `Save`. 7. Confirm the changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. Configure the `cross db ownership chaining` database flag for every Cloud SQL SQL Server database instance using the below command: gcloud sql instances patch --database-flags cross db ownership chaining=off **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags to be set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**NOTE:** This flag is deprecated for all SQL Server versions. Going forward, you can't set its value to on. However, if you have this flag enabled it should be removed from your database or set to off. **From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console. 2. Select the instance to open its `Instance Overview` page 3. Ensure the database flag `cross db ownership chaining` that has been set is listed under the `Database flags` section. **From Google Cloud CLI** 1. Ensure the below command returns `off` for every Cloud SQL SQL Server database instance: gcloud sql instances describe --format=json | jq '.settings.databaseFlags[] | select(.name==cross db ownership chaining)|.value' In the output, database flags are listed under the `settings` as the collection `databaseFlags`.", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/sqlserver/flags - to see if your instance will be restarted when this patch is submitted. **Note**: Some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag does not restart the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/sqlserver/flags:https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/cross-db-ownership-chaining-server-configuration-option?view=sql-server-ver15", + "DefaultValue": "This flag is deprecated for all SQL Server versions. Going forward, you can't set its value to on." + } + ] + }, + { + "Id": "6.3.3", + "Description": "Ensure 'user Connections' Database Flag for Cloud SQL SQL Server Instance Is Set to a Non-limiting Value", + "Checks": [ + "cloudsql_instance_sqlserver_user_connections_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.3 SQL Server", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to check the `user connections` for a Cloud SQL SQL Server instance to ensure that it is not artificially limiting connections.", + "RationaleStatement": "The `user connections` option specifies the maximum number of simultaneous user connections that are allowed on an instance of SQL Server. The actual number of user connections allowed also depends on the version of SQL Server that you are using, and also the limits of your application or applications and hardware. SQL Server allows a maximum of 32,767 user connections. Because user connections is by default a self-configuring value, with SQL Server adjusting the maximum number of user connections automatically as needed, up to the maximum value allowable. For example, if only 10 users are logged in, 10 user connection objects are allocated. In most cases, you do not have to change the value for this option. The default is 0, which means that the maximum (32,767) user connections are allowed. However if there is a number defined here that limits connections, SQL Server will not allow anymore above this limit. If the connections are at the limit, any new requests will be dropped, potentially causing lost data or outages for those using the database.", + "ImpactStatement": "Setting custom flags via command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended you apply these flags changes during a period of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the SQL Server instance for which you want to enable to database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add item`, choose the flag `user connections` from the drop-down menu, and set its value to your organization recommended value. 6. Click `Save` to save your changes. 7. Confirm your changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. Configure the `user connections` database flag for every Cloud SQL SQL Server database instance using the below command. gcloud sql instances patch --database-flags user connections=[0-32,767] **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Ensure the database flag `user connections` listed under the `Database flags` section is 0. **From Google Cloud CLI** 1. Ensure the below command returns a value of 0, for every Cloud SQL SQL Server database instance. gcloud sql instances describe --format=json | jq '.settings.databaseFlags[] | select(.name==user connections)|.value' ", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/sqlserver/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag restarts the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/sqlserver/flags:https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-user-connections-server-configuration-option?view=sql-server-ver15:https://www.stigviewer.com/stig/ms_sql_server_2016_instance/2018-03-09/finding/V-79119", + "DefaultValue": "By default `user connections` is set to '0' which does not limit the number of connections, giving the server free reign to facilitate a max of 32,767 connections." + } + ] + }, + { + "Id": "6.3.4", + "Description": "Ensure 'user options' Database Flag for Cloud SQL SQL Server Instance Is Not Configured", + "Checks": [ + "cloudsql_instance_sqlserver_user_options_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.3 SQL Server", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "The `user options` option specifies global defaults for all users. A list of default query processing options is established for the duration of a user's work session. The user options option allows you to change the default values of the SET options (if the server's default settings are not appropriate). A user can override these defaults by using the SET statement. You can configure user options dynamically for new logins. After you change the setting of user options, new login sessions use the new setting; current login sessions are not affected. This recommendation is applicable to SQL Server database instances.", + "RationaleStatement": "It is recommended that, `user options` database flag for Cloud SQL SQL Server instance should not be configured. A user can override these defaults set with `user options` by using the SET statement. Some of these features/options could adversely affect the security of the system if enabled.", + "ImpactStatement": "Setting custom flags via command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended you apply these flags changes during a period of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the SQL Server instance for which you want to enable to database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. Click the X next `user options` flag shown 6. Click `Save` to save your changes. 7. Confirm your changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. List all Cloud SQL database Instances gcloud sql instances list 2. Clear the `user options` database flag for every Cloud SQL SQL Server database instance using either of the below commands. Clearing all flags to their default value gcloud sql instances patch --clear-database-flags OR To clear only `user options` database flag, configure the database flag by overriding the `user options`. Exclude `user options` flag and its value, and keep all other flags you want to configure. gcloud sql instances patch --database-flags [FLAG1=VALUE1,FLAG2=VALUE2] **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Ensure the database flag `user options` that has been set is not listed under the `Database flags` section. **From Google Cloud CLI** 1. Ensure the below command returns empty result for every Cloud SQL SQL Server database instance gcloud sql instances describe --format=json | jq '.settings.databaseFlags[] | select(.name==user options)|.value' In the output, database flags are listed under the `settings` as the collection `databaseFlags`.", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/sqlserver/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag does not restart the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/sqlserver/flags:https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-user-options-server-configuration-option?view=sql-server-ver15:https://www.stigviewer.com/stig/ms_sql_server_2016_instance/2018-03-09/finding/V-79335", + "DefaultValue": "By default 'user options' is not configured." + } + ] + }, + { + "Id": "6.3.5", + "Description": "Ensure 'remote access' Database Flag for Cloud SQL SQL Server Instance Is Set to 'off'", + "Checks": [ + "cloudsql_instance_sqlserver_remote_access_flag" + ], + "Attributes": [ + { + "Section": "6 Cloud SQL Database Services", + "SubSection": "6.3 SQL Server", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to set `remote access` database flag for Cloud SQL SQL Server instance to `off`.", + "RationaleStatement": "The `remote access` option controls the execution of stored procedures from local or remote servers on which instances of SQL Server are running. This default value for this option is 1. This grants permission to run local stored procedures from remote servers or remote stored procedures from the local server. To prevent local stored procedures from being run from a remote server or remote stored procedures from being run on the local server, this must be disabled. The Remote Access option controls the execution of local stored procedures on remote servers or remote stored procedures on local server. 'Remote access' functionality can be abused to launch a Denial-of-Service (DoS) attack on remote servers by off-loading query processing to a target, hence this should be disabled. This recommendation is applicable to SQL Server database instances.", + "ImpactStatement": "Setting custom flags via command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended you apply these flags changes during a period of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the SQL Server instance for which you want to enable to database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add item`, choose the flag `remote access` from the drop-down menu, and set its value to `off`. 6. Click `Save` to save your changes. 7. Confirm your changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. Configure the `remote access` database flag for every Cloud SQL SQL Server database instance using the below command gcloud sql instances patch --database-flags remote access=off **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Ensure the database flag `remote access` that has been set is listed under the `Database flags` section. **From Google Cloud CLI** 1. Ensure the below command returns `off` for every Cloud SQL SQL Server database instance gcloud sql instances describe --format=json | jq '.settings.databaseFlags[] | select(.name==remote access)|.value' In the output, database flags are listed under the `settings` as the collection `databaseFlags`.", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/sqlserver/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag restarts the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/sqlserver/flags:https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-remote-access-server-configuration-option?view=sql-server-ver15:https://www.stigviewer.com/stig/ms_sql_server_2016_instance/2018-03-09/finding/V-79337", + "DefaultValue": "By default 'remote access' is 'on'." + } + ] + }, + { + "Id": "6.3.6", + "Description": "Ensure '3625 (trace flag)' Database Flag for all Cloud SQL SQL Server Instances Is Set to 'on'", + "Checks": [ + "cloudsql_instance_sqlserver_trace_flag" + ], + "Attributes": [ + { + "Section": "6.3", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended to set `3625 (trace flag)` database flag for Cloud SQL SQL Server instance to `on`.", + "RationaleStatement": "Microsoft SQL Trace Flags are frequently used to diagnose performance issues or to debug stored procedures or complex computer systems, but they may also be recommended by Microsoft Support to address behavior that is negatively impacting a specific workload. All documented trace flags and those recommended by Microsoft Support are fully supported in a production environment when used as directed. `3625(trace log)` Limits the amount of information returned to users who are not members of the sysadmin fixed server role, by masking the parameters of some error messages using '******'. Setting this in a Google Cloud flag for the instance allows for security through obscurity and prevents the disclosure of sensitive information, hence this is recommended to set this flag globally to on to prevent the flag having been left off, or changed by bad actors. This recommendation is applicable to SQL Server database instances.", + "ImpactStatement": "Changing flags on a database may cause it to be restarted. The best time to do this is at a time where there is low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the SQL Server instance for which you want to enable to database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. To set a flag that has not been set on the instance before, click `Add item`, choose the flag `3625` from the drop-down menu, and set its value to `on`. 6. Click `Save` to save your changes. 7. Confirm your changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. Configure the `3625` database flag for every Cloud SQL SQL Server database instance using the below command. gcloud sql instances patch --database-flags 3625=on **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags you want set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Ensure the database flag `3625` that has been set is listed under the `Database flags` section. **From Google Cloud CLI** 1. Ensure the below command returns `on` for every Cloud SQL SQL Server database instance gcloud sql instances describe --format=json | jq '.settings.databaseFlags[] | select(.name==3625)|.value' ", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/sqlserver/flags - to see if your instance will be restarted when this patch is submitted. **Note**: some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag restarts the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/sqlserver/flags:https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql?view=sql-server-ver15#trace-flags:https://github.com/ktaranov/sqlserver-kit/blob/master/SQL%20Server%20Trace%20Flag.md", + "DefaultValue": "MS SQL Server implementations by default have trace flags, including the '3625' flag, turned off, as they are used for logging purposes." + } + ] + }, + { + "Id": "6.3.7", + "Description": "Ensure 'contained database authentication' Database Flag for Cloud SQL SQL Server Instance Is Set to 'off'", + "Checks": [ + "cloudsql_instance_sqlserver_contained_database_authentication_flag" + ], + "Attributes": [ + { + "Section": "6.3", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "A contained database includes all database settings and metadata required to define the database and has no configuration dependencies on the instance of the Database Engine where the database is installed. Users can connect to the database without authenticating a login at the Database Engine level. Isolating the database from the Database Engine makes it possible to easily move the database to another instance of SQL Server. Contained databases have some unique threats that should be understood and mitigated by SQL Server Database Engine administrators. Most of the threats are related to the USER WITH PASSWORD authentication process, which moves the authentication boundary from the Database Engine level to the database level, hence this is recommended not to enable this flag. This recommendation is applicable to SQL Server database instances.", + "RationaleStatement": "When contained databases are enabled, database users with the ALTER ANY USER permission, such as members of the db_owner and db_accessadmin database roles, can grant access to databases and by doing so, grant access to the instance of SQL Server. This means that control over access to the server is no longer limited to members of the sysadmin and securityadmin fixed server role, and logins with the server level CONTROL SERVER and ALTER ANY LOGIN permission. It is recommended to set `contained database authentication` database flag for Cloud SQL on the SQL Server instance to `off`.", + "ImpactStatement": "When `contained database authentication` is off (0) for the instance, contained databases cannot be created, or attached to the Database Engine. Setting custom flags via command line on certain instances will cause all omitted flags to be reset to defaults. This may cause you to lose custom flags and could result in unforeseen complications or instance restarts. Because of this, it is recommended you apply these flags changes during a period of low usage.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the SQL Server instance for which you want to enable to database flag. 3. Click `Edit`. 4. Scroll down to the `Flags` section. 5. If the flag `contained database authentication` is present and its value is set to 'on', then change it to 'off'. 6. Click `Save`. 7. Confirm the changes under `Flags` on the Overview page. **From Google Cloud CLI** 1. If any Cloud SQL for SQL Server instance has the database flag `contained database authentication` set to 'on', then change it to 'off' using the below command: gcloud sql instances patch --database-flags contained database authentication=off **Note**: This command will overwrite all database flags previously set. To keep those and add new ones, include the values for all flags to be set on the instance; any flag not specifically included is set to its default value. For flags that do not take a value, specify the flag name followed by an equals sign (=).", + "AuditProcedure": "**From Google Cloud Console** 1. Go to the Cloud SQL Instances page in the Google Cloud Console by visiting [https://console.cloud.google.com/sql/instances](https://console.cloud.google.com/sql/instances). 2. Select the instance to open its `Instance Overview` page 3. Under the 'Database flags' section, if the database flag `contained database authentication` is present, then ensure that it is set to 'off'. **From Google Cloud CLI** 1. Ensure the below command returns `off` for any Cloud SQL for SQL Server database instance. gcloud sql instances describe --format=json | jq '.settings.databaseFlags[] | select(.name==contained database authentication)|.value' ", + "AdditionalInformation": "WARNING: This patch modifies database flag values, which may require your instance to be restarted. Check the list of supported flags - https://cloud.google.com/sql/docs/sqlserver/flags - to see if your instance will be restarted when this patch is submitted. **Note**: Some database flag settings can affect instance availability or stability, and remove the instance from the Cloud SQL SLA. For information about these flags, see Operational Guidelines. **Note**: Configuring the above flag does not restart the Cloud SQL instance.", + "References": "https://cloud.google.com/sql/docs/sqlserver/flags:https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/contained-database-authentication-server-configuration-option?view=sql-server-ver15:https://docs.microsoft.com/en-us/sql/relational-databases/databases/security-best-practices-with-contained-databases?view=sql-server-ver15", + "DefaultValue": "" + } + ] + }, + { + "Id": "7.1", + "Description": "Ensure That BigQuery Datasets Are Not Anonymously or Publicly Accessible", + "Checks": [ + "bigquery_dataset_public_access" + ], + "Attributes": [ + { + "Section": "7 BigQuery", + "Profile": "Level 1", + "AssessmentStatus": "Automated", + "Description": "It is recommended that the IAM policy on BigQuery datasets does not allow anonymous and/or public access.", + "RationaleStatement": "Granting permissions to `allUsers` or `allAuthenticatedUsers` allows anyone to access the dataset. Such access might not be desirable if sensitive data is being stored in the dataset. Therefore, ensure that anonymous and/or public access to a dataset is not allowed.", + "ImpactStatement": "The dataset is not publicly accessible. Explicit modification of IAM privileges would be necessary to make them publicly accessible.", + "RemediationProcedure": "**From Google Cloud Console** 1. Go to `BigQuery` by visiting: [https://console.cloud.google.com/bigquery](https://console.cloud.google.com/bigquery). 2. Select the dataset from 'Resources'. 3. Click `SHARING` near the right side of the window and select `Permissions`. 4. Review each attached role. 5. Click the delete icon for each member `allUsers` or `allAuthenticatedUsers`. On the popup click `Remove`. **From Google Cloud CLI** List the name of all datasets. bq ls Retrieve the data set details: bq show --format=prettyjson PROJECT_ID:DATASET_NAME > PATH_TO_FILE In the access section of the JSON file, update the dataset information to remove all roles containing `allUsers` or `allAuthenticatedUsers`. Update the dataset: bq update --source PATH_TO_FILE PROJECT_ID:DATASET_NAME **Prevention:** You can prevent Bigquery dataset from becoming publicly accessible by setting up the `Domain restricted sharing` organization policy at: https://console.cloud.google.com/iam-admin/orgpolicies/iam-allowedPolicyMemberDomains .", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `BigQuery` by visiting: [https://console.cloud.google.com/bigquery](https://console.cloud.google.com/bigquery). 2. Select a dataset from `Resources`. 3. Click `SHARING` near the right side of the window and select `Permissions`. 4. Validate that none of the attached roles contain `allUsers` or `allAuthenticatedUsers`. **From Google Cloud CLI** List the name of all datasets. bq ls Retrieve each dataset details using the following command: bq show PROJECT_ID:DATASET_NAME Ensure that `allUsers` and `allAuthenticatedUsers` have not been granted access to the dataset.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/bigquery/docs/dataset-access-controls", + "DefaultValue": "By default, BigQuery datasets are not publicly accessible." + } + ] + }, + { + "Id": "7.2", + "Description": "Ensure That All BigQuery Tables Are Encrypted With Customer-Managed Encryption Key (CMEK)", + "Checks": [ + "bigquery_table_cmk_encryption" + ], + "Attributes": [ + { + "Section": "7 BigQuery", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "BigQuery by default encrypts the data as rest by employing `Envelope Encryption` using Google managed cryptographic keys. The data is encrypted using the `data encryption keys` and data encryption keys themselves are further encrypted using `key encryption keys`. This is seamless and do not require any additional input from the user. However, if you want to have greater control, Customer-managed encryption keys (CMEK) can be used as encryption key management solution for BigQuery Data Sets. If CMEK is used, the CMEK is used to encrypt the data encryption keys instead of using google-managed encryption keys.", + "RationaleStatement": "BigQuery by default encrypts the data as rest by employing `Envelope Encryption` using Google managed cryptographic keys. This is seamless and does not require any additional input from the user. For greater control over the encryption, customer-managed encryption keys (CMEK) can be used as encryption key management solution for BigQuery tables. The CMEK is used to encrypt the data encryption keys instead of using google-managed encryption keys. BigQuery stores the table and CMEK association and the encryption/decryption is done automatically. Applying the Default Customer-managed keys on BigQuery data sets ensures that all the new tables created in the future will be encrypted using CMEK but existing tables need to be updated to use CMEK individually. Note: Google does not store your keys on its servers and cannot access your protected data unless you provide the key. This also means that if you forget or lose your key, there is no way for Google to recover the key or to recover any data encrypted with the lost key. ", + "ImpactStatement": "Using Customer-managed encryption keys (CMEK) will incur additional labor-hour investment to create, protect, and manage the keys.", + "RemediationProcedure": "**From Google Cloud CLI** Use the following command to copy the data. The source and the destination needs to be same in case copying to the original table. bq cp --destination_kms_key source_dataset.source_table destination_dataset.destination_table ", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `Analytics` 2. Go to `BigQuery` 3. Under `SQL Workspace`, select the project 4. Select Data Set, select the table 5. Go to `Details` tab 6. Under `Table info`, verify `Customer-managed key` is present. 7. Repeat for each table in all data sets for all projects. **From Google Cloud CLI** List all dataset names bq ls Use the following command to view the table details. Verify the `kmsKeyName` is present. bq show ", + "AdditionalInformation": "", + "References": "https://cloud.google.com/bigquery/docs/customer-managed-encryption", + "DefaultValue": "Google Managed keys are used as `key encryption keys`." + } + ] + }, + { + "Id": "7.3", + "Description": "Ensure That a Default Customer-Managed Encryption Key (CMEK) Is Specified for All BigQuery Data Sets", + "Checks": [ + "bigquery_dataset_cmk_encryption" + ], + "Attributes": [ + { + "Section": "7 BigQuery", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "BigQuery by default encrypts the data as rest by employing `Envelope Encryption` using Google managed cryptographic keys. The data is encrypted using the `data encryption keys` and data encryption keys themselves are further encrypted using `key encryption keys`. This is seamless and do not require any additional input from the user. However, if you want to have greater control, Customer-managed encryption keys (CMEK) can be used as encryption key management solution for BigQuery Data Sets.", + "RationaleStatement": "BigQuery by default encrypts the data as rest by employing `Envelope Encryption` using Google managed cryptographic keys. This is seamless and does not require any additional input from the user. For greater control over the encryption, customer-managed encryption keys (CMEK) can be used as encryption key management solution for BigQuery Data Sets. Setting a Default Customer-managed encryption key (CMEK) for a data set ensure any tables created in future will use the specified CMEK if none other is provided. Note: Google does not store your keys on its servers and cannot access your protected data unless you provide the key. This also means that if you forget or lose your key, there is no way for Google to recover the key or to recover any data encrypted with the lost key. ", + "ImpactStatement": "Using Customer-managed encryption keys (CMEK) will incur additional labor-hour investment to create, protect, and manage the keys.", + "RemediationProcedure": "**From Google Cloud CLI** The default CMEK for existing data sets can be updated by specifying the default key in the `EncryptionConfiguration.kmsKeyName` field when calling the `datasets.insert` or `datasets.patch` methods", + "AuditProcedure": "**From Google Cloud Console** 1. Go to `Analytics` 2. Go to `BigQuery` 3. Under `Analysis` click on `SQL Workspaces`, select the project 4. Select Data Set 5. Ensure `Customer-managed key` is present under `Dataset info` section. 6. Repeat for each data set in all projects. **From Google Cloud CLI** List all dataset names bq ls Use the following command to view each dataset details. bq show Verify the `kmsKeyName` is present.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/bigquery/docs/customer-managed-encryption", + "DefaultValue": "Google Managed keys are used as `key encryption keys`." + } + ] + }, + { + "Id": "7.4", + "Description": "Ensure all data in BigQuery has been classified", + "Checks": [], + "Attributes": [ + { + "Section": "7 BigQuery", + "Profile": "Level 2", + "AssessmentStatus": "Manual", + "Description": "BigQuery tables can contain sensitive data that for security purposes should be discovered, monitored, classified, and protected. Google Cloud's Sensitive Data Protection tools can automatically provide data classification of all BigQuery data across an organization.", + "RationaleStatement": "Using a cloud service or 3rd party software to continuously monitor and automate the process of data discovery and classification for BigQuery tables is an important part of protecting the data. Sensitive Data Protection is a fully managed data protection and data privacy platform that uses machine learning and pattern matching to discover and classify sensitive data in Google Cloud.", + "ImpactStatement": "There is a cost associated with using Sensitive Data Protection. There is also typically a cost associated with 3rd party tools that perform similar processes and protection.", + "RemediationProcedure": "**Enable profiling:** 1. Go to Cloud DLP by visiting https://console.cloud.google.com/dlp/landing/dataProfiles/configurations 1. Click Create Configuration 1. For projects follow https://cloud.google.com/dlp/docs/profile-project. For organizations or folders follow https://cloud.google.com/dlp/docs/profile-org-folder **Review findings:** - Columns or tables with high data risk have evidence of sensitive information without additional protections. To lower the data risk score, consider doing the following: - For columns containing sensitive data, apply a BigQuery policy tag to restrict access to accounts with specific access rights. - De-identify the raw sensitive data using de-identification techniques like masking and tokenization. **Incorporate findings into your security and governance operations:** - Enable sending findings into your security and posture services. You can publish data profiles to Security Command Center and Chronicle. - Automate remediation or enable alerting of new or changed data risk with Pub/Sub.", + "AuditProcedure": "1. Go to Cloud DLP by visiting https://console.cloud.google.com/dlp/landing/dataProfiles/configurations. 2. Verify there is a discovery scan configuration either for the organization or project.", + "AdditionalInformation": "", + "References": "https://cloud.google.com/dlp/docs/data-profiles:https://cloud.google.com/dlp/docs/analyze-data-profiles:https://cloud.google.com/dlp/docs/data-profiles-remediation:https://cloud.google.com/dlp/docs/send-profiles-to-scc:https://cloud.google.com/dlp/docs/profile-org-folder#chronicle:https://cloud.google.com/dlp/docs/profile-org-folder#publish-pubsub", + "DefaultValue": "" + } + ] + }, + { + "Id": "8.1", + "Description": "Ensure that Dataproc Cluster is encrypted using Customer-Managed Encryption Key", + "Checks": [ + "dataproc_encrypted_with_cmks_disabled" + ], + "Attributes": [ + { + "Section": "8 Dataproc", + "Profile": "Level 2", + "AssessmentStatus": "Automated", + "Description": "When you use Dataproc, cluster and job data is stored on Persistent Disks (PDs) associated with the Compute Engine VMs in your cluster and in a Cloud Storage staging bucket. This PD and bucket data is encrypted using a Google-generated data encryption key (DEK) and key encryption key (KEK). The CMEK feature allows you to create, use, and revoke the key encryption key (KEK). Google still controls the data encryption key (DEK).", + "RationaleStatement": "Cloud services offer the ability to protect data related to those services using encryption keys managed by the customer within Cloud KMS. These encryption keys are called customer-managed encryption keys (CMEK). When you protect data in Google Cloud services with CMEK, the CMEK key is within your control.", + "ImpactStatement": "Using Customer Managed Keys involves additional overhead in maintenance by administrators.", + "RemediationProcedure": "**From Google Cloud Console** 1. Login to the GCP Console and navigate to the Dataproc Cluster page by visiting https://console.cloud.google.com/dataproc/clusters. 1. Select the project from the projects dropdown list. 1. On the `Dataproc Cluster` page, click on the `Create Cluster` to create a new cluster with Customer managed encryption keys. 1. On `Create a cluster` page, perform below steps: - Inside `Set up cluster` section perform below steps: -In the `Name` textbox, provide a name for your cluster. - From `Location` select the location in which you want to deploy a cluster. - Configure other configurations as per your requirements. - Inside `Configure Nodes` and `Customize cluster` section configure the settings as per your requirements. - Inside `Manage security` section, perform below steps: - From `Encryption`, select `Customer-managed key`. - Select a customer-managed key from dropdown list. - Ensure that the selected KMS Key have Cloud KMS CryptoKey Encrypter/Decrypter role assign to Dataproc Cluster service account (serviceAccount:service-@compute-system.iam.gserviceaccount.com). - Click on `Create` to create a cluster. - Once the cluster is created migrate all your workloads from the older cluster to the new cluster and delete the old cluster by performing the below steps: - On the `Clusters` page, select the old cluster and click on `Delete cluster`. - On the `Confirm deletion` window, click on `Confirm` to delete the cluster. - Repeat step above for other Dataproc clusters available in the selected project. - Change the project from the project dropdown list and repeat the remediation procedure for other Dataproc clusters available in other projects. **From Google Cloud CLI** Before creating cluster ensure that the selected KMS Key have Cloud KMS CryptoKey Encrypter/Decrypter role assign to Dataproc Cluster service account (serviceAccount:service-@compute-system.iam.gserviceaccount.com). Run clusters create command to create new cluster with customer-managed key: gcloud dataproc clusters create --region=us-central1 --gce-pd-kms-key= The above command will create a new cluster in the selected region. Once the cluster is created migrate all your workloads from the older cluster to the new cluster and Run clusters delete command to delete cluster: gcloud dataproc clusters delete --region=us-central1 Repeat step no. 1 to create a new Dataproc cluster. Change the project by running the below command and repeat the remediation procedure for other projects: gcloud config set project ", + "AuditProcedure": "**From Google Cloud Console** 1. Login to the GCP Console and navigate to the Dataproc Cluster page by visiting https://console.cloud.google.com/dataproc/clusters. 1. Select the project from the project dropdown list. 1. On the `Dataproc Clusters` page, select the cluster and click on the Name attribute value that you want to examine. 1. On the `details` page, select the `Configurations` tab. 1. On the `Configurations` tab, check the `Encryption type` configuration attribute value. If the value is set to `Google-managed key`, then Dataproc Cluster is not encrypted with Customer managed encryption keys. Repeat step no. 3 - 5 for other Dataproc Clusters available in the selected project. 6. Change the project from the project dropdown list and repeat the audit procedure for other projects. **From Google Cloud CLI** 1. Run clusters list command to list all the Dataproc Clusters available in the region: gcloud dataproc clusters list --region='us-central1' 2. Run clusters describe command to get the key details of the selected cluster: gcloud dataproc clusters describe --region=us-central1 --flatten=config.encryptionConfig.gcePdKmsKeyName 3. If the above command output return null, then the selected cluster is not encrypted with Customer managed encryption keys. 4. Repeat step no. 2 and 3 for other Dataproc Clusters available in the selected region. Change the region by updating --region and repeat step no. 2 for other clusters available in the project. Change the project by running the below command and repeat the audit procedure for other Dataproc clusters available in other projects: gcloud config set project ", + "AdditionalInformation": "", + "References": "https://cloud.google.com/docs/security/encryption/default-encryption", + "DefaultValue": "" + } + ] + } + ] +} diff --git a/util/generate_compliance_json_from_csv_for_cis15.py b/util/generate_compliance_json_from_csv_for_cis15.py index d754323ee9..ed04202d66 100644 --- a/util/generate_compliance_json_from_csv_for_cis15.py +++ b/util/generate_compliance_json_from_csv_for_cis15.py @@ -4,7 +4,7 @@ import sys # Convert a CSV file following the CIS 1.5 AWS benchmark into a Prowler v3.0 Compliance JSON file # CSV fields: -# Id, Title,Checks,Attributes_Section,Attributes_Level,Attributes_AssessmentStatus,Attributes_Description,Attributes_RationalStatement,Attributes_ImpactStatement,Attributes_RemediationProcedure,Attributes_AuditProcedure,Attributes_AdditionalInformation,Attributes_References +# ID Title Check Section # SubSection Profile Assessment Status Description Rationale Statement Impact Statement Remediation Procedure Audit Procedure Additional Information References Default Value # get the CSV filename to convert from file_name = sys.argv[1] @@ -14,18 +14,36 @@ output = {"Framework": "CIS-AWS", "Version": "1.5", "Requirements": []} with open(file_name, newline="", encoding="utf-8") as f: reader = csv.reader(f, delimiter=",") for row in reader: - attribute = { - "Section": row[3], - "Profile": row[4], - "AssessmentStatus": row[5], - "Description": row[6], - "RationaleStatement": row[7], - "ImpactStatement": row[8], - "RemediationProcedure": row[9], - "AuditProcedure": row[10], - "AdditionalInformation": row[11], - "References": row[12], - } + if len(row[4]) > 0: + attribute = { + "Section": row[3], + "SubSection": row[4], + "Profile": row[5], + "AssessmentStatus": row[6], + "Description": row[7], + "RationaleStatement": row[8], + "ImpactStatement": row[9], + "RemediationProcedure": row[10], + "AuditProcedure": row[11], + "AdditionalInformation": row[12], + "References": row[13], + "DefaultValue": row[14], + } + else: + attribute = { + "Section": row[3], + "Profile": row[5], + "AssessmentStatus": row[6], + "Description": row[7], + "RationaleStatement": row[8], + "ImpactStatement": row[9], + "RemediationProcedure": row[10], + "AuditProcedure": row[11], + "AdditionalInformation": row[12], + "References": row[13], + "DefaultValue": row[14], + } + output["Requirements"].append( { "Id": row[0], From 118f3d163d7d3811b75fdcc9ce3da7055e7db5da Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Wed, 21 May 2025 12:39:48 +0200 Subject: [PATCH 002/111] docs: update changelog UI (#7808) --- ui/CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 39a1fbca22..595d678296 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -4,14 +4,18 @@ All notable changes to the **Prowler UI** are documented in this file. ## [v1.8.0] (Prowler v5.8.0) – Not released - ### 🚀 Added - New profile page with details about the user and their roles. [(#7780)](https://github.com/prowler-cloud/prowler/pull/7780) +--- + +## [v1.7.1] (Prowler v5.7.1) + ### 🐞 Fixes - Added validation to AWS IAM role. [(#7787)](https://github.com/prowler-cloud/prowler/pull/7787) +- Tweak some wording for consistency throughout the app. [(#7794)](https://github.com/prowler-cloud/prowler/pull/7794) - Retrieve more than 10 providers in /scans, /manage-groups and /findings pages. [(#7793)](https://github.com/prowler-cloud/prowler/pull/7793) --- From 6e184dae937b26323218d24e77149cbaa4aaf12c Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Wed, 21 May 2025 12:46:35 +0200 Subject: [PATCH 003/111] fix(admincenter): `admincenter_users_admins_reduced_license_footprint` logic (#7779) Co-authored-by: Andoni A. <14891798+andoniaf@users.noreply.github.com> --- prowler/CHANGELOG.md | 1 + .../admincenter_users_admins_reduced_license_footprint.py | 4 ++-- ...admincenter_users_admins_reduced_license_footprint_test.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 75a7f1ec42..965cf81cf5 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -14,6 +14,7 @@ All notable changes to the **Prowler SDK** are documented in this file. ### Fixed - Fix `m365_powershell test_credentials` to use sanitized credentials. [(#7761)](https://github.com/prowler-cloud/prowler/pull/7761) +- Fix `admincenter_users_admins_reduced_license_footprint` check logic to pass when admin user has no license. [(#7779)](https://github.com/prowler-cloud/prowler/pull/7779) --- diff --git a/prowler/providers/m365/services/admincenter/admincenter_users_admins_reduced_license_footprint/admincenter_users_admins_reduced_license_footprint.py b/prowler/providers/m365/services/admincenter/admincenter_users_admins_reduced_license_footprint/admincenter_users_admins_reduced_license_footprint.py index 7497feb305..e97f42cd80 100644 --- a/prowler/providers/m365/services/admincenter/admincenter_users_admins_reduced_license_footprint/admincenter_users_admins_reduced_license_footprint.py +++ b/prowler/providers/m365/services/admincenter/admincenter_users_admins_reduced_license_footprint/admincenter_users_admins_reduced_license_footprint.py @@ -21,7 +21,7 @@ class admincenter_users_admins_reduced_license_footprint(Check): """Execute the check for users with administrative roles and their licenses. This method iterates over all users and checks if those with administrative roles - have an allowed license. If a user has a valid license (AAD_PREMIUM or AAD_PREMIUM_P2), + have an allowed license. If a user has a valid license (AAD_PREMIUM or AAD_PREMIUM_P2) or no license, the check passes; otherwise, it fails. Returns: @@ -45,7 +45,7 @@ class admincenter_users_admins_reduced_license_footprint(Check): resource_name=user.name, resource_id=user.id, ) - report.status = "FAIL" + report.status = "PASS" report.status_extended = f"User {user.name} has administrative roles {admin_roles} and does not have a license." if user.license: diff --git a/tests/providers/m365/services/admincenter/admincenter_users_admins_reduced_license_footprint/admincenter_users_admins_reduced_license_footprint_test.py b/tests/providers/m365/services/admincenter/admincenter_users_admins_reduced_license_footprint/admincenter_users_admins_reduced_license_footprint_test.py index 6b93429b3d..a3667af57a 100644 --- a/tests/providers/m365/services/admincenter/admincenter_users_admins_reduced_license_footprint/admincenter_users_admins_reduced_license_footprint_test.py +++ b/tests/providers/m365/services/admincenter/admincenter_users_admins_reduced_license_footprint/admincenter_users_admins_reduced_license_footprint_test.py @@ -210,7 +210,7 @@ class Test_admincenter_users_admins_reduced_license_footprint: check = admincenter_users_admins_reduced_license_footprint() result = check.execute() assert len(result) == 1 - assert result[0].status == "FAIL" + assert result[0].status == "PASS" assert ( result[0].status_extended == "User User1 has administrative roles Global Administrator and does not have a license." From 16cd0e4661478053e7e5b8907d5308bf6c01c827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Mart=C3=ADn?= Date: Wed, 21 May 2025 12:46:47 +0200 Subject: [PATCH 004/111] feat(prowler_threatscore): add a level for accordion in dashboard (#7739) Co-authored-by: Sergio Garcia --- dashboard/common_methods.py | 350 ++++++++++++++++++ .../compliance/prowler_threatscore_aws.py | 10 +- .../compliance/prowler_threatscore_azure.py | 10 +- .../compliance/prowler_threatscore_gcp.py | 10 +- .../compliance/prowler_threatscore_m365.py | 10 +- prowler/CHANGELOG.md | 7 +- 6 files changed, 382 insertions(+), 15 deletions(-) diff --git a/dashboard/common_methods.py b/dashboard/common_methods.py index 338b6e6473..a2f9ffe89b 100644 --- a/dashboard/common_methods.py +++ b/dashboard/common_methods.py @@ -2569,6 +2569,356 @@ def get_section_containers_3_levels(data, section_1, section_2, section_3): return html.Div(section_containers, className="compliance-data-layout") +def get_section_containers_threatscore(data, section_1, section_2, section_3): + data["STATUS"] = data["STATUS"].apply(map_status_to_icon) + findings_counts_marco = ( + data.groupby([section_1, "STATUS"]).size().unstack(fill_value=0) + ) + section_containers = [] + data[section_1] = data[section_1].astype(str) + data[section_2] = data[section_2].astype(str) + data[section_3] = data[section_3].astype(str) + + data.sort_values( + by=section_3, + key=lambda x: x.map(extract_numeric_values), + ascending=True, + inplace=True, + ) + + for marco in data[section_1].unique(): + success_marco = findings_counts_marco.loc[marco].get(pass_emoji, 0) + failed_marco = findings_counts_marco.loc[marco].get(fail_emoji, 0) + + fig_name = go.Figure( + [ + go.Bar( + name="Failed", + x=[failed_marco], + y=[""], + orientation="h", + marker=dict(color="#e77676"), + width=[0.8], + ), + go.Bar( + name="Success", + x=[success_marco], + y=[""], + orientation="h", + marker=dict(color="#45cc6e"), + width=[0.8], + ), + ] + ) + fig_name.update_layout( + barmode="stack", + margin=dict(l=10, r=10, t=10, b=10), + paper_bgcolor="rgba(0,0,0,0)", + plot_bgcolor="rgba(0,0,0,0)", + showlegend=False, + width=350, + height=30, + xaxis=dict(showticklabels=False, showgrid=False, zeroline=False), + yaxis=dict(showticklabels=False, showgrid=False, zeroline=False), + annotations=[ + dict( + x=success_marco + failed_marco, + y=0, + xref="x", + yref="y", + text=str(success_marco), + showarrow=False, + font=dict(color="#45cc6e", size=14), + xanchor="left", + yanchor="middle", + ), + dict( + x=0, + y=0, + xref="x", + yref="y", + text=str(failed_marco), + showarrow=False, + font=dict(color="#e77676", size=14), + xanchor="right", + yanchor="middle", + ), + ], + ) + fig_name.add_annotation( + x=failed_marco, + y=0.3, + text="|", + showarrow=False, + font=dict(size=20), + xanchor="center", + yanchor="middle", + ) + + graph_div = html.Div( + dcc.Graph( + figure=fig_name, config={"staticPlot": True}, className="info-bar" + ), + className="graph-section", + ) + direct_internal_items = [] + + for categoria in data[data[section_1] == marco][section_2].unique(): + specific_data = data[ + (data[section_1] == marco) & (data[section_2] == categoria) + ] + findings_counts_categoria = ( + specific_data.groupby([section_2, "STATUS"]) + .size() + .unstack(fill_value=0) + ) + success_categoria = findings_counts_categoria.loc[categoria].get( + pass_emoji, 0 + ) + failed_categoria = findings_counts_categoria.loc[categoria].get( + fail_emoji, 0 + ) + + fig_section = go.Figure( + [ + go.Bar( + name="Failed", + x=[failed_categoria], + y=[""], + orientation="h", + marker=dict(color="#e77676"), + width=[0.8], + ), + go.Bar( + name="Success", + x=[success_categoria], + y=[""], + orientation="h", + marker=dict(color="#45cc6e"), + width=[0.8], + ), + ] + ) + fig_section.update_layout( + barmode="stack", + margin=dict(l=10, r=10, t=10, b=10), + paper_bgcolor="rgba(0,0,0,0)", + plot_bgcolor="rgba(0,0,0,0)", + showlegend=False, + width=350, + height=30, + xaxis=dict(showticklabels=False, showgrid=False, zeroline=False), + yaxis=dict(showticklabels=False, showgrid=False, zeroline=False), + annotations=[ + dict( + x=success_categoria + failed_categoria, + y=0, + xref="x", + yref="y", + text=str(success_categoria), + showarrow=False, + font=dict(color="#45cc6e", size=14), + xanchor="left", + yanchor="middle", + ), + dict( + x=0, + y=0, + xref="x", + yref="y", + text=str(failed_categoria), + showarrow=False, + font=dict(color="#e77676", size=14), + xanchor="right", + yanchor="middle", + ), + ], + ) + fig_section.add_annotation( + x=failed_categoria, + y=0.3, + text="|", + showarrow=False, + font=dict(size=20), + xanchor="center", + yanchor="middle", + ) + + graph_div_section = html.Div( + dcc.Graph( + figure=fig_section, + config={"staticPlot": True}, + className="info-bar-child", + ), + className="graph-section-req", + ) + direct_internal_items_idgrupocontrol = [] + + for idgrupocontrol in specific_data[section_3].unique(): + specific_data2 = specific_data[ + specific_data[section_3] == idgrupocontrol + ] + findings_counts_idgrupocontrol = ( + specific_data2.groupby([section_3, "STATUS"]) + .size() + .unstack(fill_value=0) + ) + success_idgrupocontrol = findings_counts_idgrupocontrol.loc[ + idgrupocontrol + ].get(pass_emoji, 0) + failed_idgrupocontrol = findings_counts_idgrupocontrol.loc[ + idgrupocontrol + ].get(fail_emoji, 0) + + fig_idgrupocontrol = go.Figure( + [ + go.Bar( + name="Failed", + x=[failed_idgrupocontrol], + y=[""], + orientation="h", + marker=dict(color="#e77676"), + width=[0.8], + ), + go.Bar( + name="Success", + x=[success_idgrupocontrol], + y=[""], + orientation="h", + marker=dict(color="#45cc6e"), + width=[0.8], + ), + ] + ) + fig_idgrupocontrol.update_layout( + barmode="stack", + margin=dict(l=10, r=10, t=10, b=10), + paper_bgcolor="rgba(0,0,0,0)", + plot_bgcolor="rgba(0,0,0,0)", + showlegend=False, + width=350, + height=30, + xaxis=dict(showticklabels=False, showgrid=False, zeroline=False), + yaxis=dict(showticklabels=False, showgrid=False, zeroline=False), + annotations=[ + dict( + x=success_idgrupocontrol + failed_idgrupocontrol, + y=0, + xref="x", + yref="y", + text=str(success_idgrupocontrol), + showarrow=False, + font=dict(color="#45cc6e", size=14), + xanchor="left", + yanchor="middle", + ), + dict( + x=0, + y=0, + xref="x", + yref="y", + text=str(failed_idgrupocontrol), + showarrow=False, + font=dict(color="#e77676", size=14), + xanchor="right", + yanchor="middle", + ), + ], + ) + fig_idgrupocontrol.add_annotation( + x=failed_idgrupocontrol, + y=0.3, + text="|", + showarrow=False, + font=dict(size=20), + xanchor="center", + yanchor="middle", + ) + + graph_div_idgrupocontrol = html.Div( + dcc.Graph( + figure=fig_idgrupocontrol, + config={"staticPlot": True}, + className="info-bar-child", + ), + className="graph-section-req", + ) + + data_table = dash_table.DataTable( + data=specific_data2.to_dict("records"), + columns=[ + {"name": i, "id": i} + for i in [ + "CHECKID", + "STATUS", + "REGION", + "ACCOUNTID", + "RESOURCEID", + ] + ], + style_table={"overflowX": "auto"}, + style_as_list_view=True, + style_cell={"textAlign": "left", "padding": "5px"}, + ) + + title_internal = f"{idgrupocontrol} - {specific_data2['REQUIREMENTS_DESCRIPTION'].iloc[0]}" + + # Cut the title if it's too long + title_internal = ( + title_internal[:130] + " ..." + if len(title_internal) > 130 + else title_internal + ) + + internal_accordion_item_2 = dbc.AccordionItem( + title=title_internal, + children=[ + graph_div_idgrupocontrol, + html.Div([data_table], className="inner-accordion-content"), + ], + ) + direct_internal_items_idgrupocontrol.append( + html.Div( + [ + graph_div_idgrupocontrol, + dbc.Accordion( + [internal_accordion_item_2], + start_collapsed=True, + flush=True, + ), + ], + className="accordion-inner--child", + ) + ) + + internal_accordion_item = dbc.AccordionItem( + title=categoria, + children=direct_internal_items_idgrupocontrol, + ) + internal_section_container = html.Div( + [ + graph_div_section, + dbc.Accordion( + [internal_accordion_item], start_collapsed=True, flush=True + ), + ], + className="accordion-inner--child", + ) + direct_internal_items.append(internal_section_container) + + accordion_item = dbc.AccordionItem(title=marco, children=direct_internal_items) + section_container = html.Div( + [ + graph_div, + dbc.Accordion([accordion_item], start_collapsed=True, flush=True), + ], + className="accordion-inner", + ) + section_containers.append(section_container) + + return html.Div(section_containers, className="compliance-data-layout") + + # This function extracts and compares up to two numeric values, ensuring correct sorting for version-like strings. def extract_numeric_values(value): numbers = re.findall(r"\d+", str(value)) diff --git a/dashboard/compliance/prowler_threatscore_aws.py b/dashboard/compliance/prowler_threatscore_aws.py index 94558f33ad..d86a13fd01 100644 --- a/dashboard/compliance/prowler_threatscore_aws.py +++ b/dashboard/compliance/prowler_threatscore_aws.py @@ -1,6 +1,6 @@ import warnings -from dashboard.common_methods import get_section_containers_cis +from dashboard.common_methods import get_section_containers_threatscore warnings.filterwarnings("ignore") @@ -11,6 +11,7 @@ def get_table(data): "REQUIREMENTS_ID", "REQUIREMENTS_DESCRIPTION", "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", "CHECKID", "STATUS", "REGION", @@ -19,6 +20,9 @@ def get_table(data): ] ].copy() - return get_section_containers_cis( - aux, "REQUIREMENTS_ID", "REQUIREMENTS_ATTRIBUTES_SECTION" + return get_section_containers_threatscore( + aux, + "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", + "REQUIREMENTS_ID", ) diff --git a/dashboard/compliance/prowler_threatscore_azure.py b/dashboard/compliance/prowler_threatscore_azure.py index 94558f33ad..d86a13fd01 100644 --- a/dashboard/compliance/prowler_threatscore_azure.py +++ b/dashboard/compliance/prowler_threatscore_azure.py @@ -1,6 +1,6 @@ import warnings -from dashboard.common_methods import get_section_containers_cis +from dashboard.common_methods import get_section_containers_threatscore warnings.filterwarnings("ignore") @@ -11,6 +11,7 @@ def get_table(data): "REQUIREMENTS_ID", "REQUIREMENTS_DESCRIPTION", "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", "CHECKID", "STATUS", "REGION", @@ -19,6 +20,9 @@ def get_table(data): ] ].copy() - return get_section_containers_cis( - aux, "REQUIREMENTS_ID", "REQUIREMENTS_ATTRIBUTES_SECTION" + return get_section_containers_threatscore( + aux, + "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", + "REQUIREMENTS_ID", ) diff --git a/dashboard/compliance/prowler_threatscore_gcp.py b/dashboard/compliance/prowler_threatscore_gcp.py index 94558f33ad..d86a13fd01 100644 --- a/dashboard/compliance/prowler_threatscore_gcp.py +++ b/dashboard/compliance/prowler_threatscore_gcp.py @@ -1,6 +1,6 @@ import warnings -from dashboard.common_methods import get_section_containers_cis +from dashboard.common_methods import get_section_containers_threatscore warnings.filterwarnings("ignore") @@ -11,6 +11,7 @@ def get_table(data): "REQUIREMENTS_ID", "REQUIREMENTS_DESCRIPTION", "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", "CHECKID", "STATUS", "REGION", @@ -19,6 +20,9 @@ def get_table(data): ] ].copy() - return get_section_containers_cis( - aux, "REQUIREMENTS_ID", "REQUIREMENTS_ATTRIBUTES_SECTION" + return get_section_containers_threatscore( + aux, + "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", + "REQUIREMENTS_ID", ) diff --git a/dashboard/compliance/prowler_threatscore_m365.py b/dashboard/compliance/prowler_threatscore_m365.py index 94558f33ad..d86a13fd01 100644 --- a/dashboard/compliance/prowler_threatscore_m365.py +++ b/dashboard/compliance/prowler_threatscore_m365.py @@ -1,6 +1,6 @@ import warnings -from dashboard.common_methods import get_section_containers_cis +from dashboard.common_methods import get_section_containers_threatscore warnings.filterwarnings("ignore") @@ -11,6 +11,7 @@ def get_table(data): "REQUIREMENTS_ID", "REQUIREMENTS_DESCRIPTION", "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", "CHECKID", "STATUS", "REGION", @@ -19,6 +20,9 @@ def get_table(data): ] ].copy() - return get_section_containers_cis( - aux, "REQUIREMENTS_ID", "REQUIREMENTS_ATTRIBUTES_SECTION" + return get_section_containers_threatscore( + aux, + "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", + "REQUIREMENTS_ID", ) diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 965cf81cf5..0f67503e13 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -7,9 +7,10 @@ All notable changes to the **Prowler SDK** are documented in this file. ### Added - Add CIS 1.11 compliance framework for Kubernetes. [(#7790)](https://github.com/prowler-cloud/prowler/pull/7790) - Support `HTTPS_PROXY` and `K8S_SKIP_TLS_VERIFY` in Kubernetes. [(#7720)](https://github.com/prowler-cloud/prowler/pull/7720) -- Add new check `entra_users_mfa_capable`. [(#7734)](https://github.com/prowler-cloud/prowler/pull/7734) -- Add new check `admincenter_organization_customer_lockbox_enabled`. [(#7732)](https://github.com/prowler-cloud/prowler/pull/7732) -- Add new check `admincenter_external_calendar_sharing_disabled`. [(#7733)](https://github.com/prowler-cloud/prowler/pull/7733) +- Add new check `entra_users_mfa_capable` for M365 provider. [(#7734)](https://github.com/prowler-cloud/prowler/pull/7734) +- Add new check `admincenter_organization_customer_lockbox_enabled` for M365 provider. [(#7732)](https://github.com/prowler-cloud/prowler/pull/7732) +- Add new check `admincenter_external_calendar_sharing_disabled` for M365 provider. [(#7733)](https://github.com/prowler-cloud/prowler/pull/7733) +- Add a level for Prowler ThreatScore in the accordion in Dashboard. [(#7739)](https://github.com/prowler-cloud/prowler/pull/7739) - Add CIS 4.0 compliance framework for GCP. [(7785)](https://github.com/prowler-cloud/prowler/pull/7785) ### Fixed From 65d3fcee4c366c8a9655856301fe4c21fe25fc49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Mart=C3=ADn?= Date: Wed, 21 May 2025 12:57:10 +0200 Subject: [PATCH 005/111] feat(prowler-threatscore): add Weight field inside req (#7795) Co-authored-by: Sergio Garcia --- dashboard/pages/compliance.py | 145 +++++--- prowler/CHANGELOG.md | 1 + .../aws/prowler_threatscore_aws.json | 318 ++++++++++++------ .../azure/prowler_threatscore_azure.json | 231 ++++++++----- .../gcp/prowler_threatscore_gcp.json | 171 ++++++---- .../m365/prowler_threatscore_m365.json | 189 +++++++---- prowler/lib/check/compliance_models.py | 1 + .../compliance/prowler_threatscore/models.py | 4 + .../prowler_threatscore.py | 40 ++- .../prowler_threatscore_aws.py | 2 + .../prowler_threatscore_azure.py | 2 + .../prowler_threatscore_gcp.py | 2 + .../prowler_threatscore_m365.py | 2 + prowler_threatscore_aws | 0 prowler_threatscore_azure | 0 prowler_threatscore_gcp | 0 prowler_threatscore_m365 | 0 tests/lib/outputs/compliance/fixtures.py | 50 +++ .../prowler_threatscore_aws_test.py | 10 +- .../prowler_threatscore_azure_test.py | 10 +- .../prowler_threatscore_gcp_test.py | 10 +- .../prowler_threatscore_m365_test.py | 157 +++++++++ 22 files changed, 980 insertions(+), 365 deletions(-) create mode 100644 prowler_threatscore_aws create mode 100644 prowler_threatscore_azure create mode 100644 prowler_threatscore_gcp create mode 100644 prowler_threatscore_m365 create mode 100644 tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365_test.py diff --git a/dashboard/pages/compliance.py b/dashboard/pages/compliance.py index 0eed0ace3f..93c0eeb2c1 100644 --- a/dashboard/pages/compliance.py +++ b/dashboard/pages/compliance.py @@ -651,58 +651,114 @@ def get_table(current_compliance, table): def get_threatscore_mean_by_pillar(df): - modified_df = df[df["STATUS"] == "FAIL"] + score_per_pillar = {} + max_score_per_pillar = {} - modified_df["REQUIREMENTS_ATTRIBUTES_LEVELOFRISK"] = pd.to_numeric( - modified_df["REQUIREMENTS_ATTRIBUTES_LEVELOFRISK"], errors="coerce" - ) + for _, row in df.iterrows(): + pillar = ( + row["REQUIREMENTS_ATTRIBUTES_SECTION"].split(" - ")[0] + if isinstance(row["REQUIREMENTS_ATTRIBUTES_SECTION"], str) + else "Unknown" + ) - pillar_means = ( - modified_df.groupby("REQUIREMENTS_ATTRIBUTES_SECTION")[ - "REQUIREMENTS_ATTRIBUTES_LEVELOFRISK" - ] - .mean() - .round(2) - ) + if pillar not in score_per_pillar: + score_per_pillar[pillar] = 0 + max_score_per_pillar[pillar] = 0 + + level_of_risk = pd.to_numeric( + row["REQUIREMENTS_ATTRIBUTES_LEVELOFRISK"], errors="coerce" + ) + level_of_risk = 1 if pd.isna(level_of_risk) else level_of_risk + + weight = 1 + if "REQUIREMENTS_ATTRIBUTES_WEIGHT" in row and not pd.isna( + row["REQUIREMENTS_ATTRIBUTES_WEIGHT"] + ): + weight = pd.to_numeric( + row["REQUIREMENTS_ATTRIBUTES_WEIGHT"], errors="coerce" + ) + weight = 1 if pd.isna(weight) else weight + + max_score_per_pillar[pillar] += level_of_risk * weight + + if row["STATUS"] == "PASS": + score_per_pillar[pillar] += level_of_risk * weight output = [] - for pillar, mean in pillar_means.items(): - output.append(f"{pillar} - [{mean}]") + for pillar in max_score_per_pillar: + risk_score = 0 + if max_score_per_pillar[pillar] > 0: + risk_score = (score_per_pillar[pillar] / max_score_per_pillar[pillar]) * 100 + + output.append(f"{pillar} - [{risk_score:.1f}%]") for value in output: - if value.split(" - ")[0] in df["REQUIREMENTS_ATTRIBUTES_SECTION"].values: + base_pillar = value.split(" - ")[0] + if base_pillar in df["REQUIREMENTS_ATTRIBUTES_SECTION"].values: df.loc[ - df["REQUIREMENTS_ATTRIBUTES_SECTION"] == value.split(" - ")[0], + df["REQUIREMENTS_ATTRIBUTES_SECTION"] == base_pillar, "REQUIREMENTS_ATTRIBUTES_SECTION", ] = value + return df def get_table_prowler_threatscore(df): - df = df[df["STATUS"] == "FAIL"] + score_per_pillar = {} + max_score_per_pillar = {} + pillars = {} - # Delete " - " from the column REQUIREMENTS_ATTRIBUTES_SECTION - df["REQUIREMENTS_ATTRIBUTES_SECTION"] = ( - df["REQUIREMENTS_ATTRIBUTES_SECTION"].str.split(" - ").str[0] - ) + df_copy = df.copy() - df["REQUIREMENTS_ATTRIBUTES_LEVELOFRISK"] = pd.to_numeric( - df["REQUIREMENTS_ATTRIBUTES_LEVELOFRISK"], errors="coerce" - ) - - score_df = ( - df.groupby("REQUIREMENTS_ATTRIBUTES_SECTION")[ - "REQUIREMENTS_ATTRIBUTES_LEVELOFRISK" - ] - .mean() - .reset_index() - .rename( - columns={ - "REQUIREMENTS_ATTRIBUTES_SECTION": "Pillar", - "REQUIREMENTS_ATTRIBUTES_LEVELOFRISK": "Score", - } + for _, row in df_copy.iterrows(): + pillar = ( + row["REQUIREMENTS_ATTRIBUTES_SECTION"].split(" - ")[0] + if isinstance(row["REQUIREMENTS_ATTRIBUTES_SECTION"], str) + else "Unknown" ) - ) + + if pillar not in pillars: + pillars[pillar] = {"FAIL": 0, "PASS": 0, "MUTED": 0} + score_per_pillar[pillar] = 0 + max_score_per_pillar[pillar] = 0 + + level_of_risk = pd.to_numeric( + row["REQUIREMENTS_ATTRIBUTES_LEVELOFRISK"], errors="coerce" + ) + level_of_risk = 1 if pd.isna(level_of_risk) else level_of_risk + + weight = 1 + if "REQUIREMENTS_ATTRIBUTES_WEIGHT" in row and not pd.isna( + row["REQUIREMENTS_ATTRIBUTES_WEIGHT"] + ): + weight = pd.to_numeric( + row["REQUIREMENTS_ATTRIBUTES_WEIGHT"], errors="coerce" + ) + weight = 1 if pd.isna(weight) else weight + + max_score_per_pillar[pillar] += level_of_risk * weight + + if row["STATUS"] == "PASS": + pillars[pillar]["PASS"] += 1 + score_per_pillar[pillar] += level_of_risk * weight + elif row["STATUS"] == "FAIL": + pillars[pillar]["FAIL"] += 1 + + if "MUTED" in row and row["MUTED"] == "True": + pillars[pillar]["MUTED"] += 1 + + result_df = [] + + for pillar in pillars.keys(): + risk_score = 0 + if max_score_per_pillar[pillar] > 0: + risk_score = (score_per_pillar[pillar] / max_score_per_pillar[pillar]) * 100 + + result_df.append({"Pillar": pillar, "Score": risk_score}) + + score_df = pd.DataFrame(result_df) + + score_df = score_df.sort_values("Score", ascending=True) fig = px.bar( score_df, @@ -710,22 +766,25 @@ def get_table_prowler_threatscore(df): y="Score", color="Score", color_continuous_scale=[ - "#45cc6e", - "#f4d44d", "#e77676", - ], # verde → amarillo → rojo - hover_data={"Score": True, "Pillar": True}, - labels={"Score": "Average Risk Score", "Pillar": "Section"}, + "#f4d44d", + "#45cc6e", + ], + labels={"Score": "Risk Score (%)", "Pillar": "Section"}, height=400, + text="Score", ) + fig.update_traces(texttemplate="%{text:.1f}%", textposition="outside") + fig.update_layout( xaxis_title="Pillar", - yaxis_title="Level of Risk", + yaxis_title="Risk Score (%)", margin=dict(l=20, r=20, t=30, b=20), plot_bgcolor="rgba(0,0,0,0)", paper_bgcolor="rgba(0,0,0,0)", - coloraxis_colorbar=dict(title="Risk"), + coloraxis_colorbar=dict(title="Risk %"), + yaxis=dict(range=[0, 110]), ) return dcc.Graph( diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 0f67503e13..7836182c3a 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -7,6 +7,7 @@ All notable changes to the **Prowler SDK** are documented in this file. ### Added - Add CIS 1.11 compliance framework for Kubernetes. [(#7790)](https://github.com/prowler-cloud/prowler/pull/7790) - Support `HTTPS_PROXY` and `K8S_SKIP_TLS_VERIFY` in Kubernetes. [(#7720)](https://github.com/prowler-cloud/prowler/pull/7720) +- Add Weight for Prowler ThreatScore scoring. [(7795)](https://github.com/prowler-cloud/prowler/pull/7795) - Add new check `entra_users_mfa_capable` for M365 provider. [(#7734)](https://github.com/prowler-cloud/prowler/pull/7734) - Add new check `admincenter_organization_customer_lockbox_enabled` for M365 provider. [(#7732)](https://github.com/prowler-cloud/prowler/pull/7732) - Add new check `admincenter_external_calendar_sharing_disabled` for M365 provider. [(#7733)](https://github.com/prowler-cloud/prowler/pull/7733) diff --git a/prowler/compliance/aws/prowler_threatscore_aws.json b/prowler/compliance/aws/prowler_threatscore_aws.json index c53b7e1590..8ef5d24b93 100644 --- a/prowler/compliance/aws/prowler_threatscore_aws.json +++ b/prowler/compliance/aws/prowler_threatscore_aws.json @@ -17,7 +17,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.", "AdditionalInformation": "Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -34,7 +35,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.", "AdditionalInformation": "A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -51,7 +53,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "To enhance security and reduce the risk of unauthorized access, Multi-Factor Authentication (MFA) should be enabled for all IAM users who have access to the AWS Management Console.", "AdditionalInformation": "Without Multi-Factor Authentication (MFA), a compromised password alone is enough to allow an attacker to access the console, gaining full visibility and control over AWS resources.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -68,7 +71,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Password policies help enforce password complexity requirements to strengthen account security. In AWS IAM, password policies can be configured to ensure that user passwords meet specific criteria, including a minimum length requirement. It is recommended to enforce a minimum password length of 14 characters to enhance security.", "AdditionalInformation": "Requiring longer and more complex passwords reduces the risk of compromise from brute force attacks, credential stuffing, and other password-based threats. A 14-character minimum makes it significantly harder for attackers to guess or crack passwords, improving overall account security and resilience.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -85,7 +89,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "IAM password policies can be configured to prevent users from reusing previous passwords. This ensures that users create new, unique passwords instead of cycling through old ones. It is recommended to enforce password history restrictions to enhance security.", "AdditionalInformation": "Blocking password reuse helps mitigate the risk of credential-based attacks, such as brute force and credential stuffing. It prevents users from reverting to previously compromised passwords, reducing the likelihood of unauthorized access.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -102,7 +107,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Password policies help enforce password complexity requirements to strengthen account security. In AWS IAM, password policies can be configured to ensure that user passwords meet specific criteria, including using at least number as requirement. It is recommended to enforce the usage of one number to enhance security.", "AdditionalInformation": "Requiring more complex passwords reduces the risk of compromise from brute force attacks, credential stuffing, and other password-based threats. Using a number at least makes it significantly harder for attackers to guess or crack passwords, improving overall account security and resilience.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -119,7 +125,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "IAM password policies can be configured to enforce the use of at least one special character (symbol) in user passwords. Special characters (e.g., @, #, $, %) add complexity, making passwords harder to guess or crack. It is recommended to require at least one symbol in IAM passwords to enhance security.", "AdditionalInformation": "Requiring a symbol in passwords increases entropy, making brute-force and dictionary attacks more difficult. Attackers often rely on common or predictable password patterns, and enforcing special characters helps reduce the effectiveness of such attacks. This policy strengthens overall password security and aligns with industry best practices.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -136,7 +143,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "IAM password policies can be configured to enforce the use of at least one lowercase letter in user passwords. Including lowercase letters increases password complexity, making them more resistant to brute-force and dictionary attacks. It is recommended to require at least one lowercase letter in IAM passwords to strengthen security.", "AdditionalInformation": "Requiring at least one lowercase letter ensures that passwords are not composed solely of numbers or uppercase letters, which are easier to guess. Attackers often use wordlists and predictable patterns when attempting to crack passwords. By enforcing lowercase letters, password complexity improves, reducing the likelihood of unauthorized access.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -153,7 +161,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "IAM password policies can be configured to enforce the use of at least one uppercase letter in user passwords. Including uppercase letters increases password complexity, making them more resilient to brute-force and dictionary attacks. It is recommended to require at least one uppercase letter in IAM passwords to enhance security.", "AdditionalInformation": "Requiring at least one uppercase letter ensures that passwords are not composed solely of lowercase letters or numbers, which are more predictable and easier to crack. Attackers often rely on common word variations in password attacks, and enforcing uppercase letters adds an additional layer of complexity, reducing the risk of unauthorized access.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -171,7 +180,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "AWS IAM users can authenticate and access AWS resources using various types of credentials, including passwords and access keys. To minimize security risks, it is recommended to deactivate or remove any credentials that have been unused for 45 days or more.", "AdditionalInformation": "Disabling or removing inactive credentials reduces the attack surface and prevents unauthorized access through compromised or forgotten credentials. Unused credentials pose a security risk, as attackers may exploit them if they remain active without regular monitoring. Regularly auditing and revoking stale credentials enhances overall account security.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -188,7 +198,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Access keys consist of an access key ID and a secret access key, which are used to authenticate and sign programmatic requests made to AWS. These keys allow users and applications to interact with AWS services via the AWS Command Line Interface (CLI), AWS SDKs, PowerShell tools, or direct API calls. To maintain security, it is recommended that all access keys be rotated regularly to minimize the risk of unauthorized access.", "AdditionalInformation": "Regularly rotating access keys reduces the risk of compromised credentials being exploited. If an access key is leaked, cracked, or stolen, rotating it limits the window of opportunity for malicious use. Additionally, rotating keys ensures that inactive or outdated credentials cannot be used for unauthorized access, enhancing overall security and compliance.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -205,7 +216,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "IAM password policies can be configured to enforce password expiration after a defined period. It is recommended that passwords be set to expire within 90 days or less to ensure users regularly update their credentials. This helps mitigate security risks associated with stale or compromised passwords that remain active for extended periods.", "AdditionalInformation": "Requiring password expiration within 90 days or less reduces the risk of credential-based attacks, such as brute-force attacks and credential stuffing, by ensuring that old passwords cannot be used indefinitely. If a password has been exposed or compromised without detection, regular expiration limits the window of opportunity for an attacker to exploit it. This policy enforces stronger access control and aligns with industry security best practices.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -222,7 +234,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "The root account in AWS has unrestricted administrative privileges and should be protected with the highest security measures. Access keys provide programmatic access to AWS, but when linked to the root account, they pose a significant security risk. It is recommended that no access keys be associated with the root account, ensuring that all programmatic access is managed through IAM roles and users with least privilege access.", "AdditionalInformation": "The root account holds the highest level of privileges in an AWS environment. AWS Access Keys enable programmatic access to AWS resources, but when associated with the root account, they pose a significant security risk. It is recommended to remove all access keys linked to the root account to minimize potential attack vectors. Eliminating root access keys reduces the risk of unauthorized access and enforces the use of role-based IAM accounts with least privilege, promoting a more secure and controlled access management approach.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -239,7 +252,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "IAM policies define permissions that control access to AWS resources. To ensure scalability, security, and manageability, it is recommended that IAM policies be attached only to groups or roles rather than individual users. By assigning permissions at the group or role level, organizations can apply consistent security policies and avoid permission sprawl.", "AdditionalInformation": "Attaching policies to groups or roles simplifies access control, reduces security risks, and improves compliance tracking. This approach prevents overprivileged accounts and ensures a structured, scalable IAM policy framework.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -256,7 +270,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "IAM users gain access to AWS services, functions, and data through IAM policies. There are four ways to assign policies to a user: 1.Inline (User-Specific) Policy – Editing the policy directly within the user’s profile.2.Directly Attached Policy – Assigning a standalone policy to a user.3.Group-Based Policy (Recommended) – Adding the user to an IAM group with an attached policy. 4.Group with Inline Policy – Assigning an inline policy to a group that includes the user.Among these methods, only the third approach (group-based policies) is recommended for security and manageability.", "AdditionalInformation": "Managing IAM permissions exclusively through groups ensures consistent, scalable, and role-based access control. This approach reduces the risk of excessive privileges, simplifies auditing, and aligns user permissions with organizational roles.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -274,7 +289,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "IAM policies define permissions for users, groups, and roles, controlling access to AWS resources. Following the principle of least privilege, users should be granted only the permissions necessary to perform their tasks. Instead of assigning broad administrative privileges, permissions should be carefully crafted to allow only the required actions.", "AdditionalInformation": "Starting with minimal permissions and granting additional access as needed is significantly more secure than providing excessive permissions and attempting to restrict them later. Assigning full administrative privileges increases the risk of unauthorized or accidental actions that could compromise AWS resources. IAM policies containing Effect: Allow, Action: , Resource: should be removed to prevent unrestricted access and enforce security best practices.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -291,7 +307,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "AWS offers a Support Center for incident notification, response, technical support, and customer service assistance. To ensure secure and controlled access, an IAM role should be created with a properly assigned policy, allowing only authorized users to manage incidents with AWS Support.", "AdditionalInformation": "Implementing least privilege access control ensures that only designated users can interact with AWS Support. Assigning an IAM role with a specific policy limits access to only necessary actions, reducing the risk of unauthorized modifications or exposure of sensitive account information.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -308,7 +325,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "AWS instances can access AWS resources either by embedding access keys in API calls or by assigning an IAM role with the necessary permissions. Using IAM roles ensures secure, controlled access without hardcoding credentials.", "AdditionalInformation": "IAM roles eliminate the risks associated with hardcoded credentials, reducing exposure to external threats. Unlike access keys, which can be used outside AWS if compromised, IAM roles require an attacker to maintain control of an instance to exploit privileges. Additionally, IAM roles simplify credential management by ensuring permissions are automatically updated without the need for manual key rotation.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -325,7 +343,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "To enable HTTPS connections for applications and websites hosted on AWS, an SSL/TLS server certificate is required. AWS provides two options for managing certificates: AWS Certificate Manager (ACM) – The preferred method for managing SSL/TLS certificates, automating renewals and deployment. IAM Certificate Storage – Used only when deploying SSL/TLS certificates in regions not supported by ACM. IAM securely encrypts private keys and stores them, but certificates must be obtained from an external provider. ACM certificates cannot be uploaded to IAM, and IAM certificates cannot be managed from the IAM Console.", "AdditionalInformation": "Removing expired SSL/TLS certificates prevents the accidental deployment of invalid certificates, which could cause service disruptions, security warnings, and loss of credibility for applications using AWS services like Elastic Load Balancer (ELB). As a best practice, expired certificates should be deleted to maintain a secure and trusted application environment.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -342,7 +361,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "The root account in AWS has unrestricted administrative privileges and should be used only for initial account setup and emergency scenarios. Regular operations should be performed using IAM users or roles with least privilege access to minimize security risks.", "AdditionalInformation": "Using the root account increases the risk of unauthorized access, accidental misconfigurations, and privilege misuse. By restricting root account usage and delegating tasks to IAM users or roles, organizations can enforce better access control, auditing, and security best practices.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -359,7 +379,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Enable IAM Access Analyzer for all AWS regions to monitor IAM policies and identify resources with unintended external access. IAM Access Analyzer, introduced at AWS re:Invent 2019, scans resource-based policies and provides visibility into which resources—such as KMS keys, IAM roles, S3 buckets, Lambda functions, and SQS queues—are accessible by external accounts or federated users. This allows administrators to enforce least privilege access and mitigate unauthorized access risks. IAM Access Analyzer operates within the same AWS region as the resources being analyzed.", "AdditionalInformation": "IAM Access Analyzer enhances security visibility by detecting AWS resources shared with external entities, helping organizations identify potential security risks and ensure compliance with least privilege principles. It continuously evaluates resource-based policies using logic-based analysis, allowing teams to promptly remediate misconfigurations that could lead to unauthorized access or data exposure.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -376,7 +397,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "In multi-account AWS environments, centralizing IAM user management improves control, security, and access management efficiency. Instead of creating separate IAM users in each account, access should be managed through role assumption. This can be achieved using AWS Organizations or federation with an external identity provider (e.g., AWS IAM Identity Center, Okta, or Active Directory).", "AdditionalInformation": "Centralizing IAM user management into a single identity store simplifies administration, reduces the risk of access misconfigurations, and enforces consistent security policies across all accounts. This approach enhances security, scalability, and compliance while minimizing user duplication and permission errors.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -393,7 +415,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "AWS CloudShell provides a managed command-line interface (CLI) for interacting with AWS services. The AWSCloudShellFullAccess IAM policy grants full access to CloudShell, including file upload and download capabilities between a user’s local system and the CloudShell environment. Within CloudShell, users have sudo privileges and unrestricted internet access, making it possible to install software—such as file transfer tools—that could facilitate data movement to external servers.", "AdditionalInformation": "Access to AWSCloudShellFullAccess should be restricted, as it can serve as a potential data exfiltration vector for malicious or compromised cloud administrators. Granting full permissions to CloudShell increases the risk of unauthorized data transfers outside the AWS environment. AWS provides guidance on creating more restrictive IAM policies to limit file transfer capabilities, reducing security risks.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -410,7 +433,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "IAM inline policies define permissions directly attached to users, groups, or roles, rather than being managed as standalone policies. If improperly configured, these policies can grant actions that enable privilege escalation, allowing users to elevate their access beyond intended permissions. Privilege escalation can occur through misconfigured IAM roles, excessive permissions, or indirect access paths, potentially leading to unauthorized control over AWS resources.", "AdditionalInformation": "Users with some IAM permissions are allowed to elevate their privileges up to administrator rights.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -427,7 +451,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "Amazon S3 bucket permissions can be configured using a bucket policy to enforce access restrictions. To enhance security, objects within the bucket should be made accessible only via HTTPS, ensuring encrypted data transmission.", "AdditionalInformation": "By default, Amazon S3 accepts both HTTP and HTTPS requests, which can expose data to interception. To enforce secure access, HTTP requests should be explicitly denied in the bucket policy. Simply allowing HTTPS without blocking HTTP does not fully comply with security best practices, as unencrypted requests may still be accepted.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -444,7 +469,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "AWS EC2 instances allow users to choose between Instance Metadata Service Version 1 (IMDSv1), which uses a request/response model, or Instance Metadata Service Version 2 (IMDSv2), which uses a session-based approach for enhanced security", "AdditionalInformation": "Instance metadata refers to the data about an EC2 instance, such as host names, events, and security groups, that is used for managing and configuring the instance. When enabling the Metadata Service, users can opt for either IMDSv1, which operates via a simple request/response model, or IMDSv2, which implements session authentication for additional security. With IMDSv2, each request is secured by session-based authentication, ensuring that all interactions with the instance's metadata and credentials are protected. IMDSv1, on the other hand, may expose instances to Server-Side Request Forgery (SSRF) attacks. To improve security, Amazon recommends using IMDSv2", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -461,7 +487,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Enabling MFA Delete on a sensitive or classified Amazon S3 bucket adds an extra layer of protection by requiring two-factor authentication for critical actions, such as deleting object versions or changing the bucket’s versioning state.", "AdditionalInformation": "MFA Delete helps prevent accidental or malicious deletions by requiring an additional authentication step. This mitigates the risk of data loss due to compromised credentials or unauthorized access, ensuring that critical objects remain protected.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -478,7 +505,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon S3 buckets may store sensitive data that needs to be discovered, classified, monitored, and protected to maintain security and compliance. Amazon Macie, along with third-party tools, can automatically inventory S3 buckets and identify sensitive data at scale.", "AdditionalInformation": "Using automated data discovery and classification tools, such as Amazon Macie, enhances security by continuously monitoring S3 buckets for sensitive information. Macie leverages machine learning and pattern matching to detect and protect critical data, reducing the risk of data leaks and unauthorized access.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -495,7 +523,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Each Amazon VPC includes a default security group that initially denies all inbound traffic, allows all outbound traffic, and permits unrestricted communication between instances within the group. If no security group is specified when launching an instance, it is automatically assigned to this default security group. Since security groups control stateful ingress and egress traffic, it is recommended to restrict all inbound and outbound traffic in the default security group.", "AdditionalInformation": "Restricting all traffic in the default security group enforces least privilege access by ensuring that AWS resources are explicitly assigned to well-defined security groups. This approach reduces unintended exposure, improves network segmentation, and promotes secure resource placement within AWS environments.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -512,7 +541,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "After establishing a VPC peering connection, routing tables must be updated to enable communication between the peered VPCs. Routes can be configured with granular specificity, allowing connections to be restricted to a single host or a specific subnet within the peered VPC.", "AdditionalInformation": "Defining highly specific routes in VPC peering connections enhances security by limiting access to only the necessary resources. This minimizes the potential impact of a security breach, ensuring that resources outside the defined routes remain inaccessible, reducing the risk of lateral movement within the network.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -531,7 +561,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Network Access Control Lists (NACLs) provide stateless filtering of ingress and egress traffic to AWS resources. It is recommended that NACLs do not allow unrestricted inbound access to remote administration ports, such as SSH (port 22) and RDP (port 3389), over TCP (6), UDP (17), or ALL (-1) protocols to prevent unauthorized access.", "AdditionalInformation": "Exposing remote server administration ports (e.g., SSH on 22 and RDP on 3389) to the public internet increases the attack surface, making resources more vulnerable to brute-force attacks and unauthorized access. Restricting inbound access to these ports helps reduce security risks and limit potential exploitation.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -550,7 +581,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Security groups enforce stateful filtering of ingress and egress traffic to AWS resources. To enhance security, no security group should allow unrestricted inbound access to remote administration ports, such as SSH (port 22) and RDP (port 3389), over TCP (6), UDP (17), or ALL (-1) protocols.", "AdditionalInformation": "Exposing remote administration ports to the public internet significantly increases the attack surface, making resources more vulnerable to brute-force attacks, exploitation, and unauthorized access. Restricting ingress traffic to these ports helps reduce security risks and prevent potential system compromises.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -567,7 +599,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon Elastic Block Store (EBS) snapshots contain backups of EC2 volumes, which may include sensitive data such as credentials, application configurations, or customer information. EBS snapshots should never be publicly accessible to prevent unauthorized access and data exposure. By default, snapshots are private, but they can be manually shared with other AWS accounts or made public, which poses a significant security risk if misconfigured.", "AdditionalInformation": "Exposing EBS snapshots publicly increases the risk of data breaches, unauthorized access, and compliance violations. Attackers can scan for publicly accessible snapshots and extract sensitive information. To prevent data leaks, snapshots should be restricted to specific AWS accounts or kept private unless explicitly needed for sharing. Implementing proper access controls helps protect critical data and maintain compliance with security best practices.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -584,7 +617,8 @@ "SubSection": "4.2 At-Rest", "AttributeDescription": "Amazon Elastic Compute Cloud (EC2) supports encryption at rest for Elastic Block Store (EBS) volumes, ensuring that stored data remains protected. While EBS encryption is disabled by default, organizations can enforce automatic encryption of newly created volumes to enhance data security and compliance.", "AdditionalInformation": "Enforcing EBS volume encryption reduces the risk of data exposure, unauthorized access, and compliance violations. If encryption remains intact, even if storage is compromised, data remains unreadable to unauthorized users. Encrypting data at rest ensures that sensitive information is protected against accidental disclosure, insider threats, and external attacks.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -601,7 +635,8 @@ "SubSection": "4.2 At-Rest", "AttributeDescription": "Amazon Relational Database Service (RDS) supports encryption at rest using the industry-standard AES-256 encryption algorithm to secure database instances and their associated storage. Once enabled, RDS encryption automatically handles access authentication and decryption, ensuring secure data storage with minimal performance impact.", "AdditionalInformation": "Databases often contain sensitive and business-critical information, making encryption essential to protect against unauthorized access and data breaches. Enabling RDS encryption ensures that underlying storage, automated backups, read replicas, and snapshots are all encrypted, preventing accidental or malicious data exposure while maintaining compliance with security best practices.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -618,7 +653,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon Simple Notification Service (SNS) topics enable messaging between AWS services, applications, and users. By default, SNS topics should be restricted to trusted AWS accounts or IAM roles to prevent unauthorized access. Allowing global send (sns:Publish) or subscribe (sns:Subscribe) permissions means any AWS account or unauthenticated entity could send messages or subscribe to the topic, potentially leading to spam, data leaks, or misuse of notifications.", "AdditionalInformation": "SNS topics with global send or subscribe permissions expose AWS environments to unauthorized message injection, data exfiltration, and Denial-of-Service (DoS) attacks. An attacker could flood an SNS topic with malicious or fraudulent messages, leading to unexpected charges or service disruptions. Restricting access ensures that only authorized AWS accounts, applications, or IAM roles can send and receive messages, reducing security risks and protecting system integrity.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -635,7 +671,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon Relational Database Service (RDS) snapshots store backups of database instances, potentially containing sensitive data such as customer records, credentials, and application configurations. By default, RDS snapshots are private, but they can be shared with other AWS accounts or made public, which can lead to data exposure if misconfigured. To prevent unauthorized access, RDS snapshots should never be publicly accessible unless explicitly required and secured.", "AdditionalInformation": "Publicly accessible RDS snapshots create a serious security risk, as anyone can copy the snapshot and restore the database, exposing sensitive information. Attackers actively scan for publicly available snapshots to extract credentials, personally identifiable information (PII), or business-critical data. To prevent unauthorized access and data leaks, RDS snapshots should remain private or restricted to trusted AWS accounts following the principle of least privilege.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -652,7 +689,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "AWS CloudTrail logs record account activity, including API calls, user actions, and resource modifications, making them critical for security monitoring and compliance auditing. These logs are typically stored in an Amazon S3 bucket for long-term retention and analysis. To protect sensitive security data, the S3 bucket storing CloudTrail logs should never be publicly accessible.", "AdditionalInformation": "If the S3 bucket containing CloudTrail logs is publicly accessible, unauthorized users could access sensitive security information, including API calls, IAM activity, and infrastructure changes. Exposing CloudTrail logs can help attackers reconstruct system activity, identify vulnerabilities, and plan targeted attacks. To prevent data leaks and unauthorized access, CloudTrail log buckets should be restricted using IAM policies, bucket policies, and S3 Block Public Access settings.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -669,7 +707,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon Redshift clusters store and process large-scale data for analytics and business intelligence workloads. By default, Redshift clusters can be configured with a public endpoint, making them accessible from the internet. To minimize security risks, Redshift clusters should be restricted to private networks and should not have a public endpoint unless absolutely necessary and properly secured.", "AdditionalInformation": "Exposing a Redshift cluster to the public internet increases the risk of unauthorized access, data breaches, and cyberattacks. Attackers could attempt brute-force login attempts, exploit misconfigurations, or access sensitive business data. Keeping Redshift clusters within private subnets and restricting access via security groups, VPC settings, and IAM policies ensures that only trusted networks and users can connect, reducing the attack surface and enhancing data security.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -686,7 +725,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "AWS API Gateway allows developers to create, deploy, and manage APIs that connect applications to backend services. By default, API Gateway endpoints can be publicly accessible, meaning they can be invoked from anywhere on the internet. To enhance security, API Gateway endpoints should be restricted to private networks using VPC links, private API settings, or access control mechanisms to ensure that only authorized entities can interact with the API.", "AdditionalInformation": "Publicly accessible API Gateway endpoints can expose backend services to unauthorized access, data leaks, and potential exploitation. Attackers may attempt brute-force authentication, injection attacks, or abuse API functionality if access is not properly restricted. To reduce the attack surface, API Gateway endpoints should be limited to internal use or protected with authentication, IAM permissions, WAF rules, or private VPC access to ensure only trusted users and systems can invoke the API.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -703,7 +743,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon EC2 instances launched via Auto Scaling groups can automatically scale workloads based on demand. By default, instances can be assigned public IP addresses, making them accessible from the internet. To enhance security, EC2 instances in Auto Scaling group launch configurations should not have public IP addresses, ensuring they remain within a private network and are only accessible through secure channels such as bastion hosts or VPN connections.", "AdditionalInformation": "Assigning public IP addresses to Auto Scaling group instances increases the risk of unauthorized access, brute-force attacks, and potential exploitation. Publicly accessible instances can become targets for malicious actors, leading to data breaches or service disruptions. By restricting public IP addresses, organizations can enforce network segmentation, ensuring that EC2 instances are accessed securely via private networks, VPNs, or load balancers.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -720,7 +761,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "AWS Lambda functions allow running code without managing servers. Lambda supports resource-based policies that define who can invoke the function. If a Lambda function’s resource-based policy allows public access, it can be triggered by anyone on the internet, posing a significant security risk. To prevent unauthorized execution, Lambda functions should not be publicly accessible unless explicitly required and properly secured.", "AdditionalInformation": "Publicly accessible Lambda functions can be abused for unauthorized execution, leading to service disruptions, data exfiltration, or increased AWS costs due to excessive invocations. Attackers could exploit misconfigured functions to perform malicious actions, extract sensitive data, or abuse compute resources. To reduce security risks, Lambda functions should only be accessible to specific IAM roles, AWS services, or trusted accounts, enforcing least privilege access and maintaining secure function execution.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -737,7 +779,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "AWS Lambda function URLs provide a built-in HTTPS endpoint that allows functions to be invoked directly via HTTP requests. By default, Lambda function URLs can be publicly accessible, meaning anyone on the internet can invoke the function if proper access controls are not enforced. To minimize security risks, Lambda function URLs should not be publicly accessible unless explicitly required and properly restricted.", "AdditionalInformation": "Exposing Lambda function URLs to the public internet increases the risk of unauthorized access, API abuse, and potential exploitation. Attackers may invoke functions maliciously, leading to data leaks, unauthorized operations, increased costs, or denial-of-service (DoS) attacks. To enhance security, Lambda function URLs should be restricted to specific IAM roles, AWS services, or trusted clients, ensuring that only authorized users can trigger the function.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -754,7 +797,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "AWS Database Migration Service (DMS) instances facilitate data migration between databases across on-premises and cloud environments. By default, DMS instances can be configured with publicly accessible endpoints, making them reachable from the internet. To enhance security and prevent unauthorized access, DMS instances should not be publicly accessible unless explicitly required and properly secured.", "AdditionalInformation": "Publicly accessible DMS instances increase the risk of unauthorized access, data interception, and potential exploitation. Attackers could target exposed instances to steal or manipulate sensitive data during migration. Restricting public access ensures data migrations remain secure, limiting access to trusted networks, private VPCs, and authorized IAM roles, thereby reducing the attack surface and ensuring compliance with security best practices.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -771,7 +815,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "AWS DocumentDB manual cluster snapshots store backups of DocumentDB clusters, containing sensitive database information such as application data, configurations, and credentials. By default, snapshots are private, but they can be manually shared or made public, which poses a significant security risk. To prevent unauthorized access, DocumentDB manual cluster snapshots should never be publicly accessible unless explicitly required and properly secured.", "AdditionalInformation": "Publicly accessible DocumentDB snapshots expose critical database information, increasing the risk of data breaches, unauthorized access, and compliance violations. Attackers could restore the snapshot in their own AWS account and gain full access to the database content. To protect sensitive data, DocumentDB snapshots should only be shared with specific AWS accounts or remain private, following least privilege principles and AWS security best practices.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -788,7 +833,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon EC2 Amazon Machine Images (AMIs) contain pre-configured operating system and application environments that can be used to launch new EC2 instances. By default, AMIs are private, but they can be manually shared or made public, which poses a security risk if sensitive data or proprietary configurations are exposed. To prevent unauthorized access and data leaks, EC2 AMIs should not be set as public unless explicitly required and properly secured.", "AdditionalInformation": "Publicly accessible EC2 AMIs increase the risk of data exposure, unauthorized access, and compliance violations. Attackers could copy, analyze, or exploit public AMIs to extract sensitive credentials, misconfigurations, or proprietary software. Keeping AMIs private or shared only with specific AWS accounts ensures that only trusted users or teams can access and launch instances from them, reducing security risks and preventing unintended data exposure.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -805,7 +851,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon Elastic Block Store (EBS) snapshots are backups of EC2 volumes that may contain sensitive data, such as credentials, application configurations, and customer records. By default, EBS snapshots are private, but they can be manually shared or made public, allowing anyone to copy or restore them. To prevent unauthorized access and data exposure, public access to EBS snapshots should always be disabled.", "AdditionalInformation": "Publicly accessible EBS snapshots pose a significant security risk, as attackers can restore and extract sensitive data if a snapshot is exposed. Misconfigured public snapshots have led to data breaches and compliance violations in the past. To mitigate this risk, EBS snapshots should be kept private or explicitly shared only with trusted AWS accounts, following least privilege principles to protect critical data and maintain security compliance.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -838,7 +885,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Amazon EC2 instances can run various services that communicate over common ports such as 22 (SSH), 3389 (RDP), 80 (HTTP), and 443 (HTTPS) (and more). If these ports are open to the internet, attackers can attempt unauthorized access, brute-force attacks, or exploit known vulnerabilities. To reduce security risks, EC2 instances should be configured so that common ports are not exposed to the public internet, unless explicitly required and properly secured.", "AdditionalInformation": "Exposing common ports directly to the internet increases the attack surface and risks unauthorized access or system compromise. Attackers frequently scan for open ports to target misconfigured or unpatched services. To enhance security, access to EC2 common ports should be restricted using security groups, network ACLs, and VPC configurations, ensuring that only trusted networks and users can connect.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -869,7 +917,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Amazon EC2 security groups act as virtual firewalls, controlling inbound and outbound traffic to instances. If a security group allows ingress (incoming traffic) from the internet (0.0.0.0/0 or ::/0) to common ports such as 22 (SSH), 3389 (RDP), 80 (HTTP), or 443 (HTTPS) (and more), it creates a significant security risk. To minimize exposure, security groups should be configured to restrict ingress access to these ports to only trusted IP addresses or internal networks.", "AdditionalInformation": "Allowing unrestricted inbound traffic to common ports increases the risk of brute-force attacks, unauthorized access, and exploitation of vulnerabilities. Attackers actively scan for open ports on public-facing EC2 instances to gain unauthorized control. To reduce security risks, ingress rules should be restricted using least privilege principles, IP whitelisting, VPN access, or bastion hosts, ensuring that only authorized users and networks can connect.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -886,7 +935,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon Elastic Container Registry (ECR) repositories store and manage container images for deployment in AWS services. By default, ECR repositories are private, but they can be manually configured as public, allowing anyone to pull container images. To prevent unauthorized access and potential security risks, ECR repositories should not be set as public unless explicitly required and properly secured.", "AdditionalInformation": "Publicly accessible ECR repositories expose container images to unauthorized users, increasing the risk of intellectual property theft, malware injection, or unauthorized use of containerized applications. Attackers could analyze public images for vulnerabilities or use misconfigured images for malicious purposes. To mitigate this risk, ECR repositories should remain private or be explicitly shared with trusted AWS accounts, ensuring secure access and compliance with best practices.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -903,7 +953,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon Elastic Container Service (ECS) allows running containerized applications on AWS. By default, ECS services can be configured to assign public IP addresses to tasks or services, making them directly accessible from the internet. To enhance security, ECS services should be configured not to automatically assign public IPs, ensuring they remain within a private network and are accessed securely through internal load balancers, VPC peering, or private endpoints.", "AdditionalInformation": "Automatically assigning public IPs to ECS services exposes them to the internet, increasing the risk of unauthorized access, brute-force attacks, and data breaches. Attackers could target publicly exposed containers, exploit vulnerabilities, or disrupt services. To mitigate these risks, ECS services should be restricted to private subnets and accessed through secure networking configurations, such as AWS PrivateLink, VPNs, or internal ALBs.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -920,7 +971,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon Elastic Container Service (ECS) task sets manage multiple versions of a service during deployments. By default, ECS task sets can be configured to automatically assign public IP addresses, making them directly accessible from the internet. To enhance security, ECS task sets should be restricted to private subnets and should not automatically receive public IP addresses unless explicitly required and properly secured.", "AdditionalInformation": "Automatically assigning public IPs to ECS task sets increases the risk of unauthorized access, cyberattacks, and data exposure. Publicly exposed tasks can be targeted by attackers, leading to service disruptions or exploitation of vulnerabilities. To mitigate these risks, ECS task sets should be restricted to private networking environments, accessed only through internal load balancers, VPC endpoints, or secure VPN connections, ensuring controlled and secure communication.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -937,7 +989,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon Elastic File System (EFS) provides scalable, shared file storage for AWS services. EFS mount targets allow instances to connect to the file system within a VPC. By default, EFS mount targets can be configured with public accessibility, making them reachable from the internet. To enhance security, EFS mount targets should be restricted to private networks and should not be publicly accessible unless explicitly required and properly secured.", "AdditionalInformation": "Publicly accessible EFS mount targets expose stored data to unauthorized access, cyberattacks, and data breaches. Attackers could exploit misconfigured security groups or network ACLs to access or modify files. To reduce security risks, EFS mount targets should be restricted to private subnets, with access limited to trusted VPCs, security groups, and IAM roles, ensuring secure file storage and controlled access.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -954,7 +1007,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon Elastic File System (EFS) provides shared storage that can be accessed by multiple EC2 instances and services within a VPC. EFS access is controlled through resource-based policies that define which clients can connect. If an EFS policy allows access to any client within the VPC, it increases the risk of unauthorized access and data exposure. To enhance security, EFS policies should be restricted to specific IAM roles, security groups, or trusted resources instead of granting broad access to all VPC clients.", "AdditionalInformation": "Allowing any client within a VPC to access an EFS file system increases the risk of data leaks, accidental modifications, or unauthorized access by compromised instances or misconfigured services. To minimize exposure, EFS policies should enforce least privilege access, restricting permissions to specific instances, roles, or users that require access, ensuring secure file storage and controlled data access.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -971,7 +1025,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "A Network Policy defines how network traffic is controlled and restricted between workloads within a cloud environment. Enforcing network policies ensures that only authorized communication occurs between services, reducing the risk of unauthorized access and lateral movement. It is recommended to enable Network Policies and configure them appropriately to enforce least privilege access and secure communication between workloads.", "AdditionalInformation": "Without properly configured Network Policies, workloads may be exposed to unnecessary or unauthorized network traffic, increasing the risk of data leaks, exploitation, or lateral movement by attackers. By enabling and enforcing Network Policies, organizations can limit communication between workloads, ensuring that only approved and necessary network interactions are allowed, minimizing the attack surface and enhancing overall security.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -988,7 +1043,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Amazon Elastic Kubernetes Service (EKS) clusters manage containerized applications and can be configured with either private or public access. If an EKS cluster is publicly accessible, it means that the Kubernetes API endpoint can be reached from the internet, increasing the risk of unauthorized access and attacks. To enhance security, EKS clusters should be restricted to private networks and accessed only through secure VPNs, VPC peering, or AWS PrivateLink.", "AdditionalInformation": "Exposing an EKS cluster to the public internet increases the risk of brute-force attacks, credential theft, and unauthorized access to Kubernetes workloads. Attackers could exploit misconfigured RBAC policies or API vulnerabilities to gain control over the cluster. To reduce security risks, EKS clusters should be configured with private endpoints, ensuring that only trusted networks and IAM-authenticated users can manage Kubernetes resources.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1005,7 +1061,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Amazon Elastic Kubernetes Service (EKS) clusters run workloads on worker nodes, which can be either public or private. If EKS clusters are created with public nodes, these nodes are assigned public IP addresses, making them accessible from the internet, which increases the risk of unauthorized access and potential attacks. To enhance security, EKS clusters should be created with private nodes that operate within private subnets and are only accessible through secured networking configurations such as VPNs, VPC peering, or AWS PrivateLink.", "AdditionalInformation": "Using public nodes in EKS exposes Kubernetes workloads to the internet, increasing the risk of unauthorized access, lateral movement, and potential exploitation. Attackers can target misconfigured workloads, open services, or unsecured API endpoints. By creating EKS clusters with private nodes, organizations can restrict access, limit exposure to public threats, and enforce network segmentation, ensuring that workloads remain secure and isolated within a private VPC environment.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1022,7 +1079,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon ElastiCache provides in-memory caching services using Redis and Memcached. By default, ElastiCache clusters can be deployed in either public or private subnets. If an ElastiCache cluster is placed in a public subnet, it becomes accessible from the internet, which significantly increases the risk of unauthorized access and data breaches. To enhance security, ElastiCache clusters should only be deployed in private subnets, ensuring restricted access within a VPC.", "AdditionalInformation": "Deploying an ElastiCache cluster in a public subnet exposes it to external threats, such as unauthorized access, brute-force attacks, and potential data exfiltration. Attackers could exploit misconfigurations to access cached data or disrupt services. By restricting ElastiCache clusters to private subnets, organizations can limit access to trusted resources, enforce VPC security controls, and reduce the attack surface, ensuring secure and efficient caching operations.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1039,7 +1097,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon Elastic Load Balancers (ELBs) distribute incoming traffic across multiple targets, such as EC2 instances, containers, and Lambda functions. By default, ELBs can be configured as either internet-facing or internal (private). If an ELB is publicly accessible, it exposes backend services to the internet, increasing the risk of unauthorized access and attacks. To enhance security, ELBs should be restricted to private networks unless explicitly required and properly secured.", "AdditionalInformation": "Publicly accessible Elastic Load Balancers can serve as entry points for unauthorized traffic, brute-force attacks, and potential data breaches. Attackers may exploit misconfigured security groups, open ports, or exposed application endpoints behind the load balancer. To reduce security risks, ELBs should be configured as internal (private), allowing access only from trusted networks, VPNs, or specific VPCs, ensuring that backend services remain protected and isolated from external threats.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1056,7 +1115,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon Elastic MapReduce (EMR) is a managed big data processing service that can access S3, EC2, and other AWS resources. The EMR Account Public Access Block setting helps prevent public access to EMR resources, such as data stored in S3 buckets. If this setting is not enabled, there is a risk that EMR-related data and configurations could be exposed to the public, leading to unauthorized access or data breaches. To enhance security, the Public Access Block should be enabled for the EMR account.", "AdditionalInformation": "Allowing public access to EMR resources increases the risk of data leaks, unauthorized access, and compliance violations. Attackers could exploit misconfigured policies or publicly accessible S3 buckets to access sensitive data processed by EMR. Enabling EMR Account Public Access Block ensures that S3 data and other EMR-related resources cannot be accessed publicly, reducing exposure and maintaining strong access controls in AWS.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1073,7 +1133,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon Elastic MapReduce (EMR) is a managed service for processing big data workloads using Apache Spark, Hadoop, and other frameworks. By default, EMR clusters can be configured with public or private access. If an EMR cluster is publicly accessible, it exposes data processing nodes and services to the internet, increasing the risk of unauthorized access and potential exploitation. To enhance security, EMR clusters should only be deployed in private subnets and restricted to trusted networks.", "AdditionalInformation": "Publicly accessible EMR clusters increase the risk of data breaches, unauthorized access, and attacks on running workloads. Malicious actors could exploit misconfigured security groups, open ports, or weak authentication settings to compromise the cluster. To reduce exposure, EMR clusters should be placed in private subnets, restricted using VPC security controls, IAM permissions, and firewall rules, ensuring secure data processing and access management.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1090,7 +1151,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "AWS EventBridge is a serverless event bus service that enables communication between AWS services, third-party applications, and custom event sources. By default, EventBridge event buses can be configured to allow events from any AWS account or external source. If an event bus is exposed to everyone, unauthorized entities could send events to your environment, potentially leading to security risks, data injection attacks, or service disruptions. To enhance security, event buses should be restricted to specific AWS accounts, services, or trusted IAM roles.", "AdditionalInformation": "Allowing unrestricted access to an EventBridge event bus increases the risk of malicious event injection, unauthorized access, and data manipulation. Attackers could flood the event bus with malicious events, leading to unexpected behavior, security breaches, or excessive AWS costs. To reduce exposure, event buses should be secured using IAM policies and resource-based permissions, ensuring that only trusted AWS services and accounts can send or receive events.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1107,7 +1169,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon S3 Glacier provides low-cost, long-term storage for archival data. Glacier vaults can be configured with resource-based policies that control access. If a Glacier vault policy allows access to everyone, unauthorized users could retrieve or delete archived data, leading to data exposure or loss. To enhance security, Glacier vault policies should be restricted to specific AWS accounts, IAM roles, or trusted entities, ensuring only authorized users can access or manage archived data.", "AdditionalInformation": "Allowing public access to S3 Glacier vaults poses a significant security risk, increasing the chance of data breaches, unauthorized deletions, or compliance violations. Attackers could restore and download sensitive archived data if the vault is misconfigured. To prevent unauthorized access, Glacier vaults should have strict access controls, using IAM policies, encryption, and resource-based permissions, ensuring that only trusted users and systems can interact with archived data.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -1124,7 +1187,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "AWS Glue Data Catalog is a centralized metadata repository used to store and manage schema information for data lakes and analytics workflows. By default, Glue Data Catalogs can be configured to allow public access, which poses a significant security risk if sensitive metadata is exposed. To enhance security, Glue Data Catalogs should be restricted to specific AWS accounts, IAM roles, or trusted services, ensuring that only authorized users can access or modify catalog information.", "AdditionalInformation": "Allowing public access to Glue Data Catalogs increases the risk of unauthorized access, data leaks, and compliance violations. Attackers could gain insights into an organization’s data structure or modify catalog entries, leading to potential data corruption or unauthorized data exposure. To reduce security risks, Glue Data Catalogs should be secured using IAM policies, resource-based permissions, and AWS Lake Formation, ensuring that only trusted accounts and services can interact with metadata.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1141,7 +1205,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon Managed Streaming for Apache Kafka (MSK) allows organizations to build and manage real-time data streaming applications. If a Kafka cluster is publicly accessible, it exposes data streams, configurations, and messaging topics to the internet, increasing the risk of unauthorized access, data interception, and service disruptions. To enhance security, Kafka clusters should be restricted to private networks, ensuring that only trusted AWS resources, VPCs, and IAM-authenticated users can interact with the service.", "AdditionalInformation": "Exposing a Kafka cluster to the public internet creates significant security risks, including unauthorized data ingestion, data leaks, and message tampering. Attackers could consume, modify, or inject malicious data into Kafka topics, disrupting real-time analytics and application workflows. To mitigate these risks, Kafka clusters should be deployed in private subnets, with access restricted via VPC security groups, IAM policies, and AWS PrivateLink, ensuring secure and controlled data streaming.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1158,7 +1223,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "AWS Key Management Service (KMS) provides secure encryption key management for data encryption and cryptographic operations. If KMS keys are exposed to the internet, unauthorized entities could potentially use, modify, or compromise encryption keys, leading to data breaches and security vulnerabilities. To enhance security, KMS keys should be restricted to trusted AWS accounts, IAM roles, and specific AWS services, ensuring that only authorized users and systems can access and manage them.", "AdditionalInformation": "Exposing KMS keys to the public poses a critical security risk, as compromised keys can lead to unauthorized data decryption, loss of data integrity, and compliance violations. Attackers could potentially use public KMS keys to encrypt or decrypt sensitive data, undermining security controls. To prevent unauthorized access, KMS key policies should enforce strict access control using IAM permissions, VPC endpoint policies, and AWS PrivateLink, ensuring that encryption operations remain fully secured and isolated from the public internet.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1175,7 +1241,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "AWS Lightsail Databases provide managed database solutions for applications. If a Lightsail database is set to public mode, it is directly accessible from the internet, increasing the risk of unauthorized access and data breaches. To enhance security, Lightsail databases should be configured in private mode, ensuring they are accessible only from trusted instances, private networks, or VPN connections.", "AdditionalInformation": "Publicly accessible Lightsail databases expose sensitive data to unauthorized access, brute-force attacks, and potential exploitation. Attackers can attempt to compromise credentials, inject malicious queries, or exfiltrate data. To mitigate these risks, Lightsail databases should remain private, with access controlled through firewalls, IAM authentication, and private networking configurations, ensuring secure database connectivity and data protection.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1192,7 +1259,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "AWS Lightsail instances provide a simple way to deploy and manage cloud-based virtual machines. If a Lightsail instance is publicly accessible, it can be directly reached from the internet, increasing the risk of unauthorized access, attacks, and data breaches. To enhance security, Lightsail instances should be restricted to private access, ensuring they are reachable only through secure connections, such as VPNs, bastion hosts, or private networking configurations.", "AdditionalInformation": "Publicly exposed Lightsail instances create a larger attack surface, making them vulnerable to brute-force attacks, unauthorized access, and exploitation of software vulnerabilities. Attackers could compromise credentials, gain control over the instance, or disrupt services. To mitigate these risks, Lightsail instances should be secured using firewalls, private IP configurations, security group restrictions, and IAM-based access controls, ensuring that only trusted users and networks can connect.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1209,7 +1277,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "AWS MQ brokers manage message queues for applications, facilitating secure and reliable communication between distributed services. If an MQ broker is publicly accessible, it can be reached from the internet, increasing the risk of unauthorized access, message interception, and data breaches. To enhance security, MQ brokers should be restricted to private networks, ensuring they are accessible only from trusted VPCs, private endpoints, or secure VPN connections.", "AdditionalInformation": "Publicly exposed MQ brokers pose a significant security risk, as attackers can attempt to intercept messages, inject malicious data, or disrupt message delivery. This could lead to data manipulation, unauthorized access to sensitive information, and system-wide outages. To mitigate these risks, MQ brokers should be configured within private subnets, with access restricted using security groups, IAM policies, and VPC endpoint controls, ensuring secure and controlled message queue operations.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1226,7 +1295,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon NeptuneDB manual cluster snapshots store backups of graph database clusters, containing sensitive data such as relationships, metadata, and application configurations. By default, NeptuneDB snapshots are private, but they can be manually shared or made public, which can expose critical database information. To enhance security, NeptuneDB manual snapshots should never be publicly accessible, ensuring they are only shared with trusted AWS accounts when necessary.", "AdditionalInformation": "Publicly accessible NeptuneDB snapshots pose a significant security risk, as attackers could restore the snapshot in their own AWS account and gain full access to the database contents. This could lead to data leaks, compliance violations, and unauthorized access to sensitive business information. To prevent data exposure, NeptuneDB snapshots should be restricted using IAM policies and AWS resource-based permissions, ensuring that only authorized users and services can access and manage database backups securely.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -1243,7 +1313,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon Neptune clusters provide a fully managed graph database service designed for applications requiring complex relationship queries. By default, Neptune clusters can be deployed in either public or private subnets. If a Neptune cluster is placed in a public subnet, it becomes accessible from the internet, significantly increasing the risk of unauthorized access and data breaches. To enhance security, Neptune clusters should only be deployed in private subnets, ensuring access is restricted to trusted VPCs, IAM roles, and security group configurations.", "AdditionalInformation": "Deploying a Neptune cluster in a public subnet exposes the database endpoints to external threats, making them vulnerable to brute-force attacks, unauthorized queries, and data exfiltration. Attackers could exploit misconfigurations to gain access to sensitive graph data, leading to potential compliance violations and security incidents. To reduce exposure, Neptune clusters should be restricted to private subnets, with access controlled through VPC security groups, IAM authentication, and private endpoint configurations, ensuring secure database operations and protected data access.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1260,7 +1331,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon OpenSearch (formerly Elasticsearch) domains provide search, analytics, and log management capabilities for applications. If an OpenSearch/Elasticsearch domain is publicly accessible, it can be reached from the internet, exposing sensitive data and administrative controls to unauthorized users. To enhance security, OpenSearch domains should be restricted to private networks, ensuring access is limited to trusted VPCs, IAM roles, or specific security group rules.", "AdditionalInformation": "Publicly accessible OpenSearch/Elasticsearch domains pose a significant security risk, as attackers could execute unauthorized queries, modify data, or gain administrative control over the cluster. This could lead to data breaches, service disruptions, and compliance violations. To mitigate these risks, OpenSearch domains should be deployed in private subnets, with access controlled using VPC restrictions, fine-grained access control (FGAC), IAM policies, and security group rules, ensuring secure and isolated search and analytics operations.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -1277,7 +1349,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon S3 buckets store and manage data, files, and application assets. Bucket policies control access permissions, and if an S3 bucket has a policy that allows WRITE access to everyone, unauthorized users can upload, modify, or delete objects, leading to data tampering, security breaches, or service disruptions. To enhance security, S3 bucket policies should be restricted to specific AWS accounts, IAM roles, or trusted services, ensuring only authorized users have WRITE permissions.", "AdditionalInformation": "Allowing unrestricted WRITE access to an S3 bucket increases the risk of unauthorized modifications, data injection attacks, and accidental data loss. Attackers could upload malicious files, delete critical data, or overwrite important configurations. To prevent unauthorized changes, S3 bucket policies should explicitly deny public WRITE access, enforce least privilege access control, and use AWS Block Public Access settings to ensure secure and controlled data storage.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1294,7 +1367,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon S3 buckets store sensitive data and should have restricted access permissions. If an S3 bucket is listable by Everyone or Any AWS customer, unauthorized users can enumerate the objects within the bucket, potentially exposing sensitive information such as filenames, metadata, or even public datasets. To enhance security, S3 bucket permissions should be configured to restrict LIST access to only authorized IAM roles, AWS accounts, or specific services.", "AdditionalInformation": "Allowing public or AWS-wide LIST access increases the risk of data enumeration, unauthorized access, and information leaks. Attackers or unauthorized users could identify and analyze stored files, extract metadata, or infer sensitive data. To mitigate this risk, S3 bucket policies should explicitly deny public LIST access, enforce least privilege permissions, and use AWS Block Public Access settings to prevent unintended data exposure.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1311,7 +1385,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Amazon S3 buckets should have strict access controls to prevent unauthorized modifications. If an S3 bucket is writable by Everyone or Any AWS customer, it allows unauthorized users to upload, modify, or delete objects, leading to data corruption, security breaches, and compliance risks. To enhance security, S3 bucket permissions should be restricted to trusted IAM roles, AWS accounts, or specific services.", "AdditionalInformation": "Allowing public or AWS-wide WRITE access creates a significant security risk, as attackers can inject malicious files, overwrite critical data, or delete essential objects. This could lead to data loss, malware distribution, or unauthorized system modifications. To prevent unauthorized changes, S3 bucket policies should explicitly deny public WRITE access, enforce least privilege access, and use AWS Block Public Access settings to secure data integrity and prevent unauthorized modifications.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1328,7 +1403,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon SageMaker Notebook instances provide an interactive environment for machine learning development and data analysis. By default, these instances can be configured with direct internet access, which increases the risk of unauthorized access, data leaks, and exposure to malicious external threats. To enhance security, SageMaker Notebook instances should be restricted to private networks, ensuring they are accessed only through secure VPC connections, IAM authentication, or VPNs.", "AdditionalInformation": "Allowing direct internet access to SageMaker Notebook instances poses a significant security risk, as attackers could exploit misconfigurations, exfiltrate data, or inject malicious code. Publicly accessible notebooks can lead to data breaches, intellectual property theft, or compromised model training workflows. To mitigate these risks, SageMaker Notebook instances should be configured within private subnets, with internet access disabled, and restricted using security groups, IAM policies, and VPC endpoint configurations to ensure secure and controlled machine learning operations.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1345,7 +1421,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "AWS Secrets Manager is used to securely store and manage sensitive information, such as API keys, database credentials, and encryption keys. By default, Secrets Manager secrets should be restricted to authorized IAM roles and AWS services. If a secret is publicly accessible, it can be exposed to unauthorized users, leading to data leaks, security breaches, and potential exploitation of sensitive credentials. To enhance security, Secrets Manager secrets should be strictly controlled using IAM policies and resource-based permissions.", "AdditionalInformation": "Allowing public access to Secrets Manager secrets creates a critical security vulnerability, as attackers could retrieve, misuse, or exfiltrate sensitive information. Compromised secrets could lead to unauthorized access to databases, applications, or cloud services, resulting in data breaches, financial loss, or compliance violations. To mitigate this risk, Secrets Manager secrets should be restricted using least privilege IAM permissions, encrypted with AWS KMS, and accessed only by trusted AWS services and roles, ensuring secure and controlled secret management.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1362,7 +1439,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon Simple Email Service (SES) identities (such as email addresses or domains) are used to send and receive emails through AWS. By default, SES identities should be restricted to authorized AWS accounts and IAM roles. If an SES identity is publicly accessible, unauthorized users could send emails using the identity, leading to email spoofing, phishing attacks, or misuse of the domain for malicious purposes. To enhance security, SES identities should be properly restricted using IAM policies and verified senders.", "AdditionalInformation": "Allowing public access to SES identities creates a security and reputational risk, as attackers could impersonate the identity, send spam, or launch phishing campaigns. This could lead to domain blacklisting, compliance violations, and damage to the organization’s email reputation. To mitigate these risks, SES identities should be restricted to trusted AWS accounts and IAM roles, ensuring that only authorized services and users can send emails, protecting the integrity and security of email communications.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1379,7 +1457,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Amazon Simple Queue Service (SQS) queues enable asynchronous message processing between distributed systems. By default, SQS queues should be restricted to authorized AWS accounts and IAM roles. If an SQS queue has a public policy, it allows anyone on the internet to send, receive, or delete messages, leading to data leaks, unauthorized message injection, and potential denial-of-service (DoS) attacks. To enhance security, SQS queue policies should be configured to allow access only to trusted AWS accounts, IAM roles, or specific AWS services.", "AdditionalInformation": "Publicly accessible SQS queues pose a significant security risk, as attackers could inject malicious messages, disrupt processing workflows, or delete critical messages, leading to system failures and data integrity issues. To prevent unauthorized access, SQS policies should explicitly deny public access, enforce least privilege access control, and use IAM policies and VPC endpoint restrictions to ensure secure and controlled messaging operations.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -1396,7 +1475,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "AWS Systems Manager (SSM) Documents define configuration, automation, and maintenance tasks for AWS resources. By default, SSM documents should be restricted to specific AWS accounts, IAM roles, or AWS services. If an SSM document is set as public, unauthorized users could access, modify, or execute automation tasks on AWS infrastructure, leading to misconfigurations, security breaches, or unintended system modifications. To enhance security, SSM documents should be kept private and assigned only to trusted AWS entities.", "AdditionalInformation": "Publicly accessible SSM documents pose a significant security risk, as attackers could execute malicious commands, modify system configurations, or disrupt AWS operations. This could lead to unauthorized access, data leaks, compliance violations, or system downtime. To prevent security threats, SSM documents should explicitly deny public access, enforce least privilege permissions, and use IAM policies and resource-based access controls to ensure only trusted users and systems can manage AWS resources.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1413,7 +1493,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "AWS CloudTrail is a service that records and monitors AWS API calls across an account, providing detailed logs of who performed what action, when, and from where. CloudTrail captures API activity from the AWS Management Console, SDKs, CLI, and AWS services such as CloudFormation. The logs include key details such as the identity of the API caller, timestamp, source IP address, request parameters, and response elements.", "AdditionalInformation": "CloudTrail enhances security, auditing, and compliance by providing a complete history of API activities in an AWS account. Enabling a multi-region trail ensures: Detection of unauthorized activity in rarely used AWS regions. Global Service Logging is automatically enabled, capturing API calls from global services such as IAM and AWS Organizations. Tracking of all management events, ensuring that both read and write operations across AWS resources are recorded for improved security monitoring and compliance.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1430,7 +1511,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "AWS CloudTrail log file validation generates digitally signed digest files containing cryptographic hashes of each log file stored in Amazon S3. These digest files allow users to verify whether logs have been altered, deleted, or remain unchanged after being delivered by CloudTrail. Enabling log file validation ensures data integrity and auditability for security and compliance purposes.", "AdditionalInformation": "Enabling log file validation enhances security by ensuring the integrity of CloudTrail logs, preventing tampering or unauthorized modifications. This helps: Detect log file alterations, ensuring logs remain trustworthy for audits and investigations. Improve compliance with frameworks that require log integrity, such as PCI DSS, SOC 2, and ISO 27001. Strengthen forensic capabilities, allowing security teams to verify log authenticity in case of a security incident.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1447,7 +1529,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "AWS Config is a service that continuously monitors, records, and evaluates configuration changes in AWS resources within an account. It tracks configuration items, relationships between resources, and changes over time, delivering logs for security analysis, change management, and compliance auditing. To ensure comprehensive monitoring, AWS Config should be enabled in all regions.", "AdditionalInformation": "Enabling AWS Config in all regions improves security, visibility, and compliance by: Tracking resource changes, allowing for quick identification of misconfigurations. Supporting security audits and forensic investigations by maintaining a historical record of configurations.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1464,7 +1547,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Server access logging provides detailed records of requests made to an S3 bucket, including request type, accessed resources, timestamp, and requester details. Enabling server access logging on the CloudTrail S3 bucket ensures that all interactions with CloudTrail logs are recorded, improving security visibility and auditability", "AdditionalInformation": "Enabling server access logging on CloudTrail S3 buckets enhances security monitoring, incident response, and compliance by: Capturing all events affecting CloudTrail logs, helping detect unauthorized access or modifications. Providing an audit trail for forensic investigations and compliance reporting. Enhancing security workflows by storing access logs in a separate, dedicated logging bucket for improved log integrity and analysis.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1481,7 +1565,8 @@ "SubSection": "4.2 At-Rest", "AttributeDescription": "AWS CloudTrail records API activity across an AWS account, and its logs contain sensitive security and operational data. AWS Key Management Service (KMS) provides encryption key management using customer-managed keys (CMKs) and Hardware Security Modules (HSMs) to ensure secure key storage and usage. CloudTrail logs can be encrypted using Server-Side Encryption (SSE) with KMS (SSE-KMS) to add an extra layer of protection and access control", "AdditionalInformation": "Using SSE-KMS encryption for CloudTrail logs enhances security by adding an extra layer of access control. This ensures that only authorized users with both S3 read permissions and KMS decryption rights can access log data, protecting sensitive security information from unauthorized access or tampering. It also helps maintain compliance with security and regulatory standards by enforcing strict encryption controls.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1498,7 +1583,8 @@ "SubSection": "3.2 Retention", "AttributeDescription": "AWS Key Management Service (KMS) allows users to manage encryption keys securely. Key rotation enables the automatic replacement of the backing key (the cryptographic material tied to a customer-managed key (CMK)), ensuring continuous security without disrupting access to previously encrypted data. AWS automatically retains previous backing keys to allow seamless decryption of older data while using a newly generated key for encryption. It is recommended to enable key rotation for symmetric CMKs, as asymmetric keys do not support this feature.", "AdditionalInformation": "Regularly rotating encryption keys minimizes the risk associated with key compromise by ensuring that newly encrypted data is protected with a fresh key, reducing the potential impact of an exposed key. Since AWS KMS retains prior backing keys for seamless decryption, rotation does not disrupt access to previously encrypted data. Implementing key rotation enhances security by limiting the exposure window of any single encryption key and aligning with best practices for cryptographic hygiene.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1515,7 +1601,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "VPC Flow Logs capture and record IP traffic information for network interfaces within a VPC, allowing administrators to monitor and analyze network activity. These logs are stored in Amazon CloudWatch Logs for retrieval and analysis. It is recommended to enable VPC Flow Logs for rejected packets to track unauthorized access attempts, misconfigurations, or potential security threats within the VPC.", "AdditionalInformation": "Enabling VPC Flow Logs for rejected traffic enhances network visibility and security monitoring by detecting suspicious activity, failed connection attempts, and potential threats. These logs help identify anomalous traffic patterns, troubleshoot connectivity issues, and support incident response workflows, improving overall security posture.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1532,7 +1619,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "S3 object-level API operations, such as GetObject, PutObject, and DeleteObject, are classified as data events in AWS CloudTrail. By default, CloudTrail does not log data events, meaning detailed tracking of individual object interactions is not enabled. To enhance visibility and security, it is recommended to enable object-level logging for S3 buckets to monitor access and modification activities.", "AdditionalInformation": "Enabling object-level logging helps organizations meet compliance requirements, enhance security monitoring, and detect unauthorized access. It allows administrators to analyze user behavior, track modifications to critical data, and respond to security incidents in real time using Amazon CloudWatch Events, ensuring greater control over S3 bucket activity.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -1549,7 +1637,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "S3 object-level API operations, such as GetObject, PutObject, and DeleteObject, are classified as data events in AWS CloudTrail. By default, CloudTrail does not log data events, meaning individual object interactions are not tracked unless explicitly enabled. To improve security monitoring and compliance, it is recommended to enable object-level logging for S3 buckets.", "AdditionalInformation": "Object-level logging enhances data security, compliance, and operational visibility by providing detailed tracking of who accessed, modified, or deleted objects within S3 buckets. This enables organizations to monitor user behavior, detect unauthorized access, and quickly respond to potential security incidents using Amazon CloudWatch Events.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -1566,7 +1655,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of API calls can be achieved by forwarding CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. By configuring metric filters and alarms, organizations can automatically detect and respond to unauthorized API calls, improving security visibility. It is recommended to establish a metric filter and alarm for unauthorized API calls to enhance threat detection and incident response.", "AdditionalInformation": "Monitoring unauthorized API calls helps identify potential security incidents faster, reducing the time attackers have to exploit vulnerabilities. CloudWatch provides real-time monitoring and alerting, while SIEM solutions offer centralized security event analysis. Detecting unauthorized API calls early allows organizations to take immediate action, investigate potential threats, and strengthen overall AWS security posture.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1583,7 +1673,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be implemented by directing CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. By setting up metric filters and alarms, organizations can detect and respond to security risks effectively. It is recommended to establish a metric filter and alarm for AWS console logins that are not protected by multi-factor authentication (MFA) to enhance security monitoring.", "AdditionalInformation": "Monitoring console logins without MFA improves visibility into accounts that lack strong authentication controls. Accounts without MFA are more vulnerable to credential theft, brute-force attacks, and unauthorized access. By detecting these login attempts in real-time, organizations can identify security gaps, enforce MFA policies, and reduce the risk of account compromise.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1600,7 +1691,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be achieved by directing CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. Setting up metric filters and alarms helps detect potential security threats. It is recommended to establish a metric filter and alarm for root account login attempts to identify unauthorized access or improper use of the highly privileged root account.", "AdditionalInformation": "Monitoring root account logins enhances visibility into the usage of the most privileged AWS account, which should be used only in exceptional cases. Frequent or unauthorized root logins increase security risks by exposing critical administrative controls. Detecting root login attempts in real time enables organizations to identify potential security incidents, enforce least privilege principles, and limit unnecessary use of the root account.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1617,7 +1709,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be implemented by directing CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. By configuring metric filters and alarms, organizations can detect critical security events. It is recommended to establish a metric filter and alarm for changes to Identity and Access Management (IAM) policies to track modifications that could affect authentication and authorization controls.", "AdditionalInformation": "Monitoring IAM policy changes helps ensure that access controls remain secure and intact. Unauthorized or unintended modifications to IAM policies can lead to privilege escalation, misconfigurations, and security breaches. Detecting these changes in real-time allows organizations to respond quickly to potential threats, enforce least privilege principles, and maintain a strong security posture.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1634,7 +1727,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be implemented by directing CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. By configuring metric filters and alarms, organizations can track critical security events. It is recommended to establish a metric filter and alarm to detect changes to CloudTrail configurations, ensuring that logging remains active and tamper-proof.", "AdditionalInformation": "Monitoring CloudTrail configuration changes helps maintain continuous visibility into AWS account activity. Unauthorized modifications to CloudTrail settings could disable or alter logging, potentially allowing malicious activity to go undetected. Detecting these changes in real time enables organizations to quickly respond to threats, enforce security best practices, and ensure compliance with auditing requirements.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1651,7 +1745,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be implemented by directing CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. By setting up metric filters and alarms, organizations can detect potential security threats. It is recommended to establish a metric filter and alarm for failed console authentication attempts to identify potential unauthorized access attempts or brute-force attacks.", "AdditionalInformation": "Monitoring failed console logins helps detect brute-force attempts and unauthorized access attempts early. Repeated failed authentication attempts can indicate malicious activity, and tracking them allows security teams to identify suspicious IP addresses, correlate with other security events, and take proactive measures to protect AWS accounts.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1668,7 +1763,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be achieved by forwarding CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. By configuring metric filters and alarms, organizations can detect security-critical changes. It is recommended to set up a metric filter and alarm for customer-managed KMS keys (CMKs) that are disabled or scheduled for deletion to prevent unintended encryption key loss.", "AdditionalInformation": "Disabling or deleting a customer-managed CMK can render encrypted data permanently inaccessible, leading to data loss and service disruptions. Monitoring CMK state changes helps detect unauthorized or accidental modifications, ensuring encryption keys remain available and aligned with security policies. Detecting such changes in real time allows organizations to prevent data loss, maintain compliance, and take corrective action if needed.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1685,7 +1781,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be implemented by forwarding CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. By configuring metric filters and alarms, organizations can track critical security-related changes. It is recommended to set up a metric filter and alarm for modifications to S3 bucket policies to detect potential misconfigurations or unauthorized access changes.", "AdditionalInformation": "Monitoring S3 bucket policy changes helps detect and respond to overly permissive configurations that could expose sensitive data. Unauthorized or accidental modifications may grant public access or excessive permissions, increasing the risk of data breaches and compliance violations. Real-time alerts allow security teams to quickly identify, investigate, and correct risky policy changes, reducing exposure and strengthening data security.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1702,7 +1799,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be implemented by directing CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. By configuring metric filters and alarms, organizations can detect critical configuration changes. It is recommended to establish a metric filter and alarm for modifications to AWS Config’s configurations to ensure continuous monitoring and compliance.", "AdditionalInformation": "Monitoring AWS Config configuration changes helps maintain visibility and control over resource configurations. Unauthorized or accidental modifications to AWS Config settings may result in gaps in security monitoring, misconfigurations going undetected, and compliance violations. Real-time alerts allow security teams to quickly detect, investigate, and respond to changes, ensuring the integrity of configuration tracking across the AWS environment.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1719,7 +1817,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be implemented by forwarding CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. Security groups act as stateful packet filters that control inbound and outbound traffic within a VPC. It is recommended to establish a metric filter and alarm to detect changes to security groups to prevent unauthorized modifications that could expose resources to security threats.", "AdditionalInformation": "Monitoring security group changes helps ensure that network access controls remain secure and that AWS resources are not unintentionally exposed. Unauthorized or accidental modifications to security groups can create security gaps, increasing the risk of data breaches and unauthorized access. Real-time alerts enable security teams to detect, investigate, and respond to security group changes quickly, maintaining a strong network security posture.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1736,7 +1835,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be implemented by forwarding CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. Network Access Control Lists (NACLs) act as stateless packet filters that control inbound and outbound traffic for subnets within a VPC. It is recommended to establish a metric filter and alarm to detect changes to NACLs to prevent unauthorized modifications that could compromise network security.", "AdditionalInformation": "Monitoring NACL changes helps ensure that network traffic controls remain properly configured and that AWS resources are not unintentionally exposed. Unauthorized or accidental modifications to NACL rules can lead to misconfigured security policies, increased attack surfaces, and potential data breaches. Real-time alerts enable security teams to detect, investigate, and respond to NACL modifications quickly, maintaining strong network security controls.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1753,7 +1853,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be implemented by forwarding CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. Network gateways serve as the primary route for traffic entering and leaving a VPC, facilitating communication with external networks. It is recommended to establish a metric filter and alarm for changes to network gateways to ensure that network traffic is securely routed through controlled paths.", "AdditionalInformation": "Monitoring network gateway changes helps maintain secure ingress and egress traffic flows within a VPC. Unauthorized or accidental modifications to network gateways can disrupt connectivity, introduce security vulnerabilities, or expose AWS resources to external threats. Real-time alerts enable security teams to detect, investigate, and respond to changes quickly, ensuring that all traffic follows a controlled and secure routing policy.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1770,7 +1871,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be achieved by forwarding CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. Route tables determine how network traffic is directed between subnets and network gateways within a VPC. It is recommended to establish a metric filter and alarm for changes to route tables to detect unauthorized or accidental modifications that could impact network security and connectivity.", "AdditionalInformation": "Monitoring route table changes ensures that VPC traffic follows the intended and secure routing paths. Unauthorized modifications can result in misrouted traffic, exposure of sensitive resources, or connectivity disruptions. Real-time alerts enable security teams to detect, investigate, and respond to route table changes promptly, preventing potential security risks and maintaining a controlled and secure network environment.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1787,7 +1889,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be implemented by forwarding CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. AWS accounts can contain multiple Virtual Private Clouds (VPCs), and VPC peering connections allow network traffic to flow between them. It is recommended to establish a metric filter and alarm for changes made to VPC configurations to detect unauthorized modifications that could impact network security and connectivity.", "AdditionalInformation": "Monitoring VPC configuration changes helps ensure network integrity, security, and proper traffic flow within AWS environments. Unauthorized or accidental modifications can result in misconfigured routing, unintended internet exposure, or connectivity disruptions between resources. Real-time alerts enable security teams to detect, investigate, and respond to VPC changes promptly, preventing security risks and ensuring consistent network accessibility and isolation.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1804,7 +1907,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Real-time monitoring of AWS API calls can be achieved by forwarding CloudTrail logs to Amazon CloudWatch Logs or an external Security Information and Event Management (SIEM) system. AWS Organizations allows centralized management of multiple AWS accounts, and modifications to its configuration can significantly impact access control, account governance, and security policies. It is recommended to establish a metric filter and alarm for changes made to AWS Organizations in the master AWS account to detect unauthorized or unintended modifications.", "AdditionalInformation": "Monitoring AWS Organizations configuration changes helps prevent unwanted, accidental, or malicious modifications that could lead to unauthorized access, policy misconfigurations, or security breaches. Detecting changes in real time ensures that unexpected modifications can be investigated and remediated quickly, reducing the risk of compromised governance structures and ensuring compliance with organizational security policies.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1821,7 +1925,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "AWS Security Hub centralizes security data from multiple AWS services and third-party security tools, allowing for real-time threat detection, risk assessment, and compliance monitoring. When enabled, Security Hub aggregates, organizes, and prioritizes security findings from services such as Amazon GuardDuty, Amazon Inspector, and Amazon Macie, as well as integrated third-party security products. This provides organizations with a unified security management platform to enhance threat visibility.", "AdditionalInformation": "Enabling AWS Security Hub provides a comprehensive view of your security posture, helping to identify vulnerabilities, detect threats, and enforce security best practices. It allows organizations to monitor security trends, benchmark environments against industry standards, and quickly respond to high-priority security issues, strengthening overall AWS security governance and compliance.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1838,7 +1943,8 @@ "SubSection": "3.2 Retention", "AttributeDescription": "AWS CloudWatch Log Groups store logs from various AWS services and applications, enabling monitoring, debugging, and security auditing. By default, CloudWatch logs are retained indefinitely, which can lead to unnecessary data storage costs and compliance risks. To manage log lifecycle effectively, it is recommended to set a retention policy for CloudWatch Log Groups, ensuring logs are retained only for a specific number of days based on operational and compliance requirements.", "AdditionalInformation": "Setting a retention policy for CloudWatch logs helps balance cost management, compliance, and security. Retaining logs for too long increases storage costs and potential exposure to sensitive data, while keeping them for too short a duration can limit forensic investigations and compliance reporting. By defining a specific retention period, organizations can ensure logs are available for troubleshooting and audits while adhering to data retention best practices and regulatory requirements.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] } diff --git a/prowler/compliance/azure/prowler_threatscore_azure.json b/prowler/compliance/azure/prowler_threatscore_azure.json index 12ad818a27..c6bc06b7e4 100644 --- a/prowler/compliance/azure/prowler_threatscore_azure.json +++ b/prowler/compliance/azure/prowler_threatscore_azure.json @@ -17,7 +17,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Microsoft Entra ID Security Defaults offer preconfigured security settings designed to protect organizations from common identity attacks at no additional cost. These settings enforce basic security measures such as MFA registration, risk-based authentication prompts, and blocking legacy authentication clients that do not support MFA. Security defaults are available to all organizations and can be enabled via the Azure portal to strengthen authentication security.", "AdditionalInformation": "Security defaults provide built-in protections to reduce the risk of unauthorized access until organizations configure their own identity security policies. By requiring MFA, blocking weak authentication methods, and adapting authentication challenges based on risk factors, these settings create a stronger security foundation without additional licensing requirements.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -34,7 +35,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "[IMPORTANT] If your organization has Microsoft Entra ID licensing (included in Microsoft 365 E3, E5, F5, or EM&S E3/E5) and can use Conditional Access, you may skip this section and proceed to Conditional Access. Enable multi-factor authentication (MFA) for all users, roles, and groups with write access to Azure resources. This includes both custom-created roles and built-in roles such as: Service Co-Administrators, Subscription Owners, Contributors", "AdditionalInformation": "MFA enhances security by requiring two or more authentication factors, ensuring that only authorized users gain access. It significantly reduces the risk of unauthorized access, credential theft, and privilege escalation. By implementing MFA, attackers must compromise multiple authentication mechanisms, making breaches far more difficult and improving overall Azure resource security.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -51,7 +53,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "[IMPORTANT] If your organization has Microsoft Entra ID licensing (included in Microsoft 365 E3, E5, F5, or EM&S E3/E5) and can use Conditional Access, you may skip this section and proceed to Conditional Access. Enable multi-factor authentication (MFA) for all non-privileged users to enhance security and prevent unauthorized access.", "AdditionalInformation": "MFA strengthens authentication by requiring at least two verification factors, making it significantly harder for attackers to gain access using stolen credentials. Even if one authentication factor is compromised, an additional layer of security reduces the risk of unauthorized account access, enhancing overall identity and access management security.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -68,7 +71,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "This recommendation ensures that users accessing the Windows Azure Service Management API (e.g., Azure PowerShell, Azure CLI, Azure Resource Manager API) are required to authenticate using multi-factor authentication (MFA) before accessing resources.", "AdditionalInformation": "Administrative access to the Azure Service Management API should be secured with enhanced authentication measures to prevent unauthorized changes. Enforcing MFA helps mitigate the risk of credential compromise, privilege abuse, and unauthorized modifications to administrative settings. IMPORTANT: While exceptions for specific users or groups may be configured, they should be carefully tracked and periodically reviewed through an Access Review process. The policy should apply to all users by default, ensuring that only explicitly exempted accounts bypass MFA.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -85,7 +89,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "This recommendation ensures that users accessing Microsoft Admin Portals (such as Microsoft 365 Admin, Microsoft 365 Defender, Exchange Admin Center, and Azure Portal) must authenticate using multi-factor authentication (MFA) before logging in.", "AdditionalInformation": "Microsoft Admin Portals provide privileged access to critical settings and resources, requiring enhanced security measures. Enforcing MFA reduces the risk of unauthorized access, credential compromise, and administrative abuse, preventing intruders from making unauthorized changes to administrative settings.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -102,7 +107,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Ensure that privileged virtual machines do not allow logins from identities without multi-factor authentication (MFA) and that access is restricted to necessary permissions only. Unauthorized access can enable attackers to move laterally and misuse the virtual machine’s managed identity for further privilege escalation or unauthorized operations.", "AdditionalInformation": "Requiring MFA for privileged VM access reduces the risk of credential compromise, lateral movement, and unauthorized access to cloud resources. Attackers can exploit valid accounts to access virtual machines and escalate privileges using the managed identity. Enforcing MFA and least privilege access helps mitigate these risks by preventing unauthorized logins and restricting administrative permissions to only what is necessary.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -119,7 +125,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Restrict the ability to create new Microsoft Entra ID or Azure AD B2C tenants to administrators or appropriately delegated users.", "AdditionalInformation": "Limiting tenant creation to authorized administrators prevents unauthorized users from creating new tenants, reducing the risk of uncontrolled environments, misconfigurations, and potential security gaps. This ensures that only approved users can establish and manage tenant resources.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -136,7 +143,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "To maintain security and operational efficiency, it is recommended to have a minimum of two and a maximum of four users assigned the Global Administrator role in Microsoft Entra ID. This ensures redundancy while minimizing the risk of excessive privileged access.", "AdditionalInformation": "The Global Administrator role holds broad privileges across Microsoft Entra ID services and should not be used for daily tasks. Administrators should have separate accounts for regular activities and privileged actions. Limiting the number of Global Administrators reduces the risk of unauthorized access, human error, and privilege misuse, while ensuring at least two administrators are available to prevent disruptions in case of unavailability. This approach aligns with the principle of least privilege and strengthens the security posture of an Azure tenant.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -153,7 +161,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Restrict guest user permissions to prevent unauthorized access to directory resources and administrative roles.", "AdditionalInformation": "Limiting guest access ensures that guest accounts cannot enumerate users, groups, or directory objects and prevents them from being assigned administrative roles. Guest access has three levels of restriction, with the most secure option being: “Guest user access is restricted to their own directory object” (most restrictive). This setting minimizes the risk of unauthorized access and ensures guests only interact with their assigned resources.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -170,7 +179,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Require administrators to provide consent before applications can access Microsoft Entra ID resources, preventing unauthorized or malicious app integrations.", "AdditionalInformation": "Allowing users to grant application permissions without restrictions increases the risk of data exfiltration and privilege abuse by malicious applications. Restricting app consent to administrators ensures that only verified and approved applications gain access, protecting sensitive data and privileged accounts from unauthorized use.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -187,7 +197,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Allow users to grant consent only for selected permissions when the request comes from a verified publisher, ensuring tighter control over third-party application access.", "AdditionalInformation": "Restricting app consent to verified publishers helps mitigate the risk of unauthorized data access and privilege abuse. Malicious applications may attempt to exploit user-granted permissions, so ensuring only trusted, verified applications can request access enhances security while maintaining flexibility for approved integrations.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -204,7 +215,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Microsoft Entra ID Conditional Access allows organizations to define Named Locations and categorize them as trusted or untrusted. These locations can be based on geographical regions, specific IP addresses, or IP ranges to enhance access control policies.", "AdditionalInformation": "Defining trusted IP addresses or ranges enables organizations to enforce Conditional Access policies based on user location. Users authenticating from trusted locations may receive fewer access restrictions, while those from untrusted sources can be subject to stricter security controls, reducing the risk of unauthorized access.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -221,7 +233,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "Limit the ability to create security groups to administrators only, preventing unauthorized users from managing group memberships.", "AdditionalInformation": "Allowing all users to create and manage security groups can lead to uncontrolled access, misconfigurations, and potential security risks. Unless business requirements justify broader delegation, restricting security group creation to administrators ensures that group permissions and memberships are properly managed, reducing the risk of unauthorized access.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -238,7 +251,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "Restrict the ability to register third-party applications to administrators or appropriately delegated users, ensuring better security control over app integrations.", "AdditionalInformation": "Allowing unrestricted application registration can expose Microsoft Entra ID data to security risks. Requiring administrator approval ensures that custom-developed applications undergo a formal security review before being granted access. Organizations may delegate permissions to developers or high-request users as needed, but policies should be reviewed to align with security best practices and operational needs.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -255,7 +269,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "Limit the ability to send invitations to users with specific administrative roles, preventing unauthorized guest access to cloud resources.", "AdditionalInformation": "Restricting guest invitations to designated administrators helps enforce “Need to Know” permissions, reducing the risk of unintended data exposure. By default, anyone in the organization—including guests and non-admins—can invite external users, which can lead to unauthorized access. Restricting this capability ensures that only approved accounts can extend access to the tenant, strengthening security and access control.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -272,7 +287,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "Limit Microsoft 365 group creation to administrators only, ensuring that group management remains under centralized control.", "AdditionalInformation": "Restricting group creation to administrators prevents unauthorized or unnecessary group creation, ensuring that only appropriate groups are created and managed. This reduces the risk of misconfigurations, access issues, and uncontrolled resource sharing within the organization.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -289,7 +305,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Regularly review Network Security Groups (NSGs) for misconfigured or overly permissive rules, especially those exposing ports and protocols to the public internet. Any unnecessary exposure should be restricted to reduce security risks.", "AdditionalInformation": "Exposing Remote Desktop Protocol (RDP) or other critical services to the internet increases the risk of brute-force attacks, which could lead to unauthorized access to Azure Virtual Machines. Compromised VMs can be used to launch attacks on other networked resources, both inside and outside Azure. Periodic NSG evaluations help minimize attack surfaces and ensure that only explicitly required access is permitted.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -306,7 +323,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Regularly review Network Security Groups (NSGs) for misconfigured or overly permissive rules, particularly those exposing SSH (port 22) or other critical services to the internet. Any unnecessary exposure should be restricted to reduce security risks.", "AdditionalInformation": "Exposing SSH over the internet increases the risk of brute-force attacks, allowing attackers to gain unauthorized access to Azure Virtual Machines. Once compromised, a VM can be used as a pivot point to attack other machines within the Azure Virtual Network or even external systems. Periodic NSG evaluations help minimize attack surfaces and ensure that only explicitly required access is permitted.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -323,7 +341,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Regularly review Network Security Groups (NSGs) for misconfigured or overly permissive UDP rules, especially those exposing UDP-based services to the internet. Any unnecessary exposure should be restricted to prevent security risks.", "AdditionalInformation": "Exposing UDP services to the internet increases the risk of Distributed Denial-of-Service (DDoS) amplification attacks, where attackers can reflect and amplify spoofed traffic from Azure Virtual Machines. Commonly exploited UDP services include DNS, NTP, SSDP, SNMP, and CLDAP, which can be used to disrupt services or launch attacks against other networked systems inside and outside Azure. Regular NSG evaluations help minimize attack surfaces and prevent VMs from being leveraged in DDoS attacks.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -340,7 +359,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Regularly review Network Security Groups (NSGs) for misconfigured or overly permissive HTTP(S) rules, ensuring that exposure to the internet is necessary and narrowly configured. Restrict access where it is not explicitly required.", "AdditionalInformation": "Exposing HTTP(S) services to the internet increases the risk of brute-force attacks, credential stuffing, and exploitation of vulnerabilities in web applications or services. If compromised, an attacker can use the affected resource as a pivot point to escalate privileges, move laterally, and compromise other Azure resources within the tenant. Periodic NSG evaluations help reduce attack surfaces and enforce least privilege access.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -357,7 +377,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Enable Azure Bastion to securely access Azure Virtual Machines (VMs) over the internet without exposing RDP (3389/TCP) or SSH (22/TCP) ports directly to the public network. Azure Bastion provides remote access through TLS (443/TCP) while integrating with Azure Active Directory (AAD) security policies.", "AdditionalInformation": "Using Azure Bastion eliminates the need to assign public IP addresses to VMs, reducing exposure to brute-force attacks and unauthorized access. It enhances security by enabling browser-based RDP/SSH access, leveraging Azure Active Directory controls, and supporting Multi-Factor Authentication (MFA), Conditional Access Policies, and other hardening measures for a centralized and secure access solution.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -374,7 +395,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Use Microsoft Entra authentication for SQL Database to centralize identity and credential management, enhancing security and simplifying access control. By leveraging Microsoft Entra ID, organizations can manage database users, permissions, and authentication policies in a single location, reducing complexity and improving security.", "AdditionalInformation": "Microsoft Entra authentication eliminates the need for separate SQL authentication, preventing identity sprawl and simplifying password management. It enables centralized permission management, supports token-based authentication, integrates with Active Directory Federation Services (ADFS), and enhances security with Multi-Factor Authentication (MFA). Using Entra ID authentication also eliminates the need to store passwords, enabling secure, modern authentication methods while ensuring seamless access control for users and applications.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -391,7 +413,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Disable access from Azure services to PostgreSQL flexible servers to restrict inbound connections and enhance security.", "AdditionalInformation": "Allowing access from all Azure services bypasses firewall restrictions and permits connections from any Azure resource, including those outside your subscription. This can expose the database to unauthorized access and security risks. Instead, configure firewall rules or Virtual Network (VNet) rules to allow only specific, trusted network ranges, ensuring tighter access control.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -408,7 +431,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Restrict Cosmos DB access to whitelisted networks to minimize exposure and reduce potential attack vectors.", "AdditionalInformation": "Limiting Cosmos DB communication to specific trusted networks prevents unauthorized access from unapproved sources, including the public internet. This enhances security by reducing the attack surface and ensuring only designated networks can interact with the database.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -425,7 +449,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Use private endpoints for Cosmos DB to restrict network traffic to approved sources, ensuring secure and private communication.", "AdditionalInformation": "For sensitive data, private endpoints provide granular control over which services can access Cosmos DB, preventing exposure to unauthorized networks. This setup ensures that all traffic remains within a private network, reducing security risks and enhancing data protection.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -442,7 +467,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Use Microsoft Entra ID for Cosmos DB client authentication, leveraging Azure RBAC for enhanced security, centralized management, and MFA support.", "AdditionalInformation": "Entra ID authentication is significantly more secure than token-based authentication, as tokens must be stored persistently on the client, increasing the risk of compromise. Entra ID eliminates this risk by securely handling credentials, integrating seamlessly with Azure RBAC, and supporting multi-factor authentication (MFA) for stronger access control.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -459,7 +485,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Disable public network access for Azure Storage accounts, ensuring that access settings for individual containers cannot override this restriction. This applies to Azure Resource Manager deployment model storage accounts, as classic deployment model accounts will be retired by August 31, 2024.", "AdditionalInformation": "By default, Azure Storage accounts allow users with appropriate permissions to enable public access to containers and blobs, granting read-only access without requiring authentication. To minimize the risk of unauthorized data exposure, public access should be restricted unless explicitly required. Instead, use Azure AD RBAC or shared access signatures (SAS) to grant controlled and time-limited access to storage resources.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -476,7 +503,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Restricting default network access enhances security by preventing unrestricted connections to Azure Storage accounts. By default, storage accounts accept connections from any network, so access should be limited to selected networks by modifying the default configuration.", "AdditionalInformation": "Storage accounts should deny access from all networks by default, except for explicitly allowed Azure Virtual Networks or specific IP address ranges. This approach creates a secure network boundary, ensuring only authorized applications can connect. Even when network rules allow access, proper authentication (via access keys or SAS tokens) is still required, adding an extra layer of security.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -493,7 +521,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "This recommendation assumes that public network access is set to “Enabled from selected virtual networks and IP addresses” and that the default network access rule for storage accounts is set to deny. Some Azure services require access to storage accounts from networks that cannot be explicitly granted permissions through network rules. To allow these services to function properly, enable the trusted Azure services exception, which allows selected Azure services to bypass network restrictions while still enforcing strong authentication.", "AdditionalInformation": "Enabling firewall rules on a storage account blocks access to all incoming requests, including those from other Azure services. Allowing access to trusted Azure services ensures that essential Azure functions, such as Azure Backup, Event Grid, Monitor, and Site Recovery, can interact with storage accounts securely without exposing them to broader public access.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -510,7 +539,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Use private endpoints for Azure Storage accounts to enable secure, encrypted access over a Private Link. Private endpoints assign an IP address from the Virtual Network (VNet) for each service, ensuring that network traffic remains isolated and encrypted within the VNet. This configuration helps segment network traffic, preventing external access while allowing secure communication between services. Additionally, VNets can extend addressing spaces or act as secure tunnels over public networks, connecting remote infrastructures securely.", "AdditionalInformation": "Encrypting traffic between services protects sensitive data from interception and unauthorized access. Using private endpoints ensures that data remains within a controlled network environment, reducing exposure to external threats and enhancing overall security posture.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -527,7 +557,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Ensure that Azure SQL Databases do not allow ingress from 0.0.0.0/0 (ANY IP), as this would expose them to the public internet. Azure SQL Server includes a firewall that blocks unauthorized connections by default, but it allows defining more granular IP address rules to restrict access. Allowing 0.0.0.0/0 effectively grants open access, increasing security risks.", "AdditionalInformation": "Leaving Azure SQL firewall rules open to ANY IP significantly increases the attack surface, making databases vulnerable to brute-force attacks and unauthorized access. Instead, firewall rules should be restricted to specific, trusted IP ranges from known datacenters or internal resources. Additionally, enabling Allow Azure services and resources to access this server could allow access from outside your organization’s subscription or region, potentially bypassing SQL Server’s network ACLs and exposing the database to malicious activity.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -544,7 +575,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Enable Azure App Service Authentication to restrict anonymous HTTP requests and enforce authentication using identity providers before requests reach the application.", "AdditionalInformation": "Enabling App Service Authentication ensures that all incoming HTTP requests are validated and authenticated before being processed by the application. It integrates with Microsoft Entra ID, Google, Facebook, Microsoft Accounts, and Twitter to manage authentication, token validation, and session handling. Additionally, disabling HTTP Basic Authentication helps mitigate risks from legacy authentication methods, strengthening application security.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -561,7 +593,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Ensure that FTP access is disabled for Azure App Services, or if required, enforce FTPS (FTP over SSL/TLS) for secure authentication and data transmission.", "AdditionalInformation": "FTP transmits data, including credentials, in plaintext, making it vulnerable to interception, credential theft, and data exfiltration. Requiring FTPS ensures that all FTP connections are encrypted, reducing the risk of unauthorized access, persistence, and lateral movement within the environment. If FTP is not needed, disabling it entirely enhances security by eliminating an unnecessary attack vector.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -578,7 +611,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Enable log_checkpoints on PostgreSQL flexible servers to log checkpoint activity, generating query and error logs that aid in monitoring and troubleshooting database performance.", "AdditionalInformation": "Logging checkpoints helps track database activity, errors, and performance issues, providing valuable insights for troubleshooting and optimization. While transaction logs remain inaccessible, query and error logs allow identification and resolution of configuration errors and inefficiencies, improving database reliability and performance.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -595,7 +629,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Enable connection throttling on PostgreSQL flexible servers to regulate concurrent connections and generate logs for monitoring and troubleshooting.", "AdditionalInformation": "Connection throttling helps prevent Denial of Service (DoS) attacks by limiting excessive connections that could exhaust resources. It also protects against system failures or degraded performance caused by high user loads. Query and error logs provide insights into connection issues, enabling faster troubleshooting and performance optimization.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -612,7 +647,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Enable log_connections on PostgreSQL Single Servers to record connection attempts and authentication events for security monitoring and auditing. (Note: This recommendation applies only to Single Server, as Azure PostgreSQL Single Server is planned for retirement.)", "AdditionalInformation": "Logging connection attempts helps detect unauthorized access, failed authentication attempts, and potential security threats. These logs provide valuable insights for troubleshooting, auditing, and identifying suspicious activities, enhancing overall database security and monitoring.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -629,7 +665,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Enable log_disconnections on PostgreSQL Servers to record session termination events, including session duration. (Note: This recommendation applies only to Single Server, as Azure PostgreSQL Single Server is planned for retirement.)", "AdditionalInformation": "Logging disconnections provides visibility into session activity and duration, helping to analyze user behavior, detect anomalies, and troubleshoot performance issues. These logs contribute to audit trails, security monitoring, and database performance optimization.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -646,7 +683,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Enable audit_log_enabled on MySQL flexible servers to capture logs for connection attempts, DDL/DML activity, and other database events for security and monitoring purposes.", "AdditionalInformation": "Logging database activity helps detect unauthorized access, troubleshoot issues, and analyze performance bottlenecks. Enabling audit logs enhances security visibility, compliance monitoring, and incident response by providing valuable insights into database operations.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -663,7 +701,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Configure audit_log_events on MySQL flexible servers to include CONNECTION events, ensuring that successful and failed connection attempts are logged.", "AdditionalInformation": "Logging CONNECTION events provides visibility into authentication attempts, helping to detect unauthorized access, troubleshoot issues, and optimize database performance. These logs are essential for security monitoring, compliance, and identifying potential misconfigurations or attack attempts.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -680,7 +719,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Enable AuditEvent logging for Azure Key Vault to track and log interactions with keys, certificates, and other sensitive information.", "AdditionalInformation": "Logging Key Vault access events provides an audit trail that helps monitor who accessed the vault, when, and how. This enhances security, compliance, and incident response by ensuring logs are stored in a designated Azure Storage account or Log Analytics workspace, allowing centralized monitoring across multiple Key Vaults.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -697,7 +737,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Ensure that network flow logs are collected and sent to a central Log Analytics workspace for monitoring and analysis.", "AdditionalInformation": "Capturing network flow logs provides visibility into traffic patterns across your network, helping detect anomalies, potential lateral movement, and security threats. These logs integrate with Azure Monitor and Azure Sentinel, enabling advanced analytics and visualization for improved network security and incident response.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -714,7 +755,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Enable AppServiceHTTPLogs for Azure App Service instances to capture and centrally log all HTTP requests.", "AdditionalInformation": "Logging web requests provides critical data for security monitoring and incident response. Captured logs can be ingested into a SIEM or central log aggregation system, helping security analysts detect anomalies, investigate threats, and enhance application security.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -731,7 +773,8 @@ "SubSection": "3.2 Retention", "AttributeDescription": "Configure SQL Server Audit Retention to retain logs for more than 90 days to ensure long-term visibility into database activity and security events.", "AdditionalInformation": "Maintaining audit logs for over 90 days helps detect anomalies, security breaches, and unauthorized access. Longer retention periods allow organizations to analyze historical data, support compliance requirements, and strengthen forensic investigations.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -748,7 +791,8 @@ "SubSection": "3.2 Retention", "AttributeDescription": "Enable Network Security Group (NSG) Flow Logs and configure the retention period to at least 90 days to capture and store IP traffic data for security monitoring and analysis.", "AdditionalInformation": "NSG Flow Logs provide visibility into network traffic, helping detect anomalies, unauthorized access, and potential security breaches. Retaining logs for at least 90 days ensures that historical data is available for incident investigation, compliance, and forensic analysis, strengthening overall network security monitoring.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -765,7 +809,8 @@ "SubSection": "3.2 Retention", "AttributeDescription": "Ensure that logfiles.retention_days on PostgreSQL flexible servers is set to an appropriate value to maintain access to historical logs for monitoring and troubleshooting.", "AdditionalInformation": "Setting an appropriate log retention period ensures that query and error logs are available for diagnosing configuration issues, troubleshooting errors, and optimizing performance. Retaining logs for a sufficient duration supports security analysis, compliance requirements, and operational debugging while preventing unnecessary storage consumption.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -782,7 +827,8 @@ "SubSection": "3.2 Retention", "AttributeDescription": "Enable Diagnostic Settings to export activity logs for all appropriate resources within a subscription, ensuring long-term visibility into security and operational events.", "AdditionalInformation": "By default, logs are retained for only 90 days. Configuring diagnostic settings allows logs to be exported and stored for extended periods, enabling security analysis, compliance monitoring, and forensic investigations within an Azure subscription.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -799,7 +845,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Enable auditing on Azure SQL Servers to track and log database events for security and compliance purposes.", "AdditionalInformation": "Auditing at the server level ensures that all existing and newly created databases inherit auditing policies, providing consistent monitoring across the SQL environment. It does not override database-level auditing policies but complements them. Audit logs are stored in Azure Storage, helping organizations maintain regulatory compliance, monitor database activity, and detect anomalies that may indicate security threats or operational concerns.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -816,7 +863,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Create an Activity Log Alert for the Delete SQL Server Firewall Rule event to monitor and track firewall rule removals in SQL Server.", "AdditionalInformation": "Monitoring firewall rule deletions helps detect unauthorized or accidental changes that could expose the database to security risks. Timely alerts ensure quick detection and response to prevent unauthorized network access and maintain a secure SQL environment.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -833,7 +881,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Create an Activity Log Alert for the Create or Update Public IP Address event to monitor changes in public IP configurations.", "AdditionalInformation": "Tracking public IP address modifications provides visibility into network access changes, helping detect unauthorized or misconfigured public exposure. Timely alerts enable faster detection and response to potential security risks, ensuring a controlled and secure network environment.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -850,7 +899,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Create an Activity Log Alert for the Delete Public IP Address event to monitor and track the removal of public IP addresses.", "AdditionalInformation": "Monitoring public IP deletions helps detect unauthorized or accidental changes that could impact network accessibility or security. Timely alerts enable quick investigation and response, ensuring that critical network configurations remain intact and secure.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -867,7 +917,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Application Insights in Azure serves as an Application Performance Monitoring (APM) solution, providing valuable insights into application performance, telemetry data, and trace logs. It helps organizations monitor application health and troubleshoot incidents efficiently.", "AdditionalInformation": "Enabling Application Insights enhances security monitoring and performance optimization by collecting metrics, telemetry, and trace logs. These logs aid in proactive performance tuning to reduce costs and support incident response by helping identify the root cause of potential security or operational issues. Integrating Application Insights into a broader logging and monitoring strategy strengthens an organization’s overall observability and security posture.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -884,7 +935,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Enable Network Watcher for all Azure regions within your subscription to monitor and diagnose network activity.", "AdditionalInformation": "Network Watcher provides network diagnostic and visualization tools that help organizations analyze traffic, troubleshoot connectivity issues, and detect anomalies. Enabling it enhances network visibility, security monitoring, and operational insights across Azure environments.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -901,7 +953,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Ensure endpoint protection is installed on all Azure Virtual Machines (VMs) to provide real-time security monitoring and threat detection.", "AdditionalInformation": "Endpoint protection helps detect and remove malware, viruses, and other security threats, protecting VMs from compromise and unauthorized access. It also provides configurable alerts for suspicious activity, enhancing security monitoring and incident response across Azure environments.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -918,7 +971,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Ensure that all Windows and Linux Virtual Machines (VMs) have the latest OS patches and security updates applied to mitigate vulnerabilities and improve system stability.", "AdditionalInformation": "Keeping VMs updated helps address security vulnerabilities, bug fixes, and stability improvements. Microsoft Defender for Cloud continuously checks for missing critical and security updates using Windows Update, WSUS, or Linux package managers. Applying recommended updates reduces the risk of exploits, malware, and performance issues, ensuring a secure and resilient cloud environment.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -935,7 +989,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Ensure that all Microsoft Cloud Security Benchmark (MCSB) policies are enabled to effectively evaluate resource configurations against best practice security recommendations.", "AdditionalInformation": "The MCSB Policy Initiative enforces security best practices and helps ensure compliance with organizational and regulatory requirements. If a policy’s Effect is set to Disabled, it will not be evaluated, potentially preventing administrators from detecting security misconfigurations. Keeping all MCSB policies enabled allows Microsoft Defender for Cloud to assess relevant resources and provide actionable security insights to strengthen cloud security.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -952,7 +1007,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Ensure that security alert emails are enabled for subscription owners to receive notifications about potential security threats and vulnerabilities.", "AdditionalInformation": "Enabling security alert emails ensures that subscription owners are promptly informed of security incidents, threats, or misconfigurations detected by Microsoft Defender for Cloud. Timely notifications allow administrators to take immediate action, mitigate risks, and maintain a strong security posture within the Azure environment.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -969,7 +1025,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Configure Microsoft Defender for Cloud to send high-severity security alerts to a designated security contact email in addition to the subscription owner.", "AdditionalInformation": "By default, Microsoft Defender for Cloud notifies only subscription owners of critical security alerts. Adding a security contact email ensures that the security team is promptly informed of potential threats, allowing for faster response and risk mitigation to maintain a secure Azure environment.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -986,7 +1043,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Ensure that Diagnostic Settings are configured to log relevant control and management plane activities for enhanced visibility and security monitoring. (Note: A Diagnostic Setting must exist for this configuration to be available.)", "AdditionalInformation": "Diagnostic settings determine how logs are exported and stored. Capturing logs from the control and management plane enables proper alerting, monitoring, and analysis of administrative actions, helping to detect unauthorized changes and security threats.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1003,7 +1061,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Enable security alert emails to notify the subscription owner or designated security contacts about potential security threats.", "AdditionalInformation": "Ensuring security alerts are sent to the appropriate personnel allows for timely detection and response to security incidents. This helps mitigate risks by ensuring that critical threats and vulnerabilities are addressed promptly, improving the overall security posture of the Azure environment.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1020,7 +1079,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Enable Microsoft Defender for DNS to monitor and scan outgoing DNS traffic within a subscription for potential security threats. (Note: As of August 1, 2023, new subscribers receive DNS threat alerts as part of Defender for Servers P2.)", "AdditionalInformation": "Defender for DNS analyzes DNS queries against a dynamic threat intelligence list to detect potential malicious activity, compromised services, or security breaches. Monitoring DNS lookups helps identify and prevent threats such as data exfiltration, command and control (C2) communications, and phishing attacks, improving overall network security.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1037,7 +1097,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Create an activity log alert for the Create Policy Assignment event to track changes in Azure Policy assignments.", "AdditionalInformation": "Monitoring policy assignment events helps detect unauthorized or unintended changes in Azure policies, providing greater visibility and reducing the time required to identify and respond to policy modifications.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1054,7 +1115,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Create an activity log alert for the Delete Policy Assignment event to monitor and track policy removal activities in Azure Policy assignments.", "AdditionalInformation": "Monitoring policy deletions helps detect unauthorized or unintended changes, ensuring policy integrity and reducing the time required to identify and respond to security or compliance violations.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1071,7 +1133,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Create an Activity Log Alert for the Create or Update Network Security Group (NSG) event to track changes in network security configurations.", "AdditionalInformation": "Monitoring NSG creation and updates provides visibility into network access changes, helping to detect unauthorized modifications and identify potential security risks in a timely manner.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1088,7 +1151,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Create an Activity Log Alert for the Delete Network Security Group (NSG) event to monitor and track network security group removals.", "AdditionalInformation": "Monitoring NSG deletions provides visibility into network access changes, helping to detect unauthorized modifications and identify potential security threats before they impact the environment.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1105,7 +1169,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Create an Activity Log Alert for the Create or Update Security Solution event to track modifications to security solutions in your environment.", "AdditionalInformation": "Monitoring security solution changes provides visibility into updates, additions, or modifications to active security configurations. This helps detect unauthorized changes or suspicious activity and ensures that security controls remain properly configured.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1122,7 +1187,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Create an Activity Log Alert for the Delete Security Solution event to monitor and track the removal of security solutions in your environment.", "AdditionalInformation": "Monitoring security solution deletions helps detect unauthorized removals or suspicious activity, ensuring that critical security controls are not accidentally or maliciously disabled. This improves security visibility and helps maintain a strong security posture.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1139,7 +1205,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Create an Activity Log Alert for the Create or Update SQL Server Firewall Rule event to track changes in SQL Server firewall configurations.", "AdditionalInformation": "Monitoring firewall rule modifications provides visibility into network access changes, helping detect unauthorized updates that could expose the database to security risks. Timely alerts can reduce the time needed to identify and respond to suspicious activity, ensuring a secure SQL environment.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1156,7 +1223,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "Enable require_secure_transport on PostgreSQL flexible servers to enforce SSL connections between the database server and client applications, ensuring encrypted communication.", "AdditionalInformation": "Requiring SSL encryption helps protect data in transit from man-in-the-middle attacks by securing the connection between the database server and client applications. Enforcing secure transport prevents unauthorized access and strengthens data integrity and confidentiality.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1173,7 +1241,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "Enable require_secure_transport on MySQL flexible servers to enforce SSL encryption between the database server and client applications, ensuring secure communication.", "AdditionalInformation": "Requiring SSL connectivity protects data in transit from man-in-the-middle attacks by encrypting communication between client applications and the database server. Enforcing secure transport helps prevent unauthorized access and data interception, strengthening the overall security posture of the database.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1190,7 +1259,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "Ensure that the minimum TLS version for Azure Storage is set to TLS 1.2 or higher to mitigate security vulnerabilities associated with older TLS versions.", "AdditionalInformation": "TLS 1.0 is outdated and has known security vulnerabilities that can expose data in transit to attacks and interception. Upgrading to TLS 1.2 or later enhances encryption security, ensuring secure communication between clients and Azure Storage while reducing the risk of data compromise.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -1207,7 +1277,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "Configure Azure App Service to enforce HTTPS-only traffic, ensuring that all HTTP requests are automatically redirected to HTTPS for secure communication.", "AdditionalInformation": "Enforcing HTTPS protects data in transit by using TLS/SSL encryption, preventing man-in-the-middle attacks and ensuring secure authentication. Redirecting non-secure HTTP traffic to HTTPS enhances the confidentiality and integrity of application communications, reducing exposure to security vulnerabilities.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1224,7 +1295,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "Ensure that Azure App Service is configured to use TLS 1.2 or higher to secure data transmission and align with industry security standards.", "AdditionalInformation": "TLS 1.0 and 1.1 are outdated protocols with known vulnerabilities that expose web applications to security threats, including data interception and man-in-the-middle attacks. TLS 1.2 is the recommended encryption standard by industry frameworks such as PCI DSS, providing stronger encryption and improved security for web app connections.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1241,7 +1313,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "Ensure that Azure App Service is configured to use the latest supported HTTP version to benefit from security improvements, performance enhancements, and new functionalities.", "AdditionalInformation": "Newer HTTP versions provide security enhancements, performance optimizations, and better resource management. HTTP/2, for example, improves efficiency by addressing issues such as head-of-line blocking, header compression, and request prioritization. Keeping apps updated to the latest HTTP version ensures they leverage modern security protocols and enhanced data transmission capabilities while maintaining compatibility and performance standards.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -1258,7 +1331,8 @@ "SubSection": "4.2 At-Rest", "AttributeDescription": "Enable encryption at rest using Customer Managed Keys (CMK) instead of Microsoft Managed Keys to maintain greater control over sensitive data encryption in Azure Storage accounts.", "AdditionalInformation": "By default, Azure encrypts all storage resources (blobs, disks, files, queues, and tables) using Microsoft Managed Keys. However, using Customer Managed Keys (CMK) allows organizations to control, manage, and rotate their encryption keys through Azure Key Vault, ensuring compliance with security policies. CMKs also support automatic key version updates for enhanced security. Since this recommendation applies specifically to storage accounts holding critical data, its assessment remains manual rather than automated.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1275,7 +1349,8 @@ "SubSection": "4.2 At-Rest", "AttributeDescription": "Enable Transparent Data Encryption (TDE) with Customer-Managed Keys (CMK) to enhance control, security, and separation of duties over the TDE Protector. TDE encrypts data at rest using a database encryption key (DEK). Traditionally, DEKs were protected by Azure SQL Service-managed certificates, but with Customer-Managed Key support, the DEK can now be secured using an asymmetric key stored in Azure Key Vault. Azure Key Vault provides centralized key management, FIPS 140-2 Level 2 validated HSMs, and additional security through key and data separation. Based on business needs and data sensitivity, organizations should use Customer-Managed Keys for TDE encryption.", "AdditionalInformation": "Using Customer-Managed Keys for TDE gives organizations full control over encryption keys, including who can access them and when. Azure Key Vault serves as a secure external key management system, ensuring that TDE encryption keys remain protected from unauthorized access. When configured, the asymmetric key is set at the server level and inherited by all databases under that server, providing consistent encryption management across the environment.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1292,7 +1367,8 @@ "SubSection": "4.2 At-Rest", "AttributeDescription": "Enable Transparent Data Encryption (TDE) on all Azure SQL Servers to ensure real-time encryption and decryption of databases, backups, and transaction logs at rest. TDE operates seamlessly without requiring modifications to applications.", "AdditionalInformation": "TDE helps protect Azure SQL Databases from unauthorized access and malicious activity by encrypting data at rest. This ensures that database files, backups, and logs remain secure, reducing the risk of data breaches while maintaining operational transparency.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -1309,7 +1385,8 @@ "SubSection": "4.2 At-Rest", "AttributeDescription": "Configure storage accounts used for activity log exports to use Customer Managed Keys (CMK) for enhanced security and access control.", "AdditionalInformation": "Using CMKs for log storage provides additional confidentiality controls, ensuring that only users with read access to the storage account and explicit decrypt permissions can access the logs. This enhances data security by restricting unauthorized access and strengthening compliance with encryption and access management policies.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] } diff --git a/prowler/compliance/gcp/prowler_threatscore_gcp.json b/prowler/compliance/gcp/prowler_threatscore_gcp.json index f21949095f..ed60fed075 100644 --- a/prowler/compliance/gcp/prowler_threatscore_gcp.json +++ b/prowler/compliance/gcp/prowler_threatscore_gcp.json @@ -17,7 +17,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Service account keys consist of a key ID (private_key_id) and a private key, which are used to authenticate programmatic requests to Google Cloud services. It is recommended to regularly rotate service account keys to enhance security and reduce the risk of unauthorized access.", "AdditionalInformation": "Regularly rotating service account keys minimizes the risk of a compromised, lost, or stolen key being used to access cloud resources. Google-managed keys are automatically rotated daily for internal authentication, ensuring strong security. For user-managed (external) keys, users are responsible for key security, storage, and rotation. Since Google does not retain private keys once generated, proper key management practices must be followed. Google Cloud allows up to 10 external keys per service account, making it easier to rotate them without disruption. Implementing regular key rotation ensures that old keys are not left active, reducing the potential attack surface.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -34,7 +35,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "API keys should only be used when no other authentication method is available, as they pose significant security risks. Unused API keys with active permissions may still exist within a project, potentially exposing resources to unauthorized access. It is recommended to use standard authentication flows such as OAuth 2.0 or service account authentication instead.", "AdditionalInformation": "API keys are inherently insecure because they: Are simple encrypted strings that can be easily exposed in browsers, client-side applications, or devices. Do not authenticate users or applications making API requests. Can be accidentally leaked in logs, repositories, or web traffic.To enhance security, API keys should be avoided when possible, and unused keys should be deleted to minimize the risk of unauthorized access.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -51,7 +53,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "API keys should only be used when no other authentication method is available. If API keys are in use, it is recommended to rotate them every 90 days to minimize security risks.", "AdditionalInformation": "API keys are inherently insecure because: They are simple encrypted strings that can be easily exposed. They do not authenticate users or applications making API requests. They are often accessible to clients, increasing the risk of theft and misuse. Unlike credentials with expiration policies, stolen API keys remain valid indefinitely unless revoked or regenerated. Regularly rotating API keys reduces the risk of unauthorized access by ensuring that compromised keys cannot be used for extended periods. To enhance security, API keys should be rotated every 90 days or as part of a proactive security policy.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -68,7 +71,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Service accounts should not use user-managed keys, as they introduce security risks and require manual management. Instead, use Google Cloud-managed keys, which are automatically rotated and secured by Google.", "AdditionalInformation": "User-managed keys are downloadable and manually managed, making them vulnerable to leaks, mismanagement, and unauthorized access. In contrast, GCP-managed keys are non-downloadable, automatically rotated weekly, and securely handled by Google Cloud services like App Engine and Compute Engine. Managing user-generated keys requires key storage, distribution, rotation, revocation, and protectionall of which introduce potential security gaps. Common risks include keys being exposed in source code repositories, left in unsecured locations, or unintentionally shared. To minimize security risks, it is recommended to disable user-managed service account keys and rely on GCP-managed keys instead.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -85,7 +89,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "A service account is a special Google account assigned to an application or virtual machine (VM) rather than an individual user. It is used to authenticate API requests on behalf of the application. Service accounts should not be granted admin privileges to minimize security risks.", "AdditionalInformation": "Service accounts control resource access based on their assigned roles. Granting admin privileges to a service account allows full control over applications or VMs, enabling actions like deletion, updates, and configuration changes without user intervention. This increases the risk of misconfigurations, privilege escalation, or potential security breaches. To follow the principle of least privilege, it is recommended to restrict admin access for service accounts and assign only the necessary permissions.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -102,7 +107,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "The IAM policy on Cloud KMS cryptographic keys should not allow anonymous (allUsers) or public (allAuthenticatedUsers) access to prevent unauthorized key usage.", "AdditionalInformation": "Granting permissions to allUsers or allAuthenticatedUsers allows anyone to access the cryptographic keys, which can lead to data exposure, unauthorized encryption/decryption operations, or potential key compromise. This is particularly critical if sensitive data is protected using these keys. To maintain data security and compliance, ensure that Cloud KMS cryptographic keys are only accessible to authorized users, groups, or service accounts and do not have public or anonymous access permissions.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -119,7 +125,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Google Cloud Key Management Service (KMS) organizes cryptographic keys in a hierarchical structure to facilitate secure and efficient access control. Keys should be configured with a defined rotation schedule to ensure their cryptographic strength is maintained over time.", "AdditionalInformation": "Key rotation ensures that new key versions are automatically generated at regular intervals, reducing the risk of key compromise and unauthorized access. The key material (actual encryption bits) changes over time, even though the keys logical identity remains the same. Since cryptographic keys protect sensitive data, setting a specific rotation period ensures that encrypted data remains secure, minimizes the impact of a potential key leak, and aligns with best security practices.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -136,7 +143,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "The principle of Separation of Duties should be enforced when assigning Google Cloud Key Management Service (KMS) roles to users. This prevents excessive privileges and reduces security risks.", "AdditionalInformation": "The Cloud KMS Admin role grants the ability to create, delete, and manage keys, while the Cloud KMS CryptoKey Encrypter/Decrypter, Encrypter, and Decrypter roles control encryption and decryption of data. Granting both administrative and cryptographic privileges to the same user violates the Separation of Duties principle, potentially allowing unauthorized access to sensitive data. To mitigate risks and prevent privilege escalation, no user should hold the Cloud KMS Admin role along with any of the CryptoKey Encrypter/Decrypter roles. Enforcing Separation of Duties helps ensure secure key management and aligns with security best practices.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -153,7 +161,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "API keys should only be used when no other authentication method is available, as they pose a higher security risk due to their public visibility. To minimize exposure, API keys should be restricted to access only the specific APIs required by an application.", "AdditionalInformation": "API keys present several security risks, including: They are simple encrypted strings that can be easily exposed in client-side applications or browsers. They do not authenticate the user or application making API requests. They are often accessible to clients, making them susceptible to discovery and theft. Google recommends using standard authentication methods instead of API keys whenever possible. However, in limited scenarios where API keys are necessary (e.g., mobile applications using Google Cloud Translation API without a backend server), restricting API key access to only the required APIs helps enforce least privilege access and reduces attack surfaces.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -170,7 +179,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "It is recommended to assign the Service Account User (iam.serviceAccountUser) and Service Account Token Creator (iam.serviceAccountTokenCreator) roles to users at the service account level rather than granting them project-wide access.", "AdditionalInformation": "Service accounts are identities used by applications and virtual machines (VMs) to interact with Google Cloud APIs. They also function as resources with IAM policies defining who can use them. Granting service account permissions at the project level allows users to access all service accounts within the project, including any created in the future. This increases the risk of privilege escalation, as users with Compute Instance Admin or App Engine Deployer roles could execute code as a service account, gaining access to additional resources. To enforce the principle of least privilege, users should be assigned service account roles at the specific service account level rather than at the project level. This ensures that each user has access only to the necessary service accounts while preventing unintended privilege escalation.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -187,7 +197,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "It is recommended to enforce the principle of Separation of Duties when assigning service account-related IAM roles to users to prevent excessive privileges and security risks.", "AdditionalInformation": "The Service Account Admin role allows a user to create, delete, and manage service accounts, while the Service Account User role allows a user to assign service accounts to applications or compute instances. Granting both roles to the same user violates the Separation of Duties principle, as it would allow an individual to create and assign service accounts, potentially leading to unauthorized access or privilege escalation. To minimize security risks, no user should be assigned both Service Account Admin and Service Account User roles simultaneously. Enforcing Separation of Duties ensures better access control, reduces the risk of privilege abuse, and aligns with security best practices.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -204,7 +215,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "Cloud Audit Logging should be configured to track all administrative activities and read/write access to user data. This ensures comprehensive visibility into who accessed or modified resources within a project, folder, or organization.", "AdditionalInformation": "Cloud Audit Logging maintains two types of audit logs: 1. Admin Activity Logs Captures API calls and administrative actions that modify configurations or metadata. These logs are enabled by default and cannot be disabled. 2. Data Access Logs Tracks API calls that create, modify, or read user data. These logs are disabled by default and should be enabled for better monitoring. Data Access Logs provide three types of visibility: Admin Read Tracks metadata or configuration reads. Data Read Logs operations where user-provided data is accessed. Data Write Captures modifications to user-provided data.To ensure effective logging, it is recommended to: 1. Enable DATA_READ logs (for user activity tracking) and DATA_WRITE logs (to track modifications). 2. Apply audit logging to all supported services where Data Access logs are available. 3.Avoid exempting users from audit logs to maintain full tracking capabilities. Properly configuring Cloud Audit Logging helps strengthen security, detect unauthorized access, and ensure compliance with security policies.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -221,7 +233,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "In order to prevent unnecessary project ownership assignments to users or service accounts and mitigate potential misuse of projects and resources, all role assignments to roles/Owner should be monitored. Users or service accounts assigned the roles/Owner primitive role are considered project owners. The Owner role grants full control over the project, including: full viewer permissions on all GCP services, permissions to modify the state of all services, manage roles and permissions for the project and its resources, and set up billing for the project. Granting the Owner role allows the member to modify the IAM policy, which contains sensitive access control data. To minimize security risks, the Owner role should only be assigned when strictly necessary, and the number of users with this role should be kept to a minimum.", "AdditionalInformation": "Project ownership has the highest level of privileges within a project, making it a high-risk role if misused. To reduce potential security risks, all project ownership assignments and changes should be monitored and alerted to security teams or relevant recipients. Critical events to monitor include: sending project ownership invitations, acceptance or rejection of ownership invites, assigning the roles/Owner role to a user or service account, and removing a user or service account from the roles/Owner role. Monitoring these activities helps prevent unauthorized access, enforces least privilege principles, and improves security auditing and compliance.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -238,7 +251,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "Google Cloud Platform (GCP) services generate audit log entries in the Admin Activity and Data Access logs, providing visibility into who performed what action, where, and when within GCP projects. These logs capture key details such as the identity of the API caller, timestamp, source IP address, request parameters, and response data. Cloud audit logging records API calls made through the GCP Console, SDKs, command-line tools, and other GCP services, offering a comprehensive activity history for security monitoring and compliance.", "AdditionalInformation": "Admin activity and data access logs play a critical role in security analysis, resource change tracking, and compliance auditing. Configuring metric filters and alerts for audit configuration changes ensures that audit logging remains in its recommended state, allowing organizations to detect and respond to unauthorized modifications while ensuring all project activities remain fully auditable at any time.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -255,7 +269,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "It is recommended to set up a metric filter and alarm to track changes to Identity and Access Management (IAM) roles, including their creation, deletion, and updates. Google Cloud IAM provides predefined roles for granular access control but also allows organizations to create custom roles to meet specific needs.", "AdditionalInformation": "IAM role modifications can impact security by granting excessive privileges if not properly managed. Monitoring role creation, deletion, and updates helps detect potential misconfigurations or over-privileged roles early, ensuring that only intended access permissions are assigned within the organization.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -272,7 +287,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "A project should not have a default network to prevent the use of preconfigured and potentially insecure network settings.", "AdditionalInformation": "The default network automatically creates permissive firewall rules, including unrestricted internal traffic, SSH, RDP, and ICMP access, which increases the risk of unauthorized access. Additionally, it is an auto mode network, limiting flexibility in subnet configuration and restricting the use of Cloud VPN or VPC Network Peering. Organizations should create a custom network tailored to their security and networking needs and remove the default network to minimize exposure.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -289,7 +305,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "Projects should not have a legacy network configured to prevent the use of outdated and inflexible networking models. While new projects can no longer create legacy networks, older projects should be checked to ensure they are not still using them.", "AdditionalInformation": "Legacy networks use a single global IPv4 prefix and a single gateway IP for the entire network, lacking subnetting capabilities. This design limits flexibility, prevents migration to auto or custom subnet networks, and can create performance bottlenecks or single points of failure for high-traffic workloads. Removing legacy networks and transitioning to modern networking models improves scalability, security, and resilience.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -306,7 +323,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "GCP Firewall Rules control ingress and egress traffic within a VPC Network. These rules define traffic conditions such as ports, protocols, and source/destination IPs. Firewall rules operate at the VPC level and cannot be shared across networks. Only IPv4 addresses are supported, and it is crucial to restrict generic (0.0.0.0/0) incoming traffic, particularly for SSH on Port 22, to prevent unauthorized access.", "AdditionalInformation": "Firewall rules regulate traffic flow between instances and external networks. Allowing unrestricted inbound SSH access (0.0.0.0/0 on port 22) increases security risks by exposing instances to unauthorized access and brute-force attacks. To minimize threats, internet-facing access should be limited by specifying granular IP ranges and enforcing least privilege access.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -323,7 +341,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "GCP Firewall Rules control incoming (ingress) and outgoing (egress) traffic within a VPC Network. Each rule specifies traffic conditions, including ports, protocols, and source/destination IPs. These rules operate at the VPC level, cannot be shared across networks, and support only IPv4 addresses. To enhance security, unrestricted RDP access (0.0.0.0/0 on port 3389) should be avoided to prevent unauthorized remote connections.", "AdditionalInformation": "Firewall rules regulate traffic flow between instances and external networks. Allowing unrestricted RDP access from the Internet exposes virtual machines (VMs) to unauthorized access and brute-force attacks. To mitigate risks, internet-facing access should be restricted by enforcing least privilege access, defining specific IP ranges, and implementing secure remote access solutions such as Bastion hosts or VPNs.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -340,7 +359,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "IAM policies on Cloud Storage buckets should not allow anonymous or public access to prevent unauthorized data exposure.", "AdditionalInformation": "Granting public or anonymous access allows anyone to access the buckets contents, posing a security risk, especially if sensitive data is stored. Restricting access ensures that only authorized users can interact with the bucket, reducing the risk of data breaches.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -357,7 +377,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Verify the user connection limits for Cloud SQL SQL Server instances to ensure they are not unnecessarily restricting the number of simultaneous connections.", "AdditionalInformation": "The user connections setting controls the maximum number of concurrent user connections allowed on an SQL Server instance. By default, SQL Server dynamically adjusts the number of connections as needed, up to a maximum of 32,767. Setting an artificial limit may prevent new connections from being established, leading to potential data loss or service outages. It is recommended to review and adjust this setting as necessary to avoid disruptions.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -374,7 +395,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Disable the remote access database flag for Cloud SQL SQL Server instances to prevent execution of stored procedures from remote servers.", "AdditionalInformation": "The remote access option allows stored procedures to be executed from or on remote SQL Server instances. By default, this setting is enabled, which could be exploited for unauthorized query execution or Denial-of-Service (DoS) attacks by offloading processing to a target server. Disabling remote access enhances security by restricting stored procedure execution to the local server, reducing potential attack vectors. This recommendation applies to SQL Server database instances.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -391,7 +413,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Restrict database server access to only trusted networks and IP addresses, preventing connections from public IPs.", "AdditionalInformation": "Allowing unrestricted access to a database server increases the risk of unauthorized access and attacks. To minimize the attack surface, only trusted and necessary IP addresses should be whitelisted. Authorized networks should not be set to 0.0.0.0/0, which permits connections from anywhere. This control applies specifically to instances with public IP addresses.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -408,7 +431,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Configure Second Generation Cloud SQL instances to use private IPs instead of public IPs.", "AdditionalInformation": "Using private IPs for Cloud SQL databases enhances security by reducing exposure to external threats. It also improves network performance and lowers latency by keeping traffic within the internal network, minimizing the attack surface of the database.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -425,7 +449,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Ensure that IAM policies on BigQuery datasets do not allow anonymous or public access.", "AdditionalInformation": "Granting access to allUsers or allAuthenticatedUsers permits unrestricted access to the dataset, which can lead to unauthorized data exposure. To protect sensitive information, public or anonymous access should be strictly prohibited.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -442,7 +467,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "To enforce the principle of least privilege and prevent potential privilege escalation, instances should not be assigned the Compute Engine default service account with the scope Allow full access to all Cloud APIs.", "AdditionalInformation": "Google Compute Engine provides a default service account for instances to access necessary cloud services. This default service account has the Project Editor role, granting broad permissions over most cloud services except billing. When assigned to an instance, it can operate in three modes: 1.Allow default access Grants minimal required permissions (recommended). 2.Allow full access to all Cloud APIs Grants excessive access to all cloud services (not recommended). 3.Set access for each API Allows administrators to specify required APIs (preferred for least privilege). Assigning an instance the Compute Engine default service account with full access to all APIs can expose cloud operations to unauthorized users based on IAM roles. To reduce security risks, instances should use custom service accounts with minimal required permissions.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -459,7 +485,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Instances should use instance-specific SSH keys instead of project-wide SSH keys to enhance security and reduce the risk of unauthorized access.", "AdditionalInformation": "Project-wide SSH keys are stored in Compute Project metadata and can be used to access all instances within a project. While this simplifies SSH key management, it also increases security risksif a project-wide SSH key is compromised, all instances in the project could be affected. Using instance-specific SSH keys provides better security by limiting access to individual instances, reducing the attack surface in case of key compromise.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -476,7 +503,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "The interactive serial console allows direct access to a virtual machines serial ports, similar to using a terminal window. When enabled, it allows connections from any IP address, creating a potential security risk. It is recommended to disable interactive serial console support.", "AdditionalInformation": "A virtual machine instance has four virtual serial ports, often used by the operating system, BIOS, or other system-level entities for input and output. The first serial port (serial port 1) is commonly referred to as the serial console. Unlike SSH, the interactive serial console does not support IP-based access restrictions, meaning anyone with the correct SSH key, username, project ID, zone, and instance name could gain access. This exposes the instance to unauthorized access. To mitigate this risk, interactive serial console support should be disabled unless absolutely necessary.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -493,7 +521,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Google Compute Engine instances should not forward data packets unless explicitly required for routing purposes. By default, an instance cannot forward packets unless the source IP matches the instances IP address. Similarly, GCP wont deliver packets if the destination IP does not match the instance. To prevent unauthorized data forwarding, it is recommended to disable IP forwarding.", "AdditionalInformation": "When IP forwarding is enabled (canIpForward field), an instance can send and receive packets with non-matching source or destination IPs, effectively allowing it to act as a network router. This can lead to data loss, information disclosure, or unauthorized traffic routing. To maintain security and prevent misuse, IP forwarding should be disabled unless explicitly required for network routing configurations.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -510,7 +539,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Shielded VMs are hardened virtual machines on Google Cloud Platform (GCP) designed to protect against rootkits, bootkits, and other low-level attacks. They ensure verifiable integrity using Secure Boot, virtual Trusted Platform Module (vTPM)-enabled Measured Boot, and integrity monitoring.", "AdditionalInformation": "Shielded VMs use signed and verified firmware from Googles Certificate Authority to establish a root of trust. Secure Boot ensures only authentic software runs by verifying digital signatures, preventing unauthorized modifications. Integrity monitoring helps detect unexpected changes in the VMs boot process, while vTPM-enabled Measured Boot provides a baseline to compare against future boots. Enabling Shielded VMs enhances security by protecting against malware, unauthorized firmware changes, and persistent threats.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -527,7 +557,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "Compute instances should not be assigned external IP addresses to minimize exposure to the internet and reduce security risks.", "AdditionalInformation": "Public IP addresses increase the attack surface of Compute instances, making them more vulnerable to threats. Instead, instances should be placed behind load balancers or use private networking to control access and reduce the risk of unauthorized exposure.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -544,7 +575,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "It is recommended to create a log sink to export and store copies of all log entries. This enables log aggregation across multiple projects and allows integration with a Security Information and Event Management (SIEM) system for centralized monitoring.", "AdditionalInformation": "Cloud Logging retains logs for a limited period. To ensure long-term storage and better security analysis, logs should be exported to a destination such as Cloud Storage, BigQuery, or Cloud Pub/Sub. A log sink allows you to: Aggregate logs from multiple projects, folders, or billing accounts. Extend log retention beyond Cloud Loggings default retention period. Send logs to a SIEM system for real-time monitoring and threat detection. To ensure all logs are captured and exported: 1.Create a sink without filters to capture all log entries. 2.Choose an appropriate destination (e.g., Cloud Storage for long-term storage, BigQuery for analysis, or Pub/Sub for real-time processing). 3.Apply logging at the organization level to cover all associated projects. Implementing log sinks enhances security visibility, forensic capabilities, and compliance adherence across cloud environments.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -561,7 +593,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "It is recommended to configure a metric filter and alarm to monitor Virtual Private Cloud (VPC) Network Firewall rule changes. Tracking modifications to firewall rules helps ensure that unauthorized or unintended changes do not compromise network security.", "AdditionalInformation": "Firewall rules control ingress and egress traffic within a VPC. Monitoring create or update events provides visibility into network access changes and helps quickly detect potential security threats or misconfigurations, reducing the risk of unauthorized access.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -578,7 +611,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "It is recommended to configure a metric filter and alarm to monitor Virtual Private Cloud (VPC) network route changes. Keeping track of modifications ensures that unauthorized or unintended changes do not disrupt expected network traffic flow.", "AdditionalInformation": "GCP routes define how network traffic is directed between VM instances and external destinations. Monitoring route table changes helps ensure that traffic follows the intended path, preventing misconfigurations or malicious alterations that could lead to data exposure or connectivity issues.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -595,7 +629,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "It is recommended to configure a metric filter and alarm to monitor Virtual Private Cloud (VPC) network changes. This helps track modifications to VPC configurations and peer connections, ensuring that network traffic remains secure and follows the intended paths.", "AdditionalInformation": "It is recommended to configure a metric filter and alarm to monitor Virtual Private Cloud (VPC) network changes. This helps track modifications to VPC configurations and peer connections, ensuring that network traffic remains secure and follows the intended paths.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -612,7 +647,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "It is recommended to set up a metric filter and alarm to monitor Cloud Storage Bucket IAM changes. This ensures that any modifications to bucket permissions are tracked and reviewed in a timely manner.", "AdditionalInformation": "Monitoring changes to Cloud Storage IAM policies helps detect and correct unauthorized access or overly permissive configurations. This reduces the risk of data exposure or breaches by ensuring that sensitive storage buckets and their contents remain properly secured.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -629,7 +665,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "It is recommended to configure a metric filter and alarm to track SQL instance configuration changes. This helps in detecting and addressing misconfigurations that may impact security, availability, and compliance.", "AdditionalInformation": "Monitoring SQL instance configuration changes ensures that critical security settings remain properly configured. Misconfigurations, such as disabling auto backups, allowing untrusted networks, or modifying high availability settings, can lead to data loss, security vulnerabilities, or operational disruptions. Early detection of such changes helps maintain a secure and resilient SQL environment.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -646,7 +683,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Enabling logging on an HTTPS Load Balancer captures all network traffic and its destination, providing visibility into requests made to your web applications.", "AdditionalInformation": "Logging HTTPS network traffic helps monitor access patterns, troubleshoot issues, and enhance security by detecting suspicious activity or unauthorized access attempts.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -663,7 +701,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Flow Logs capture and record IP traffic to and from network interfaces within VPC subnets. These logs are stored in Stackdriver Logging, allowing users to analyze traffic patterns, detect anomalies, and optimize network performance. It is recommended to enable Flow Logs for all critical VPC subnets to enhance network visibility and security.", "AdditionalInformation": "VPC Flow Logs provide detailed insights into inbound and outbound traffic for virtual machines (VMs), whether they communicate with other VMs, on-premises data centers, Google services, or external networks. Enabling Flow Logs supports: Network monitoring Traffic analysis and cost optimization Incident investigation and forensics Real-time security threat detection For effective monitoring, Flow Logs should be configured to capture all traffic, use granular logging intervals, avoid log filtering, and include metadata for detailed investigations. Note that subnets reserved for internal HTTP(S) load balancing do not support Flow Logs.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -680,7 +719,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "The log_connections setting should be enabled to log all attempted connections to the PostgreSQL server, including successful client authentication.", "AdditionalInformation": "By default, PostgreSQL does not log connection attempts, making it harder to detect unauthorized access. Enabling log_connections provides visibility into all connection attempts, aiding in troubleshooting and identifying unusual or suspicious access patterns. This is particularly useful for security monitoring and incident response.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -697,7 +737,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "The log_disconnections setting should be enabled to log the end of each PostgreSQL session, including session duration.", "AdditionalInformation": "By default, PostgreSQL does not log session termination details, making it difficult to track session activity. Enabling log_disconnections helps monitor session durations and detect unusual activity. Combined with log_connections, it provides a complete audit trail of user access, aiding in troubleshooting and security monitoring.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -714,7 +755,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "The log_statement setting in PostgreSQL determines which SQL statements are logged. Acceptable values include none, ddl, mod, and all. A recommended setting is ddl, which logs all data definition statements unless otherwise specified by the organizations logging policy.", "AdditionalInformation": "Proper SQL statement logging is crucial for auditing and forensic analysis. If too many statements are logged, it can become difficult to extract relevant information; if too few are logged, critical details may be missing. Setting log_statement to an appropriate value, such as ddl, ensures a balance between comprehensive auditing and log manageability, aiding in database security and compliance.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -731,7 +773,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "The log_min_messages setting in PostgreSQL defines the minimum severity level for messages to be logged as errors. Accepted values range from DEBUG5 (least severe) to PANIC (most severe). Best practice is to set this value to ERROR, ensuring that only critical issues are logged unless an organizations policy requires a different threshold.", "AdditionalInformation": "Proper logging is essential for troubleshooting and forensic analysis. If log_min_messages is not configured correctly, important error messages may be missed or unnecessary logs may clutter records. Setting this parameter to ERROR helps maintain a balance between capturing relevant issues and avoiding excessive log noise, improving system monitoring and security.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -748,7 +791,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "The log_min_error_statement setting in PostgreSQL defines the minimum severity level for statements to be logged as errors. Valid values range from DEBUG5 (least severe) to PANIC (most severe). It is recommended to set this value to ERROR or stricter to ensure only relevant error statements are logged.", "AdditionalInformation": "Proper logging aids in troubleshooting and forensic analysis. If log_min_error_statement is set too leniently, excessive log entries may make it difficult to identify actual errors. Conversely, if it is set too strictly, important errors may be missed. Setting this parameter to ERROR or higher ensures that significant issues are recorded while avoiding unnecessary log clutter.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -765,7 +809,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "The log_min_duration_statement setting in PostgreSQL determines the minimum execution time (in milliseconds) required for a statement to be logged. It is recommended to disable this setting by setting its value to -1.", "AdditionalInformation": "Logging SQL statements may expose sensitive information, which could lead to security risks if recorded in logs. Disabling this setting ensures that confidential data is not inadvertently captured. This recommendation applies to PostgreSQL database instances.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -782,7 +827,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Ensure that the cloudsql.enable_pgaudit database flag is set to on for Cloud SQL PostgreSQL instances to enable centralized logging and auditing.", "AdditionalInformation": "Enabling the pgaudit extension provides detailed session and object-level logging, which helps organizations comply with security standards such as government, financial, and ISO regulations. This logging capability enhances threat detection by monitoring security events on the database instance. Additionally, enabling this flag allows logs to be sent to Google Logs Explorer for centralized access and monitoring. This recommendation applies specifically to PostgreSQL database instances.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -799,7 +845,8 @@ "SubSection": "3.2 Retention", "AttributeDescription": "Enabling retention policies on log storage buckets prevents logs from being overwritten or accidentally deleted. It is recommended to configure retention policies and enable Bucket Lock for all storage buckets used as log sinks.", "AdditionalInformation": "Cloud Logging allows logs to be exported to storage buckets through sinks. Without a retention policy, logs can be altered or deleted, making it difficult to perform security investigations or comply with audit requirements. To ensure logs remain intact for forensics and security analysis: 1.Set a retention policy on log storage buckets to prevent early deletion. 2.Enable Bucket Lock to make the policy immutable, ensuring logs cannot be altered even by privileged users. 3.Apply appropriate access controls to protect logs from unauthorized access. By implementing retention policies and Bucket Lock, organizations preserve critical security logs, prevent attackers from covering their tracks, and enhance compliance with security regulations.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -816,7 +863,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Google Cloud Asset Inventory provides a historical view of GCP resources and IAM policies using a time-series database. It captures metadata on cloud resources, policy configurations, and runtime data. Enabling Cloud Asset Inventory allows for efficient searching and exporting of asset data.", "AdditionalInformation": "Cloud Asset Inventory enhances security analysis, resource change tracking, and compliance auditing by maintaining a detailed history of GCP resources and their configurations. Enabling it across all GCP projects ensures visibility into changes, helping organizations detect misconfigurations, track policy changes, and strengthen security posture.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -833,7 +881,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "GCP Access Approval allows organizations to require explicit approval before Google support personnel can access their projects. Administrators can assign security roles in IAM to specific users who can review and approve these requests. Notifications of access requests, including the requesting Google employees details, are sent via email or Pub/Sub messages, providing transparency and control.", "AdditionalInformation": "Managing who accesses your organizations data is critical for information security. While Google support may require access for troubleshooting, Access Approval ensures that access is only granted when explicitly authorized. This feature adds an additional layer of security and logging, ensuring that only approved Google personnel can access sensitive information.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -850,7 +899,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "Cloud DNS provides a scalable and reliable domain name system (DNS) service. Domain Name System Security Extensions (DNSSEC) enhance DNS security by protecting domains against DNS hijacking, man-in-the-middle attacks, and other threats.", "AdditionalInformation": "DNSSEC cryptographically signs DNS records, ensuring the integrity and authenticity of DNS responses. Without DNSSEC, attackers can manipulate DNS lookups, redirecting users to malicious websites through DNS hijacking or spoofing attacks. Enabling DNSSEC helps prevent unauthorized modifications to DNS records, reducing the risk of phishing, malware distribution, and other cyber threats.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -867,7 +917,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "Require all incoming connections to SQL database instances to use SSL encryption.", "AdditionalInformation": "Unencrypted SQL database connections are vulnerable to man-in-the-middle (MITM) attacks, which can expose sensitive data such as credentials, queries, and results. Enforcing SSL ensures secure communication by encrypting data in transit, protecting against interception and unauthorized access. This recommendation applies to PostgreSQL, MySQL (Generation 1 and 2), and SQL Server 2017 instances.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -884,7 +935,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "DNSSEC (Domain Name System Security Extensions) relies on cryptographic algorithms to ensure the integrity and authenticity of DNS responses. It is important to use strong and recommended algorithms for key signing to maintain robust security. SHA-1 is deprecated and requires explicit approval from Google if used.", "AdditionalInformation": "DNSSEC signing algorithms play a critical role in securing DNS transactions. Using weak or outdated algorithms can expose DNS infrastructure to spoofing, hijacking, and other attacks. Organizations should select recommended and secure algorithms when enabling DNSSEC to protect DNS records from unauthorized modifications. If adjustments to DNSSEC settings are required, DNSSEC must be disabled and re-enabled with the updated configurations.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -901,7 +953,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "DNSSEC (Domain Name System Security Extensions) enhances DNS security by using cryptographic algorithms for zone signing and transaction security. It is essential to use strong and recommended algorithms for key signing. SHA-1 has been deprecated and requires Googles explicit approval and a support contract if used.", "AdditionalInformation": "Using weak or outdated cryptographic algorithms compromises DNS integrity and exposes systems to threats like spoofing and hijacking. Organizations should ensure that DNSSEC settings use strong, recommended algorithms. If DNSSEC is already enabled and changes are needed, it must be disabled and re-enabled with updated configurations to apply the changes effectively.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -918,7 +971,8 @@ "SubSection": "4.2 At-Rest", "AttributeDescription": "Customer-Supplied Encryption Keys (CSEK) is a feature available in Google Cloud Storage and Google Compute Engine, allowing users to supply their own encryption keys. When you provide your key, Google uses it to protect the Google-generated keys that are responsible for encrypting and decrypting your data. By default, Google Compute Engine encrypts all data at rest automatically, managing this encryption for you with no additional action required. However, if you wish to have full control over the encryption process, you can choose to supply your own encryption keys.", "AdditionalInformation": "By default, Compute Engine automatically encrypts all data at rest, with the service managing the encryption without any further input required from you or your application. However, if you require complete control over encryption, you have the option to provide your own encryption keys to manage the encryption of instance disks.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -935,7 +989,8 @@ "SubSection": "4.2 At-Rest", "AttributeDescription": "When using Dataproc, the data associated with clusters and jobs is stored on Persistent Disks (PDs) linked to the Compute Engine VMs in your cluster and in a Cloud Storage staging bucket. This data is encrypted using a Google-generated Data Encryption Key (DEK) and a Key Encryption Key (KEK). The Customer-Managed Encryption Keys (CMEK) feature allows you to create, use, and revoke the KEK, although Google still controls the DEK used to encrypt the data.", "AdditionalInformation": "Dataproc cluster data is encrypted using Google-managed keys: the Data Encryption Key (DEK) and the Key Encryption Key (KEK). If you wish to have control over the encryption of your cluster data, you can use your own Customer-Managed Keys (CMKs). Cloud KMS Customer-Managed Keys can add an extra layer of security and are commonly used in environments with strict compliance and security requirements.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -952,7 +1007,8 @@ "SubSection": "4.2 At-Rest", "AttributeDescription": "Ensure that BigQuery datasets are encrypted using Customer-Managed Keys (CMKs) to gain more granular control over the data encryption and decryption process.", "AdditionalInformation": "For enhanced control over encryption, Customer-Managed Encryption Keys (CMEK) can be implemented as a key management solution for BigQuery datasets.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -969,7 +1025,8 @@ "SubSection": "4.2 At-Rest", "AttributeDescription": "Ensure that BigQuery tables are encrypted using Customer-Managed Keys (CMKs) for more granular control over the data encryption and decryption process.", "AdditionalInformation": "For greater control over encryption, Customer-Managed Encryption Keys (CMEK) can be utilized as the key management solution for BigQuery tables.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] } diff --git a/prowler/compliance/m365/prowler_threatscore_m365.json b/prowler/compliance/m365/prowler_threatscore_m365.json index 24d100064d..ace3eee2a6 100644 --- a/prowler/compliance/m365/prowler_threatscore_m365.json +++ b/prowler/compliance/m365/prowler_threatscore_m365.json @@ -17,7 +17,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Microsoft cloud-only accounts are governed by a built-in password policy that cannot be customized. The only configurable options are the password expiration period and whether password expiration is enabled at all.", "AdditionalInformation": "Modern security guidance from organizations like NIST and Microsoft recommends against forcing regular password changes unless there is a known compromise or the user has forgotten the password. Arbitrary password expiration policies can lead to weaker password practices, such as predictable patterns or reused credentials. This is especially relevant even in single-factor (password-only) scenarios. When combined with strong security measures like Multi-Factor Authentication (MFA) and Entra ID password protection, the need for periodic password changes becomes less critical. As such, it’s more effective to focus on strengthening overall authentication practices rather than enforcing frequent password resets.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -34,7 +35,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Multifactor Authentication (MFA) enhances account security by requiring users to provide at least two forms of identity verification during sign-in—such as a password and a one-time code from a mobile device, biometric scan, or authentication app. It is critical to ensure that all users in administrator roles have MFA enabled to protect privileged access.", "AdditionalInformation": "MFA significantly reduces the risk of unauthorized access by requiring attackers to compromise multiple independent authentication factors. For administrative accounts—often targeted due to their elevated privileges—this additional layer of security is essential. Enforcing MFA for admins helps ensure that only authorized individuals can access sensitive systems and configurations, thereby strengthening the overall security posture of the organization.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -51,7 +53,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Enable Multifactor Authentication (MFA) for all users in the Microsoft 365 tenant to strengthen identity security. Once enabled, users will be prompted to verify their identity using a second factor during sign-in. Common second factors include a one-time code sent via SMS or generated through an authentication app such as Microsoft Authenticator.", "AdditionalInformation": "MFA adds a critical layer of protection by requiring users to provide two or more independent forms of authentication before access is granted. This significantly reduces the likelihood of unauthorized access, as an attacker would need to compromise both the primary credentials and the second authentication factor. Enabling MFA across all user accounts helps protect the organization from phishing, credential theft, and other identity-based threats.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -68,7 +71,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Microsoft Entra ID supports a variety of authentication and authorization protocols, including legacy authentication methods. Legacy authentication typically refers to Basic Authentication, which prompts users to submit a username and password without support for modern security features like Multifactor Authentication (MFA). Several messaging and connection protocols fall under legacy authentication, including: • Authenticated SMTP – Sends authenticated email messages. • Autodiscover – Helps Outlook and Exchange ActiveSync (EAS) clients locate mailboxes. • Exchange ActiveSync (EAS) – Connects mobile devices to Exchange Online. • Exchange Online PowerShell – Requires the Exchange Online PowerShell Module when Basic Auth is blocked. • Exchange Web Services (EWS) – Used by Outlook, Outlook for Mac, and third-party applications. • IMAP4 and POP3 – Used by legacy email clients. • MAPI over HTTP (MAPI/HTTP) – Primary protocol for Outlook 2010 SP2 and newer. • Offline Address Book (OAB) – Downloads address lists for Outlook. • Outlook Anywhere (RPC over HTTP) – Legacy access method for Outlook. • Reporting Web Services – Retrieves reporting data from Exchange Online.•Universal Outlook – Used by the Windows 10 Mail and Calendar app. • Other clients – Protocols identified as using legacy authentication patterns.", "AdditionalInformation": "Legacy authentication protocols do not support multifactor authentication, making them a common attack vector for credential theft and brute-force attacks. Blocking legacy authentication significantly reduces the organization’s attack surface and helps enforce modern, more secure sign-in methods that support MFA.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -85,7 +89,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Authentication Strength is a Conditional Access (CA) control in Microsoft Entra ID that allows administrators to define which authentication methods are permitted for accessing specific resources. This enables a tailored approach to security—stronger methods can be enforced for sensitive assets, while less secure methods may be acceptable for lower-risk scenarios. Microsoft provides three built-in authentication strength levels: • MFA Strength • Passwordless MFA Strength • Phishing-resistant MFA Strength It is recommended that all users in administrator roles are protected by a Conditional Access policy that enforces Phishing-resistant MFA Strength. Administrators can meet this requirement by registering and using one of the following phishing-resistant authentication methods: • FIDO2 Security Key • Windows Hello for Business • Certificate-based Authentication (CBA) Note: Configuration steps for these methods (e.g., setting up FIDO2 keys) are not covered here but are available in Microsoft’s documentation. The Conditional Access policy only enforces that at least one of these methods is used. Warning: Ensure that administrators are pre-registered for one of the supported strong authentication methods before enforcing the policy. As also recommended elsewhere in the CIS Benchmark, a break-glass account should be excluded from this policy to maintain emergency access.", "AdditionalInformation": "As MFA adoption increases, so does the sophistication of attacks designed to bypass it. Phishing-resistant authentication methods are more secure because they eliminate passwords from the authentication process. These methods rely on strong public/private key cryptography and ensure that authentication can only occur between trusted devices and providers—preventing login attempts from fake or phishing websites.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -102,7 +107,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Conditional Access (CA) policies can be configured to enforce access controls based on whether a device is compliant or Microsoft Entra hybrid joined. These conditions allow organizations to distinguish between managed and unmanaged devices, enabling more granular enforcement of authentication policies. • The Require device to be marked as compliant control ensures that devices meet the compliance standards defined in Intune compliance policies. Devices must first be enrolled in Intune Mobile Device Management (MDM) before these policies can be evaluated. • The Require Microsoft Entra hybrid joined device control applies to devices synchronized from an on-premises Active Directory environment, marking them as trusted within the hybrid identity model. When both conditions are included in the same Conditional Access policy, the evaluation functions as an OR logic—only one of the two conditions needs to be met for the user to authenticate successfully from a device. Recommended configuration: • Require device to be marked as compliant • Require Microsoft Entra hybrid joined device • Require one of the selected controls", "AdditionalInformation": "Managed devices are generally more secure due to enforced configurations such as Group Policy, mobile device compliance policies, endpoint detection and response (EDR), managed patching, and centralized alerting. Limiting access to only compliant or hybrid joined devices ensures that users are authenticating from secure environments. This policy helps mitigate the risk of compromised credentials by requiring attackers to first obtain access to a trusted device. When combined with additional CA controls—such as multi-factor authentication—it adds a further barrier to unauthorized access and strengthens the organization’s overall security posture.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -119,7 +125,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Conditional Access (CA) policies can be used to restrict the registration of multi-factor authentication (MFA) methods based on a device’s compliance status or whether it is Microsoft Entra hybrid joined. This allows organizations to enforce that only managed devices are used when users register security information.• Require device to be marked as compliant enforces that the device meets all conditions defined in Intune compliance policies. Devices must be enrolled in Intune Mobile Device Management (MDM) for this to apply. • Require Microsoft Entra hybrid joined device ensures the device has been synchronized from an on-premises Active Directory, marking it as trusted within the hybrid identity environment. When both controls are included in a Conditional Access policy for MFA registration, they operate with OR logic—only one of the conditions must be satisfied for the user to proceed. Recommended configuration: Restrict the “Register security information” operation to devices that are either compliant or Microsoft Entra hybrid joined.", "AdditionalInformation": "Restricting MFA registration to trusted, managed devices significantly reduces the risk of attackers using stolen credentials to set up fraudulent authentication methods. Accounts that exist but are not yet registered for MFA are particularly vulnerable to takeover. This policy ensures that security information is registered only from secured, policy-enforced endpoints—which often include additional layers of protection such as endpoint detection, encryption, and monitoring—thereby reducing the attack surface and strengthening the organization’s identity security posture.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -136,7 +143,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Modern authentication in Microsoft 365 enables advanced authentication capabilities such as multifactor authentication (MFA), smart card support, certificate-based authentication (CBA), and integration with third-party SAML identity providers. It replaces legacy authentication protocols with more secure, token-based authentication methods. It is recommended to enforce modern authentication for SharePoint applications to ensure secure access.", "AdditionalInformation": "If SharePoint applications are allowed to use basic authentication, they may bypass strong authentication controls such as MFA, exposing the environment to potential compromise. Enforcing modern authentication ensures that all sessions between users, applications, and SharePoint utilize robust, policy-enforced authentication methods—significantly reducing the risk of credential theft and unauthorized access.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -153,7 +161,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "SharePoint Online allows users to share files, folders, and entire site collections both internally and externally. With appropriate permissions, internal users can extend access to external collaborators, enabling seamless cross-organizational collaboration.", "AdditionalInformation": "While external sharing supports productivity and collaboration, it’s essential that owners of files, folders, or site collections retain control over what content is shared and with whom. This helps prevent unauthorized data disclosure and ensures that sensitive information is only accessible to intended recipients. Proper sharing governance empowers data owners to make informed decisions and reinforces accountability across the organization.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -170,7 +179,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "The “Multi-Factor Authentication (MFA) Status” setting determines whether users are required to authenticate using a second factor beyond their password. For privileged users—those with administrative roles or elevated permissions—this setting should be set to “Enabled” to ensure that MFA is enforced whenever they sign in.", "AdditionalInformation": "Privileged accounts have access to critical systems, sensitive data, and administrative functions that, if compromised, could lead to significant security breaches. Enforcing MFA for all privileged users greatly reduces the risk of unauthorized access by requiring attackers to compromise two or more independent authentication factors. MFA is one of the most effective defenses against phishing, credential theft, and brute-force attacks, making it a foundational control for protecting administrative accounts in any secure identity and access management strategy.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -187,7 +197,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "The “Multi-Factor Authentication (MFA) Status” setting determines whether users must verify their identity using a second factor in addition to their password. For non-privileged users—those without administrative or elevated permissions—it is recommended that MFA is enabled across the entire user base to provide comprehensive protection against identity-based attacks.", "AdditionalInformation": "While non-privileged users may not have administrative access, they still have access to email, internal systems, and potentially sensitive business data. These accounts are often targeted in phishing campaigns, credential stuffing attacks, and social engineering tactics to gain an initial foothold in the organization. Enforcing MFA for all users significantly reduces the likelihood of account compromise by requiring a second form of verification, such as a mobile app, hardware token, or one-time passcode. This broad protection is essential in a Zero Trust security model and ensures that every account—regardless of privilege—is secured against unauthorized access.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -204,7 +215,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "The External Callouts feature in Exchange Online introduces a native visual indicator for emails originating from outside the organization. When enabled, this feature displays a localized “External” tag within supported Outlook clients, along with additional user interface elements at the top of the message reading pane. These enhancements help users easily identify and verify the actual sender’s email address, providing critical context when evaluating incoming messages. The feature is enabled via PowerShell using the Set-ExternalInOutlook cmdlet, and typically becomes visible to end users within 24–48 hours, provided their Outlook client version supports the functionality. Note: While Exchange administrators have historically used mail flow rules to prepend “[External]” or similar text to subject lines, this method is less reliable and may not consistently apply across all message types or clients. The CIS Benchmark recommends enabling the native External tagging feature for a more consistent and secure user experience.", "AdditionalInformation": "Tagging emails from external senders increases user awareness and vigilance, enabling recipients to recognize messages that originate outside the organization’s trusted environment. This visual cue acts as a simple but effective layer of defense, encouraging users to treat unexpected or suspicious emails with caution—especially those that may be phishing attempts, impersonation attacks, or social engineering lures. By clearly marking external messages, organizations enhance their users’ ability to make informed security decisions, reducing the likelihood of credential compromise, malware infection, or inadvertent data disclosure.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -221,7 +233,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "Modern authentication in Microsoft 365 enables advanced authentication capabilities such as multi-factor authentication (MFA), smart card-based login, certificate-based authentication (CBA), and integration with third-party SAML identity providers. When enabled for Exchange Online, clients like Outlook 2016 and Outlook 2013 utilize modern authentication protocols (such as OAuth 2.0) to securely connect to Microsoft 365 mailboxes. If modern authentication is disabled, these clients fall back to basic authentication, a legacy protocol that transmits credentials in plaintext and lacks support for MFA. Newer clients—including Outlook for Mac 2016, Outlook Mobile, and all Microsoft 365 Apps for Enterprise versions of Outlook—are built to use modern authentication by default.", "AdditionalInformation": "Allowing basic authentication significantly weakens the security posture of an organization. It bypasses modern controls like multi-factor authentication, exposing user credentials to a higher risk of compromise through phishing, brute-force attacks, or session hijacking. By enabling modern authentication in Exchange Online, organizations enforce the use of strong, token-based authentication methods that are resistant to credential theft and session replay. This is critical for protecting sensitive email data and ensuring secure communication between user devices and Microsoft 365 services. Enabling modern authentication also supports compliance mandates and zero-trust principles, making it a foundational step in securing user identities and email infrastructure.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -238,7 +251,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "This policy setting in Microsoft Teams controls who is allowed to bypass the meeting lobby and directly join a meeting. When properly configured, only explicitly invited attendees—either those directly invited by the organizer or individuals to whom the invitation was intentionally forwarded—can skip the lobby and enter the meeting. All other participants, including anonymous users or those with access to the meeting link but not explicitly invited, must wait in the lobby for approval by the meeting organizer or a designated participant.", "AdditionalInformation": "For meetings involving sensitive, confidential, or regulated information, it is essential to tightly control participant access. Requiring all non-invited individuals to wait in the lobby allows the organizer to review and manually admit attendees, thereby preventing unauthorized access or accidental exposure of sensitive content. Additionally, this setting prevents misuse of the meeting link by anonymous or unintended users, such as initiating unauthorized meetings outside scheduled times. Even organizations that do not regularly operate in high-security (Level 2) environments but occasionally handle sensitive data should consider enabling this policy to reinforce data protection and meeting integrity. By limiting automatic entry to only verified, intended participants, this control supports secure collaboration, reduces risk of information leakage, and enhances confidence in Microsoft Teams as a platform for sensitive communications.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -255,7 +269,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "This policy setting in Microsoft Teams determines whether anonymous participants can start a meeting before a verified user from the organization or a trusted external organization has joined. When this setting is enabled, anonymous users and dial-in callers must wait in the meeting lobby until the meeting is initiated by an authenticated participant. Anonymous participants are defined as: • Users not signed in with a work or school account • Participants from non-trusted organizations, based on external access configuration • Individuals from organizations without mutual trust relationships Note: This setting only applies when the “Who can bypass the lobby” policy is set to Everyone. If the broader setting “Anonymous users can join a meeting” is disabled at the organizational level, this policy applies only to dial-in callers.", "AdditionalInformation": "Disallowing anonymous participants from starting meetings helps mitigate the risk of meeting abuse, such as spamming, hijacking, or unauthorized use of Teams meetings for unintended purposes. Anonymous users pose a higher risk because their identities cannot be verified, and they are not subject to organizational controls or compliance policies. Requiring an authenticated user to start the meeting ensures that someone with verified access and accountability is present before the session begins. This adds a layer of security and governance, especially in meetings that could involve sensitive discussions or are exposed to a wide range of external participants. Enforcing this policy supports a secure and controlled meeting environment and aligns with best practices for preventing unauthorized or disruptive activity in collaborative platforms.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -272,7 +287,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "This policy setting in Microsoft Teams defines who can bypass the meeting lobby and join a meeting directly, versus who must wait in the lobby until admitted by a meeting organizer, co-organizer, or designated presenter. Options include allowing access to everyone, people in your organization, trusted external organizations, or only invited users.", "AdditionalInformation": "Restricting direct access to meetings—particularly those that involve sensitive, confidential, or regulated information—ensures that only authorized and expected attendees can participate. Requiring participants to wait in the lobby gives meeting organizers the opportunity to vet and approve each attendee before admitting them. This policy also helps prevent unauthorized access through forwarded meeting links and reduces the risk of anonymous users joining meetings at unscheduled times, which can lead to disruptions or even security breaches. Enforcing lobby controls aligns with zero trust principles and is a best practice for maintaining the integrity and confidentiality of Teams meetings.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -289,7 +305,8 @@ "SubSection": "1.1 Authentication", "AttributeDescription": "This policy setting in Microsoft Teams determines whether dial-in participants—users who join meetings by phone—can bypass the lobby and join directly, or if they must wait in the lobby until admitted by a meeting organizer, co-organizer, or presenter.", "AdditionalInformation": "Dial-in participants typically cannot be authenticated in the same way as users joining via Teams apps or web clients, making it more difficult to verify their identity. For meetings that may involve sensitive, confidential, or regulated information, it is essential that the meeting organizer has the opportunity to manually vet and admit these participants.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -306,7 +323,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Microsoft 365 Groups serve as the foundation for collaboration across Microsoft 365, providing shared resources (e.g., Outlook inbox, SharePoint site, Teams workspace) to group members. While various group types exist, this recommendation specifically addresses Microsoft 365 Groups. By default, when a Microsoft 365 Group is created via the admin panel, its privacy setting is set to “Public”, meaning anyone in the organization can access its content unless the setting is manually changed.", "AdditionalInformation": "To protect sensitive organizational data, it’s important to ensure that only authorized and managed public groups exist. Public groups expose their content to all users in the organization through several access paths: • Users can add themselves to a public group using the Azure portal. • Users can request access via the Access Panel’s Groups app—this sends a request to the group owner but still grants immediate access. • Users may discover and directly access the associated SharePoint site via a guessable or easily discoverable URL.While admins are notified when Azure Portal access is used, other methods may not generate alerts. If group privacy settings are not properly managed, sensitive data could be inadvertently exposed. For this reason, privacy settings should be reviewed and adjusted to Private by default unless a public setting is explicitly required and approved.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -323,7 +341,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "A dynamic group in Microsoft Entra ID automatically manages group membership based on user attributes such as userType, department, or country/region. Administrators can define rules to ensure that users meeting specific criteria are added to—or removed from—a group without manual intervention. The recommended configuration is to create a dynamic group that specifically includes guest accounts.", "AdditionalInformation": "Dynamic groups streamline user management by automating group assignments. By including guest users in a dynamic group, organizations can consistently apply existing Conditional Access policies, access controls, and other security measures. This ensures that new guest accounts are governed by the same security standards as existing ones, reducing the risk of misconfiguration or oversight.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -340,7 +359,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "The admin consent workflow provides a secure and controlled process for granting access to applications that require administrator approval. When a user attempts to access an application but lacks permission to grant consent, they can submit a request for review. This request is sent via email to designated administrators, who act as reviewers. Once a decision is made, the user is notified of the outcome.", "AdditionalInformation": "The admin consent workflow (Preview) enhances security by ensuring that access to sensitive applications is reviewed and approved by authorized administrators. It prevents users from unintentionally granting permissions to potentially risky applications while maintaining a clear approval process with full visibility and accountability.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -357,7 +377,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Microsoft Entra ID Protection uses user risk policies to evaluate the likelihood that a user account has been compromised. These policies assign a risk level (low, medium, or high) based on detected anomalies, such as unfamiliar sign-ins, leaked credentials, or atypical behavior. Note: While Entra ID Protection includes built-in user risk policies, Microsoft strongly recommends implementing risk-based Conditional Access (CA) policies instead of relying on the older, legacy policy model. The modern CA approach offers several key advantages:• Access to enhanced diagnostic and troubleshooting data • Integration with report-only mode for safe testing • Support for automation via Microsoft Graph API • Greater flexibility through advanced Conditional Access attributes, such as sign-in frequency and session controls", "AdditionalInformation": "Enabling user risk policies through Conditional Access allows organizations to automatically respond to suspected account compromise by enforcing real-time controls—such as blocking access or requiring secure reauthentication. This proactive approach enhances the organization’s ability to detect and mitigate identity-based threats before they escalate.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -374,7 +395,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Microsoft Entra ID Protection evaluates sign-in risk by detecting potentially suspicious sign-in attempts—both in real time and through offline analysis. A risky sign-in indicates that the attempt may not have been performed by the legitimate account owner, based on signals such as unusual location, device anomalies, or unfamiliar sign-in behavior. Note: Although Microsoft Entra ID Protection includes built-in sign-in risk policies, it is strongly recommended to implement risk-based policies using Conditional Access instead of relying on legacy risk policies. The Conditional Access method provides several key advantages: • Access to enhanced diagnostic and investigation data • Ability to test with report-only mode • Integration with Microsoft Graph API for automation and management • Use of additional CA attributes such as sign-in frequency and session controls", "AdditionalInformation": "Enabling a sign-in risk Conditional Access policy allows organizations to automatically challenge suspicious sign-ins with multi-factor authentication (MFA). This reduces the likelihood of unauthorized access by requiring an additional verification step whenever unusual activity is detected, strengthening identity protection and reducing the risk of account compromise.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -391,7 +413,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "External sharing settings in Microsoft 365 govern how content is shared outside the organization. While each SharePoint site can have its own sharing configuration, it must be equal to or more restrictive than the organization-wide setting. The recommended configuration is “New and existing guests” or a more restrictive option. This setting requires external users to either sign in with a Microsoft 365 work or school account, a personal Microsoft account, or verify their identity using a one-time passcode. Users can share content with existing guests in the directory or invite new guests, who will be added to the directory upon sign-in.", "AdditionalInformation": "Requiring guest authentication ensures that external users are registered and identifiable within the organization’s directory. This allows administrators to apply governance controls—such as Conditional Access policies, group-based restrictions, and activity monitoring—to external identities. By enforcing authenticated sharing, organizations maintain visibility and control over externally shared resources, reducing the risk of unauthorized data access and supporting compliance with security and privacy policies.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -408,7 +431,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Organizations can control how documents are shared externally by configuring domain-based restrictions. This can be done by either blocking specific external domains or allowing sharing only with a defined list of trusted domains. These settings apply to services like SharePoint and OneDrive to help manage external collaboration securely.", "AdditionalInformation": "Restricting document sharing to approved domains reduces the risk of accidental or malicious data exposure. Attackers may attempt to exfiltrate sensitive information by sharing it with external entities. By limiting sharing to trusted domains, organizations minimize their external attack surface and maintain greater control over data flow.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -425,7 +449,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Anti-spam protection in Exchange Online leverages configurable policies to reduce the volume of unwanted emails—such as junk, bulk, and phishing messages—received by users. These policies include several configurable lists that influence how email from specific sources is treated:• Allowed Senders List • Allowed Domains List • Blocked Senders List • Blocked Domains List While these features offer flexibility, it is strongly recommended not to define any entries in the Allowed Domains List in a production environment.", "AdditionalInformation": "When a sender or domain is added to the Allowed Domains List, their messages bypass key security checks—including spam filtering and authentication mechanisms like SPF, DKIM, and DMARC—unless flagged as containing malware or high-confidence phishing. This introduces a significant security risk, as attackers may exploit these exceptions to deliver malicious emails directly to users’ inboxes. The risk is especially high when common or widely used domains are allow-listed, as these are frequent targets for spoofing attempts. Moreover, Microsoft’s official guidance clearly states that allowed domains should only be used for testing purposes, not for general use in production environments. To maintain a strong email security posture, organizations should avoid defining Allowed Domains and instead rely on more controlled methods such as block lists, quarantine policies, or targeted safe sender configurations for trusted entities.", - "LevelOfRisk": 1 + "LevelOfRisk": 1, + "Weight": 1 } ] }, @@ -443,7 +468,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Exchange Online provides multiple mechanisms to manage and control the flow of outbound email messages, helping organizations prevent unauthorized data exfiltration. These mechanisms include: • Remote Domain Settings • Transport Rules • Anti-Spam Outbound Policies These tools work in tandem to control and monitor various email forwarding methods that users or attackers may exploit, such as: • Inbox rules configured in Outlook • Automatic forwarding via Out of Office (OOF) rules • Forwarding settings in Outlook Web Access (OWA) using ForwardingSmtpAddress • Admin-defined forwarding in the Exchange Admin Center (EAC) using ForwardingAddress • Automated forwarding using Power Automate / Microsoft Flow To effectively reduce the risk of unauthorized data leaks, organizations should implement both a Transport Rule and an Outbound Anti-Spam Policy to block automatic mail forwarding. Note: If any exclusions are required (e.g., for trusted third-party systems or compliance tools), they should be strictly defined and approved in accordance with organizational policy.", "AdditionalInformation": "", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -460,7 +486,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Mail flow rules (also known as transport rules) in Exchange Online allow administrators to inspect, modify, or block email messages as they pass through the organization. These rules can be configured based on a wide range of conditions—such as sender, recipient, subject content, or attachment type—and can enforce actions including message redirection, header modification, or delivery rejection. While transport rules offer powerful control over email behavior, they must be implemented with caution—particularly when it comes to whitelisting domains or bypassing standard filtering mechanisms.", "AdditionalInformation": "Whitelisting external domains through transport rules can disable critical security checks such as anti-malware scanning, phishing detection, and sender authentication (e.g., SPF, DKIM, DMARC). If a trusted domain is later compromised—or was malicious from the start—this bypass can allow attackers to deliver malicious content directly to user inboxes without scrutiny. By avoiding broad or permanent domain whitelisting in transport rules, organizations preserve the integrity of their email filtering and reduce the risk of successful phishing campaigns, malware delivery, or data exfiltration originating from seemingly trusted sources. Transport rules should be reviewed regularly, and any exceptions must be justified, narrowly scoped, and documented according to organizational policy.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -477,7 +504,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "MailTips are real-time, context-aware notifications displayed to users as they compose email messages in Outlook. These tips are generated by Exchange while a message is being drafted and are based on an analysis of the email’s content and recipient list. If Exchange detects potential issues—such as the message being sent to a large distribution group, an external recipient, or someone who is out of office—it presents the user with a MailTip alert before the message is sent.This proactive feedback helps users avoid common issues like sending sensitive information to unintended recipients, triggering non-delivery reports (NDRs), or violating communication policies.", "AdditionalInformation": "Enabling MailTips provides valuable visual cues that promote user awareness and responsible communication. For example, users are warned when they are sending emails to external recipients or large distribution lists, which helps prevent data leakage, unintentional over-sharing, and excessive email traffic. MailTips serve as a lightweight but effective safeguard by nudging users to review recipients and message context before sending, reducing the risk of human error. In regulated or security-conscious environments, this feature reinforces compliance by helping users adhere to organizational communication policies in real time.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -494,7 +522,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "Microsoft Teams channel email addresses are an optional feature that enables users to send emails directly into a Teams channel. When enabled, each channel is assigned a unique email address that users can use to forward messages, share content, or initiate discussions from outside Teams. While this can enhance collaboration by bridging email and Teams-based communication, the generated email addresses are typically not part of the organization’s primary domain, and their usage is subject to broader Microsoft 365 infrastructure settings.", "AdditionalInformation": "Channel email addresses introduce potential security and governance concerns, as they are not managed under the organization’s domain and are exposed to external communication. If an attacker is able to discover or guess a channel’s email address, they could send messages directly into Teams, potentially introducing phishing links, malicious attachments, or inappropriate content into collaborative spaces. Furthermore, since organizations have limited control over the security configurations and exposure of these addresses, they may become a blind spot in security monitoring and email filtering. Disabling or restricting the use of Teams channel email addresses helps reduce the attack surface, prevent unauthorized message injection, and strengthen the overall security posture of Microsoft Teams.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -511,7 +540,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "This policy governs how external access is managed in Microsoft Teams, specifically determining whether users in your organization can communicate and collaborate with individuals from external domains. Administrators can configure this setting to: • Allow communication with all external domains • Block all external domains • Allow only specific (approved) external domains using an allowlist When external access is enabled, users can chat, invite external participants to meetings, and use audio/video conferencing with users in other Microsoft 365 or federated organizations. Recommended Configuration: To reduce exposure, it is recommended to either allow only specific external domains with whom collaboration is necessary or block all external domains entirely.", "AdditionalInformation": "While external collaboration can be valuable, unrestricted access to external domains introduces significant security risks. Without proper controls, users may inadvertently engage with untrusted or malicious entities, opening the door to phishing, social engineering, malware delivery, or data exfiltration. Notable threats that have leveraged Teams’ external access features include: • DarkGate malware distributed through malicious Teams messages • Phishing and impersonation campaigns by actors like Midnight Blizzard (APT29) • GIFShell, a technique for covert communication using GIFs within Teams • Username enumeration, allowing attackers to confirm the existence of user accounts By allowlisting only trusted domains, organizations retain the benefits of external collaboration while maintaining tight control over who can interact with internal users. This aligns with zero trust principles and helps ensure that external communication is both intentional and secure.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -528,7 +558,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "This policy setting in Microsoft Teams controls whether users in your organization can chat or join meetings with external Teams users who are not affiliated with a managed organization—for example, users of Microsoft Teams (free) or those without an associated Microsoft Entra ID (formerly Azure AD) tenant. These unmanaged accounts operate outside of enterprise governance and lack the administrative oversight, compliance enforcement, and security controls typically applied in organizational environments. Recommended Configuration: Set the policy to “Off” for “People in my organization can communicate with Teams users whose accounts aren’t managed by an organization” to block communication with unmanaged Teams users.", "AdditionalInformation": "Allowing communication with unmanaged external Teams users introduces a significant security risk. Since anyone can register for a free Teams account, attackers can easily create unmanaged identities and attempt to initiate contact with internal users. These interactions can be used to deliver malicious content, perform social engineering, or carry out reconnaissance. Documented attacks exploiting this communication channel include: • DarkGate malware delivery via malicious messages • Phishing and impersonation campaigns attributed to Midnight Blizzard (APT29) • GIFShell, a technique allowing covert exfiltration via GIFs in Teams chats • Username enumeration, enabling attackers to identify valid users in an organization Disabling communication with unmanaged Teams users helps enforce a zero trust posture, ensuring that all external interactions occur only with verified and trusted organizations under enforceable security policies. This reduces the organization’s exposure to external threats, protects sensitive communications, and upholds compliance standards.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -545,7 +576,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "This policy setting in Microsoft Teams controls whether external users with unmanaged Teams accounts—such as those using Microsoft Teams (free)—can initiate conversations with users in your organization. These unmanaged users do not belong to a verified Microsoft Entra (Azure AD) tenant and are not subject to organizational controls or governance. Recommended Configuration: Uncheck the option “External users with Teams accounts not managed by an organization can contact users in my organization” to prevent these users from initiating communication. This setting is designed as an additional safeguard to complement the broader policy that disables communication with unmanaged Teams users entirely. In scenarios where an organization allows limited interaction with such users, this control ensures that only internal users can initiate communication, further reducing exposure to unsolicited or malicious contact attempts.", "AdditionalInformation": "Enabling unmanaged Teams users to initiate contact with internal users poses a significant security risk, as anyone can easily register for a free Teams account with minimal identity verification. Threat actors can exploit this feature to deliver malicious content, impersonate legitimate contacts, or conduct reconnaissance by probing user availability and behavior. Notable real-world threats facilitated through external Teams access include:• DarkGate malware delivered via malicious chats • Social engineering and phishing campaigns by advanced threat actors such as Midnight Blizzard (APT29) • GIFShell, a covert data exfiltration method using GIFs in Teams • Username enumeration, enabling discovery of valid user accounts within an organization By preventing unmanaged external users from initiating conversations, organizations can better protect their internal users from unsolicited and potentially harmful contact attempts. This policy reinforces a defense-in-depth strategy, ensuring that even in exceptional cases where limited unmanaged communication is permitted, external contact remains tightly controlled and monitored.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -562,7 +594,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "This policy setting in Microsoft Teams controls who can read and write messages in the meeting chat. It allows administrators or meeting organizers to specify whether chat is available to everyone, only specific roles (such as presenters), or is disabled entirely for participants. This setting applies to chat interactions during the meeting and helps manage the flow and visibility of information shared in the chat pane.", "AdditionalInformation": "Limiting chat access to only authorized participants helps prevent the unintended disclosure of sensitive information and reduces the risk of inappropriate or disruptive content being shared during a meeting. In meetings involving confidential topics or external participants, restricting chat can safeguard against data leakage and maintain focus on the meeting agenda.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -579,7 +612,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "This policy setting in Microsoft Teams determines who is allowed to present content during a meeting. Presenters have elevated permissions that allow them to share their screen, display files, manage participants, and control other collaborative features. This setting can be configured at the organizational or meeting level to allow only organizers, co-organizers, or a designated group of participants to present.", "AdditionalInformation": "Restricting presentation privileges to authorized individuals helps ensure that only trusted participants can share content with the group. This minimizes the risk of inappropriate, disruptive, or unapproved material being displayed, whether intentionally or accidentally.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -596,7 +630,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "This policy setting in Microsoft Teams provides control over who can present content and who can request control of shared content during a meeting. It enables administrators and meeting organizers to limit these privileges to internal, trusted participants, while restricting or blocking external participants—including guests, external users, and anonymous users—from taking control of the presentation or initiating content sharing.", "AdditionalInformation": "Restricting presentation and control capabilities to authorized, internal participants significantly reduces the risk of accidental or malicious content sharing, interruptions, or abuse of meeting privileges. External participants—including guests, federated users, and anonymous joiners—may not be subject to the same identity verification or policy enforcement as users within the organization.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -613,7 +648,8 @@ "SubSection": "1.2 Authorization", "AttributeDescription": "This policy setting in Microsoft Teams determines whether a user is allowed to initiate the recording of a meeting in progress. When enabled, participants with the appropriate permissions can start recording audio, video, and screen-sharing content during the session.", "AdditionalInformation": "Restricting the ability to start a meeting recording ensures that only authorized individuals—such as organizers, co-organizers, team leads, or designated presenters—can capture meeting content. This is especially important for meetings that involve sensitive, confidential, or regulated information, where inappropriate or unauthorized recording could lead to data exposure, compliance violations, or reputational harm.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -630,7 +666,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "Each tenant should have more than one designated Global Administrator to ensure both accountability and redundancy in case one administrator leaves the organization. However, it’s equally important to limit the total number of Global Administrators to no more than four to reduce the overall security risk. Ideally, Global Administrator accounts should not have any user licenses assigned, limiting their exposure to commonly targeted services.", "AdditionalInformation": "Relying on a single Global Administrator creates a risk of unmonitored malicious activity. On the other hand, having too many Global Administrators increases the likelihood that one of their accounts could be compromised. A balanced approach supports both oversight and security.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -647,7 +684,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "Administrative accounts are privileged identities with elevated access to critical data, user management, and system settings. Assigning a license to these accounts may grant access to various applications, depending on the license type. The recommended practice is to avoid assigning licenses to privileged accounts altogether. If licensing is required—for example, to enable features such as Identity Protection, Privileged Identity Management (PIM), or Conditional Access—only Microsoft Entra ID P1 or P2 licenses should be used, as they do not include access to potentially vulnerable services like email or Teams.", "AdditionalInformation": "Minimizing application access for administrative accounts significantly reduces the attack surface associated with high-privilege identities. Access to tools like mailboxes or collaboration apps increases the risk of exposure to phishing or social engineering attacks. Administrative tasks should be performed using dedicated, unlicensed accounts, while day-to-day activities should be conducted through separate, unprivileged “daily driver” accounts.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -664,7 +702,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "App registration allows users to register custom or third-party applications for use within the organization’s Microsoft Entra ID directory. These applications can request access to organizational data and integrate with various Microsoft 365 services.", "AdditionalInformation": "While there are valid business cases for registering applications, this capability should be restricted to prevent unauthorized or insecure integrations. Attackers can exploit this feature by using compromised accounts to grant persistent access to third-party applications, enabling data exfiltration without needing to maintain direct control of the breached account. App registration should be disabled for standard users unless there is a clear business need and strong security controls—such as app consent policies and review workflows—are in place.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -681,7 +720,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "By default, non-privileged users can create new Microsoft Entra tenants through the “Manage tenant” option in the Entra admin portal. When a user creates a tenant, the action is logged in the Audit Log under the category DirectoryManagement with the activity Create Company. The user who creates the tenant is automatically assigned the Global Administrator role for that tenant. Note that newly created tenants do not inherit any of the organization’s existing security or configuration settings.", "AdditionalInformation": "Allowing unrestricted tenant creation introduces the risk of unauthorized or unmanaged environments, often referred to as shadow IT. These tenants may be mistakenly perceived as part of the organization’s secure infrastructure, leading users to adopt them for business use. This can fragment IT governance, complicate security oversight, and increase the likelihood of data exposure or policy violations. Restricting tenant creation ensures centralized control over the organization’s cloud environment and helps maintain consistent security and compliance standards.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -698,7 +738,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "Organizations can control whether end users and group owners are allowed to grant consent to applications, or whether such requests require administrator review and approval. While allowing user consent can enhance productivity by enabling access to useful apps, it also introduces potential security risks if not properly managed.", "AdditionalInformation": "Attackers often exploit application consent mechanisms by tricking users into authorizing malicious apps, thereby gaining access to sensitive company data. Disabling user consent for future app authorizations helps mitigate this risk by reducing the overall attack surface. When user consent is disabled, any existing consent remains valid, but all future consent requests must be explicitly approved by an administrator—ensuring better oversight and stronger security controls.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -715,7 +756,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "Microsoft Entra ID, as part of the Microsoft Entra suite, allows organizations to control what external guest users can view and access within the directory. By default, guest users are assigned a more limited permission level than internal members, who receive the full set of user permissions. These directory-level permissions apply across Microsoft Entra services, including Microsoft Graph, PowerShell v2, the Azure portal, and the My Apps portal. They also affect Microsoft 365 services that rely on Microsoft 365 Groups for collaboration—such as Outlook, Microsoft Teams, and SharePoint—though they do not override guest-specific settings within Teams or SharePoint. The recommended configuration is to ensure that guest users have limited access to directory properties and group memberships, or an even more restrictive setting.", "AdditionalInformation": "Restricting guest access helps prevent unauthorized enumeration of users and groups within the directory—a common reconnaissance tactic used by attackers during the early stages of a targeted attack (as defined in the Cyber Kill Chain framework). Limiting this visibility reduces the organization’s exposure to potential threats and supports a stronger security posture.", - "LevelOfRisk": 3 + "LevelOfRisk": 3, + "Weight": 10 } ] }, @@ -732,7 +774,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "By default, all users in the organization—including B2B collaboration guest users—can invite external users to collaborate via Microsoft Entra ID. This invitation capability can be broadly enabled or disabled, or it can be restricted to users in specific administrative roles. The recommended configuration is to limit guest invitations to only those users assigned to specific admin roles.", "AdditionalInformation": "Restricting who can invite external guests reduces the risk of unauthorized or unmanaged external access. By limiting this ability to trusted administrative roles, organizations can maintain tighter control over their environment and reduce potential exposure to security threats originating from unvetted accounts.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -749,7 +792,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "In complex environments, organizations may need to place limits on authentication session durations to reduce risk. Microsoft Entra Conditional Access (CA) policies allow organizations to enforce session controls based on user roles, device state, location, and application sensitivity. Common scenarios include: • Access from unmanaged or shared devices • External access to sensitive resources • High-privileged user accounts • Business-critical applications The following configurations are recommended: • Sign-in frequency: Require reauthentication at least every 4 hours for Microsoft 365 E3 tenants, or every 24 hours for E5 tenants using Privileged Identity Management (PIM). • Persistent browser session: Set to Never persistent. Note: These settings can be integrated into the Conditional Access policy that enforces multifactor authentication for users in administrative roles.", "AdditionalInformation": "Limiting the duration of authentication sessions helps prevent long-lived sessions that could be hijacked by attackers. Requiring periodic reauthentication ensures that a session cannot remain active indefinitely. Disabling persistent browser sessions further reduces the risk of drive-by browser attacks and ensures that session cookies are not stored, leaving nothing behind for an attacker to reuse in case of a compromised device.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -766,7 +810,8 @@ "SubSection": "1.3 Privilege Escalation Prevention", "AttributeDescription": "Microsoft OneDrive allows users to sign in with their organizational (cloud tenant) account and sync their OneDrive files—including selected folders or the entire contents of their storage—to a local computer. By default, synchronization is permitted on any device where OneDrive is installed, regardless of whether the device is Microsoft Entra ID Joined, Hybrid Entra ID Joined, or Active Directory Domain Joined. To improve control over where organizational data can be synchronized, it is recommended to restrict OneDrive syncing to only those devices joined to specific, trusted domains by enabling the policy: “Allow syncing only on computers joined to specific domains”, and specifying the appropriate Active Directory (AD) domain GUID(s)", "AdditionalInformation": "Allowing users to sync OneDrive data to unmanaged or personal devices introduces significant risk, as those endpoints may not comply with corporate security policies, lack endpoint protection, or be subject to malicious activity. When organizational data is synchronized to such devices, the organization loses visibility and control over how that data is accessed, shared, or protected. This opens the door to accidental data leaks, intentional misuse, or loss of sensitive information through theft or compromise. Restricting synchronization to verified, domain-joined devices ensures that only endpoints under the organization’s management and monitoring can access and store OneDrive data locally. This approach aligns with zero-trust principles, enforces data governance policies, and significantly reduces the risk of unauthorized access or exfiltration.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -783,7 +828,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "In Microsoft 365 environments—whether using Exchange Online mailboxes or standalone Exchange Online Protection (EOP)—connection filtering policies play a critical role in determining the trustworthiness of incoming email based on the source IP address. The default connection filter policy includes three main components: the IP Allow List, the IP Block List, and a Safe List. These lists influence how email messages are processed before any content filtering occurs. It is recommended that the IP Allow List remains empty or undefined to avoid bypassing essential security checks.", "AdditionalInformation": "Email originating from IP addresses on the Allow List bypasses several key layers of protection, including spam filtering and sender authentication protocols such as SPF, DKIM, and DMARC. Without additional safeguards like mail flow rules, this configuration introduces a significant risk: malicious actors can exploit the Allow List to deliver spoofed or harmful emails directly to users’ inboxes. Maintaining an empty IP Allow List ensures that all messages undergo full evaluation and filtering, reducing the likelihood of malware, phishing attempts, and impersonation attacks reaching end users.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -800,7 +846,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "In Microsoft 365 environments—whether using Exchange Online mailboxes or standalone Exchange Online Protection (EOP)—connection filtering policies are used to evaluate and classify incoming email based on the IP address of the sending server. The default connection filter policy includes three main components: the IP Allow List, the IP Block List, and the Safe List. The Safe List is a Microsoft-managed, dynamically updated set of sender IP addresses that are automatically treated as trusted sources. The recommended configuration is to have the Safe List disabled (set to Off or False) to ensure all incoming mail is properly evaluated by the organization’s email security policies.", "AdditionalInformation": "When the Safe List is enabled, messages from IP addresses on this list bypass key security mechanisms, including spam filtering and sender authentication checks such as SPF, DKIM, and DMARC. Although Microsoft manages this list dynamically, administrators have no visibility or control over which senders are included. As a result, allowing Safe List traffic to skip verification introduces significant risk—malicious actors could exploit this blind spot to deliver spam, phishing, or malware directly to user inboxes. Disabling the Safe List ensures that all messages undergo full inspection, allowing organizations to maintain strict control over the email filtering pipeline and reduce the likelihood of successful compromise.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -817,7 +864,8 @@ "SubSection": "2.1 Network", "AttributeDescription": "The SMTP AUTH (Simple Mail Transfer Protocol Authentication) setting in Exchange Online controls whether authenticated client SMTP submission is enabled at the organization level. This legacy protocol is used primarily by older applications and devices to send email via SMTP using basic authentication. By default, Microsoft recommends disabling SMTP AUTH at the tenant level to enhance security posture. Modern email clients and applications that connect to Microsoft 365 mailboxes no longer require SMTP AUTH and can use more secure, modern authentication methods (such as OAuth 2.0).", "AdditionalInformation": "SMTP AUTH is an outdated and insecure protocol that relies on basic authentication, which transmits credentials in plaintext and lacks support for multifactor authentication. Leaving this protocol enabled increases the risk of credential theft, account compromise, and unauthorized access, especially in environments not protected by additional controls such as Conditional Access or legacy protocol blocking. Disabling SMTP AUTH supports the principle of least functionality by reducing protocol exposure and hardening the email infrastructure against exploitation attempts. This action also aligns with Microsoft’s broader security guidance and helps organizations phase out legacy authentication methods in favor of modern, secure protocols.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -834,7 +882,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "The AdditionalStorageProvidersAvailable setting in Microsoft 365 controls whether users can connect to and open files from third-party storage services while using Outlook on the Web (OWA). When enabled, users may link external services such as Dropbox, Box, Google Drive, Facebook, or OneDrive Personal to access and interact with files directly within the Outlook web interface. Although this can enhance user productivity, it also introduces third-party services that Microsoft does not govern, meaning their terms of use, privacy policies, and security practices are outside the organization’s control. To mitigate potential risks, it is recommended to restrict or disable access to additional storage providers, limiting file access to only trusted organizational sources.", "AdditionalInformation": "Allowing connections to external storage providers from within Outlook on the Web significantly increases the risk of data leakage and malware exposure. Users may inadvertently upload or download sensitive organizational data to or from non-sanctioned storage platforms, where proper security controls and compliance measures may not be in place. Additionally, files retrieved from these services could serve as vectors for malware or phishing payloads, especially if users are unaware of their origin or if access controls on those platforms are weak. Restricting access to third-party storage providers helps enforce data governance policies, reduces the organization’s attack surface, and ensures that sensitive communications and files remain within controlled and monitored environments. This is especially important in industries with regulatory or compliance obligations.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -851,7 +900,8 @@ "SubSection": "2.2 Storage", "AttributeDescription": "Microsoft Teams facilitates collaboration by enabling users to share and access files within chat, meetings, and channels. By default, file sharing in Teams is integrated with SharePoint Online for team channels and OneDrive for Business for private chats. However, the platform also supports third-party cloud storage providers such as Dropbox, Box, and Google Drive, which can be made available within the Teams interface. Administrators have the ability to configure and restrict which external storage providers are accessible to end users. This helps align file-sharing capabilities with organizational data governance and compliance requirements. Note: While Skype for Business was officially deprecated on July 31, 2021, some configuration settings inherited from its infrastructure may still apply for a limited time. Refer to Microsoft’s official documentation for ongoing support timelines.", "AdditionalInformation": "Allowing unrestricted access to third-party cloud storage providers within Microsoft Teams can undermine an organization’s data protection and compliance efforts. Users may unintentionally store or share sensitive information using non-sanctioned platforms that fall outside of the organization’s control, monitoring, or security policies. By restricting file-sharing capabilities to only approved storage providers, organizations can ensure that collaboration remains within trusted ecosystems. This reduces the risk of data leakage, non-compliant data transfers, and unauthorized access, while also reinforcing secure and consistent file management practices across the collaboration environment.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -868,7 +918,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "The Common Attachment Types Filter allows users to block both well-known and custom-defined malicious file types from being attached to email messages.", "AdditionalInformation": "By blocking commonly exploited file types, this filter helps prevent the delivery of malware-laden attachments, reducing the risk of endpoint compromise and broader system infection.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -885,7 +936,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "The Common Attachment Types Filter allows users to block both known and custom-defined malicious file types from being attached to email messages. While Microsoft provides a default policy that blocks 53 high-risk file extensions, organizations can extend this protection by defining their own custom list. This recommendation includes a broader set of 186 potentially dangerous file extensions, offering a more robust safeguard. Although comprehensive, the list is not exhaustive and should be tailored to fit organizational needs.", "AdditionalInformation": "Blocking file types commonly associated with malware helps prevent the delivery of malicious payloads that can compromise hosts, exfiltrate data, or facilitate phishing attacks. By enforcing a strict attachment policy, organizations reduce their exposure to threats delivered through legacy formats, binary executables, and compressed archives. Allow-listing only those file types necessary for business operations and blocking all others is an effective strategy for mitigating risks such as Business Email Compromise (BEC) and enhancing overall email security posture.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -902,7 +954,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "In Exchange Online, administrators have the ability to control who can install and manage Outlook add-ins within the Microsoft 365 environment. By default, end users are allowed to install third-party or custom add-ins directly in their Outlook desktop client, which can access data within the application such as emails, calendar events, and contacts. To enhance security and reduce potential risks, it is recommended to restrict add-in management privileges to a limited set of trusted administrators and users. This can be configured via the Microsoft 365 admin center or PowerShell, providing centralized control over which add-ins are allowed and who can deploy them.", "AdditionalInformation": "Allowing end users to install Outlook add-ins introduces a potential attack surface, especially if the add-ins are vulnerable, poorly maintained, or intentionally malicious. Threat actors can exploit this capability to gain unauthorized access to sensitive mailbox data or to execute malicious code within the Outlook client. By disabling or restricting user-installed add-ins, organizations can significantly reduce the risk of data exfiltration, phishing, and privilege abuse. Managing add-ins centrally ensures that only vetted and trusted integrations are used, aligning with best practices for securing email clients and minimizing exposure to third-party threats.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -919,7 +972,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "This meeting policy setting in Microsoft Teams governs whether users in your organization can read or write messages in meeting chats hosted by external, untrusted organizations. If the external meeting is hosted by an organization that has been explicitly designated as trusted, this restriction does not apply.", "AdditionalInformation": "Allowing unrestricted chat participation in meetings hosted by untrusted external organizations increases the risk of exposure to malicious content, including links, files, or payloads designed to exploit user behavior or application vulnerabilities.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -937,7 +991,8 @@ "SubSection": "2.3 Application", "AttributeDescription": "User reporting settings in Microsoft Teams and Microsoft 365 allow end users to report messages they believe to be malicious or suspicious, enabling quicker response and investigation by security teams. To ensure the reporting feature functions as intended, this recommendation encompasses three distinct but interdependent settings that must all be correctly configured: 1. Teams Admin Center – User Reporting: This setting controls whether users can report messages directly from the Teams interface. It is enabled by default for new tenants. If disabled, users cannot report messages in Teams, and downstream settings in Microsoft Defender will not have any effect. 2. Microsoft 365 Defender Portal – User Reporting Integration: Also enabled by default in new tenants, this setting must be explicitly enabled for existing tenants. It ensures that messages reported from Teams are properly surfaced on the “User reported” tab of the Submissions page in Microsoft 365 Defender. 3. Defender – Report Message Destinations: This broader configuration applies to multiple Microsoft 365 services, including Teams. It allows organizations to control where reported messages are routed, such as keeping them within the organization or forwarding them to Microsoft for deeper analysis. Given its influence on how user submissions are processed, it is included as a required configuration in this assessment.", "AdditionalInformation": "Enabling user reporting equips employees with a straightforward mechanism to flag suspicious or potentially malicious content in Teams, acting as a critical early warning system for security teams. This improves organizational responsiveness to phishing, social engineering, or targeted attacks that may initially evade automated detection.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] }, @@ -954,7 +1009,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "The setting “Mailbox auditing on by default” determines whether mailbox auditing is automatically enabled across all mailboxes in the organization, regardless of their individual auditing configuration. When this setting is configured as False, it enables auditing at the organization level, overriding the AuditEnabled property for individual mailboxes—even if it is explicitly set to False. With this setting enabled, default audit actions are automatically recorded for all mailboxes without requiring manual configuration. Conversely, disabling this setting (True) effectively turns off mailbox auditing across the organization and overrides any mailbox-level auditing settings. The consequences of disabling this setting include: • Mailbox auditing is completely disabled organization-wide. • No mailbox actions are logged, even if AuditEnabled is set to True for individual mailboxes. • New mailboxes do not inherit auditing, and setting AuditEnabled=True has no effect. • Bypass audit rules set via Set-MailboxAuditBypassAssociation are ignored. • Existing audit records remain in place until they expire based on the audit log retention policy. The recommended configuration is to set this value to False at the organization level to ensure auditing is enforced consistently.", "AdditionalInformation": "Enforcing mailbox auditing by default ensures that audit logging cannot be unintentionally or maliciously disabled on individual mailboxes. This setting provides vital visibility for forensic investigations and incident response (IR) teams, allowing them to trace suspicious or malicious activity—such as unauthorized inbox access, message deletion, or rule manipulation—that may signal account compromise. Consistent auditing across all mailboxes is critical for detecting threat actor behaviors (TTPs) and correlating events across users. While organizations without Microsoft 365 E5 licenses are limited to 90 days of audit log retention, enabling this setting still significantly improves detection and accountability within that window.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -971,7 +1027,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "As of January 2019, Microsoft enables mailbox audit logging by default across all organizations. This feature ensures that specific actions performed by mailbox owners, delegates, and administrators are automatically captured and recorded. These audit records can then be searched by administrators through the mailbox audit log in Microsoft 365. Each mailbox type—whether user, shared, resource, or public folder—can have tailored audit settings to track activities that are most relevant to the organization. While audit logging is enabled by default at the organizational level, it is important to explicitly configure the AuditEnabled property to True on all user mailboxes, and to expand the list of audited actions beyond the Microsoft defaults to meet specific visibility or compliance needs. Note: This recommendation is particularly relevant to users with Microsoft 365 E3 licenses, where audit actions differ slightly from the default configurations in E5.", "AdditionalInformation": "Mailbox auditing plays a critical role in supporting both regulatory compliance and security monitoring. Whether investigating unauthorized configuration changes, potential account compromise, or insider threats, detailed mailbox audit logs provide essential evidence for security operations, forensic analysis, and general administrative oversight. While mailbox auditing is enabled by default for most user mailboxes, certain mailbox types—such as Resource Mailboxes, Public Folder Mailboxes, and the DiscoverySearch Mailbox—do not inherit the organizational auditing default. For these mailboxes, AuditEnabled must be manually set to True to ensure relevant activities are captured. Note: Organizations without Microsoft 365 E5 licenses are subject to a 90-day audit log retention limit, but enabling comprehensive mailbox auditing remains a best practice for operational readiness and incident response.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -988,7 +1045,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "Since January 2019, mailbox audit logging has been enabled by default in all Microsoft 365 organizations. This feature ensures that specific actions performed by mailbox owners, delegates, and administrators are automatically captured and stored as audit records. These logs are accessible to administrators through the Microsoft 365 mailbox audit log, enabling visibility into key mailbox-level activity. Although logging is enabled by default, each mailbox—particularly user and shared mailboxes—can have custom audit actions assigned to capture the specific types of events deemed valuable by the organization. For environments with Microsoft 365 E5 licenses or the advanced auditing add-on, it is recommended to explicitly set AuditEnabled to True on all user mailboxes and to configure additional audit actions beyond Microsoft’s default settings for enhanced visibility. Note: This recommendation specifically applies to E5 or equivalent auditing-enabled license holders, as the available audit depth and event coverage differ from E3.", "AdditionalInformation": "Mailbox audit logging is essential for supporting security investigations, regulatory compliance, and operational forensics in Microsoft 365. Whether you’re tracking unauthorized changes, detecting suspicious access, or conducting post-incident analysis, having a complete and accurate mailbox audit trail is critical. While audit logging is broadly applied by default, certain mailbox types bypass the organizational setting and require manual configuration to enable auditing. These include: • Resource Mailboxes • Public Folder Mailboxes • DiscoverySearch Mailboxes For these mailbox types, the AuditEnabled property must be explicitly set to True to ensure that audit events are captured. Important: Without advanced auditing (included in E5 or via add-on), mailbox audit logs are retained for only 90 days, limiting the historical window for investigations. Nonetheless, enabling detailed auditing remains a key best practice for maintaining strong visibility and compliance readiness.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1005,7 +1063,8 @@ "SubSection": "3.1 Logging", "AttributeDescription": "The AuditBypassEnabled setting in Microsoft 365 allows specific user or computer accounts to bypass mailbox audit logging, meaning that any actions they perform on mailboxes will not be recorded in the audit logs. This includes actions such as reading, deleting, moving, or modifying messages.", "AdditionalInformation": "Allowing an account to bypass mailbox audit logging creates a blind spot in security monitoring. If the account is compromised, misused, or maliciously configured, it can access and interact with mailboxes without leaving any trace in the logs. This significantly undermines the organization’s ability to conduct forensic investigations, detect insider threats, or comply with audit requirements.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1022,7 +1081,8 @@ "SubSection": "3.2 Retention", "AttributeDescription": "Audit log search in the Microsoft Purview compliance portal allows organizations to track and retain user and administrator activities across Microsoft 365 services. When enabled, audit events—such as sign-ins, file access, configuration changes, and other operational actions—are captured and stored for up to 90 days by default. While some organizations may choose to integrate auditing data with third-party Security Information and Event Management (SIEM) systems, audit log search in Microsoft Purview remains a critical native capability for centralized visibility and incident response. Although global administrators have the ability to disable audit log search, it is generally recommended to keep it enabled to maintain full visibility into user and system activity.", "AdditionalInformation": "Activating audit log search provides essential forensic and compliance value. It enables organizations to detect anomalous behavior, investigate potential security incidents, and demonstrate adherence to regulatory and legal requirements. In addition, it supports operational monitoring, internal audits, and proactive threat detection. By retaining and centralizing audit data within the Microsoft 365 ecosystem, security and compliance teams gain faster access to actionable insights, reducing response times and strengthening the organization’s overall security posture.", - "LevelOfRisk": 5 + "LevelOfRisk": 5, + "Weight": 1000 } ] }, @@ -1039,7 +1099,8 @@ "SubSection": "3.3 Monitoring", "AttributeDescription": "Exchange Online Protection (EOP) is Microsoft’s cloud-based email filtering service designed to safeguard organizations against spam, malware, and other email-borne threats. It is included by default in all Microsoft 365 tenants with Exchange Online mailboxes. EOP provides customizable anti-malware policies that allow administrators to define protection settings and configure alerts for detected malicious activity.", "AdditionalInformation": "Enabling notifications for malware detections ensures that administrators are alerted when an internal user sends a message containing malware. Such incidents may signal a compromised user account or infected device, requiring immediate investigation to mitigate potential security breaches.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1056,7 +1117,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "DomainKeys Identified Mail (DKIM) is one of the three key email authentication technologies—alongside SPF and DMARC—used to protect domains from being spoofed by malicious actors. DKIM allows organizations to apply a cryptographic digital signature to the header of outbound email messages. When properly configured, DKIM enables a domain to associate its identity with the message, allowing recipient email systems to verify the authenticity of the sender. Combined with SPF and DMARC, DKIM helps prevent unauthorized use of your domain in phishing or spoofing attacks.", "AdditionalInformation": "Enabling DKIM in Office 365 ensures that all outbound emails sent via Exchange Online are cryptographically signed. This enables recipient mail servers to verify that messages originate from an authorized source, significantly reducing the risk of email spoofing and reinforcing trust in the organization’s email communications.", - "LevelOfRisk": 4 + "LevelOfRisk": 4, + "Weight": 100 } ] }, @@ -1073,7 +1135,8 @@ "SubSection": "4.1 In-Transit", "AttributeDescription": "Password Hash Synchronization (PHS) is a hybrid identity sign-in method that enables secure synchronization of user credentials from an on-premises Active Directory to Microsoft Entra ID. Microsoft Entra Connect performs this by syncing a hash of the password hash, ensuring credentials are not exposed in transit or storage. Note: This recommendation applies only to Microsoft 365 tenants configured with Entra Connect synchronization in a hybrid environment. It does not apply to tenants using federated domain configurations.", "AdditionalInformation": "PHS simplifies the user experience by allowing a single password to be used across both on-premises and cloud resources. It also enables leaked credential detection via Microsoft Entra ID Protection, helping identify compromised accounts when passwords appear in known data breaches or public forums. Compared to other synchronization methods like federation, PHS offers greater resilience—users can still sign in to Microsoft 365 even if connectivity to the on-premises environment is temporarily unavailable.", - "LevelOfRisk": 2 + "LevelOfRisk": 2, + "Weight": 8 } ] } diff --git a/prowler/lib/check/compliance_models.py b/prowler/lib/check/compliance_models.py index 92bfaec168..5e01e590f3 100644 --- a/prowler/lib/check/compliance_models.py +++ b/prowler/lib/check/compliance_models.py @@ -193,6 +193,7 @@ class Prowler_ThreatScore_Requirement_Attribute(BaseModel): AttributeDescription: str AdditionalInformation: str LevelOfRisk: int + Weight: int # Base Compliance Model diff --git a/prowler/lib/outputs/compliance/prowler_threatscore/models.py b/prowler/lib/outputs/compliance/prowler_threatscore/models.py index f1908b8de3..c8ac0dd783 100644 --- a/prowler/lib/outputs/compliance/prowler_threatscore/models.py +++ b/prowler/lib/outputs/compliance/prowler_threatscore/models.py @@ -21,6 +21,7 @@ class ProwlerThreatScoreAWSModel(BaseModel): Requirements_Attributes_AttributeDescription: str Requirements_Attributes_AdditionalInformation: str Requirements_Attributes_LevelOfRisk: int + Requirements_Attributes_Weight: int Status: str StatusExtended: str ResourceId: str @@ -47,6 +48,7 @@ class ProwlerThreatScoreAzureModel(BaseModel): Requirements_Attributes_AttributeDescription: str Requirements_Attributes_AdditionalInformation: str Requirements_Attributes_LevelOfRisk: int + Requirements_Attributes_Weight: int Status: str StatusExtended: str ResourceId: str @@ -73,6 +75,7 @@ class ProwlerThreatScoreGCPModel(BaseModel): Requirements_Attributes_AttributeDescription: str Requirements_Attributes_AdditionalInformation: str Requirements_Attributes_LevelOfRisk: int + Requirements_Attributes_Weight: int Status: str StatusExtended: str ResourceId: str @@ -99,6 +102,7 @@ class ProwlerThreatScoreM365Model(BaseModel): Requirements_Attributes_AttributeDescription: str Requirements_Attributes_AdditionalInformation: str Requirements_Attributes_LevelOfRisk: int + Requirements_Attributes_Weight: int Status: str StatusExtended: str ResourceId: str diff --git a/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore.py b/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore.py index e041e3e7f3..eb5194074e 100644 --- a/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore.py +++ b/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore.py @@ -24,7 +24,8 @@ def get_prowler_threatscore_table( muted_count = [] pillars = {} score_per_pillar = {} - number_findings_per_pillar = {} + max_score_per_pillar = {} + counted_findings = [] for index, finding in enumerate(findings): check = bulk_checks_metadata[finding.check_metadata.CheckID] check_compliances = check.Compliance @@ -34,12 +35,24 @@ def get_prowler_threatscore_table( for attribute in requirement.Attributes: pillar = attribute.Section - if pillar not in score_per_pillar.keys(): + if not any( + [ + pillar in score_per_pillar.keys(), + pillar in max_score_per_pillar.keys(), + ] + ): score_per_pillar[pillar] = 0 - number_findings_per_pillar[pillar] = 0 - if finding.status == "FAIL" and not finding.muted: - score_per_pillar[pillar] += attribute.LevelOfRisk - number_findings_per_pillar[pillar] += 1 + max_score_per_pillar[pillar] = 0 + + if index not in counted_findings: + if finding.status == "PASS": + score_per_pillar[pillar] += ( + attribute.LevelOfRisk * attribute.Weight + ) + max_score_per_pillar[pillar] += ( + attribute.LevelOfRisk * attribute.Weight + ) + counted_findings.append(index) if pillar not in pillars: pillars[pillar] = {"FAIL": 0, "PASS": 0, "Muted": 0} @@ -60,14 +73,9 @@ def get_prowler_threatscore_table( for pillar in pillars: pillar_table["Provider"].append(compliance.Provider) pillar_table["Pillar"].append(pillar) - if number_findings_per_pillar[pillar] == 0: - pillar_table["Score"].append( - f"{Style.BRIGHT}{Fore.GREEN}0{Style.RESET_ALL}" - ) - else: - pillar_table["Score"].append( - f"{Style.BRIGHT}{Fore.RED}{score_per_pillar[pillar] / number_findings_per_pillar[pillar]:.2f}/5{Style.RESET_ALL}" - ) + pillar_table["Score"].append( + f"{Style.BRIGHT}{Fore.RED}{(score_per_pillar[pillar] / max_score_per_pillar[pillar]) * 100:.2f}%{Style.RESET_ALL}" + ) if pillars[pillar]["FAIL"] > 0: pillar_table["Status"].append( f"{Fore.RED}FAIL({pillars[pillar]['FAIL']}){Style.RESET_ALL}" @@ -110,10 +118,10 @@ def get_prowler_threatscore_table( ) print( - f"{Style.BRIGHT}\n=== Risk Score Guide ===\nScore ranges from 1 (lowest risk) to 5 (highest risk), indicating the severity of the potential impact.{Style.RESET_ALL}" + f"{Style.BRIGHT}\n=== Threat Score Guide ===\nThe lower the score, the higher the risk.{Style.RESET_ALL}" ) print( - f"{Style.BRIGHT}(Only sections containing results appear, the score is calculated as the sum of the level of risk of the failed findings divided by the number of failed findings){Style.RESET_ALL}" + f"{Style.BRIGHT}(Only sections containing results appear, the score is calculated as the sum of the level of risk * weight of the passed findings divided by the sum of the risk * weight of all the findings){Style.RESET_ALL}" ) print(f"\nDetailed results of {compliance_framework.upper()} are in:") print( diff --git a/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws.py b/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws.py index 2d876b402f..b4021646ca 100644 --- a/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws.py +++ b/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws.py @@ -55,6 +55,7 @@ class ProwlerThreatScoreAWS(ComplianceOutput): Requirements_Attributes_AttributeDescription=attribute.AttributeDescription, Requirements_Attributes_AdditionalInformation=attribute.AdditionalInformation, Requirements_Attributes_LevelOfRisk=attribute.LevelOfRisk, + Requirements_Attributes_Weight=attribute.Weight, Status=finding.status, StatusExtended=finding.status_extended, ResourceId=finding.resource_uid, @@ -81,6 +82,7 @@ class ProwlerThreatScoreAWS(ComplianceOutput): Requirements_Attributes_AttributeDescription=attribute.AttributeDescription, Requirements_Attributes_AdditionalInformation=attribute.AdditionalInformation, Requirements_Attributes_LevelOfRisk=attribute.LevelOfRisk, + Requirements_Attributes_Weight=attribute.Weight, Status="MANUAL", StatusExtended="Manual check", ResourceId="manual_check", diff --git a/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure.py b/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure.py index 01786e2d08..4671666ba0 100644 --- a/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure.py +++ b/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure.py @@ -55,6 +55,7 @@ class ProwlerThreatScoreAzure(ComplianceOutput): Requirements_Attributes_AttributeDescription=attribute.AttributeDescription, Requirements_Attributes_AdditionalInformation=attribute.AdditionalInformation, Requirements_Attributes_LevelOfRisk=attribute.LevelOfRisk, + Requirements_Attributes_Weight=attribute.Weight, Status=finding.status, StatusExtended=finding.status_extended, ResourceId=finding.resource_uid, @@ -81,6 +82,7 @@ class ProwlerThreatScoreAzure(ComplianceOutput): Requirements_Attributes_AttributeDescription=attribute.AttributeDescription, Requirements_Attributes_AdditionalInformation=attribute.AdditionalInformation, Requirements_Attributes_LevelOfRisk=attribute.LevelOfRisk, + Requirements_Attributes_Weight=attribute.Weight, Status="MANUAL", StatusExtended="Manual check", ResourceId="manual_check", diff --git a/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp.py b/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp.py index 9bf577255f..0d57ce0ba7 100644 --- a/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp.py +++ b/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp.py @@ -55,6 +55,7 @@ class ProwlerThreatScoreGCP(ComplianceOutput): Requirements_Attributes_AttributeDescription=attribute.AttributeDescription, Requirements_Attributes_AdditionalInformation=attribute.AdditionalInformation, Requirements_Attributes_LevelOfRisk=attribute.LevelOfRisk, + Requirements_Attributes_Weight=attribute.Weight, Status=finding.status, StatusExtended=finding.status_extended, ResourceId=finding.resource_uid, @@ -81,6 +82,7 @@ class ProwlerThreatScoreGCP(ComplianceOutput): Requirements_Attributes_AttributeDescription=attribute.AttributeDescription, Requirements_Attributes_AdditionalInformation=attribute.AdditionalInformation, Requirements_Attributes_LevelOfRisk=attribute.LevelOfRisk, + Requirements_Attributes_Weight=attribute.Weight, Status="MANUAL", StatusExtended="Manual check", ResourceId="manual_check", diff --git a/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365.py b/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365.py index 26c5d01af0..f4ff630572 100644 --- a/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365.py +++ b/prowler/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365.py @@ -55,6 +55,7 @@ class ProwlerThreatScoreM365(ComplianceOutput): Requirements_Attributes_AttributeDescription=attribute.AttributeDescription, Requirements_Attributes_AdditionalInformation=attribute.AdditionalInformation, Requirements_Attributes_LevelOfRisk=attribute.LevelOfRisk, + Requirements_Attributes_Weight=attribute.Weight, Status=finding.status, StatusExtended=finding.status_extended, ResourceId=finding.resource_uid, @@ -81,6 +82,7 @@ class ProwlerThreatScoreM365(ComplianceOutput): Requirements_Attributes_AttributeDescription=attribute.AttributeDescription, Requirements_Attributes_AdditionalInformation=attribute.AdditionalInformation, Requirements_Attributes_LevelOfRisk=attribute.LevelOfRisk, + Requirements_Attributes_Weight=attribute.Weight, Status="MANUAL", StatusExtended="Manual check", ResourceId="manual_check", diff --git a/prowler_threatscore_aws b/prowler_threatscore_aws new file mode 100644 index 0000000000..e69de29bb2 diff --git a/prowler_threatscore_azure b/prowler_threatscore_azure new file mode 100644 index 0000000000..e69de29bb2 diff --git a/prowler_threatscore_gcp b/prowler_threatscore_gcp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/prowler_threatscore_m365 b/prowler_threatscore_m365 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/lib/outputs/compliance/fixtures.py b/tests/lib/outputs/compliance/fixtures.py index 94c9604cf3..ddf25ad661 100644 --- a/tests/lib/outputs/compliance/fixtures.py +++ b/tests/lib/outputs/compliance/fixtures.py @@ -875,6 +875,7 @@ PROWLER_THREATSCORE_AWS = Compliance( AttributeDescription="The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.", AdditionalInformation="Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.", LevelOfRisk=5, + Weight=1000, ) ], Checks=[ @@ -892,6 +893,7 @@ PROWLER_THREATSCORE_AWS = Compliance( AttributeDescription="The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.", AdditionalInformation="A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.", LevelOfRisk=3, + Weight=10, ) ], Checks=[], @@ -917,6 +919,7 @@ PROWLER_THREATSCORE_AZURE = Compliance( AttributeDescription="The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.", AdditionalInformation="Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.", LevelOfRisk=5, + Weight=1000, ) ], Checks=[ @@ -934,6 +937,7 @@ PROWLER_THREATSCORE_AZURE = Compliance( AttributeDescription="The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.", AdditionalInformation="A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.", LevelOfRisk=3, + Weight=10, ) ], Checks=[], @@ -959,6 +963,7 @@ PROWLER_THREATSCORE_GCP = Compliance( AttributeDescription="The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.", AdditionalInformation="Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.", LevelOfRisk=5, + Weight=1000, ) ], Checks=[ @@ -976,6 +981,51 @@ PROWLER_THREATSCORE_GCP = Compliance( AttributeDescription="The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.", AdditionalInformation="A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.", LevelOfRisk=3, + Weight=10, + ) + ], + Checks=[], + ), + ], +) + +PROWLER_THREATSCORE_M365_NAME = "prowler_threatscore_m365" +PROWLER_THREATSCORE_M365 = Compliance( + Framework="ProwlerThreatScore", + Version="1.0", + Provider="M365", + Description="Prowler ThreatScore Compliance Framework for M365 ensures that the M365 account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption", + Requirements=[ + Compliance_Requirement( + Id="1.1.1", + Description="Ensure MFA is enabled for the 'root' user account", + Attributes=[ + Prowler_ThreatScore_Requirement_Attribute( + Title="MFA enabled for 'root'", + Section="1. IAM", + SubSection="1.1 Authentication", + AttributeDescription="The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.", + AdditionalInformation="Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.", + LevelOfRisk=5, + Weight=1000, + ) + ], + Checks=[ + "iam_root_mfa_enabled", + ], + ), + Compliance_Requirement( + Id="1.1.2", + Description="Ensure hardware MFA is enabled for the 'root' user account", + Attributes=[ + Prowler_ThreatScore_Requirement_Attribute( + Title="CloudTrail logging enabled", + Section="1. IAM", + SubSection="1.1 Authentication", + AttributeDescription="The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.", + AdditionalInformation="A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.", + LevelOfRisk=3, + Weight=10, ) ], Checks=[], diff --git a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws_test.py b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws_test.py index 28cf82ab44..b4771b6139 100644 --- a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws_test.py +++ b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws_test.py @@ -66,6 +66,10 @@ class TestProwlerThreatScoreAWS: output_data.Requirements_Attributes_LevelOfRisk == PROWLER_THREATSCORE_AWS.Requirements[0].Attributes[0].LevelOfRisk ) + assert ( + output_data.Requirements_Attributes_Weight + == PROWLER_THREATSCORE_AWS.Requirements[0].Attributes[0].Weight + ) assert output_data.Status == "PASS" assert output_data.StatusExtended == "" assert output_data.ResourceId == "" @@ -113,6 +117,10 @@ class TestProwlerThreatScoreAWS: output_data_manual.Requirements_Attributes_LevelOfRisk == PROWLER_THREATSCORE_AWS.Requirements[1].Attributes[0].LevelOfRisk ) + assert ( + output_data_manual.Requirements_Attributes_Weight + == PROWLER_THREATSCORE_AWS.Requirements[1].Attributes[0].Weight + ) assert output_data_manual.Status == "MANUAL" assert output_data_manual.StatusExtended == "Manual check" assert output_data_manual.ResourceId == "manual_check" @@ -136,5 +144,5 @@ class TestProwlerThreatScoreAWS: mock_file.seek(0) content = mock_file.read() - expected_csv = f"PROVIDER;DESCRIPTION;ACCOUNTID;REGION;ASSESSMENTDATE;REQUIREMENTS_ID;REQUIREMENTS_DESCRIPTION;REQUIREMENTS_ATTRIBUTES_TITLE;REQUIREMENTS_ATTRIBUTES_SECTION;REQUIREMENTS_ATTRIBUTES_SUBSECTION;REQUIREMENTS_ATTRIBUTES_ATTRIBUTEDESCRIPTION;REQUIREMENTS_ATTRIBUTES_ADDITIONALINFORMATION;REQUIREMENTS_ATTRIBUTES_LEVELOFRISK;STATUS;STATUSEXTENDED;RESOURCEID;RESOURCENAME;CHECKID;MUTED\r\naws;Prowler ThreatScore Compliance Framework for AWS ensures that the AWS account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;123456789012;eu-west-1;{datetime.now()};1.1.1;Ensure MFA is enabled for the 'root' user account;MFA enabled for 'root';1. IAM;1.1 Authentication;The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.;5;PASS;;;;test-check-id;False\r\naws;Prowler ThreatScore Compliance Framework for AWS ensures that the AWS account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;;;{datetime.now()};1.1.2;Ensure hardware MFA is enabled for the 'root' user account;CloudTrail logging enabled;1. IAM;1.1 Authentication;The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.;3;MANUAL;Manual check;manual_check;Manual check;manual;False\r\n" + expected_csv = f"PROVIDER;DESCRIPTION;ACCOUNTID;REGION;ASSESSMENTDATE;REQUIREMENTS_ID;REQUIREMENTS_DESCRIPTION;REQUIREMENTS_ATTRIBUTES_TITLE;REQUIREMENTS_ATTRIBUTES_SECTION;REQUIREMENTS_ATTRIBUTES_SUBSECTION;REQUIREMENTS_ATTRIBUTES_ATTRIBUTEDESCRIPTION;REQUIREMENTS_ATTRIBUTES_ADDITIONALINFORMATION;REQUIREMENTS_ATTRIBUTES_LEVELOFRISK;REQUIREMENTS_ATTRIBUTES_WEIGHT;STATUS;STATUSEXTENDED;RESOURCEID;RESOURCENAME;CHECKID;MUTED\r\naws;Prowler ThreatScore Compliance Framework for AWS ensures that the AWS account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;123456789012;eu-west-1;{datetime.now()};1.1.1;Ensure MFA is enabled for the 'root' user account;MFA enabled for 'root';1. IAM;1.1 Authentication;The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.;5;1000;PASS;;;;test-check-id;False\r\naws;Prowler ThreatScore Compliance Framework for AWS ensures that the AWS account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;;;{datetime.now()};1.1.2;Ensure hardware MFA is enabled for the 'root' user account;CloudTrail logging enabled;1. IAM;1.1 Authentication;The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.;3;10;MANUAL;Manual check;manual_check;Manual check;manual;False\r\n" assert content == expected_csv diff --git a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure_test.py b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure_test.py index 0dec129f06..64b79acb9e 100644 --- a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure_test.py +++ b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure_test.py @@ -77,6 +77,10 @@ class TestProwlerThreatScoreAzure: output_data.Requirements_Attributes_LevelOfRisk == PROWLER_THREATSCORE_AZURE.Requirements[0].Attributes[0].LevelOfRisk ) + assert ( + output_data.Requirements_Attributes_Weight + == PROWLER_THREATSCORE_AZURE.Requirements[0].Attributes[0].Weight + ) assert output_data.Status == "PASS" assert output_data.StatusExtended == "" assert output_data.ResourceId == "" @@ -124,6 +128,10 @@ class TestProwlerThreatScoreAzure: output_data_manual.Requirements_Attributes_LevelOfRisk == PROWLER_THREATSCORE_AZURE.Requirements[1].Attributes[0].LevelOfRisk ) + assert ( + output_data_manual.Requirements_Attributes_Weight + == PROWLER_THREATSCORE_AZURE.Requirements[1].Attributes[0].Weight + ) assert output_data_manual.Status == "MANUAL" assert output_data_manual.StatusExtended == "Manual check" assert output_data_manual.ResourceId == "manual_check" @@ -146,5 +154,5 @@ class TestProwlerThreatScoreAzure: mock_file.seek(0) content = mock_file.read() - expected_csv = f"PROVIDER;DESCRIPTION;SUBSCRIPTIONID;LOCATION;ASSESSMENTDATE;REQUIREMENTS_ID;REQUIREMENTS_DESCRIPTION;REQUIREMENTS_ATTRIBUTES_TITLE;REQUIREMENTS_ATTRIBUTES_SECTION;REQUIREMENTS_ATTRIBUTES_SUBSECTION;REQUIREMENTS_ATTRIBUTES_ATTRIBUTEDESCRIPTION;REQUIREMENTS_ATTRIBUTES_ADDITIONALINFORMATION;REQUIREMENTS_ATTRIBUTES_LEVELOFRISK;STATUS;STATUSEXTENDED;RESOURCEID;RESOURCENAME;CHECKID;MUTED\r\naws;Prowler ThreatScore Compliance Framework for Azure ensures that the Azure account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;123456789012;eu-west-1;{datetime.now()};1.1.1;Ensure MFA is enabled for the 'root' user account;MFA enabled for 'root';1. IAM;1.1 Authentication;The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.;5;PASS;;;;test-check-id;False\r\nazure;Prowler ThreatScore Compliance Framework for Azure ensures that the Azure account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;;;{datetime.now()};1.1.2;Ensure hardware MFA is enabled for the 'root' user account;CloudTrail logging enabled;1. IAM;1.1 Authentication;The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.;3;MANUAL;Manual check;manual_check;Manual check;manual;False\r\n" + expected_csv = f"PROVIDER;DESCRIPTION;SUBSCRIPTIONID;LOCATION;ASSESSMENTDATE;REQUIREMENTS_ID;REQUIREMENTS_DESCRIPTION;REQUIREMENTS_ATTRIBUTES_TITLE;REQUIREMENTS_ATTRIBUTES_SECTION;REQUIREMENTS_ATTRIBUTES_SUBSECTION;REQUIREMENTS_ATTRIBUTES_ATTRIBUTEDESCRIPTION;REQUIREMENTS_ATTRIBUTES_ADDITIONALINFORMATION;REQUIREMENTS_ATTRIBUTES_LEVELOFRISK;REQUIREMENTS_ATTRIBUTES_WEIGHT;STATUS;STATUSEXTENDED;RESOURCEID;RESOURCENAME;CHECKID;MUTED\r\naws;Prowler ThreatScore Compliance Framework for Azure ensures that the Azure account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;123456789012;eu-west-1;{datetime.now()};1.1.1;Ensure MFA is enabled for the 'root' user account;MFA enabled for 'root';1. IAM;1.1 Authentication;The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.;5;1000;PASS;;;;test-check-id;False\r\nazure;Prowler ThreatScore Compliance Framework for Azure ensures that the Azure account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;;;{datetime.now()};1.1.2;Ensure hardware MFA is enabled for the 'root' user account;CloudTrail logging enabled;1. IAM;1.1 Authentication;The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.;3;10;MANUAL;Manual check;manual_check;Manual check;manual;False\r\n" assert content == expected_csv diff --git a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp_test.py b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp_test.py index 40a5e60494..4727cc748c 100644 --- a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp_test.py +++ b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp_test.py @@ -72,6 +72,10 @@ class TestProwlerThreatScoreGCP: output_data.Requirements_Attributes_LevelOfRisk == PROWLER_THREATSCORE_GCP.Requirements[0].Attributes[0].LevelOfRisk ) + assert ( + output_data.Requirements_Attributes_Weight + == PROWLER_THREATSCORE_GCP.Requirements[0].Attributes[0].Weight + ) assert output_data.Status == "PASS" assert output_data.StatusExtended == "" assert output_data.ResourceId == "" @@ -119,6 +123,10 @@ class TestProwlerThreatScoreGCP: output_data_manual.Requirements_Attributes_LevelOfRisk == PROWLER_THREATSCORE_GCP.Requirements[1].Attributes[0].LevelOfRisk ) + assert ( + output_data_manual.Requirements_Attributes_Weight + == PROWLER_THREATSCORE_GCP.Requirements[1].Attributes[0].Weight + ) assert output_data_manual.Status == "MANUAL" assert output_data_manual.StatusExtended == "Manual check" assert output_data_manual.ResourceId == "manual_check" @@ -142,6 +150,6 @@ class TestProwlerThreatScoreGCP: mock_file.seek(0) content = mock_file.read() - expected_csv = f"PROVIDER;DESCRIPTION;PROJECTID;LOCATION;ASSESSMENTDATE;REQUIREMENTS_ID;REQUIREMENTS_DESCRIPTION;REQUIREMENTS_ATTRIBUTES_TITLE;REQUIREMENTS_ATTRIBUTES_SECTION;REQUIREMENTS_ATTRIBUTES_SUBSECTION;REQUIREMENTS_ATTRIBUTES_ATTRIBUTEDESCRIPTION;REQUIREMENTS_ATTRIBUTES_ADDITIONALINFORMATION;REQUIREMENTS_ATTRIBUTES_LEVELOFRISK;STATUS;STATUSEXTENDED;RESOURCEID;RESOURCENAME;CHECKID;MUTED\r\naws;Prowler ThreatScore Compliance Framework for GCP ensures that the GCP account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;123456789012;eu-west-1;{datetime.now()};1.1.1;Ensure MFA is enabled for the 'root' user account;MFA enabled for 'root';1. IAM;1.1 Authentication;The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.;5;PASS;;;;test-check-id;False\r\ngcp;Prowler ThreatScore Compliance Framework for GCP ensures that the GCP account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;;;{datetime.now()};1.1.2;Ensure hardware MFA is enabled for the 'root' user account;CloudTrail logging enabled;1. IAM;1.1 Authentication;The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.;3;MANUAL;Manual check;manual_check;Manual check;manual;False\r\n" + expected_csv = f"PROVIDER;DESCRIPTION;PROJECTID;LOCATION;ASSESSMENTDATE;REQUIREMENTS_ID;REQUIREMENTS_DESCRIPTION;REQUIREMENTS_ATTRIBUTES_TITLE;REQUIREMENTS_ATTRIBUTES_SECTION;REQUIREMENTS_ATTRIBUTES_SUBSECTION;REQUIREMENTS_ATTRIBUTES_ATTRIBUTEDESCRIPTION;REQUIREMENTS_ATTRIBUTES_ADDITIONALINFORMATION;REQUIREMENTS_ATTRIBUTES_LEVELOFRISK;REQUIREMENTS_ATTRIBUTES_WEIGHT;STATUS;STATUSEXTENDED;RESOURCEID;RESOURCENAME;CHECKID;MUTED\r\naws;Prowler ThreatScore Compliance Framework for GCP ensures that the GCP account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;123456789012;eu-west-1;{datetime.now()};1.1.1;Ensure MFA is enabled for the 'root' user account;MFA enabled for 'root';1. IAM;1.1 Authentication;The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.;5;1000;PASS;;;;test-check-id;False\r\ngcp;Prowler ThreatScore Compliance Framework for GCP ensures that the GCP account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;;;{datetime.now()};1.1.2;Ensure hardware MFA is enabled for the 'root' user account;CloudTrail logging enabled;1. IAM;1.1 Authentication;The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.;3;10;MANUAL;Manual check;manual_check;Manual check;manual;False\r\n" assert content == expected_csv diff --git a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365_test.py b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365_test.py new file mode 100644 index 0000000000..ea0b3e529f --- /dev/null +++ b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365_test.py @@ -0,0 +1,157 @@ +from datetime import datetime +from io import StringIO + +from freezegun import freeze_time +from mock import patch + +from prowler.lib.outputs.compliance.prowler_threatscore.models import ( + ProwlerThreatScoreM365Model, +) +from prowler.lib.outputs.compliance.prowler_threatscore.prowler_threatscore_m365 import ( + ProwlerThreatScoreM365, +) +from tests.lib.outputs.compliance.fixtures import ( + PROWLER_THREATSCORE_M365, + PROWLER_THREATSCORE_M365_NAME, +) +from tests.lib.outputs.fixtures.fixtures import generate_finding_output +from tests.providers.m365.m365_fixtures import TENANT_ID + + +class TestProwlerThreatScoreM365: + def test_output_transform(self): + findings = [ + generate_finding_output( + compliance={"ProwlerThreatScore-1.0": "1.1.1"}, + provider="m365", + account_name=TENANT_ID, + account_uid=TENANT_ID, + region="", + ) + ] + + output = ProwlerThreatScoreM365( + findings, PROWLER_THREATSCORE_M365, PROWLER_THREATSCORE_M365_NAME + ) + output_data = output.data[0] + assert isinstance(output_data, ProwlerThreatScoreM365Model) + assert output_data.Provider == "m365" + assert output_data.Description == PROWLER_THREATSCORE_M365.Description + assert output_data.TenantId == TENANT_ID + assert output_data.Location == "" + assert ( + output_data.Requirements_Id == PROWLER_THREATSCORE_M365.Requirements[0].Id + ) + assert ( + output_data.Requirements_Description + == PROWLER_THREATSCORE_M365.Requirements[0].Description + ) + assert ( + output_data.Requirements_Attributes_Title + == PROWLER_THREATSCORE_M365.Requirements[0].Attributes[0].Title + ) + assert ( + output_data.Requirements_Attributes_Section + == PROWLER_THREATSCORE_M365.Requirements[0].Attributes[0].Section + ) + assert ( + output_data.Requirements_Attributes_SubSection + == PROWLER_THREATSCORE_M365.Requirements[0].Attributes[0].SubSection + ) + assert ( + output_data.Requirements_Attributes_AttributeDescription + == PROWLER_THREATSCORE_M365.Requirements[0] + .Attributes[0] + .AttributeDescription + ) + assert ( + output_data.Requirements_Attributes_AdditionalInformation + == PROWLER_THREATSCORE_M365.Requirements[0] + .Attributes[0] + .AdditionalInformation + ) + assert ( + output_data.Requirements_Attributes_LevelOfRisk + == PROWLER_THREATSCORE_M365.Requirements[0].Attributes[0].LevelOfRisk + ) + assert ( + output_data.Requirements_Attributes_Weight + == PROWLER_THREATSCORE_M365.Requirements[0].Attributes[0].Weight + ) + assert output_data.Status == "PASS" + assert output_data.StatusExtended == "" + assert output_data.ResourceId == "" + assert output_data.ResourceName == "" + assert output_data.CheckId == "test-check-id" + assert not output_data.Muted + # Test manual check + output_data_manual = output.data[1] + assert output_data_manual.Provider == "m365" + assert output_data_manual.TenantId == "" + assert output_data_manual.Location == "" + assert ( + output_data_manual.Requirements_Id + == PROWLER_THREATSCORE_M365.Requirements[1].Id + ) + assert ( + output_data_manual.Requirements_Description + == PROWLER_THREATSCORE_M365.Requirements[1].Description + ) + assert ( + output_data_manual.Requirements_Attributes_Title + == PROWLER_THREATSCORE_M365.Requirements[1].Attributes[0].Title + ) + assert ( + output_data_manual.Requirements_Attributes_Section + == PROWLER_THREATSCORE_M365.Requirements[1].Attributes[0].Section + ) + assert ( + output_data_manual.Requirements_Attributes_SubSection + == PROWLER_THREATSCORE_M365.Requirements[1].Attributes[0].SubSection + ) + assert ( + output_data_manual.Requirements_Attributes_AttributeDescription + == PROWLER_THREATSCORE_M365.Requirements[1] + .Attributes[0] + .AttributeDescription + ) + assert ( + output_data_manual.Requirements_Attributes_AdditionalInformation + == PROWLER_THREATSCORE_M365.Requirements[1] + .Attributes[0] + .AdditionalInformation + ) + assert ( + output_data_manual.Requirements_Attributes_LevelOfRisk + == PROWLER_THREATSCORE_M365.Requirements[1].Attributes[0].LevelOfRisk + ) + assert ( + output_data_manual.Requirements_Attributes_Weight + == PROWLER_THREATSCORE_M365.Requirements[1].Attributes[0].Weight + ) + assert output_data_manual.Status == "MANUAL" + assert output_data_manual.StatusExtended == "Manual check" + assert output_data_manual.ResourceId == "manual_check" + assert output_data_manual.ResourceName == "Manual check" + assert output_data_manual.CheckId == "manual" + assert not output_data_manual.Muted + + @freeze_time(datetime.now()) + def test_batch_write_data_to_file(self): + mock_file = StringIO() + findings = [ + generate_finding_output(compliance={"ProwlerThreatScore-1.0": "1.1.1"}) + ] + output = ProwlerThreatScoreM365( + findings, PROWLER_THREATSCORE_M365, PROWLER_THREATSCORE_M365_NAME + ) + output._file_descriptor = mock_file + + with patch.object(mock_file, "close", return_value=None): + output.batch_write_data_to_file() + + mock_file.seek(0) + content = mock_file.read() + expected_csv = f"PROVIDER;DESCRIPTION;TENANTID;LOCATION;ASSESSMENTDATE;REQUIREMENTS_ID;REQUIREMENTS_DESCRIPTION;REQUIREMENTS_ATTRIBUTES_TITLE;REQUIREMENTS_ATTRIBUTES_SECTION;REQUIREMENTS_ATTRIBUTES_SUBSECTION;REQUIREMENTS_ATTRIBUTES_ATTRIBUTEDESCRIPTION;REQUIREMENTS_ATTRIBUTES_ADDITIONALINFORMATION;REQUIREMENTS_ATTRIBUTES_LEVELOFRISK;REQUIREMENTS_ATTRIBUTES_WEIGHT;STATUS;STATUSEXTENDED;RESOURCEID;RESOURCENAME;CHECKID;MUTED\r\naws;Prowler ThreatScore Compliance Framework for M365 ensures that the M365 account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;123456789012;eu-west-1;{datetime.now()};1.1.1;Ensure MFA is enabled for the 'root' user account;MFA enabled for 'root';1. IAM;1.1 Authentication;The root user account holds the highest level of privileges within an AWS account. Enabling Multi-Factor Authentication (MFA) enhances security by adding an additional layer of protection beyond just a username and password. With MFA activated, users must provide their credentials (username and password) along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;Enabling MFA enhances console security by requiring the authenticating user to both possess a time-sensitive key-generating device and have knowledge of their credentials.;5;1000;PASS;;;;test-check-id;False\r\nm365;Prowler ThreatScore Compliance Framework for M365 ensures that the M365 account is compliant taking into account four main pillars: Identity and Access Management, Attack Surface, Forensic Readiness and Encryption;;;{datetime.now()};1.1.2;Ensure hardware MFA is enabled for the 'root' user account;CloudTrail logging enabled;1. IAM;1.1 Authentication;The root user account in AWS has the highest level of privileges. Multi-Factor Authentication (MFA) enhances security by adding an extra layer of protection beyond a username and password. When MFA is enabled, users must enter their credentials along with a unique authentication code generated by their AWS MFA device when signing into an AWS website.;A hardware MFA has a smaller attack surface compared to a virtual MFA. Unlike a virtual MFA, which relies on a mobile device that may be vulnerable to malware or compromise, a hardware MFA operates independently, reducing exposure to potential security threats.;3;10;MANUAL;Manual check;manual_check;Manual check;manual;False\r\n" + + assert content == expected_csv From 6d005540823c6e06f3045090a6c9fbd350174e62 Mon Sep 17 00:00:00 2001 From: Sergio Garcia Date: Wed, 21 May 2025 14:01:54 +0200 Subject: [PATCH 006/111] chore(readme): add Prowler Hub link (#7814) Co-authored-by: Pepe Fagoaga --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 24f6201f46..7c7c12d3fc 100644 --- a/README.md +++ b/README.md @@ -94,13 +94,19 @@ prowler dashboard | M365 | 44 | 2 | 2 | 0 | | NHN (Unofficial) | 6 | 2 | 1 | 0 | +> [!Note] +> The numbers in the table are updated periodically. + +> [!Tip] +> For the most accurate and up-to-date information about checks, services, frameworks, and categories, visit [**Prowler Hub**](https://hub.prowler.com). + +> [!Note] > Use the following commands to list Prowler's available checks, services, compliance frameworks, and categories: `prowler --list-checks`, `prowler --list-services`, `prowler --list-compliance` and `prowler --list-categories`. # 💻 Installation ## Prowler App -Installing Prowler App Prowler App offers flexible installation methods tailored to various environments: > For detailed instructions on using Prowler App, refer to the [Prowler App Usage Guide](https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/prowler-app/). From dddec4c688d5f5046b119d3ba6d9670b5185c652 Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Wed, 21 May 2025 15:13:03 +0200 Subject: [PATCH 007/111] fix(m365): add `powershell.close()` to `msgraph` services (#7816) --- prowler/CHANGELOG.md | 1 + .../providers/m365/services/admincenter/admincenter_service.py | 3 +++ prowler/providers/m365/services/entra/entra_service.py | 2 ++ .../providers/m365/services/sharepoint/sharepoint_service.py | 3 +++ 4 files changed, 9 insertions(+) diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 7836182c3a..f3a117ba4d 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -17,6 +17,7 @@ All notable changes to the **Prowler SDK** are documented in this file. ### Fixed - Fix `m365_powershell test_credentials` to use sanitized credentials. [(#7761)](https://github.com/prowler-cloud/prowler/pull/7761) - Fix `admincenter_users_admins_reduced_license_footprint` check logic to pass when admin user has no license. [(#7779)](https://github.com/prowler-cloud/prowler/pull/7779) +- Fix `m365_powershell` to close the PowerShell sessions in msgraph services. [(#7816)](https://github.com/prowler-cloud/prowler/pull/7816) --- diff --git a/prowler/providers/m365/services/admincenter/admincenter_service.py b/prowler/providers/m365/services/admincenter/admincenter_service.py index bb1cad48ba..feac9c8375 100644 --- a/prowler/providers/m365/services/admincenter/admincenter_service.py +++ b/prowler/providers/m365/services/admincenter/admincenter_service.py @@ -11,6 +11,9 @@ from prowler.providers.m365.m365_provider import M365Provider class AdminCenter(M365Service): def __init__(self, provider: M365Provider): super().__init__(provider) + if self.powershell: + self.powershell.close() + self.organization_config = None self.sharing_policy = None if self.powershell: diff --git a/prowler/providers/m365/services/entra/entra_service.py b/prowler/providers/m365/services/entra/entra_service.py index 3e548afdba..b14f82b03c 100644 --- a/prowler/providers/m365/services/entra/entra_service.py +++ b/prowler/providers/m365/services/entra/entra_service.py @@ -14,6 +14,8 @@ from prowler.providers.m365.m365_provider import M365Provider class Entra(M365Service): def __init__(self, provider: M365Provider): super().__init__(provider) + if self.powershell: + self.powershell.close() loop = get_event_loop() self.tenant_domain = provider.identity.tenant_domain diff --git a/prowler/providers/m365/services/sharepoint/sharepoint_service.py b/prowler/providers/m365/services/sharepoint/sharepoint_service.py index 02a701821f..244f27521f 100644 --- a/prowler/providers/m365/services/sharepoint/sharepoint_service.py +++ b/prowler/providers/m365/services/sharepoint/sharepoint_service.py @@ -13,6 +13,9 @@ from prowler.providers.m365.m365_provider import M365Provider class SharePoint(M365Service): def __init__(self, provider: M365Provider): super().__init__(provider) + if self.powershell: + self.powershell.close() + loop = get_event_loop() self.tenant_domain = provider.identity.tenant_domain attributes = loop.run_until_complete( From 62dcbc29613fde0b053c39d9b2e0186ef299266a Mon Sep 17 00:00:00 2001 From: Andoni Alonso <14891798+andoniaf@users.noreply.github.com> Date: Wed, 21 May 2025 15:28:30 +0200 Subject: [PATCH 008/111] feat(repository): add new check `repository_has_codeowners_file` (#7752) --- prowler/CHANGELOG.md | 1 + .../__init__.py | 0 ...pository_has_codeowners_file.metadata.json | 30 +++++ .../repository_has_codeowners_file.py | 42 +++++++ .../services/repository/repository_service.py | 43 +++++-- .../repository_has_codeowners_file_test.py | 112 ++++++++++++++++++ .../repository/repository_service_test.py | 26 +++- 7 files changed, 242 insertions(+), 12 deletions(-) create mode 100644 prowler/providers/github/services/repository/repository_has_codeowners_file/__init__.py create mode 100644 prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.metadata.json create mode 100644 prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.py create mode 100644 tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index f3a117ba4d..fc0028d6a2 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -13,6 +13,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Add new check `admincenter_external_calendar_sharing_disabled` for M365 provider. [(#7733)](https://github.com/prowler-cloud/prowler/pull/7733) - Add a level for Prowler ThreatScore in the accordion in Dashboard. [(#7739)](https://github.com/prowler-cloud/prowler/pull/7739) - Add CIS 4.0 compliance framework for GCP. [(7785)](https://github.com/prowler-cloud/prowler/pull/7785) +- Add `repository_has_codeowners_file` check for GitHub provider. [(#7752)](https://github.com/prowler-cloud/prowler/pull/7752) ### Fixed - Fix `m365_powershell test_credentials` to use sanitized credentials. [(#7761)](https://github.com/prowler-cloud/prowler/pull/7761) diff --git a/prowler/providers/github/services/repository/repository_has_codeowners_file/__init__.py b/prowler/providers/github/services/repository/repository_has_codeowners_file/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.metadata.json b/prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.metadata.json new file mode 100644 index 0000000000..58cb6ce8d2 --- /dev/null +++ b/prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.metadata.json @@ -0,0 +1,30 @@ +{ + "Provider": "github", + "CheckID": "repository_has_codeowners_file", + "CheckTitle": "Check if repositories have a CODEOWNERS file", + "CheckType": [], + "ServiceName": "repository", + "SubServiceName": "", + "ResourceIdTemplate": "github:user-id:repository/repository-name", + "Severity": "high", + "ResourceType": "GitHubRepository", + "Description": "Ensure that repositories have a CODEOWNERS file.", + "Risk": "Not having a CODEOWNERS file in a repository may lead to unclear code ownership and review responsibilities, increasing the risk of unreviewed or unauthorized changes.", + "RelatedUrl": "https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners", + "Remediation": { + "Code": { + "CLI": "", + "NativeIaC": "", + "Other": "", + "Terraform": "" + }, + "Recommendation": { + "Text": "Add a CODEOWNERS file to the root, .github/, or docs/ directory of the repository. The file should specify code owners for files and directories as appropriate for your organization.", + "Url": "https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners" + } + }, + "Categories": [], + "DependsOn": [], + "RelatedTo": [], + "Notes": "" +} diff --git a/prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.py b/prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.py new file mode 100644 index 0000000000..a158f63880 --- /dev/null +++ b/prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.py @@ -0,0 +1,42 @@ +from typing import List + +from prowler.lib.check.models import Check, CheckReportGithub +from prowler.providers.github.services.repository.repository_client import ( + repository_client, +) + + +class repository_has_codeowners_file(Check): + """Check if a repository has a CODEOWNERS file + + This class verifies whether each repository has a CODEOWNERS file. + """ + + def execute(self) -> List[CheckReportGithub]: + """Execute the Github Repository CODEOWNERS file existence check + + Iterates over all repositories and checks if they have a CODEOWNERS file. + + Returns: + List[CheckReportGithub]: A list of reports for each repository + """ + findings = [] + for repo in repository_client.repositories.values(): + if repo.codeowners_exists is not None: + report = CheckReportGithub( + metadata=self.metadata(), resource=repo, repository=repo.name + ) + if repo.codeowners_exists: + report.status = "PASS" + report.status_extended = ( + f"Repository {repo.name} does have a CODEOWNERS file." + ) + else: + report.status = "FAIL" + report.status_extended = ( + f"Repository {repo.name} does not have a CODEOWNERS file." + ) + + findings.append(report) + + return findings diff --git a/prowler/providers/github/services/repository/repository_service.py b/prowler/providers/github/services/repository/repository_service.py index 571dda3429..719a4ac71c 100644 --- a/prowler/providers/github/services/repository/repository_service.py +++ b/prowler/providers/github/services/repository/repository_service.py @@ -11,6 +11,19 @@ class Repository(GithubService): super().__init__(__class__.__name__, provider) self.repositories = self._list_repositories() + def _file_exists(self, repo, filename): + """Check if a file exists in the repository. Returns True if exists, False if not, None if error.""" + try: + return repo.get_contents(filename) is not None + except Exception as error: + if "404" in str(error): + return False + else: + logger.error( + f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" + ) + return None + def _list_repositories(self): logger.info("Repository - Listing Repositories...") repos = {} @@ -18,22 +31,28 @@ class Repository(GithubService): for client in self.clients: for repo in client.get_user().get_repos(): default_branch = repo.default_branch + securitymd_exists = self._file_exists(repo, "SECURITY.md") + # CODEOWNERS file can be in .github/, root, or docs/ + # https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-file-location + codeowners_paths = [ + ".github/CODEOWNERS", + "CODEOWNERS", + "docs/CODEOWNERS", + ] + codeowners_files = [ + self._file_exists(repo, path) for path in codeowners_paths + ] + if True in codeowners_files: + codeowners_exists = True + elif all(file is None for file in codeowners_files): + codeowners_exists = None + else: + codeowners_exists = False delete_branch_on_merge = ( repo.delete_branch_on_merge if repo.delete_branch_on_merge is not None else False ) - securitymd_exists = False - try: - securitymd_exists = repo.get_contents("SECURITY.md") is not None - except Exception as error: - if "404" in str(error): - securitymd_exists = False - else: - logger.error( - f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" - ) - securitymd_exists = None require_pr = False approval_cnt = 0 @@ -107,6 +126,7 @@ class Repository(GithubService): enforce_admins=enforce_admins, conversation_resolution=conversation_resolution, default_branch_protection=branch_protection, + codeowners_exists=codeowners_exists, delete_branch_on_merge=delete_branch_on_merge, ) @@ -134,5 +154,6 @@ class Repo(BaseModel): status_checks: Optional[bool] enforce_admins: Optional[bool] approval_count: Optional[int] + codeowners_exists: Optional[bool] delete_branch_on_merge: Optional[bool] conversation_resolution: Optional[bool] diff --git a/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py b/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py new file mode 100644 index 0000000000..57cb5a53e7 --- /dev/null +++ b/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py @@ -0,0 +1,112 @@ +from unittest import mock + +from prowler.providers.github.services.repository.repository_service import Repo +from tests.providers.github.github_fixtures import set_mocked_github_provider + + +class Test_repository_has_codeowners_file: + def test_no_repositories(self): + repository_client = mock.MagicMock + repository_client.repositories = {} + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_has_codeowners_file.repository_has_codeowners_file.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_has_codeowners_file.repository_has_codeowners_file import ( + repository_has_codeowners_file, + ) + + check = repository_has_codeowners_file() + result = check.execute() + assert len(result) == 0 + + def test_one_repository_no_codeowners(self): + repository_client = mock.MagicMock + repo_name = "repo1" + repository_client.repositories = { + 1: Repo( + id=1, + name=repo_name, + full_name="account-name/repo1", + default_branch="main", + private=False, + securitymd=True, + require_pull_request=False, + approval_count=0, + codeowners_exists=False, + ), + } + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_has_codeowners_file.repository_has_codeowners_file.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_has_codeowners_file.repository_has_codeowners_file import ( + repository_has_codeowners_file, + ) + + check = repository_has_codeowners_file() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 1 + assert result[0].resource_name == repo_name + assert result[0].status == "FAIL" + assert ( + result[0].status_extended + == f"Repository {repo_name} does not have a CODEOWNERS file." + ) + + def test_one_repository_with_codeowners(self): + repository_client = mock.MagicMock + repo_name = "repo2" + repository_client.repositories = { + 2: Repo( + id=2, + name=repo_name, + full_name="account-name/repo2", + default_branch="main", + private=False, + securitymd=True, + require_pull_request=False, + approval_count=0, + codeowners_exists=True, + ), + } + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_has_codeowners_file.repository_has_codeowners_file.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_has_codeowners_file.repository_has_codeowners_file import ( + repository_has_codeowners_file, + ) + + check = repository_has_codeowners_file() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 2 + assert result[0].resource_name == repo_name + assert result[0].status == "PASS" + assert ( + result[0].status_extended + == f"Repository {repo_name} does have a CODEOWNERS file." + ) diff --git a/tests/providers/github/services/repository/repository_service_test.py b/tests/providers/github/services/repository/repository_service_test.py index bcc3b19791..4b9d45b479 100644 --- a/tests/providers/github/services/repository/repository_service_test.py +++ b/tests/providers/github/services/repository/repository_service_test.py @@ -1,4 +1,4 @@ -from unittest.mock import patch +from unittest.mock import MagicMock, patch from prowler.providers.github.services.repository.repository_service import ( Repo, @@ -23,6 +23,7 @@ def mock_list_repositories(_): default_branch_deletion=True, status_checks=True, approval_count=2, + codeowners_exists=True, enforce_admins=True, delete_branch_on_merge=True, conversation_resolution=True, @@ -60,3 +61,26 @@ class Test_Repository_Service: assert repository_service.repositories[1].delete_branch_on_merge assert repository_service.repositories[1].conversation_resolution assert repository_service.repositories[1].approval_count == 2 + assert repository_service.repositories[1].codeowners_exists is True + + +class Test_Repository_FileExists: + def setup_method(self): + self.repository = Repository(set_mocked_github_provider()) + self.mock_repo = MagicMock() + + def test_file_exists_returns_true(self): + self.mock_repo.get_contents.return_value = object() + assert self.repository._file_exists(self.mock_repo, "somefile.txt") is True + + def test_file_not_found_returns_false(self): + self.mock_repo.get_contents.side_effect = Exception("404 Not Found") + assert self.repository._file_exists(self.mock_repo, "nofile.txt") is False + + def test_other_error_returns_none_and_logs(self): + self.mock_repo.get_contents.side_effect = Exception("Some other error") + with patch( + "prowler.providers.github.services.repository.repository_service.logger" + ) as mock_logger: + assert self.repository._file_exists(self.mock_repo, "errorfile.txt") is None + assert mock_logger.error.called From f72eb7e212ca6d8a0926c793a61d21f1bb9f26f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Mart=C3=ADn?= Date: Wed, 21 May 2025 16:15:04 +0200 Subject: [PATCH 009/111] fix(files): remove empty files (#7819) --- prowler_threatscore_aws | 0 prowler_threatscore_azure | 0 prowler_threatscore_gcp | 0 prowler_threatscore_m365 | 0 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 prowler_threatscore_aws delete mode 100644 prowler_threatscore_azure delete mode 100644 prowler_threatscore_gcp delete mode 100644 prowler_threatscore_m365 diff --git a/prowler_threatscore_aws b/prowler_threatscore_aws deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/prowler_threatscore_azure b/prowler_threatscore_azure deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/prowler_threatscore_gcp b/prowler_threatscore_gcp deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/prowler_threatscore_m365 b/prowler_threatscore_m365 deleted file mode 100644 index e69de29bb2..0000000000 From d036e0054b39980a3e6c4cc2ad76cd0a35c6414c Mon Sep 17 00:00:00 2001 From: Andoni Alonso <14891798+andoniaf@users.noreply.github.com> Date: Wed, 21 May 2025 16:18:55 +0200 Subject: [PATCH 010/111] feat(repository): add new check `repository_default_branch_requires_codeowners_review` (#7753) Co-authored-by: Sergio Garcia --- prowler/CHANGELOG.md | 1 + .../__init__.py | 0 ...h_requires_codeowners_review.metadata.json | 30 +++++ ...fault_branch_requires_codeowners_review.py | 38 ++++++ .../services/repository/repository_service.py | 9 ++ ..._branch_requires_codeowners_review_test.py | 112 ++++++++++++++++++ .../repository/repository_service_test.py | 2 + 7 files changed, 192 insertions(+) create mode 100644 prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/__init__.py create mode 100644 prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.metadata.json create mode 100644 prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py create mode 100644 tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index fc0028d6a2..3b3f77db43 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -14,6 +14,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Add a level for Prowler ThreatScore in the accordion in Dashboard. [(#7739)](https://github.com/prowler-cloud/prowler/pull/7739) - Add CIS 4.0 compliance framework for GCP. [(7785)](https://github.com/prowler-cloud/prowler/pull/7785) - Add `repository_has_codeowners_file` check for GitHub provider. [(#7752)](https://github.com/prowler-cloud/prowler/pull/7752) +- Add `repository_default_branch_requires_codeowners_review` check for GitHub provider. [(#7753)](https://github.com/prowler-cloud/prowler/pull/7753) ### Fixed - Fix `m365_powershell test_credentials` to use sanitized credentials. [(#7761)](https://github.com/prowler-cloud/prowler/pull/7761) diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/__init__.py b/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.metadata.json b/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.metadata.json new file mode 100644 index 0000000000..8c19b24818 --- /dev/null +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.metadata.json @@ -0,0 +1,30 @@ +{ + "Provider": "github", + "CheckID": "repository_default_branch_requires_codeowners_review", + "CheckTitle": "Check if code owner approval is required for changes to owned code", + "CheckType": [], + "ServiceName": "repository", + "SubServiceName": "", + "ResourceIdTemplate": "github:user-id:repository/repository-name", + "Severity": "high", + "ResourceType": "GitHubRepository", + "Description": "Ensure that code owners are required to review and approve any proposed changes that affect their respective areas of ownership in the code base.", + "Risk": "If code owner approval is not required, unauthorized or unqualified individuals may merge changes to sensitive or critical areas of the codebase, increasing the risk of security vulnerabilities, bugs, or malicious modifications.", + "RelatedUrl": "https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#requiring-code-owner-review", + "Remediation": { + "Code": { + "CLI": "", + "NativeIaC": "", + "Other": "", + "Terraform": "" + }, + "Recommendation": { + "Text": "To require code owner review, navigate to the repository settings, click on 'Branches', add or edit a branch protection rule, and enable 'Require review from Code Owners'.", + "Url": "https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-review-from-code-owners" + } + }, + "Categories": [], + "DependsOn": [], + "RelatedTo": [], + "Notes": "" +} diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py b/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py new file mode 100644 index 0000000000..11cc3fd05b --- /dev/null +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py @@ -0,0 +1,38 @@ +from typing import List + +from prowler.lib.check.models import Check, CheckReportGithub +from prowler.providers.github.services.repository.repository_client import ( + repository_client, +) + + +class repository_default_branch_requires_codeowners_review(Check): + """Check if code owner approval is required for changes to owned code + + This class verifies whether each repository requires code owner review for changes to code they own. + """ + + def execute(self) -> List[CheckReportGithub]: + """Execute the Github Repository Code Owner Approval Requirement check + + Iterates over all repositories and checks if they require code owner review for changes. + + Returns: + List[CheckReportGithub]: A list of reports for each repository + """ + findings = [] + for repo in repository_client.repositories.values(): + if repo.require_code_owner_reviews is not None: + report = CheckReportGithub( + metadata=self.metadata(), resource=repo, repository=repo.name + ) + if repo.require_code_owner_reviews: + report.status = "PASS" + report.status_extended = f"Repository {repo.name} requires code owner approval for changes to owned code." + else: + report.status = "FAIL" + report.status_extended = f"Repository {repo.name} does not require code owner approval for changes to owned code." + + findings.append(report) + + return findings diff --git a/prowler/providers/github/services/repository/repository_service.py b/prowler/providers/github/services/repository/repository_service.py index 719a4ac71c..a3afffccc1 100644 --- a/prowler/providers/github/services/repository/repository_service.py +++ b/prowler/providers/github/services/repository/repository_service.py @@ -60,6 +60,7 @@ class Repository(GithubService): required_linear_history = False allow_force_pushes = True branch_deletion = True + require_code_owner_reviews = False status_checks = False enforce_admins = False conversation_resolution = False @@ -89,6 +90,11 @@ class Repository(GithubService): protection.required_conversation_resolution ) branch_protection = True + require_code_owner_reviews = ( + protection.required_pull_request_reviews.require_code_owner_reviews + if require_pr + else False + ) except Exception as error: # If the branch is not found, it is not protected if "404" in str(error): @@ -103,6 +109,7 @@ class Repository(GithubService): required_linear_history = None allow_force_pushes = None branch_deletion = None + require_code_owner_reviews = None status_checks = None enforce_admins = None conversation_resolution = None @@ -127,6 +134,7 @@ class Repository(GithubService): conversation_resolution=conversation_resolution, default_branch_protection=branch_protection, codeowners_exists=codeowners_exists, + require_code_owner_reviews=require_code_owner_reviews, delete_branch_on_merge=delete_branch_on_merge, ) @@ -155,5 +163,6 @@ class Repo(BaseModel): enforce_admins: Optional[bool] approval_count: Optional[int] codeowners_exists: Optional[bool] + require_code_owner_reviews: Optional[bool] delete_branch_on_merge: Optional[bool] conversation_resolution: Optional[bool] diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py new file mode 100644 index 0000000000..fe64448402 --- /dev/null +++ b/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py @@ -0,0 +1,112 @@ +from unittest import mock + +from prowler.providers.github.services.repository.repository_service import Repo +from tests.providers.github.github_fixtures import set_mocked_github_provider + + +class Test_repository_default_branch_requires_codeowners_review: + def test_no_repositories(self): + repository_client = mock.MagicMock + repository_client.repositories = {} + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_default_branch_requires_codeowners_review.repository_default_branch_requires_codeowners_review.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_default_branch_requires_codeowners_review.repository_default_branch_requires_codeowners_review import ( + repository_default_branch_requires_codeowners_review, + ) + + check = repository_default_branch_requires_codeowners_review() + result = check.execute() + assert len(result) == 0 + + def test_one_repository_no_codeowner_approval(self): + repository_client = mock.MagicMock + repo_name = "repo1" + repository_client.repositories = { + 1: Repo( + id=1, + name=repo_name, + full_name="account-name/repo1", + default_branch="main", + private=False, + securitymd=True, + require_pull_request=False, + approval_count=0, + require_code_owner_reviews=False, + ), + } + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_default_branch_requires_codeowners_review.repository_default_branch_requires_codeowners_review.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_default_branch_requires_codeowners_review.repository_default_branch_requires_codeowners_review import ( + repository_default_branch_requires_codeowners_review, + ) + + check = repository_default_branch_requires_codeowners_review() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 1 + assert result[0].resource_name == repo_name + assert result[0].status == "FAIL" + assert ( + result[0].status_extended + == f"Repository {repo_name} does not require code owner approval for changes to owned code." + ) + + def test_one_repository_with_codeowner_approval(self): + repository_client = mock.MagicMock + repo_name = "repo2" + repository_client.repositories = { + 2: Repo( + id=2, + name=repo_name, + full_name="account-name/repo2", + default_branch="main", + private=False, + securitymd=True, + require_pull_request=False, + approval_count=0, + require_code_owner_reviews=True, + ), + } + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_default_branch_requires_codeowners_review.repository_default_branch_requires_codeowners_review.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_default_branch_requires_codeowners_review.repository_default_branch_requires_codeowners_review import ( + repository_default_branch_requires_codeowners_review, + ) + + check = repository_default_branch_requires_codeowners_review() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 2 + assert result[0].resource_name == repo_name + assert result[0].status == "PASS" + assert ( + result[0].status_extended + == f"Repository {repo_name} requires code owner approval for changes to owned code." + ) diff --git a/tests/providers/github/services/repository/repository_service_test.py b/tests/providers/github/services/repository/repository_service_test.py index 4b9d45b479..82535fad14 100644 --- a/tests/providers/github/services/repository/repository_service_test.py +++ b/tests/providers/github/services/repository/repository_service_test.py @@ -24,6 +24,7 @@ def mock_list_repositories(_): status_checks=True, approval_count=2, codeowners_exists=True, + require_code_owner_reviews=True, enforce_admins=True, delete_branch_on_merge=True, conversation_resolution=True, @@ -62,6 +63,7 @@ class Test_Repository_Service: assert repository_service.repositories[1].conversation_resolution assert repository_service.repositories[1].approval_count == 2 assert repository_service.repositories[1].codeowners_exists is True + assert repository_service.repositories[1].require_code_owner_reviews is True class Test_Repository_FileExists: From c44ea3943e7d12b006b72ab52ed9aa1dd7017371 Mon Sep 17 00:00:00 2001 From: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Date: Thu, 22 May 2025 08:58:25 +0200 Subject: [PATCH 011/111] feat: resources in finding tables (#7813) --- ui/CHANGELOG.md | 6 +-- ui/app/(prowler)/findings/page.tsx | 1 - .../findings/table/column-findings.tsx | 28 +++++++++-- .../table/column-new-findings-to-date.tsx | 29 ++++++++++-- .../providers/table/column-providers.tsx | 4 +- .../ui/entities/entity-info-short.tsx | 8 ++-- ui/components/ui/entities/index.ts | 3 +- ui/components/ui/entities/snippet-chip.tsx | 47 +++++++++++++++++++ ui/components/ui/entities/snippet-id.tsx | 39 --------------- ui/components/ui/entities/snippet-label.tsx | 32 ------------- .../users/profile/user-basic-info-card.tsx | 36 ++------------ 11 files changed, 111 insertions(+), 122 deletions(-) create mode 100644 ui/components/ui/entities/snippet-chip.tsx delete mode 100644 ui/components/ui/entities/snippet-id.tsx delete mode 100644 ui/components/ui/entities/snippet-label.tsx diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 595d678296..f56f24cec8 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -7,6 +7,7 @@ All notable changes to the **Prowler UI** are documented in this file. ### 🚀 Added - New profile page with details about the user and their roles. [(#7780)](https://github.com/prowler-cloud/prowler/pull/7780) +- Improved `SnippetChip` component and show resource name in new findings table. [(#7813)](https://github.com/prowler-cloud/prowler/pull/7813) --- @@ -22,14 +23,13 @@ All notable changes to the **Prowler UI** are documented in this file. ## [v1.7.0] (Prowler v5.7.0) - ### 🚀 Added - Add a new chart to show the split between passed and failed findings. [(#7680)](https://github.com/prowler-cloud/prowler/pull/7680) - Added `Accordion` component. [(#7700)](https://github.com/prowler-cloud/prowler/pull/7700) - Improve `Provider UID` filter by adding more context and enhancing the UI/UX. [(#7741)](https://github.com/prowler-cloud/prowler/pull/7741) - Added an AWS CloudFormation Quick Link to the IAM Role credentials step [(#7735)](https://github.com/prowler-cloud/prowler/pull/7735) -– Use `getLatestFindings` on findings page when no scan or date filters are applied. [(#7756)](https://github.com/prowler-cloud/prowler/pull/7756) + – Use `getLatestFindings` on findings page when no scan or date filters are applied. [(#7756)](https://github.com/prowler-cloud/prowler/pull/7756) ### 🐞 Fixes @@ -102,7 +102,7 @@ All notable changes to the **Prowler UI** are documented in this file. - Revalidate the page when a role is deleted. [(#6976)](https://github.com/prowler-cloud/prowler/pull/6976) - Allows removing group visibility when creating a role. [(#7088)](https://github.com/prowler-cloud/prowler/pull/7088) - Displays correct error messages when deleting a user. [(#7089)](https://github.com/prowler-cloud/prowler/pull/7089) -- Updated label: *"Select a scan job"* → *"Select a cloud provider"*. [(#7107)](https://github.com/prowler-cloud/prowler/pull/7107) +- Updated label: _"Select a scan job"_ → _"Select a cloud provider"_. [(#7107)](https://github.com/prowler-cloud/prowler/pull/7107) - Display uid if alias is missing when creating a group. [(#7137)](https://github.com/prowler-cloud/prowler/pull/7137) --- diff --git a/ui/app/(prowler)/findings/page.tsx b/ui/app/(prowler)/findings/page.tsx index f137b451cc..f1c5fac71f 100644 --- a/ui/app/(prowler)/findings/page.tsx +++ b/ui/app/(prowler)/findings/page.tsx @@ -52,7 +52,6 @@ export default async function Findings({ const uniqueServices = metadataInfoData?.data?.attributes?.services || []; const uniqueResourceTypes = metadataInfoData?.data?.attributes?.resource_types || []; - // Get findings data // Extract provider UIDs const providerUIDs: string[] = Array.from( diff --git a/ui/components/findings/table/column-findings.tsx b/ui/components/findings/table/column-findings.tsx index 8bfeac0a7f..a8636ab750 100644 --- a/ui/components/findings/table/column-findings.tsx +++ b/ui/components/findings/table/column-findings.tsx @@ -1,11 +1,16 @@ "use client"; import { ColumnDef } from "@tanstack/react-table"; +import { Database } from "lucide-react"; import { useSearchParams } from "next/navigation"; import { DataTableRowDetails } from "@/components/findings/table"; import { InfoIcon } from "@/components/icons"; -import { DateWithTime, EntityInfoShort } from "@/components/ui/entities"; +import { + DateWithTime, + EntityInfoShort, + SnippetChip, +} from "@/components/ui/entities"; import { TriggerSheet } from "@/components/ui/sheet"; import { DataTableColumnHeader, @@ -63,7 +68,7 @@ const FindingDetailsCell = ({ row }: { row: any }) => { }; return ( -
+
} title="Finding Details" @@ -105,8 +110,10 @@ export const ColumnFindings: ColumnDef[] = [ return (
- {(delta === "new" || delta === "changed") && ( + {delta === "new" || delta === "changed" ? ( + ) : ( +
)}

{checktitle} @@ -119,6 +126,21 @@ export const ColumnFindings: ColumnDef[] = [ ); }, }, + { + accessorKey: "resourceName", + header: "Resource name", + cell: ({ row }) => { + const resourceName = getResourceData(row, "name"); + + return ( + `...${value.slice(-10)}`} + icon={} + /> + ); + }, + }, { accessorKey: "severity", header: ({ column }) => ( diff --git a/ui/components/overview/new-findings-table/table/column-new-findings-to-date.tsx b/ui/components/overview/new-findings-table/table/column-new-findings-to-date.tsx index 7d04fa9722..488f8b190b 100644 --- a/ui/components/overview/new-findings-table/table/column-new-findings-to-date.tsx +++ b/ui/components/overview/new-findings-table/table/column-new-findings-to-date.tsx @@ -1,18 +1,22 @@ "use client"; import { ColumnDef } from "@tanstack/react-table"; +import { Database } from "lucide-react"; import { useSearchParams } from "next/navigation"; +import { Muted } from "@/components/findings/muted"; import { DataTableRowDetails } from "@/components/findings/table"; import { DeltaIndicator } from "@/components/findings/table/delta-indicator"; import { InfoIcon } from "@/components/icons"; -import { DateWithTime, EntityInfoShort } from "@/components/ui/entities"; +import { + DateWithTime, + EntityInfoShort, + SnippetChip, +} from "@/components/ui/entities"; import { TriggerSheet } from "@/components/ui/sheet"; import { SeverityBadge, StatusFindingBadge } from "@/components/ui/table"; import { FindingProps, ProviderType } from "@/types"; -import { Muted } from "../../../findings/muted"; - const getFindingsData = (row: { original: FindingProps }) => { return row.original; }; @@ -81,8 +85,10 @@ export const ColumnNewFindingsToDate: ColumnDef[] = [ return (

- {(delta === "new" || delta === "changed") && ( + {delta === "new" || delta === "changed" ? ( + ) : ( +
)}

{checktitle} @@ -95,6 +101,21 @@ export const ColumnNewFindingsToDate: ColumnDef[] = [ ); }, }, + { + accessorKey: "resourceName", + header: "Resource name", + cell: ({ row }) => { + const resourceName = getResourceData(row, "name"); + + return ( + `...${value.slice(-10)}`} + icon={} + /> + ); + }, + }, { accessorKey: "severity", header: "Severity", diff --git a/ui/components/providers/table/column-providers.tsx b/ui/components/providers/table/column-providers.tsx index f16585e34b..8527bfd754 100644 --- a/ui/components/providers/table/column-providers.tsx +++ b/ui/components/providers/table/column-providers.tsx @@ -3,7 +3,7 @@ import { Chip } from "@nextui-org/react"; import { ColumnDef } from "@tanstack/react-table"; -import { DateWithTime, SnippetId } from "@/components/ui/entities"; +import { DateWithTime, SnippetChip } from "@/components/ui/entities"; import { DataTableColumnHeader } from "@/components/ui/table"; import { ProviderProps } from "@/types"; @@ -74,7 +74,7 @@ export const ColumnProviders: ColumnDef[] = [ const { attributes: { uid }, } = getProviderData(row); - return ; + return ; }, }, { diff --git a/ui/components/ui/entities/entity-info-short.tsx b/ui/components/ui/entities/entity-info-short.tsx index c1c957642b..ecf7687e2f 100644 --- a/ui/components/ui/entities/entity-info-short.tsx +++ b/ui/components/ui/entities/entity-info-short.tsx @@ -1,9 +1,10 @@ import React from "react"; +import { IdIcon } from "@/components/icons"; import { ProviderType } from "@/types"; import { getProviderLogo } from "./get-provider-logo"; -import { SnippetId } from "./snippet-id"; +import { SnippetChip } from "./snippet-chip"; interface EntityInfoProps { cloudProvider: ProviderType; @@ -26,9 +27,10 @@ export const EntityInfoShort: React.FC = ({ {entityAlias && ( {entityAlias} )} - } />

diff --git a/ui/components/ui/entities/index.ts b/ui/components/ui/entities/index.ts index cb329a03e3..fb13c99282 100644 --- a/ui/components/ui/entities/index.ts +++ b/ui/components/ui/entities/index.ts @@ -3,5 +3,4 @@ export * from "./entity-info-short"; export * from "./get-provider-logo"; export * from "./info-field"; export * from "./scan-status"; -export * from "./snippet-id"; -export * from "./snippet-label"; +export * from "./snippet-chip"; diff --git a/ui/components/ui/entities/snippet-chip.tsx b/ui/components/ui/entities/snippet-chip.tsx new file mode 100644 index 0000000000..2652c2d76a --- /dev/null +++ b/ui/components/ui/entities/snippet-chip.tsx @@ -0,0 +1,47 @@ +import { cn, Snippet, Tooltip } from "@nextui-org/react"; +import React from "react"; + +import { CopyIcon, DoneIcon } from "@/components/icons"; + +interface SnippetChipProps { + value: string; + ariaLabel?: string; + icon?: React.ReactNode; + hideCopyButton?: boolean; + formatter?: (value: string) => string; + className?: string; +} +export const SnippetChip = ({ + value, + hideCopyButton = false, + ariaLabel = `Copy ${value} to clipboard`, + icon, + formatter, + className, + ...props +}: SnippetChipProps) => { + return ( + } + checkIcon={} + hideCopyButton={hideCopyButton} + codeString={value} + {...props} + > +
+ {icon} + + + {formatter ? formatter(value) : value} + + +
+
+ ); +}; diff --git a/ui/components/ui/entities/snippet-id.tsx b/ui/components/ui/entities/snippet-id.tsx deleted file mode 100644 index cb4b1a7e87..0000000000 --- a/ui/components/ui/entities/snippet-id.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { Snippet, Tooltip } from "@nextui-org/react"; -import React from "react"; - -import { CopyIcon, DoneIcon, IdIcon } from "@/components/icons"; - -interface SnippetIdProps { - entityId: string; - hideCopyButton?: boolean; - [key: string]: any; -} -export const SnippetId: React.FC = ({ - entityId, - hideCopyButton = false, - ...props -}) => { - return ( - } - checkIcon={} - hideCopyButton={hideCopyButton} - {...props} - > -

- - - - {entityId} - - -

-
- ); -}; diff --git a/ui/components/ui/entities/snippet-label.tsx b/ui/components/ui/entities/snippet-label.tsx deleted file mode 100644 index 18525d6fe5..0000000000 --- a/ui/components/ui/entities/snippet-label.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { Snippet } from "@nextui-org/react"; -import React from "react"; - -import { CopyIcon, DoneIcon } from "@/components/icons"; - -interface SnippetLabelProps { - label: string; - [key: string]: any; -} -export const SnippetLabel: React.FC = ({ - label, - ...props -}) => { - return ( - label !== "" && ( - } - checkIcon={} - {...props} - > -

- {label} -

-
- ) - ); -}; diff --git a/ui/components/users/profile/user-basic-info-card.tsx b/ui/components/users/profile/user-basic-info-card.tsx index 5c4ea0bbbd..456f9b777e 100644 --- a/ui/components/users/profile/user-basic-info-card.tsx +++ b/ui/components/users/profile/user-basic-info-card.tsx @@ -1,48 +1,18 @@ "use client"; -import { Card, CardBody, Divider, Tooltip } from "@nextui-org/react"; +import { Card, CardBody, Divider } from "@nextui-org/react"; import { CircleUserRound } from "lucide-react"; -import { useState } from "react"; -import { CopyIcon, DoneIcon } from "@/components/icons"; -import { CustomButton } from "@/components/ui/custom/custom-button"; -import { DateWithTime } from "@/components/ui/entities"; +import { DateWithTime, SnippetChip } from "@/components/ui/entities"; import { UserDataWithRoles } from "@/types/users/users"; const TenantIdCopy = ({ id }: { id: string }) => { - const [copied, setCopied] = useState(false); - - const handleCopyTenantId = () => { - navigator.clipboard.writeText(id); - setCopied(true); - setTimeout(() => setCopied(false), 2000); - }; - return (

Active organization ID:

-
- - - - {id} - - {copied ? ( - - ) : ( - - )} - - -
+
); }; From 06ff3db8af0578c5fc6230065c4eec0b4255bc3d Mon Sep 17 00:00:00 2001 From: Andoni Alonso <14891798+andoniaf@users.noreply.github.com> Date: Thu, 22 May 2025 11:23:42 +0200 Subject: [PATCH 012/111] feat(repository): add new check `repository_secret_scanning_enabled` (#7759) Co-authored-by: Sergio Garcia --- prowler/CHANGELOG.md | 3 +- ...tory_secret_scanning_enabled.metadata.json | 30 +++++ .../repository_secret_scanning_enabled.py | 38 ++++++ .../services/repository/repository_service.py | 17 +++ ...repository_secret_scanning_enabled_test.py | 112 ++++++++++++++++++ .../repository/repository_service_test.py | 2 + 6 files changed, 201 insertions(+), 1 deletion(-) create mode 100644 prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.metadata.json create mode 100644 prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.py create mode 100644 tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 3b3f77db43..1e0a128541 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to the **Prowler SDK** are documented in this file. -## [5.8.0] (Prowler v5.8.0) +## [5.8.0] (Prowler v5.8.0) ### Added - Add CIS 1.11 compliance framework for Kubernetes. [(#7790)](https://github.com/prowler-cloud/prowler/pull/7790) @@ -14,6 +14,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Add a level for Prowler ThreatScore in the accordion in Dashboard. [(#7739)](https://github.com/prowler-cloud/prowler/pull/7739) - Add CIS 4.0 compliance framework for GCP. [(7785)](https://github.com/prowler-cloud/prowler/pull/7785) - Add `repository_has_codeowners_file` check for GitHub provider. [(#7752)](https://github.com/prowler-cloud/prowler/pull/7752) +- Add `repository_secret_scanning_enabled` check for GitHub provider. [(#7759)](https://github.com/prowler-cloud/prowler/pull/7759) - Add `repository_default_branch_requires_codeowners_review` check for GitHub provider. [(#7753)](https://github.com/prowler-cloud/prowler/pull/7753) ### Fixed diff --git a/prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.metadata.json b/prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.metadata.json new file mode 100644 index 0000000000..4f9f07cc26 --- /dev/null +++ b/prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.metadata.json @@ -0,0 +1,30 @@ +{ + "Provider": "github", + "CheckID": "repository_secret_scanning_enabled", + "CheckTitle": "Check if secret scanning is enabled to detect sensitive data in the repository", + "CheckType": [], + "ServiceName": "repository", + "SubServiceName": "", + "ResourceIdTemplate": "github:user-id:repository/repository-name", + "Severity": "high", + "ResourceType": "GitHubRepository", + "Description": "Ensure that scanners are in place to detect and prevent sensitive data, such as confidential ID numbers, passwords, and other sensitive information, from being committed in the source code. This check verifies that secret scanning is enabled to identify and prevent sensitive data from being included in the repository.", + "Risk": "If secret scanning is not enabled, sensitive data may be inadvertently committed to the repository, increasing the risk of data breaches and exploitation by attackers.", + "RelatedUrl": "https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning", + "Remediation": { + "Code": { + "CLI": "", + "NativeIaC": "", + "Other": "", + "Terraform": "" + }, + "Recommendation": { + "Text": "Enable secret scanning in the repository settings to automatically detect and prevent sensitive data from being committed to the codebase.", + "Url": "https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning" + } + }, + "Categories": [], + "DependsOn": [], + "RelatedTo": [], + "Notes": "" +} diff --git a/prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.py b/prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.py new file mode 100644 index 0000000000..9489ba8653 --- /dev/null +++ b/prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.py @@ -0,0 +1,38 @@ +from typing import List + +from prowler.lib.check.models import Check, CheckReportGithub +from prowler.providers.github.services.repository.repository_client import ( + repository_client, +) + + +class repository_secret_scanning_enabled(Check): + """Check if secret scanning is enabled to detect sensitive data in the repository + + This class verifies whether each repository has secret scanning enabled. + """ + + def execute(self) -> List[CheckReportGithub]: + """Execute the Github Repository Secret Scanning check + + Iterates over all repositories and checks if secret scanning is enabled. + + Returns: + List[CheckReportGithub]: A list of reports for each repository + """ + findings = [] + for repo in repository_client.repositories.values(): + if repo.secret_scanning_enabled is not None: + report = CheckReportGithub( + metadata=self.metadata(), resource=repo, repository=repo.name + ) + if getattr(repo, "secret_scanning_enabled", None): + report.status = "PASS" + report.status_extended = f"Repository {repo.name} has secret scanning enabled to detect sensitive data." + else: + report.status = "FAIL" + report.status_extended = f"Repository {repo.name} does not have secret scanning enabled to detect sensitive data." + + findings.append(report) + + return findings diff --git a/prowler/providers/github/services/repository/repository_service.py b/prowler/providers/github/services/repository/repository_service.py index a3afffccc1..f3a77de04e 100644 --- a/prowler/providers/github/services/repository/repository_service.py +++ b/prowler/providers/github/services/repository/repository_service.py @@ -117,6 +117,21 @@ class Repository(GithubService): f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" ) + secret_scanning_enabled = False + try: + if ( + repo.security_and_analysis + and repo.security_and_analysis.secret_scanning + ): + secret_scanning_enabled = ( + repo.security_and_analysis.secret_scanning.status + == "enabled" + ) + except Exception as error: + logger.error( + f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" + ) + secret_scanning_enabled = None repos[repo.id] = Repo( id=repo.id, name=repo.name, @@ -135,6 +150,7 @@ class Repository(GithubService): default_branch_protection=branch_protection, codeowners_exists=codeowners_exists, require_code_owner_reviews=require_code_owner_reviews, + secret_scanning_enabled=secret_scanning_enabled, delete_branch_on_merge=delete_branch_on_merge, ) @@ -164,5 +180,6 @@ class Repo(BaseModel): approval_count: Optional[int] codeowners_exists: Optional[bool] require_code_owner_reviews: Optional[bool] + secret_scanning_enabled: Optional[bool] delete_branch_on_merge: Optional[bool] conversation_resolution: Optional[bool] diff --git a/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py b/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py new file mode 100644 index 0000000000..ba935d0a9d --- /dev/null +++ b/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py @@ -0,0 +1,112 @@ +from unittest import mock + +from prowler.providers.github.services.repository.repository_service import Repo +from tests.providers.github.github_fixtures import set_mocked_github_provider + + +class Test_repository_secret_scanning_enabled: + def test_no_repositories(self): + repository_client = mock.MagicMock + repository_client.repositories = {} + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_secret_scanning_enabled.repository_secret_scanning_enabled.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_secret_scanning_enabled.repository_secret_scanning_enabled import ( + repository_secret_scanning_enabled, + ) + + check = repository_secret_scanning_enabled() + result = check.execute() + assert len(result) == 0 + + def test_one_repository_no_secret_scanning(self): + repository_client = mock.MagicMock + repo_name = "repo1" + repository_client.repositories = { + 1: Repo( + id=1, + name=repo_name, + full_name="account-name/repo1", + default_branch="main", + private=False, + securitymd=True, + require_pull_request=False, + approval_count=0, + secret_scanning_enabled=False, + ), + } + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_secret_scanning_enabled.repository_secret_scanning_enabled.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_secret_scanning_enabled.repository_secret_scanning_enabled import ( + repository_secret_scanning_enabled, + ) + + check = repository_secret_scanning_enabled() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 1 + assert result[0].resource_name == repo_name + assert result[0].status == "FAIL" + assert ( + result[0].status_extended + == f"Repository {repo_name} does not have secret scanning enabled to detect sensitive data." + ) + + def test_one_repository_with_secret_scanning(self): + repository_client = mock.MagicMock + repo_name = "repo2" + repository_client.repositories = { + 2: Repo( + id=2, + name=repo_name, + full_name="account-name/repo2", + default_branch="main", + private=False, + securitymd=True, + require_pull_request=False, + approval_count=0, + secret_scanning_enabled=True, + ), + } + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_secret_scanning_enabled.repository_secret_scanning_enabled.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_secret_scanning_enabled.repository_secret_scanning_enabled import ( + repository_secret_scanning_enabled, + ) + + check = repository_secret_scanning_enabled() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 2 + assert result[0].resource_name == repo_name + assert result[0].status == "PASS" + assert ( + result[0].status_extended + == f"Repository {repo_name} has secret scanning enabled to detect sensitive data." + ) diff --git a/tests/providers/github/services/repository/repository_service_test.py b/tests/providers/github/services/repository/repository_service_test.py index 82535fad14..1fb8db539e 100644 --- a/tests/providers/github/services/repository/repository_service_test.py +++ b/tests/providers/github/services/repository/repository_service_test.py @@ -25,6 +25,7 @@ def mock_list_repositories(_): approval_count=2, codeowners_exists=True, require_code_owner_reviews=True, + secret_scanning_enabled=True, enforce_admins=True, delete_branch_on_merge=True, conversation_resolution=True, @@ -64,6 +65,7 @@ class Test_Repository_Service: assert repository_service.repositories[1].approval_count == 2 assert repository_service.repositories[1].codeowners_exists is True assert repository_service.repositories[1].require_code_owner_reviews is True + assert repository_service.repositories[1].secret_scanning_enabled is True class Test_Repository_FileExists: From 7ebc5d3c31cefb45bd5db430027eb9f15be6e599 Mon Sep 17 00:00:00 2001 From: Andoni Alonso <14891798+andoniaf@users.noreply.github.com> Date: Thu, 22 May 2025 12:22:59 +0200 Subject: [PATCH 013/111] feat(repository): add new check `repository_dependency_scanning_enabled` (#7771) Co-authored-by: Sergio Garcia --- prowler/CHANGELOG.md | 1 + .../__init__.py | 0 ..._dependency_scanning_enabled.metadata.json | 30 +++++ .../repository_dependency_scanning_enabled.py | 38 ++++++ .../services/repository/repository_service.py | 22 ++++ ...sitory_dependency_scanning_enabled_test.py | 114 ++++++++++++++++++ 6 files changed, 205 insertions(+) create mode 100644 prowler/providers/github/services/repository/repository_dependency_scanning_enabled/__init__.py create mode 100644 prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.metadata.json create mode 100644 prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.py create mode 100644 tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 1e0a128541..73373c7414 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -14,6 +14,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Add a level for Prowler ThreatScore in the accordion in Dashboard. [(#7739)](https://github.com/prowler-cloud/prowler/pull/7739) - Add CIS 4.0 compliance framework for GCP. [(7785)](https://github.com/prowler-cloud/prowler/pull/7785) - Add `repository_has_codeowners_file` check for GitHub provider. [(#7752)](https://github.com/prowler-cloud/prowler/pull/7752) +- Add `repository_dependency_scanning_enabled` check for GitHub provider. [(#7771)](https://github.com/prowler-cloud/prowler/pull/7771) - Add `repository_secret_scanning_enabled` check for GitHub provider. [(#7759)](https://github.com/prowler-cloud/prowler/pull/7759) - Add `repository_default_branch_requires_codeowners_review` check for GitHub provider. [(#7753)](https://github.com/prowler-cloud/prowler/pull/7753) diff --git a/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/__init__.py b/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.metadata.json b/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.metadata.json new file mode 100644 index 0000000000..c245667ed1 --- /dev/null +++ b/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.metadata.json @@ -0,0 +1,30 @@ +{ + "Provider": "github", + "CheckID": "repository_dependency_scanning_enabled", + "CheckTitle": "Check if package vulnerability scanning is enabled for dependencies in the repository", + "CheckType": [], + "ServiceName": "repository", + "SubServiceName": "", + "ResourceIdTemplate": "github:user-id:repository/repository-name", + "Severity": "high", + "ResourceType": "GitHubRepository", + "Description": "Implement scanning tools to detect, prevent, and monitor known open-source vulnerabilities in packages used within the organization's projects. This check verifies that dependency/package vulnerability scanning (e.g., Dependabot alerts) is enabled for the repository.", + "Risk": "If package vulnerability scanning is not enabled, known vulnerabilities in dependencies may go undetected, increasing the risk of exploitation and security breaches.", + "RelatedUrl": "https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts", + "Remediation": { + "Code": { + "CLI": "", + "NativeIaC": "", + "Other": "", + "Terraform": "" + }, + "Recommendation": { + "Text": "Enable Dependabot alerts or another package vulnerability scanner in the repository settings to automatically detect and alert on vulnerable dependencies.", + "Url": "https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts" + } + }, + "Categories": [], + "DependsOn": [], + "RelatedTo": [], + "Notes": "" +} diff --git a/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.py b/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.py new file mode 100644 index 0000000000..f06c58135f --- /dev/null +++ b/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.py @@ -0,0 +1,38 @@ +from typing import List + +from prowler.lib.check.models import Check, CheckReportGithub +from prowler.providers.github.services.repository.repository_client import ( + repository_client, +) + + +class repository_dependency_scanning_enabled(Check): + """Check if package vulnerability scanning (Dependabot alerts) is enabled for dependencies in the repository + + This class verifies whether each repository has package vulnerability scanning enabled. + """ + + def execute(self) -> List[CheckReportGithub]: + """Execute the Github Repository Package Vulnerabilities Scanner check + + Iterates over all repositories and checks if package vulnerability scanning is enabled. + + Returns: + List[CheckReportGithub]: A list of reports for each repository + """ + findings = [] + for repo in repository_client.repositories.values(): + if repo.dependabot_alerts_enabled is not None: + report = CheckReportGithub( + metadata=self.metadata(), resource=repo, repository=repo.name + ) + if repo.dependabot_alerts_enabled: + report.status = "PASS" + report.status_extended = f"Repository {repo.name} has package vulnerability scanning (Dependabot alerts) enabled." + else: + report.status = "FAIL" + report.status_extended = f"Repository {repo.name} does not have package vulnerability scanning (Dependabot alerts) enabled." + + findings.append(report) + + return findings diff --git a/prowler/providers/github/services/repository/repository_service.py b/prowler/providers/github/services/repository/repository_service.py index f3a77de04e..01e7713b56 100644 --- a/prowler/providers/github/services/repository/repository_service.py +++ b/prowler/providers/github/services/repository/repository_service.py @@ -118,6 +118,7 @@ class Repository(GithubService): ) secret_scanning_enabled = False + dependabot_alerts_enabled = False try: if ( repo.security_and_analysis @@ -127,11 +128,30 @@ class Repository(GithubService): repo.security_and_analysis.secret_scanning.status == "enabled" ) + try: + # Use get_dependabot_alerts to check if Dependabot alerts are enabled + repo.get_dependabot_alerts()[0] + # If the call succeeds, Dependabot is enabled (even if no alerts) + dependabot_alerts_enabled = True + except Exception as error: + error_str = str(error) + if ( + "403" in error_str + and "Dependabot alerts are disabled for this repository." + in error_str + ): + dependabot_alerts_enabled = False + else: + logger.error( + f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" + ) + dependabot_alerts_enabled = None except Exception as error: logger.error( f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" ) secret_scanning_enabled = None + dependabot_alerts_enabled = None repos[repo.id] = Repo( id=repo.id, name=repo.name, @@ -151,6 +171,7 @@ class Repository(GithubService): codeowners_exists=codeowners_exists, require_code_owner_reviews=require_code_owner_reviews, secret_scanning_enabled=secret_scanning_enabled, + dependabot_alerts_enabled=dependabot_alerts_enabled, delete_branch_on_merge=delete_branch_on_merge, ) @@ -181,5 +202,6 @@ class Repo(BaseModel): codeowners_exists: Optional[bool] require_code_owner_reviews: Optional[bool] secret_scanning_enabled: Optional[bool] + dependabot_alerts_enabled: Optional[bool] delete_branch_on_merge: Optional[bool] conversation_resolution: Optional[bool] diff --git a/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py b/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py new file mode 100644 index 0000000000..9930055be8 --- /dev/null +++ b/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py @@ -0,0 +1,114 @@ +from unittest import mock + +from prowler.providers.github.services.repository.repository_service import Repo +from tests.providers.github.github_fixtures import set_mocked_github_provider + + +class Test_repository_dependency_scanning_enabled: + def test_no_repositories(self): + repository_client = mock.MagicMock + repository_client.repositories = {} + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_dependency_scanning_enabled.repository_dependency_scanning_enabled.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_dependency_scanning_enabled.repository_dependency_scanning_enabled import ( + repository_dependency_scanning_enabled, + ) + + check = repository_dependency_scanning_enabled() + result = check.execute() + assert len(result) == 0 + + def test_one_repository_no_dependabot(self): + repository_client = mock.MagicMock + repo_name = "repo1" + repository_client.repositories = { + 1: Repo( + id=1, + name=repo_name, + full_name="account-name/repo1", + default_branch="main", + private=False, + securitymd=True, + require_pull_request=False, + approval_count=0, + secret_scanning_enabled=True, + dependabot_alerts_enabled=False, + ), + } + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_dependency_scanning_enabled.repository_dependency_scanning_enabled.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_dependency_scanning_enabled.repository_dependency_scanning_enabled import ( + repository_dependency_scanning_enabled, + ) + + check = repository_dependency_scanning_enabled() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 1 + assert result[0].resource_name == repo_name + assert result[0].status == "FAIL" + assert ( + result[0].status_extended + == f"Repository {repo_name} does not have package vulnerability scanning (Dependabot alerts) enabled." + ) + + def test_one_repository_with_dependabot(self): + repository_client = mock.MagicMock + repo_name = "repo2" + repository_client.repositories = { + 2: Repo( + id=2, + name=repo_name, + full_name="account-name/repo2", + default_branch="main", + private=False, + securitymd=True, + require_pull_request=False, + approval_count=0, + secret_scanning_enabled=True, + dependabot_alerts_enabled=True, + ), + } + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_dependency_scanning_enabled.repository_dependency_scanning_enabled.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_dependency_scanning_enabled.repository_dependency_scanning_enabled import ( + repository_dependency_scanning_enabled, + ) + + check = repository_dependency_scanning_enabled() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 2 + assert result[0].resource_name == repo_name + assert result[0].status == "PASS" + assert ( + result[0].status_extended + == f"Repository {repo_name} has package vulnerability scanning (Dependabot alerts) enabled." + ) From 99164ce93ea3170593d6add95e3e8f0f233b0421 Mon Sep 17 00:00:00 2001 From: Andoni Alonso <14891798+andoniaf@users.noreply.github.com> Date: Thu, 22 May 2025 12:45:13 +0200 Subject: [PATCH 014/111] feat(repository): add new check `repository_default_branch_requires_signed_commits` (#7777) Co-authored-by: Sergio Garcia --- prowler/CHANGELOG.md | 1 + .../__init__.py | 0 ...anch_requires_signed_commits.metadata.json | 30 +++++ ..._default_branch_requires_signed_commits.py | 38 ++++++ .../services/repository/repository_service.py | 7 ++ ...ult_branch_requires_signed_commits_test.py | 110 ++++++++++++++++++ 6 files changed, 186 insertions(+) create mode 100644 prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/__init__.py create mode 100644 prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.metadata.json create mode 100644 prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py create mode 100644 tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 73373c7414..804a4086e9 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -14,6 +14,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Add a level for Prowler ThreatScore in the accordion in Dashboard. [(#7739)](https://github.com/prowler-cloud/prowler/pull/7739) - Add CIS 4.0 compliance framework for GCP. [(7785)](https://github.com/prowler-cloud/prowler/pull/7785) - Add `repository_has_codeowners_file` check for GitHub provider. [(#7752)](https://github.com/prowler-cloud/prowler/pull/7752) +- Add `repository_default_branch_requires_signed_commits` check for GitHub provider. [(#7777)](https://github.com/prowler-cloud/prowler/pull/7777) - Add `repository_dependency_scanning_enabled` check for GitHub provider. [(#7771)](https://github.com/prowler-cloud/prowler/pull/7771) - Add `repository_secret_scanning_enabled` check for GitHub provider. [(#7759)](https://github.com/prowler-cloud/prowler/pull/7759) - Add `repository_default_branch_requires_codeowners_review` check for GitHub provider. [(#7753)](https://github.com/prowler-cloud/prowler/pull/7753) diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/__init__.py b/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.metadata.json b/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.metadata.json new file mode 100644 index 0000000000..2b0ddb8c8a --- /dev/null +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.metadata.json @@ -0,0 +1,30 @@ +{ + "Provider": "github", + "CheckID": "repository_default_branch_requires_signed_commits", + "CheckTitle": "Check if repository requires signed commits", + "CheckType": [], + "ServiceName": "repository", + "SubServiceName": "", + "ResourceIdTemplate": "github:user-id:repository/repository-name", + "Severity": "medium", + "ResourceType": "GitHubRepository", + "Description": "Ensure that every commit in a pull request is signed and verified before merging to the default branch.", + "Risk": "If repositories do not require signed commits, there is no way to verify the authenticity and integrity of code changes. This could allow malicious actors to impersonate legitimate contributors and introduce unauthorized or harmful changes to the codebase.", + "RelatedUrl": "https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification", + "Remediation": { + "Code": { + "CLI": "", + "NativeIaC": "", + "Other": "", + "Terraform": "" + }, + "Recommendation": { + "Text": "Enable the 'Require signed commits' option in branch protection rules to ensure that all commits are cryptographically signed and verified before they can be merged.", + "Url": "https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-signed-commits" + } + }, + "Categories": [], + "DependsOn": [], + "RelatedTo": [], + "Notes": "" +} diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py b/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py new file mode 100644 index 0000000000..1eb5b41be6 --- /dev/null +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py @@ -0,0 +1,38 @@ +from typing import List + +from prowler.lib.check.models import Check, CheckReportGithub +from prowler.providers.github.services.repository.repository_client import ( + repository_client, +) + + +class repository_default_branch_requires_signed_commits(Check): + """Check if a repository requires signed commits + + This class verifies whether each repository requires signed commits for the default branch. + """ + + def execute(self) -> List[CheckReportGithub]: + """Execute the Github Repository Requires Signed Commits check + + Iterates over all repositories and checks if they require signed commits. + + Returns: + List[CheckReportGithub]: A list of reports for each repository + """ + findings = [] + for repo in repository_client.repositories.values(): + if repo.require_signed_commits is not None: + report = CheckReportGithub( + metadata=self.metadata(), resource=repo, repository=repo.name + ) + report.status = "FAIL" + report.status_extended = f"Repository {repo.name} does not require signed commits on default branch ({repo.default_branch})." + + if repo.require_signed_commits: + report.status = "PASS" + report.status_extended = f"Repository {repo.name} does require signed commits on default branch ({repo.default_branch})." + + findings.append(report) + + return findings diff --git a/prowler/providers/github/services/repository/repository_service.py b/prowler/providers/github/services/repository/repository_service.py index 01e7713b56..49cc11177e 100644 --- a/prowler/providers/github/services/repository/repository_service.py +++ b/prowler/providers/github/services/repository/repository_service.py @@ -61,6 +61,7 @@ class Repository(GithubService): allow_force_pushes = True branch_deletion = True require_code_owner_reviews = False + require_signed_commits = False status_checks = False enforce_admins = False conversation_resolution = False @@ -95,6 +96,9 @@ class Repository(GithubService): if require_pr else False ) + require_signed_commits = ( + branch.get_required_signatures() + ) except Exception as error: # If the branch is not found, it is not protected if "404" in str(error): @@ -110,6 +114,7 @@ class Repository(GithubService): allow_force_pushes = None branch_deletion = None require_code_owner_reviews = None + require_signed_commits = None status_checks = None enforce_admins = None conversation_resolution = None @@ -171,6 +176,7 @@ class Repository(GithubService): codeowners_exists=codeowners_exists, require_code_owner_reviews=require_code_owner_reviews, secret_scanning_enabled=secret_scanning_enabled, + require_signed_commits=require_signed_commits, dependabot_alerts_enabled=dependabot_alerts_enabled, delete_branch_on_merge=delete_branch_on_merge, ) @@ -202,6 +208,7 @@ class Repo(BaseModel): codeowners_exists: Optional[bool] require_code_owner_reviews: Optional[bool] secret_scanning_enabled: Optional[bool] + require_signed_commits: Optional[bool] dependabot_alerts_enabled: Optional[bool] delete_branch_on_merge: Optional[bool] conversation_resolution: Optional[bool] diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py new file mode 100644 index 0000000000..dd177f4288 --- /dev/null +++ b/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py @@ -0,0 +1,110 @@ +from unittest import mock + +from prowler.providers.github.services.repository.repository_service import Repo +from tests.providers.github.github_fixtures import set_mocked_github_provider + + +class Test_repository_default_branch_requires_signed_commits: + def test_no_repositories(self): + repository_client = mock.MagicMock + repository_client.repositories = {} + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_default_branch_requires_signed_commits.repository_default_branch_requires_signed_commits.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_default_branch_requires_signed_commits.repository_default_branch_requires_signed_commits import ( + repository_default_branch_requires_signed_commits, + ) + + check = repository_default_branch_requires_signed_commits() + result = check.execute() + assert len(result) == 0 + + def test_signed_commits_not_required(self): + repository_client = mock.MagicMock + repo_name = "repo1" + default_branch = "main" + repository_client.repositories = { + 1: Repo( + id=1, + name=repo_name, + full_name="account-name/repo1", + private=False, + default_branch=default_branch, + require_signed_commits=False, + securitymd=True, + ), + } + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_default_branch_requires_signed_commits.repository_default_branch_requires_signed_commits.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_default_branch_requires_signed_commits.repository_default_branch_requires_signed_commits import ( + repository_default_branch_requires_signed_commits, + ) + + check = repository_default_branch_requires_signed_commits() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 1 + assert result[0].resource_name == repo_name + assert result[0].status == "FAIL" + assert ( + result[0].status_extended + == f"Repository {repo_name} does not require signed commits on default branch ({default_branch})." + ) + + def test_signed_commits_required(self): + repository_client = mock.MagicMock + repo_name = "repo2" + default_branch = "main" + repository_client.repositories = { + 2: Repo( + id=2, + name=repo_name, + full_name="account-name/repo2", + private=False, + default_branch=default_branch, + require_signed_commits=True, + securitymd=True, + ), + } + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_default_branch_requires_signed_commits.repository_default_branch_requires_signed_commits.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_default_branch_requires_signed_commits.repository_default_branch_requires_signed_commits import ( + repository_default_branch_requires_signed_commits, + ) + + check = repository_default_branch_requires_signed_commits() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 2 + assert result[0].resource_name == repo_name + assert result[0].status == "PASS" + assert ( + result[0].status_extended + == f"Repository {repo_name} does require signed commits on default branch ({default_branch})." + ) From 36aaec8a55ccc1a8f9489a0424af15d4bc1c75fc Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Thu, 22 May 2025 17:36:58 +0200 Subject: [PATCH 015/111] chore(m365powershell): manage encryption from plaintext password (#7784) Co-authored-by: Daniel Barranquero --- api/CHANGELOG.md | 7 ++ api/pyproject.toml | 2 +- api/src/backend/api/specs/v1.yaml | 18 ++--- .../api/v1/serializer_utils/providers.py | 4 +- api/src/backend/api/v1/serializers.py | 2 +- api/src/backend/api/v1/views.py | 2 +- docs/getting-started/requirements.md | 10 +-- .../microsoft365/getting-started-m365.md | 4 +- poetry.lock | 28 +------ prowler/CHANGELOG.md | 1 + .../m365/lib/powershell/m365_powershell.py | 58 +++++++++++--- prowler/providers/m365/m365_provider.py | 46 +++++------ prowler/providers/m365/models.py | 5 +- .../lib/powershell/m365_powershell_test.py | 80 ++++++++++++++++--- tests/providers/m365/m365_provider_test.py | 42 +++++----- ui/actions/providers/providers.ts | 4 +- .../forms/update-via-credentials-form.tsx | 6 +- .../workflow/forms/via-credentials-form.tsx | 6 +- .../via-credentials/m365-credentials-form.tsx | 6 +- ui/types/components.ts | 2 +- ui/types/formSchemas.ts | 2 +- 21 files changed, 208 insertions(+), 127 deletions(-) diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index 2f0ba3cce0..a4e118478b 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to the **Prowler API** are documented in this file. +## [v1.9.0] (Prowler UNRELEASED) + +### Changed +- Renamed field encrypted_password to password for M365 provider [(#7784)](https://github.com/prowler-cloud/prowler/pull/7784) + +--- + ## [v1.8.1] (Prowler v5.7.1) ### Fixed diff --git a/api/pyproject.toml b/api/pyproject.toml index 19190f8893..621e1fb477 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -35,7 +35,7 @@ name = "prowler-api" package-mode = false # Needed for the SDK compatibility requires-python = ">=3.11,<3.13" -version = "1.8.1" +version = "1.9.0" [project.scripts] celery = "src.backend.config.settings.celery" diff --git a/api/src/backend/api/specs/v1.yaml b/api/src/backend/api/specs/v1.yaml index 3f90c28cb1..e787e7d37c 100644 --- a/api/src/backend/api/specs/v1.yaml +++ b/api/src/backend/api/specs/v1.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: Prowler API - version: 1.8.1 + version: 1.9.0 description: |- Prowler API specification. @@ -9240,7 +9240,7 @@ components: user: type: email description: User microsoft email address. - encrypted_password: + password: type: string description: User encrypted password. required: @@ -9248,7 +9248,7 @@ components: - client_secret - tenant_id - user - - encrypted_password + - password - type: object title: GCP Static Credentials properties: @@ -10485,7 +10485,7 @@ components: user: type: email description: User microsoft email address. - encrypted_password: + password: type: string description: User encrypted password. required: @@ -10493,7 +10493,7 @@ components: - client_secret - tenant_id - user - - encrypted_password + - password - type: object title: GCP Static Credentials properties: @@ -10694,7 +10694,7 @@ components: user: type: email description: User microsoft email address. - encrypted_password: + password: type: string description: User encrypted password. required: @@ -10702,7 +10702,7 @@ components: - client_secret - tenant_id - user - - encrypted_password + - password - type: object title: GCP Static Credentials properties: @@ -10919,7 +10919,7 @@ components: user: type: email description: User microsoft email address. - encrypted_password: + password: type: string description: User encrypted password. required: @@ -10927,7 +10927,7 @@ components: - client_secret - tenant_id - user - - encrypted_password + - password - type: object title: GCP Static Credentials properties: diff --git a/api/src/backend/api/v1/serializer_utils/providers.py b/api/src/backend/api/v1/serializer_utils/providers.py index 231e5dc1bb..759f5bf764 100644 --- a/api/src/backend/api/v1/serializer_utils/providers.py +++ b/api/src/backend/api/v1/serializer_utils/providers.py @@ -119,7 +119,7 @@ from rest_framework_json_api import serializers "type": "email", "description": "User microsoft email address.", }, - "encrypted_password": { + "password": { "type": "string", "description": "User encrypted password.", }, @@ -129,7 +129,7 @@ from rest_framework_json_api import serializers "client_secret", "tenant_id", "user", - "encrypted_password", + "password", ], }, { diff --git a/api/src/backend/api/v1/serializers.py b/api/src/backend/api/v1/serializers.py index c0440f3ef0..4ba2154327 100644 --- a/api/src/backend/api/v1/serializers.py +++ b/api/src/backend/api/v1/serializers.py @@ -1197,7 +1197,7 @@ class M365ProviderSecret(serializers.Serializer): client_secret = serializers.CharField() tenant_id = serializers.CharField() user = serializers.EmailField() - encrypted_password = serializers.CharField() + password = serializers.CharField() class Meta: resource_name = "provider-secrets" diff --git a/api/src/backend/api/v1/views.py b/api/src/backend/api/v1/views.py index b3e39fef50..52ba70c264 100644 --- a/api/src/backend/api/v1/views.py +++ b/api/src/backend/api/v1/views.py @@ -260,7 +260,7 @@ class SchemaView(SpectacularAPIView): def get(self, request, *args, **kwargs): spectacular_settings.TITLE = "Prowler API" - spectacular_settings.VERSION = "1.8.1" + spectacular_settings.VERSION = "1.9.0" spectacular_settings.DESCRIPTION = ( "Prowler API specification.\n\nThis file is auto-generated." ) diff --git a/docs/getting-started/requirements.md b/docs/getting-started/requirements.md index 29b9069013..bb2452715e 100644 --- a/docs/getting-started/requirements.md +++ b/docs/getting-started/requirements.md @@ -153,14 +153,14 @@ With this credentials you will only be able to run the checks that work through Authentication flag: `--env-auth` -This authentication method follows the same approach as the service principal method but introduces two additional environment variables for user credentials: `M365_USER` and `M365_ENCRYPTED_PASSWORD`. +This authentication method follows the same approach as the service principal method but introduces two additional environment variables for user credentials: `M365_USER` and `M365_PASSWORD`. ```console export AZURE_CLIENT_ID="XXXXXXXXX" export AZURE_CLIENT_SECRET="XXXXXXXXX" export AZURE_TENANT_ID="XXXXXXXXX" export M365_USER="your_email@example.com" -export M365_ENCRYPTED_PASSWORD="6500780061006d0070006c006500700061007300730077006f0072006400" # replace this to yours +export M365_PASSWORD="6500780061006d0070006c006500700061007300730077006f0072006400" # replace this to yours ``` These two new environment variables are **required** to execute the PowerShell modules needed to retrieve information from M365 services. Prowler uses Service Principal authentication to access Microsoft Graph and user credentials to authenticate to Microsoft PowerShell modules. @@ -173,7 +173,7 @@ These two new environment variables are **required** to execute the PowerShell m ![User Domains](../tutorials/microsoft365/img/user-domains.png) -- `M365_ENCRYPTED_PASSWORD` must be an encrypted SecureString. To convert your password into a valid encrypted string, you need to use PowerShell. +- `M365_PASSWORD` must be an encrypted SecureString. To convert your password into a valid encrypted string, you need to use PowerShell. ???+ warning Passwords encrypted using ConvertTo-SecureString can only be decrypted on the same OS/user context. If you generate an encrypted password on macOS or Linux (both UNIX), it should fail on Windows and vice versa. As Prowler Cloud runs on UNIX if you generate your password using Windows it won't work so you'll need to generate a new password using any UNIX distro (example above) @@ -191,7 +191,7 @@ These two new environment variables are **required** to execute the PowerShell m 6500780061006d0070006c006500700061007300730077006f0072006400 ``` - If everything is done correctly, you will see the encrypted string that you need to set as the `M365_ENCRYPTED_PASSWORD` environment variable. + If everything is done correctly, you will see the encrypted string that you need to set as the `M365_PASSWORD` environment variable. === "Windows" @@ -222,7 +222,7 @@ These two new environment variables are **required** to execute the PowerShell m 6500780061006d0070006c006500700061007300730077006f0072006400 ``` - If everything is done correctly, you will see the encrypted string that you need to set as the `M365_ENCRYPTED_PASSWORD` environment variable. + If everything is done correctly, you will see the encrypted string that you need to set as the `M365_PASSWORD` environment variable. diff --git a/docs/tutorials/microsoft365/getting-started-m365.md b/docs/tutorials/microsoft365/getting-started-m365.md index 067b31a1dd..bf9d6b0664 100644 --- a/docs/tutorials/microsoft365/getting-started-m365.md +++ b/docs/tutorials/microsoft365/getting-started-m365.md @@ -176,7 +176,7 @@ Follow these steps to assign the role: ### Get your encrypted password -For this step you will need to use PowerShell, here you will have to create your Encrypted Password based on the password of the User that you are going to use. For more information about how to generate this Password go [here](../../getting-started/requirements.md#service-principal-and-user-credentials-authentication-recommended) and follow the steps needed to obtain `M365_ENCRYPTED_PASSWORD`. +For this step you will need to use PowerShell, here you will have to create your Encrypted Password based on the password of the User that you are going to use. For more information about how to generate this Password go [here](../../getting-started/requirements.md#service-principal-and-user-credentials-authentication-recommended) and follow the steps needed to obtain `M365_PASSWORD`. --- @@ -192,7 +192,7 @@ For this step you will need to use PowerShell, here you will have to create your - `Tenant ID` - `AZURE_CLIENT_SECRET` from earlier - `M365_USER` your user using the default domain, more info [here](../../getting-started/requirements.md#service-principal-and-user-credentials-authentication-recommended) - - `M365_ENCRYPTED_PASSWORD` generated before + - `M365_PASSWORD` generated before ![Prowler Cloud M365 Credentials](./img/m365-credentials.png) diff --git a/poetry.lock b/poetry.lock index 01c3b39bd3..bea5bae5ff 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2184,6 +2184,8 @@ python-versions = "*" groups = ["dev"] files = [ {file = "jsonpath-ng-1.7.0.tar.gz", hash = "sha256:f6f5f7fd4e5ff79c785f1573b394043b39849fb2bb47bcead935d12b00beab3c"}, + {file = "jsonpath_ng-1.7.0-py2-none-any.whl", hash = "sha256:898c93fc173f0c336784a3fa63d7434297544b7198124a68f9a3ef9597b0ae6e"}, + {file = "jsonpath_ng-1.7.0-py3-none-any.whl", hash = "sha256:f3d7f9e848cba1b6da28c55b1c26ff915dc9e0b1ba7e752a53d6da8d5cbd00b6"}, ] [package.dependencies] @@ -3969,32 +3971,6 @@ cffi = ">=1.4.1" docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"] tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"] -[[package]] -name = "pynacl" -version = "1.5.0" -description = "Python binding to the Networking and Cryptography (NaCl) library" -optional = false -python-versions = ">=3.6" -files = [ - {file = "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"}, - {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92"}, - {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394"}, - {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d"}, - {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858"}, - {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b"}, - {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff"}, - {file = "PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543"}, - {file = "PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93"}, - {file = "PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"}, -] - -[package.dependencies] -cffi = ">=1.4.1" - -[package.extras] -docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"] -tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"] - [[package]] name = "pyparsing" version = "3.2.3" diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 804a4086e9..0743229677 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -51,6 +51,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Update and upgrade CIS for all the providers [(#7738)](https://github.com/prowler-cloud/prowler/pull/7738) - Cover policies with conditions with SNS endpoint in `sns_topics_not_publicly_accessible`. [(#7750)](https://github.com/prowler-cloud/prowler/pull/7750) - Change severity logic for `ec2_securitygroup_allow_ingress_from_internet_to_all_ports` check. [(#7764)](https://github.com/prowler-cloud/prowler/pull/7764) +- Automatically encrypt password in Microsoft365 provider. [(#7784)](https://github.com/prowler-cloud/prowler/pull/7784) --- diff --git a/prowler/providers/m365/lib/powershell/m365_powershell.py b/prowler/providers/m365/lib/powershell/m365_powershell.py index a91e25d52d..fede39c401 100644 --- a/prowler/providers/m365/lib/powershell/m365_powershell.py +++ b/prowler/providers/m365/lib/powershell/m365_powershell.py @@ -1,4 +1,5 @@ import os +import platform import msal @@ -64,17 +65,59 @@ class M365PowerShell(PowerShellSession): The credentials are sanitized to prevent command injection and stored securely in the PowerShell session. """ + + credentials.encrypted_passwd = self.encrypt_password(credentials.passwd) + # Sanitize user and password - user = self.sanitize(credentials.user) - passwd = self.sanitize(credentials.passwd) + sanitized_user = self.sanitize(credentials.user) + sanitized_encrypted_passwd = self.sanitize(credentials.encrypted_passwd) # Securely convert encrypted password to SecureString - self.execute(f'$user = "{user}"') - self.execute(f'$secureString = "{passwd}" | ConvertTo-SecureString') + self.execute(f'$user = "{sanitized_user}"') + self.execute( + f'$secureString = "{sanitized_encrypted_passwd}" | ConvertTo-SecureString' + ) self.execute( "$credential = New-Object System.Management.Automation.PSCredential ($user, $secureString)" ) + def encrypt_password(self, password: str) -> str: + """ + Encrypts a password using Windows CryptProtectData on Windows systems + or UTF-16LE encoding on other systems. + + Args: + password (str): The password to encrypt + + Returns: + str: The encrypted password in hexadecimal format + + Raises: + ValueError: If password is None or empty + """ + try: + if platform.system() == "Windows": + import win32crypt + + encrypted_blob = win32crypt.CryptProtectData( + password.encode("utf-16le"), None, None, None, None, 0 + ) + + encrypted_bytes = encrypted_blob + if isinstance(encrypted_blob, tuple): + encrypted_bytes = encrypted_blob[1] + elif hasattr(encrypted_blob, "data"): + encrypted_bytes = encrypted_blob.data + + return encrypted_bytes.hex() + + else: + return password.encode("utf-16le").hex() + except Exception as error: + raise Exception( + f"[{os.path.basename(__file__)}] Error encrypting password: {str(error)}" + ) + def test_credentials(self, credentials: M365Credentials) -> bool: """ Test Microsoft 365 credentials by attempting to authenticate against Entra ID. @@ -87,14 +130,11 @@ class M365PowerShell(PowerShellSession): bool: True if credentials are valid and authentication succeeds, False otherwise. """ self.execute( - f'$securePassword = "{self.sanitize(credentials.passwd)}" | ConvertTo-SecureString' + f'$securePassword = "{credentials.encrypted_passwd}" | ConvertTo-SecureString' # encrypted password already sanitized ) self.execute( f'$credential = New-Object System.Management.Automation.PSCredential("{self.sanitize(credentials.user)}", $securePassword)' ) - decrypted_password = self.execute( - 'Write-Output "$($credential.GetNetworkCredential().Password)"' - ) # Validate user belongs to tenant user_domain = credentials.user.split("@")[1] @@ -116,7 +156,7 @@ class M365PowerShell(PowerShellSession): # Validate credentials result = app.acquire_token_by_username_password( username=credentials.user, - password=decrypted_password, # Needs to be in plain text + password=credentials.passwd, scopes=["https://graph.microsoft.com/.default"], ) diff --git a/prowler/providers/m365/m365_provider.py b/prowler/providers/m365/m365_provider.py index a4135b0692..c2a85f5f48 100644 --- a/prowler/providers/m365/m365_provider.py +++ b/prowler/providers/m365/m365_provider.py @@ -117,7 +117,7 @@ class M365Provider(Provider): client_id: str = None, client_secret: str = None, user: str = None, - encrypted_password: str = None, + password: str = None, init_modules: bool = False, region: str = "M365Global", config_content: dict = None, @@ -164,7 +164,7 @@ class M365Provider(Provider): client_id, client_secret, user, - encrypted_password, + password, ) logger.info("Checking if region is different than default one") @@ -172,13 +172,13 @@ class M365Provider(Provider): # Get the dict from the static credentials m365_credentials = None - if tenant_id and client_id and client_secret and user and encrypted_password: + if tenant_id and client_id and client_secret and user and password: m365_credentials = self.validate_static_credentials( tenant_id=tenant_id, client_id=client_id, client_secret=client_secret, user=user, - encrypted_password=encrypted_password, + password=password, ) # Set up the M365 session @@ -282,7 +282,7 @@ class M365Provider(Provider): client_id: str, client_secret: str, user: str, - encrypted_password: str, + password: str, ): """ Validates the authentication arguments for the M365 provider. @@ -324,10 +324,10 @@ class M365Provider(Provider): message="M365 Tenant ID (--tenant-id) is required for browser authentication mode", ) elif env_auth: - if not user or not encrypted_password or not tenant_id: + if not user or not password or not tenant_id: raise M365MissingEnvironmentCredentialsError( file=os.path.basename(__file__), - message="M365 provider requires AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID, M365_USER and M365_ENCRYPTED_PASSWORD environment variables to be set when using --env-auth", + message="M365 provider requires AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID, M365_USER and M365_PASSWORD environment variables to be set when using --env-auth", ) else: if not tenant_id: @@ -396,7 +396,7 @@ class M365Provider(Provider): if m365_credentials: credentials = M365Credentials( user=m365_credentials.get("user", ""), - passwd=m365_credentials.get("encrypted_password", ""), + passwd=m365_credentials.get("password", ""), client_id=m365_credentials.get("client_id", ""), client_secret=m365_credentials.get("client_secret", ""), tenant_id=m365_credentials.get("tenant_id", ""), @@ -404,18 +404,18 @@ class M365Provider(Provider): ) elif env_auth: m365_user = getenv("M365_USER") - m365_password = getenv("M365_ENCRYPTED_PASSWORD") + m365_password = getenv("M365_PASSWORD") client_id = getenv("AZURE_CLIENT_ID") client_secret = getenv("AZURE_CLIENT_SECRET") tenant_id = getenv("AZURE_TENANT_ID") if not m365_user or not m365_password: logger.critical( - "M365 provider: Missing M365_USER or M365_ENCRYPTED_PASSWORD environment variables needed for credentials authentication" + "M365 provider: Missing M365_USER or M365_PASSWORD environment variables needed for credentials authentication" ) raise M365MissingEnvironmentCredentialsError( file=os.path.basename(__file__), - message="Missing M365_USER or M365_ENCRYPTED_PASSWORD environment variables required for credentials authentication.", + message="Missing M365_USER or M365_PASSWORD environment variables required for credentials authentication.", ) credentials = M365Credentials( client_id=client_id, @@ -494,7 +494,7 @@ class M365Provider(Provider): - client_id: The M365 client ID. - client_secret: The M365 client secret - user: The M365 user email - - encrypted_password: The M365 encrypted password + - password: The M365 encrypted password - provider_id: The M365 provider ID (in this case the Tenant ID). region_config (M365RegionConfig): The region configuration object. @@ -621,7 +621,7 @@ class M365Provider(Provider): client_id: str = None, client_secret: str = None, user: str = None, - encrypted_password: str = None, + password: str = None, provider_id: str = None, ) -> Connection: """Test connection to M365 tenant and PowerShell modules. @@ -640,7 +640,7 @@ class M365Provider(Provider): client_id (str): The M365 client ID. client_secret (str): The M365 client secret. user (str): The M365 user email. - encrypted_password (str): The M365 encrypted_password. + password (str): The M365 password. provider_id (str): The M365 provider ID (in this case the Tenant ID). @@ -674,20 +674,20 @@ class M365Provider(Provider): client_id, client_secret, user, - encrypted_password, + password, ) region_config = M365Provider.setup_region_config(region) # Get the dict from the static credentials m365_credentials = None if tenant_id and client_id and client_secret: - if not user and not encrypted_password: + if not user and not password: m365_credentials = M365Provider.validate_static_credentials( tenant_id=tenant_id, client_id=client_id, client_secret=client_secret, user="user", - encrypted_password="encrypted_password", + password="password", ) else: m365_credentials = M365Provider.validate_static_credentials( @@ -695,7 +695,7 @@ class M365Provider(Provider): client_id=client_id, client_secret=client_secret, user=user, - encrypted_password=encrypted_password, + password=password, ) # Set up the M365 session @@ -733,7 +733,7 @@ class M365Provider(Provider): ) # Set up PowerShell credentials - if user and encrypted_password: + if user and password: M365Provider.setup_powershell( env_auth, m365_credentials, @@ -975,7 +975,7 @@ class M365Provider(Provider): client_id: str = None, client_secret: str = None, user: str = None, - encrypted_password: str = None, + password: str = None, ) -> dict: """ Validates the static credentials for the M365 provider. @@ -985,7 +985,7 @@ class M365Provider(Provider): client_id (str): The M365 client ID. client_secret (str): The M365 client secret. user (str): The M365 user email. - encrypted_password (str): The M365 encrypted password. + password (str): The M365 encrypted password. Raises: M365NotValidTenantIdError: If the provided M365 Tenant ID is not valid. @@ -1031,7 +1031,7 @@ class M365Provider(Provider): ) # Validate the Encrypted Password - if not encrypted_password: + if not password: raise M365NotValidEncryptedPasswordError( file=os.path.basename(__file__), message="The provided Encrypted Password is not valid.", @@ -1044,7 +1044,7 @@ class M365Provider(Provider): "client_id": client_id, "client_secret": client_secret, "user": user, - "encrypted_password": encrypted_password, + "password": password, } except M365NotValidTenantIdError as tenant_id_error: logger.error( diff --git a/prowler/providers/m365/models.py b/prowler/providers/m365/models.py index d0d73263b5..f77bc8ee4c 100644 --- a/prowler/providers/m365/models.py +++ b/prowler/providers/m365/models.py @@ -22,12 +22,13 @@ class M365RegionConfig(BaseModel): class M365Credentials(BaseModel): + user: str = "" + passwd: str = "" + encrypted_passwd: str = "" client_id: str = "" client_secret: str = "" tenant_id: str = "" tenant_domains: list[str] = [] - user: str = "" - passwd: str = "" class M365OutputOptions(ProviderOutputOptions): diff --git a/tests/providers/m365/lib/powershell/m365_powershell_test.py b/tests/providers/m365/lib/powershell/m365_powershell_test.py index 7bc3236433..739dd7e8ce 100644 --- a/tests/providers/m365/lib/powershell/m365_powershell_test.py +++ b/tests/providers/m365/lib/powershell/m365_powershell_test.py @@ -75,6 +75,7 @@ class Testm365PowerShell: credentials = M365Credentials( user="test@example.com", passwd="test_password", + encrypted_passwd="test_password", client_id="test_client_id", client_secret="test_client_secret", tenant_id="test_tenant_id", @@ -89,13 +90,19 @@ class Testm365PowerShell: ) session = M365PowerShell(credentials, identity) + # Mock encrypt_password to return a known value + session.encrypt_password = MagicMock(return_value="encrypted_password") session.execute = MagicMock() session.init_credential(credentials) + # Verify encrypt_password was called + session.encrypt_password.assert_called_once_with(credentials.passwd) + + # Verify execute was called with the correct commands session.execute.assert_any_call(f'$user = "{credentials.user}"') session.execute.assert_any_call( - f'$secureString = "{credentials.passwd}" | ConvertTo-SecureString' + f'$secureString = "{credentials.encrypted_passwd}" | ConvertTo-SecureString' ) session.execute.assert_any_call( "$credential = New-Object System.Management.Automation.PSCredential ($user, $secureString)" @@ -116,6 +123,7 @@ class Testm365PowerShell: credentials = M365Credentials( user="test@contoso.onmicrosoft.com", passwd="test_password", + encrypted_passwd="test_encrypted_password", client_id="test_client_id", client_secret="test_client_secret", tenant_id="test_tenant_id", @@ -130,11 +138,9 @@ class Testm365PowerShell: ) session = M365PowerShell(credentials, identity) - # Mock read_output to return the decrypted password - session.read_output = MagicMock(return_value="decrypted_password") - - # Mock execute to return the result of read_output - session.execute = MagicMock(side_effect=lambda _: session.read_output()) + # Mock encrypt_password to return a known value + session.encrypt_password = MagicMock(return_value="encrypted_password") + session.execute = MagicMock() # Execute the test result = session.test_credentials(credentials) @@ -142,14 +148,11 @@ class Testm365PowerShell: # Verify execute was called with the correct commands session.execute.assert_any_call( - f'$securePassword = "{credentials.passwd}" | ConvertTo-SecureString' + f'$securePassword = "{credentials.encrypted_passwd}" | ConvertTo-SecureString' ) session.execute.assert_any_call( f'$credential = New-Object System.Management.Automation.PSCredential("{session.sanitize(credentials.user)}", $securePassword)' ) - session.execute.assert_any_call( - 'Write-Output "$($credential.GetNetworkCredential().Password)"' - ) # Verify MSAL was called with the correct parameters mock_msal.assert_called_once_with( @@ -159,7 +162,7 @@ class Testm365PowerShell: ) mock_msal_instance.acquire_token_by_username_password.assert_called_once_with( username="test@contoso.onmicrosoft.com", - password="decrypted_password", + password="test_password", # Original password, not encrypted scopes=["https://graph.microsoft.com/.default"], ) session.close() @@ -229,6 +232,7 @@ class Testm365PowerShell: credentials = M365Credentials( user="test@contoso.onmicrosoft.com", passwd="test_password", + encrypted_passwd="test_encrypted_password", client_id="test_client_id", client_secret="test_client_secret", tenant_id="test_tenant_id", @@ -262,7 +266,7 @@ class Testm365PowerShell: ) mock_msal_instance.acquire_token_by_username_password.assert_called_once_with( username="test@contoso.onmicrosoft.com", - password="decrypted_password", + password="test_password", scopes=["https://graph.microsoft.com/.default"], ) @@ -561,3 +565,55 @@ class Testm365PowerShell: ) # Verify no info messages were logged mock_info.assert_not_called() + + @patch("subprocess.Popen") + def test_encrypt_password(self, mock_popen): + credentials = M365Credentials(user="test@example.com", passwd="test_password") + identity = M365IdentityInfo( + identity_id="test_id", + identity_type="User", + tenant_id="test_tenant", + tenant_domain="example.com", + tenant_domains=["example.com"], + location="test_location", + ) + session = M365PowerShell(credentials, identity) + + # Test non-Windows system (should use utf-16le hex encoding) + from unittest import mock + + with mock.patch("platform.system", return_value="Linux"): + result = session.encrypt_password("password123") + expected = "password123".encode("utf-16le").hex() + assert result == expected + + # Test Windows system with tuple return + with mock.patch("platform.system", return_value="Windows"): + import sys + + win32crypt_mock = mock.MagicMock() + win32crypt_mock.CryptProtectData.return_value = (None, b"encrypted_bytes") + sys.modules["win32crypt"] = win32crypt_mock + + result = session.encrypt_password("password123") + assert result == b"encrypted_bytes".hex() + + # Clean up mock + del sys.modules["win32crypt"] + + # Test error handling + with mock.patch("platform.system", return_value="Windows"): + import sys + + win32crypt_mock = mock.MagicMock() + win32crypt_mock.CryptProtectData.side_effect = Exception("Test error") + sys.modules["win32crypt"] = win32crypt_mock + + with pytest.raises(Exception) as exc_info: + session.encrypt_password("password123") + assert "Error encrypting password: Test error" in str(exc_info.value) + + # Clean up mock + del sys.modules["win32crypt"] + + session.close() diff --git a/tests/providers/m365/m365_provider_test.py b/tests/providers/m365/m365_provider_test.py index 2f30efabde..96a293c602 100644 --- a/tests/providers/m365/m365_provider_test.py +++ b/tests/providers/m365/m365_provider_test.py @@ -365,7 +365,7 @@ class TestM365Provider: assert test_connection.is_connected assert test_connection.error is None - def test_test_connection_tenant_id_client_id_client_secret_no_user_encrypted_password( + def test_test_connection_tenant_id_client_id_client_secret_no_user_password( self, ): with patch( @@ -384,13 +384,13 @@ class TestM365Provider: client_id=str(uuid4()), client_secret=str(uuid4()), user=None, - encrypted_password="test_password", + password="test_password", ) assert exception.type == M365NotValidUserError assert "The provided M365 User is not valid." in str(exception.value) - def test_test_connection_tenant_id_client_id_client_secret_user_no_encrypted_password( + def test_test_connection_tenant_id_client_id_client_secret_user_no_password( self, ): with patch( @@ -411,7 +411,7 @@ class TestM365Provider: client_id=str(uuid4()), client_secret=str(uuid4()), user="test@example.com", - encrypted_password=None, + password=None, ) assert exception.type == M365NotValidEncryptedPasswordError @@ -467,7 +467,7 @@ class TestM365Provider: def test_setup_powershell_valid_credentials(self): credentials_dict = { "user": "test@example.com", - "encrypted_password": "test_password", + "password": "test_password", "client_id": "test_client_id", "tenant_id": "test_tenant_id", "client_secret": "test_client_secret", @@ -492,7 +492,7 @@ class TestM365Provider: ), ) assert result.user == credentials_dict["user"] - assert result.passwd == credentials_dict["encrypted_password"] + assert result.passwd == credentials_dict["password"] def test_setup_powershell_invalid_env_credentials(self): credentials = None @@ -510,7 +510,7 @@ class TestM365Provider: ) assert ( - "Missing M365_USER or M365_ENCRYPTED_PASSWORD environment variables required for credentials authentication" + "Missing M365_USER or M365_PASSWORD environment variables required for credentials authentication" in str(exc_info.value) ) mock_session.test_credentials.assert_not_called() @@ -534,7 +534,7 @@ class TestM365Provider: client_id=str(uuid4()), client_secret=str(uuid4()), user="user@otherdomain.com", - encrypted_password="test_password", + password="test_password", ) assert exception.type == M365UserNotBelongingToTenantError @@ -550,7 +550,7 @@ class TestM365Provider: client_id="12345678-1234-5678-1234-567812345678", client_secret="test_secret", user="test@example.com", - encrypted_password="test_password", + password="test_password", ) assert "The provided Tenant ID is not valid." in str(exception.value) @@ -561,7 +561,7 @@ class TestM365Provider: client_id="", client_secret="test_secret", user="test@example.com", - encrypted_password="test_password", + password="test_password", ) assert "The provided Client ID is not valid." in str(exception.value) @@ -572,7 +572,7 @@ class TestM365Provider: client_id="12345678-1234-5678-1234-567812345678", client_secret="", user="test@example.com", - encrypted_password="test_password", + password="test_password", ) assert "The provided Client Secret is not valid." in str(exception.value) @@ -583,18 +583,18 @@ class TestM365Provider: client_id="12345678-1234-5678-1234-567812345678", client_secret="test_secret", user="", - encrypted_password="test_password", + password="test_password", ) assert "The provided User is not valid." in str(exception.value) - def test_validate_static_credentials_missing_encrypted_password(self): + def test_validate_static_credentials_missing_password(self): with pytest.raises(M365NotValidEncryptedPasswordError) as exception: M365Provider.validate_static_credentials( tenant_id="12345678-1234-5678-1234-567812345678", client_id="12345678-1234-5678-1234-567812345678", client_secret="test_secret", user="test@example.com", - encrypted_password="", + password="", ) assert "The provided Encrypted Password is not valid." in str(exception.value) @@ -609,11 +609,11 @@ class TestM365Provider: client_id="test_client_id", client_secret="test_secret", user=None, - encrypted_password=None, + password=None, ) assert ( - "M365 provider requires AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID, M365_USER and M365_ENCRYPTED_PASSWORD environment variables to be set when using --env-auth" + "M365 provider requires AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID, M365_USER and M365_PASSWORD environment variables to be set when using --env-auth" in str(exception.value) ) @@ -655,7 +655,7 @@ class TestM365Provider: client_id=str(uuid4()), client_secret=str(uuid4()), user=f"user@{user_domain}", - encrypted_password="test_password", + password="test_password", provider_id=provider_id, ) @@ -669,7 +669,7 @@ class TestM365Provider: """Test that initialize_m365_powershell_modules is not called when init_modules is False""" credentials_dict = { "user": "test@example.com", - "encrypted_password": "test_password", + "password": "test_password", "client_id": "test_client_id", "tenant_id": "test_tenant_id", "client_secret": "test_client_secret", @@ -703,7 +703,7 @@ class TestM365Provider: """Test that initialize_m365_powershell_modules is called when init_modules is True""" credentials_dict = { "user": "test@example.com", - "encrypted_password": "test_password", + "password": "test_password", "client_id": "test_client_id", "tenant_id": "test_tenant_id", "client_secret": "test_client_secret", @@ -737,7 +737,7 @@ class TestM365Provider: """Test that setup_powershell handles initialization failures correctly""" credentials_dict = { "user": "test@example.com", - "encrypted_password": "test_password", + "password": "test_password", "client_id": "test_client_id", "tenant_id": "test_tenant_id", "client_secret": "test_client_secret", @@ -808,7 +808,7 @@ class TestM365Provider: client_id=str(uuid4()), client_secret=str(uuid4()), user="user@contoso.onmicrosoft.com", - encrypted_password="test_password", + password="test_password", provider_id=provider_id, ) diff --git a/ui/actions/providers/providers.ts b/ui/actions/providers/providers.ts index 2a36f7ca05..66bcf318d7 100644 --- a/ui/actions/providers/providers.ts +++ b/ui/actions/providers/providers.ts @@ -195,7 +195,7 @@ export const addCredentialsProvider = async (formData: FormData) => { client_secret: formData.get("client_secret"), tenant_id: formData.get("tenant_id"), user: formData.get("user"), - encrypted_password: formData.get("encrypted_password"), + password: formData.get("password"), }; } else if (providerType === "gcp") { // Static credentials configuration for GCP @@ -298,7 +298,7 @@ export const updateCredentialsProvider = async ( client_secret: formData.get("client_secret"), tenant_id: formData.get("tenant_id"), user: formData.get("user"), - encrypted_password: formData.get("encrypted_password"), + password: formData.get("password"), }; } else if (providerType === "gcp") { // Static credentials configuration for GCP diff --git a/ui/components/providers/workflow/forms/update-via-credentials-form.tsx b/ui/components/providers/workflow/forms/update-via-credentials-form.tsx index 9c751eb399..640c2d5975 100644 --- a/ui/components/providers/workflow/forms/update-via-credentials-form.tsx +++ b/ui/components/providers/workflow/forms/update-via-credentials-form.tsx @@ -86,7 +86,7 @@ export const UpdateViaCredentialsForm = ({ client_secret: "", tenant_id: "", user: "", - encrypted_password: "", + password: "", } : providerType === "gcp" ? { @@ -153,8 +153,8 @@ export const UpdateViaCredentialsForm = ({ message: errorMessage, }); break; - case "/data/attributes/secret/encrypted_password": - form.setError("encrypted_password", { + case "/data/attributes/secret/password": + form.setError("password", { type: "server", message: errorMessage, }); diff --git a/ui/components/providers/workflow/forms/via-credentials-form.tsx b/ui/components/providers/workflow/forms/via-credentials-form.tsx index 38b3a98a86..5ae75e8658 100644 --- a/ui/components/providers/workflow/forms/via-credentials-form.tsx +++ b/ui/components/providers/workflow/forms/via-credentials-form.tsx @@ -85,7 +85,7 @@ export const ViaCredentialsForm = ({ client_secret: "", tenant_id: "", user: "", - encrypted_password: "", + password: "", } : providerType === "gcp" ? { @@ -152,8 +152,8 @@ export const ViaCredentialsForm = ({ message: errorMessage, }); break; - case "/data/attributes/secret/encrypted_password": - form.setError("encrypted_password", { + case "/data/attributes/secret/password": + form.setError("password", { type: "server", message: errorMessage, }); diff --git a/ui/components/providers/workflow/forms/via-credentials/m365-credentials-form.tsx b/ui/components/providers/workflow/forms/via-credentials/m365-credentials-form.tsx index 1ba6024ffc..d7c2d0bef1 100644 --- a/ui/components/providers/workflow/forms/via-credentials/m365-credentials-form.tsx +++ b/ui/components/providers/workflow/forms/via-credentials/m365-credentials-form.tsx @@ -64,14 +64,14 @@ export const M365CredentialsForm = ({ /> ); diff --git a/ui/types/components.ts b/ui/types/components.ts index e45913efc7..94c5a06646 100644 --- a/ui/types/components.ts +++ b/ui/types/components.ts @@ -224,7 +224,7 @@ export type M365Credentials = { client_secret: string; tenant_id: string; user: string; - encrypted_password: string; + password: string; secretName: string; providerId: string; }; diff --git a/ui/types/formSchemas.ts b/ui/types/formSchemas.ts index b0c64dfa24..8fae292824 100644 --- a/ui/types/formSchemas.ts +++ b/ui/types/formSchemas.ts @@ -142,7 +142,7 @@ export const addCredentialsFormSchema = (providerType: string) => .nonempty("Client Secret is required"), tenant_id: z.string().nonempty("Tenant ID is required"), user: z.string().nonempty("User is required"), - encrypted_password: z + password: z .string() .nonempty("Encrypted Password is required"), } From f726d964a8f7b15f249b183e05e04b624867586b Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Fri, 23 May 2025 12:27:57 +0200 Subject: [PATCH 016/111] fix(m365): remove last encrypted password appearances (#7825) --- api/src/backend/api/specs/v1.yaml | 8 +++---- .../api/v1/serializer_utils/providers.py | 2 +- .../providers/m365/exceptions/exceptions.py | 8 +++---- prowler/providers/m365/m365_provider.py | 14 ++++++------ tests/providers/m365/m365_provider_test.py | 22 ++++++++----------- 5 files changed, 25 insertions(+), 29 deletions(-) diff --git a/api/src/backend/api/specs/v1.yaml b/api/src/backend/api/specs/v1.yaml index e787e7d37c..e368d57757 100644 --- a/api/src/backend/api/specs/v1.yaml +++ b/api/src/backend/api/specs/v1.yaml @@ -9242,7 +9242,7 @@ components: description: User microsoft email address. password: type: string - description: User encrypted password. + description: User password. required: - client_id - client_secret @@ -10487,7 +10487,7 @@ components: description: User microsoft email address. password: type: string - description: User encrypted password. + description: User password. required: - client_id - client_secret @@ -10696,7 +10696,7 @@ components: description: User microsoft email address. password: type: string - description: User encrypted password. + description: User password. required: - client_id - client_secret @@ -10921,7 +10921,7 @@ components: description: User microsoft email address. password: type: string - description: User encrypted password. + description: User password. required: - client_id - client_secret diff --git a/api/src/backend/api/v1/serializer_utils/providers.py b/api/src/backend/api/v1/serializer_utils/providers.py index 759f5bf764..a6ecea67d0 100644 --- a/api/src/backend/api/v1/serializer_utils/providers.py +++ b/api/src/backend/api/v1/serializer_utils/providers.py @@ -121,7 +121,7 @@ from rest_framework_json_api import serializers }, "password": { "type": "string", - "description": "User encrypted password.", + "description": "User password.", }, }, "required": [ diff --git a/prowler/providers/m365/exceptions/exceptions.py b/prowler/providers/m365/exceptions/exceptions.py index 7d599386f9..fe2b8b442c 100644 --- a/prowler/providers/m365/exceptions/exceptions.py +++ b/prowler/providers/m365/exceptions/exceptions.py @@ -106,9 +106,9 @@ class M365BaseException(ProwlerException): "message": "The provided User is not valid.", "remediation": "Check the User and ensure it is a valid user.", }, - (6025, "M365NotValidEncryptedPasswordError"): { - "message": "The provided Encrypted Password is not valid.", - "remediation": "Check the Encrypted Password and ensure it is a valid password.", + (6025, "M365NotValidPasswordError"): { + "message": "The provided Password is not valid.", + "remediation": "Check the Password and ensure it is a valid password.", }, (6026, "M365UserNotBelongingToTenantError"): { "message": "The provided User does not belong to the specified tenant.", @@ -312,7 +312,7 @@ class M365NotValidUserError(M365CredentialsError): ) -class M365NotValidEncryptedPasswordError(M365CredentialsError): +class M365NotValidPasswordError(M365CredentialsError): def __init__(self, file=None, original_exception=None, message=None): super().__init__( 6025, file=file, original_exception=original_exception, message=message diff --git a/prowler/providers/m365/m365_provider.py b/prowler/providers/m365/m365_provider.py index c2a85f5f48..cf647ce978 100644 --- a/prowler/providers/m365/m365_provider.py +++ b/prowler/providers/m365/m365_provider.py @@ -43,7 +43,7 @@ from prowler.providers.m365.exceptions.exceptions import ( M365NotTenantIdButClientIdAndClientSecretError, M365NotValidClientIdError, M365NotValidClientSecretError, - M365NotValidEncryptedPasswordError, + M365NotValidPasswordError, M365NotValidTenantIdError, M365NotValidUserError, M365SetUpRegionConfigError, @@ -296,7 +296,7 @@ class M365Provider(Provider): client_id (str): The M365 Client ID. client_secret (str): The M365 Client Secret. user (str): The M365 User Account. - encrpted_password (str): The M365 Encrypted Password. + password (str): The M365 User Password. Raises: M365BrowserAuthNoTenantIDError: If browser authentication is enabled but the tenant ID is not found. @@ -494,7 +494,7 @@ class M365Provider(Provider): - client_id: The M365 client ID. - client_secret: The M365 client secret - user: The M365 user email - - password: The M365 encrypted password + - password: The M365 user password - provider_id: The M365 provider ID (in this case the Tenant ID). region_config (M365RegionConfig): The region configuration object. @@ -985,7 +985,7 @@ class M365Provider(Provider): client_id (str): The M365 client ID. client_secret (str): The M365 client secret. user (str): The M365 user email. - password (str): The M365 encrypted password. + password (str): The M365 user password. Raises: M365NotValidTenantIdError: If the provided M365 Tenant ID is not valid. @@ -1030,11 +1030,11 @@ class M365Provider(Provider): message="The provided User is not valid.", ) - # Validate the Encrypted Password + # Validate the Password if not password: - raise M365NotValidEncryptedPasswordError( + raise M365NotValidPasswordError( file=os.path.basename(__file__), - message="The provided Encrypted Password is not valid.", + message="The provided Password is not valid.", ) try: diff --git a/tests/providers/m365/m365_provider_test.py b/tests/providers/m365/m365_provider_test.py index 96a293c602..457173dc44 100644 --- a/tests/providers/m365/m365_provider_test.py +++ b/tests/providers/m365/m365_provider_test.py @@ -24,7 +24,7 @@ from prowler.providers.m365.exceptions.exceptions import ( M365NoAuthenticationMethodError, M365NotValidClientIdError, M365NotValidClientSecretError, - M365NotValidEncryptedPasswordError, + M365NotValidPasswordError, M365NotValidTenantIdError, M365NotValidUserError, M365UserNotBelongingToTenantError, @@ -396,14 +396,12 @@ class TestM365Provider: with patch( "prowler.providers.m365.m365_provider.M365Provider.validate_static_credentials" ) as mock_validate_static_credentials: - mock_validate_static_credentials.side_effect = ( - M365NotValidEncryptedPasswordError( - file=os.path.basename(__file__), - message="The provided M365 Encrypted Password is not valid.", - ) + mock_validate_static_credentials.side_effect = M365NotValidPasswordError( + file=os.path.basename(__file__), + message="The provided M365 Password is not valid.", ) - with pytest.raises(M365NotValidEncryptedPasswordError) as exception: + with pytest.raises(M365NotValidPasswordError) as exception: M365Provider.test_connection( tenant_id=str(uuid4()), region="M365Global", @@ -414,10 +412,8 @@ class TestM365Provider: password=None, ) - assert exception.type == M365NotValidEncryptedPasswordError - assert "The provided M365 Encrypted Password is not valid." in str( - exception.value - ) + assert exception.type == M365NotValidPasswordError + assert "The provided M365 Password is not valid." in str(exception.value) def test_test_connection_with_httpresponseerror(self): with patch( @@ -588,7 +584,7 @@ class TestM365Provider: assert "The provided User is not valid." in str(exception.value) def test_validate_static_credentials_missing_password(self): - with pytest.raises(M365NotValidEncryptedPasswordError) as exception: + with pytest.raises(M365NotValidPasswordError) as exception: M365Provider.validate_static_credentials( tenant_id="12345678-1234-5678-1234-567812345678", client_id="12345678-1234-5678-1234-567812345678", @@ -596,7 +592,7 @@ class TestM365Provider: user="test@example.com", password="", ) - assert "The provided Encrypted Password is not valid." in str(exception.value) + assert "The provided Password is not valid." in str(exception.value) def test_validate_arguments_missing_env_credentials(self): with pytest.raises(M365MissingEnvironmentCredentialsError) as exception: From 1b42dda817394546bc7c5c5bb3af958ea983aa30 Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Fri, 23 May 2025 12:52:17 +0200 Subject: [PATCH 017/111] fix(formSchemas): encrypted password typo (#7828) --- ui/types/formSchemas.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/types/formSchemas.ts b/ui/types/formSchemas.ts index 8fae292824..168e45e261 100644 --- a/ui/types/formSchemas.ts +++ b/ui/types/formSchemas.ts @@ -144,7 +144,7 @@ export const addCredentialsFormSchema = (providerType: string) => user: z.string().nonempty("User is required"), password: z .string() - .nonempty("Encrypted Password is required"), + .nonempty("Password is required"), } : {}), }); From 33031d2c9624775582410865737cba09b34824d7 Mon Sep 17 00:00:00 2001 From: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Date: Fri, 23 May 2025 13:42:35 +0200 Subject: [PATCH 018/111] feat: implement provider UID extraction and mapping in scans pages (#7820) Co-authored-by: Pablo Lara --- ui/CHANGELOG.md | 1 + ui/actions/providers/providers.ts | 3 +- ui/app/(prowler)/findings/page.tsx | 51 +++++++++---------- ui/app/(prowler)/manage-groups/page.tsx | 2 +- ui/app/(prowler)/scans/page.tsx | 24 ++++++++- ui/components/filters/data-filters.ts | 25 +++++++-- .../ui/custom/custom-dropdown-filter.tsx | 2 +- .../ui/table/data-table-filter-custom.tsx | 23 +++++++-- ui/lib/provider-helpers.ts | 40 +++++++++++++++ ui/types/filters.ts | 1 + ui/types/providers.ts | 26 +++++++++- 11 files changed, 156 insertions(+), 42 deletions(-) create mode 100644 ui/lib/provider-helpers.ts diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index f56f24cec8..69068a16e2 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -8,6 +8,7 @@ All notable changes to the **Prowler UI** are documented in this file. - New profile page with details about the user and their roles. [(#7780)](https://github.com/prowler-cloud/prowler/pull/7780) - Improved `SnippetChip` component and show resource name in new findings table. [(#7813)](https://github.com/prowler-cloud/prowler/pull/7813) +- Add `Provider UID` filter to scans page. [(#7820)](https://github.com/prowler-cloud/prowler/pull/7820) --- diff --git a/ui/actions/providers/providers.ts b/ui/actions/providers/providers.ts index 66bcf318d7..f4891677ee 100644 --- a/ui/actions/providers/providers.ts +++ b/ui/actions/providers/providers.ts @@ -10,6 +10,7 @@ import { parseStringify, wait, } from "@/lib"; +import { ProvidersApiResponse } from "@/types/providers"; export const getProviders = async ({ page = 1, @@ -17,7 +18,7 @@ export const getProviders = async ({ sort = "", filters = {}, pageSize = 10, -}) => { +}): Promise => { const headers = await getAuthHeaders({ contentType: false }); if (isNaN(Number(page)) || page < 1) redirect("/providers"); diff --git a/ui/app/(prowler)/findings/page.tsx b/ui/app/(prowler)/findings/page.tsx index f1c5fac71f..e37902ac31 100644 --- a/ui/app/(prowler)/findings/page.tsx +++ b/ui/app/(prowler)/findings/page.tsx @@ -23,7 +23,10 @@ import { extractSortAndKey, hasDateOrScanFilter, } from "@/lib"; -import { ProviderAccountProps, ProviderProps } from "@/types"; +import { + createProviderDetailsMapping, + extractProviderUIDs, +} from "@/lib/provider-helpers"; import { FindingProps, ScanProps, SearchParamsProps } from "@/types/components"; export default async function Findings({ @@ -53,29 +56,23 @@ export default async function Findings({ const uniqueResourceTypes = metadataInfoData?.data?.attributes?.resource_types || []; - // Extract provider UIDs - const providerUIDs: string[] = Array.from( - new Set( - providersData?.data - ?.map((provider: ProviderProps) => provider.attributes?.uid) - .filter(Boolean), - ), - ); - - const providerDetails: Array<{ [uid: string]: ProviderAccountProps }> = - providerUIDs.map((uid) => { - const provider = providersData.data.find( - (p: { attributes: { uid: string } }) => p.attributes?.uid === uid, - ); + // Extract provider UIDs and details using helper functions + const providerUIDs = providersData ? extractProviderUIDs(providersData) : []; + const providerDetails = providersData + ? createProviderDetailsMapping(providerUIDs, providersData) + : []; + // Update the Provider UID filter + const updatedFilters = filterFindings.map((filter) => { + if (filter.key === "provider_uid__in") { return { - [uid]: { - provider: provider?.attributes?.provider || "", - uid: uid, - alias: provider?.attributes?.alias ?? null, - }, + ...filter, + values: providerUIDs, + valueLabelMapping: providerDetails, }; - }); + } + return filter; + }); // Extract scan UUIDs with "completed" state and more than one resource const completedScans = scansData?.data @@ -98,32 +95,30 @@ export default async function Findings({ { const matchingProvider = providersList.find( - (p: ProviderProps) => p.id === provider.id, + (p: { id: string; name: string }) => p.id === provider.id, ); return { id: provider.id, diff --git a/ui/app/(prowler)/scans/page.tsx b/ui/app/(prowler)/scans/page.tsx index 0679139770..bcf97dd47a 100644 --- a/ui/app/(prowler)/scans/page.tsx +++ b/ui/app/(prowler)/scans/page.tsx @@ -14,6 +14,10 @@ import { SkeletonTableScans } from "@/components/scans/table"; import { ColumnGetScans } from "@/components/scans/table/scans"; import { ContentLayout } from "@/components/ui"; import { DataTable, DataTableFilterCustom } from "@/components/ui/table"; +import { + createProviderDetailsMapping, + extractProviderUIDs, +} from "@/lib/provider-helpers"; import { ProviderProps, ScanProps, SearchParamsProps } from "@/types"; export default async function Scans({ @@ -61,6 +65,24 @@ export default async function Scans({ scan.attributes.state === "available", ); + // Extract provider UIDs and create provider details mapping for filtering + const providerUIDs = providersData ? extractProviderUIDs(providersData) : []; + const providerDetails = providersData + ? createProviderDetailsMapping(providerUIDs, providersData) + : []; + + // Update the Provider UID filter + const updatedFilters = filterScans.map((filter) => { + if (filter.key === "provider_uid__in") { + return { + ...filter, + values: providerUIDs, + valueLabelMapping: providerDetails, + }; + } + return filter; + }); + return ( <> {thereIsNoProviders && ( @@ -89,7 +111,7 @@ export default async function Scans({
- +
diff --git a/ui/components/filters/data-filters.ts b/ui/components/filters/data-filters.ts index 8d712bfb70..ec964bbc26 100644 --- a/ui/components/filters/data-filters.ts +++ b/ui/components/filters/data-filters.ts @@ -30,6 +30,11 @@ export const filterScans = [ labelCheckboxGroup: "Trigger", values: ["scheduled", "manual"], }, + { + key: "provider_uid__in", + labelCheckboxGroup: "Provider UID", + values: [], + }, // Add more filter categories as needed ]; @@ -38,21 +43,31 @@ export const filterFindings = [ key: "severity__in", labelCheckboxGroup: "Severity", values: ["critical", "high", "medium", "low", "informational"], + index: 1, }, { key: "status__in", labelCheckboxGroup: "Status", values: ["PASS", "FAIL", "MANUAL"], - }, - { - key: "delta__in", - labelCheckboxGroup: "Delta", - values: ["new", "changed"], + index: 2, }, { key: "provider_type__in", labelCheckboxGroup: "Cloud Provider", values: ["aws", "azure", "m365", "gcp", "kubernetes"], + index: 4, + }, + { + key: "provider_uid__in", + labelCheckboxGroup: "Provider UID", + values: [], + index: 8, + }, + { + key: "delta__in", + labelCheckboxGroup: "Delta", + values: ["new", "changed"], + index: 3, }, // Add more filter categories as needed ]; diff --git a/ui/components/ui/custom/custom-dropdown-filter.tsx b/ui/components/ui/custom/custom-dropdown-filter.tsx index ee18bab9bc..5664122e89 100644 --- a/ui/components/ui/custom/custom-dropdown-filter.tsx +++ b/ui/components/ui/custom/custom-dropdown-filter.tsx @@ -213,7 +213,7 @@ export const CustomDropdownFilter: React.FC = ({ {entity ? ( diff --git a/ui/components/ui/table/data-table-filter-custom.tsx b/ui/components/ui/table/data-table-filter-custom.tsx index 655297659c..3a394c30ef 100644 --- a/ui/components/ui/table/data-table-filter-custom.tsx +++ b/ui/components/ui/table/data-table-filter-custom.tsx @@ -1,7 +1,7 @@ "use client"; import React, { useState } from "react"; -import { useCallback } from "react"; +import { useCallback, useMemo } from "react"; import { CustomFilterIcon } from "@/components/icons"; import { CustomButton, CustomDropdownFilter } from "@/components/ui/custom"; @@ -20,6 +20,21 @@ export const DataTableFilterCustom = ({ const { updateFilter } = useUrlFilters(); const [showFilters, setShowFilters] = useState(defaultOpen); + // Sort filters by index property, with fallback to original order for filters without index + const sortedFilters = useMemo(() => { + return [...filters].sort((a, b) => { + // If both have index, sort by index + if (a.index !== undefined && b.index !== undefined) { + return a.index - b.index; + } + // If only one has index, prioritize the one with index + if (a.index !== undefined) return -1; + if (b.index !== undefined) return 1; + // If neither has index, maintain original order + return 0; + }); + }, [filters]); + const pushDropdownFilter = useCallback( (key: string, values: string[]) => { updateFilter(key, values.length > 0 ? values : null); @@ -30,7 +45,7 @@ export const DataTableFilterCustom = ({ return (
4 ? "flex-col" : "flex-col md:flex-row" + sortedFilters.length > 4 ? "flex-col" : "flex-col md:flex-row" } gap-4`} >
4 + sortedFilters.length >= 4 ? "grid-cols-1 md:grid-cols-4" : "grid-cols-1 md:grid-cols-3" }`} > - {filters.map((filter) => ( + {sortedFilters.map((filter) => ( { + if (!providersData?.data) return []; + + return Array.from( + new Set( + providersData.data + .map((provider: ProviderProps) => provider.attributes?.uid) + .filter(Boolean), + ), + ); +}; + +export const createProviderDetailsMapping = ( + providerUIDs: string[], + providersData: ProvidersApiResponse, +): Array<{ [uid: string]: ProviderAccountProps }> => { + if (!providersData?.data) return []; + + return providerUIDs.map((uid) => { + const provider = providersData.data.find( + (p: { attributes: { uid: string } }) => p.attributes?.uid === uid, + ); + + return { + [uid]: { + provider: provider?.attributes?.provider || "aws", + uid: uid, + alias: provider?.attributes?.alias ?? null, + }, + }; + }); +}; diff --git a/ui/types/filters.ts b/ui/types/filters.ts index a8fb78dde9..e6f364794e 100644 --- a/ui/types/filters.ts +++ b/ui/types/filters.ts @@ -5,6 +5,7 @@ export interface FilterOption { labelCheckboxGroup: string; values: string[]; valueLabelMapping?: Array<{ [uid: string]: ProviderAccountProps }>; + index?: number; } export interface CustomDropdownFilterProps { diff --git a/ui/types/providers.ts b/ui/types/providers.ts index 6bac15262c..f12fd25944 100644 --- a/ui/types/providers.ts +++ b/ui/types/providers.ts @@ -48,7 +48,7 @@ export interface ProviderProps { export interface ProviderAccountProps { provider: ProviderType; uid: string; - alias: string; + alias: string | null; } export interface ProviderOverviewProps { @@ -71,3 +71,27 @@ export interface ProviderOverviewProps { version: string; }; } + +export interface ProvidersApiResponse { + links: { + first: string; + last: string; + next: string | null; + prev: string | null; + }; + data: ProviderProps[]; + included?: Array<{ + type: string; + id: string; + attributes: any; + relationships?: any; + }>; + meta: { + pagination: { + page: number; + pages: number; + count: number; + }; + version: string; + }; +} From 91545e409ed75d86620b8129138b85ba4ad17a25 Mon Sep 17 00:00:00 2001 From: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Date: Fri, 23 May 2025 14:45:28 +0200 Subject: [PATCH 019/111] feat: change tenant name in /profile page (#7829) Co-authored-by: Pablo Lara --- ui/CHANGELOG.md | 1 + ui/actions/users/tenants.ts | 67 +++++++++++++ ui/app/(prowler)/profile/page.tsx | 34 ++++--- .../ui/custom/custom-alert-modal.tsx | 3 +- .../ui/custom/custom-server-input.tsx | 52 ++++++++++ ui/components/ui/custom/index.ts | 1 + ui/components/ui/entities/info-field.tsx | 28 +++++- .../users/forms/edit-tenant-form.tsx | 95 +++++++++++++++++++ ui/components/users/forms/index.ts | 1 + .../users/profile/membership-item.tsx | 84 ++++++++++++---- .../users/profile/memberships-card.tsx | 24 +++-- ui/components/users/profile/role-item.tsx | 2 +- .../users/profile/user-basic-info-card.tsx | 54 +++++------ ui/lib/permissions.ts | 20 ++++ 14 files changed, 397 insertions(+), 69 deletions(-) create mode 100644 ui/components/ui/custom/custom-server-input.tsx create mode 100644 ui/components/users/forms/edit-tenant-form.tsx diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 69068a16e2..e58655a05f 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -8,6 +8,7 @@ All notable changes to the **Prowler UI** are documented in this file. - New profile page with details about the user and their roles. [(#7780)](https://github.com/prowler-cloud/prowler/pull/7780) - Improved `SnippetChip` component and show resource name in new findings table. [(#7813)](https://github.com/prowler-cloud/prowler/pull/7813) +- Possibility to edit the organization name. [(#7829)](https://github.com/prowler-cloud/prowler/pull/7829) - Add `Provider UID` filter to scans page. [(#7820)](https://github.com/prowler-cloud/prowler/pull/7820) --- diff --git a/ui/actions/users/tenants.ts b/ui/actions/users/tenants.ts index 0901345852..9063fc9e1b 100644 --- a/ui/actions/users/tenants.ts +++ b/ui/actions/users/tenants.ts @@ -1,4 +1,7 @@ +"use server"; + import { revalidatePath } from "next/cache"; +import { z } from "zod"; import { apiBaseUrl, getAuthHeaders, parseStringify } from "@/lib/helper"; @@ -26,3 +29,67 @@ export const getAllTenants = async () => { return undefined; } }; + +const editTenantFormSchema = z + .object({ + tenantId: z.string(), + name: z.string().trim().min(1, { message: "Name is required" }), + currentName: z.string(), + }) + .refine((data) => data.name !== data.currentName, { + message: "Name must be different from the current name", + path: ["name"], + }); + +export async function updateTenantName(prevState: any, formData: FormData) { + const headers = await getAuthHeaders({ contentType: true }); + const formDataObject = Object.fromEntries(formData); + const validatedData = editTenantFormSchema.safeParse(formDataObject); + + if (!validatedData.success) { + const formFieldErrors = validatedData.error.flatten().fieldErrors; + + return { + errors: { + name: formFieldErrors?.name?.[0], + }, + }; + } + + const { tenantId, name } = validatedData.data; + + const payload = { + data: { + type: "tenants", + id: tenantId, + attributes: { + name: name.trim(), + }, + }, + }; + + try { + const url = new URL(`${apiBaseUrl}/tenants/${tenantId}`); + const response = await fetch(url.toString(), { + method: "PATCH", + headers, + body: JSON.stringify(payload), + }); + + if (!response.ok) { + throw new Error(`Failed to update tenant name: ${response.statusText}`); + } + + await response.json(); + revalidatePath("/profile"); + return { success: "Tenant name updated successfully!" }; + } catch (error) { + // eslint-disable-next-line no-console + console.error("Error updating tenant name:", error); + return { + errors: { + general: "Error updating tenant name. Please try again.", + }, + }; + } +} diff --git a/ui/app/(prowler)/profile/page.tsx b/ui/app/(prowler)/profile/page.tsx index b78d9e8439..29d8a01e45 100644 --- a/ui/app/(prowler)/profile/page.tsx +++ b/ui/app/(prowler)/profile/page.tsx @@ -8,16 +8,15 @@ import { UserBasicInfoCard } from "@/components/users/profile"; import { MembershipsCard } from "@/components/users/profile/memberships-card"; import { RolesCard } from "@/components/users/profile/roles-card"; import { SkeletonUserInfo } from "@/components/users/profile/skeleton-user-info"; +import { isUserOwnerAndHasManageAccount } from "@/lib/permissions"; import { RoleDetail, TenantDetailData } from "@/types/users/users"; export default async function Profile() { return ( -
- }> - - -
+ }> + +
); } @@ -61,14 +60,27 @@ const SSRDataUser = async () => { ), ); + const isOwner = isUserOwnerAndHasManageAccount( + roleDetails, + memberships?.data || [], + userProfile.data.id, + ); + return ( -
+
- - +
+
+ +
+
+ +
+
); }; diff --git a/ui/components/ui/custom/custom-alert-modal.tsx b/ui/components/ui/custom/custom-alert-modal.tsx index 2df428104e..3878bb686f 100644 --- a/ui/components/ui/custom/custom-alert-modal.tsx +++ b/ui/components/ui/custom/custom-alert-modal.tsx @@ -23,9 +23,10 @@ export const CustomAlertModal: React.FC = ({ size="xl" classNames={{ base: "dark:bg-prowler-blue-800", - closeButton: "right-0", + closeButton: "rounded-md", }} backdrop="blur" + placement="center" > {(_onClose) => ( diff --git a/ui/components/ui/custom/custom-server-input.tsx b/ui/components/ui/custom/custom-server-input.tsx new file mode 100644 index 0000000000..58318d96c9 --- /dev/null +++ b/ui/components/ui/custom/custom-server-input.tsx @@ -0,0 +1,52 @@ +"use client"; + +import { Input } from "@nextui-org/react"; +import React from "react"; + +interface CustomServerInputProps { + name: string; + label?: string; + labelPlacement?: "inside" | "outside"; + variant?: "flat" | "bordered" | "underlined" | "faded"; + type?: string; + placeholder?: string; + isRequired?: boolean; + isInvalid?: boolean; + errorMessage?: string; +} + +/** + * Custom input component that is used to display a server input without useForm hook. + */ +export const CustomServerInput = ({ + name, + type = "text", + label, + labelPlacement = "outside", + placeholder, + variant = "bordered", + isRequired = false, + isInvalid = false, + errorMessage, +}: CustomServerInputProps) => { + return ( +
+ +
+ ); +}; diff --git a/ui/components/ui/custom/index.ts b/ui/components/ui/custom/index.ts index d236bdc1d1..4e7a55b03f 100644 --- a/ui/components/ui/custom/index.ts +++ b/ui/components/ui/custom/index.ts @@ -6,4 +6,5 @@ export * from "./custom-dropdown-selection"; export * from "./custom-input"; export * from "./custom-loader"; export * from "./custom-radio"; +export * from "./custom-server-input"; export * from "./custom-textarea"; diff --git a/ui/components/ui/entities/info-field.tsx b/ui/components/ui/entities/info-field.tsx index 0607efdf7b..3d75bb98ae 100644 --- a/ui/components/ui/entities/info-field.tsx +++ b/ui/components/ui/entities/info-field.tsx @@ -5,9 +5,10 @@ import { InfoIcon } from "lucide-react"; interface InfoFieldProps { label: string; children: React.ReactNode; - variant?: "default" | "simple"; + variant?: "default" | "simple" | "transparent"; className?: string; tooltipContent?: string; + inline?: boolean; } { + if (inline) { + return ( +
+ + + {label}: + {tooltipContent && ( + +
+ +
+
+ )} +
+
+
{children}
+
+ ); + } + return (
@@ -45,8 +67,10 @@ export const InfoField = ({
{children}
+ ) : variant === "transparent" ? ( +
{children}
) : ( -
+
{children}
)} diff --git a/ui/components/users/forms/edit-tenant-form.tsx b/ui/components/users/forms/edit-tenant-form.tsx new file mode 100644 index 0000000000..1e4d83d523 --- /dev/null +++ b/ui/components/users/forms/edit-tenant-form.tsx @@ -0,0 +1,95 @@ +"use client"; + +import { Dispatch, SetStateAction, useEffect } from "react"; +import { useFormState, useFormStatus } from "react-dom"; + +import { updateTenantName } from "@/actions/users/tenants"; +import { SaveIcon } from "@/components/icons"; +import { useToast } from "@/components/ui"; +import { CustomButton, CustomServerInput } from "@/components/ui/custom"; + +const SubmitButton = () => { + const { pending } = useFormStatus(); + + return ( + } + > + {pending ? <>Loading : Save} + + ); +}; + +export const EditTenantForm = ({ + tenantId, + tenantName, + setIsOpen, +}: { + tenantId: string; + tenantName?: string; + setIsOpen: Dispatch>; +}) => { + const [state, formAction] = useFormState(updateTenantName, null); + const { toast } = useToast(); + + useEffect(() => { + if (state?.success) { + toast({ + title: "Changed successfully", + description: state.success, + }); + setIsOpen(false); + } else if (state?.errors?.general) { + toast({ + variant: "destructive", + title: "Oops! Something went wrong", + description: state.errors.general, + }); + } + }, [state, toast, setIsOpen]); + + return ( +
+
+ Current name: {tenantName} +
+ + + + {/* Hidden inputs for Server Action */} + + + +
+ setIsOpen(false)} + > + Cancel + + + +
+ + ); +}; diff --git a/ui/components/users/forms/index.ts b/ui/components/users/forms/index.ts index a081952ade..7d863e16c5 100644 --- a/ui/components/users/forms/index.ts +++ b/ui/components/users/forms/index.ts @@ -1,2 +1,3 @@ export * from "./delete-form"; export * from "./edit-form"; +export * from "./edit-tenant-form"; diff --git a/ui/components/users/profile/membership-item.tsx b/ui/components/users/profile/membership-item.tsx index f9d28a9f7d..5db1e5cc6b 100644 --- a/ui/components/users/profile/membership-item.tsx +++ b/ui/components/users/profile/membership-item.tsx @@ -1,27 +1,77 @@ -import { Chip } from "@nextui-org/react"; +"use client"; -import { DateWithTime } from "@/components/ui/entities"; +import { Chip } from "@nextui-org/react"; +import { useState } from "react"; + +import { CustomAlertModal, CustomButton } from "@/components/ui/custom"; +import { DateWithTime, InfoField } from "@/components/ui/entities"; import { MembershipDetailData } from "@/types/users/users"; +import { EditTenantForm } from "../forms"; + export const MembershipItem = ({ membership, tenantName, + tenantId, + isOwner, }: { membership: MembershipDetailData; tenantName: string; -}) => ( -
-
-
- - {membership.attributes.role} - -

{tenantName}

+ tenantId: string; + isOwner: boolean; +}) => { + const [isEditOpen, setIsEditOpen] = useState(false); + + return ( + <> + + + + +
+
+ + {membership.attributes.role} + + +
+ + + {tenantName} + + + + + +
+ + {isOwner && ( + setIsEditOpen(true)} + > + Change name + + )} +
-
-
- Joined on: - -
-
-); + + ); +}; diff --git a/ui/components/users/profile/memberships-card.tsx b/ui/components/users/profile/memberships-card.tsx index c752882156..43138c74c5 100644 --- a/ui/components/users/profile/memberships-card.tsx +++ b/ui/components/users/profile/memberships-card.tsx @@ -7,9 +7,11 @@ import { MembershipItem } from "./membership-item"; export const MembershipsCard = ({ memberships, tenantsMap, + isOwner, }: { memberships: MembershipDetailData[]; tenantsMap: Record; + isOwner: boolean; }) => { return ( @@ -26,16 +28,18 @@ export const MembershipsCard = ({
No memberships found.
) : (
- {memberships.map((membership) => ( - - ))} + {memberships.map((membership) => { + const tenantId = membership.relationships.tenant.data.id; + return ( + + ); + })}
)} diff --git a/ui/components/users/profile/role-item.tsx b/ui/components/users/profile/role-item.tsx index 27c056843c..460d9d5398 100644 --- a/ui/components/users/profile/role-item.tsx +++ b/ui/components/users/profile/role-item.tsx @@ -35,7 +35,7 @@ export const RoleItem = ({ role: RoleData; roleDetail?: RoleDetail; }) => { - const [isExpanded, setIsExpanded] = useState(false); + const [isExpanded, setIsExpanded] = useState(true); if (!roleDetail) { return ( diff --git a/ui/components/users/profile/user-basic-info-card.tsx b/ui/components/users/profile/user-basic-info-card.tsx index 456f9b777e..37805b2c55 100644 --- a/ui/components/users/profile/user-basic-info-card.tsx +++ b/ui/components/users/profile/user-basic-info-card.tsx @@ -1,17 +1,15 @@ "use client"; import { Card, CardBody, Divider } from "@nextui-org/react"; -import { CircleUserRound } from "lucide-react"; -import { DateWithTime, SnippetChip } from "@/components/ui/entities"; +import { DateWithTime, InfoField, SnippetChip } from "@/components/ui/entities"; import { UserDataWithRoles } from "@/types/users/users"; +import { ProwlerShort } from "../../icons"; + const TenantIdCopy = ({ id }: { id: string }) => { return ( -
-

- Active organization ID: -

+
); @@ -29,30 +27,32 @@ export const UserBasicInfoCard = ({ return ( -
- -
-

Name:

- {name} +
+
+
-
-

Email:

- {email} -
-
-

Company:

- {company_name} -
-
-

- Date Joined: -

- - +
+ {name} + + {email} + {company_name && ` | ${company_name}`}
- - +
+ +
+
+
+ + + +
+
+
+ + + +
diff --git a/ui/lib/permissions.ts b/ui/lib/permissions.ts index 6e0862637d..7315258a9d 100644 --- a/ui/lib/permissions.ts +++ b/ui/lib/permissions.ts @@ -1,5 +1,25 @@ import { RolePermissionAttributes } from "@/types/users/users"; +export const isUserOwnerAndHasManageAccount = ( + roles: any[], + memberships: any[], + userId: string, +): boolean => { + const isOwner = memberships.some( + (membership) => + membership.attributes.role === "owner" && + membership.relationships?.user?.data?.id === userId, + ); + + const hasManageAccount = roles.some( + (role) => + role.attributes.manage_account === true && + role.relationships?.users?.data?.some((user: any) => user.id === userId), + ); + + return isOwner && hasManageAccount; +}; + /** * Get the permissions for a user role * @param attributes - The attributes of the user role From 50bcd828e9dc82cc7eee47044e300530d6283872 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Jes=C3=BAs=20Pe=C3=B1a=20Rodr=C3=ADguez?= Date: Mon, 26 May 2025 10:24:11 +0200 Subject: [PATCH 020/111] fix(reports): change invalid search term for tasks (#7830) --- api/CHANGELOG.md | 7 ++++++ api/src/backend/api/tests/test_views.py | 31 +++++++++++++++++++++++++ api/src/backend/api/v1/views.py | 2 +- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index a4e118478b..299c3f715e 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -9,6 +9,13 @@ All notable changes to the **Prowler API** are documented in this file. --- +## [v1.8.2] (Prowler v5.7.2) + +### Fixed +- Fixed task lookup to use task_kwargs instead of task_args for scan report resolution. [(#7830)](https://github.com/prowler-cloud/prowler/pull/7830) + +--- + ## [v1.8.1] (Prowler v5.7.1) ### Fixed diff --git a/api/src/backend/api/tests/test_views.py b/api/src/backend/api/tests/test_views.py index 80ab44b946..97beecd6e3 100644 --- a/api/src/backend/api/tests/test_views.py +++ b/api/src/backend/api/tests/test_views.py @@ -13,6 +13,7 @@ from botocore.exceptions import ClientError, NoCredentialsError from conftest import API_JSON_CONTENT_TYPE, TEST_PASSWORD, TEST_USER from django.conf import settings from django.urls import reverse +from django_celery_results.models import TaskResult from rest_framework import status from api.compliance import get_compliance_frameworks @@ -2600,6 +2601,36 @@ class TestScanViewSet: assert response.status_code == status.HTTP_404_NOT_FOUND + @patch("api.v1.views.TaskSerializer") + def test__get_task_status_finds_task_using_kwargs( + self, mock_task_serializer, authenticated_client, scans_fixture + ): + scan = scans_fixture[0] + scan.state = StateChoices.COMPLETED + scan.output_location = "dummy" + scan.save() + + task_result = TaskResult.objects.create( + task_name="scan-report", + task_kwargs={"scan_id": str(scan.id)}, + ) + + task = Task.objects.create( + tenant_id=scan.tenant_id, + task_runner_task=task_result, + ) + + mock_task_serializer.return_value.data = { + "id": str(task.id), + "state": StateChoices.EXECUTING, + } + + url = reverse("scan-report", kwargs={"pk": scan.id}) + response = authenticated_client.get(url) + + assert response.status_code == status.HTTP_202_ACCEPTED + assert response.data["id"] == str(task.id) + @patch("api.v1.views.get_s3_client") @patch("api.v1.views.sentry_sdk.capture_exception") def test_compliance_list_objects_client_error( diff --git a/api/src/backend/api/v1/views.py b/api/src/backend/api/v1/views.py index 52ba70c264..39a48a0c16 100644 --- a/api/src/backend/api/v1/views.py +++ b/api/src/backend/api/v1/views.py @@ -1281,7 +1281,7 @@ class ScanViewSet(BaseRLSViewSet): try: task = Task.objects.get( task_runner_task__task_name="scan-report", - task_runner_task__task_args__contains=str(scan_instance.id), + task_runner_task__task_kwargs__contains=str(scan_instance.id), ) except Task.DoesNotExist: return None From eaec683eb9d672167f1dc4e39c83c0125fa7db13 Mon Sep 17 00:00:00 2001 From: Andoni Alonso <14891798+andoniaf@users.noreply.github.com> Date: Mon, 26 May 2025 10:39:09 +0200 Subject: [PATCH 021/111] feat(repositoy): add new check `repository_inactive_not_archived` (#7786) Co-authored-by: Sergio Garcia --- docs/tutorials/configuration_file.md | 14 ++ prowler/CHANGELOG.md | 1 + prowler/config/config.yaml | 5 + .../__init__.py | 0 ...sitory_inactive_not_archived.metadata.json | 30 +++ .../repository_inactive_not_archived.py | 45 ++++ .../services/repository/repository_service.py | 5 + .../providers/github/github_provider_test.py | 12 +- ...ory_branch_delete_on_merge_enabled_test.py | 5 + ...y_default_branch_deletion_disabled_test.py | 19 +- ...efault_branch_disallows_force_push_test.py | 5 + ...ranch_protection_applies_to_admins_test.py | 5 + ..._default_branch_protection_enabled_test.py | 5 + ..._branch_requires_codeowners_review_test.py | 5 + ...h_requires_conversation_resolution_test.py | 5 + ...ult_branch_requires_linear_history_test.py | 5 + ...branch_requires_multiple_approvals_test.py | 7 + ...ult_branch_requires_signed_commits_test.py | 5 + ...ault_branch_status_checks_required_test.py | 5 + ...sitory_dependency_scanning_enabled_test.py | 5 + .../repository_has_codeowners_file_test.py | 5 + .../repository_inactive_not_archived_test.py | 206 ++++++++++++++++++ ...ository_public_has_securitymd_file_test.py | 5 + ...repository_secret_scanning_enabled_test.py | 5 + .../repository/repository_service_test.py | 7 + 25 files changed, 407 insertions(+), 9 deletions(-) create mode 100644 prowler/providers/github/services/repository/repository_inactive_not_archived/__init__.py create mode 100644 prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.metadata.json create mode 100644 prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.py create mode 100644 tests/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived_test.py diff --git a/docs/tutorials/configuration_file.md b/docs/tutorials/configuration_file.md index 78b9865183..dc1e66c96c 100644 --- a/docs/tutorials/configuration_file.md +++ b/docs/tutorials/configuration_file.md @@ -109,6 +109,15 @@ The following list includes all the Microsoft 365 checks with configurable varia | `exchange_organization_mailtips_enabled` | `recommended_mailtips_large_audience_threshold` | Integer | +## GitHub + +### Configurable Checks +The following list includes all the GitHub checks with configurable variables that can be changed in the configuration yaml file: + +| Check Name | Value | Type | +|--------------------------------------------|---------------------------------------------|---------| +| `repository_inactive_not_archived` | `inactive_not_archived_days_threshold` | Integer | + ## Config YAML File Structure ???+ note @@ -525,5 +534,10 @@ m365: # m365.exchange_organization_mailtips_enabled recommended_mailtips_large_audience_threshold: 25 # maximum number of recipients +# GitHub Configuration +github: + # github.repository_inactive_not_archived + inactive_not_archived_days_threshold: 180 + ``` diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 0743229677..89cec16b9a 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -15,6 +15,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Add CIS 4.0 compliance framework for GCP. [(7785)](https://github.com/prowler-cloud/prowler/pull/7785) - Add `repository_has_codeowners_file` check for GitHub provider. [(#7752)](https://github.com/prowler-cloud/prowler/pull/7752) - Add `repository_default_branch_requires_signed_commits` check for GitHub provider. [(#7777)](https://github.com/prowler-cloud/prowler/pull/7777) +- Add `repository_inactive_not_archived` check for GitHub provider. [(#7786)](https://github.com/prowler-cloud/prowler/pull/7786) - Add `repository_dependency_scanning_enabled` check for GitHub provider. [(#7771)](https://github.com/prowler-cloud/prowler/pull/7771) - Add `repository_secret_scanning_enabled` check for GitHub provider. [(#7759)](https://github.com/prowler-cloud/prowler/pull/7759) - Add `repository_default_branch_requires_codeowners_review` check for GitHub provider. [(#7753)](https://github.com/prowler-cloud/prowler/pull/7753) diff --git a/prowler/config/config.yaml b/prowler/config/config.yaml index c4bcd40b8e..1385ffef4f 100644 --- a/prowler/config/config.yaml +++ b/prowler/config/config.yaml @@ -515,3 +515,8 @@ m365: # m365.exchange_mailbox_properties_auditing_enabled # Maximum number of days to keep audit logs audit_log_age: 90 + +# GitHub Configuration +github: + # github.repository_inactive_not_archived --> CIS recommends 180 days (6 months) + inactive_not_archived_days_threshold: 180 diff --git a/prowler/providers/github/services/repository/repository_inactive_not_archived/__init__.py b/prowler/providers/github/services/repository/repository_inactive_not_archived/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.metadata.json b/prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.metadata.json new file mode 100644 index 0000000000..07395fe6b7 --- /dev/null +++ b/prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.metadata.json @@ -0,0 +1,30 @@ +{ + "Provider": "github", + "CheckID": "repository_inactive_not_archived", + "CheckTitle": "Check for inactive repositories that are not archived", + "CheckType": [], + "ServiceName": "repository", + "SubServiceName": "", + "ResourceIdTemplate": "", + "Severity": "medium", + "ResourceType": "GitHubRepository", + "Description": "Ensure that repositories with no activity are reviewed and considered for archival. Inactive repositories may have outdated dependencies or security configurations that could pose security risks.", + "Risk": "Inactive repositories that are not archived may contain outdated dependencies, unpatched vulnerabilities, or misconfigured security settings. These repositories increase the attack surface and could be targeted by malicious actors.", + "RelatedUrl": "https://docs.github.com/en/repositories/archiving-a-github-repository/archiving-repositories", + "Remediation": { + "Code": { + "CLI": "", + "NativeIaC": "", + "Other": "", + "Terraform": "" + }, + "Recommendation": { + "Text": "Review inactive repositories and either: 1) Archive them if they are no longer needed, 2) Update their dependencies and security configurations if they are still required, or 3) Delete them if they contain no valuable information.", + "Url": "https://docs.github.com/en/repositories/archiving-a-github-repository/archiving-repositories" + } + }, + "Categories": [], + "DependsOn": [], + "RelatedTo": [], + "Notes": "" +} diff --git a/prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.py b/prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.py new file mode 100644 index 0000000000..fb28094598 --- /dev/null +++ b/prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.py @@ -0,0 +1,45 @@ +from datetime import datetime, timezone +from typing import List + +from prowler.lib.check.models import Check, CheckReportGithub +from prowler.providers.github.services.repository.repository_client import ( + repository_client, +) + + +class repository_inactive_not_archived(Check): + """Check if unarchived repositories have been inactive for more than 6 months.""" + + def execute(self) -> List[CheckReportGithub]: + findings = [] + + now = datetime.now(timezone.utc) + + days_threshold = repository_client.audit_config.get( + "inactive_not_archived_days_threshold", 180 + ) + + for repo in repository_client.repositories.values(): + report = CheckReportGithub( + metadata=self.metadata(), resource=repo, repository=repo.name + ) + + if repo.archived: + report.status = "PASS" + report.status_extended = f"Repository {repo.name} is properly archived." + findings.append(report) + continue + + latest_activity = repo.pushed_at + days_inactive = (now - latest_activity).days + + if days_inactive >= days_threshold: + report.status = "FAIL" + report.status_extended = f"Repository {repo.name} has been inactive for {days_inactive} days and is not archived (threshold: {days_threshold} days)." + else: + report.status = "PASS" + report.status_extended = f"Repository {repo.name} has been active within the last {days_threshold} days ({days_inactive} days ago)." + + findings.append(report) + + return findings diff --git a/prowler/providers/github/services/repository/repository_service.py b/prowler/providers/github/services/repository/repository_service.py index 49cc11177e..b586bdecf3 100644 --- a/prowler/providers/github/services/repository/repository_service.py +++ b/prowler/providers/github/services/repository/repository_service.py @@ -1,3 +1,4 @@ +from datetime import datetime from typing import Optional from pydantic import BaseModel @@ -163,6 +164,8 @@ class Repository(GithubService): full_name=repo.full_name, default_branch=repo.default_branch, private=repo.private, + archived=repo.archived, + pushed_at=repo.pushed_at, securitymd=securitymd_exists, require_pull_request=require_pr, approval_count=approval_cnt, @@ -197,6 +200,8 @@ class Repo(BaseModel): default_branch_protection: Optional[bool] default_branch: str private: bool + archived: bool + pushed_at: datetime securitymd: Optional[bool] require_pull_request: Optional[bool] required_linear_history: Optional[bool] diff --git a/tests/providers/github/github_provider_test.py b/tests/providers/github/github_provider_test.py index 30d770ef3b..60b705b629 100644 --- a/tests/providers/github/github_provider_test.py +++ b/tests/providers/github/github_provider_test.py @@ -59,7 +59,9 @@ class TestGitHubProvider: account_id=ACCOUNT_ID, account_url=ACCOUNT_URL, ) - assert provider._audit_config == {} + assert provider._audit_config == { + "inactive_not_archived_days_threshold": 180, + } assert provider._fixer_config == fixer_config def test_github_provider_OAuth(self): @@ -99,7 +101,9 @@ class TestGitHubProvider: account_id=ACCOUNT_ID, account_url=ACCOUNT_URL, ) - assert provider._audit_config == {} + assert provider._audit_config == { + "inactive_not_archived_days_threshold": 180, + } assert provider._fixer_config == fixer_config def test_github_provider_App(self): @@ -133,5 +137,7 @@ class TestGitHubProvider: assert provider._type == "github" assert provider.session == GithubSession(token="", id=APP_ID, key=APP_KEY) assert provider.identity == GithubAppIdentityInfo(app_id=APP_ID) - assert provider._audit_config == {} + assert provider._audit_config == { + "inactive_not_archived_days_threshold": 180, + } assert provider._fixer_config == fixer_config diff --git a/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py b/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py index fc9a5c3ddd..1152c937f9 100644 --- a/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py +++ b/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -39,6 +40,8 @@ class Test_repository_branch_delete_on_merge_enabled_test: private=False, securitymd=False, delete_branch_on_merge=False, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -79,6 +82,8 @@ class Test_repository_branch_delete_on_merge_enabled_test: private=False, securitymd=True, delete_branch_on_merge=True, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py b/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py index 825e4bdc6e..d0cd44d3db 100644 --- a/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -31,15 +32,18 @@ class Test_repository_default_branch_deletion_disabled_test: repository_client = mock.MagicMock repo_name = "repo1" default_branch = "main" + now = datetime.now(timezone.utc) + repository_client.repositories = { 1: Repo( id=1, name=repo_name, full_name="account-name/repo1", default_branch=default_branch, - default_branch_deletion=True, private=False, - securitymd=False, + archived=False, + pushed_at=now, + default_branch_deletion=True, ), } @@ -61,7 +65,7 @@ class Test_repository_default_branch_deletion_disabled_test: result = check.execute() assert len(result) == 1 assert result[0].resource_id == 1 - assert result[0].resource_name == "repo1" + assert result[0].resource_name == repo_name assert result[0].status == "FAIL" assert ( result[0].status_extended @@ -72,15 +76,18 @@ class Test_repository_default_branch_deletion_disabled_test: repository_client = mock.MagicMock repo_name = "repo1" default_branch = "main" + now = datetime.now(timezone.utc) + repository_client.repositories = { 1: Repo( id=1, name=repo_name, full_name="account-name/repo1", - private=False, default_branch=default_branch, + private=False, + archived=False, + pushed_at=now, default_branch_deletion=False, - securitymd=True, ), } @@ -102,7 +109,7 @@ class Test_repository_default_branch_deletion_disabled_test: result = check.execute() assert len(result) == 1 assert result[0].resource_id == 1 - assert result[0].resource_name == "repo1" + assert result[0].resource_name == repo_name assert result[0].status == "PASS" assert ( result[0].status_extended diff --git a/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py b/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py index a9da35d0fe..30e79ea39e 100644 --- a/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -40,6 +41,8 @@ class Test_repository_default_branch_disallows_force_push_test: allow_force_pushes=True, private=False, securitymd=False, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -81,6 +84,8 @@ class Test_repository_default_branch_disallows_force_push_test: default_branch=default_branch, allow_force_pushes=False, securitymd=True, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py b/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py index f85bbdced9..80f19664aa 100644 --- a/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -40,6 +41,8 @@ class Test_repository_default_branch_protection_applies_to_admins_test: private=False, securitymd=False, enforce_admins=False, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -81,6 +84,8 @@ class Test_repository_default_branch_protection_applies_to_admins_test: default_branch=default_branch, enforce_admins=True, securitymd=True, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py b/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py index 3723863298..f323ac086a 100644 --- a/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -40,6 +41,8 @@ class Test_repository_default_branch_protection_enabled_test: private=False, default_branch_protection=False, securitymd=False, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -81,6 +84,8 @@ class Test_repository_default_branch_protection_enabled_test: default_branch=default_branch, default_branch_protection=True, securitymd=True, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py index fe64448402..914b24e782 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -41,6 +42,8 @@ class Test_repository_default_branch_requires_codeowners_review: require_pull_request=False, approval_count=0, require_code_owner_reviews=False, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -83,6 +86,8 @@ class Test_repository_default_branch_requires_codeowners_review: require_pull_request=False, approval_count=0, require_code_owner_reviews=True, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py index 2fe4b1dbd5..9261a97c14 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -38,6 +39,8 @@ class Test_repository_default_branch_requires_conversation_resolution_test: full_name="account-name/repo1", default_branch=default_branch, conversation_resolution=False, + archived=False, + pushed_at=datetime.now(timezone.utc), private=False, securitymd=False, ), @@ -80,6 +83,8 @@ class Test_repository_default_branch_requires_conversation_resolution_test: private=False, default_branch=default_branch, conversation_resolution=True, + archived=False, + pushed_at=datetime.now(timezone.utc), securitymd=True, ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py index 5759697999..413e1db558 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -40,6 +41,8 @@ class Test_repository_default_branch_requires_linear_history_test: required_linear_history=False, private=False, securitymd=False, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -81,6 +84,8 @@ class Test_repository_default_branch_requires_linear_history_test: default_branch=default_branch, required_linear_history=True, securitymd=True, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py index be8905fc7d..489231a642 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -41,6 +42,8 @@ class Test_repository_default_branch_requires_multiple_approvals: securitymd=False, require_pull_request=False, approval_count=0, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -83,6 +86,8 @@ class Test_repository_default_branch_requires_multiple_approvals: securitymd=False, require_pull_request=True, approval_count=0, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -125,6 +130,8 @@ class Test_repository_default_branch_requires_multiple_approvals: securitymd=True, require_pull_request=True, approval_count=2, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py index dd177f4288..637a0bd588 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -40,6 +41,8 @@ class Test_repository_default_branch_requires_signed_commits: default_branch=default_branch, require_signed_commits=False, securitymd=True, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -81,6 +84,8 @@ class Test_repository_default_branch_requires_signed_commits: default_branch=default_branch, require_signed_commits=True, securitymd=True, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py b/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py index 0da7d9425f..a2e479a7b5 100644 --- a/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -38,6 +39,8 @@ class Test_repository_default_branch_status_checks_required_test: full_name="account-name/repo1", default_branch=default_branch, status_checks=False, + archived=False, + pushed_at=datetime.now(timezone.utc), private=False, securitymd=False, ), @@ -80,6 +83,8 @@ class Test_repository_default_branch_status_checks_required_test: private=False, default_branch=default_branch, status_checks=True, + archived=False, + pushed_at=datetime.now(timezone.utc), securitymd=True, ), } diff --git a/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py b/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py index 9930055be8..f4c22c3be1 100644 --- a/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py +++ b/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -37,6 +38,8 @@ class Test_repository_dependency_scanning_enabled: full_name="account-name/repo1", default_branch="main", private=False, + archived=False, + pushed_at=datetime.now(timezone.utc), securitymd=True, require_pull_request=False, approval_count=0, @@ -80,6 +83,8 @@ class Test_repository_dependency_scanning_enabled: full_name="account-name/repo2", default_branch="main", private=False, + archived=False, + pushed_at=datetime.now(timezone.utc), securitymd=True, require_pull_request=False, approval_count=0, diff --git a/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py b/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py index 57cb5a53e7..06d4982fd5 100644 --- a/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py +++ b/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -41,6 +42,8 @@ class Test_repository_has_codeowners_file: require_pull_request=False, approval_count=0, codeowners_exists=False, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -83,6 +86,8 @@ class Test_repository_has_codeowners_file: require_pull_request=False, approval_count=0, codeowners_exists=True, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } diff --git a/tests/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived_test.py b/tests/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived_test.py new file mode 100644 index 0000000000..58291070df --- /dev/null +++ b/tests/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived_test.py @@ -0,0 +1,206 @@ +from datetime import datetime, timedelta, timezone +from unittest import mock + +from prowler.providers.github.services.repository.repository_service import Repo +from tests.providers.github.github_fixtures import set_mocked_github_provider + + +class Test_repository_inactive_not_archived: + def test_no_repositories(self): + repository_client = mock.MagicMock + repository_client.repositories = {} + repository_client.audit_config = {} + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_inactive_not_archived.repository_inactive_not_archived.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_inactive_not_archived.repository_inactive_not_archived import ( + repository_inactive_not_archived, + ) + + check = repository_inactive_not_archived() + result = check.execute() + assert len(result) == 0 + + def test_repository_active_not_archived(self): + repository_client = mock.MagicMock + repo_name = "test-repo" + default_branch = "main" + now = datetime.now(timezone.utc) + recent_activity = now - timedelta(days=30) # 30 days ago + + repository_client.repositories = { + 1: Repo( + id=1, + name=repo_name, + full_name="account-name/test-repo", + private=False, + default_branch=default_branch, + archived=False, + pushed_at=recent_activity, + ), + } + repository_client.audit_config = {} + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_inactive_not_archived.repository_inactive_not_archived.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_inactive_not_archived.repository_inactive_not_archived import ( + repository_inactive_not_archived, + ) + + check = repository_inactive_not_archived() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 1 + assert result[0].resource_name == repo_name + assert result[0].status == "PASS" + assert ( + result[0].status_extended + == f"Repository {repo_name} has been active within the last 180 days (30 days ago)." + ) + + def test_repository_inactive_not_archived(self): + repository_client = mock.MagicMock + repo_name = "test-repo" + default_branch = "main" + now = datetime.now(timezone.utc) + old_activity = now - timedelta(days=200) # 200 days ago + + repository_client.repositories = { + 1: Repo( + id=1, + name=repo_name, + full_name="account-name/test-repo", + private=False, + default_branch=default_branch, + archived=False, + pushed_at=old_activity, + ), + } + repository_client.audit_config = {} + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_inactive_not_archived.repository_inactive_not_archived.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_inactive_not_archived.repository_inactive_not_archived import ( + repository_inactive_not_archived, + ) + + check = repository_inactive_not_archived() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 1 + assert result[0].resource_name == repo_name + assert result[0].status == "FAIL" + assert "has been inactive for 200 days" in result[0].status_extended + assert "and is not archived" in result[0].status_extended + + def test_repository_inactive_but_archived(self): + repository_client = mock.MagicMock + repo_name = "test-repo" + default_branch = "main" + now = datetime.now(timezone.utc) + old_activity = now - timedelta(days=200) # 200 days ago + + repository_client.repositories = { + 1: Repo( + id=1, + name=repo_name, + full_name="account-name/test-repo", + default_branch=default_branch, + private=False, + archived=True, + pushed_at=old_activity, + ), + } + repository_client.audit_config = {} + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_inactive_not_archived.repository_inactive_not_archived.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_inactive_not_archived.repository_inactive_not_archived import ( + repository_inactive_not_archived, + ) + + check = repository_inactive_not_archived() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 1 + assert result[0].resource_name == repo_name + assert result[0].status == "PASS" + assert ( + result[0].status_extended + == f"Repository {repo_name} is properly archived." + ) + + def test_custom_days_threshold(self): + repository_client = mock.MagicMock + repo_name = "test-repo" + default_branch = "main" + now = datetime.now(timezone.utc) + old_activity = now - timedelta(days=50) + + repository_client.repositories = { + 1: Repo( + id=1, + name=repo_name, + full_name="account-name/test-repo", + private=False, + default_branch=default_branch, + archived=False, + pushed_at=old_activity, + ), + } + repository_client.audit_config = {"inactive_not_archived_days_threshold": 40} + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_github_provider(), + ), + mock.patch( + "prowler.providers.github.services.repository.repository_inactive_not_archived.repository_inactive_not_archived.repository_client", + new=repository_client, + ), + ): + from prowler.providers.github.services.repository.repository_inactive_not_archived.repository_inactive_not_archived import ( + repository_inactive_not_archived, + ) + + check = repository_inactive_not_archived() + result = check.execute() + assert len(result) == 1 + assert result[0].resource_id == 1 + assert result[0].resource_name == repo_name + assert result[0].status == "FAIL" + assert "has been inactive for 50 days" in result[0].status_extended + assert "and is not archived" in result[0].status_extended diff --git a/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py b/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py index 776d557252..bd3592fc6c 100644 --- a/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py +++ b/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -40,6 +41,8 @@ class Test_repository_public_has_securitymd_file_test: securitymd=False, require_pull_request=False, approval_count=0, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -81,6 +84,8 @@ class Test_repository_public_has_securitymd_file_test: securitymd=True, require_pull_request=False, approval_count=0, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } diff --git a/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py b/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py index ba935d0a9d..8a21a828cd 100644 --- a/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py +++ b/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest import mock from prowler.providers.github.services.repository.repository_service import Repo @@ -41,6 +42,8 @@ class Test_repository_secret_scanning_enabled: require_pull_request=False, approval_count=0, secret_scanning_enabled=False, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } @@ -83,6 +86,8 @@ class Test_repository_secret_scanning_enabled: require_pull_request=False, approval_count=0, secret_scanning_enabled=True, + archived=False, + pushed_at=datetime.now(timezone.utc), ), } diff --git a/tests/providers/github/services/repository/repository_service_test.py b/tests/providers/github/services/repository/repository_service_test.py index 1fb8db539e..ea3cbb7432 100644 --- a/tests/providers/github/services/repository/repository_service_test.py +++ b/tests/providers/github/services/repository/repository_service_test.py @@ -1,3 +1,4 @@ +from datetime import datetime, timezone from unittest.mock import MagicMock, patch from prowler.providers.github.services.repository.repository_service import ( @@ -26,6 +27,9 @@ def mock_list_repositories(_): codeowners_exists=True, require_code_owner_reviews=True, secret_scanning_enabled=True, + require_signed_commits=True, + archived=False, + pushed_at=datetime.now(timezone.utc), enforce_admins=True, delete_branch_on_merge=True, conversation_resolution=True, @@ -66,6 +70,9 @@ class Test_Repository_Service: assert repository_service.repositories[1].codeowners_exists is True assert repository_service.repositories[1].require_code_owner_reviews is True assert repository_service.repositories[1].secret_scanning_enabled is True + assert repository_service.repositories[1].require_signed_commits is True + assert repository_service.repositories[1].archived is False + assert repository_service.repositories[1].pushed_at is not None class Test_Repository_FileExists: From 4f099c5663a28882191cd4e3f153982e84e23267 Mon Sep 17 00:00:00 2001 From: Andoni Alonso <14891798+andoniaf@users.noreply.github.com> Date: Mon, 26 May 2025 10:40:41 +0200 Subject: [PATCH 022/111] refactor(github): use `owner` instead of `repository` in findings attributes (#7833) --- prowler/lib/check/models.py | 12 ++++++++---- prowler/lib/outputs/finding.py | 2 +- prowler/lib/outputs/outputs.py | 2 +- .../repository_branch_delete_on_merge_enabled.py | 4 +--- .../repository_default_branch_deletion_disabled.py | 4 +--- ...repository_default_branch_disallows_force_push.py | 4 +--- ...ry_default_branch_protection_applies_to_admins.py | 4 +--- .../repository_default_branch_protection_enabled.py | 4 +--- ...tory_default_branch_requires_codeowners_review.py | 4 +--- ...efault_branch_requires_conversation_resolution.py | 4 +--- ...ository_default_branch_requires_linear_history.py | 4 +--- ...ory_default_branch_requires_multiple_approvals.py | 4 +--- ...ository_default_branch_requires_signed_commits.py | 4 +--- ...pository_default_branch_status_checks_required.py | 2 +- .../repository_dependency_scanning_enabled.py | 4 +--- .../repository_has_codeowners_file.py | 4 +--- .../repository_public_has_securitymd_file.py | 4 +--- .../repository_secret_scanning_enabled.py | 4 +--- .../github/services/repository/repository_service.py | 2 ++ ...repository_branch_delete_on_merge_enabled_test.py | 2 ++ ...pository_default_branch_deletion_disabled_test.py | 2 ++ ...itory_default_branch_disallows_force_push_test.py | 2 ++ ...fault_branch_protection_applies_to_admins_test.py | 2 ++ ...ository_default_branch_protection_enabled_test.py | 2 ++ ...default_branch_requires_codeowners_review_test.py | 2 ++ ...t_branch_requires_conversation_resolution_test.py | 2 ++ ...ry_default_branch_requires_linear_history_test.py | 2 ++ ...efault_branch_requires_multiple_approvals_test.py | 3 +++ ...ry_default_branch_requires_signed_commits_test.py | 2 ++ ...ory_default_branch_status_checks_required_test.py | 2 ++ .../repository_dependency_scanning_enabled_test.py | 2 ++ .../repository_has_codeowners_file_test.py | 2 ++ .../repository_public_has_securitymd_file_test.py | 2 ++ .../repository_secret_scanning_enabled_test.py | 2 ++ .../services/repository/repository_service_test.py | 1 + 35 files changed, 59 insertions(+), 49 deletions(-) diff --git a/prowler/lib/check/models.py b/prowler/lib/check/models.py index 0ef3195b2a..875350c757 100644 --- a/prowler/lib/check/models.py +++ b/prowler/lib/check/models.py @@ -548,7 +548,7 @@ class CheckReportGithub(Check_Report): resource_name: str resource_id: str - repository: str + owner: str def __init__( self, @@ -556,7 +556,7 @@ class CheckReportGithub(Check_Report): resource: Any, resource_name: str = None, resource_id: str = None, - repository: str = "global", + owner: str = None, ) -> None: """Initialize the GitHub Check's finding information. @@ -565,12 +565,16 @@ class CheckReportGithub(Check_Report): resource: Basic information about the resource. Defaults to None. resource_name: The name of the resource related with the finding. resource_id: The id of the resource related with the finding. - repository: The repository of the resource related with the finding. + owner: The owner of the resource related with the finding. """ super().__init__(metadata, resource) self.resource_name = resource_name or getattr(resource, "name", "") self.resource_id = resource_id or getattr(resource, "id", "") - self.repository = repository or getattr(resource, "repository", "") + self.owner = ( + owner + or getattr(resource, "owner", "") # For Repositories + or getattr(resource, "name", "") # For Organizations + ) @dataclass diff --git a/prowler/lib/outputs/finding.py b/prowler/lib/outputs/finding.py index b7547da815..ffa0a2f44e 100644 --- a/prowler/lib/outputs/finding.py +++ b/prowler/lib/outputs/finding.py @@ -251,7 +251,7 @@ class Finding(BaseModel): output_data["resource_uid"] = check_output.resource_id output_data["account_name"] = provider.identity.account_name output_data["account_uid"] = provider.identity.account_id - output_data["region"] = check_output.repository + output_data["region"] = check_output.owner elif provider.type == "m365": output_data["auth_method"] = ( diff --git a/prowler/lib/outputs/outputs.py b/prowler/lib/outputs/outputs.py index adada2f513..cae67482e7 100644 --- a/prowler/lib/outputs/outputs.py +++ b/prowler/lib/outputs/outputs.py @@ -17,7 +17,7 @@ def stdout_report(finding, color, verbose, status, fix): if finding.check_metadata.Provider == "kubernetes": details = finding.namespace.lower() if finding.check_metadata.Provider == "github": - details = finding.repository + details = finding.owner if finding.check_metadata.Provider == "m365": details = finding.location if finding.check_metadata.Provider == "nhn": diff --git a/prowler/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled.py b/prowler/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled.py index 5b561927c3..98cacd4394 100644 --- a/prowler/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled.py +++ b/prowler/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled.py @@ -22,9 +22,7 @@ class repository_branch_delete_on_merge_enabled(Check): """ findings = [] for repo in repository_client.repositories.values(): - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = ( f"Repository {repo.name} does not delete branches on merge." diff --git a/prowler/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled.py b/prowler/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled.py index 12d504a926..1b7dfe2004 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled.py +++ b/prowler/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled.py @@ -23,9 +23,7 @@ class repository_default_branch_deletion_disabled(Check): findings = [] for repo in repository_client.repositories.values(): if repo.default_branch_deletion is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = ( f"Repository {repo.name} does allow default branch deletion." diff --git a/prowler/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push.py b/prowler/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push.py index 2183b84a79..b1364e2096 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push.py +++ b/prowler/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push.py @@ -23,9 +23,7 @@ class repository_default_branch_disallows_force_push(Check): findings = [] for repo in repository_client.repositories.values(): if repo.allow_force_pushes is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = ( f"Repository {repo.name} does allow force push." diff --git a/prowler/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins.py b/prowler/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins.py index 916ddd35c5..39c8de0384 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins.py +++ b/prowler/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins.py @@ -23,9 +23,7 @@ class repository_default_branch_protection_applies_to_admins(Check): findings = [] for repo in repository_client.repositories.values(): if repo.enforce_admins is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = f"Repository {repo.name} does not enforce administrators to be subject to the same branch protection rules as other users." diff --git a/prowler/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled.py b/prowler/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled.py index a6c9be5a37..cf281c6a6a 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled.py +++ b/prowler/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled.py @@ -23,9 +23,7 @@ class repository_default_branch_protection_enabled(Check): findings = [] for repo in repository_client.repositories.values(): if repo.default_branch_protection is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = f"Repository {repo.name} does not enforce branch protection on default branch ({repo.default_branch})." diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py b/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py index 11cc3fd05b..5e6f0c6464 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py @@ -23,9 +23,7 @@ class repository_default_branch_requires_codeowners_review(Check): findings = [] for repo in repository_client.repositories.values(): if repo.require_code_owner_reviews is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) if repo.require_code_owner_reviews: report.status = "PASS" report.status_extended = f"Repository {repo.name} requires code owner approval for changes to owned code." diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution.py b/prowler/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution.py index 1bee931478..53cff78909 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution.py +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution.py @@ -23,9 +23,7 @@ class repository_default_branch_requires_conversation_resolution(Check): findings = [] for repo in repository_client.repositories.values(): if repo.conversation_resolution is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = ( f"Repository {repo.name} does not require conversation resolution." diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history.py b/prowler/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history.py index a06c8b4a3f..e57250a1e5 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history.py +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history.py @@ -23,9 +23,7 @@ class repository_default_branch_requires_linear_history(Check): findings = [] for repo in repository_client.repositories.values(): if repo.required_linear_history is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = f"Repository {repo.name} does not require linear history on default branch ({repo.default_branch})." diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals.py b/prowler/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals.py index ac75115010..ad6c89e833 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals.py +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals.py @@ -23,9 +23,7 @@ class repository_default_branch_requires_multiple_approvals(Check): findings = [] for repo in repository_client.repositories.values(): if repo.approval_count is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = f"Repository {repo.name} does not enforce at least 2 approvals for code changes." diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py b/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py index 1eb5b41be6..3f929a2eac 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py @@ -23,9 +23,7 @@ class repository_default_branch_requires_signed_commits(Check): findings = [] for repo in repository_client.repositories.values(): if repo.require_signed_commits is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = f"Repository {repo.name} does not require signed commits on default branch ({repo.default_branch})." diff --git a/prowler/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required.py b/prowler/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required.py index 21d6b173da..577b2bad05 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required.py +++ b/prowler/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required.py @@ -24,7 +24,7 @@ class repository_default_branch_status_checks_required(Check): for repo in repository_client.repositories.values(): if repo.status_checks is not None: report = CheckReportGithub( - self.metadata(), resource=repo, repository=repo.name + self.metadata(), resource=repo, owner=repo.name ) report.status = "FAIL" report.status_extended = ( diff --git a/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.py b/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.py index f06c58135f..f983d7f901 100644 --- a/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.py +++ b/prowler/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled.py @@ -23,9 +23,7 @@ class repository_dependency_scanning_enabled(Check): findings = [] for repo in repository_client.repositories.values(): if repo.dependabot_alerts_enabled is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) if repo.dependabot_alerts_enabled: report.status = "PASS" report.status_extended = f"Repository {repo.name} has package vulnerability scanning (Dependabot alerts) enabled." diff --git a/prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.py b/prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.py index a158f63880..7120e0411a 100644 --- a/prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.py +++ b/prowler/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file.py @@ -23,9 +23,7 @@ class repository_has_codeowners_file(Check): findings = [] for repo in repository_client.repositories.values(): if repo.codeowners_exists is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) if repo.codeowners_exists: report.status = "PASS" report.status_extended = ( diff --git a/prowler/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file.py b/prowler/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file.py index c1ec7b51e4..3de966ed25 100644 --- a/prowler/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file.py +++ b/prowler/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file.py @@ -23,9 +23,7 @@ class repository_public_has_securitymd_file(Check): findings = [] for repo in repository_client.repositories.values(): if not repo.private and repo.securitymd is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "PASS" report.status_extended = ( f"Repository {repo.name} does have a SECURITY.md file." diff --git a/prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.py b/prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.py index 9489ba8653..57d09be486 100644 --- a/prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.py +++ b/prowler/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled.py @@ -23,9 +23,7 @@ class repository_secret_scanning_enabled(Check): findings = [] for repo in repository_client.repositories.values(): if repo.secret_scanning_enabled is not None: - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) if getattr(repo, "secret_scanning_enabled", None): report.status = "PASS" report.status_extended = f"Repository {repo.name} has secret scanning enabled to detect sensitive data." diff --git a/prowler/providers/github/services/repository/repository_service.py b/prowler/providers/github/services/repository/repository_service.py index b586bdecf3..2fbeae6be4 100644 --- a/prowler/providers/github/services/repository/repository_service.py +++ b/prowler/providers/github/services/repository/repository_service.py @@ -161,6 +161,7 @@ class Repository(GithubService): repos[repo.id] = Repo( id=repo.id, name=repo.name, + owner=repo.owner.login, full_name=repo.full_name, default_branch=repo.default_branch, private=repo.private, @@ -196,6 +197,7 @@ class Repo(BaseModel): id: int name: str + owner: str full_name: str default_branch_protection: Optional[bool] default_branch: str diff --git a/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py b/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py index 1152c937f9..160928ad2f 100644 --- a/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py +++ b/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py @@ -35,6 +35,7 @@ class Test_repository_branch_delete_on_merge_enabled_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch="main", private=False, @@ -77,6 +78,7 @@ class Test_repository_branch_delete_on_merge_enabled_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch="main", private=False, diff --git a/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py b/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py index d0cd44d3db..c2345297ff 100644 --- a/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py @@ -38,6 +38,7 @@ class Test_repository_default_branch_deletion_disabled_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch=default_branch, private=False, @@ -82,6 +83,7 @@ class Test_repository_default_branch_deletion_disabled_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch=default_branch, private=False, diff --git a/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py b/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py index 30e79ea39e..489ad6c41b 100644 --- a/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py @@ -36,6 +36,7 @@ class Test_repository_default_branch_disallows_force_push_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch=default_branch, allow_force_pushes=True, @@ -79,6 +80,7 @@ class Test_repository_default_branch_disallows_force_push_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", private=False, default_branch=default_branch, diff --git a/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py b/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py index 80f19664aa..29c3185614 100644 --- a/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py @@ -36,6 +36,7 @@ class Test_repository_default_branch_protection_applies_to_admins_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch=default_branch, private=False, @@ -79,6 +80,7 @@ class Test_repository_default_branch_protection_applies_to_admins_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", private=False, default_branch=default_branch, diff --git a/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py b/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py index f323ac086a..249c442739 100644 --- a/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py @@ -36,6 +36,7 @@ class Test_repository_default_branch_protection_enabled_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch=default_branch, private=False, @@ -79,6 +80,7 @@ class Test_repository_default_branch_protection_enabled_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", private=False, default_branch=default_branch, diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py index 914b24e782..d0c2b8c619 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py @@ -35,6 +35,7 @@ class Test_repository_default_branch_requires_codeowners_review: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch="main", private=False, @@ -79,6 +80,7 @@ class Test_repository_default_branch_requires_codeowners_review: 2: Repo( id=2, name=repo_name, + owner="account-name", full_name="account-name/repo2", default_branch="main", private=False, diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py index 9261a97c14..eb666df96d 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py @@ -36,6 +36,7 @@ class Test_repository_default_branch_requires_conversation_resolution_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch=default_branch, conversation_resolution=False, @@ -79,6 +80,7 @@ class Test_repository_default_branch_requires_conversation_resolution_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", private=False, default_branch=default_branch, diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py index 413e1db558..1e25aba932 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py @@ -36,6 +36,7 @@ class Test_repository_default_branch_requires_linear_history_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch=default_branch, required_linear_history=False, @@ -79,6 +80,7 @@ class Test_repository_default_branch_requires_linear_history_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", private=False, default_branch=default_branch, diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py index 489231a642..30ee501362 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py @@ -35,6 +35,7 @@ class Test_repository_default_branch_requires_multiple_approvals: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch_protection=False, default_branch="main", @@ -79,6 +80,7 @@ class Test_repository_default_branch_requires_multiple_approvals: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch_protection=False, default_branch="master", @@ -123,6 +125,7 @@ class Test_repository_default_branch_requires_multiple_approvals: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch_protection=True, default_branch="master", diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py index 637a0bd588..7d499c0090 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py @@ -36,6 +36,7 @@ class Test_repository_default_branch_requires_signed_commits: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", private=False, default_branch=default_branch, @@ -79,6 +80,7 @@ class Test_repository_default_branch_requires_signed_commits: 2: Repo( id=2, name=repo_name, + owner="account-name", full_name="account-name/repo2", private=False, default_branch=default_branch, diff --git a/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py b/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py index a2e479a7b5..cb14a4a340 100644 --- a/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py @@ -36,6 +36,7 @@ class Test_repository_default_branch_status_checks_required_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch=default_branch, status_checks=False, @@ -79,6 +80,7 @@ class Test_repository_default_branch_status_checks_required_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", private=False, default_branch=default_branch, diff --git a/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py b/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py index f4c22c3be1..63b2594600 100644 --- a/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py +++ b/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py @@ -35,6 +35,7 @@ class Test_repository_dependency_scanning_enabled: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch="main", private=False, @@ -80,6 +81,7 @@ class Test_repository_dependency_scanning_enabled: 2: Repo( id=2, name=repo_name, + owner="account-name", full_name="account-name/repo2", default_branch="main", private=False, diff --git a/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py b/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py index 06d4982fd5..9a28163702 100644 --- a/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py +++ b/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py @@ -35,6 +35,7 @@ class Test_repository_has_codeowners_file: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch="main", private=False, @@ -79,6 +80,7 @@ class Test_repository_has_codeowners_file: 2: Repo( id=2, name=repo_name, + owner="account-name", full_name="account-name/repo2", default_branch="main", private=False, diff --git a/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py b/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py index bd3592fc6c..e3d6849506 100644 --- a/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py +++ b/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py @@ -35,6 +35,7 @@ class Test_repository_public_has_securitymd_file_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch="main", private=False, @@ -78,6 +79,7 @@ class Test_repository_public_has_securitymd_file_test: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch="main", private=False, diff --git a/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py b/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py index 8a21a828cd..0bff5cd6bc 100644 --- a/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py +++ b/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py @@ -35,6 +35,7 @@ class Test_repository_secret_scanning_enabled: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/repo1", default_branch="main", private=False, @@ -79,6 +80,7 @@ class Test_repository_secret_scanning_enabled: 2: Repo( id=2, name=repo_name, + owner="account-name", full_name="account-name/repo2", default_branch="main", private=False, diff --git a/tests/providers/github/services/repository/repository_service_test.py b/tests/providers/github/services/repository/repository_service_test.py index ea3cbb7432..9c9e7371c9 100644 --- a/tests/providers/github/services/repository/repository_service_test.py +++ b/tests/providers/github/services/repository/repository_service_test.py @@ -13,6 +13,7 @@ def mock_list_repositories(_): 1: Repo( id=1, name="repo1", + owner="account-name", full_name="account-name/repo1", default_branch_protection=True, default_branch="main", From 44afd9ed31e2f4545408eabae9a3c5747bcd6b85 Mon Sep 17 00:00:00 2001 From: Andoni Alonso <14891798+andoniaf@users.noreply.github.com> Date: Mon, 26 May 2025 10:44:19 +0200 Subject: [PATCH 023/111] fix: repository `repository_dependency_scanning_enabled` check logic (#7834) --- prowler/providers/github/github_provider.py | 6 ++++-- prowler/providers/github/lib/service/service.py | 6 ++++-- .../github/services/repository/repository_service.py | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/prowler/providers/github/github_provider.py b/prowler/providers/github/github_provider.py index d34b2b3e66..f217066929 100644 --- a/prowler/providers/github/github_provider.py +++ b/prowler/providers/github/github_provider.py @@ -4,6 +4,7 @@ from typing import Union from colorama import Fore, Style from github import Auth, Github, GithubIntegration +from github.GithubRetry import GithubRetry from prowler.config.config import ( default_config_file_path, @@ -300,9 +301,10 @@ class GithubProvider(Provider): credentials = self.session try: + retry_config = GithubRetry(total=3) if credentials.token: auth = Auth.Token(credentials.token) - g = Github(auth=auth) + g = Github(auth=auth, retry=retry_config) try: identity = GithubIdentityInfo( account_id=g.get_user().id, @@ -318,7 +320,7 @@ class GithubProvider(Provider): elif credentials.id != 0 and credentials.key: auth = Auth.AppAuth(credentials.id, credentials.key) - gi = GithubIntegration(auth=auth) + gi = GithubIntegration(auth=auth, retry=retry_config) try: identity = GithubAppIdentityInfo(app_id=gi.get_app().id) return identity diff --git a/prowler/providers/github/lib/service/service.py b/prowler/providers/github/lib/service/service.py index b9e4bf2974..911a22b975 100644 --- a/prowler/providers/github/lib/service/service.py +++ b/prowler/providers/github/lib/service/service.py @@ -1,4 +1,5 @@ from github import Auth, Github, GithubIntegration +from github.GithubRetry import GithubRetry from prowler.lib.logger import logger from prowler.providers.github.github_provider import GithubProvider @@ -20,16 +21,17 @@ class GithubService: def __set_clients__(self, session): clients = [] try: + retry_config = GithubRetry(total=3) if session.token: auth = Auth.Token(session.token) - clients = [Github(auth=auth)] + clients = [Github(auth=auth, retry=retry_config)] elif session.key and session.id: auth = Auth.AppAuth( session.id, session.key, ) - gi = GithubIntegration(auth=auth) + gi = GithubIntegration(auth=auth, retry=retry_config) for installation in gi.get_installations(): clients.append(installation.get_github_for_installation()) diff --git a/prowler/providers/github/services/repository/repository_service.py b/prowler/providers/github/services/repository/repository_service.py index 2fbeae6be4..3fca76bba4 100644 --- a/prowler/providers/github/services/repository/repository_service.py +++ b/prowler/providers/github/services/repository/repository_service.py @@ -136,7 +136,7 @@ class Repository(GithubService): ) try: # Use get_dependabot_alerts to check if Dependabot alerts are enabled - repo.get_dependabot_alerts()[0] + repo.get_dependabot_alerts().totalCount # If the call succeeds, Dependabot is enabled (even if no alerts) dependabot_alerts_enabled = True except Exception as error: From 15e4d1acce7562451aff11555507419089888afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Jes=C3=BAs=20Pe=C3=B1a=20Rodr=C3=ADguez?= Date: Mon, 26 May 2025 12:20:05 +0200 Subject: [PATCH 024/111] refactor(reports): change API response message when tasks are running (#7837) --- api/src/backend/api/specs/v1.yaml | 3 ++- api/src/backend/api/tests/test_views.py | 22 +++++++++++++++++----- api/src/backend/api/v1/views.py | 22 +++++++++++++++++----- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/api/src/backend/api/specs/v1.yaml b/api/src/backend/api/specs/v1.yaml index e368d57757..8431129344 100644 --- a/api/src/backend/api/specs/v1.yaml +++ b/api/src/backend/api/specs/v1.yaml @@ -5376,7 +5376,8 @@ paths: '403': description: There is a problem with credentials '404': - description: The scan has no reports + description: The scan has no reports, or the report generation task has + not started yet /api/v1/schedules/daily: post: operationId: schedules_daily_create diff --git a/api/src/backend/api/tests/test_views.py b/api/src/backend/api/tests/test_views.py index 97beecd6e3..677f9437a6 100644 --- a/api/src/backend/api/tests/test_views.py +++ b/api/src/backend/api/tests/test_views.py @@ -2304,7 +2304,10 @@ class TestScanViewSet: url = reverse("scan-report", kwargs={"pk": scan.id}) response = authenticated_client.get(url) assert response.status_code == status.HTTP_404_NOT_FOUND - assert response.json()["errors"]["detail"] == "The scan has no reports." + assert ( + response.json()["errors"]["detail"] + == "The scan has no reports, or the report generation task has not started yet." + ) def test_report_s3_no_credentials( self, authenticated_client, scans_fixture, monkeypatch @@ -2372,7 +2375,7 @@ class TestScanViewSet: ): """ When output_location is a local path and glob.glob returns an empty list, - the view should return HTTP 404 with detail "The scan has no reports." + the view should return HTTP 404 with detail "The scan has no reports, or the report generation task has not started yet." """ scan = scans_fixture[0] scan.output_location = "/tmp/nonexistent_report_pattern.zip" @@ -2384,7 +2387,10 @@ class TestScanViewSet: response = authenticated_client.get(url) assert response.status_code == 404 - assert response.json()["errors"]["detail"] == "The scan has no reports." + assert ( + response.json()["errors"]["detail"] + == "The scan has no reports, or the report generation task has not started yet." + ) def test_report_local_file(self, authenticated_client, scans_fixture, monkeypatch): scan = scans_fixture[0] @@ -2459,7 +2465,10 @@ class TestScanViewSet: url = reverse("scan-compliance", kwargs={"pk": scan.id, "name": framework}) resp = authenticated_client.get(url) assert resp.status_code == status.HTTP_404_NOT_FOUND - assert resp.json()["errors"]["detail"] == "The scan has no reports." + assert ( + resp.json()["errors"]["detail"] + == "The scan has no reports, or the report generation task has not started yet." + ) def test_compliance_s3_no_credentials( self, authenticated_client, scans_fixture, monkeypatch @@ -2681,7 +2690,10 @@ class TestScanViewSet: response = authenticated_client.get(url) assert response.status_code == status.HTTP_404_NOT_FOUND - assert response.json()["errors"]["detail"] == "The scan has no reports." + assert ( + response.json()["errors"]["detail"] + == "The scan has no reports, or the report generation task has not started yet." + ) @patch("api.v1.views.get_s3_client") def test_report_s3_client_error_other( diff --git a/api/src/backend/api/v1/views.py b/api/src/backend/api/v1/views.py index 39a48a0c16..b8679217f9 100644 --- a/api/src/backend/api/v1/views.py +++ b/api/src/backend/api/v1/views.py @@ -1160,7 +1160,9 @@ class ProviderViewSet(BaseRLSViewSet): 200: OpenApiResponse(description="Report obtained successfully"), 202: OpenApiResponse(description="The task is in progress"), 403: OpenApiResponse(description="There is a problem with credentials"), - 404: OpenApiResponse(description="The scan has no reports"), + 404: OpenApiResponse( + description="The scan has no reports, or the report generation task has not started yet" + ), }, ), compliance=extend_schema( @@ -1363,7 +1365,9 @@ class ScanViewSet(BaseRLSViewSet): code = e.response.get("Error", {}).get("Code") if code == "NoSuchKey": return Response( - {"detail": "The scan has no reports."}, + { + "detail": "The scan has no reports, or the report generation task has not started yet." + }, status=status.HTTP_404_NOT_FOUND, ) return Response( @@ -1376,7 +1380,9 @@ class ScanViewSet(BaseRLSViewSet): files = glob.glob(path_pattern) if not files: return Response( - {"detail": "The scan has no reports."}, + { + "detail": "The scan has no reports, or the report generation task has not started yet." + }, status=status.HTTP_404_NOT_FOUND, ) filepath = files[0] @@ -1402,7 +1408,10 @@ class ScanViewSet(BaseRLSViewSet): if not scan.output_location: return Response( - {"detail": "The scan has no reports."}, status=status.HTTP_404_NOT_FOUND + { + "detail": "The scan has no reports, or the report generation task has not started yet." + }, + status=status.HTTP_404_NOT_FOUND, ) if scan.output_location.startswith("s3://"): @@ -1440,7 +1449,10 @@ class ScanViewSet(BaseRLSViewSet): if not scan.output_location: return Response( - {"detail": "The scan has no reports."}, status=status.HTTP_404_NOT_FOUND + { + "detail": "The scan has no reports, or the report generation task has not started yet." + }, + status=status.HTTP_404_NOT_FOUND, ) if scan.output_location.startswith("s3://"): From 3658e85cfcd90edf54b4f7fff94062ec4b2ca6fc Mon Sep 17 00:00:00 2001 From: Sergio Garcia Date: Mon, 26 May 2025 14:34:44 +0200 Subject: [PATCH 025/111] chore(github): add `Branch` class (#7838) --- ...pository_branch_delete_on_merge_enabled.py | 8 +- ...sitory_default_branch_deletion_disabled.py | 4 +- ...ory_default_branch_disallows_force_push.py | 12 +-- ...ult_branch_protection_applies_to_admins.py | 4 +- ...itory_default_branch_protection_enabled.py | 8 +- ...fault_branch_requires_codeowners_review.py | 4 +- ...branch_requires_conversation_resolution.py | 12 +-- ..._default_branch_requires_linear_history.py | 8 +- ...ault_branch_requires_multiple_approvals.py | 4 +- ..._default_branch_requires_signed_commits.py | 8 +- ...y_default_branch_status_checks_required.py | 8 +- .../repository_inactive_not_archived.py | 4 +- .../services/repository/repository_service.py | 58 +++++++----- ...ory_branch_delete_on_merge_enabled_test.py | 68 ++++++++++---- ...y_default_branch_deletion_disabled_test.py | 44 ++++++++- ...efault_branch_disallows_force_push_test.py | 56 +++++++++--- ...ranch_protection_applies_to_admins_test.py | 48 ++++++++-- ..._default_branch_protection_enabled_test.py | 48 ++++++++-- ..._branch_requires_codeowners_review_test.py | 52 ++++++++--- ...h_requires_conversation_resolution_test.py | 50 +++++++++-- ...ult_branch_requires_linear_history_test.py | 48 ++++++++-- ...branch_requires_multiple_approvals_test.py | 77 ++++++++++++---- ...ult_branch_requires_signed_commits_test.py | 62 ++++++++++--- ...ault_branch_status_checks_required_test.py | 42 ++++++++- ...sitory_dependency_scanning_enabled_test.py | 42 +++++++-- .../repository_has_codeowners_file_test.py | 42 +++++++-- .../repository_inactive_not_archived_test.py | 90 +++++++++++++++++-- ...ository_public_has_securitymd_file_test.py | 44 +++++++-- ...repository_secret_scanning_enabled_test.py | 42 +++++++-- .../repository/repository_service_test.py | 56 +++++++----- 30 files changed, 820 insertions(+), 233 deletions(-) diff --git a/prowler/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled.py b/prowler/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled.py index 98cacd4394..145e4261e1 100644 --- a/prowler/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled.py +++ b/prowler/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled.py @@ -24,15 +24,11 @@ class repository_branch_delete_on_merge_enabled(Check): for repo in repository_client.repositories.values(): report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" - report.status_extended = ( - f"Repository {repo.name} does not delete branches on merge." - ) + report.status_extended = f"Repository {repo.name} does not delete branches on merge in default branch ({repo.default_branch.name})." if repo.delete_branch_on_merge: report.status = "PASS" - report.status_extended = ( - f"Repository {repo.name} does delete branches on merge." - ) + report.status_extended = f"Repository {repo.name} does delete branches on merge in default branch ({repo.default_branch.name})." findings.append(report) diff --git a/prowler/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled.py b/prowler/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled.py index 1b7dfe2004..bf615a21b6 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled.py +++ b/prowler/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled.py @@ -22,14 +22,14 @@ class repository_default_branch_deletion_disabled(Check): """ findings = [] for repo in repository_client.repositories.values(): - if repo.default_branch_deletion is not None: + if repo.default_branch.branch_deletion is not None: report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = ( f"Repository {repo.name} does allow default branch deletion." ) - if not repo.default_branch_deletion: + if not repo.default_branch.branch_deletion: report.status = "PASS" report.status_extended = ( f"Repository {repo.name} does deny default branch deletion." diff --git a/prowler/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push.py b/prowler/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push.py index b1364e2096..16eb7fa794 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push.py +++ b/prowler/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push.py @@ -22,18 +22,14 @@ class repository_default_branch_disallows_force_push(Check): """ findings = [] for repo in repository_client.repositories.values(): - if repo.allow_force_pushes is not None: + if repo.default_branch.allow_force_pushes is not None: report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" - report.status_extended = ( - f"Repository {repo.name} does allow force push." - ) + report.status_extended = f"Repository {repo.name} does allow force pushes on default branch ({repo.default_branch.name})." - if not repo.allow_force_pushes: + if not repo.default_branch.allow_force_pushes: report.status = "PASS" - report.status_extended = ( - f"Repository {repo.name} does deny force push." - ) + report.status_extended = f"Repository {repo.name} does deny force pushes on default branch ({repo.default_branch.name})." findings.append(report) diff --git a/prowler/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins.py b/prowler/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins.py index 39c8de0384..0a70cf0aea 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins.py +++ b/prowler/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins.py @@ -22,12 +22,12 @@ class repository_default_branch_protection_applies_to_admins(Check): """ findings = [] for repo in repository_client.repositories.values(): - if repo.enforce_admins is not None: + if repo.default_branch.enforce_admins is not None: report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = f"Repository {repo.name} does not enforce administrators to be subject to the same branch protection rules as other users." - if repo.enforce_admins: + if repo.default_branch.enforce_admins: report.status = "PASS" report.status_extended = f"Repository {repo.name} does enforce administrators to be subject to the same branch protection rules as other users." diff --git a/prowler/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled.py b/prowler/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled.py index cf281c6a6a..1348018ee1 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled.py +++ b/prowler/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled.py @@ -22,14 +22,14 @@ class repository_default_branch_protection_enabled(Check): """ findings = [] for repo in repository_client.repositories.values(): - if repo.default_branch_protection is not None: + if repo.default_branch.protected is not None: report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" - report.status_extended = f"Repository {repo.name} does not enforce branch protection on default branch ({repo.default_branch})." + report.status_extended = f"Repository {repo.name} does not enforce branch protection on default branch ({repo.default_branch.name})." - if repo.default_branch_protection: + if repo.default_branch.protected: report.status = "PASS" - report.status_extended = f"Repository {repo.name} does enforce branch protection on default branch ({repo.default_branch})." + report.status_extended = f"Repository {repo.name} does enforce branch protection on default branch ({repo.default_branch.name})." findings.append(report) diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py b/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py index 5e6f0c6464..4c5b75010a 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review.py @@ -22,9 +22,9 @@ class repository_default_branch_requires_codeowners_review(Check): """ findings = [] for repo in repository_client.repositories.values(): - if repo.require_code_owner_reviews is not None: + if repo.default_branch.require_code_owner_reviews is not None: report = CheckReportGithub(metadata=self.metadata(), resource=repo) - if repo.require_code_owner_reviews: + if repo.default_branch.require_code_owner_reviews: report.status = "PASS" report.status_extended = f"Repository {repo.name} requires code owner approval for changes to owned code." else: diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution.py b/prowler/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution.py index 53cff78909..da33754cf5 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution.py +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution.py @@ -22,18 +22,14 @@ class repository_default_branch_requires_conversation_resolution(Check): """ findings = [] for repo in repository_client.repositories.values(): - if repo.conversation_resolution is not None: + if repo.default_branch.conversation_resolution is not None: report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" - report.status_extended = ( - f"Repository {repo.name} does not require conversation resolution." - ) + report.status_extended = f"Repository {repo.name} does not require conversation resolution on default branch ({repo.default_branch.name})." - if repo.conversation_resolution: + if repo.default_branch.conversation_resolution: report.status = "PASS" - report.status_extended = ( - f"Repository {repo.name} does require conversation resolution." - ) + report.status_extended = f"Repository {repo.name} does require conversation resolution on default branch ({repo.default_branch.name})." findings.append(report) diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history.py b/prowler/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history.py index e57250a1e5..29a0e51b51 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history.py +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history.py @@ -22,14 +22,14 @@ class repository_default_branch_requires_linear_history(Check): """ findings = [] for repo in repository_client.repositories.values(): - if repo.required_linear_history is not None: + if repo.default_branch.required_linear_history is not None: report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" - report.status_extended = f"Repository {repo.name} does not require linear history on default branch ({repo.default_branch})." + report.status_extended = f"Repository {repo.name} does not require linear history on default branch ({repo.default_branch.name})." - if repo.required_linear_history: + if repo.default_branch.required_linear_history: report.status = "PASS" - report.status_extended = f"Repository {repo.name} does require linear history on default branch ({repo.default_branch})." + report.status_extended = f"Repository {repo.name} does require linear history on default branch ({repo.default_branch.name})." findings.append(report) diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals.py b/prowler/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals.py index ad6c89e833..6312b98d02 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals.py +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals.py @@ -22,12 +22,12 @@ class repository_default_branch_requires_multiple_approvals(Check): """ findings = [] for repo in repository_client.repositories.values(): - if repo.approval_count is not None: + if repo.default_branch.approval_count is not None: report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = f"Repository {repo.name} does not enforce at least 2 approvals for code changes." - if repo.approval_count >= 2: + if repo.default_branch.approval_count >= 2: report.status = "PASS" report.status_extended = f"Repository {repo.name} does enforce at least 2 approvals for code changes." diff --git a/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py b/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py index 3f929a2eac..4b6aa3ae4c 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py +++ b/prowler/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits.py @@ -22,14 +22,14 @@ class repository_default_branch_requires_signed_commits(Check): """ findings = [] for repo in repository_client.repositories.values(): - if repo.require_signed_commits is not None: + if repo.default_branch.require_signed_commits is not None: report = CheckReportGithub(metadata=self.metadata(), resource=repo) report.status = "FAIL" - report.status_extended = f"Repository {repo.name} does not require signed commits on default branch ({repo.default_branch})." + report.status_extended = f"Repository {repo.name} does not require signed commits on default branch ({repo.default_branch.name})." - if repo.require_signed_commits: + if repo.default_branch.require_signed_commits: report.status = "PASS" - report.status_extended = f"Repository {repo.name} does require signed commits on default branch ({repo.default_branch})." + report.status_extended = f"Repository {repo.name} does require signed commits on default branch ({repo.default_branch.name})." findings.append(report) diff --git a/prowler/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required.py b/prowler/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required.py index 577b2bad05..e67b9def2c 100644 --- a/prowler/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required.py +++ b/prowler/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required.py @@ -22,16 +22,14 @@ class repository_default_branch_status_checks_required(Check): """ findings = [] for repo in repository_client.repositories.values(): - if repo.status_checks is not None: - report = CheckReportGithub( - self.metadata(), resource=repo, owner=repo.name - ) + if repo.default_branch.status_checks is not None: + report = CheckReportGithub(self.metadata(), resource=repo) report.status = "FAIL" report.status_extended = ( f"Repository {repo.name} does not enforce status checks." ) - if repo.status_checks: + if repo.default_branch.status_checks: report.status = "PASS" report.status_extended = ( f"Repository {repo.name} does enforce status checks." diff --git a/prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.py b/prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.py index fb28094598..c6426fa194 100644 --- a/prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.py +++ b/prowler/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived.py @@ -20,9 +20,7 @@ class repository_inactive_not_archived(Check): ) for repo in repository_client.repositories.values(): - report = CheckReportGithub( - metadata=self.metadata(), resource=repo, repository=repo.name - ) + report = CheckReportGithub(metadata=self.metadata(), resource=repo) if repo.archived: report.status = "PASS" diff --git a/prowler/providers/github/services/repository/repository_service.py b/prowler/providers/github/services/repository/repository_service.py index 3fca76bba4..6c0101503b 100644 --- a/prowler/providers/github/services/repository/repository_service.py +++ b/prowler/providers/github/services/repository/repository_service.py @@ -163,24 +163,27 @@ class Repository(GithubService): name=repo.name, owner=repo.owner.login, full_name=repo.full_name, - default_branch=repo.default_branch, + default_branch=Branch( + name=default_branch, + protected=branch_protection, + default_branch=True, + require_pull_request=require_pr, + approval_count=approval_cnt, + required_linear_history=required_linear_history, + allow_force_pushes=allow_force_pushes, + branch_deletion=branch_deletion, + status_checks=status_checks, + enforce_admins=enforce_admins, + conversation_resolution=conversation_resolution, + require_code_owner_reviews=require_code_owner_reviews, + require_signed_commits=require_signed_commits, + ), private=repo.private, archived=repo.archived, pushed_at=repo.pushed_at, securitymd=securitymd_exists, - require_pull_request=require_pr, - approval_count=approval_cnt, - required_linear_history=required_linear_history, - allow_force_pushes=allow_force_pushes, - default_branch_deletion=branch_deletion, - status_checks=status_checks, - enforce_admins=enforce_admins, - conversation_resolution=conversation_resolution, - default_branch_protection=branch_protection, codeowners_exists=codeowners_exists, - require_code_owner_reviews=require_code_owner_reviews, secret_scanning_enabled=secret_scanning_enabled, - require_signed_commits=require_signed_commits, dependabot_alerts_enabled=dependabot_alerts_enabled, delete_branch_on_merge=delete_branch_on_merge, ) @@ -192,6 +195,24 @@ class Repository(GithubService): return repos +class Branch(BaseModel): + """Model for Github Branch""" + + name: str + protected: bool + default_branch: bool + require_pull_request: Optional[bool] + approval_count: Optional[int] + required_linear_history: Optional[bool] + allow_force_pushes: Optional[bool] + branch_deletion: Optional[bool] + status_checks: Optional[bool] + enforce_admins: Optional[bool] + require_code_owner_reviews: Optional[bool] + require_signed_commits: Optional[bool] + conversation_resolution: Optional[bool] + + class Repo(BaseModel): """Model for Github Repository""" @@ -199,23 +220,12 @@ class Repo(BaseModel): name: str owner: str full_name: str - default_branch_protection: Optional[bool] - default_branch: str + default_branch: Branch private: bool archived: bool pushed_at: datetime securitymd: Optional[bool] - require_pull_request: Optional[bool] - required_linear_history: Optional[bool] - allow_force_pushes: Optional[bool] - default_branch_deletion: Optional[bool] - status_checks: Optional[bool] - enforce_admins: Optional[bool] - approval_count: Optional[int] codeowners_exists: Optional[bool] - require_code_owner_reviews: Optional[bool] secret_scanning_enabled: Optional[bool] - require_signed_commits: Optional[bool] dependabot_alerts_enabled: Optional[bool] delete_branch_on_merge: Optional[bool] - conversation_resolution: Optional[bool] diff --git a/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py b/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py index 160928ad2f..e10050e0cc 100644 --- a/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py +++ b/tests/providers/github/services/repository/repository_branch_delete_on_merge_enabled/repository_branch_delete_on_merge_enabled_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -30,19 +30,37 @@ class Test_repository_branch_delete_on_merge_enabled_test: def test_branch_deletion_disabled(self): repository_client = mock.MagicMock - repo_name = "repo1" + repo_name = "repo2" + default_branch = "main" repository_client.repositories = { - 1: Repo( - id=1, + 2: Repo( + id=2, name=repo_name, owner="account-name", - full_name="account-name/repo1", - default_branch="main", + full_name="account-name/repo2", + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, - securitymd=False, - delete_branch_on_merge=False, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -63,29 +81,47 @@ class Test_repository_branch_delete_on_merge_enabled_test: check = repository_branch_delete_on_merge_enabled() result = check.execute() assert len(result) == 1 - assert result[0].resource_id == 1 - assert result[0].resource_name == "repo1" + assert result[0].resource_id == 2 + assert result[0].resource_name == repo_name assert result[0].status == "FAIL" assert ( result[0].status_extended - == f"Repository {repo_name} does not delete branches on merge." + == f"Repository {repo_name} does not delete branches on merge in default branch ({default_branch})." ) def test_branch_deletion_enabled(self): repository_client = mock.MagicMock repo_name = "repo1" + default_branch = "main" repository_client.repositories = { 1: Repo( id=1, name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch="main", + default_branch=Branch( + name=default_branch, + protected=True, + default_branch=True, + require_pull_request=True, + approval_count=1, + required_linear_history=True, + allow_force_pushes=False, + branch_deletion=False, + status_checks=True, + enforce_admins=True, + require_code_owner_reviews=True, + require_signed_commits=True, + conversation_resolution=True, + ), private=False, - securitymd=True, - delete_branch_on_merge=True, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=True, + codeowners_exists=True, + secret_scanning_enabled=True, + dependabot_alerts_enabled=True, + delete_branch_on_merge=True, ), } @@ -107,9 +143,9 @@ class Test_repository_branch_delete_on_merge_enabled_test: result = check.execute() assert len(result) == 1 assert result[0].resource_id == 1 - assert result[0].resource_name == "repo1" + assert result[0].resource_name == repo_name assert result[0].status == "PASS" assert ( result[0].status_extended - == f"Repository {repo_name} does delete branches on merge." + == f"Repository {repo_name} does delete branches on merge in default branch ({default_branch})." ) diff --git a/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py b/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py index c2345297ff..b4d385fdf1 100644 --- a/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_deletion_disabled/repository_default_branch_deletion_disabled_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -31,7 +31,21 @@ class Test_repository_default_branch_deletion_disabled_test: def test_allow_branch_deletion_enabled(self): repository_client = mock.MagicMock repo_name = "repo1" - default_branch = "main" + default_branch = Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ) now = datetime.now(timezone.utc) repository_client.repositories = { @@ -45,6 +59,11 @@ class Test_repository_default_branch_deletion_disabled_test: archived=False, pushed_at=now, default_branch_deletion=True, + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -76,7 +95,21 @@ class Test_repository_default_branch_deletion_disabled_test: def test_allow_branch_deletion_disabled(self): repository_client = mock.MagicMock repo_name = "repo1" - default_branch = "main" + default_branch = Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=False, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ) now = datetime.now(timezone.utc) repository_client.repositories = { @@ -90,6 +123,11 @@ class Test_repository_default_branch_deletion_disabled_test: archived=False, pushed_at=now, default_branch_deletion=False, + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py b/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py index 489ad6c41b..b35393764e 100644 --- a/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_disallows_force_push/repository_default_branch_disallows_force_push_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -28,7 +28,7 @@ class Test_repository_default_branch_disallows_force_push_test: result = check.execute() assert len(result) == 0 - def test_allow_force_push_enabled(self): + def test_force_push_allowed(self): repository_client = mock.MagicMock repo_name = "repo1" default_branch = "main" @@ -38,12 +38,29 @@ class Test_repository_default_branch_disallows_force_push_test: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch=default_branch, - allow_force_pushes=True, + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, - securitymd=False, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -69,10 +86,10 @@ class Test_repository_default_branch_disallows_force_push_test: assert result[0].status == "FAIL" assert ( result[0].status_extended - == f"Repository {repo_name} does allow force push." + == f"Repository {repo_name} does allow force pushes on default branch ({default_branch})." ) - def test_allow_force_push_disabled(self): + def test_force_push_disallowed(self): repository_client = mock.MagicMock repo_name = "repo1" default_branch = "main" @@ -82,12 +99,29 @@ class Test_repository_default_branch_disallows_force_push_test: name=repo_name, owner="account-name", full_name="account-name/repo1", + default_branch=Branch( + name=default_branch, + protected=True, + default_branch=True, + require_pull_request=True, + approval_count=1, + required_linear_history=True, + allow_force_pushes=False, + branch_deletion=False, + status_checks=True, + enforce_admins=True, + require_code_owner_reviews=True, + require_signed_commits=True, + conversation_resolution=True, + ), private=False, - default_branch=default_branch, - allow_force_pushes=False, - securitymd=True, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=True, + codeowners_exists=True, + secret_scanning_enabled=True, + dependabot_alerts_enabled=True, + delete_branch_on_merge=True, ), } @@ -113,5 +147,5 @@ class Test_repository_default_branch_disallows_force_push_test: assert result[0].status == "PASS" assert ( result[0].status_extended - == f"Repository {repo_name} does deny force push." + == f"Repository {repo_name} does deny force pushes on default branch ({default_branch})." ) diff --git a/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py b/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py index 29c3185614..296c3d78e5 100644 --- a/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_protection_applies_to_admins/repository_default_branch_protection_applies_to_admins_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -38,12 +38,29 @@ class Test_repository_default_branch_protection_applies_to_admins_test: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch=default_branch, + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, - securitymd=False, - enforce_admins=False, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -82,12 +99,29 @@ class Test_repository_default_branch_protection_applies_to_admins_test: name=repo_name, owner="account-name", full_name="account-name/repo1", + default_branch=Branch( + name=default_branch, + protected=True, + default_branch=True, + require_pull_request=True, + approval_count=1, + required_linear_history=True, + allow_force_pushes=False, + branch_deletion=False, + status_checks=True, + enforce_admins=True, + require_code_owner_reviews=True, + require_signed_commits=True, + conversation_resolution=True, + ), private=False, - default_branch=default_branch, - enforce_admins=True, - securitymd=True, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=True, + codeowners_exists=True, + secret_scanning_enabled=True, + dependabot_alerts_enabled=True, + delete_branch_on_merge=True, ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py b/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py index 249c442739..67bce91575 100644 --- a/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_protection_enabled/repository_default_branch_protection_enabled_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -38,12 +38,29 @@ class Test_repository_default_branch_protection_enabled_test: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch=default_branch, + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, - default_branch_protection=False, - securitymd=False, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -82,12 +99,29 @@ class Test_repository_default_branch_protection_enabled_test: name=repo_name, owner="account-name", full_name="account-name/repo1", + default_branch=Branch( + name=default_branch, + protected=True, + default_branch=True, + require_pull_request=True, + approval_count=1, + required_linear_history=True, + allow_force_pushes=False, + branch_deletion=False, + status_checks=True, + enforce_admins=True, + require_code_owner_reviews=True, + require_signed_commits=True, + conversation_resolution=True, + ), private=False, - default_branch=default_branch, - default_branch_protection=True, - securitymd=True, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=True, + codeowners_exists=True, + secret_scanning_enabled=True, + dependabot_alerts_enabled=True, + delete_branch_on_merge=True, ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py index d0c2b8c619..ab3d579b75 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_codeowners_review/repository_default_branch_requires_codeowners_review_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -37,14 +37,29 @@ class Test_repository_default_branch_requires_codeowners_review: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch="main", + default_branch=Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, - securitymd=True, - require_pull_request=False, - approval_count=0, - require_code_owner_reviews=False, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=True, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -82,14 +97,29 @@ class Test_repository_default_branch_requires_codeowners_review: name=repo_name, owner="account-name", full_name="account-name/repo2", - default_branch="main", + default_branch=Branch( + name="main", + protected=True, + default_branch=True, + require_pull_request=True, + approval_count=1, + required_linear_history=True, + allow_force_pushes=False, + branch_deletion=False, + status_checks=True, + enforce_admins=True, + require_code_owner_reviews=True, + require_signed_commits=True, + conversation_resolution=True, + ), private=False, - securitymd=True, - require_pull_request=False, - approval_count=0, - require_code_owner_reviews=True, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=True, + codeowners_exists=True, + secret_scanning_enabled=True, + dependabot_alerts_enabled=True, + delete_branch_on_merge=True, ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py index eb666df96d..8f5a82bbd8 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_conversation_resolution/repository_default_branch_requires_conversation_resolution_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -38,12 +38,29 @@ class Test_repository_default_branch_requires_conversation_resolution_test: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch=default_branch, - conversation_resolution=False, + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), + private=False, archived=False, pushed_at=datetime.now(timezone.utc), - private=False, securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -69,7 +86,7 @@ class Test_repository_default_branch_requires_conversation_resolution_test: assert result[0].status == "FAIL" assert ( result[0].status_extended - == f"Repository {repo_name} does not require conversation resolution." + == f"Repository {repo_name} does not require conversation resolution on default branch ({default_branch})." ) def test_conversation_resolution_enabled(self): @@ -82,12 +99,29 @@ class Test_repository_default_branch_requires_conversation_resolution_test: name=repo_name, owner="account-name", full_name="account-name/repo1", + default_branch=Branch( + name=default_branch, + protected=True, + default_branch=True, + require_pull_request=True, + approval_count=1, + required_linear_history=True, + allow_force_pushes=False, + branch_deletion=False, + status_checks=True, + enforce_admins=True, + require_code_owner_reviews=True, + require_signed_commits=True, + conversation_resolution=True, + ), private=False, - default_branch=default_branch, - conversation_resolution=True, archived=False, pushed_at=datetime.now(timezone.utc), securitymd=True, + codeowners_exists=True, + secret_scanning_enabled=True, + dependabot_alerts_enabled=True, + delete_branch_on_merge=True, ), } @@ -113,5 +147,5 @@ class Test_repository_default_branch_requires_conversation_resolution_test: assert result[0].status == "PASS" assert ( result[0].status_extended - == f"Repository {repo_name} does require conversation resolution." + == f"Repository {repo_name} does require conversation resolution on default branch ({default_branch})." ) diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py index 1e25aba932..b072396804 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_linear_history/repository_default_branch_requires_linear_history_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -38,12 +38,29 @@ class Test_repository_default_branch_requires_linear_history_test: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch=default_branch, - required_linear_history=False, + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, - securitymd=False, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -82,12 +99,29 @@ class Test_repository_default_branch_requires_linear_history_test: name=repo_name, owner="account-name", full_name="account-name/repo1", + default_branch=Branch( + name=default_branch, + protected=True, + default_branch=True, + require_pull_request=True, + approval_count=1, + required_linear_history=True, + allow_force_pushes=False, + branch_deletion=False, + status_checks=True, + enforce_admins=True, + require_code_owner_reviews=True, + require_signed_commits=True, + conversation_resolution=True, + ), private=False, - default_branch=default_branch, - required_linear_history=True, - securitymd=True, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=True, + codeowners_exists=True, + secret_scanning_enabled=True, + dependabot_alerts_enabled=True, + delete_branch_on_merge=True, ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py index 30ee501362..ddb9e89df6 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_multiple_approvals/repository_default_branch_requires_multiple_approvals_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -37,14 +37,29 @@ class Test_repository_default_branch_requires_multiple_approvals: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch_protection=False, - default_branch="main", + default_branch=Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, - securitymd=False, - require_pull_request=False, - approval_count=0, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -82,14 +97,29 @@ class Test_repository_default_branch_requires_multiple_approvals: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch_protection=False, - default_branch="master", + default_branch=Branch( + name="master", + protected=False, + default_branch=True, + require_pull_request=True, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, - securitymd=False, - require_pull_request=True, - approval_count=0, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -127,14 +157,29 @@ class Test_repository_default_branch_requires_multiple_approvals: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch_protection=True, - default_branch="master", + default_branch=Branch( + name="master", + protected=True, + default_branch=True, + require_pull_request=True, + approval_count=2, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, - securitymd=True, - require_pull_request=True, - approval_count=2, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=True, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } diff --git a/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py b/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py index 7d499c0090..5785dd2a14 100644 --- a/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_requires_signed_commits/repository_default_branch_requires_signed_commits_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -38,12 +38,29 @@ class Test_repository_default_branch_requires_signed_commits: name=repo_name, owner="account-name", full_name="account-name/repo1", + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, - default_branch=default_branch, - require_signed_commits=False, - securitymd=True, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -65,7 +82,7 @@ class Test_repository_default_branch_requires_signed_commits: result = check.execute() assert len(result) == 1 assert result[0].resource_id == 1 - assert result[0].resource_name == repo_name + assert result[0].resource_name == "repo1" assert result[0].status == "FAIL" assert ( result[0].status_extended @@ -74,20 +91,37 @@ class Test_repository_default_branch_requires_signed_commits: def test_signed_commits_required(self): repository_client = mock.MagicMock - repo_name = "repo2" + repo_name = "repo1" default_branch = "main" repository_client.repositories = { - 2: Repo( - id=2, + 1: Repo( + id=1, name=repo_name, owner="account-name", - full_name="account-name/repo2", + full_name="account-name/repo1", + default_branch=Branch( + name=default_branch, + protected=True, + default_branch=True, + require_pull_request=True, + approval_count=1, + required_linear_history=True, + allow_force_pushes=False, + branch_deletion=False, + status_checks=True, + enforce_admins=True, + require_code_owner_reviews=True, + require_signed_commits=True, + conversation_resolution=True, + ), private=False, - default_branch=default_branch, - require_signed_commits=True, - securitymd=True, archived=False, pushed_at=datetime.now(timezone.utc), + securitymd=True, + codeowners_exists=True, + secret_scanning_enabled=True, + dependabot_alerts_enabled=True, + delete_branch_on_merge=True, ), } @@ -108,8 +142,8 @@ class Test_repository_default_branch_requires_signed_commits: check = repository_default_branch_requires_signed_commits() result = check.execute() assert len(result) == 1 - assert result[0].resource_id == 2 - assert result[0].resource_name == repo_name + assert result[0].resource_id == 1 + assert result[0].resource_name == "repo1" assert result[0].status == "PASS" assert ( result[0].status_extended diff --git a/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py b/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py index cb14a4a340..1ec8acc3e0 100644 --- a/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py +++ b/tests/providers/github/services/repository/repository_default_branch_status_checks_required/repository_default_branch_status_checks_required_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -38,12 +38,30 @@ class Test_repository_default_branch_status_checks_required_test: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch=default_branch, + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), status_checks=False, archived=False, pushed_at=datetime.now(timezone.utc), private=False, securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -83,11 +101,29 @@ class Test_repository_default_branch_status_checks_required_test: owner="account-name", full_name="account-name/repo1", private=False, - default_branch=default_branch, + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=True, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), status_checks=True, archived=False, pushed_at=datetime.now(timezone.utc), securitymd=True, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } diff --git a/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py b/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py index 63b2594600..990886ad00 100644 --- a/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py +++ b/tests/providers/github/services/repository/repository_dependency_scanning_enabled/repository_dependency_scanning_enabled_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -37,15 +37,29 @@ class Test_repository_dependency_scanning_enabled: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch="main", + default_branch=Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, archived=False, pushed_at=datetime.now(timezone.utc), securitymd=True, - require_pull_request=False, - approval_count=0, + codeowners_exists=False, secret_scanning_enabled=True, dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } @@ -83,15 +97,29 @@ class Test_repository_dependency_scanning_enabled: name=repo_name, owner="account-name", full_name="account-name/repo2", - default_branch="main", + default_branch=Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, archived=False, pushed_at=datetime.now(timezone.utc), securitymd=True, - require_pull_request=False, - approval_count=0, + codeowners_exists=False, secret_scanning_enabled=True, dependabot_alerts_enabled=True, + delete_branch_on_merge=False, ), } diff --git a/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py b/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py index 9a28163702..a181ec8404 100644 --- a/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py +++ b/tests/providers/github/services/repository/repository_has_codeowners_file/repository_has_codeowners_file_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -37,14 +37,28 @@ class Test_repository_has_codeowners_file: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch="main", + default_branch=Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, securitymd=True, - require_pull_request=False, - approval_count=0, codeowners_exists=False, + secret_scanning_enabled=False, archived=False, pushed_at=datetime.now(timezone.utc), + delete_branch_on_merge=False, ), } @@ -82,14 +96,28 @@ class Test_repository_has_codeowners_file: name=repo_name, owner="account-name", full_name="account-name/repo2", - default_branch="main", + default_branch=Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, securitymd=True, - require_pull_request=False, - approval_count=0, codeowners_exists=True, + secret_scanning_enabled=False, archived=False, pushed_at=datetime.now(timezone.utc), + delete_branch_on_merge=False, ), } diff --git a/tests/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived_test.py b/tests/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived_test.py index 58291070df..69ff88a93a 100644 --- a/tests/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived_test.py +++ b/tests/providers/github/services/repository/repository_inactive_not_archived/repository_inactive_not_archived_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timedelta, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -40,11 +40,31 @@ class Test_repository_inactive_not_archived: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/test-repo", private=False, - default_branch=default_branch, + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), archived=False, pushed_at=recent_activity, + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } repository_client.audit_config = {} @@ -85,11 +105,31 @@ class Test_repository_inactive_not_archived: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/test-repo", private=False, - default_branch=default_branch, + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), archived=False, pushed_at=old_activity, + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } repository_client.audit_config = {} @@ -128,11 +168,31 @@ class Test_repository_inactive_not_archived: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/test-repo", - default_branch=default_branch, private=False, + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), archived=True, pushed_at=old_activity, + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } repository_client.audit_config = {} @@ -173,11 +233,31 @@ class Test_repository_inactive_not_archived: 1: Repo( id=1, name=repo_name, + owner="account-name", full_name="account-name/test-repo", private=False, - default_branch=default_branch, + default_branch=Branch( + name=default_branch, + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), archived=False, pushed_at=old_activity, + securitymd=False, + codeowners_exists=False, + secret_scanning_enabled=False, + dependabot_alerts_enabled=False, + delete_branch_on_merge=False, ), } repository_client.audit_config = {"inactive_not_archived_days_threshold": 40} diff --git a/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py b/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py index e3d6849506..45cf49edd7 100644 --- a/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py +++ b/tests/providers/github/services/repository/repository_public_has_securitymd_file/repository_public_has_securitymd_file_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -37,13 +37,28 @@ class Test_repository_public_has_securitymd_file_test: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch="main", + default_branch=Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, securitymd=False, - require_pull_request=False, - approval_count=0, + codeowners_exists=False, + secret_scanning_enabled=False, archived=False, pushed_at=datetime.now(timezone.utc), + delete_branch_on_merge=False, ), } @@ -81,13 +96,28 @@ class Test_repository_public_has_securitymd_file_test: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch="main", + default_branch=Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, securitymd=True, - require_pull_request=False, - approval_count=0, + codeowners_exists=False, + secret_scanning_enabled=False, archived=False, pushed_at=datetime.now(timezone.utc), + delete_branch_on_merge=False, ), } diff --git a/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py b/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py index 0bff5cd6bc..ccdcc4dd25 100644 --- a/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py +++ b/tests/providers/github/services/repository/repository_secret_scanning_enabled/repository_secret_scanning_enabled_test.py @@ -1,7 +1,7 @@ from datetime import datetime, timezone from unittest import mock -from prowler.providers.github.services.repository.repository_service import Repo +from prowler.providers.github.services.repository.repository_service import Branch, Repo from tests.providers.github.github_fixtures import set_mocked_github_provider @@ -37,14 +37,28 @@ class Test_repository_secret_scanning_enabled: name=repo_name, owner="account-name", full_name="account-name/repo1", - default_branch="main", + default_branch=Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, securitymd=True, - require_pull_request=False, - approval_count=0, + codeowners_exists=False, secret_scanning_enabled=False, archived=False, pushed_at=datetime.now(timezone.utc), + delete_branch_on_merge=False, ), } @@ -82,14 +96,28 @@ class Test_repository_secret_scanning_enabled: name=repo_name, owner="account-name", full_name="account-name/repo2", - default_branch="main", + default_branch=Branch( + name="main", + protected=False, + default_branch=True, + require_pull_request=False, + approval_count=0, + required_linear_history=False, + allow_force_pushes=True, + branch_deletion=True, + status_checks=False, + enforce_admins=False, + require_code_owner_reviews=False, + require_signed_commits=False, + conversation_resolution=False, + ), private=False, securitymd=True, - require_pull_request=False, - approval_count=0, + codeowners_exists=False, secret_scanning_enabled=True, archived=False, pushed_at=datetime.now(timezone.utc), + delete_branch_on_merge=False, ), } diff --git a/tests/providers/github/services/repository/repository_service_test.py b/tests/providers/github/services/repository/repository_service_test.py index 9c9e7371c9..487ac41e7c 100644 --- a/tests/providers/github/services/repository/repository_service_test.py +++ b/tests/providers/github/services/repository/repository_service_test.py @@ -2,6 +2,7 @@ from datetime import datetime, timezone from unittest.mock import MagicMock, patch from prowler.providers.github.services.repository.repository_service import ( + Branch, Repo, Repository, ) @@ -15,25 +16,28 @@ def mock_list_repositories(_): name="repo1", owner="account-name", full_name="account-name/repo1", - default_branch_protection=True, - default_branch="main", + default_branch=Branch( + name="main", + protected=True, + default_branch=True, + require_pull_request=True, + approval_count=2, + required_linear_history=True, + allow_force_pushes=True, + branch_deletion=True, + status_checks=True, + enforce_admins=True, + require_code_owner_reviews=True, + require_signed_commits=True, + conversation_resolution=True, + ), private=False, securitymd=True, - require_pull_request=True, - required_linear_history=True, - allow_force_pushes=True, - default_branch_deletion=True, - status_checks=True, - approval_count=2, codeowners_exists=True, - require_code_owner_reviews=True, secret_scanning_enabled=True, - require_signed_commits=True, archived=False, pushed_at=datetime.now(timezone.utc), - enforce_admins=True, delete_branch_on_merge=True, - conversation_resolution=True, ), } @@ -57,21 +61,27 @@ class Test_Repository_Service: assert repository_service.repositories[1].name == "repo1" assert repository_service.repositories[1].full_name == "account-name/repo1" assert repository_service.repositories[1].private is False - assert repository_service.repositories[1].default_branch == "main" + assert repository_service.repositories[1].default_branch.name == "main" assert repository_service.repositories[1].securitymd - assert repository_service.repositories[1].required_linear_history - assert repository_service.repositories[1].require_pull_request - assert repository_service.repositories[1].allow_force_pushes - assert repository_service.repositories[1].default_branch_deletion - assert repository_service.repositories[1].status_checks - assert repository_service.repositories[1].enforce_admins + assert repository_service.repositories[1].default_branch.required_linear_history + assert repository_service.repositories[1].default_branch.require_pull_request + assert repository_service.repositories[1].default_branch.allow_force_pushes + assert repository_service.repositories[1].default_branch.branch_deletion + assert repository_service.repositories[1].default_branch.status_checks + assert repository_service.repositories[1].default_branch.enforce_admins assert repository_service.repositories[1].delete_branch_on_merge - assert repository_service.repositories[1].conversation_resolution - assert repository_service.repositories[1].approval_count == 2 + assert repository_service.repositories[1].default_branch.conversation_resolution + assert repository_service.repositories[1].default_branch.approval_count == 2 assert repository_service.repositories[1].codeowners_exists is True - assert repository_service.repositories[1].require_code_owner_reviews is True + assert ( + repository_service.repositories[1].default_branch.require_code_owner_reviews + is True + ) assert repository_service.repositories[1].secret_scanning_enabled is True - assert repository_service.repositories[1].require_signed_commits is True + assert ( + repository_service.repositories[1].default_branch.require_signed_commits + is True + ) assert repository_service.repositories[1].archived is False assert repository_service.repositories[1].pushed_at is not None From be1e3e942b0adabdcd7f3a40b31bdc80eb96f8f4 Mon Sep 17 00:00:00 2001 From: Sergio Garcia Date: Mon, 26 May 2025 15:42:39 +0200 Subject: [PATCH 026/111] feat(api): support GCP Service Account key (#7824) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sergio Garcia <38561120+garcitm@users.noreply.github.com> Co-authored-by: Víctor Fernández Poyatos --- api/CHANGELOG.md | 3 ++ ...026_provider_secret_gcp_service_account.py | 14 +++++++ api/src/backend/api/models.py | 1 + api/src/backend/api/specs/v1.yaml | 42 +++++++++++++++++++ api/src/backend/api/tests/test_views.py | 20 +++++++++ .../api/v1/serializer_utils/providers.py | 11 +++++ api/src/backend/api/v1/serializers.py | 9 ++++ 7 files changed, 100 insertions(+) create mode 100644 api/src/backend/api/migrations/0026_provider_secret_gcp_service_account.py diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index 299c3f715e..f49253fb45 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -4,6 +4,9 @@ All notable changes to the **Prowler API** are documented in this file. ## [v1.9.0] (Prowler UNRELEASED) +### Added +- Support GCP Service Account key. [(#7824)](https://github.com/prowler-cloud/prowler/pull/7824) + ### Changed - Renamed field encrypted_password to password for M365 provider [(#7784)](https://github.com/prowler-cloud/prowler/pull/7784) diff --git a/api/src/backend/api/migrations/0026_provider_secret_gcp_service_account.py b/api/src/backend/api/migrations/0026_provider_secret_gcp_service_account.py new file mode 100644 index 0000000000..3857dbbd75 --- /dev/null +++ b/api/src/backend/api/migrations/0026_provider_secret_gcp_service_account.py @@ -0,0 +1,14 @@ +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("api", "0025_findings_uid_index_parent"), + ] + + operations = [ + migrations.RunSQL( + "ALTER TYPE provider_secret_type ADD VALUE IF NOT EXISTS 'service_account';", + reverse_sql=migrations.RunSQL.noop, + ), + ] diff --git a/api/src/backend/api/models.py b/api/src/backend/api/models.py index a427bcf9c9..28b0845a3a 100644 --- a/api/src/backend/api/models.py +++ b/api/src/backend/api/models.py @@ -850,6 +850,7 @@ class ProviderSecret(RowLevelSecurityProtectedModel): class TypeChoices(models.TextChoices): STATIC = "static", _("Key-value pairs") ROLE = "role", _("Role assumption") + SERVICE_ACCOUNT = "service_account", _("GCP Service Account Key") id = models.UUIDField(primary_key=True, default=uuid4, editable=False) inserted_at = models.DateTimeField(auto_now_add=True, editable=False) diff --git a/api/src/backend/api/specs/v1.yaml b/api/src/backend/api/specs/v1.yaml index 8431129344..c7c20b5d56 100644 --- a/api/src/backend/api/specs/v1.yaml +++ b/api/src/backend/api/specs/v1.yaml @@ -9137,10 +9137,12 @@ components: enum: - static - role + - service_account type: string description: |- * `static` - Key-value pairs * `role` - Role assumption + * `service_account` - GCP Service Account Key readOnly: true secret: oneOf: @@ -9269,6 +9271,14 @@ components: - client_id - client_secret - refresh_token + - type: object + title: GCP Service Account Key + properties: + service_account_key: + type: object + description: The service account key for GCP. + required: + - service_account_key - type: object title: Kubernetes Static Credentials properties: @@ -10317,10 +10327,12 @@ components: enum: - static - role + - service_account type: string description: |- * `static` - Key-value pairs * `role` - Role assumption + * `service_account` - GCP Service Account Key required: - secret_type relationships: @@ -10384,10 +10396,12 @@ components: enum: - static - role + - service_account type: string description: |- * `static` - Key-value pairs * `role` - Role assumption + * `service_account` - GCP Service Account Key secret: oneOf: - type: object @@ -10514,6 +10528,14 @@ components: - client_id - client_secret - refresh_token + - type: object + title: GCP Service Account Key + properties: + service_account_key: + type: object + description: The service account key for GCP. + required: + - service_account_key - type: object title: Kubernetes Static Credentials properties: @@ -10592,10 +10614,12 @@ components: enum: - static - role + - service_account type: string description: |- * `static` - Key-value pairs * `role` - Role assumption + * `service_account` - GCP Service Account Key secret: oneOf: - type: object @@ -10723,6 +10747,14 @@ components: - client_id - client_secret - refresh_token + - type: object + title: GCP Service Account Key + properties: + service_account_key: + type: object + description: The service account key for GCP. + required: + - service_account_key - type: object title: Kubernetes Static Credentials properties: @@ -10817,10 +10849,12 @@ components: enum: - static - role + - service_account type: string description: |- * `static` - Key-value pairs * `role` - Role assumption + * `service_account` - GCP Service Account Key readOnly: true secret: oneOf: @@ -10948,6 +10982,14 @@ components: - client_id - client_secret - refresh_token + - type: object + title: GCP Service Account Key + properties: + service_account_key: + type: object + description: The service account key for GCP. + required: + - service_account_key - type: object title: Kubernetes Static Credentials properties: diff --git a/api/src/backend/api/tests/test_views.py b/api/src/backend/api/tests/test_views.py index 677f9437a6..f6c2c56c38 100644 --- a/api/src/backend/api/tests/test_views.py +++ b/api/src/backend/api/tests/test_views.py @@ -1679,6 +1679,26 @@ class TestProviderSecretViewSet: "refresh_token": "refresh-token", }, ), + # GCP with Service Account Key secret + ( + Provider.ProviderChoices.GCP.value, + ProviderSecret.TypeChoices.SERVICE_ACCOUNT, + { + "service_account_key": { + "type": "service_account", + "project_id": "project-id", + "private_key_id": "private-key-id", + "private_key": "private-key", + "client_email": "client-email", + "client_id": "client-id", + "auth_uri": "auth-uri", + "token_uri": "token-uri", + "auth_provider_x509_cert_url": "auth-provider-x509-cert-url", + "client_x509_cert_url": "client-x509-cert-url", + "universe_domain": "universe-domain", + }, + }, + ), # Kubernetes with STATIC secret ( Provider.ProviderChoices.KUBERNETES.value, diff --git a/api/src/backend/api/v1/serializer_utils/providers.py b/api/src/backend/api/v1/serializer_utils/providers.py index a6ecea67d0..0a1e999fe2 100644 --- a/api/src/backend/api/v1/serializer_utils/providers.py +++ b/api/src/backend/api/v1/serializer_utils/providers.py @@ -154,6 +154,17 @@ from rest_framework_json_api import serializers }, "required": ["client_id", "client_secret", "refresh_token"], }, + { + "type": "object", + "title": "GCP Service Account Key", + "properties": { + "service_account_key": { + "type": "object", + "description": "The service account key for GCP.", + } + }, + "required": ["service_account_key"], + }, { "type": "object", "title": "Kubernetes Static Credentials", diff --git a/api/src/backend/api/v1/serializers.py b/api/src/backend/api/v1/serializers.py index 4ba2154327..7beb311d5f 100644 --- a/api/src/backend/api/v1/serializers.py +++ b/api/src/backend/api/v1/serializers.py @@ -1159,6 +1159,8 @@ class BaseWriteProviderSecretSerializer(BaseWriteSerializer): ) elif secret_type == ProviderSecret.TypeChoices.ROLE: serializer = AWSRoleAssumptionProviderSecret(data=secret) + elif secret_type == ProviderSecret.TypeChoices.SERVICE_ACCOUNT: + serializer = GCPServiceAccountProviderSecret(data=secret) else: raise serializers.ValidationError( {"secret_type": f"Secret type not supported: {secret_type}"} @@ -1212,6 +1214,13 @@ class GCPProviderSecret(serializers.Serializer): resource_name = "provider-secrets" +class GCPServiceAccountProviderSecret(serializers.Serializer): + service_account_key = serializers.JSONField() + + class Meta: + resource_name = "provider-secrets" + + class KubernetesProviderSecret(serializers.Serializer): kubeconfig_content = serializers.CharField() From 60b5a79b275f00267b7295f34cabe0ae28e4d9f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20De=20la=20Torre=20Vico?= Date: Mon, 26 May 2025 17:52:59 +0200 Subject: [PATCH 027/111] fix(vpc): change the ServiceName from EC2 to VPC (#7840) --- .../vpc_endpoint_for_ec2_enabled.metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prowler/providers/aws/services/vpc/vpc_endpoint_for_ec2_enabled/vpc_endpoint_for_ec2_enabled.metadata.json b/prowler/providers/aws/services/vpc/vpc_endpoint_for_ec2_enabled/vpc_endpoint_for_ec2_enabled.metadata.json index 2a12db3c4e..3bd51b2656 100644 --- a/prowler/providers/aws/services/vpc/vpc_endpoint_for_ec2_enabled/vpc_endpoint_for_ec2_enabled.metadata.json +++ b/prowler/providers/aws/services/vpc/vpc_endpoint_for_ec2_enabled/vpc_endpoint_for_ec2_enabled.metadata.json @@ -3,7 +3,7 @@ "CheckID": "vpc_endpoint_for_ec2_enabled", "CheckTitle": "Amazon EC2 should be configured to use VPC endpoints that are created for the Amazon EC2 service.", "CheckType": [], - "ServiceName": "ec2", + "ServiceName": "vpc", "SubServiceName": "", "ResourceIdTemplate": "arn:partition:service:region:account-id:resource-id", "Severity": "medium", From 02ca82004f108717778880b66537ab4037cd559b Mon Sep 17 00:00:00 2001 From: Matt Keeler <19890779+mattkeeler@users.noreply.github.com> Date: Tue, 27 May 2025 03:26:51 -0400 Subject: [PATCH 028/111] fix(typo): minor language updates (#7843) --- .../sqlserver_auditing_enabled.py | 2 +- ...tra_identity_protection_sign_in_risk_enabled.py | 6 +++--- .../entra_identity_protection_user_risk_enabled.py | 14 +++++++------- .../compute_instance_login_user.py | 2 +- .../sqlserver_auditing_enabled_test.py | 2 +- ...a_identity_protection_user_risk_enabled_test.py | 10 +++++----- .../compute_instance_login_user_test_for_nhn.py | 2 +- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/prowler/providers/azure/services/sqlserver/sqlserver_auditing_enabled/sqlserver_auditing_enabled.py b/prowler/providers/azure/services/sqlserver/sqlserver_auditing_enabled/sqlserver_auditing_enabled.py index 5461cd45e4..f9c7237302 100644 --- a/prowler/providers/azure/services/sqlserver/sqlserver_auditing_enabled/sqlserver_auditing_enabled.py +++ b/prowler/providers/azure/services/sqlserver/sqlserver_auditing_enabled/sqlserver_auditing_enabled.py @@ -12,7 +12,7 @@ class sqlserver_auditing_enabled(Check): ) report.subscription = subscription report.status = "PASS" - report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} has a auditing policy configured." + report.status_extended = f"SQL Server {sql_server.name} from subscription {subscription} has an auditing policy configured." for auditing_policy in sql_server.auditing_policies: if auditing_policy.state == "Disabled": report.status = "FAIL" diff --git a/prowler/providers/m365/services/entra/entra_identity_protection_sign_in_risk_enabled/entra_identity_protection_sign_in_risk_enabled.py b/prowler/providers/m365/services/entra/entra_identity_protection_sign_in_risk_enabled/entra_identity_protection_sign_in_risk_enabled.py index c9878c8315..6b8db3230f 100644 --- a/prowler/providers/m365/services/entra/entra_identity_protection_sign_in_risk_enabled/entra_identity_protection_sign_in_risk_enabled.py +++ b/prowler/providers/m365/services/entra/entra_identity_protection_sign_in_risk_enabled/entra_identity_protection_sign_in_risk_enabled.py @@ -9,13 +9,13 @@ from prowler.providers.m365.services.entra.entra_service import ( class entra_identity_protection_sign_in_risk_enabled(Check): - """Check if at least one Conditional Access policy is a Identity Protection sign-in risk policy. + """Check if at least one Conditional Access policy is an Identity Protection sign-in risk policy. - This check ensures that at least one Conditional Access policy is a Identity Protection sign-in risk policy. + This check ensures that at least one Conditional Access policy is an Identity Protection sign-in risk policy. """ def execute(self) -> list[CheckReportM365]: - """Execute the check to ensure that at least one Conditional Access policy is a Identity Protection sign-in risk policy. + """Execute the check to ensure that at least one Conditional Access policy is an Identity Protection sign-in risk policy. Returns: list[CheckReportM365]: A list containing the results of the check. diff --git a/prowler/providers/m365/services/entra/entra_identity_protection_user_risk_enabled/entra_identity_protection_user_risk_enabled.py b/prowler/providers/m365/services/entra/entra_identity_protection_user_risk_enabled/entra_identity_protection_user_risk_enabled.py index 8864663e68..b27f6dcf3e 100644 --- a/prowler/providers/m365/services/entra/entra_identity_protection_user_risk_enabled/entra_identity_protection_user_risk_enabled.py +++ b/prowler/providers/m365/services/entra/entra_identity_protection_user_risk_enabled/entra_identity_protection_user_risk_enabled.py @@ -9,13 +9,13 @@ from prowler.providers.m365.services.entra.entra_service import ( class entra_identity_protection_user_risk_enabled(Check): - """Check if at least one Conditional Access policy is a Identity Protection user risk policy. + """Check if at least one Conditional Access policy is an Identity Protection user risk policy. - This check ensures that at least one Conditional Access policy is a Identity Protection user risk policy. + This check ensures that at least one Conditional Access policy is an Identity Protection user risk policy. """ def execute(self) -> list[CheckReportM365]: - """Execute the check to ensure that at least one Conditional Access policy is a Identity Protection user risk policy. + """Execute the check to ensure that at least one Conditional Access policy is an Identity Protection user risk policy. Returns: list[CheckReportM365]: A list containing the results of the check. @@ -29,7 +29,7 @@ class entra_identity_protection_user_risk_enabled(Check): resource_id="conditionalAccessPolicies", ) report.status = "FAIL" - report.status_extended = "No Conditional Access Policy is an user risk based Identity Protection Policy." + report.status_extended = "No Conditional Access Policy is a user risk based Identity Protection Policy." for policy in entra_client.conditional_access_policies.values(): if policy.state == ConditionalAccessPolicyState.DISABLED: @@ -62,13 +62,13 @@ class entra_identity_protection_user_risk_enabled(Check): ) if RiskLevel.HIGH not in policy.conditions.user_risk_levels: report.status = "FAIL" - report.status_extended = f"Conditional Access Policy '{policy.display_name}' is an user risk based Identity Protection Policy but does not protect against high risk potential account compromises." + report.status_extended = f"Conditional Access Policy '{policy.display_name}' is a user risk based Identity Protection Policy but does not protect against high risk potential account compromises." elif policy.state == ConditionalAccessPolicyState.ENABLED_FOR_REPORTING: report.status = "FAIL" - report.status_extended = f"Conditional Access Policy '{policy.display_name}' is an user risk based Identity Protection Policy and reports high risk potential account compromises, but does not protect against them." + report.status_extended = f"Conditional Access Policy '{policy.display_name}' is a user risk based Identity Protection Policy and reports high risk potential account compromises, but does not protect against them." else: report.status = "PASS" - report.status_extended = f"Conditional Access Policy '{policy.display_name}' is an user risk based Identity Protection Policy and does protect against high risk potential account compromises." + report.status_extended = f"Conditional Access Policy '{policy.display_name}' is a user risk based Identity Protection Policy and does protect against high risk potential account compromises." break findings.append(report) diff --git a/prowler/providers/nhn/services/compute/compute_instance_login_user/compute_instance_login_user.py b/prowler/providers/nhn/services/compute/compute_instance_login_user/compute_instance_login_user.py index 95f575f83c..8330dc4730 100644 --- a/prowler/providers/nhn/services/compute/compute_instance_login_user/compute_instance_login_user.py +++ b/prowler/providers/nhn/services/compute/compute_instance_login_user/compute_instance_login_user.py @@ -12,7 +12,7 @@ class compute_instance_login_user(Check): ) report.status = "PASS" report.status_extended = ( - f"VM Instance {instance.name} has a appropriate login user." + f"VM Instance {instance.name} has an appropriate login user." ) if instance.login_user: report.status = "FAIL" diff --git a/tests/providers/azure/services/sqlserver/sqlserver_auditing_enabled/sqlserver_auditing_enabled_test.py b/tests/providers/azure/services/sqlserver/sqlserver_auditing_enabled/sqlserver_auditing_enabled_test.py index 20c18ea998..e11294a778 100644 --- a/tests/providers/azure/services/sqlserver/sqlserver_auditing_enabled/sqlserver_auditing_enabled_test.py +++ b/tests/providers/azure/services/sqlserver/sqlserver_auditing_enabled/sqlserver_auditing_enabled_test.py @@ -122,7 +122,7 @@ class Test_sqlserver_auditing_enabled: assert result[0].status == "PASS" assert ( result[0].status_extended - == f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION_ID} has a auditing policy configured." + == f"SQL Server {sql_server_name} from subscription {AZURE_SUBSCRIPTION_ID} has an auditing policy configured." ) assert result[0].subscription == AZURE_SUBSCRIPTION_ID assert result[0].resource_name == sql_server_name diff --git a/tests/providers/m365/services/entra/entra_identity_protection_user_risk_enabled/entra_identity_protection_user_risk_enabled_test.py b/tests/providers/m365/services/entra/entra_identity_protection_user_risk_enabled/entra_identity_protection_user_risk_enabled_test.py index b251199af6..4336820faf 100644 --- a/tests/providers/m365/services/entra/entra_identity_protection_user_risk_enabled/entra_identity_protection_user_risk_enabled_test.py +++ b/tests/providers/m365/services/entra/entra_identity_protection_user_risk_enabled/entra_identity_protection_user_risk_enabled_test.py @@ -45,7 +45,7 @@ class Test_entra_identity_protection_user_risk_enabled: assert result[0].status == "FAIL" assert ( result[0].status_extended - == "No Conditional Access Policy is an user risk based Identity Protection Policy." + == "No Conditional Access Policy is a user risk based Identity Protection Policy." ) assert result[0].resource == {} assert result[0].resource_name == "Conditional Access Policies" @@ -119,7 +119,7 @@ class Test_entra_identity_protection_user_risk_enabled: assert result[0].status == "FAIL" assert ( result[0].status_extended - == "No Conditional Access Policy is an user risk based Identity Protection Policy." + == "No Conditional Access Policy is a user risk based Identity Protection Policy." ) assert result[0].resource == {} assert result[0].resource_name == "Conditional Access Policies" @@ -198,7 +198,7 @@ class Test_entra_identity_protection_user_risk_enabled: assert result[0].status == "FAIL" assert ( result[0].status_extended - == f"Conditional Access Policy '{display_name}' is an user risk based Identity Protection Policy but does not protect against high risk potential account compromises." + == f"Conditional Access Policy '{display_name}' is a user risk based Identity Protection Policy but does not protect against high risk potential account compromises." ) assert ( result[0].resource @@ -280,7 +280,7 @@ class Test_entra_identity_protection_user_risk_enabled: assert result[0].status == "FAIL" assert ( result[0].status_extended - == f"Conditional Access Policy '{display_name}' is an user risk based Identity Protection Policy and reports high risk potential account compromises, but does not protect against them." + == f"Conditional Access Policy '{display_name}' is a user risk based Identity Protection Policy and reports high risk potential account compromises, but does not protect against them." ) assert ( result[0].resource @@ -362,7 +362,7 @@ class Test_entra_identity_protection_user_risk_enabled: assert result[0].status == "PASS" assert ( result[0].status_extended - == f"Conditional Access Policy '{display_name}' is an user risk based Identity Protection Policy and does protect against high risk potential account compromises." + == f"Conditional Access Policy '{display_name}' is a user risk based Identity Protection Policy and does protect against high risk potential account compromises." ) assert ( result[0].resource diff --git a/tests/providers/nhn/services/compute/compute_instance_login_user/compute_instance_login_user_test_for_nhn.py b/tests/providers/nhn/services/compute/compute_instance_login_user/compute_instance_login_user_test_for_nhn.py index 5e545d87c3..635347a077 100644 --- a/tests/providers/nhn/services/compute/compute_instance_login_user/compute_instance_login_user_test_for_nhn.py +++ b/tests/providers/nhn/services/compute/compute_instance_login_user/compute_instance_login_user_test_for_nhn.py @@ -67,7 +67,7 @@ class Test_compute_instance_login_user: assert len(result) == 1 assert result[0].status == "PASS" - assert "has a appropriate login user" in result[0].status_extended + assert "has an appropriate login user" in result[0].status_extended assert result[0].resource_name == instance_name assert result[0].resource_id == instance_id From 66acfd8691d2f3173a53f7073048f527919b9d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Mart=C3=ADn?= Date: Tue, 27 May 2025 09:35:57 +0200 Subject: [PATCH 029/111] feat(aws): add NIS2 compliance framework (#7839) --- README.md | 2 +- dashboard/compliance/nis2_aws.py | 43 + prowler/CHANGELOG.md | 1 + prowler/compliance/aws/nis2_aws.json | 2104 ++++++++++++++++++++++++++ 4 files changed, 2149 insertions(+), 1 deletion(-) create mode 100644 dashboard/compliance/nis2_aws.py create mode 100644 prowler/compliance/aws/nis2_aws.json diff --git a/README.md b/README.md index 7c7c12d3fc..0fbf555e26 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ prowler dashboard | Provider | Checks | Services | [Compliance Frameworks](https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/compliance/) | [Categories](https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/misc/#categories) | |---|---|---|---|---| -| AWS | 564 | 82 | 34 | 10 | +| AWS | 564 | 82 | 35 | 10 | | GCP | 79 | 13 | 9 | 3 | | Azure | 140 | 18 | 8 | 3 | | Kubernetes | 83 | 7 | 5 | 7 | diff --git a/dashboard/compliance/nis2_aws.py b/dashboard/compliance/nis2_aws.py new file mode 100644 index 0000000000..8baac9a9a5 --- /dev/null +++ b/dashboard/compliance/nis2_aws.py @@ -0,0 +1,43 @@ +import warnings + +from dashboard.common_methods import get_section_containers_3_levels + +warnings.filterwarnings("ignore") + + +def get_table(data): + data["REQUIREMENTS_DESCRIPTION"] = ( + data["REQUIREMENTS_ID"] + " - " + data["REQUIREMENTS_DESCRIPTION"] + ) + + data["REQUIREMENTS_DESCRIPTION"] = data["REQUIREMENTS_DESCRIPTION"].apply( + lambda x: x[:150] + "..." if len(str(x)) > 150 else x + ) + + data["REQUIREMENTS_ATTRIBUTES_SECTION"] = data[ + "REQUIREMENTS_ATTRIBUTES_SECTION" + ].apply(lambda x: x[:80] + "..." if len(str(x)) > 80 else x) + + data["REQUIREMENTS_ATTRIBUTES_SUBSECTION"] = data[ + "REQUIREMENTS_ATTRIBUTES_SUBSECTION" + ].apply(lambda x: x[:150] + "..." if len(str(x)) > 150 else x) + + aux = data[ + [ + "REQUIREMENTS_DESCRIPTION", + "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", + "CHECKID", + "STATUS", + "REGION", + "ACCOUNTID", + "RESOURCEID", + ] + ] + + return get_section_containers_3_levels( + aux, + "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", + "REQUIREMENTS_DESCRIPTION", + ) diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 89cec16b9a..741a89f2aa 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -19,6 +19,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Add `repository_dependency_scanning_enabled` check for GitHub provider. [(#7771)](https://github.com/prowler-cloud/prowler/pull/7771) - Add `repository_secret_scanning_enabled` check for GitHub provider. [(#7759)](https://github.com/prowler-cloud/prowler/pull/7759) - Add `repository_default_branch_requires_codeowners_review` check for GitHub provider. [(#7753)](https://github.com/prowler-cloud/prowler/pull/7753) +- Add NIS 2 compliance framework for AWS. [(7839)](https://github.com/prowler-cloud/prowler/pull/7839) ### Fixed - Fix `m365_powershell test_credentials` to use sanitized credentials. [(#7761)](https://github.com/prowler-cloud/prowler/pull/7761) diff --git a/prowler/compliance/aws/nis2_aws.json b/prowler/compliance/aws/nis2_aws.json new file mode 100644 index 0000000000..a8c5aabce8 --- /dev/null +++ b/prowler/compliance/aws/nis2_aws.json @@ -0,0 +1,2104 @@ +{ + "Framework": "NIS2", + "Version": "", + "Provider": "AWS", + "Description": "ANNEX to the Commission Implementing Regulation laying down rules for the application of Directive (EU) 2022/2555 as regards technical and methodological requirements of cybersecurity risk-management measures and further specification of the cases in which an incident is considered to be significant with regard to DNS service providers, TLD name registries, cloud computing service providers, data centre service providers, content delivery network providers, managed service providers, managed security service providers, providers of online market places, of online search engines and of social networking services platforms, and trust service providers", + "Requirements": [ + { + "Id": "1.1.1.a", + "Description": "set out the relevant entities approach to managing the security of their network and information systems;", + "Checks": [ + "route53_domains_privacy_protection_enabled", + "secretsmanager_not_publicly_accessible", + "account_security_contact_information_is_registered" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.1 Policy on the security of network and information systems", + "Service": "generic" + } + ] + }, + { + "Id": "1.1.1.c", + "Description": "set out network and information security objectives;", + "Checks": [ + "route53_domains_privacy_protection_enabled" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.1 Policy on the security of network and information systems", + "Service": "route53" + } + ] + }, + { + "Id": "1.1.1.d", + "Description": "include a commitment to continual improvement of the security of network and information systems;", + "Checks": [ + "iam_password_policy_expires_passwords_within_90_days_or_less", + "iam_rotate_access_key_90_days", + "route53_domains_privacy_protection_enabled", + "secretsmanager_secret_rotated_periodically" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.1 Policy on the security of network and information systems", + "Service": "generic" + } + ] + }, + { + "Id": "1.1.1.h", + "Description": "list the documentation to be kept and the duration of retention of the documentation;", + "Checks": [ + "kinesis_stream_data_retention_period", + "s3_bucket_server_access_logging_enabled", + "cloudwatch_log_group_retention_policy_specific_days_enabled" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.1 Policy on the security of network and information systems", + "Service": "generic" + } + ] + }, + { + "Id": "1.1.2", + "Description": "The network and information system security policy shall be reviewed and, where appropriate, updated by management bodies at least annually and when significant incidents or significant changes to operations or risks occur. The result of the reviews shall be documented.", + "Checks": [ + "iam_password_policy_expires_passwords_within_90_days_or_less", + "iam_rotate_access_key_90_days", + "secretsmanager_secret_rotated_periodically" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.1 Policy on the security of network and information systems", + "Service": "generic" + } + ] + }, + { + "Id": "1.2.1", + "Description": "As part of their policy on the security of network and information systems referred to in point 1.1., the relevant entities shall lay down responsibilities and authorities for network and information system security and assign them to roles, allocate them according to the relevant entities needs, and communicate them to the management bodies.", + "Checks": [ + "iam_policy_attached_only_to_group_or_roles", + "iam_role_administratoraccess_policy", + "iam_policy_cloudshell_admin_not_attached" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.2 Roles, responsibilities and authorities", + "Service": "iam" + } + ] + }, + { + "Id": "1.2.3", + "Description": "At least one person shall report directly to the management bodies on matters of network and information system security.", + "Checks": [ + "account_security_contact_information_is_registered" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.2 Roles, responsibilities and authorities", + "Service": "account" + } + ] + }, + { + "Id": "1.2.4", + "Description": "Depending on the size of the relevant entities, network and information system security shall be covered by dedicated roles or duties carried out in addition to existing roles.", + "Checks": [ + "iam_securityaudit_role_created" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.2 Roles, responsibilities and authorities", + "Service": "iam" + } + ] + }, + { + "Id": "2.1.1", + "Description": "For the purpose of Article 21(2), point (a) of Directive (EU) 2022/2555, the relevant entities shall establish and maintain an appropriate risk management framework to identify and address the risks posed to the security of network and information systems. The relevant entities shall perform and document risk assessments and, based on the results, establish, implement and monitor a risk treatment plan. Risk assessment results and residual risks shall be accepted by management bodies or, where applicable, by persons who are accountable and have the authority to manage risks, provided that the relevant entities ensure adequate reporting to the management bodies.", + "Checks": [ + "ssmincidents_enabled_with_plans", + "iam_securityaudit_role_created", + "iam_support_role_created" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.2 Roles, responsibilities and authorities", + "Service": "generic" + } + ] + }, + { + "Id": "2.1.2.a", + "Description": "follow a risk management methodology;", + "Checks": [ + "ssmincidents_enabled_with_plans", + "iam_securityaudit_role_created", + "iam_support_role_created" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "generic" + } + ] + }, + { + "Id": "2.1.2.d", + "Description": "in line with an all-hazards approach, identify and document the risks posed to the security of network and information systems, in particular in relation to third parties and risks that could lead to disruptions in the availability, integrity, authenticity and confidentiality of the network and information systems, including the identification of single point of failures;", + "Checks": [ + "networkfirewall_multi_az", + "networkfirewall_policy_rule_group_associated", + "backup_plans_exist" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "generic" + } + ] + }, + { + "Id": "2.1.2.e", + "Description": "analyse the risks posed to the security of network and information systems, including threat, likelihood, impact, and risk level, taking into account cyber threat intelligence and vulnerabilities;", + "Checks": [ + "iam_securityaudit_role_created" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "iam" + } + ] + }, + { + "Id": "2.1.2.f", + "Description": "evaluate the identified risks based on the risk criteria;", + "Checks": [ + "iam_securityaudit_role_created", + "iam_policy_attached_only_to_group_or_roles", + "secretsmanager_secret_rotated_periodically" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "generic" + } + ] + }, + { + "Id": "2.1.2.g", + "Description": "identify and prioritise appropriate risk treatment options and measures;", + "Checks": [ + "guardduty_no_high_severity_findings", + "inspector2_active_findings_exist", + "accessanalyzer_enabled_without_findings" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "generic" + } + ] + }, + { + "Id": "2.1.2.h", + "Description": "continuously monitor the implementation of the risk treatment measures;", + "Checks": [ + "guardduty_no_high_severity_findings", + "inspector2_active_findings_exist", + "accessanalyzer_enabled_without_findings" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "generic" + } + ] + }, + { + "Id": "2.1.2.i", + "Description": "identify who is responsible for implementing the risk treatment measures and when they should be implemented;", + "Checks": [ + "ssmincidents_enabled_with_plans" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "ssm" + } + ] + }, + { + "Id": "2.1.2.j", + "Description": "document the chosen risk treatment measures in a risk treatment plan and the reasons justifying the acceptance of residual risks in a comprehensible manner.", + "Checks": [ + "backup_plans_exist", + "backup_reportplans_exist" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "backup" + } + ] + }, + { + "Id": "2.1.3", + "Description": "When identifying and prioritising appropriate risk treatment options and measures, the relevant entities shall take into account the risk assessment results, the results of the procedure to assess the effectiveness of cybersecurity risk-management measures, the cost of implementation in relation to the expected benefit, the asset classification referred to in point 12.1., and the business impact analysis referred to in point 4.1.3.", + "Checks": [ + "backup_recovery_point_encrypted" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "backup" + } + ] + }, + { + "Id": "2.1.4", + "Description": "The relevant entities shall review and, where appropriate, update the risk assessment results and the risk treatment plan at planned intervals and at least annually, and when significant changes to operations or risks or significant incidents occur.", + "Checks": [ + "secretsmanager_secret_rotated_periodically", + "iam_rotate_access_key_90_days" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "generic" + } + ] + }, + { + "Id": "2.2.1", + "Description": "The relevant entities shall regularly review the compliance with their policies on network and information system security, topic-specific policies, rules, and standards. The management bodies shall be informed of the status of network and information security on the basis of the compliance reviews by means of regular reporting.", + "Checks": [ + "networkfirewall_policy_rule_group_associated", + "account_security_contact_information_is_registered", + "iam_support_role_created", + "iam_securityaudit_role_created" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.2 Compliance monitoring", + "Service": "generic" + } + ] + }, + { + "Id": "2.2.3", + "Description": "The relevant entities shall perform the compliance monitoring at planned intervals and when significant incidents or significant changes to operations or risks occur.", + "Checks": [ + "secretsmanager_secret_rotated_periodically", + "account_maintain_current_contact_details", + "cloudwatch_log_metric_filter_aws_organizations_changes", + "cloudwatch_changes_to_network_acls_alarm_configured", + "cloudwatch_changes_to_network_gateways_alarm_configured", + "cloudwatch_changes_to_network_route_tables_alarm_configured", + "cloudwatch_changes_to_vpcs_alarm_configured", + "cloudwatch_log_metric_filter_and_alarm_for_aws_config_configuration_changes_enabled", + "cloudwatch_log_metric_filter_and_alarm_for_cloudtrail_configuration_changes_enabled", + "cloudwatch_log_metric_filter_aws_organizations_changes", + "cloudwatch_log_metric_filter_for_s3_bucket_policy_changes", + "cloudwatch_log_metric_filter_policy_changes", + "cloudwatch_log_metric_filter_security_group_changes" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.2 Compliance monitoring", + "Service": "generic" + } + ] + }, + { + "Id": "2.3.1", + "Description": "The relevant entities shall review independently their approach to managing network and information system security and its implementation including people, processes and technologies.", + "Checks": [ + "iam_rotate_access_key_90_days", + "iam_securityaudit_role_created", + "secretsmanager_secret_rotated_periodically", + "cloudwatch_log_metric_filter_root_usage" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.3 Independent review of information and network security", + "Service": "generic" + } + ] + }, + { + "Id": "3.1.1", + "Description": "For the purpose of Article 21(2), point (b) of Directive (EU) 2022/2555, the relevant entities shall establish and implement an incident handling policy laying down the roles, responsibilities, and procedures for detecting, analysing, containing or responding to, recovering from, documenting and reporting of incidents in a timely manner.", + "Checks": [ + "ssmincidents_enabled_with_plans" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.1 Incident handling policy", + "Service": "ssm" + } + ] + }, + { + "Id": "3.1.2.a", + "Description": "a categorisation system for incidents that is consistent with the event assessment and classification carried out pursuant to point 3.4.1.;", + "Checks": [ + "cloudtrail_multi_region_enabled_logging_management_events", + "ssmincidents_enabled_with_plans" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.1 Incident handling policy", + "Service": "generic" + } + ] + }, + { + "Id": "3.1.2.c", + "Description": "assignment of roles to detect and appropriately respond to incidents to competent employees;", + "Checks": [ + "iam_role_cross_service_confused_deputy_prevention", + "iam_securityaudit_role_created", + "ssmincidents_enabled_with_plans" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.1 Incident handling policy", + "Service": "generic" + } + ] + }, + { + "Id": "3.1.2.d", + "Description": "documents to be used in the course of incident detection and response such as incident response manuals, escalation charts, contact lists and templates.", + "Checks": [ + "ssmincidents_enabled_with_plans", + "ssm_documents_set_as_public", + "iam_support_role_created", + "account_security_contact_information_is_registered" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.1 Incident handling policy", + "Service": "generic" + } + ] + }, + { + "Id": "3.1.3", + "Description": "The roles, responsibilities and procedures laid down in the policy shall be tested and reviewed and, where appropriate, updated at planned intervals and after significant incidents or significant changes to operations or risks.", + "Checks": [ + "secretsmanager_secret_rotated_periodically", + "iam_rotate_access_key_90_days", + "iam_securityaudit_role_created" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.1 Incident handling policy", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.1", + "Description": "The relevant entities shall lay down procedures and use tools to monitor and log activities on their network and information systems to detect events that could be considered as incidents and respond accordingly to mitigate the impact.", + "Checks": [ + "cloudwatch_log_metric_filter_root_usage" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "cloudwatch" + } + ] + }, + { + "Id": "3.2.2", + "Description": "To the extent feasible, monitoring shall be automated and carried out either continuously or in periodic intervals, subject to business capabilities. The relevant entities shall implement their monitoring activities in a way which minimises false positives and false negatives.", + "Checks": [ + "cloudwatch_log_metric_filter_security_group_changes", + "cloudwatch_log_metric_filter_policy_changes", + "cloudwatch_log_metric_filter_aws_organizations_changes", + "cloudwatch_log_metric_filter_root_usage" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "cloudwatch" + } + ] + }, + { + "Id": "3.2.3.a", + "Description": "relevant outbound and inbound network traffic;", + "Checks": [ + "cloudfront_distributions_origin_traffic_encrypted", + "cloudwatch_changes_to_network_acls_alarm_configured", + "cloudwatch_changes_to_network_gateways_alarm_configured", + "cloudwatch_changes_to_network_route_tables_alarm_configured", + "ec2_launch_template_no_public_ip" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.b", + "Description": "creation, modification or deletion of users of the relevant entities network and information systems and extension of the permissions;", + "Checks": [ + "cloudwatch_log_metric_filter_policy_changes", + "cloudwatch_log_metric_filter_security_group_changes", + "cloudwatch_log_metric_filter_aws_organizations_changes", + "cloudwatch_log_metric_filter_for_s3_bucket_policy_changes" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "cloudwatch" + } + ] + }, + { + "Id": "3.2.3.c", + "Description": "access to systems and applications;", + "Checks": [ + "acm_certificates_transparency_logs_enabled", + "apigateway_restapi_logging_enabled", + "apigatewayv2_api_access_logging_enabled", + "appsync_field_level_logging_enabled", + "athena_workgroup_logging_enabled", + "awslambda_function_invoke_api_operations_cloudtrail_logging_enabled", + "bedrock_model_invocation_logging_enabled", + "bedrock_model_invocation_logs_encryption_enabled", + "cloudfront_distributions_logging_enabled", + "cloudtrail_cloudwatch_logging_enabled", + "cloudtrail_logs_s3_bucket_access_logging_enabled", + "cloudtrail_logs_s3_bucket_is_not_publicly_accessible", + "cloudtrail_multi_region_enabled_logging_management_events", + "cloudtrail_s3_dataevents_read_enabled", + "cloudtrail_s3_dataevents_write_enabled", + "cloudwatch_changes_to_network_acls_alarm_configured", + "cloudwatch_changes_to_network_gateways_alarm_configured", + "cloudwatch_changes_to_vpcs_alarm_configured", + "cloudwatch_log_group_not_publicly_accessible", + "cloudwatch_log_group_retention_policy_specific_days_enabled", + "cloudwatch_log_metric_filter_and_alarm_for_aws_config_configuration_changes_enabled", + "cloudwatch_log_metric_filter_and_alarm_for_cloudtrail_configuration_changes_enabled", + "cloudwatch_log_metric_filter_authentication_failures", + "cloudwatch_log_metric_filter_aws_organizations_changes", + "cloudwatch_log_metric_filter_disable_or_scheduled_deletion_of_kms_cmk", + "cloudwatch_log_metric_filter_for_s3_bucket_policy_changes", + "cloudwatch_log_metric_filter_policy_changes", + "cloudwatch_log_metric_filter_root_usage", + "cloudwatch_log_metric_filter_security_group_changes", + "cloudwatch_log_metric_filter_sign_in_without_mfa", + "cloudwatch_log_metric_filter_unauthorized_api_calls", + "codebuild_project_logging_enabled", + "codebuild_project_s3_logs_encrypted", + "datasync_task_logging_enabled", + "dms_replication_task_source_logging_enabled", + "dms_replication_task_target_logging_enabled", + "ec2_client_vpn_endpoint_connection_logging_enabled", + "ecs_task_definitions_logging_block_mode", + "ecs_task_definitions_logging_enabled", + "eks_control_plane_logging_all_types_enabled", + "elasticbeanstalk_environment_cloudwatch_logging_enabled", + "elb_logging_enabled", + "elbv2_logging_enabled", + "glue_etl_jobs_cloudwatch_logs_encryption_enabled", + "glue_etl_jobs_logging_enabled", + "guardduty_eks_audit_log_enabled", + "mq_broker_logging_enabled", + "neptune_cluster_integration_cloudwatch_logs", + "networkfirewall_logging_enabled", + "opensearch_service_domains_audit_logging_enabled", + "opensearch_service_domains_cloudwatch_logging_enabled", + "rds_cluster_integration_cloudwatch_logs", + "rds_instance_integration_cloudwatch_logs", + "redshift_cluster_audit_logging", + "route53_public_hosted_zones_cloudwatch_logging_enabled", + "s3_bucket_server_access_logging_enabled", + "stepfunctions_statemachine_logging_enabled", + "vpc_flow_logs_enabled", + "waf_global_webacl_logging_enabled", + "wafv2_webacl_logging_enabled", + "wafv2_webacl_rule_logging_enabled" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.d", + "Description": "authentication-related events;", + "Checks": [ + "cloudwatch_log_metric_filter_authentication_failures", + "cloudwatch_log_metric_filter_sign_in_without_mfa", + "directoryservice_supported_mfa_radius_enabled" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.e", + "Description": "all privileged access to systems and applications, and activities performed by administrative accounts;", + "Checks": [ + "accessanalyzer_enabled", + "cloudwatch_log_metric_filter_root_usage" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.f", + "Description": "access or changes to critical configuration and backup files;", + "Checks": [ + "cloudwatch_changes_to_network_acls_alarm_configured", + "cloudwatch_changes_to_network_gateways_alarm_configured", + "cloudwatch_changes_to_network_route_tables_alarm_configured", + "cloudwatch_changes_to_vpcs_alarm_configured", + "cloudwatch_log_metric_filter_and_alarm_for_aws_config_configuration_changes_enabled", + "cloudwatch_log_metric_filter_and_alarm_for_cloudtrail_configuration_changes_enabled", + "cloudwatch_log_metric_filter_aws_organizations_changes", + "cloudwatch_log_metric_filter_for_s3_bucket_policy_changes", + "cloudwatch_log_metric_filter_policy_changes", + "cloudwatch_log_metric_filter_security_group_changes" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.g", + "Description": "event logs and logs from security tools, such as antivirus, intrusion detection systems or firewalls;", + "Checks": [ + "cloudwatch_log_metric_filter_and_alarm_for_aws_config_configuration_changes_enabled", + "cloudwatch_log_metric_filter_and_alarm_for_cloudtrail_configuration_changes_enabled", + "cloudwatch_log_metric_filter_authentication_failures", + "cloudwatch_log_metric_filter_aws_organizations_changes", + "cloudwatch_log_metric_filter_disable_or_scheduled_deletion_of_kms_cmk", + "cloudwatch_log_metric_filter_for_s3_bucket_policy_changes", + "cloudwatch_log_metric_filter_policy_changes", + "cloudwatch_log_metric_filter_root_usage", + "cloudwatch_log_metric_filter_security_group_changes", + "cloudwatch_log_metric_filter_sign_in_without_mfa", + "cloudwatch_log_metric_filter_unauthorized_api_calls", + "cloudtrail_s3_dataevents_read_enabled", + "cloudtrail_s3_dataevents_write_enabled", + "cloudtrail_cloudwatch_logging_enabled" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.h", + "Description": "use of system resources, as well as their performance;", + "Checks": [ + "rds_instance_enhanced_monitoring_enabled", + "ec2_instance_detailed_monitoring_enabled", + "guardduty_eks_runtime_monitoring_enabled", + "kafka_cluster_enhanced_monitoring_enabled" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.4", + "Description": "The logs shall be regularly reviewed for any unusual or unwanted trends. Where appropriate, the relevant entities shall lay down appropriate values for alarm thresholds. If the laid down values for alarm threshold are exceeded, an alarm shall be triggered, where appropriate, automatically. The relevant entities shall ensure that, in case of an alarm, a qualified and appropriate response is initiated in a timely manner.", + "Checks": [ + "cloudwatch_changes_to_network_gateways_alarm_configured", + "cloudwatch_changes_to_vpcs_alarm_configured", + "cloudwatch_log_metric_filter_and_alarm_for_cloudtrail_configuration_changes_enabled", + "cloudwatch_log_metric_filter_unauthorized_api_calls", + "cloudwatch_changes_to_network_route_tables_alarm_configured" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "cloudwatch" + } + ] + }, + { + "Id": "3.2.5", + "Description": "The relevant entities shall maintain and back up logs for a predefined period and shall protect them from unauthorised access or changes.", + "Checks": [ + "cloudwatch_log_group_retention_policy_specific_days_enabled" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "cloudwatch" + } + ] + }, + { + "Id": "3.4.1", + "Description": "The relevant entities shall assess suspicious events to determine whether they constitute incidents and, if so, determine their nature and severity.", + "Checks": [ + "cloudtrail_threat_detection_privilege_escalation", + "cloudtrail_threat_detection_enumeration", + "cloudtrail_threat_detection_llm_jacking" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.4 Event assessment and classification", + "Service": "cloudtrail" + } + ] + }, + { + "Id": "3.4.2.c", + "Description": "review the appropriate logs for the purposes of event assessment and classification;", + "Checks": [ + "cloudtrail_multi_region_enabled_logging_management_events", + "cloudtrail_s3_dataevents_read_enabled", + "cloudtrail_cloudwatch_logging_enabled", + "cloudwatch_log_metric_filter_unauthorized_api_calls" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.4 Event assessment and classification", + "Service": "cloudwatch" + } + ] + }, + { + "Id": "3.4.2.d", + "Description": "put in place a process for log correlation and analysis, and reassess and reclassify events in case of new information becoming available or after analysis of previously available information.", + "Checks": [ + "cloudtrail_log_file_validation_enabled" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.4 Event assessment and classification", + "Service": "generic" + } + ] + }, + { + "Id": "3.5.1", + "Description": "The relevant entities shall respond to incidents in accordance with documented procedures and in a timely manner.", + "Checks": [ + "ssmincidents_enabled_with_plans" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.5 Incident response", + "Service": "ssm" + } + ] + }, + { + "Id": "3.5.3.a", + "Description": "with the Computer Security Incident Response Teams (CSIRTs) or, where applicable, the competent authorities, related to incident notification;", + "Checks": [ + "route53_domains_privacy_protection_enabled", + "account_security_contact_information_is_registered", + "account_maintain_current_contact_details", + "ec2_instance_secrets_user_data", + "secretsmanager_not_publicly_accessible" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.5 Incident response", + "Service": "generic" + } + ] + }, + { + "Id": "3.5.4", + "Description": "The relevant entities shall log incident response activities in accordance with the procedures referred to in point 3.2.1., and record evidence.", + "Checks": [ + "cloudwatch_log_metric_filter_and_alarm_for_aws_config_configuration_changes_enabled", + "cloudwatch_log_metric_filter_and_alarm_for_cloudtrail_configuration_changes_enabled", + "cloudwatch_log_metric_filter_authentication_failures", + "cloudwatch_log_metric_filter_aws_organizations_changes", + "cloudwatch_log_metric_filter_disable_or_scheduled_deletion_of_kms_cmk", + "cloudwatch_log_metric_filter_for_s3_bucket_policy_changes", + "cloudwatch_log_metric_filter_policy_changes", + "cloudwatch_log_metric_filter_root_usage", + "cloudwatch_log_metric_filter_security_group_changes", + "cloudwatch_log_metric_filter_sign_in_without_mfa", + "cloudwatch_log_metric_filter_unauthorized_api_calls" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.5 Incident response", + "Service": "cloudwatch" + } + ] + }, + { + "Id": "3.6.1", + "Description": "Where appropriate, the relevant entities shall carry out post-incident reviews after recovery from incidents. The post-incident reviews shall identify, where possible, the root cause of the incident and result in documented lessons learned to reduce the occurrence and consequences of future incidents.", + "Checks": [ + "ssmincidents_enabled_with_plans" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.6 Post-incident reviews", + "Service": "ssm" + } + ] + }, + { + "Id": "3.6.2", + "Description": "The relevant entities shall ensure that post-incident reviews contribute to improving their approach to network and information security, to risk treatment measures, and to incident handling, detection and response procedures.", + "Checks": [ + "ssmincidents_enabled_with_plans", + "backup_plans_exist", + "backup_recovery_point_encrypted", + "backup_reportplans_exist", + "backup_vaults_encrypted", + "backup_vaults_exist", + "documentdb_cluster_backup_enabled", + "dynamodb_table_protected_by_backup_plan", + "ec2_ebs_volume_protected_by_backup_plan", + "efs_have_backup_enabled", + "elasticache_redis_cluster_backup_enabled", + "fsx_file_system_copy_tags_to_backups_enabled", + "neptune_cluster_backup_enabled", + "rds_cluster_protected_by_backup_plan", + "rds_instance_backup_enabled", + "rds_instance_protected_by_backup_plan" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.6 Post-incident reviews", + "Service": "generic" + } + ] + }, + { + "Id": "3.6.3", + "Description": "The relevant entities shall review at planned intervals if incidents led to post-incident reviews.", + "Checks": [ + "ssmincidents_enabled_with_plans" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.6 Post-incident reviews", + "Service": "generic" + } + ] + }, + { + "Id": "4.1.1", + "Description": "For the purpose of Article 21(2), point (c) of Directive (EU) 2022/2555, the relevant entities shall lay down and maintain a business continuity and disaster recovery plan to apply in the case of incidents.", + "Checks": [ + "backup_recovery_point_encrypted", + "backup_reportplans_exist", + "backup_plans_exist", + "rds_instance_backup_enabled", + "rds_instance_protected_by_backup_plan", + "rds_cluster_protected_by_backup_plan" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.1 Business continuity and disaster recovery plan", + "Service": "generic" + } + ] + }, + { + "Id": "4.1.2.f", + "Description": "recovery plans for specific operations, including recovery objectives;", + "Checks": [ + "backup_plans_exist", + "backup_reportplans_exist", + "backup_vaults_exist" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.1 Business continuity and disaster recovery plan", + "Service": "backup" + } + ] + }, + { + "Id": "4.1.2.g", + "Description": "required resources, including backups and redundancies;", + "Checks": [ + "backup_plans_exist", + "backup_recovery_point_encrypted", + "backup_reportplans_exist", + "backup_vaults_encrypted", + "backup_vaults_exist", + "documentdb_cluster_backup_enabled", + "dynamodb_table_protected_by_backup_plan", + "ec2_ebs_volume_protected_by_backup_plan", + "efs_have_backup_enabled", + "elasticache_redis_cluster_backup_enabled", + "fsx_file_system_copy_tags_to_backups_enabled", + "neptune_cluster_backup_enabled", + "rds_cluster_protected_by_backup_plan", + "rds_instance_backup_enabled", + "rds_instance_protected_by_backup_plan" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.1 Business continuity and disaster recovery plan", + "Service": "generic" + } + ] + }, + { + "Id": "4.1.3", + "Description": "The relevant entities shall carry out a business impact analysis to assess the potential impact of severe disruptions to their business operations and shall, based on the results of the business impact analysis, establish continuity requirements for the network and information systems.", + "Checks": [ + "backup_plans_exist" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.1 Business continuity and disaster recovery plan", + "Service": "backup" + } + ] + }, + { + "Id": "4.1.4", + "Description": "The business continuity plan and disaster recovery plan shall be tested, reviewed and, where appropriate, updated at planned intervals and following significant incidents or significant changes to operations or risks. The relevant entities shall ensure that the plans incorporate lessons learnt from such tests.", + "Checks": [ + "backup_plans_exist", + "backup_reportplans_exist", + "rds_cluster_protected_by_backup_plan", + "rds_instance_protected_by_backup_plan", + "dynamodb_table_protected_by_backup_plan" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.1 Business continuity and disaster recovery plan", + "Service": "generic" + } + ] + }, + { + "Id": "4.2.2.b", + "Description": "assurance that backup copies are complete and accurate, including configuration data and data stored in cloud computing service environment;", + "Checks": [ + "backup_vaults_encrypted", + "backup_vaults_exist", + "backup_recovery_point_encrypted", + "backup_plans_exist" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.2 Backup and redundancy management", + "Service": "backup" + } + ] + }, + { + "Id": "4.2.2.e", + "Description": "restoring data from backup copies;", + "Checks": [ + "rds_cluster_backtrack_enabled", + "rds_instance_backup_enabled", + "backup_vaults_exist" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.2 Backup and redundancy management", + "Service": "generic" + } + ] + }, + { + "Id": "4.2.2.f", + "Description": "retention periods based on business and regulatory requirements.", + "Checks": [ + "kinesis_stream_data_retention_period", + "cloudwatch_log_group_retention_policy_specific_days_enabled" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.2 Backup and redundancy management", + "Service": "generic" + } + ] + }, + { + "Id": "4.3.1", + "Description": "The relevant entities shall put in place a process for crisis management.", + "Checks": [ + "ssmincidents_enabled_with_plans" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.3 Crisis management", + "Service": "ssm" + } + ] + }, + { + "Id": "4.3.2.a", + "Description": "roles and responsibilities for personnel and, where appropriate, suppliers and service providers, specifying the allocation of roles in crisis situations, including specific steps to follow;", + "Checks": [ + "iam_support_role_created" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.3 Crisis management", + "Service": "iam" + } + ] + }, + { + "Id": "4.3.2.c", + "Description": "application of appropriate measures to ensure the maintenance of network and information system security in crisis situations.", + "Checks": [ + "iam_no_expired_server_certificates_stored", + "route53_domains_privacy_protection_enabled", + "backup_vaults_encrypted" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.3 Crisis management", + "Service": "generic" + } + ] + }, + { + "Id": "5.1.2.a", + "Description": "the cybersecurity practices of the suppliers and service providers, including their secure development procedures;", + "Checks": [ + "codebuild_report_group_export_encrypted", + "codebuild_project_s3_logs_encrypted", + "codebuild_project_source_repo_url_no_sensitive_credentials", + "cloudfront_distributions_origin_traffic_encrypted", + "bedrock_model_invocation_logs_encryption_enabled" + ], + "Attributes": [ + { + "Section": "5 SUPPLY CHAIN SECURITY (ARTICLE 21(2), POINT (D), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "5.1 Supply chain security policy", + "Service": "generic" + } + ] + }, + { + "Id": "5.1.4.f", + "Description": "an obligation on suppliers and service providers to handle vulnerabilities that present a risk to the security of the network and information systems of the relevant entities;", + "Checks": [ + "guardduty_no_high_severity_findings", + "inspector2_active_findings_exist" + ], + "Attributes": [ + { + "Section": "5 SUPPLY CHAIN SECURITY (ARTICLE 21(2), POINT (D), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "5.1 Supply chain security policy", + "Service": "generic" + } + ] + }, + { + "Id": "5.1.7.b", + "Description": "review incidents related to ICT products and ICT services from suppliers and service providers;", + "Checks": [ + "ssmincidents_enabled_with_plans", + "iam_support_role_created", + "account_security_contact_information_is_registered", + "account_maintain_current_contact_details" + ], + "Attributes": [ + { + "Section": "5 SUPPLY CHAIN SECURITY (ARTICLE 21(2), POINT (D), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "5.1 Supply chain security policy", + "Service": "generic" + } + ] + }, + { + "Id": "5.1.7.d", + "Description": "analyse the risks presented by changes related to ICT products and ICT services from suppliers and service providers and, where appropriate, take mitigating measures in a timely manner.", + "Checks": [ + "guardduty_no_high_severity_findings", + "inspector2_active_findings_exist" + ], + "Attributes": [ + { + "Section": "5 SUPPLY CHAIN SECURITY (ARTICLE 21(2), POINT (D), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "5.1 Supply chain security policy", + "Service": "generic" + } + ] + }, + { + "Id": "6.1.2.b", + "Description": "requirements regarding security updates throughout the entire lifetime of the ICT services or ICT products, or replacement after the end of the support period;", + "Checks": [ + "elasticbeanstalk_environment_managed_updates_enabled", + "opensearch_service_domains_updated_to_the_latest_service_software_version" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.1 Security in acquisition of ICT services or ICT products", + "Service": "generic" + } + ] + }, + { + "Id": "6.2.1", + "Description": "Before developing a network and information system, including software, the relevant entities shall lay down rules for the secure development of network and information systems and apply them when developing network and information systems in-house, or when outsourcing the development of network and information systems. The rules shall cover all development phases, including specification, design, development, implementation and testing.", + "Checks": [ + "glue_development_endpoints_cloudwatch_logs_encryption_enabled", + "glue_development_endpoints_job_bookmark_encryption_enabled", + "glue_development_endpoints_s3_encryption_enabled", + "sagemaker_models_network_isolation_enabled", + "ecs_task_definitions_host_networking_mode_users", + "eks_cluster_network_policy_enabled", + "networkfirewall_deletion_protection", + "networkfirewall_in_all_vpc", + "networkfirewall_policy_default_action_fragmented_packets", + "networkfirewall_policy_default_action_full_packets" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.2 Secure development life cycle", + "Service": "generic" + } + ] + }, + { + "Id": "6.2.2.a", + "Description": "carry out an analysis of security requirements at the specification and design phases of any development or acquisition project undertaken by the relevant entities or on behalf of those entities;", + "Checks": [ + "iam_securityaudit_role_created" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.2 Secure development life cycle", + "Service": "generic" + } + ] + }, + { + "Id": "6.2.2.b", + "Description": "apply principles for engineering secure systems and secure coding principles to any information system development activities such as promoting cybersecurity-by-design, zero-trust architectures;", + "Checks": [ + "codebuild_report_group_export_encrypted", + "codebuild_project_logging_enabled", + "codebuild_project_no_secrets_in_variables", + "codebuild_project_older_90_days", + "codebuild_project_s3_logs_encrypted", + "codebuild_project_source_repo_url_no_sensitive_credentials", + "codebuild_project_user_controlled_buildspec" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.2 Secure development life cycle", + "Service": "generic" + } + ] + }, + { + "Id": "6.2.2.c", + "Description": "lay down security requirements regarding development environments;", + "Checks": [ + "codebuild_project_no_secrets_in_variables", + "codebuild_project_s3_logs_encrypted", + "codebuild_report_group_export_encrypted", + "codebuild_project_source_repo_url_no_sensitive_credentials", + "glue_development_endpoints_job_bookmark_encryption_enabled" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.2 Secure development life cycle", + "Service": "generic" + } + ] + }, + { + "Id": "6.2.4", + "Description": "The relevant entities shall review and, where necessary, update their secure development rules at planned intervals.", + "Checks": [ + "secretsmanager_secret_rotated_periodically", + "iam_rotate_access_key_90_days" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.2 Secure development life cycle", + "Service": "generic" + } + ] + }, + { + "Id": "6.4.1", + "Description": "The relevant entities shall apply change management procedures to control changes of network and information systems. Where applicable, the procedures shall be consistent with the relevant entities general policies concerning change management.", + "Checks": [ + "cloudwatch_changes_to_network_route_tables_alarm_configured", + "cloudwatch_changes_to_network_acls_alarm_configured", + "cloudwatch_changes_to_network_gateways_alarm_configured", + "cloudwatch_changes_to_vpcs_alarm_configured" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.4 Change management, repairs and maintenance", + "Service": "cloudwatch" + } + ] + }, + { + "Id": "6.6.1.a", + "Description": "security patches are applied within a reasonable time after they become available;", + "Checks": [ + "ssm_managed_compliant_patching", + "memorydb_cluster_auto_minor_version_upgrades", + "elasticbeanstalk_environment_managed_updates_enabled", + "elasticache_redis_cluster_auto_minor_version_upgrades", + "glue_development_endpoints_job_bookmark_encryption_enabled" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.6 Security patch management", + "Service": "generic" + } + ] + }, + { + "Id": "6.7.2.b", + "Description": "determine and apply controls to protect the relevant entities internal network domains from unauthorised access;", + "Checks": [ + "networkfirewall_deletion_protection", + "networkfirewall_in_all_vpc", + "networkfirewall_logging_enabled", + "networkfirewall_multi_az", + "networkfirewall_policy_default_action_fragmented_packets", + "networkfirewall_policy_default_action_full_packets", + "networkfirewall_policy_rule_group_associated" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.7 Network security", + "Service": "networkfirewall" + } + ] + }, + { + "Id": "6.7.2.e", + "Description": "not use systems used for administration of the security policy implementation for other purposes;", + "Checks": [ + "iam_inline_policy_no_administrative_privileges", + "iam_avoid_root_usage" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.7 Network security", + "Service": "iam" + } + ] + }, + { + "Id": "6.7.2.g", + "Description": "where appropriate, exclusively allow access to the relevant entities network and information systems by devices authorised by those entities;", + "Checks": [ + "ec2_instance_port_cassandra_exposed_to_internet", + "ec2_instance_port_cifs_exposed_to_internet", + "ec2_instance_port_elasticsearch_kibana_exposed_to_internet", + "ec2_instance_port_ftp_exposed_to_internet", + "ec2_instance_port_kafka_exposed_to_internet", + "ec2_instance_port_kerberos_exposed_to_internet", + "ec2_instance_port_ldap_exposed_to_internet", + "ec2_instance_port_memcached_exposed_to_internet", + "ec2_instance_port_mongodb_exposed_to_internet", + "ec2_instance_port_mysql_exposed_to_internet", + "ec2_instance_port_oracle_exposed_to_internet", + "ec2_instance_port_postgresql_exposed_to_internet", + "ec2_instance_port_rdp_exposed_to_internet", + "ec2_instance_port_redis_exposed_to_internet", + "ec2_instance_port_sqlserver_exposed_to_internet", + "ec2_instance_port_ssh_exposed_to_internet", + "ec2_instance_port_telnet_exposed_to_internet", + "ec2_networkacl_allow_ingress_tcp_port_22", + "ec2_networkacl_allow_ingress_tcp_port_3389" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.7 Network security", + "Service": "ec2" + } + ] + }, + { + "Id": "6.7.2.i", + "Description": "establish communication between distinct systems only through trusted channels that are isolated using logical, cryptographic or physical separation from other communication channels and provide assured identification of their end points and protection of the channel data from modification or disclosure;", + "Checks": [ + "kafka_cluster_in_transit_encryption_enabled", + "kafka_connector_in_transit_encryption_enabled", + "dynamodb_accelerator_cluster_in_transit_encryption_enabled", + "redshift_cluster_in_transit_encryption_enabled", + "transfer_server_in_transit_encryption_enabled", + "elbv2_nlb_tls_termination_enabled", + "kafka_cluster_mutual_tls_authentication_enabled", + "autoscaling_group_launch_configuration_requires_imdsv2", + "ec2_instance_account_imdsv2_enabled", + "ec2_instance_imdsv2_enabled", + "ec2_launch_template_imdsv2_required" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.7 Network security", + "Service": "generic" + } + ] + }, + { + "Id": "6.7.2.l", + "Description": "apply best practices for the security of the DNS, and for Internet routing security and routing hygiene of traffic originating from and destined to the network.", + "Checks": [ + "route53_domains_privacy_protection_enabled", + "route53_dangling_ip_subdomain_takeover", + "elbv2_nlb_tls_termination_enabled", + "kafka_cluster_mutual_tls_authentication_enabled" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.7 Network security", + "Service": "generic" + } + ] + }, + { + "Id": "6.8.2.a", + "Description": "consider the functional, logical and physical relationship, including location, between trustworthy systems and services;", + "Checks": [ + "iam_role_cross_service_confused_deputy_prevention", + "vpc_endpoint_services_allowed_principals_trust_boundaries", + "vpc_endpoint_connections_trust_boundaries" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.8 Network segmentation", + "Service": "generic" + } + ] + }, + { + "Id": "6.9.2", + "Description": "For that purpose, the relevant entities shall in particular implement measures that detect or prevent the use of malicious or unauthorised software. The relevant entities shall, where appropriate, ensure that their network and information systems are equipped with detection and response software, which is updated regularly in accordance with the risk assessment carried out pursuant to point 2.1 and the contractual agreements with the providers.", + "Checks": [ + "cloudtrail_threat_detection_privilege_escalation", + "cloudtrail_threat_detection_enumeration", + "cloudtrail_threat_detection_llm_jacking" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.9 Protection against malicious and unauthorised software", + "Service": "cloudtrail" + } + ] + }, + { + "Id": "7.2.b", + "Description": "the methods for monitoring, measurement, analysis and evaluation, as applicable, to ensure valid results;", + "Checks": [ + "cloudwatch_log_metric_filter_and_alarm_for_aws_config_configuration_changes_enabled", + "cloudwatch_log_metric_filter_and_alarm_for_cloudtrail_configuration_changes_enabled", + "cloudwatch_log_metric_filter_authentication_failures", + "cloudwatch_log_metric_filter_aws_organizations_changes", + "cloudwatch_log_metric_filter_disable_or_scheduled_deletion_of_kms_cmk", + "cloudwatch_log_metric_filter_for_s3_bucket_policy_changes", + "cloudwatch_log_metric_filter_policy_changes", + "cloudwatch_log_metric_filter_root_usage" + ], + "Attributes": [ + { + "Section": "7 POLICIES AND PROCEDURES TO ASSESS THE EFFECTIVENESS OF CYBERSECURITY RISK-MANAGEMENT MEASURES (ARTICLE 21(2), POINT (F), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "7.2 The policy and procedures referred to in point 7.1. shall take into account results of the risk assessment pursuant to point 2.1. and past significant incidents. The relevant entities shall determine:", + "Service": "cloudwatch" + } + ] + }, + { + "Id": "7.2.d", + "Description": "who is responsible for monitoring and measuring the effectiveness of the cybersecurity risk-management measures;", + "Checks": [ + "iam_securityaudit_role_created" + ], + "Attributes": [ + { + "Section": "7 POLICIES AND PROCEDURES TO ASSESS THE EFFECTIVENESS OF CYBERSECURITY RISK-MANAGEMENT MEASURES (ARTICLE 21(2), POINT (F), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "7.2 The policy and procedures referred to in point 7.1. shall take into account results of the risk assessment pursuant to point 2.1. and past significant incidents. The relevant entities shall determine:", + "Service": "iam" + } + ] + }, + { + "Id": "7.2.e", + "Description": "when the results from monitoring and measurement are to be analysed and evaluated;", + "Checks": [ + "iam_securityaudit_role_created" + ], + "Attributes": [ + { + "Section": "7 POLICIES AND PROCEDURES TO ASSESS THE EFFECTIVENESS OF CYBERSECURITY RISK-MANAGEMENT MEASURES (ARTICLE 21(2), POINT (F), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "7.2 The policy and procedures referred to in point 7.1. shall take into account results of the risk assessment pursuant to point 2.1. and past significant incidents. The relevant entities shall determine:", + "Service": "iam" + } + ] + }, + { + "Id": "7.2.f", + "Description": "who has to analyse and evaluate these results.", + "Checks": [ + "iam_securityaudit_role_created" + ], + "Attributes": [ + { + "Section": "7 POLICIES AND PROCEDURES TO ASSESS THE EFFECTIVENESS OF CYBERSECURITY RISK-MANAGEMENT MEASURES (ARTICLE 21(2), POINT (F), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "7.2 The policy and procedures referred to in point 7.1. shall take into account results of the risk assessment pursuant to point 2.1. and past significant incidents. The relevant entities shall determine:", + "Service": "iam" + } + ] + }, + { + "Id": "9.2.a", + "Description": "in accordance with the relevant entities classification of assets, the type, strength and quality of the cryptographic measures required to protect the relevant entities assets, including data at rest and data in transit;", + "Checks": [ + "apigateway_restapi_cache_encrypted", + "athena_workgroup_encryption", + "backup_recovery_point_encrypted", + "cloudtrail_kms_encryption_enabled", + "codebuild_project_s3_logs_encrypted", + "codebuild_report_group_export_encrypted", + "dynamodb_accelerator_cluster_encryption_enabled", + "dms_endpoint_redis_in_transit_encryption_enabled", + "dynamodb_accelerator_cluster_in_transit_encryption_enabled", + "elasticache_redis_cluster_in_transit_encryption_enabled", + "kafka_connector_in_transit_encryption_enabled", + "redshift_cluster_in_transit_encryption_enabled", + "transfer_server_in_transit_encryption_enabled" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "generic" + } + ] + }, + { + "Id": "9.2.c", + "Description": "the relevant entities approach to key management, including, where appropriate, methods for the following:", + "Checks": [ + "iam_rotate_access_key_90_days", + "secretsmanager_secret_rotated_periodically", + "kms_key_not_publicly_accessible", + "iam_no_root_access_key", + "iam_user_no_setup_initial_access_key", + "iam_user_two_active_access_key" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "generic" + } + ] + }, + { + "Id": "9.2.c.i", + "Description": "generating different keys for cryptographic systems and applications;", + "Checks": [ + "acm_certificates_with_secure_key_algorithms" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "acm" + } + ] + }, + { + "Id": "9.2.c.ii", + "Description": "issuing and obtaining public key certificates;", + "Checks": [ + "acm_certificates_with_secure_key_algorithms", + "acm_certificates_transparency_logs_enabled", + "route53_domains_privacy_protection_enabled", + "iam_no_expired_server_certificates_stored" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "generic" + } + ] + }, + { + "Id": "9.2.c.iii", + "Description": "distributing keys to intended entities, including how to activate keys when received;", + "Checks": [ + "iam_user_no_setup_initial_access_key" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "iam" + } + ] + }, + { + "Id": "9.2.c.iv", + "Description": "storing keys, including how authorised users obtain access to keys;", + "Checks": [ + "secretsmanager_automatic_rotation_enabled", + "secretsmanager_not_publicly_accessible", + "secretsmanager_secret_rotated_periodically", + "secretsmanager_secret_unused" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "secretsmanager" + } + ] + }, + { + "Id": "9.2.c.v", + "Description": "changing or updating keys, including rules on when and how to change keys;", + "Checks": [ + "iam_password_policy_expires_passwords_within_90_days_or_less", + "iam_password_policy_lowercase", + "iam_password_policy_minimum_length_14", + "iam_password_policy_number", + "iam_password_policy_reuse_24", + "iam_password_policy_symbol", + "iam_password_policy_uppercase" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "iam" + } + ] + }, + { + "Id": "9.2.c.vi", + "Description": "backing up or archiving keys;", + "Checks": [ + "backup_vaults_encrypted" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "backup" + } + ] + }, + { + "Id": "9.2.c.vii", + "Description": "logging and auditing of key management-related activities;", + "Checks": [ + "cloudwatch_log_metric_filter_root_usage", + "cloudwatch_log_metric_filter_sign_in_without_mfa" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "cloudwatch" + } + ] + }, + { + "Id": "9.2.c.xii", + "Description": "setting activation and deactivation dates for keys ensuring that the keys can only be used for the specified period of time according to the organization's rules on key management.", + "Checks": [ + "iam_rotate_access_key_90_days" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "iam" + } + ] + }, + { + "Id": "11.1.1", + "Description": "For the purpose of Article 21(2), point (i) of Directive (EU) 2022/2555, the relevant entities shall establish, document and implement logical and physical access control policies for the access to their network and information systems, based on business requirements as well as network and information system security requirements.", + "Checks": [ + "accessanalyzer_enabled", + "apigateway_restapi_client_certificate_enabled", + "cloudtrail_logs_s3_bucket_access_logging_enabled", + "cognito_identity_pool_guest_access_disabled", + "ec2_ebs_snapshot_account_block_public_access", + "ec2_instance_profile_attached", + "ecs_task_definitions_containers_readonly_access", + "efs_access_point_enforce_root_directory", + "efs_access_point_enforce_user_identity", + "efs_not_publicly_accessible" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.1 Access control policy", + "Service": "generic" + } + ] + }, + { + "Id": "11.1.2.c", + "Description": "ensure that access is only granted to users that have been adequately authenticated.", + "Checks": [ + "apigatewayv2_api_access_logging_enabled", + "cognito_identity_pool_guest_access_disabled", + "iam_user_mfa_enabled_console_access", + "iam_administrator_access_with_mfa" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.1 Access control policy", + "Service": "generic" + } + ] + }, + { + "Id": "11.2.1", + "Description": "The relevant entities shall provide, modify, remove and document access rights to network and information systems in accordance with the access control policy referred to in point 11.1.", + "Checks": [ + "accessanalyzer_enabled" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.2 Management of access rights", + "Service": "accessanalyzer" + } + ] + }, + { + "Id": "11.2.2.a", + "Description": "assign and revoke access rights based on the principles of need-to-know, least privilege and separation of duties;", + "Checks": [ + "iam_policy_attached_only_to_group_or_roles", + "iam_policy_allows_privilege_escalation", + "iam_policy_no_full_access_to_cloudtrail", + "iam_policy_no_full_access_to_kms" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.2 Management of access rights", + "Service": "iam" + } + ] + }, + { + "Id": "11.2.2.d", + "Description": "ensure that access rights appropriately address third-party access, such as visitors, suppliers and service providers, in particular by limiting access rights in scope and in duration;", + "Checks": [ + "apigateway_restapi_client_certificate_enabled", + "cognito_identity_pool_guest_access_disabled", + "ec2_ebs_snapshot_account_block_public_access", + "ec2_instance_profile_attached", + "ecs_task_definitions_containers_readonly_access", + "efs_access_point_enforce_root_directory" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.2 Management of access rights", + "Service": "generic" + } + ] + }, + { + "Id": "11.2.2.e", + "Description": "maintain a register of access rights granted;", + "Checks": [ + "accessanalyzer_enabled" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.2 Management of access rights", + "Service": "accessanalyzer" + } + ] + }, + { + "Id": "11.2.2.f", + "Description": "apply logging to the management of access rights.", + "Checks": [ + "apigatewayv2_api_access_logging_enabled", + "cloudtrail_logs_s3_bucket_access_logging_enabled", + "s3_bucket_server_access_logging_enabled", + "wafv2_webacl_logging_enabled" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.2 Management of access rights", + "Service": "generic" + } + ] + }, + { + "Id": "11.3.1", + "Description": "The relevant entities shall maintain policies for management of privileged accounts and system administration accounts as part of the access control policy referred to in point 11.1.", + "Checks": [ + "iam_role_administratoraccess_policy" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.3 Privileged accounts and system administration accounts", + "Service": "iam" + } + ] + }, + { + "Id": "11.3.2.a", + "Description": "establish strong identification, authentication such as multi-factor authentication, and authorisation procedures for privileged accounts and system administration accounts;", + "Checks": [ + "iam_user_mfa_enabled_console_access", + "iam_root_mfa_enabled", + "iam_administrator_access_with_mfa" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.3 Privileged accounts and system administration accounts", + "Service": "iam" + } + ] + }, + { + "Id": "11.3.2.b", + "Description": "set up specific accounts to be used for system administration operations exclusively, such as installation, configuration, management or maintenance;", + "Checks": [ + "iam_avoid_root_usage" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.3 Privileged accounts and system administration accounts", + "Service": "iam" + } + ] + }, + { + "Id": "11.3.2.c", + "Description": "individualise and restrict system administration privileges to the highest extent possible,", + "Checks": [ + "iam_avoid_root_usage", + "iam_inline_policy_no_administrative_privileges" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.3 Privileged accounts and system administration accounts", + "Service": "iam" + } + ] + }, + { + "Id": "11.3.2.d", + "Description": "provide that system administration accounts are only used to connect to system administration systems.", + "Checks": [ + "iam_user_console_access_unused" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.3 Privileged accounts and system administration accounts", + "Service": "iam" + } + ] + }, + { + "Id": "11.4.2.a", + "Description": "only use system administration systems for system administration purposes, and not for any other operations;", + "Checks": [ + "iam_avoid_root_usage" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.4 Administration systems", + "Service": "iam" + } + ] + }, + { + "Id": "11.4.2.b", + "Description": "separate logically such systems from application software not used for system administrative purposes,", + "Checks": [ + "iam_inline_policy_no_administrative_privileges" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.4 Administration systems", + "Service": "iam" + } + ] + }, + { + "Id": "11.4.2.c", + "Description": "protect access to system administration systems through authentication and encryption.", + "Checks": [ + "dms_endpoint_mongodb_authentication_enabled", + "iam_user_mfa_enabled_console_access", + "kafka_cluster_mutual_tls_authentication_enabled", + "neptune_cluster_iam_authentication_enabled", + "opensearch_service_domains_use_cognito_authentication_for_kibana", + "rds_cluster_iam_authentication_enabled", + "rds_instance_iam_authentication_enabled" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.4 Administration systems", + "Service": "generic" + } + ] + }, + { + "Id": "11.5.2.a", + "Description": "set up unique identities for network and information systems and their users;", + "Checks": [ + "fsx_file_system_copy_tags_to_backups_enabled", + "fsx_file_system_copy_tags_to_volumes_enabled", + "neptune_cluster_copy_tags_to_snapshots", + "organizations_tags_policies_enabled_and_attached", + "rds_cluster_copy_tags_to_snapshots", + "rds_instance_copy_tags_to_snapshots" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.5 Identification", + "Service": "generic" + } + ] + }, + { + "Id": "11.5.2.d", + "Description": "apply logging to the management of identities.", + "Checks": [ + "cloudwatch_log_metric_filter_aws_organizations_changes", + "cloudwatch_log_metric_filter_policy_changes", + "cloudwatch_log_metric_filter_security_group_changes" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.5 Identification", + "Service": "cloudwatch" + } + ] + }, + { + "Id": "11.5.4", + "Description": "The relevant entities shall regularly review the identities for network and information systems and their users and, if no longer needed, deactivate them without delay.", + "Checks": [ + "iam_user_accesskey_unused", + "iam_user_console_access_unused" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.5 Identification", + "Service": "iam" + } + ] + }, + { + "Id": "11.6.1", + "Description": "The relevant entities shall implement secure authentication procedures and technologies based on access restrictions and the policy on access control.", + "Checks": [ + "cognito_user_pool_mfa_enabled", + "iam_root_hardware_mfa_enabled", + "iam_root_mfa_enabled", + "iam_user_mfa_enabled_console_access" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.6 Authentication", + "Service": "generic" + } + ] + }, + { + "Id": "11.6.2.a", + "Description": "ensure the strength of authentication is appropriate to the classification of the asset to be accessed;", + "Checks": [ + "cognito_user_pool_password_policy_lowercase", + "cognito_user_pool_password_policy_minimum_length_14", + "cognito_user_pool_password_policy_number", + "cognito_user_pool_password_policy_symbol", + "cognito_user_pool_password_policy_uppercase", + "iam_password_policy_expires_passwords_within_90_days_or_less", + "iam_password_policy_lowercase" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.6 Authentication", + "Service": "generic" + } + ] + }, + { + "Id": "11.6.2.c", + "Description": "require the change of authentication credentials initially, at predefined intervals and upon suspicion that the credentials were compromised;", + "Checks": [ + "secretsmanager_secret_rotated_periodically", + "iam_rotate_access_key_90_days", + "kms_cmk_rotation_enabled", + "secretsmanager_automatic_rotation_enabled" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.6 Authentication", + "Service": "generic" + } + ] + }, + { + "Id": "11.6.2.d", + "Description": "require the reset of authentication credentials and the blocking of users after a predefined number of unsuccessful log-in attempts;", + "Checks": [ + "cognito_user_pool_blocks_compromised_credentials_sign_in_attempts", + "cognito_user_pool_blocks_potential_malicious_sign_in_attempts" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.6 Authentication", + "Service": "cognito" + } + ] + }, + { + "Id": "11.6.2.e", + "Description": "terminate inactive sessions after a predefined period of inactivity; and", + "Checks": [ + "appstream_fleet_session_idle_disconnect_timeout", + "appstream_fleet_maximum_session_duration", + "appstream_fleet_session_disconnect_timeout" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.6 Authentication", + "Service": "appstream" + } + ] + }, + { + "Id": "11.7.2", + "Description": "The relevant entities shall ensure that the strength of authentication is appropriate for the classification of the asset to be accessed.", + "Checks": [ + "cloudtrail_bucket_requires_mfa_delete", + "cloudwatch_log_metric_filter_sign_in_without_mfa", + "cognito_user_pool_mfa_enabled", + "directoryservice_supported_mfa_radius_enabled", + "iam_administrator_access_with_mfa", + "iam_root_hardware_mfa_enabled", + "iam_root_mfa_enabled", + "iam_user_hardware_mfa_enabled", + "iam_user_mfa_enabled_console_access", + "s3_bucket_no_mfa_delete" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.7 Multi-factor authentication", + "Service": "generic" + } + ] + }, + { + "Id": "12.1.2.c", + "Description": "align the availability requirements of the assets with the delivery and recovery objectives set out in their business continuity and disaster recovery plans.", + "Checks": [ + "backup_vaults_exist", + "backup_plans_exist", + "dynamodb_table_protected_by_backup_plan", + "ec2_ebs_volume_protected_by_backup_plan", + "eks_control_plane_logging_all_types_enabled", + "rds_cluster_protected_by_backup_plan", + "rds_instance_protected_by_backup_plan", + "ssmincidents_enabled_with_plans" + ], + "Attributes": [ + { + "Section": "12 ASSET MANAGEMENT (ARTICLE 21(2), POINT (I), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "12.1 Asset classification", + "Service": "generic" + } + ] + }, + { + "Id": "12.2.2.a", + "Description": "cover the entire life cycle of the assets, including acquisition, use, storage, transportation and disposal;", + "Checks": [ + "dlm_ebs_snapshot_lifecycle_policy_exists", + "ecr_repositories_lifecycle_policy_enabled", + "s3_bucket_lifecycle_enabled" + ], + "Attributes": [ + { + "Section": "12 ASSET MANAGEMENT (ARTICLE 21(2), POINT (I), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "12.2 Handling of assets", + "Service": "generic" + } + ] + }, + { + "Id": "12.2.2.b", + "Description": "provide rules on the safe use, safe storage, safe transport, and the irretrievable deletion and destruction of the assets;", + "Checks": [ + "backup_vaults_exist", + "backup_plans_exist", + "dynamodb_table_protected_by_backup_plan", + "ec2_ebs_volume_protected_by_backup_plan", + "eks_control_plane_logging_all_types_enabled", + "rds_cluster_protected_by_backup_plan", + "rds_instance_protected_by_backup_plan", + "ssmincidents_enabled_with_plans" + ], + "Attributes": [ + { + "Section": "12 ASSET MANAGEMENT (ARTICLE 21(2), POINT (I), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "12.2 Handling of assets", + "Service": "generic" + } + ] + }, + { + "Id": "12.2.2.c", + "Description": "provide that the transfer shall take place in a secure manner, in accordance with the type of asset to be transferred.", + "Checks": [ + "transfer_server_in_transit_encryption_enabled" + ], + "Attributes": [ + { + "Section": "12 ASSET MANAGEMENT (ARTICLE 21(2), POINT (I), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "12.2 Handling of assets", + "Service": "transfer" + } + ] + } + ] +} From f254a4bc0dba956032eb2e95c70d53b725813757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20De=20la=20Torre=20Vico?= Date: Tue, 27 May 2025 09:52:50 +0200 Subject: [PATCH 030/111] feat(app): split SDK App service calls (#7778) --- docs/getting-started/requirements.md | 3 + .../app_function_access_keys_configured.py | 25 ++++---- ...p_function_application_insights_enabled.py | 39 ++++++------ .../app_function_latest_runtime_version.py | 31 ++++++---- .../azure/services/app/app_service.py | 61 ++++++++++++------- 5 files changed, 95 insertions(+), 64 deletions(-) diff --git a/docs/getting-started/requirements.md b/docs/getting-started/requirements.md index bb2452715e..ff506506e6 100644 --- a/docs/getting-started/requirements.md +++ b/docs/getting-started/requirements.md @@ -81,6 +81,9 @@ Prowler for Azure needs two types of permission scopes to be set: To assign the permissions, follow the instructions in the [Microsoft Entra ID permissions](../tutorials/azure/create-prowler-service-principal.md#assigning-the-proper-permissions) section and the [Azure subscriptions permissions](../tutorials/azure/subscriptions.md#assign-the-appropriate-permissions-to-the-identity-that-is-going-to-be-assumed-by-prowler) section, respectively. +???+ warning + Some permissions in `ProwlerRole` are considered **write** permissions, so if you have a `ReadOnly` lock attached to some resources you may get an error and will not get a finding for that check. + #### Checks that require ProwlerRole The following checks require the `ProwlerRole` permissions to be executed, if you want to run them, make sure you have assigned the role to the identity that is going to be assumed by Prowler: diff --git a/prowler/providers/azure/services/app/app_function_access_keys_configured/app_function_access_keys_configured.py b/prowler/providers/azure/services/app/app_function_access_keys_configured/app_function_access_keys_configured.py index e942aabc6f..4c1fb89756 100644 --- a/prowler/providers/azure/services/app/app_function_access_keys_configured/app_function_access_keys_configured.py +++ b/prowler/providers/azure/services/app/app_function_access_keys_configured/app_function_access_keys_configured.py @@ -11,19 +11,20 @@ class app_function_access_keys_configured(Check): functions, ) in app_client.functions.items(): for function in functions.values(): - report = Check_Report_Azure(metadata=self.metadata(), resource=function) - report.subscription = subscription_name - report.status = "FAIL" - report.status_extended = ( - f"Function {function.name} does not have function keys configured." - ) - - if len(function.function_keys) > 0: - report.status = "PASS" - report.status_extended = ( - f"Function {function.name} has function keys configured." + if function.function_keys is not None: + report = Check_Report_Azure( + metadata=self.metadata(), resource=function ) + report.subscription = subscription_name + report.status = "FAIL" + report.status_extended = f"Function {function.name} does not have function keys configured." - findings.append(report) + if len(function.function_keys) > 0: + report.status = "PASS" + report.status_extended = ( + f"Function {function.name} has function keys configured." + ) + + findings.append(report) return findings diff --git a/prowler/providers/azure/services/app/app_function_application_insights_enabled/app_function_application_insights_enabled.py b/prowler/providers/azure/services/app/app_function_application_insights_enabled/app_function_application_insights_enabled.py index 06ce41a2b0..3c5102dbbb 100644 --- a/prowler/providers/azure/services/app/app_function_application_insights_enabled/app_function_application_insights_enabled.py +++ b/prowler/providers/azure/services/app/app_function_application_insights_enabled/app_function_application_insights_enabled.py @@ -14,26 +14,29 @@ class app_function_application_insights_enabled(Check): functions, ) in app_client.functions.items(): for function in functions.values(): - report = Check_Report_Azure(metadata=self.metadata(), resource=function) - report.subscription = subscription_name - report.status = "FAIL" - report.status_extended = ( - f"Function {function.name} is not using Application Insights." - ) - - if function.enviroment_variables.get( - "APPINSIGHTS_INSTRUMENTATIONKEY", "" - ) in [ - component.instrumentation_key - for component in appinsights_client.components[ - subscription_name - ].values() - ]: - report.status = "PASS" + if function.enviroment_variables is not None: + report = Check_Report_Azure( + metadata=self.metadata(), resource=function + ) + report.subscription = subscription_name + report.status = "FAIL" report.status_extended = ( - f"Function {function.name} is using Application Insights." + f"Function {function.name} is not using Application Insights." ) - findings.append(report) + if function.enviroment_variables.get( + "APPINSIGHTS_INSTRUMENTATIONKEY", "" + ) in [ + component.instrumentation_key + for component in appinsights_client.components[ + subscription_name + ].values() + ]: + report.status = "PASS" + report.status_extended = ( + f"Function {function.name} is using Application Insights." + ) + + findings.append(report) return findings diff --git a/prowler/providers/azure/services/app/app_function_latest_runtime_version/app_function_latest_runtime_version.py b/prowler/providers/azure/services/app/app_function_latest_runtime_version/app_function_latest_runtime_version.py index 180434ec21..3cd8d349b4 100644 --- a/prowler/providers/azure/services/app/app_function_latest_runtime_version/app_function_latest_runtime_version.py +++ b/prowler/providers/azure/services/app/app_function_latest_runtime_version/app_function_latest_runtime_version.py @@ -11,20 +11,25 @@ class app_function_latest_runtime_version(Check): functions, ) in app_client.functions.items(): for function in functions.values(): - report = Check_Report_Azure(metadata=self.metadata(), resource=function) - report.subscription = subscription_name - report.status = "PASS" - report.status_extended = ( - f"Function {function.name} is using the latest runtime." - ) + if function.enviroment_variables is not None: + report = Check_Report_Azure( + metadata=self.metadata(), resource=function + ) + report.subscription = subscription_name + report.status = "PASS" + report.status_extended = ( + f"Function {function.name} is using the latest runtime." + ) - if ( - function.enviroment_variables.get("FUNCTIONS_EXTENSION_VERSION", "") - != "~4" - ): - report.status = "FAIL" - report.status_extended = f"Function {function.name} is not using the latest runtime. The current runtime is '{function.enviroment_variables.get('FUNCTIONS_EXTENSION_VERSION', '')}' and should be '~4'." + if ( + function.enviroment_variables.get( + "FUNCTIONS_EXTENSION_VERSION", "" + ) + != "~4" + ): + report.status = "FAIL" + report.status_extended = f"Function {function.name} is not using the latest runtime. The current runtime is '{function.enviroment_variables.get('FUNCTIONS_EXTENSION_VERSION', '')}' and should be '~4'." - findings.append(report) + findings.append(report) return findings diff --git a/prowler/providers/azure/services/app/app_service.py b/prowler/providers/azure/services/app/app_service.py index fc2ee5cf13..584555e2ad 100644 --- a/prowler/providers/azure/services/app/app_service.py +++ b/prowler/providers/azure/services/app/app_service.py @@ -1,5 +1,5 @@ from dataclasses import dataclass, field -from typing import Dict, List +from typing import Dict, List, Optional from azure.mgmt.web import WebSiteManagementClient @@ -124,14 +124,16 @@ class App(AzureService): # Filter function apps if getattr(function, "kind", "").startswith("functionapp"): # List host keys - host_keys = client.web_apps.list_host_keys( - resource_group_name=function.resource_group, - name=function.name, - ) # Need to add role 'Logic App Contributor' to the service principal to get the host keys or add to the reader role the permission 'Microsoft.Web/sites/host/listkeys' + host_keys = self._get_function_host_keys( + subscription_name, function.resource_group, function.name + ) + if host_keys is not None: + function_keys = getattr(host_keys, "function_keys", {}) + else: + function_keys = None - function_config = client.web_apps.get_configuration( - resource_group_name=function.resource_group, - name=function.name, + function_config = self._get_function_config( + subscription_name, function.resource_group, function.name ) functions[subscription_name].update( @@ -141,16 +143,9 @@ class App(AzureService): name=function.name, location=function.location, kind=function.kind, - function_keys=getattr( - host_keys, "function_keys", {} - ), + function_keys=function_keys, enviroment_variables=getattr( - client.web_apps.list_application_settings( - resource_group_name=function.resource_group, - name=function.name, - ), - "properties", - {}, + function_config, "properties", None ), identity=getattr(function, "identity", None), public_access=( @@ -167,7 +162,7 @@ class App(AzureService): "", ), ftps_state=getattr( - function_config, "ftps_state", "" + function_config, "ftps_state", None ), ) } @@ -209,6 +204,30 @@ class App(AzureService): ) return monitor_diagnostics_settings + def _get_function_host_keys(self, subscription, resource_group, name): + try: + return self.clients[subscription].web_apps.list_host_keys( + resource_group_name=resource_group, + name=name, + ) + except Exception as error: + logger.error( + f"Error getting host keys for {name} in {resource_group}: {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" + ) + return None + + def _get_function_config(self, subscription, resource_group, name): + try: + return self.clients[subscription].web_apps.list_application_settings( + resource_group_name=resource_group, + name=name, + ) + except Exception as error: + logger.error( + f"Error getting configuration for {name} in {resource_group}: {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" + ) + return None + @dataclass class ManagedServiceIdentity: @@ -250,9 +269,9 @@ class FunctionApp: name: str location: str kind: str - function_keys: Dict[str, str] - enviroment_variables: Dict[str, str] + function_keys: Optional[Dict[str, str]] + enviroment_variables: Optional[Dict[str, str]] identity: ManagedServiceIdentity public_access: bool vnet_subnet_id: str - ftps_state: str + ftps_state: Optional[str] From ea97de7f43a2063476b49f7697bb6c7b51137c11 Mon Sep 17 00:00:00 2001 From: sumit-tft <70506234+sumit-tft@users.noreply.github.com> Date: Tue, 27 May 2025 14:21:08 +0530 Subject: [PATCH 031/111] fix(ui): updated to use the correct message when download report clicked (#7758) Co-authored-by: Pablo Lara --- ui/CHANGELOG.md | 1 + ui/actions/scans/scans.ts | 35 ++++-- ui/components/compliance/compliance-card.tsx | 17 ++- .../scans/table/scans/column-get-scans.tsx | 14 +-- .../scans/data-table-download-details.tsx | 34 ++++++ .../download-icon-button.tsx | 9 +- ui/lib/helper.ts | 100 ++++++++++++------ ui/styles/globals.css | 11 ++ ui/tailwind.config.js | 6 ++ ui/types/formSchemas.ts | 4 +- 10 files changed, 172 insertions(+), 59 deletions(-) create mode 100644 ui/components/scans/table/scans/data-table-download-details.tsx diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index e58655a05f..6ba9950320 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -10,6 +10,7 @@ All notable changes to the **Prowler UI** are documented in this file. - Improved `SnippetChip` component and show resource name in new findings table. [(#7813)](https://github.com/prowler-cloud/prowler/pull/7813) - Possibility to edit the organization name. [(#7829)](https://github.com/prowler-cloud/prowler/pull/7829) - Add `Provider UID` filter to scans page. [(#7820)](https://github.com/prowler-cloud/prowler/pull/7820) +- Download report behaviour updated to show feedback based on API response. [(#7758)](https://github.com/prowler-cloud/prowler/pull/7758) --- diff --git a/ui/actions/scans/scans.ts b/ui/actions/scans/scans.ts index 39e17a4b42..b3115ea0e9 100644 --- a/ui/actions/scans/scans.ts +++ b/ui/actions/scans/scans.ts @@ -236,10 +236,23 @@ export const getExportsZip = async (scanId: string) => { headers, }); + if (response.status === 202) { + const json = await response.json(); + const taskId = json?.data?.id; + const state = json?.data?.attributes?.state; + return { + pending: true, + state, + taskId, + }; + } + if (!response.ok) { const errorData = await response.json(); + throw new Error( - errorData?.errors?.[0]?.detail || "Failed to fetch report", + errorData?.errors?.detail || + "Unable to fetch scan report. Contact support if the issue continues.", ); } @@ -271,20 +284,28 @@ export const getComplianceCsv = async ( ); try { - const response = await fetch(url.toString(), { - headers, - }); + const response = await fetch(url.toString(), { headers }); + + if (response.status === 202) { + const json = await response.json(); + const taskId = json?.data?.id; + const state = json?.data?.attributes?.state; + return { + pending: true, + state, + taskId, + }; + } if (!response.ok) { const errorData = await response.json(); throw new Error( - errorData?.errors?.[0]?.detail || "Failed to fetch compliance report", + errorData?.errors?.detail || + "Unable to retrieve compliance report. Contact support if the issue continues.", ); } - // Get the blob data as an array buffer const arrayBuffer = await response.arrayBuffer(); - // Convert to base64 const base64 = Buffer.from(arrayBuffer).toString("base64"); return { diff --git a/ui/components/compliance/compliance-card.tsx b/ui/components/compliance/compliance-card.tsx index 56b6cec402..ff55421681 100644 --- a/ui/components/compliance/compliance-card.tsx +++ b/ui/components/compliance/compliance-card.tsx @@ -3,7 +3,7 @@ import { Card, CardBody, Progress } from "@nextui-org/react"; import Image from "next/image"; import { useSearchParams } from "next/navigation"; -import React from "react"; +import React, { useState } from "react"; import { DownloadIconButton, toast } from "@/components/ui"; import { downloadComplianceCsv } from "@/lib/helper"; @@ -31,6 +31,7 @@ export const ComplianceCard: React.FC = ({ }) => { const searchParams = useSearchParams(); const hasRegionFilter = searchParams.has("filter[region__in]"); + const [isDownloading, setIsDownloading] = useState(false); const formatTitle = (title: string) => { return title.split("-").join(" "); @@ -67,6 +68,15 @@ export const ComplianceCard: React.FC = ({ return "success"; }; + const handleDownload = async () => { + setIsDownloading(true); + try { + await downloadComplianceCsv(scanId, complianceId, toast); + } finally { + setIsDownloading(false); + } + }; + return ( @@ -104,11 +114,10 @@ export const ComplianceCard: React.FC = ({ - downloadComplianceCsv(scanId, complianceId, toast) - } + onDownload={handleDownload} textTooltip="Download compliance CSV report" isDisabled={hasRegionFilter} + isDownloading={isDownloading} /> {/* {getScanChange()} */}
diff --git a/ui/components/scans/table/scans/column-get-scans.tsx b/ui/components/scans/table/scans/column-get-scans.tsx index 9082618eb8..4d6796b6bc 100644 --- a/ui/components/scans/table/scans/column-get-scans.tsx +++ b/ui/components/scans/table/scans/column-get-scans.tsx @@ -5,15 +5,14 @@ import { ColumnDef } from "@tanstack/react-table"; import { useSearchParams } from "next/navigation"; import { InfoIcon } from "@/components/icons"; -import { DownloadIconButton, toast } from "@/components/ui"; import { DateWithTime, EntityInfoShort } from "@/components/ui/entities"; import { TriggerSheet } from "@/components/ui/sheet"; import { DataTableColumnHeader, StatusBadge } from "@/components/ui/table"; -import { downloadScanZip } from "@/lib/helper"; import { ProviderType, ScanProps } from "@/types"; import { LinkToFindingsFromScan } from "../../link-to-findings-from-scan"; import { TriggerIcon } from "../../trigger-icon"; +import { DataTableDownloadDetails } from "./data-table-download-details"; import { DataTableRowActions } from "./data-table-row-actions"; import { DataTableRowDetails } from "./data-table-row-details"; @@ -130,15 +129,10 @@ export const ColumnGetScans: ColumnDef[] = [
), cell: ({ row }) => { - const scanId = row.original.id; - const scanState = row.original.attributes?.state; - return ( - downloadScanZip(scanId, toast)} - isDisabled={scanState !== "completed"} - /> +
+ +
); }, }, diff --git a/ui/components/scans/table/scans/data-table-download-details.tsx b/ui/components/scans/table/scans/data-table-download-details.tsx new file mode 100644 index 0000000000..4579ef3c56 --- /dev/null +++ b/ui/components/scans/table/scans/data-table-download-details.tsx @@ -0,0 +1,34 @@ +import { Row } from "@tanstack/react-table"; +import { useState } from "react"; + +import { DownloadIconButton, useToast } from "@/components/ui"; +import { downloadScanZip } from "@/lib"; + +interface DataTableDownloadDetailsProps { + row: Row; +} + +export function DataTableDownloadDetails({ + row, +}: DataTableDownloadDetailsProps) { + const { toast } = useToast(); + const [isDownloading, setIsDownloading] = useState(false); + + const scanId = (row.original as { id: string }).id; + const scanState = (row.original as any).attributes?.state; + + const handleDownload = async () => { + setIsDownloading(true); + await downloadScanZip(scanId, toast); + setIsDownloading(false); + }; + + return ( + + ); +} diff --git a/ui/components/ui/download-icon-button/download-icon-button.tsx b/ui/components/ui/download-icon-button/download-icon-button.tsx index 364ae0fe39..e84ecfa568 100644 --- a/ui/components/ui/download-icon-button/download-icon-button.tsx +++ b/ui/components/ui/download-icon-button/download-icon-button.tsx @@ -11,6 +11,7 @@ interface DownloadIconButtonProps { ariaLabel?: string; isDisabled?: boolean; textTooltip?: string; + isDownloading?: boolean; } export const DownloadIconButton = ({ @@ -19,20 +20,24 @@ export const DownloadIconButton = ({ ariaLabel = "Download report", isDisabled, textTooltip = "Download report", + isDownloading = false, }: DownloadIconButtonProps) => { return (
onDownload(paramId)} className="p-0 text-default-500 hover:text-primary disabled:opacity-30" isIconOnly ariaLabel={ariaLabel} size="sm" > - +
diff --git a/ui/lib/helper.ts b/ui/lib/helper.ts index db664e2a18..7a13fb266f 100644 --- a/ui/lib/helper.ts +++ b/ui/lib/helper.ts @@ -61,14 +61,22 @@ export const downloadScanZip = async ( ) => { const result = await getExportsZip(scanId); - if (result?.success && result?.data) { + if (result?.pending) { + toast({ + title: "The report is still being generated", + description: "Please try again in a few minutes.", + }); + return; + } + + if (result?.success && result.data) { const binaryString = window.atob(result.data); const bytes = new Uint8Array(binaryString.length); for (let i = 0; i < binaryString.length; i++) { bytes[i] = binaryString.charCodeAt(i); } - const blob = new Blob([bytes], { type: "application/zip" }); + const blob = new Blob([bytes], { type: "application/zip" }); const url = window.URL.createObjectURL(blob); const a = document.createElement("a"); a.href = url; @@ -82,11 +90,11 @@ export const downloadScanZip = async ( title: "Download Complete", description: "Your scan report has been downloaded successfully.", }); - } else if (result?.error) { + } else { toast({ variant: "destructive", title: "Download Failed", - description: result.error, + description: result?.error || "An unknown error occurred.", }); } }; @@ -95,37 +103,64 @@ export const downloadComplianceCsv = async ( scanId: string, complianceId: string, toast: ReturnType["toast"], -) => { +): Promise => { const result = await getComplianceCsv(scanId, complianceId); - if (result?.success && result?.data) { - const binaryString = window.atob(result.data); - const bytes = new Uint8Array(binaryString.length); - for (let i = 0; i < binaryString.length; i++) { - bytes[i] = binaryString.charCodeAt(i); - } - const blob = new Blob([bytes], { type: "text/csv" }); - - const url = window.URL.createObjectURL(blob); - const a = document.createElement("a"); - a.href = url; - a.download = result.filename; - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); - window.URL.revokeObjectURL(url); - + if (result?.pending) { toast({ - title: "Download Complete", - description: "The compliance report has been downloaded successfully.", + title: "The report is still being generated", + description: "Please try again in a few minutes.", }); - } else if (result?.error) { + return; + } + + if (result?.success && result.data) { + try { + const binaryString = window.atob(result.data); + const bytes = new Uint8Array(binaryString.length); + for (let i = 0; i < binaryString.length; i++) { + bytes[i] = binaryString.charCodeAt(i); + } + + const blob = new Blob([bytes], { type: "text/csv" }); + const url = window.URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = result.filename; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + window.URL.revokeObjectURL(url); + + toast({ + title: "Download Complete", + description: "The compliance report has been downloaded successfully.", + }); + } catch (error) { + toast({ + variant: "destructive", + title: "Download Failed", + description: "An error occurred while processing the file.", + }); + } + return; + } + + if (result?.error) { toast({ variant: "destructive", title: "Download Failed", description: result.error, }); + return; } + + // Unexpected case + toast({ + variant: "destructive", + title: "Download Failed", + description: "Unexpected response. Please try again later.", + }); }; export const isGoogleOAuthEnabled = @@ -136,13 +171,12 @@ export const isGithubOAuthEnabled = !!process.env.SOCIAL_GITHUB_OAUTH_CLIENT_ID && !!process.env.SOCIAL_GITHUB_OAUTH_CLIENT_SECRET; -export async function checkTaskStatus( +export const checkTaskStatus = async ( taskId: string, -): Promise<{ completed: boolean; error?: string }> { - const MAX_RETRIES = 20; // Define the maximum number of attempts before stopping the polling - const RETRY_DELAY = 1000; // Delay time between each poll (in milliseconds) - - for (let attempt = 0; attempt < MAX_RETRIES; attempt++) { + maxRetries: number = 20, + retryDelay: number = 1500, +): Promise<{ completed: boolean; error?: string }> => { + for (let attempt = 0; attempt < maxRetries; attempt++) { const task = await getTask(taskId); if (task.error) { @@ -162,7 +196,7 @@ export async function checkTaskStatus( case "scheduled": case "executing": // Continue waiting if the task is still in progress - await new Promise((resolve) => setTimeout(resolve, RETRY_DELAY)); + await new Promise((resolve) => setTimeout(resolve, retryDelay)); break; default: return { completed: false, error: "Unexpected task state" }; @@ -170,7 +204,7 @@ export async function checkTaskStatus( } return { completed: false, error: "Max retries exceeded" }; -} +}; export const wait = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); diff --git a/ui/styles/globals.css b/ui/styles/globals.css index 3d8d40186d..f3b0a3e4ae 100644 --- a/ui/styles/globals.css +++ b/ui/styles/globals.css @@ -32,6 +32,7 @@ } @layer utilities { + /* Hide scrollbar */ .no-scrollbar { scrollbar-width: none; @@ -41,3 +42,13 @@ @apply mr-2 bg-background; } } + +@layer components { + + .animate-download-icon polyline, + .animate-download-icon line { + @apply animate-drop-arrow; + transform-box: fill-box; + transform-origin: center; + } +} \ No newline at end of file diff --git a/ui/tailwind.config.js b/ui/tailwind.config.js index 8245f1971f..664e360167 100644 --- a/ui/tailwind.config.js +++ b/ui/tailwind.config.js @@ -170,10 +170,16 @@ module.exports = { "50%": { left: "20%", width: "80%" }, "100%": { left: "100%", width: "100%" }, }, + dropArrow: { + '0%': { transform: 'translateY(-8px)', opacity: '0' }, + '50%': { opacity: '1' }, + '100%': { transform: 'translateY(0)', opacity: '1' }, + }, }, animation: { "collapsible-down": "collapsible-down 0.2s ease-out", "collapsible-up": "collapsible-up 0.2s ease-out", + "drop-arrow": "dropArrow 0.6s ease-out infinite", }, screens: { "3xl": "1920px", // Add breakpoint to optimize layouts for large screens. diff --git a/ui/types/formSchemas.ts b/ui/types/formSchemas.ts index 168e45e261..217cca4e11 100644 --- a/ui/types/formSchemas.ts +++ b/ui/types/formSchemas.ts @@ -142,9 +142,7 @@ export const addCredentialsFormSchema = (providerType: string) => .nonempty("Client Secret is required"), tenant_id: z.string().nonempty("Tenant ID is required"), user: z.string().nonempty("User is required"), - password: z - .string() - .nonempty("Password is required"), + password: z.string().nonempty("Password is required"), } : {}), }); From 3728430f8c0f32c65a39b0f08bd5a0c493c53171 Mon Sep 17 00:00:00 2001 From: Sergio Garcia Date: Tue, 27 May 2025 14:25:37 +0200 Subject: [PATCH 032/111] chore: update README (#7842) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pedro Martín --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0fbf555e26..b33364e6bf 100644 --- a/README.md +++ b/README.md @@ -86,12 +86,12 @@ prowler dashboard | Provider | Checks | Services | [Compliance Frameworks](https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/compliance/) | [Categories](https://docs.prowler.com/projects/prowler-open-source/en/latest/tutorials/misc/#categories) | |---|---|---|---|---| -| AWS | 564 | 82 | 35 | 10 | +| AWS | 567 | 82 | 36 | 10 | | GCP | 79 | 13 | 9 | 3 | -| Azure | 140 | 18 | 8 | 3 | +| Azure | 142 | 18 | 9 | 3 | | Kubernetes | 83 | 7 | 5 | 7 | -| GitHub | 3 | 2 | 1 | 0 | -| M365 | 44 | 2 | 2 | 0 | +| GitHub | 16 | 2 | 1 | 0 | +| M365 | 69 | 7 | 2 | 0 | | NHN (Unofficial) | 6 | 2 | 1 | 0 | > [!Note] From 9e8e3eb0e6cb5a4d7ffb107c570e039b5d85449f Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Wed, 28 May 2025 08:52:03 +0200 Subject: [PATCH 033/111] fix(m365): update documentation (#7823) Co-authored-by: Sergio Garcia Co-authored-by: Daniel Barranquero --- README.md | 2 +- docs/getting-started/requirements.md | 63 +++--------------- docs/img/m365-credentials.png | Bin 355105 -> 122221 bytes .../microsoft365/getting-started-m365.md | 45 +++++++------ .../microsoft365/img/m365-credentials.png | Bin 355105 -> 122221 bytes 5 files changed, 34 insertions(+), 76 deletions(-) diff --git a/README.md b/README.md index b33364e6bf..1219983bdf 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,7 @@ prowler dashboard | Azure | 142 | 18 | 9 | 3 | | Kubernetes | 83 | 7 | 5 | 7 | | GitHub | 16 | 2 | 1 | 0 | -| M365 | 69 | 7 | 2 | 0 | +| M365 | 69 | 7 | 2 | 2 | | NHN (Unofficial) | 6 | 2 | 1 | 0 | > [!Note] diff --git a/docs/getting-started/requirements.md b/docs/getting-started/requirements.md index ff506506e6..6e79f86bba 100644 --- a/docs/getting-started/requirements.md +++ b/docs/getting-started/requirements.md @@ -163,70 +163,24 @@ export AZURE_CLIENT_ID="XXXXXXXXX" export AZURE_CLIENT_SECRET="XXXXXXXXX" export AZURE_TENANT_ID="XXXXXXXXX" export M365_USER="your_email@example.com" -export M365_PASSWORD="6500780061006d0070006c006500700061007300730077006f0072006400" # replace this to yours +export M365_PASSWORD="examplepassword" ``` These two new environment variables are **required** to execute the PowerShell modules needed to retrieve information from M365 services. Prowler uses Service Principal authentication to access Microsoft Graph and user credentials to authenticate to Microsoft PowerShell modules. -- `M365_USER` should be your Microsoft account email using the default domain. This means it must look like `example@YourCompany.onmicrosoft.com`. +- `M365_USER` should be your Microsoft account email using the **assigned domain in the tenant**. This means it must look like `example@YourCompany.onmicrosoft.com` or `example@YourCompany.com`, but it must be the exact domain assigned to that user in the tenant. - To ensure that you are using the default domain you can see how to verify it [here](../tutorials/microsoft365/getting-started-m365.md#step-1-obtain-your-domain). + ???+ warning + Using a tenant domain other than the one assigned — even if it belongs to the same tenant — will cause Prowler to fail, as Microsoft authentication will not succeed. - If you don't have a user created with that domain, Prowler will not work as it will not be able to ensure both app an user belong to the same tenant. To proceed, you can either create a new user with that domain or modify the domain of an existing user. + Ensure you are using the right domain for the user you are trying to authenticate with. ![User Domains](../tutorials/microsoft365/img/user-domains.png) -- `M365_PASSWORD` must be an encrypted SecureString. To convert your password into a valid encrypted string, you need to use PowerShell. - - ???+ warning - Passwords encrypted using ConvertTo-SecureString can only be decrypted on the same OS/user context. If you generate an encrypted password on macOS or Linux (both UNIX), it should fail on Windows and vice versa. As Prowler Cloud runs on UNIX if you generate your password using Windows it won't work so you'll need to generate a new password using any UNIX distro (example above) - - If you are working from Windows and you will use your encrypted password in a different system (like for example executing Prowler in macOS or adding your password to Prowler Cloud), you will need to generate a "UNIX compatible" version of your encrypted password. This can be done using WSL which is so easy to install on Windows. - - === "UNIX" - - Open a PowerShell cmd with a [supported version](requirements.md#supported-powershell-versions) and then run the following command: - - ```console - $securePassword = ConvertTo-SecureString "examplepassword" -AsPlainText -Force - $encryptedPassword = $securePassword | ConvertFrom-SecureString - Write-Output $encryptedPassword - 6500780061006d0070006c006500700061007300730077006f0072006400 - ``` - - If everything is done correctly, you will see the encrypted string that you need to set as the `M365_PASSWORD` environment variable. - - === "Windows" - - - How to install WSL and PowerShell on it to generate that password (you can use a different distro but this one will work for sure): - - ```console - wsl --install -d Ubuntu-22.04 - ``` - - Then, open the Ubuntu terminal and run the following commands: - - ```console - sudo apt update && sudo apt install -y wget apt-transport-https software-properties-common - wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb" - sudo dpkg -i packages-microsoft-prod.deb - sudo apt update - sudo apt install -y powershell - pwsh - ``` - - With this done you will see now that a prompt running PowerShell with the latest version is open so here you will be able to generate your encrypted password: - - ```console - $securePassword = ConvertTo-SecureString "examplepassword" -AsPlainText -Force - $encryptedPassword = $securePassword | ConvertFrom-SecureString - Write-Output $encryptedPassword - 6500780061006d0070006c006500700061007300730077006f0072006400 - ``` - - If everything is done correctly, you will see the encrypted string that you need to set as the `M365_PASSWORD` environment variable. +- `M365_PASSWORD` must be the user password. + ???+ note + Before we asked for a encrypted password, but now we ask for the user password directly. Prowler will now handle the password encryption for you. ### Interactive Browser authentication @@ -248,7 +202,6 @@ Prowler for M365 requires two types of permission scopes to be set (if you want - `Directory.Read.All`: Required for all services. - `Policy.Read.All`: Required for all services. - `User.Read` (IMPORTANT: this must be set as **delegated**): Required for the sign-in. - - `Sites.Read.All`: Required for SharePoint service. - `SharePointTenantSettings.Read.All`: Required for SharePoint service. - `AuditLog.Read.All`: Required for Entra service. diff --git a/docs/img/m365-credentials.png b/docs/img/m365-credentials.png index 9c06343ce2f23e3dde7a3b13dce072acb804c799..87191751a8d5187c5d6a4be97a01c04c073fe0ef 100644 GIT binary patch literal 122221 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 z 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%0A>tGJ;%8(F?4=Uu0o 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 literal 355105 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 z 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�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�o3P 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%0D)Q$o|0p1JoT>zn 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 z z+h8ok^g2( z4;E-Ons(JWv;Hatsa{~9oyw!!eG~jsjI|ulh|^eumNistBuLbG%-U(?zlDR03$hal z%Z{0}?R)S?Cgm8@N6EMReEFU>u6arjm)i!r>jgo2B+n=nfeNn^k{qp;vYKgSR7ZQ|2T#c+MzGft7Bl7lJaFf?J6MJ3m~r== zQA)#VvbKH+xxUrsp5$_upJKuHknXE6?xWT@p=GBg{)b4EMvoL<{YPA4L0^?4Ze6RW zC3t?-{28|&3c)OZmHGNF?xPHd3g8-vd5t$`^r0ah=#*)P%h`$N5Mlcj)5TuzYhdU-~JM zbXGGIt+VNQZHu77PAA`b4)(ES;(V!+1_ypmi?3%99Fm?rt1O7|Gx^B}wGvMWk9B7Z zupu%8X8E~J{!yD5yfn!bS=Y;$V5#iF-Z*owfLASni0(HBL>oPZ5?b*e?FtPa+ayj) z3YmCL1c@jN?cTz6akt|&r^YDYy^x1R|4jw>kM16?-cPx-$Hwr5BSn1H+|SV#WurtS zWnjZZJQGFdS=Ml@Z#7-z^()32qKo+8us`b24JR#yIh?N$7x;}zK^m}G(2mzx5UK`s zSFKpT!?7u*fSDn61a6$ilIyN4zw6QW10C*W?A=2c%v9l~#J*Sae;aI9Cx@_Wk!;YO zc?jWZ5w`Ks>{HMb)uR-Z=$EaBzR}?PQ4|H^n>=vsBW_<}za4px zf^$}2anl|tnCGsgcG<^r-t5K(PG?cJamA_e^jDitU4o~Z+i)JJ`faW~oG8uMpVO>} z>IB&MISp2Lx0<|_8}P>CR0JyQE85T}M!y$K3@Jf1C-o`J8W0%@_+j{*dAxG`pN)&`CG}hEJc71+vBFj#Q+VOtjH^wHtT7S@$DN z;KTtF73tHdRTu%#m>&D`YWnS>Au{P!MHfHmX=FFLJ!fGB^kWAqQT5hl2wAfc3wZ0< zZYxTMKv8$F$fz?U#9wBv{oT?($Z`KO1XLc#NdC}-61*kY9Z&QVj2ymqIgv{*8A7#N z+JyAR;=sr>=#=U-Qse20_Gr;fD@DJY-%5=ezcK`GW3lFs3YGt#2YGVi&JNtu_Q+sA zmPjIw)laVN0;hY5`N)>QGhVVfY9YjJ8idXL{DVK8wBOk>5&8Cuiy*nhK{wwTwbbh) z`XuK=KDu551f~OZx%sE6BqD4?UXJ*?RAIz%H@fnTNWXRRJqK53Ip+IF8#j1ZfbL0} zgkI+ZrM4{j=aOC`&!a#8cudHsz+-}jVP({Uj0D?#b#t$GB6vwYr7jwP2?qrq>YK~t z@ojQ~*^$3@23H))qLKv>ww=Ww7$|v+9nH%-yLsC`oG~PK*vH*iSS(Z1nX&QMDy5zO z9y3ZN5B3!Dc2@+}lySCYKp&i0%&q&Rl#K_tLTPA(wel@%GaYucZ&eZ46k`n#aLa%I zK65iCUpl8!+o)>ulZTCuq3ML^Sl_2Ny>9a~c#CIU&f~3l*^2L8ncI-mp=@ibZVtDM z#;hxI8hunlKt?6KRlMq9H}h^7XD-xv zvlT(5QKj0Mxu$2y8rCON_cy31Fhk={)iw)4n~Ut{tdP4B#Z zt1}lfItT8hIL}hmm}VuDi^aUwD8?9b#kE&Ap2|bm{?h(0PwmP6S6jDf8t^4*-GY!t z6S?$GzyE3ij&C?L+V#AS=i?n0n76%IFbYq%Kl-}$2En}=Gea-i0Z?y^jV$jMIx{mw?tx&Jsyr@ox z5hJjNMSgA982i%Xt}ejhsuA;nanU%bpzF7ICPP_ZmHI=E%-@Y!&(ARE z_!z;;li9HC4PBV;l*u2KK`T=BX!2d)=^fr_hIV8Bz=_|gPMoPe63(+E911Z9LSJ@- zTW7`J-(N`}$a;0!_ubA&8ujP$p6GJ8>rdbVP6GQnFvOwj*Y1rLG&>-Pm$}i6u)qB* zZIa#VEvl(rYOq^N3ei-0^~q)2rQ5&#{X=}um~eU*Xo2%~w%YKsSsv1z_t?bYgU6m% z1J-ZGiIZhac-C&8mKvi-1dy@LM0Z2h_w%_hOuoUW-ybAP# zxFi)Aw-S;pbeYl&r&*lKqRQ~Ku=27P< zCL}*CHmBfxcB51HM|t{xw>Zw~y8*tJ^BBEQ4C?40H^CUv5FO#hcoz~c)F@RML9(9T z?RX@q(uy>4$!6&~_E>gS=m>+f9#~jV3fmhCn~iPf(3%BwcZOa(+&TfXPq?lH^Q0eH z&y{G10-g`S?aUfVzNf9ux5b<=5-}wDI00Fu4mEGs<orxYTv$wgtoOM`ReiAoSsI;NpfKA9?8iR1GR|ThBfVD1M33@)e>a$3 zs4ydSYE3}-sB($e6$`vM`#773{wfBUS6B#*;%K2M2Ix77m|WY~r-08wC?fVKg^!ITWW?v;o%lpHusNiwxZI|W6;9Pi^ zux`%6?DE_pkNh`2Ost7@Gl~$L1-wlw#UxG8MaufjE%^q84%(E_p)@&hF|3_@6I!sG z4WH*`I#Fz4D(@bxq~GGl-yN60zt&MhUL@hW)M+bWz5qesfw?%_I)r;guUOD1;<}t{R7I*UkCZ|k4Q9mS} z7OT+v?^N+;Y3e)VJ+xEjaUCV{(^GK(LlZ?)EfgWq<`JswNu11lFIB?vXSNMG_O+P< zH>N0Y92rVDc`v`iRiAzsdEM(HPas7DY|tMw;t< zF=`kIM_lZ~c3-WKeGJ%yu?(<(762C2H4X@$l^|?V_??hJrjFbkQVg4W{l{DO@0O!K z=ih8C2I8m1zh4cjUtow1>qXXu=R0NU|BErP{9{{j4Fj(`hEra%x#*He&?AWC4R-h8=qYn`XlpD&14q&7nqLFYP)6%00RZ z>04~A0bUt-rRY?1LRgp2XmCpjDzwKbkS>0-rX7Qn2E3sB%WLdxWydZub)7MfjGhFz($2%jyWVfDp{u%gW zU+qn5xL3$1Y=;=Foj=O{o+PL=+AuUCzY`Uj32-xV=fo4TVo1YYgHsFKb=~!UqXJWD zG7p(dD<0&Da8kShi4GkMg@(K!lNY@Ey5AJ66sv*6+N^P?kzI>-n({tZonM-_<%CXgN$Umkg9fU5Oc2 zQnzzf3^vo9H@~g#W+slkWQ$fk)}69KY=78cVVB`~QF8?F&0ov>PMDb zpX~ObMegJ19ksWgqcP3x5dsazq!-N5N}C~~@ToFks@Jsz_}&s$UpYI6ME&WM%qw+^MseXwhwRYT^U?H*Y$H2@F^@({!xOce#Y83rC zt+2Kp6ej<}HgEQmuK*JjTRFwLS%0b{s`zYAc1mHtd)jf% z^IkWJaVhBTM*>9T$)`=`SLteKYmm$EgplZZBRiLJ9OlZQAyAo}LuoJqe|?X~NgA_l zPr%H3PXg{tDEL~4s!Zua=&4HWNvHB^@rFxr_KiR>6F41q6rBecJc{dlt=H1WO zxpnP2n@yMh9CB^Yg9+d%*4|Gi5`aIYS0Q5yo{feL#&CXmPcD;2&Pr0iv9Tc!VGKF) zQI=^#mIAW&e)yJlrtD6kYR4x_#PzHSE%fau-)f@=q07NrHE(w$TjU_5ry?2`5fX477eFMaA4tRFg4r zVz(^b`G>bAd2GZSUYp&9)aD~SyS1*fMD$QMHe-e}em}L;>lQIWEy58#{0s{VIWjhD z=awhnQHo$>4QdCusm*JcorJgNeraF0AKQZX+z4~aM9X^?P;;_1q|unZkE3||_sZ>H ztmBe5y3F^_Yb+vtLCpqwlpi)F`W2Vml*lNF%-~%(bhvnO!!fxauhx$8GH_PGI$kb;cj)^U z$6(2(el+C|V=|j*<40Y+RLr$EU(t*==CL^tjNok7n`AEuU1lx~piJ&T;3Pa0tzJ%9 z?_X&`n(jDJ$lyx<2G}yPp;8VU!u_=_+e-0e6e0n$SVsFAiD|x>TxI#DN!@UdIm<}$ zrK&z(qIp^Pt^jlNUR*Soy)j9NxA5P|aQvlnLAJqExSe)J?4Kw^7Kgi0537aRnsN(- ziCaUnm{=pB9Tq)$u~dtRykjxlPuNl`e}vVo^9f~OT$-~5K^|>>bhlPmHsk64?*$OZ zX?5tVL$_jckY^WxjRsX>ph6b1{W7!ez1Mr+$#L?h{8JVGJ^;%h)?mmk*uQB!-4zVY zw$I_MsJmwdy34S15z4}m_xqe}Vb{%}XDk7N(XFt})`#11E|K8;K=f6O?iNVo1*tx- z2k|H}5&SyzZxC4s|2nV3{!vPhX(978)sT>54Tl{(c;EVr0MLtJn+2}`N1Q`LPb zO^VO05{@wtIk8XVJe|^F+)89nB zA2s$r4~@(}@EPB@QB`o*IOZO15;s_WgfsQNEZ2glX=iJ>oY`|?S7>4m(kds?{>_BK zr7LsU*8b_erCgbELmfR$F<-fUH$=VFt=!vbL{SKMD77hqyDtgFwwF1@>?ran zO<(iJv@#=75MGO_v=1wq7D>%(OijN7(pTrG<^7L|uUFoWy7N(WQ+481s3gzO2Y2owbwo& z`ahsF*yqxkz5K**Ctg=D3${?4u>x}wx%rTW%H-%GCr<+>iA?6Ea#=&~dn>+0um z2jbRpC`C#TlGnoXqX`^0UYEp1J5&0XnjzF($j=~=FlEeJ)nf)jG@7f#Y(yZBaV8IB z$`^{||7P8cg}%N^b|EZ0@n_3_yir0$g+Kimc-D1k&b)aS6d+LGPD6eH1B1-aq(aB) zxq`e`Z8&RVS9DDL>tM~gFw)YlWc0<+V2y{>t4$_qC%<&53Zxq5xeI0R5Kos!Vr7xE zN+>0*{`^*5SuRWX!RL<`2G!so-5&5FILI<|3E&8{6{GbE?@tET{ag=tYiSdmS2H34Q7u8tjIlOWzLP zhOORuK;g2-HnU@gBj8hKrJ)%iyIIt!K185uJs(=qKczih{4Ck8_IvitDmB*bQdJW? zM|^z!r)5gPdCQ5Rf1ZiumossMe%kRDV93w?Oll1akHGmW%B60}G=GX~x;Zir9nwEm z;EnZHXza(TT?}R-w|!LvFeLv#wOHd575OZn-k1?a=qiP2)^WI2uQSfgZN-aEy|RY; zT#wfERj*7#cA6fT{jfEn!>#IAtyT+hm1;)Se_E9X?#Mi*PW2DYoBO0SgEsh;GebYf zAl|ei`C#sf5)J%(Q;S;j83_S8iA$`lcwlZSeREtx+j`(MfD3@Vz^l}X-dUvmo3WWt zH$`D?q;q20O3S)*9sdGGI`M|FcP?u-3r4>)l^&{Bus_5aPNabx%Pf%Ogs8}_BfN5gpn6ZmKJ{?<63vmC`_*(?6-wQWHFw5|hxa-v# zlG^{<@IKw8uA{cXOyVrBIkRzR4Y3DEsy6>TRqGwqHwQOB>~V?Emcp8)*xfl*Id7sU zg8ss7NiF8Q*GQZ-P;}S=>78`!i7&ecjeVYy$b?CFQ5PTM{u-O-vmfJ@L<~MY?{w9t zygTP39sg2w{(4}$^ONggL6-9F_B$^gDF#wF+zTBM!m1a;9<*v*78nCIqj&?!Ie{Qpxx#JO0RK( zN?Jsg_h^oM$;}8cC~jr$&LaAsF=#Tgpj&^_-G2KIWK3juq{lhLzAsp@Q(e zXfzmjqnF4U)s#AqG6dMtF#!$J*-`tlN>MNQm-NQoUxL}yy82r>om@sUB6_TTwgiIN z4OoS|o1$Y)tMW?5J8Kp`ZzNoZ}Y@%s+~<}-OPl;v26B1*>0&i>ll!Zvi!*Ii-*g~}ZF#y{N8wtfl| z#t%&`{V8axk_ZS!*p{7yoda&%j6G5xR&@gL;OIAYnD46eRzEBr3fkRWe3Au#DBZ}S zmk`Bwz6?_>Sg!FGe4;-6UAcu~(YL-A$JVJY5?#h|A9*7`d|-0jNbadKzu>E*8&8qz zWQDwL&mgo7P2i|j>P%N6(-_6$y!yWJsq!=;(9N21Z?)xm3OZoedaST4dRdo%je*~~ zlVqj>lNyXqHJ<9zQHW8_Kblt9pdn~^CQZe6-JgF%cSMxjUF=|*e%+KeX6L*L?ne+a z8LdvJpQ|AA{4QhCyGwA+$ylw?`{dyHr z9JAX=*dSS!$nXW5W$#q?8*>YJrc5^qLo|d;ef{F2Ol#b9tK?l`ke|i##*oOu;=cZ) zx+j^jHeYhBi??QVauzDjix;W(G?aNU$U)U1u(UTYfBiTfzy5SB1MGAo`I3j#3e6n@ zA{M(6say4W6^Yqb-d^WjA-mNtX_s2~?yu$L*-s|_{PEgBhef|#2KS9#)?bPpTQ77> z+#yhT9$kL80Jg82aQo9WZAMuTOR3~O1fr!X7aYdD;S1E$Xwc5jzJ3Ee|2c(<9}?q!e(-yUT+uK9u6u zMQNDz79N&DwnUvS#0grP-MNezUJTrIuFK{e)g)A?+>#bL7unI1ZE#=Wt`(!b0x7Vk zE^qd zi;R1a^1POnZ0hDgxe=epMeJTyl2j=b{Umis=vJ#cr}4@wl;7HvZJXq5&`4w;@~Q5C z`*YIO^Q1ib)Vs05KsLAM^7T9<8%;!5QAc^;Ml9MG%X6$OvTWB_&7wvYbHl=eO`odh zDc3o$ik?$|P}R?8qw#W=Vft%Adc8kTCbR2e&u7JWxx}>jx0NA?0D>%Q|MDi2q7C1tp;Tvc~-Wn{Sd}{L9D&^l#{+Y3*Bl zc2AB3JP!43oB!f|n10D0^cL2%lLY7L+d(@SR;Qd4YfZw|z!zCRJ1vG9%RZE=ejM1^ zHF&gsNE34^aw5cDsQ96^zxh)0bE2Fop{_@7MS3LV>Y2c_%b}87MFjw@vxP# zoaRqGe7&c6Vqp%)|-8)Gu3VlLpfeg%0|rU&+l-X zn!>i0*DhtN196b=G$UUwI=KJ6=v3$+&cp@Jgg#$;Kj>QbCR*lS3m(1o_{T==?)W(k>W&elVOv>A^vybGdh3wYrpa&#rMIohVCf-Z~@h(?F9io z{6k7G@b5RIMd49{Er3P1U>t*PnC%xUSgaybN@s(m*CfltPj`x}oCHc!_b(=a^^ zZMkMa+e9H9MNBa8ET*v_R3SnM5oz!7{#q^5LZW8TXNfNkt=G{zR!X0-K5}uXd8Qcy z5yTlu))swRy?<`8LyTZ02oQ|`ozrC90gtIV*sV$S6-T`_JUX1k%d9^s!>pvF<3ao4 zVx^vsVv{m>%8ter%!zMQ!n=ehxDj#nz%ufu)_x6U5u4H&4==dhR_D!PjS^X|CPV^< zOsCJuA4%N}q+2aIrH5rvwKkczmfm6L1}uR37U}71Nez>YZZW%m+08$O)Ak8VN}y-M zh5=ZnaXO7-@LiqIs|s05+Ni$bXJk&9jomCKGxN{VXL)Pg8G7cI>7F2x$XM%hUVD4q zuy(Eo!Xt9##tzWa&pMu)lI9-ThuFUyUp=>vemt+gypGrJ-t8D?^8RL;<=*WC{5Yc| zc!Pssl=U(oO-9$=f?W*q$NRMSMzk-d2NR21m+}C0j4fL#CsY*g+mWB);QoB+vb6Q{ zLa88j#edMISs^oCh~*jhh#i(M89io&-I8Lf*W~PtN|_>`b7ws5Q5phfF_CV*Nkb54 zEc}H(TEnwIW{2DK0JIz7N<(u7-DY0$9p@uY8-!PHtPyIW0XK_QIMnhlUCwx1$$XLI zkp@jr8h4D2Vk#Y^k))X%x~fZVB6hXKklp^*c`?)S6jqfT{U{xbP>btpYzFwo4W_p7$^CK9O4bhdr(KX-jes(ny zzu1+Ks)aIE_k3aoji^I)fU6>bd~83T!F~uhZ5Wr!kfvoR-G;h|uJ0pYnhu1}2QSG!s^( zL_|zep#S~ag#IL-;_RkRRwtiP;)?Mp@!`>O1C8C=`p7OFPj|zv$P3L1&``Rz)rI}K z`;#=KoPaVG{O$o7I8%fvqzVu+p}KZb`;C~n(0kw5!vyWugX;clo0i=!7=Du;l;CP& z?shWqOjXESb8bJiRCQyAl9hEeK5QtyC4a-j@+5{=W0aG>A4=gA0!hg6)bja{eJXDi zeD~I@HIGW?*m8A6TT#^OCehnro-K>|8ZU*zoTZq_(K4#2&AMl?${E(&`QPZj zFm0>igVZ*G7TBLQ5GbVTnSSuQaR>6kSoY)})rtm}s-#cW{{F9O2I{4n>888UBm~ur z;WqZZ?m;_hY!~qApbW{;)@?74j_q!VV(f*YMS&T-^ZOs=#ZJA`Tb(n23>8iCr0gE0 zpz=wyQDXU%-z6-X$<59lta6iPl!;l8p#Qtu^lqkSxk#HRtp>Li}7uilSLh(8X$XY=R!=qiQkiSe_#}5RuQ}S?L1W7<=q( zVhNDVY%=JC#B8fbh&+iLW-JIh{k|9BYZt3LA-_r~Mq6jARnq!OE5OKW2sOzwRN0)`fba^GRG{f&z%TWgXv2m8<)+L68&7~J53~5CE>_Xc%Kgk$=#)Y zn`$I6S1Ks+f%VUwDU|8$xl>B0vgzp|T|X*Ew;HICJ^|65#3g}iF2CDJQBOX#ah3v! zuogknCVQLbQG70T@Xh}m%|azI?|B{Zi2xL_mO=^%MX4lQ`a33Ft!2j+Uj`|mn_c-{YU%RZ=+ODU#!b5)t zv9oM%;L9AZkA2!cy%S@a6miTKJ%Dg^VmQ*{3`9=-=$LA0(CUO&tcXLtbi zr&DQxtr3)G_XRr_B=jJHgr|EXB-lXmE#fyc8|~LlxI8muvmS=PM(z3vDMkXsqkWS& z#1B$$18Cdeyf*xD`;9;wQ{eRuFuox7dA+cCty$E@K-!X1?Y!w)KNRzA-|7!V>dGoKL#Li6(mITyxR3ur^l=9qzf`APlv+TWL^e(D&y!-;rMTAn?;@5X#5`4$?{7_Jr) zp(ckFg);0aH@q7UWt-w#NeEOSrne;W5qXr=c{0ZFPE2@=H*30azS~oUld>$E7jaE0 zx-JRFDiFrjmcMWtnSu$v$gx?mjkJOZ>QvbqGhb}RryAQ&&MrcFesmpf>qee8r&X=4 ze}4^2vJ&A8X6V+}$%hG@^WNpkx7(*JaM18GV2M2UM;+6e4gKbEaY?hEUv7D(o35v1 zWPNx602429m(`GK*4XX=a-wBae~RUgAHd2=MuiwTX1|97DHUDuL@Okc5MOh;=>cKD z&%M{k`_%4^?vb`Fz}SaeYsrBta|U^A9m=x48`Uw8N&xW7l@sRUZS zULcALkDCBz z5BMOVPgOZ{nd_Pq-xceJs?kA21J~BL>_|ZFoLYO7%7uGv?Opfh*FUGdHZRlOEBKrB zTcDuxGr=j=Jp}LFooImE;PCzr61vHa7hw3RnlAj3+R+Fr;DwO;+ z0!PuwS__L%Gip;*iZo|E4;|dal($DoBD7@msxqBW z$q)@O)6g=+$YT5=7E802M538;t0V)992f0?^WB5HBPk3TfHr9GR4y?@8Ap@3MVr?( z28`&$J-kmPpfWzI?o2&|+;M1`^hLZo@J(Yhe?u;;WzcB= z#v#Src{d|)x?y`c1`gMRx^MVJdNab@JBdXhYvI_A;V$+pn)88vkGg_b50#-y6$%E* zzRMO&lpLePTcVjGG{ zvuQO?ef;gFpwVuoZT_D_kF(THCxY^XI0xuI16)4mGuk6tj?3W9!asWmL}N&?cZzyp z@a;`Prfbx~!FcuKA|r55r*aT+D#%3dnLW5x78L2VS}cuEp0c0=tdSabA7uboH~4KZQIL za*1=42?l+Mx9QU121ci$T~Ct*tT3J)`faGjp^Xk((pmemXUBiWgV!N~xq7^=ZO#k7Qh-%oA*N6P%ui?8()r%wB%26%7! zdF>g6(CsI}q?bu8niYp-7tdjvosb!!9lX~C36^Bm)11(tPaTaaL zWY$kP<1d4zbhzZC)L%LP2jgdpu1d4ky=Td!@}&{QJ{IMRR;q-2$OzV6kqSlDx(#@K=K z?}$7(QDpUv%5V=P%1m^(y0z99SV4>e%ikVm9u}iK7I;oGGLh>T?_4IU*O)F!bin-(mr)hM&3@!hnM(N_g zfr_kDO$x>pvn7z-oo-^IX7xTky7jo5cuGl_o`rD+F~i`+mqE``y;*insQD8A|D6aRuE5v)?Xs;iZyK){20Fg0lUxmEwQ z(ji?UEhU}O-Q6JF-Q6kO-7Q^$bPLkm-O?@H|HZk>`y8Kd@5gtH{bBDha5>kEYhL-g z+-NwH$;Z_{j0L!?h8P+H5rz70uPiH8*Lp{de5uKiGv1R=}LZGVW%31(dk^ zRDx#_tz{y{Tm^ucGWHe_p2OXt!8tP*h-7Fw>`m#vng)W{An$cF2v!D>c|NUOW?jLRID{)}Mob%llcsk4p!vjsIm+w@q;59sN=6 z{$E9K|0z;z5dogRqJIKVdUAZ)BQ?k^>)p8p7cgN#jHfYDiufPlbK)&@>Xk>iWCjb; zndd}+mjLgcPxk2o;_W(-@Vb~Qt?n|a+XFEPW{Q=(5a&BF>(m3vWjkL!fHpLFU+yyl zwbf~DBS~?oABw5FAOXqeqgJ!shi(dmi@~THR&1z*f9Ws;TK6~2U@A7clHMS zZUTv4BK*ihIs5N`o~%k;d(RoRfXLS82hELQveDujh$e}A_Mh7Oc8eNSa z_gjg&#$%TODvD3*BW>J&^9lsMh8R*qsMqUc?I+ z9;PD~=(R^M(|a@m@f2=I1Z}l3+2*xJ4o97gP>>PcoNs-)Kc@HyfTw;amwM?J z3Y2|}Z&A+TzQ+MB9`!PU2)yw$ovC)fqQPZz;}67XaM&{oZdz>AXDsnQD-ORDwZ>ljhC%+qt0n4~}wG%_1+f67o(R^db5YyK1f&Q~=xxUpip| zqaiFbE;pto$Ad@-w@d;r4Y%iYf#frSH53yKm=}lwZ_vvbbd>%v*~~rh+$Jhir7y%> z3v>nnaXTGDMy@C(ul%Jb_n!(~8#Z4TTYcH>@P5flZm*xQPaF{;sul;1+Z(|I)X)y4k|DX1nvBl6cEU5CnlWT%R| zdATM&g`A&iJiVs8LLixp_C$MOMM|CP?|?bUJ|AEVhSOv9y5WC*az5Swf~qGWCMb(; zEo?MxURHnxbq5_#b=9~d@Hvkkloyd|b5sv>M-WV>g9k6WW*UKL=`oR)wkJ z>t_ME4(KQ#yB&6h2cJ=Op&9PcZ@W=tLTp}P^3<|@hJ21rJf~D#QvFwUD-QV5xtG=E zCvNv$V#9j|W}qW&_f+TL?D2R+8lvQ4OXt6{=l|H<9XQ~zWDz2!@}zVbcY9w|93Fn4 zR}DMip`vMxlK=unld5G>9efG!(ZAF4&1L}hcD}N|-Q5E*I(6pM0o~DxjRNB*!dpUU zG3;Rq*MwhJhCmU?W)(PU>$jr)vETD*icwPEJnc`bvpYP*{+~z9pSQxoltMf{xIjU> z$t?-Yif?YD?l+_9+dWZTRcwrkXYiCXo8aIu>_h3Tde0eu{}3X=q`yZ00)Jx7bGs?c z&x?RIWfK|gy8YMI^hkMeC3`l`x>??fA`^cqY+++e#%-~=1(;gregEg$q4~ZG*^s?s z3K^2Fe?E0}yFYH7>#f6Mq-#MA2O@NSgzLB~@74e#b6^cWb|uF`_O^tYyAbx0G4L}{ zeZohs>$lWtcESogcuyk_Agl_?lki&qqAZ=7zgXkfB2@Skn)~15nQWtNZiW}H9aLS= zU4Z&d9;e{Nq2DZ{mm~q;%#K%ZK@CQuZz;z7V9k>oreYOlS$CeCeHy9+$l))cfru{t zKKI;$kl1$uGqe$^yk#%gruQHE1p(#Z^+!jV_l|(_pvJsOrOAG&dOqZ={LZK63^6z? zFu3#=nv#z;>dUh7=-rCO5Q}_Xnx9Nze!5!jb$CMI?)-0J!XHZK8XFk)1Zlx{82z-2 z)3vIwi@Qtps;DDQBOMokBw*Scs!pY?k!@CkL@{9@Kz0-ywb3O7^UXfzTip8TCAj%5 zpLsf)K5j@jILu~rOr~(102)CE{hIwR=Zk>qkIgoLO4uLUU8qQblI-XsfRwzxhVZXL z^2ZMwM$p#iS1OgOdFG(k-6_N2!d6x=Dkq~a_wgvuA#m|{1u=#O4Ng@tfx=zmy)q36 zI#ohCkr1ri*~S2&+xa%vk(#%ET}7*~aTFI*<-)~~af}Ze*2=$l5jKH7?yI92rYZFU zkWT^xi%G>4M&aZ}5v-0hJ^(w=s4nWmUpLGzF9Jx*RNj^bdUE?71EXnf&#TbLtd^gq zS^Xvki9sL!VN6w`*qj83!X31AaVc%_P)`>WWCq7{%4J%|%0}{s?0R<&@&YslW)WQN zm$H{fvKFYf^R7X!EgFTaS9ia2Gjp9xhpMrAwRND3BqHv)HopCroUcT-Ik|7Fyqqy{ z=avuOl_Pggocad)MfK&b18&iOuvj~1i z;`tQ%V2-YgZ{An#J(VXpobTH=IX%H>a^5CaXu6arlo};@teE59EjUVX2PtdH1qqN{ z3=RR9+s{C5?BudL;%??m)C-6x5?M5fB_a6yZAgViD<8nnaVYzOX%Ap}G8qgdDb;Q6 zh9K^4#zzo+rPbv`N)-F|zWIy1aEvnEw!new0S*`-$1DecIZgnv9V}SXQ&+GG7w#K9 zvSlD;C5($@qM*arI~Tl)T)*k_H&`1iKOIpQs9&e?&uIeaqFN20ithipXJkB$4RE61 zWP?)P1DCN;-~tc({u5$MB#wh$+~f@5Ol{gX#%Aj%j~R3Pn}y5h%o%jYPZvv1N);;C zEEfv-6HJ~n{Hg4ozTV8-;N{dBeE-l?_HE!?0Yg;jjDP{4{ZKyv)&M`TX7;!)!Sh z&+wK3RVV}{;H4n&i2d?|26vg^LyjQ*8E?^4)<}^rI*qQsn;JUM1Mp6u0o3zR3ajp+ zPRgnEsE@iC1M#AZALs@y%L_Y;6pwq?6zupJY43e$n-CXavfMt};wTmVRpKIH`LfdG zr;CRt1)3M!aM-sI?TE=Idt)r?;`T@(Q3T&rPlf0}_Rw*}R>k7{Nr~HGdJp1j6>^nWlTgp&feGIo96&ZJQp72QYy=pR z2QweA>_=id-Idxdm<4&9@_r9SF0v}mG8o*ZRyB3(X?=NJcwe3B%`Byfu#Wh>bJNRI z1c#ktF8sG#qs$acoX(sgVWS3O9lMOH)#=Uk0zW-$oYOSq+Kpf0sq)s-$Tv^c)bOBc zm%s(xM8XNb)cX8srG@@Dq(_}=+T0b+{LbUz$KTe7DAau(I0kL1!b$M^E;UxaG>hN+Vw1D#qq#eH z@U73jcNRjt36tgI0va@L)FX;X*d7G~);%1#=d%35QLXWA z%KEK#%2($N6Ve7pWi324z;59+!Trc{lmz6B`fR=@ZcAu#D4ks{W|U_~bj;9XuYhpa zXK0eR1{a14D)G4Kd%o6|0OHoCy8PriHSKNOeHk1~K-&Y#1$5XOHy(b0`*=`9Pk=DA z7R+L<5eBpekQ!7j%g-Su4GPqCDnS&^;s7i%SofG)$&g z{vDlc;MafMMSuOElV01uba$X$YbyX*bYh}&VFrJ(CBRHHzI%c{03Ai~`0yczcU9*t z6MJU@r;S^tU)7m?wH=zioM%mV71SAUFFB+q1ISad{Bum2Nq}5tk@$4@byV~ri`(N1 zf)*|Q70?$&9_!o;2J=d2>mN1=zEA@G*^a`*IY6NX+&%dKIMr^Zm8Jc?v1Q0P5NDUX zV1{XReGHV&dp}%*d-oH8dj$LZCihD#mV(Lm`$x(BVToq+2 z5zCqb4`K7vNwRKqUCt6V>?qR1W%r{`apRt7s#p`%Z`S_>3tH~RhX+Ab330L5$Lt5$ z6NRY~Y5XUWg#o^MlT6044i{?N>z$+3(3epF&>{OtI7h!%CZI3Qm*gI3Y&8B{?SZ$8 z3qVPLNL&tQ;g!s1QDh2%yP8i|S*)&sc-$UkTo%r_Ta%xASV?n%cx=D>DUgk%JeU*V zYUeFs-g>H*F>#90!`;9VMav(()c!2HGJ0CzYcPdWRKXm-H&zETT_P6( zlqiX9l8$uJq)?@(Mlv$w-~zm??1K+hkQfuUII&)(SEgC`4Z`gMnL=85F57J`XAE=m zz}-k#QObly&o9XC_V8K21K0C-7X~7nd()5kVe)mn3`u6Ki*yFNeI_2K4Yw8RO(9UP z4`2g%lW4Rjw+a^WKJ@G-JDF1BUlE&DX3SOT$-gX@%NoYL}MDc&ex7qN-|C6J%{M7+)BdgBr9V})7YO^DX@B-#V z1s0o~pm^pxJQAt5y`p?0{|nLv4r|AI-?V!C@d$Oq@Aa%l&Q~2Lg354bprkrJfIbS( zyFrynyfzPHdgA}om=xf+oM*Ez^ItY@UWP9y2`_JG;?_5=O`vqUFqzUAYI`i6i0Vv6 z{n3OD8I6!uH=caP7!WqI201uG2&B@m3aWy${jor+Y z+ryP8=eJBVlzQFALB7VeX0JepwODBJhrBov1$c4>?5{T`E0&>5cKiBSB816h>xQnU zvZc|*Dd8X9f1`uOe2yy^$_Gl=OO}l!%8|?egqqydseuA{qChSXi^zvu z^$|vfxJQ*&8VKbL(m}ed#mQ`%+r1~`YBdD2qFAL}B2RHgK4;@jnnN( zZxu+V2nh>mrd-O4aG;VDDDcDAWDDRoO~^jpXL;)8aGvbLl8!)w^FN_ z&)j=e@GCf_d$D`~{%4Vpi@k|tL(iuNww(6K?qqCwXzw#uH@5S3(HxJ0duVk2-JjPy z940rr#nn&cX<(Jjz=+h*HyunCllQ0Y`pdWyaccK#WBl+AXCv)LxrvJ;dX3@*u#Pr+ zB8YpODS;x0+J2>LjU_v&4 zKpDaNH=*o4_XJ2ZMm^47C6!rh zvY1U36++_`6L)B}#;gH?b}=IcI4T5C3qgE&JpO{ml0eG+C~>*}APJ-pw@i@`r&hRD|ofEI3vrlGp!(gvxreEwa zvs{fV1#r%L!ifjsOa+7wl!p~=%a?1;Dy>Gc@YXuQXYnBdKg#sb-0m(?m_F-bkQ-I~ z#lw)S)Jhpey8_y5?fqm{EYi{HJQTx{uMEW=I;F}Ew|q&j20W$J?=gxf;X{rB_>f_G zGW7KVX~Kb)VuTN%6MjOa->H7gfBTL+P~_LJ6NSfvOyuj=Id;j16<9Ga|1h2h^(K~n zuoeJ)7(o&n!#lYFAikrWAuI}`>4F%`o-Ckx1i6RWt;WP|wb}W^WZ>eqlc0VmUZnh! z!O}7znvbu`P#<@}nLi;K@mWGFj+ABDn^wCm zmrsC9l(?YI13*y$u$CO72=hU&4*gf~cO|Vw-s7dr%Lk$_XX$J$iw; z%%+{X^HFq{S%qV^2t9l?tbhB#GB4w(9tE}xII9{8Z26+E@W8E>+lX%p8A1$nrjCK0 zEK(_Ss@zFqkXW;}VnPw zA*vvB6&?C}G+pGMoBMRc5uULJtj9mcD|U(5TG;`+mMM{9Gbybf87VzW;g*vZ^D zS6$+f3E%~3H-EogUkp?=v2ZQ3x=WR?d~AjymANMo{T52+&*lBW^!zOt|pqXp9#bx@u_ z(6t#1MJtc|SZY4`!r4u^-u7^Nj#)5CL5$h~ zcd{K+5Wj&Nl_;0WM*@VbXbZE0tJZ)y{dO~!0EZ>|MV`!L%LqjRZ<;rAm5do&&M~QQ z#BJh;_*@KWBxM=hUTbUg2~sq0+oMwYBA0QH=Hd7Jy4l<=yUA#uUue8-7|600}Z?UT5wE;59Ne=q&*a<1D8+d`ncSR2FSC z5e0ZEM6j;B$mQbiuFS{+;E~`69w5TEaGPJpXTBYKJ;ZrT4o;E(-7#dUT1sYtq(?NZ z!(OLdx|3MYb}s;w(T#ou$%TLfg9vIUGq4KPai(Hb`4bbXc?no&1azm%TPZA_nMZb& z;~;v}POx_xiw!)A^7_7(ODCG{@W?9|BmHM!y+#wIqNXXhTJ(uj>Up85iOGa3HFDIA ztrp#CgjzQuZ%W6xv0~{90Dfx{W1FodFI^rcH`og2_6U%*K~AtbG#_RPG-R+#Uq>L4 zsW?<@HZnw3BWykl`njzGwBy+U;U^%-$>33XFEyz0Bt6*;@0l=$(XGNUf@Bho{XxM+ zXD*kL!A_{Xc9aepyy@yKzxx$l;*qcUrBNqG@Xu;6m8%9PTVBuy3y=O0S)@hI5iEQI93kv2FBj7$@`_-eTnBfJ!3r^70ZBN?N66p2u3x6=- z@j#ag_trp4LLlNX&B0uoK7Q@qmgi1 z(}ld_uK10QV1#eMK^hPV3QU&UqO8cVRW#xjSoW4*5xQ=3+;hNb9lLNB*`6ll@2rkK z28540vEQG7=IyL|{1ccDW2s930bv#p6Xa9;+mD3g26K~0O?F}T+MP>3hj$LgKI^#3 znOo3pe=}qJ+-2YQr1%`G{fCaKuk9=P9o_Ichoq>~Kl5?ozkbjynj!^^%LO+AWgq&v ziR|*>Jm%_;gF*8J$&R5|djaj`7DgJr?(SHXIyXK9ddv7}wbN+;STjf!L^uv;*qz!q zKKn+=2(Eq}l?>{Qu~a~}ctQA{$y0ijJh*R4J~XIK3XpM~At6IfCx+FnBk9N2@Is|v zJkp&K;2sL>rMeqghD=FaKWxa$%>`JGXZm+=U5_72`Vlh`a)Fy^z@&R0Jeq7Z|q#r-GHD<)8+W zAA*EsoCTaep|XcdpoHqTQ3BDBauiPg%Q?nMVqh{ z(G(6B?kfzROymb0`bn!@_f8Y#_`y8*k3B_Jl zrw$vmG>qqQxM5|sSoruMYQfYX9huQBA067-8#-2_AfYuXr0gV9EdmM zp|p`aDE$0lU^xOP{7SOCO`^NObNONt%U>JYmcQH7)7Ogbj^1tZ<11q z0=M}7WIOBudrJFGh(#bUg4wk#wjT`LiEFg@NW}A#&RVivFl)ix*f)F$zEP;*uGsPx zWw=m;E3YcMJ@{!7cQt4T7elWvyOcPm5pi7i<d z*KQKgK49U*)Na)*QlvQFv;x zfHqwg41}$^c$AYi#hCyu-eXC*>jo2&vKM#z#BsPq=ILM-*r}qnJ5I?xm|R`IZZ# zdYuZ8LE!5r^;J8sj#_>`E@YYhAQxDVuESfgTDh=%^I%F#!D4dbgrg*>Kk6=T8kc|K zGeM)i?cx3~QqcR5ebFDo!+3nV6jMA`YT3Wz<~|+n#tQ=eU!M!%j;bRTx4e+61z`|= z&_&i9MRw%A2F#d>t5|7o9@fLF7MC+3JM=n~>qi9LvIe)Kly!3APhdD+D@0wdlkY=M z2hQva2gl~l7)|#=KP%0&ymudsyp-o1dtcLRbM7&)w8xgs!KGS{f_@GgXS_kHA`7AMo8y}_beDI{MG@F_;T$T4 zVdKGrDJZaCa?I;hK}RcUcW96(uZ%qgg{TW`iNJ;Z-M$f7_^gNOmCLRjT`!WTlT<2} zU{$cy0oNWCiF)rxY!Q3P%G)<@ueD&{WJ|piunYXowUKq-yC|^)Q57wIfuLCDzDX{= zsI{3MIePPf-Ve}C^kv`W^ZV)&lZ`dud(#&Q%bWi z1SlBNN2Xb|ywPIQzWqV}bmUFBHDG5&TdyuQS?EE*kER%dN2+?GLyd4ao1j+zz>6UP zmji-Rt6qPkTaA5nSWkqeV@*2p}Qdh2H>-ndLDB+ zSzOU&stlTM)@H5eBo&OPvUhiJAPpst<`l^36h5VfeA$TjwD`qrUUKi__KsBhL^k1S z(XjlS9i;o|dgHRZp7r}hmde=c&frSYiB!il16%i%IPo+pPpEhnwY2l2OO7l4 zk*A@C9ea@izdBzKXrKT6_&mYzl4n2DJCxuV9EORiAj7c&DEkOEbZysrADW4wA*jl$x31npDwXGiYC2j!xuzVx?u|0qEX)5cOd;J<+JT-IT6MP4KqF*w zdLPL()qH~46GTA*$+2mUfIX#N5zF;1T=KAjn|aT*H>1*Y*yMA~U_4L`y;R@5JLFhv zcE;^F(ViBrQpx<@?4U%pHl|-`-J?w}{zo(lv)PAjs;~VswwbI~a3$(H%x^A-nbd0C zTKn(j%)6eJdHVHhahOz=`zSLZZ$NO|%SpB}nYIEs^Z7v)v|wsxSF24MFC4Pbr^zMf zw%FmQsa$X8VrZde!Wenocx8rfSy6cS%0qe2RI2;;M2Us!XJPPz zZk{AxE&OLcd|?R!axoS;f^0NbLq?#Za0+6HJlGuX-ZGnGTa}1bw@eLj^dzLDZO$DC z>hS7*Tw3tdY>@T3blx7m=BIW`T!ZcET9BPRt*bu%{#_8;EoCF$^RDUQbKof6lqLwKMnFo+1DS6nG0x4?B{f>uHTu?j-@QE96-?3!YHa$=QdwOi`*Z6& zvX17hRgi$jpyntI0YlE*CNe-Qs7{t>4{4O+XpyB5mVd6`-BnMO-gFcLJeWKDIH@}< zL=7Ha%`DxDQ4B~JM0nQ^@@sYR7T$1duHZK;Mbs@YoN$iifY$7~oE(zxxw-mr z3r~FT_M5!>+bz`|o-7Vnn3`ArEzJLr?df44pTI_#Gn-B#^jm@*l&gF;!@z+=Ldm!u zL}Ell#D(T(nLFD@qr3A;@7-#f^2+ZA+vwx>PL|QfQJ3%0*5;1epQ`1(v;{aW3Kr{6 z<}Q|{L|p_ezRSjz3n$c|!IJj~;}yQnxTBDg7&kWS&7e(uljGyW>2~py?sU9jUHb@R za1?-gHjm-1Bjh?g8kxBQD+;`skiIZtBH_E#+TF6N-i02`^@7K%BP@TtJwi0ug+bwY zwaz@=!$&AcOS)P{(ow8ZU?RM#={%62^tCb6^a*uxol!5!RZZh7 z^6WC7EKW;2%lRe&TzhjI!0VFpU2riA0_*`!et6AH@vE>>iP{#rowIYHdcBpzD0)k* zw%8RK>?cQTUZ~dvD|sO9D9{y)H;r7dbLW{gmmeZr0l8Lt?q>GK9zRADd2$E`L>uX+ z|4X!SzlgR`Tl)oNj*&3YMFj9WEO=m>)AgRH2nW->;?q+)Ini@GA&)bmRH70&CyG_J z!-0cfDZ5X6fWv$zalBdEQK*nr;a(EOPys8R?S?L zVcwK6rS6T=ggiL_KWe-fY5qJodtj61h68(ODNy1%RdU zONWIUV(VGnGP0ugT4rp(It;|qhyjo;RLJXl#gj`6dAe+;_W?M-5|BUY!5}l}H(7kV z*77%<#fPG*i*2`Gtn(0Q>$LBv2a+K_7oSi4oFw%Y`&OxhEIiwVHe;BbYHj7uMSJ?* zOnQ$R?Tc}{Wk%P*=CO720$->f)RlH<}<wCv)D31XVOQ_?9YUH^W~BiJt@5W45v_NT5?1NeMwhufbsB|1`D=2dG|%i`I{%JHVdb^25xb@ZzH(xAIzCor-Z4i7TgEE zBma~QV_Dw)?p-*ochbHX9f)`&0yH@ITtMAP-IP8WL(EaG!R`->`JP}@#yST?drIq3 z`S>>cCwX+Ls|apOA6UYmbtqlf6AL2)G~lKze+U>o$wa>mt=E zD$Avdw0;EED9r|J?+K=EuA|RAFmlBZp^A1%?!N4wogL8@N$t868dU+m)81{A-gXF%8~^# z>>R_+;-)hT*EUqx8t#wmO|C2sXe_4xLw-9*16wfzG5ag?D!sPgz7kb7ehkQJuLa0_ zi)|y5NwR(MgM5lSllg*)Y4(SW0b&1W$@%4erBOS^F4F?xjifew zZ*BdC=?Bh2n|-C)cjdfLHsVzI80yDbhw?N1K-tHpZxcG*D{r434z%;lF5?iUz7}{( z0iIQ$ncVUO$p`$J-UfRvan61BPINDuWzuv*1`0@O{V1^RP{>g9ONIWyL5T{gla&Me zIN|PeHcyjp=`e~+;1^1cL~^5KpbHtoGIH^_jR$vPK|Kv69gmJ+rPzmo-IqI4!~V>KFn`>C6bI*e`@_IsG#Uf z%`lbAx)CkS^kCNN{OuRhM?E$bcwBC+(AJt>*E9%{2i!Hqb~y>;z_rMwZJvQgPP-|C zJFlZrv$krvMtL^db}uO_t7D7+Fb%Jr3Qs#4W|BDyMY{Hzqh!$soKF4_BkHaY0Y`GN zl*xogQ^xlE#`7e~X2`5>M4vl8Nv3~xNt(n*O6$y?5 znm~J68jez_nr}}i);``x&d;_Pqx2ZCr|-3$z7Ek|0cZ(U1YCNpP{;<0Z+^E$GNW{E ztzJ^PKDL`wU-^9j1*=G6N4Cjs>y0DQ3IdIG8|fgx=`b^3Btu(ka!Fvs8DuaXkvtT> zbJz9J-DD(VDO2&tr$RVf6$;c}tMiyEDD{#ui>EZ>uS z$j2{N_ax|g#p(LU!zV33vRF*t zRoU8}Jn@+BRo6PKjUhMDwy=HKdDRBR;bbCa;h`sBr+Nco>Z3r3iQ|R=Ys2H__#Dh_ zw#t9yI@bqdm)`K4-qLE{hjr-Bb3oB$WU=@ZblOBOiO2ZF=sbh9=azBe|CAN}xuGGb zM`$YHtS1*?(=SwadM*zn>0smS5DCzV~# z;xRrG_(zT|`PY7In;`;mr{YI!8&C7iC(#dWXCCrOOE`q(X?@(dTu$;M3Laj<&=5CG zSG)D)_NrV?)b<1Y-7%=dMvjKB1PdnPrNVA1fSqO*H z)T!-cCvsO$Rko9r6aHctXN$_MY9wzix5$3pckf^Y!Htd3iac=(Zw(|S>iMFVdd1tL zdym>}{YizPq5%7SDq``HK80f-JPuMvHlVFHd;_%VH$YCrakETDuXb zt)!8(945{9-sH}d(rLPJY0Pk}tj~e#=H^A5#-s=U>s{L%07xY@t zUuw)f{lYTE+)`c^7x4|SIxwnscS4nZKpEmaSG_}9+oXcj!Mr@&^F^&s>E$UB^a5Y6&qvP! zN#+LYbn)yrPZ=NF)0eiChFWq{5Tfn3sTD$1apCf_Npe7vU{F_g@H7`GyF*&Vmzq39 z0_9{Gq8>cso35}7=sybrgufqLL%CqmAt6!uIBqO;)yYAqVF=vly02Y?*b2i@U{7lm z7OmBHzSN+=&grk{zD_S2wiOEKjlMW}~@ZWBopu3Z=-A6-M-(NkG43c}_%*|CoDYUXP z8(?_zjATR+c_Ux>A8gf~Ig`{#DTML+E?lOKzop;#={XqEg{^^RuN8gj)CmSH{ct}^ zScZS5VUb>Ae+Rg^x?6da-T2q+-fok!uqX#x#`0U(;DzA_X_{Hx5Vx?=sE zC$R*z8}q^R(Za%QXXQo@wGqSt=C`+#XMg}s!CQd*y#S7s051PtT%06}6fZ47_Ea6- zRWQ(_VXZa|?2U%b!v#&T7Ff?!-*%u$^SoW{Nlq)yFf7E)Tc_nA$W6P>t%jhWpfXY# znn>kP^xl`u94-#8FXU)zsB>SK9AvFGuD&2=A@B{WJH|Mk;j2ej0P3cO%Bi{15AjRb z%9f#KvnJ~Bj03NS0HfiLdK0WKJ2DkHg4U$Gy-p)crP>LF(tg$Z+HoM0t9b#Dg#{mt z^1L1IgTm!$Hl9b5Zj|kgtr_M*ID5^bYz4ti$vup~^31AJane^(v^BpL@egGJl&}?Y zLg-L7++mO`*2{dz_K6d>qLa2m8GPg&!ophA!_Q!!&g9cnJ-+ok;eW6oebQ1BZ;5r* zd9L_Q*~CVzef!Fj(JIg_lv@8=06^4h7*dbems^Z3V5s0Yq1+qEz*4*KBHbe-V7Y3G zwY-X3P6>jGB62iWQ4vDcNZvtYS&2lok8VbywOoA2C?h5g09*2zx>%fHqbmOdw&dkL z#Gw&YZvWPuUS|~4qD*DNAIi2y;?w6fS;oW0?wRlBQl*Hid1KK=3>E=)csNh4LfkqJQEb0(??Ae2McPGCRE0w59TOwM2haT@xJLCAi>W;yqDpA}>7O`k>q*ga{ zD~>yQ&rzB_nq|t&V^X#P$Tz7*N_pe^T%K3u18saCnQm9N9ys-v$ zg4_9zv$)cZO3koDni?t1K{Y)0_%*LD^fY&O2!yX2lDDsYYFYAkY(LaXcJ^tDR>Vd| zMPU+Ud}YCgjackkA!V(&S6Zj=SK%r&d@oCob%EEp!U{OmDnHjp@->vW`_OP=~WJU;ad;a zb6Fn~nK}zCepX~^EKNx{@A$gHYcA7+bnB?qkFCRq1IeGa6}(4xiub5TAb#fy0|A{S z1eB|T@LC$Tl2y!@J!&i)EngoRD@7)hKOH#}DL#N=e$LdDF1zNs-^n&2!`nW(Gs45N zOZfXG{u~IndWv&`?2n{7*t7%-5==lgK$=%=ije+%q67bnEdd{o$}-88IhtXkGe+_o zHyz-+6D0vQi#!Zc;bM}{d0Vh#u?t8p$olI&;+VgMkU%?_X<95ct2+=yGJ; zkUPTqE{Gxy{&p$vhVWh;&KFsqNLTk0i%3Z;O%BG>2ub0zi^arXny$xA7ni`1aqxh0 zW^p`Yac2InJzr4R>@R|R?E(DMYrp}bagQxb*`7ZYKArg`yW9#hVI)NB12BNj?Cq86MW3$B6_X2xeFkk z^mzDG9(naIU(TjyWZGoi8(N|aClk$F{R8FE{A?o7sp13P1;7O$aeuNL=%9cLb zXEI%S;cD@iE!P#!55~X$7~aytxd$Xdpy9Z$TClzSCAiXx)N$@QAo4z2)(ZAwG~*|# zE#yCo^7jB$36NaZA%!%XbaTL8`|=I|mQOT;7I{Vw_$d)X1Zdvf4iR0pHKy5QNtIGg zhrLo{+}}c)x5F1^?RM$vTYt=QSSWhGG5vSm@L_d>FN z-CMu>+hXX3=4LsJsG)dfbBvAW%8Sbpaqf+*#_xnMBkAp=&+QW$*gyPz%7K&pB>`<9 z9}bvwNz9?9CQ++)jUOl4(GL%H@(wk!gF>3Q9Q4lRSKo%IG z4v4}#03RnBs=W-CRm(cy*hA2+6neaOAl25!Cq!cvBRtA-MH`zL-Z2`87keOP82M0< zbbT~k39vR5`ce2c2s^`Gc;F);a;n zXtlVuGq@>05{6Fqk(GwVw?c3=XBUSa4ga~%0NdbKk@V;E`|uM;Bo4)Ys7FNaJD_aA zawngM%px1r$T6SQhyVHI6&M8xNDi-fNRCG;3a|~Bx=Tw3UP1#I+-5@4CCbr|F8ODG zrDVEz#l_@)ED!j1Yho==Q^=fY7OG7HhDv2?k+=FcMY1kVgdNRV#ZwrKl?MU%LUP?x zU7V3HRl(Pt+$oP09o>!-^)|*n#ud|3BTBt*zOggqnG$?LU`0U3kecTXU6RGM$;`)n zjFm)wwGS~wpl#4!*_mHwizB$%%ECuQca2J3)^P4&8>E-HFg%u3nD8rIZ zy_)-bN7|SIC$OIT0m!A#&GmJSLl2j6k(9%<9!oGs(kJ!zhyP!FBMlm@FDVWTb_YWX zYAG&(2M1d!sbWbyF$x~(O9G%F)Wz~QIuHWN!=B&#I;}iq!y73q4n^ku-d-|UgDIi+ z%1k~>OR-+?`uh6C5>b2?*F3#(mm-vCE<65LOy+kcKWQ~&6Wy`!fl!=AZZ4m1F3pFO zUdlb5{Uw=-5|#Hr?A?d!p4mzd{PLMqgXMZ+i!y$mi*ai(N#yt|$j0QiJk#?TTyf{A z(fT*jdC1xqaTeCAZ35nhY@*#^P;!7VYk++b^4&eGPu^aXoYI}j-D7kbdWki;U*iQhKPv`; zk2y(FqOGAnAIj<6N4C~@Od~q%j;(&z1H}MqxiS;lpJ0mzeB6@>rQ=gMKzX~zZE9I) z7xc~607boasaA;aYaHI^3{C;f09HP+daG3yXhxm>JfGJ4Zafe#%uMti$>id?lzVy) z6K%Kr2Z@dR3w^W63S)*!I39qI4EWJa&n8YxH{u&}AI0cx;V_0o^o0=$s%hIrsW@-4 zKPKBmq-8sxXZ@`|(1-)d!#324MuYFG1xMj z^++IU5fHaxRy+sYU4j^J8){B83&t^)7 z0P5UDMMbj%t?P5t>yOEUevrYvPozyHO?iEDF=()k1rMta_1AXjAb|!1?FHRV-?7k^ zHms!6>0G~r!}(0B!EN8)=j)d*?ntMD3I5_q9vI51#pkE(F%GmW((~P9(EqJ3A0^MO zPoJK&-$Q0_;fR%Yo83Sm4m}rDVXfUO+4s%%roFVNJ#W*@aT2FQ)1d_cl8z*3!OTGO zBJ_k_nO=rMV~1u}BB4DrStjv?Ou<4-g^opU)TBHFDpt6R`4Cn`J{V1CNIX+K}hkS>_r!xiJ3NSKP8ecd}SPD^tJSP zxxF&4>|?9RvELSxWlz1bIqvl^l9?>6YQrp#5D*b4-KypHP0>^G{JxaGPj8P?nmGJU z>-PD)K-+XI+8RDIUzj{v`O)qE(aGU#0^Q%~J;$_mxgcXuoT)Q6~Psbf|a?Ic{zOk~TrO#}_EPYWBVJVN~u z*poYayjRR~()VwhD$+{niNfaB(h{Rw1KeLIIoMZXw6NY!mz8`U5C4{6K7d|>Z~`hL zgIJ=`R>ZeGz02XSf2ico`RkwjrEl=6p_0on@obGAnA@bh3L2g03W9-j1y<7@SSvaa z$XjfF;CM2EHw$RgDE8;pn9WnoC*E1tdDU}iK|@TGXpaK2Ei!=|PjFq=vItO{eyp$OTsZ=9 z5+)~p@QkRI>}}n@*QKNOWm#+w?5tScuLh`0Q6uj3arxYL}GE{Gbr=K)4#BU0LX% zR1)aVly^A)Ridgp`RwZpSY4dn<8O7MfeyG!cyK(ThK?0$_0Ej3_23Ah;B9pNmL7kn z@)2afB*XH3ITanC(70YP^jgA(kT{m<{ZLO#Dx54<=&L6N!*d zg2;>7OvwY{DhDL#W(<l_7O3avC0QV%BHfl*qLnfzmP z>&LEm-efgMyz|z zd9aooLzq;mS2sA~MpZDIyL_S~g&N;}SFUe3q%7aLz}S&W3DG@6;P&qnvO9HZ#qp0*#4_QU8T&j=% z`Xhe3z`b`L8uRe*fGzDv;h=e38d*F&+KCgRa{bR`_-`LKV48J4ODU~a>zRFxj+;e% z4MObr4VA-i+LWdyFW$R zU;mN~0^(h+{VDGv&HMG_F)`)X-*JK%rjp2$ctCT@m?tDCRu25OH!GGtA#-rA;_*j< zn#*sVIRT^}2#W11{^6r2D+0|Z7nsH#b3Kto6H2-IyzctSmZ>US{QNsb|6b7C!c1VL zgo;e-d}c@&atbOph*5=aokIB53CG&G7YW}wH#|aW??xbk90ajUo!1?%^cWvqMuHTE z%0LV^t*6d?mnR6&pe*_r+_HdCG*Uhj`K{-sM1ed*$twI{&$o3G-LA*4c;T(g!ncC= zC5A4Kt;<{8_rqVz!X3N_61GqQ2Bi#zx=X%dl6N5JB!2LHbQc5lJ&uXE*_%mqCOrv2n=i*9LK(k2r%~gB@lzoMi}%PJ<|Hp+XF<2F?bZ=h|_HnGjk#!Gd-dF4t?32MB0B+{!B#;?*096w#Q2j#oFcUSfXeZUtUNFZuS_4E7n}v{<40RtMlcUeKA-tLr%KsXZdIy( ztXQZK@R2jQ3=_LZ>Dl`&0){1I`UV5vKk>$4(7pDDEk9e0^4jBJPWV#5$VHp5Vs>Ci zf9WakCe`6*Tng2lOd4)7U^l26jHSbxO9aCDuE=Q(Ec#p2 z_l_Ls?C7o{ss9*U!G!j1Zh2aF5@C}+v{@XdoMuHUFTYjtzX8qxm}83Ez)GU-Mj;y0b zW~1oN{aPAX;{1~0Vp)7dF^?_E{6hkHng+(pbj-T%Wi`Ata<<2x7;CD)KhCZ3DB9&T zrzxRx`9cCLj4@1qubO9zikl&x6P=NFab#|T=4DhTZs)HY*FIY{D3_ERaV&?rwx)~y zBSIWA5qv}~$n%F3-ei8^_*8zr>>TazuTs8p!LKx1pu6N!SYdUkI(|ykY>Xc@-xb^_oTgrxsVi%7x$Ht9bIx>*wV11a%{2CjPWsA%u;Q&>iPi~ ztbV^ay0N!Vyc*OY1METbgkK@|(8LkT@bOfk3dk;hA}F3T07n$oZmIkRUQNflS1s0; z4u*T zCu1!Xyy=nh9{6|*6V=d%Esp5YaSg9Vb+8w5O;}6708nmg@(!scwP`>@VO+3OKg#iJ?ikIs&>0HnRsmz zBXnpU!2qac+yV|eqJfPE1F!-|)Kca~z*CoY+nmZ9zRV~J42e;H@Zg!SBKzdG0Xh{b z0cuj2%eGJElfn+Seq9j6W%%+rjd2KSA%d3PL!TO0=zgxyZTh;wJc!n1UcOYv0Ol`) zx0Z*>3I6=hd)H3)9O#?Ue%K)!b!@Vht~0u8rl*HTsI2wlx8qe?cUdofxXH`QYbx!Z zr-uPXlf%j8X~AoyOYM#4ABhbmUTso_jdswpv1Mu#wa_yQ1Q#l%$&8lIJZmrC-hd`D zbFKGL>U#CV&gQVz+i(7Ma_#|cqJLzS)8{+1ME3W)Cy#3r_mJlXsS=(quK7N%b}}{b z_;)9O3uUS1Zq7tURGN)u!n|)UVY3acc4`a3?5g78bgZDkmNbT}vN9n`0+T_2fXkD# za3VI@>(o*pAh#gLU&M|*AnNnF@nuQk9lcat9xKINk_*MSxIqTHp^LAYBNaZB0&H}Y zJ*jn);gkV^NULq6nR)MKJR}TxjXU@%8|~vw0q=>LntE-#47tppDG21#8#|`HK|)@& z^b!hUV0cDHboArGyL6KpI!Z9VTK-7pcO1fh500Bt(WZ~WaeEPbib+&|gc+ipU9n>I zy1Qr$|JZKuAGwAf=~EHd1zCpT)ztK{{RWr5MZ)|fc2qL<=uuJ82DAvx2SDMU$i8TD zWaP8e?wp3z?ZNo!?}trhqTV?OhhcO#Dye?;ZrQ44jIsgFE=z4vcaTdks~H= z$=nvfp`8v}P1zwLCzk zLlG!CjTc_-1YF_BGi5}NZ)dZ9nOn!s2*H7Gbm36CZ<3q9HZXd5Y zlc2ZNH+gv*dJ)a1BpE(XkVGl-K8ih%mQtlKl=L>^L;DrTx(koK-+~SN)CJ~0 zX3dldV7XZKYd{$PAqH6ymHC0}mLwc->?6x*9$w1I^*^s2%DKh(=)g_XlF>}nzzEXZ z?s-U^vqgGdYS@pv!A9LA!<|{CXlVEt*HWbOF?OMkV3zGytox_YWYbw^XXh(DDZ6y6 zP@H+InhIIt<8YU1+mD*=Q}0a-JYE?n=#2VIHZ0?@YQI*TyuI$!NU6ZWw(`a5c`8p! zcD!LA_pTq<>%L!OIWySsf$yWM{0d>Ki=Uky|AXQ>5EEp9eUOD zDruA(KaL=^VNf=lGr^yLFn;B=Ke!4_*XSY!VP!`30EqdE?wA(f_=*`U~pHmAw>=yTYt z-&o@1*F%NRl^%y@&r3DSp@2eHkWqJi;QZ8N&#Sj|Z%5%xeqj1AC8Ta?+}|)?R?MAM z@LZ=ER$=U8IbBVAd=0UMy{Rloa9Kj!aoFke3s@W0!xG)Z@M@D`T&!!JlF3pU2#qm5 z$L~!AJyzRNof-G2dQ%Pw0moRcDWav4d-q#}yD+u)n5H!M7!cbTe8<#@%=gpRzLdy) z9}#u@PSl%TB{?lq*XJ#+?Qqg`&G}-U7>jt1z9$?|e`7MjZC3Q9`i z9Z!7S**7d#qMUe_1F9&3E{N|&E>4I+VL9rF5KwY}UBv)25IvyeW6q_fDD3EXbiQe} zQP1zvY#*28KYSZ7vBT)-vhwfG%A(~3AJ5-R^{(`}0RJ=+_kuf?a>J0q_Rk+Zz{`LK_N%#5I~6g+AcV zDliyrfy%M7L?~n92~`KpU$5$4kk}=&GoOGAfKdheykhPA^PxBPeHf_0*ehZWvzX>LZpEKE)k1Ed1i>x+VMh#r@p=)0q5~l^dV^ZLLMTJ-x*f z?+CLFp<~nIe(Y~k0}|SWH2O!aOJ>n%+DKji>W)J^3n&U#WRz4kN9R# z0`n7eI;$sgzdylyZraPFadlwuqu&exDk$=SSRNUO$3OQER0r)R+<1Rbvk^XGfcuPCXTP+V3>? zb@P+_xd*$NJ&Z;v>rH5M79XJgwTNpE=wYDmDZC(2DweAHG-A;V;l}aNns}ufzthY%THgSb$1{aJ|Sk) zhxODkSH3stRPpW5)44@dVP?C6d__$C^sD~D_i+2jZh;-Z!ThL75Q%ED#4$O3Y=!n? zwj-a$?*@Di{w$YK`sN)e>xbV~3_6))`Hf|{KuHbu2JLu}&9P`ugGC$^dg4si6kz@K z6bW?S$_X$WGSmmcfpmP4Paqj(@ zY;?$yl0&iV!%y)ienfp%DsyU?lKWIkUcE8y_Po((?}armm=Uhu{B03l#{$`)gE1-> z5)5mW!)o)1N$AV`$Rb2I}=jt0k{Q}?FTRbE7gCDNH7cLWOGGlWa!UONALvrv>s zr+%^=zj>l27r}%^3huU}5w5ZV1>&L?qqbOsGP($!PQbOXzW9y_EO3`fJ>MjAqT&1M zxXz7qdE$t;r$%q&rI;k|x-74%ORM=cQM+u4$hua#PTvaN&!Kzp&UZ933GnbXn0 zv?GPWEy8Ux(3j%j{pzch4crky1sm{nK&ev<3IT7>I0=NZ&%2fl*{J^2W)t^nTS%o5{*#AMKN( zPB};FO>&Pz5gf|Qx4Xi^IS7J{*GQS6;D8n_E}8{a0*mS4*yYn!N%y`4{hu&E##0MGE zhK76Fs_%s?EHlbxyfRXGZDfri&r)q?YOL-?*B!}N#>#%iqoT^m1P;8EKh~A80J#t4 z0sbEiIgQ{rD+spT3#|R%$cG~q>pMZsQ2U4;g`-_EE3k%wzlB`{CEf*ojhg8 zvZz_Jg+`$>=1mTBW}vubG8Ycqt3C~bj$b3rC~H#1zd5sheo-J9)Yvqe?JmVrBsOC+ z3xfyQM)!_Aiq1LisOHm!hPg3bNdD$#4A9Tgt6?9V=HvM~hAGUh=u_2Z*qa4F`!G?T zh_{841!=<>075Z z0-zhM#$R&$U^}0x2|R`+jg9f?o()rj7`Q`0n6&q}R`8cCUi-+2LJe@_B*D>(64?@c zmYZjqU|zaA?=(`oWJUChk@qWR18DW7sM-Jc4oF7K%ls;URpg0C)&}KoM+#o8BDwi8 zs$WmQ?jZ}w?QQ)dLke$y1vRyMtVWedJk}FA&YX41n|s!uEs8hvdL;#(GA@8Z&URzc zcQh|=<*^qBhGAVJ5bzmD0yTQ*(nMEzV4fh$>ff09Ul$c*K+IVO4?RQ!7#Ao6QGacz z>BsgaMD#}i5pLd1c2~K!2n=KK<_yVO() zg)RC+LD=1`v%A)>KctglJxXqw+fhh@Fn?SOnQnL`oLC}Igb2~8hkUK~mSKG9Q;6p6 z1c^6n3S=T;!z||WaiUf)SIsT zK*Q&!B*Dq|j_YYkW!Xb1DX~35eyn`++Tm57t%D2kB4f0dHBqQ_tA$FOg61qs?M5~+ zdIiMqmTem-e#7AR3?J!$o~WY(%O2;-8%dw61Ix$Eaw938F&xT?D=)T=6 zq8$>!lImQoZ?_X#lrN`$q+%Rk&gC`~;4 zBe$XYSN*=f@5X_@h1Q|$dJO|Ly(e4yPxgf$D_k-wq~5sptJ4Am3yl>V=Hb@QaMu8L zkJoCG|FN=A25@(*oZowjKkp`o-;EQS@tp(@i!Vj2lH&Ixhk&RDcWINjI7t5dVmRbV zWA$EOw;0@A|MU80yNKj{ejJ&cc*~6p$v%gj(^^54Ny!d57hOw9yoSpXl;&vZdz-2SW0iGXSMR| z{2T(jt?-D5qJg?YCl3M5uQS8LfjhyAIj7gD)EpgOON|CEcESmsdk~>#A3okS5mF3PgY+>lOkbJPvv?+mFa2Q1b4Ci_>e}a83(i4 zdzwmZ8YZR`+v!>ft@7#YTkXn&VeywK`Z6I0cB&1@M%kZzFBM)~Ok^Ki!^X}w3H0b% z$oa^qYH3;O(KpVFv(_Mc|Aj_=k$f`1dwk{P4#$h-W1A z-We3s__6xB)O{?O8sKOb7mb$WTCQ9ClA@Pyk=XQ5{jy2S?5jJuwA2eD^f-ucFUeyDLo9rO=uU)>a5c#KLR27&F?l#Wz-lha~s=Rr*RHv|s>X*FaO)ag!m{#+6u z9`|aYfgUbqt%%pJyJ2}Ag*K*C`T-E^^W5f&IHH1eX_axW*rAGOekyk<%*zYuyuz8E zl5mhm`%z0!(2Xeak%CV+>s=6>(*x=p_iMg``WqAXW!#qyCgrt-|67|I@RfWaKQnv)50;;u=*Z@H=0W@JTZ*a=b$0Lawa7mwI?dLMS&?zPyq*X^&%%CP$@G90 z?Mk;CXxO~eYBz0Gd|e$m=!urpsJG1tfQ6fS;noYGgx(%Lis|xx5-YykCczkGS-A(i z^hDd++u5K1Mwbr@Lgna#Fr}#8j2e4MT($*<-dxb5;O4q?ViuE%aIM>IJ9hSyZpr3r!~5HdG)*H=AIPUF+@jFIS}e zU#te~2_<|m`$S~Fdu~6CaQ?S2zl?r;HGZ)=h>uTWYxF~E{6BjdlF+3 zE8Ukp=fqJVLUaLixAGFp*BFgHF6;65CT5b-p4NB?dR8h+B0gjhv0%xCZtAya0Gv=> zRyH5FG4|i<*X`@t-Pc6%R48QC&v8TC3ZsHZpAz?uV4KXH3@eKD{U>)K0G5Q@+>&C zwKuZL>g}oD^%A`bHTb8)dFg#SZmo47W*Msa@xN&CzoPwhnBM}{PvN0a*`2Adyct-W zXnzEcT0CfnBqtQbS*;mB4 zT|jV5DbYsop!006%N_L7Jb4+k=g{t|u`u3Ms-D({w9Kwwn3Y_XE0}Yb&>iWM>M_XL{M2l8f|X(DWmD<=k!N_S-fZd{t;#bc?pH!ooxa0u);XH&t{lqMx{d?94&S=bZmZnZLbB zC=b3pZcg*-naf-NxY4G3_1%U&Eji2m2*bXiWOg)-CyuY^k>#d7ATM=yD!AYt4rSYhn$$U=}uH_ zRS1X{JSbDwaWTHe0oBl`Cc?C@2$~dc#Upr@=H>0ZI53AF$K}4}CQ!GV=(%HY{JNmT zZmZ8R+RJNQ6Y|v)Pg*7UPF}RbNsoK#yKRfSIJ~2qHlV)-skgAtbF(4e0WGp<`E1Jg zb*y2ymi&T+de2m0AzdAHxh_G*{($r2xNh3otCSdi@zxdgQ#r&AyY5j8^fOn}uPnCR z*w>aA_6>c+CM5X3t)O0)+6(;tb|R z?wX%r*Sek;F0O$D6QDz1_r+n1b=Ewbq|!Y;YG{k=E+>ZyA^Cyw-Ujvb7k?()^^>i)`(r^VBiYl(A2?{gtDr zde(hrt!xotQIa#e!Q#qcMVG2t0~5z?dNls%;4vtE-yC3=~oN#e*i5}BC z^XplutHbzoTNT*9BoyhSzXtK6@X!hoR!MW6Z4|@e`xydm9$HwW2h>8+pc8t|HPTmI z7HLv+_k+%7d|sp|;y9{?S}}MD%gD&)jm5R!JG3?XHr~@A*uN`w6$GiEhWjKjtP~F! zz=DMr+*SE=!6;~e9f3HV($^=U&?PWe9UY_6T~&_5-j91&GSkOv?{Rv3JT%}hTr4{m z(AuZ(n!Zj-KXWQd{tgrUa^|E69GrIay$$9yTTs32-bBM;?4Xal?2~CFVdqvetm`qb zQ>H$cYtMCR&P4HH%=1@J+dPk@~$0=^Va8Ei6SmTPNO_)x_tbe3iq1mlV*#1 zy3LYv6~c_U*CA~)GcliHs31}Zg07U=ZK4BQrPtp>8QxxZ$}&r>wK<(KzN@q@Vbdf`VCb&WwWY=#tG7xz4t{M8tRMnk`FY> z);M>FM74@81=+K3-l7-L%f1>5kQy(NAIiS?S^%AI&RL-IXjjW)V&V&unla2^qNVjO z?A50ULg_jq5=`~vwLZ4i-RZmI^zj#e{v1yB@UfnQZ~{V(Doc?2Rkq7tqG%DpAGq|| zRVzNo?H!a8UQwEmyLK)8)mzP~c@o^ddH8Q^k5i`_L?5r|2Z|)|;kdi;EgQ|ef6RD( za%vgKQH|3eavGXR+@}Z5=sdQt>lv3fP?!e<5o<|&iEnVfU*b^R5pN11r%cN@BhK^* z*L*cD`=T{j?dFJQoXC?`+y)J<@r|i>B`ikY4apo^53M{**_@j??&fmnq9_<&v1q?O zF?7epY7pcPJ{r9KsSRD4U9m{jq_ki6)Y=)q!0iq;*Yqs;4+%?%ssr#g5-vxV)gPeO zh*%WF(DU3sxp}$>!DnyU6KY_#R(%gc%wS7?rB5n&dN}0s!|?WPhP8BcTm%`^`?Hoh>C58kry-efg-E? zIQ)stQ)H%L63H=Cyaoc2IB0`hkeZ1YEU{+nC>p3ku%n2(vXZe)WoyYxz6$>P&3?2C ziqpA&ooC5o9iwYL-Bx znCZhwRqJ*=IXtIh(E7_*wYP6nHJ!^#7irVexmHl#Q~PJu3J?1%%y8bL{b!g$Y1ZN5 zdp|N`0~bhxG^t9eKcoR7IYEbe4noN3a>eBrk}??7cl5n0OIuFwDuTz}v6`p+mtm)y z-};CZ)fs$fPhTTv?hd5g0mf-k(H6)!4GfObs$=ehc^AE%pv?%USAN*$pE1qmE7gO0A-#Blp*jk?GdOr~KeDWU737WlNg@ebGpGa67!`w{Q7Tgxr z?Y<3yzSAQ=%1WNU&U3}q6G>Zb*qu1dy<+y#7>fd1p@LeEuS*f2okR*InOB{!zpnW~ z_|ShZJ^1?(_5MSn7dClKFJ=fVifhue=Qa9XB71%sQEjc6En^Lok__==pcB~EM%`J? z`(cXKg?HqQ9?3vrGnV`Ofu%ge_^&az!pG3tVR7L_3rBY6UDhLHtXsqd(I&a+?lIpQ zzOC*$f@|Jw!P($u=xOu|v+jEcfT#{kugRof0#4lnrXJ3ZDD^_>ox`^_6s(D8+}>#r z3|=m31*5kG{W6Z&k0@&Da*M=_@^UVDi$uBkX1vFV&u{yTOI6YW4`j&cCK@{G5O4gj z_=6COqbj2t3#^VoYZgbvE?PLvmkI~OZvZro6TQ#Ts{o~7)AQU z1Es}X?e&76j`2T*%X1s*K{)4yViI(*3=|+TJAP-drEMhGPM4tBF|P?-r;o z6soJKJ(C)BC=y^7k^w$YwbP+kc#JPWR5Ou!8M0nl(g)4AJuDUv=aR-WR$q8IItPEV z<4RDy$)KEKs+rv~dY9M7rzVnQ3N$HVT7PStL+tlb7qE&VUPTgtMUQ^?|GDS}NSk!J zepzl<$KmW{e9gTd)24*II}E&P-Jisz)rIhF`Ntxy5=fz6nL@-m1{xy7l9JAZRJz7z zgiQ4O{%X(WrG&*Ycp}i|38t7dy$V8$ks)Moz^aa?cjb-N`e3k<;G^*^U$UUFl8=)b z@A`JDL1v!r`$gV7?}SgFPSl5#3@Grd9t-2_5#hXlM=Mr5XggHa1y`Tr zp^Ob9kPk`qyAz&yzsLt_xO})S$T!3SkB_@ts$I`XOus_j*;`&G8w*4_JAZWX!Dt0MyQQc?dXA;V ztwgG?0}gf)i1RJpvWuDWcMRyStbcBK;YZgPon7Xzv_JASAKDW*4nSgzwVcjpZc-2?<1>Vm$09?=Eh0Y1vc!+NAHITnB# zp#^76fZ_$tiz`g2!do(VJP+fbulfZrX~pQgIZY8Wn(TE_a-{%#`E%yi7Gb|wtmJTu zHHwMCoDS%y$dbFNrYL-EP(QnS4qS+AEV$d-m`V63L%Q2n{SpKe{bU508?w_%!Fi+Zq7bpd!WO=R?aJ7asF!UONX%;J6e($-1TaL2PsMT;djx57}O!wAy<`zGbH~$j+sIMm0zA+mHu|(1ma$HE!=l-78 zv;OdE#=sSVSg$c;r2uSEmKF-aWJ@@m5&&+E{eVVIZ5LO&fTfgvPfJG8xGQ??Hno=Z zzP0X2-}(%7`&H$`59rGN=}TLoZXm3JUlz=-faLGfN!RNaTEHA$SH$jqvJ?!34mI;$ zl~#BI^vwbO`C~G4AE4<%_{p=$Z}+7WUFxx};V? zp{g0bMuUO;itMOY7s0( z^L|w_zOR1I9JkWP+#BtG+^cmH?U^Mhe6G7=ZT2bY?YwoE5)R4vd;c~h0N&-nK}}Xn z%rNJ}X>SiADtJ}ZJTG^N+aL4uZ|g!NkpPm)!L3o4Y4s4M-1}oN#O{Ub!tz2K-q5yw z!iNud(G&Ow+i^p;MU}=?i-s4F^@P)s8h1Z^^Sc`P0GxF=6lL$WSSJpd?fBv}SmXJ= zNG;YE%iSYC45j{Tw*!L27LMF~HF}4D7=dZ;?BDvl+TaV|=o67GD0ebF#x;mQcc_WR z!>Z^UH#wc2WLgKx>Sqp3mi;Evk(7IZ`A~87{fBeGe zr9<$V(F=;I`0538o09M9^aa{;pLzwk9`tA|RV&e9K>~j?JZbmry?K9e)3+dlvYAmO zEAcThU#*yQ#JhK-4L@{|X<6gm6HQc4YYgE;FmZwP$A8vwr#fkW6n^QGbTpoU`o2HhL>D2}I z81=@uvYxnJ!}LezTA#ZGr~yUxL&o?JdWI&oo-+64-d@z@ zfALCi@j4S8Iqe@C-voiMDxHzA(T{Zg`iPzP6tn7*sol{R8M)1~2w#yaApa86Oe4fI z=^@PBQk8%3(*6-akc^~qozXrIgXUHY4Y1B~&g0yM)X{Dt}j4Kg_@NRqr#3Mil`}Hy4a;JhFu5FTqDNJ~P zwh2hQE7L{!T#-T*DoudFfc#dv7lJnW@&wnU&kwpM0W`FTBMX$ zQqF#l!W$kQqzygn^n*c@(W9@<`(M}J;kn2MkBCn*3Bjukb#hh)NPmnPZVBo% z_#ezZ1sbVP6aqTiZn0aYLJ*O`-nYE=D}%tod9-V?^V?u)X6b;fVvjE|X`ce-2#+E7 zH7g?Tk9VCy{_xD9#igteA+G=%Pvpqog4x*wKo4iPJ`YKFCcbyKD_$}ikw}gv(Xd!2 zQ)ntHl<|P77TVc~MD!a)>Sv%Iq_~4%lgC`m>ovt^>S~X-TAb#OI-4GTjxY9WHU(=n zt6HH4%7-&8f~=g)%*I7ZjRD)`u(1D9mB82dRpH5oVizRj^MwP`YlSaoObQ=GZMDYo zA*j%xP~dQML>wNa0E$+%B4@)Q}BD_4;n2`yBa~eapw~pOF7VKD7SU=naxpro3x>`vI)F`poys zVF8Y)rzH*j=}l55*Yie9HU3;yC=Da#(?!hu@TKr#b&QzMg7`}V!ap8?KGiSeov1tN z;=2$g6Wm{xZk7OrAa6_6Q5-uLtN4p@!9DtGYI6ZKpOe<#eOQ@@I$h&n{^j$32m0et zfOL_g)j+Hq)ywt&O8T93&8wc?An{h5g))a?i2WuGjwe=V##yw#cjaD2JC zvC{^?HgUUFGkXTlLh2CJDI_<}LHO-Upa%rtII`Rbjr@^)BzdOV(%v3#sd*>Q^eM6o zJR3&0mMeph@9LxeeeG|3dv;?(u3z-Usoj^rb~aTnp^M(sD0BM`Ju%2^thv*sTos^@ zAQ@h`cYI_Vt09f}{Oc~G{AZv4ObtuWC_Pb>!@}CTuc}|;lVv-NtNwp%FdA63Jw_sP zrb>g0nFa-=sP}yeiKAEIVr_r(bWK4n!w~M#BD1{hCWcFD{M+V+tCU{-c({Mj7BX`? zpBnZ(OI`{q2)0UaoQM`4p^z`p&icpj_+O9UiVxAC;T67L>esh%K;1}lL7Bxep?^NJ zBcN?>{1gZ?>FjK#WsIZae3+kIxGX>3ZMEx97pElce~mKOJ0OK|m?Th8%MChg5|M9h z&T~CEF3~776JyrD`>uq8O>OlgX0&f9`Zj6kyYr1cx%rZtUNFI16eSIImh3 zzZaH78aF|fX+j4Oi>(-Ans2P{z2hfgUj;7Qfi@ZF)C^hrWmF)m5(v87*5~L%Su4_U z94Z$pvwU|d_7&AT+uI}Hdyvz9rNO?|KIIZ4@VAu2pJ#4dCfj;703>9yWsp+|xrTwv za4GVqNCL+8#&AlKbY(V25ym2}B7;hd#ttsCmBzwKwwg zSzN;9Vl2jfC^&zPoaeT&;_c>-)PgRFxw#9HIE~!o^R6d3K-YN?3VuP_U6OxBc+hKl zB*WXTi)sFAqII+i&F0+wn$XiZJS?F~b6pMpzonc?D)ne=a5Dnt??i5JXsn^l+O>#O z2WJJ7&WAp&3xa?yg*?K>i2{hMrk3s65U}A)7<;bfq&IT|>XUI--{S}VbV1_9&S7V0 z8RA<(!%J3&5PqFS8|eR1U5a?y+xE$q2Q1G;lUpEXcKv#8AE@3*+%`tQz%hq&v`DTi zo5TACy-wrX{I?R@&#hPpe>)W?&b<;U{@|WL)3M*?l((5JUizOV69Qs93ST(%N3MJ4 zWcSDH>yk)lvIEBOBBw7=f;V;GUf;{5h{3BO3)&3lzvatxd)-886kubE+YH43U7;mm zKs=Ye*^_Q_|HTLVxzk4J;nMkd7fqcOUkqfFc0(}o$?t}vMrpzcBl5;8nQwr3(xKaU z<5wU6&b;!YuO4be@<(ih3k4vOx!qMI%~*mWUKOtZlRzo^Y3uEL#=COY7=PEk&BvJb zx`=k{Dm%No3>R(>%V|WhNI(V(kkbaWH<>RDQof+CqA6C2d!B$lE}Mn#VFoXl^%|eY z7WGOb8Ubk)&OM`quB~!aB2bgCKT8I>wJ1~UH{<^&_10Q!7AR%s^DoG~Fg(mh#@VTe zV6w~*ZnAX>z%MBEB7bF&e1T8E%?B#2NPw@YQ4PZ&W_v!Fia7AAr2cDY*cel|-jcjq zPgT9Va=%eXBHg@EYz|K?AVUf1ehn`gtMidKFTk$~AEHe|P0Xq$%eJn(0>Mj@HeCrV#H6uFrTX7@Wj3oyjRAUF1+rS{1CPjV00lQwxA`%;wYSf?d*A1E7dGlMvmIwpNiX=b@L@iyiDT zeIBFo%dxQGk+lpq+N8nG ztH75rDloL48zT02%!sd$p8jxUS{l8T!{^65Dn?GYf zX=W`+`pfslA+ZMe4%89wG2k;4ZJ2F|Bf2i4qNB@SXqAIXBpr~Dw^9Y+OJQy+Ysn-w zqJ{BARWrvO`1J6^vm&Rh3yB&}U0>U-$~%~-nI*7jpud-fR5JKgn3$Nb&;nJQqBR2h zTt|$1>riu=2|v=)(+{?mIKk5-MIQGQrgHZelogt79s{pjGl2sa<1fyc+$UX{8yz=z z^?yCOKw*?CA|N4Zz4dW@Nh$9CJv-7<8%~FeQ00Fpn zsT5u*H_Zf$#}}KNC!4jah>**sz1x((q!Zlaur_92I~%M+cka1Z6d@0mLj#0tgp!w;8iC=DRZf+KErhH@b8mAIaA&zow0>%8RUOv9ny8kaS_ zBx#{rxdrO!oP>vZ(e=sB99kmTTj>B^5UB8ux~bYcJ&ma+jNZ3r`|xQP&%PhMs9skx zs}g6^ad?;Tefb7T8ItFx=PGLsnwsB#)I5dJ++mHbG{^uCR(^qEeEz3i2mjLtw`DEf zybLVACXR^CogP(a(=YD-8g!EU#I5i-QFp#aU2xK5sem-AD2qffp0mz-nXTc>l6<1Z zfuES5E~&QxGlE{8ior|iJA0a8=NLx)&OLF>fyDsrvpy9R?Pk#F){y< z3PVa})p`hka+N?nZVq8l-;nPz8z625__$@5PIIT<(Wn+n9Wm`+GV>-dd~9UtpAzGCI6XdvZz*B-i1WtGZ)htJ~}Z_?P-ar zFWv_v$C`c}dAqaJ1#)_um%bk>5RsA5uLG>Ru-3(Lu+Byg269&(lKY-oZ8YtD?C<`( z08-M18cwf|fXbujLPA0-pMzaW#E)MS(cPG7@HCq6K5UfG3^H4GSo>V2^bqwhH|W}6 znP86d{Gx9wPxKQZI~O_+VrBg1n#r1{Au|~$o#dP( zwG@_7N*gKC>`j9~{hBBOo4mK>s2!9hoRUB$V!KMFYQKY&`?ne&5K@wto_uiaOCp7*jK-(2o+ydp^HbLaD7Gf7CZ#1E%N zpQY;`Tp!1Y@z{(@Wq4w9IV3aoo;hu|P4uh&cp%l$KB+fxmVe~#yxPSb->+z%+0E$2 zka904Jv4MXGPF-k%u7nDJv58DXyqu3bG6Y32mmX1)?#pI7BBH)KZWwT{l+IHfhQ~P zy$s(tNde1=CJG#=Cj`G6LVpSIW`6j_O?Pz}yANFAio&YSRvT6#*p5#7r?$Z=_IhQb zs2empp1g_kh#ODG2Ze3EA*FI}q1#lww35grPaompvOJ(NsP$4Bex~`5ajRM6D@d=g z3#Dv+?EdXd#?kb!1#ABJt}oYW_V70|-zo!(Qq2Oo{k4m@HHvz#B>`@)1%r(W^L3xb zMrY%8qf+Er_cY}pRqcYI;p&sapq+_FbM>AVOC+t|BZ*y4s3#9&gxdOcE#DY%eo?YH zbsxl@d;XF(W@c+7;^4a=%ld>fGCX_+n$8aQH2S4f(G^ol1!e4K z)E+Rp;-=k6-_1~`uF%c}mEEN49NCU&Z!x4g=UQbX3KiwtVi?6>+I zLD!8@{(^@uoW!^Mf(YLjJ}wz9722KB26{Grp4f1vx$$f9_3t$vcnfkQqPfko0$WRtYt+A68Lx3JavA$3IKt56S__q*yX3ubZg%1QCYRSmd0$Fa?(=_^J};Iy5o{6FsH!J z6_IObJ)kS2k=J0cs@7IO6Dp;^l0Co<57^BnFNC6^pU`vm7u?e%o=d-!m+Tk_4@hu2 z^Rk|Kqf$?JOY!FhD$9t@;8QA_Ud_cW^LdT&=xBC&B*&Zljgp?pT*q_FVcHu5;$oC2 z@KW~MH-2%D|HU8toZu!a|HfLy3y>ORqGS;tW>En1qa6ND!TJB_`UV zkOt`n0Rd?Qq)WQHyE~+F6Oz&?9TL*r-QC^rzx$qhzwi2;^E({uJsghBe%D-U#0taJtCom^9lbPd%0$gW5jTJQ?kHAjek_! z2;g{mo!Xw<;t4alk?8H@`=_r4Lddaf_V{%vN}t_x>?C&-57-7xvtNlj6)ODj`y5=y zvIl5mPBam@r(zdLUOIAea_aBh z(ObyAGv%tN>W*2Tnv9F#^zJt0d6N9QFF@(*$mO!D;WFWpFS!YB_;+2vYJk#l3ecqs zs8yJ7a@R zCUNE`-#BJpKc{qiviaZQ!mm1LK3_^10a89c@GpCmqtqy-N^eFjWLmy25@eFuGte+-|b-?+gQM-)lfPiDZJ7KoF-f(B@_ef)eoE3C1anr{vTrL)QC`FW)YI17ub z-90AjO}k`S@;si^sAv_a8Ma>Wegv+{NafBLPl0xf1gp!dOIL>%p=7tgwUU|V2Gym$ zL0-q1l9i7O0V2trvnu7vp+No#$!5Jr8Mejp$IZ+HdjvPdtXTj5ggJ%HY_Km;tF%#R`B}#Ygo-zN(Rg;+Y?| z7dN8wxJ#3GK#(d0MTla$DCV9ebC?DYzN~fHpfTv9JvA8?xC}29etv44EE2_FABSku zxY98P=2Zq3+lxWJ)=U8>gBG48eb3Z*KuGf6vND{9 z4R#N(D8!Nl(RPEG>ILW|2f^h#9LPz}4|4WO!2$?y+GdxDHu97grl9YR72fA_ALg5< z-t*PjL7d21PmwVY3i5*HTUWjesgz%?$zjty*6610w{K_-d6%gd90{xUP-i9s#D`QK z{S03WnH@3=*z~yP_UksK9#-BaZZcnm*_h_F^1SnJc#}ml5S`Frii} zo5Lh*0qwmUj|`q$CfhD3#so7C4x3rJr(4B`!Gi)~U8*x3VTx0SyMj&1!+@i?69n}( z+cYOQwQ}pF%yN1RTmBbnTv zc{0^}J~ut5b;+tf=?#IsVZ<9~n5zTXB_8jrWxa$7!b0-bD4YhBX!fVzXKrY(SaMoB#D*5JZ`e3@Shc^elI%mcPRyi7c&#Btf^6A?nwKj ztF(X{wZW3o2mPZPEfWK(5S8kBP&tk;1TUvNww#;}weHXn*WiQ3iD!|0=(K4+cW)am zyV_2(U3-+GQ!Y)O=t6X4kb2!@idwFX(0t_?N&|Ts$dah>GS3q>in^1)!^}RyUI}uT zd6;`W;k#o*2A8Aq=JK({s)6Et{!JhEg1G0HoYO|7dh1i=FUkXD`fPZ)q=X~->D#Y+ zcK!m_fP(1KArrfqh_f(~NWw+e&QN+5k3aW~+YT|5<8+Qpo$jD-;gM#mg=qt88o5|S zVb+`m$-j7%jOxaeoY(t;>C+_(xfwIcE_F}6Up);mf_cjyAB*QF%$D$jORiI9oO4^x z)J0P4KH#|k9G#lO=(czf{}Jc;pIL8mV8gX`+)cL^DaqE`Z9xKus!yjabwJl*vymv# z;bW;%Wpnd&OSD^mFFX%aD3sI+L#ynA0Fa-ZZw`yP|1430#%z4 zaddIMF>L#P?~X^-2Gy|+yZXc<0cO;b(>GDLtWKLB?$sV&^x{zc&Um8$nE%7;>{l6( ze+M+d|6(Hx#8<8YEh48cz-!5#1DGbt0?qu+Hp50Ya%VpMWzbmZ{VJ0(w>ryGE3 z6+P1i(L=MnPMgEY`CFvJ1sM(k4BgW=?&$F8O*Sdo=643L4bN^oH8|@bUrpEHoc7zs zcr16=Z#F`Z2fUIgnHpRVkf$sc#a`_EHzf3f#}`V|`mSU2+p;O8UgRH4KnaVgIl~0+ zI+Ln*S2L#s`5S&-o3ns?=1=SOB1NVF*rKU8Z3WtkYMd_J%(wH}INzjm{f78`ECAz; z>2iUMEB`O!)_kVnitV{z;!NV*K(Z<{g@ZdSAa9x}`pggG&7G0Rpp$dm3!hfxFIZ-v zOns`|#A%vtV`IMt_m+_6BaI+asu1BXKZF8`)lazF@CYC$%X>wqwVHQRIu>R%O#tFE z1`)y5x>A;4Gl}xe_%cV;CZ}OX!<ttOpOaULYRG7!7!hW?-#C_snh|YzU{(KJ2Z_4G3Chwec|pNiuPmP&%cr zuySLb&{~n&IoR*<+Qg5IUL^9c*6No&9+0e$?(8L;7)i_9Hyo_!9N<2cjJ#K``)cmi ziN~)~6G=# zz(g~$cC>=P)2%1|c^mQh=`g5?&7kY!R(#)xEXhyB&ccHgjf0ZOwxnmDogGQL1hS09nD6*)EjyDDtk)T*R5sTvsthZ)giM&ss z1ik!vmGR0~w>HJ{9&!wjKyxV2|GLE-PAV+wmT(ErsvO3UA!SH^M1@eTO5ZsWdfrSO z<#Bv-a8iu4EdHO92TZ=tEAR2lmh}}CX?r8on_tSi2Vfv(yx<$YAh6jC{ILH&W&^j+ zbNOR|Opt)r7-rTAOfZ;rH#^Z3$XyWoT)PtTI8{o#Q$FoHN#_YZZ}?D@D9v`I?3vZu zPao1rG-$R7b0kTm1ZrcDxv)CGHAM5_h|czB0PfgyMSdCj+Fsk85dgWupel)xKR7Kb zSD;<>k$D|pLS2Gx2=6l$Um4U8^4R&!|C9@FZP(A;0gQnX+{XlrAGY`zC^9|Cnn}kM z5_POqzPzmDhE(exh=qcJQuMHXG1+WNZZ>|4g=gBan5V{odHXQZeJLGiX9vIWZUh~T z)r*6Z=xWhNU}?8nPB6Zw2^i3E4H8fpF$7?RUnD9lbePF}PPny}PeFv1-TPOQ)~C2? zBOtous6({^Z{Ff4!NbL1r(*$Kn@D9By}gnB{t-Tg%mkxyPNj)gxQLJSzovyDu&bo8 zXmH~*0S>)gW6+hb&((!>@$OGl#B8A2+XX7Sf2OB^)3A0m0P$U=PjrZN1YRkE23J|q zMX4*?FW^%Sc>Hlqey5AFIf~6AyAXFO3;Pb4d*_Ykg$pD9Qy0K`j<&jIUK0Z4%!&MoWm(4$ z3a-4@Nnp)UBWq8JgGUBBiz4Lb`dGZ|SK;i}mKvf!^JnjvszH|?Ipe)kQlzq%{@Ckq zs>^Wp5y}E*RW9Qy>8or(WD@(-5TMa=43Mrv<-Kf}Ri`F}#afwfn+R(R`9wzeRkV$Q zs$jH(BoRQVt78&BkRV5Cr2@Guqoo)9-*I&CI);LC*{!UjeO+c5XxszEBRUhWk&(MVi!&ynd!L zqL64Zw&M?r5-O5RM@g67Kh0$TaQ1=jL<28p!;BNp$++ud!S96XPj^Zwv6lnuc);tgMdHvt0_aVa=lG@Kp&myb1Z&UGeSJ2LOx+dWjZrsjKB1 zI=Ib!cvWlu@A%9r>>G5oKMJ`PuoIh_Dp}6vnr5{qjgWV;u_5z9G_>n#%Br;qv zn&AhbfLpAdo*q)8`n~4;!^2pttK!roGQe=Iu^)i|WIj=!oR9r5Zjr; zBWFYsh7hkwJ=#8`2PT~;_Miq&Z?m{PIsgETb&8(>LUwydw&!jR%JT3jUn2dJKUaB+ zf=lpe9~8mXR|N%h+ugH(fR9@>zY3<&`tK&VqZ_^U{ssG!G7xqA1^csJH5K+~37X3J zKNK8oj!5rAI3ZWZB@YD2Ec`Gpf4k4mqR-VXTn`wZ7{#L1UY*a7AcW@d z+N|A#tuR@R%|As>6FCMj%zI5wGk7xcdd@}#q3kgPM@L1)(8$SV2$)|wVThsR13BNf zohk+DEN^>kc!#}90RWqBaO=nCEyT%&gp>ti^i=HhiGRCx0o!Bs9BiFC@%GkNz+I8f zb?@=qY?Hk1b4loAy^vODx2CH7u&T%Fx4)o2E;;}>N}sAi zZe#?SuqSOeQh&A}K#O^fMe{VTh?OOZOjb_}seTQfY_%*7?Yyv;7+F&SM2hZ@dbr6D zZ$yETSpbmh%p9%&LM{)H455w5QTN3-q4pu4CxG-~5~G=Zzlk$)lC2h*1prl!ecrb( z&-TpxirMLW1thksebgW4iMki9B&kPhB%o6HkLX-!3e0coHRff#k5na>lmUPvy7POR zLfuco)Csy~Cc7#EgxX;uRf-CeV@zOz2Z~HugU__}Vi7qc`0P2=J)|A+Oq|6TZ)!$* z0)wgwwM)@$O}z3RuXphAFS}i~MpqTlu=zYN8NZ{@#{jnvioTDoTNkC8@-iVf@oZ3% zY3JPkz60#f?hAng#3=Z_HQfA~n25W!P!j^6`CfPJRy(aQRn=X+lGBm&Ey0mIvOt8Q zCjxeNrUA<$K^$O;!eez{_osBH4>b8*?CMR`^?`vz=F^r6jI6ht%*N70GJqyR&fJ9; zDJ6rCm$+2sz<(m?0Jk2j`0;yXE~NIG>WmOL3mQxl0ExmMZ-WgC*i3|^FfuG*1HiZZ z{#E-It2qfRH$;|cBumm&JMbywj?@43k3NzStiFrGT$4kO0r<#DrRl+mXFU`}4r zg_;vHyPLa*BlWS_7`gLw`_@bA060=^HD?^R%I|@udmYwOS~Z7-+iwB7Sl;UdCq-f3 zFuA0>TDrtut90?Fr)ak^z#AkCI0)3<37%5b*v9ZhFyn;m@dkC%_bj_B+0fY=Jn(xx#G5_e$M+tIUq+S*9? zzcjuEr#6rMAUai|?a>&F%M2GCRXBr^Q{LJ2$lou z#!!@=NG@dlooI5{a>M9U>3oPUHL0p+Q7Nh)hTl}_ENU?;F9a=gIfS>&SZD7$um!o& ztTQ_Y{7HEkWRx4`-077fq|Mcj{#9dK?&ac-QuHN1u$t%S^u<$t1q0WQNp8gM5DgRU}lIezk_OR^wQo-#VjdIBdMb7N~gl(qT;0uD=+ zVoD>nFLYrM`OGaUFEJfU_l!dWEF)HvHx?SDjSD-;hvHEgxeFb&cZrrwS59stDI7s& zQ;({a!AJwJ$iz9`C?q)^%dR1jb{4rtIg|y)BN-DaD?f8b)0`*Wx#E()Div1^zaglL z4w=221Ep^!l(htpS@S-R{xE#J97xTSKdo_5IcEC)J(m-*+h>>FUiGjjx&}u=gB0Cqj8y&5D zk(DZkRWxQ8hZp@eo4UijP-Vpoy&1i-He}g~2E}K8O-96XPf~ey*HVNvMRe`)1Slp< zmN=r6I@>zv>X=P$6138b7@gj){M2Xa?)ojCAi4EpzA2$lA+YMaaT^7wi*uVbwwqCW z{oOvvVW*C?zO14>RlmGH<8gm!aaJmak_4Gn87mMp9Yjvbj$=e))>h5np3o%{XHb!~HDL5x#r!m|U=4d4qBAKn>#Y%;-;K zWK5x6M=5jIUKFKKXL%>^-dW2m$bZ%8<@Uhm5k?E`guOh5_M}n~Po}~~rJ6wF?Jac{og>4zA;u#KAndBbtvN?0arNK~hJQ-ZhJ{@EB|_Ny85nSFQs#c~AWT7{d| z&OFr*)!&?rP>4n&0nPkEHH-Hob{p@Ia5*xN5%f!~SbE+UxkuX#XS{Z?NS|%jIeRM4 zMbl}>n2qVAwz-8^9vb{HlWY_WQXa=y zNiyV|uXAI3@k$*jc?2ZLPfugi4Te)kQYJut1yOIY?I;pe)0yoS9oA2wQfcZ6U>QaLlOt25O?w+aS$O}a$V9ry48v`A-n2xyzDMjimH7i>0>qkoXj5bZV61_uWr>2qhJld0ZPGwPs73bBETVm)jqPKo534>}$ zgvfp^#cV}7!1UK~>Jehb-_iKg2jIsM4%owh3hkE5NB5?hgX$h$@=hrVGAI4^11K54 z{m3Wq2RLT`Vgmm0v-cwqnR-9Qfrx|Pfg(ORZ}LFj4Hf=$mpkaDy;Uoh;FMmi>Jw>D z03I~ z?bdD04}#53)w)QjwS*S8B1ry&tJ6ZFOrh1$$d?f`&EZgf;X^dr0snU+V=TixI*~6a z>SBh=&@1_(7H~eabP^0ewC-Judna=*-Qw!-h13%ka*r4 zN@`)pL=aCWxfpYwxXef=G3sEX`)xg?Ha!4E+pU-Va%pZeN}eQULIyM!p>K}9@(`n> z99&x6Govu=BYlgqiPj{SL@D=_OMvn&#E>23$a;L!x(3=iKBtOcr0evKw^*^MF3SYd zFJbC%DEQrhoESr0O}pjVC|KH9iKEj;?rcnWLupNn4G`E?HKt?9=Ps^hwLQd`M#E2^ z;n`iDxpN_?q!6I%WuCP!)J<0I-PdcgQ?y$nVlt$HB9h_cAX9a}!9sw?&e22tVbK3E zac?r%vdI^zR^kAOxe?STJ!i|ocYn7@?i4cuo{SG+vp+@ToXh(xEK%bzH!3jF%}c;_kHOY}bMLoi7FDg5{eCrUpdZBZ z=D`L7G$9{0a_P+S`E8>oYv(;k}R*mB*$4TE3epLQAa$OQ>xhGYnNaz6Nw zU@@ty!c))YHJ8Cc+Ak>VQ(i489J4w(I1MvyPejkw3Ixa21G=VKC~vS%tZFJXSUegs zt+nr-&QE)3cAlzis!51SiOxxBPzSY=9zoQKMfGrsXj09}vG{uLXgpcIB+dA>=?JW! zoMWL4`}d5H;ZXpKG*baK5 zEN0-h_`bss`ENe*ryJn2Kiw#XK>Sq`{NJBGLcll2?egoWAp^Ko>M=d`e~^X$nnWWl z|KE@EFOu?KxhNiZz7XD5Y}Qd+V848b3kAba|MNH39r*0r2b!)|{~t;VDe%n^^@P5v z1Bz#)rM(*se`L5>a=;Gtd`JD?kMqCl<{JT)got<_j%R`htbJBr*B{#HW|O-pYN^Qmp*XZ0OAT#NE$!(4Ia|U?e*&p5Q|Gli^U{;|5 zhbi*4Q~bh2B%gglY_ZhOc=n*CKMeZUmO=9EH6FWs&lgL~7m+oqVw+;Lh+F6g>{4B= zWfygDui2;9sEmIUl|ESDP0TlY$lu<>OSLr=NA8NW%J{dZfIz(!^liGy7(J@!Ic4#| z`f3a80aZd8eCapf?lcenjnUBN3*($cS0b9=0;q=ViUNzdqmO*!^sz=3hvs2k zXyP$)+GBCSm6xl>Qt(Y^GIeF5pH)p9Xfebu{@5V8>45Ei&+Tg4+763BU%00rGNZm- zm$oaBh~mb>!V+O7LpIc0G+)ZM`EQAWzqZvk2{>@NS%Q4Mxf!2uyOMBRCcF9WnKhA% z;#V!f%~l&-E3^|CbrzLM5Dpc>6AY()3N*93Acq!C`76Twmde+V!Zn6@nU(> zELA7Boj6UUXMe(?f>%@avVvFstUGYehfaw zn?(%b*S9DfaCEw304G&S;^Q*Ux{vVE+D zsP3CT6Vs}V4N=4u?%3+xyx2E7GK3v3c}PSbx8#QOlvD4k5qAIX>LGLNO$|)fJnUsC z;CJ1$&E@lo>N=~H64K+d(p0zTw9Cu`%Nd71HG!fj*XdCvs14$F90fhcXT^1*;Oa`S3qJew zf!SeyRguS;&95xey9|@+Ks76XHKAlv%&@pok+Hl)Y+<%~P2fnC$mo)X@lVfY2e?Ds z!uf`@Ih(+-CotFlE^0g!%sFoV?pLpL#hVG^uVF z*Z{k$sZ(!etK@y0@4P35gC7x$IeWJr&)|4!c+-c8L*Kjb=LP01+vd<_Zhc3`LUd<_ zYdQDx(sChKhE{;bzxi+PQwVGY`OhYX{fU=UDoGaVhCp-1TKnIF@dsM8_Y~M69@sJk z!-4tZ7-JSt3r(@Ua-;nXv8d==qS@#KIZi`U)A&Y@To-av0iHAZ zdluABJFhM7c=hN^o;)vNM3iA0J*gtT=jhB!){UZ|e)x zW&hiE|MgxW#V7my>+Cw>u_4}Qg}Xiz0djC$Bp)(@!3}4ChZZnj6=f%IKN#CWg<4P! z9P4|MyDU@7$|dq-$mv@d2@Z1o<>rVu6sE=4Ogm!^BA&e ziHq5@$un*#PGMmk90Qdp5 z;Goe(1K{z%S;Tyt`ujEw|L;(J7qo7PtQ*$2B|35-y`TK*V1o?opu#4n>zA|*I zQ0(!zS;lB|B7d@^_yX$_@dX@$zbv|_>b)0LV{-WF-@S!Tyx0PP#bm|Rx)z&(U<_*Omu za*Rnw!QTiJVdvy%oBtW;SwQtu;_w)(_j-F$Id+z6{}y;i zR;tJ>prl}9G2tQN_UhMF0S2G|Nj0gi{p<04-dIf3BXy4K^0p!&0*;d`O1f$M=BcTv zKo4My3=Y$G>dR>&f5%u26PakpZ4aF|UgSksNC~h!2V|+oGWQQ3Z@;?A-Cb3lcg=4| z|L8sb%PoFTM=zvqhBp}4&T?9F+l6YxNMuR#pT}jv179ZMxw%cOtXcp%&p+H`%@(`m z5VX7ERMmL|0<5$n$7$C+&1!HEeyl4Q%(+#PEoVdNzG%!yLqdKTS@r<{j&& zWbIoXjxrk3kmS929O_Qt$P4rxk-^Th)I1l=VG5X_hV%k;2Q3}S*;+cjKusymhD?Zx*Erc z1AXgS6dm=KPc7Q%_3>c_{24B}|2f;+Z@`uGil6MHr!bnEl>X(Rgznm|IR_KEeB+>= zuTv+ynJcynIpZ*)O^TIPwPm)5LI5P+vV=a2VyIrA=|foyX0uJ8pU<)z-B*~E=C!dn zOw8N+?Yy4o%<+kkPqk%6L87pCU5rXhl@o%Dj8VjVE)>tV?$PlaYzKDQu2Gc-p;Icy zJ8q%1F+*c99_L$c<)Sq&$!JrLL%jImt# z{o!aQE~(XAH3`sPtSaF(>yYNLJIr;<+;%~9#XQBj0T-gjZ+>%jN9hdRn~{sLJU%ur zYj+Xj>4_$X(WzLYx@UhfW9eGKzVC(+)($?lDsy;{P3~hiF&Ru;-C)@M4fs%EL08%x zDxP`1*2NuR=!=PgB<89U2{jEhB0}o6Hk1aq=(kDb0i)GBBS=Vc42s)w_D5XYh8Vnk zEi{+gmTT$<2_?m@S}k)Qe#^VV6zyTTZe5cyp}|w80nx~7BXQdOhl&~|u3MB*8~0^c zcKrBF;)3+SNyzc6+G)bdib^4fXs@HYczwa>(OC)EnX~B1)zNIeKBMd6AQ7Za4DGO^ zcB2-QY^SC$18NZV-E0+EJjwOYaqLN$T+wg5*&uw42o66PVL3TafTrpPgt3^Hvd_}e zk0%7B2weZLT_EVtdsC+}mR*~&rZJ*3ni-#E&2OzE)v;`2e}H|!kAjtJn9ONmUn`-& zzBU^thW7|Pn$>eQQ0hceTx;)N9|f7cD1dVSBc#Ufp9ik1B(UHetZtw@)i(42C19?| z6gCZ_Z~0&E2k*is>%A;#m2*kC;q~25{kCeJZUmN&cW3r%6{b+`DC@dIY7%^LpidL7I0c;8`64I z{Qj0AS;W8GJSNjx;3~#?xfwfXjkm_*3WmqwQm~ekqVFrg{#Z(ct6fe%KQW}NLs?l&E+<-|my?KJ9Pu5%2>S6X0ji+$bGXEd_;lqDjQb zt%@rb-8Uc!kn0zu0mzkcc$m%0z#G0d6BXVcNsoJRF=S!0i`PaxB289n0pR(y2mh7h zCCspS$J2g}7ehH>=o#2*-rzZW7NI3aY;I0VneZ+c9?QkMh;-BZme3WQi(eIQ3nr1% zCNN1gPb50aRI9vR{x!m@%MEI>QNwqPJkl=Lxj`^{5+PSh;up}Ycla_4>z=TB3Y*Sh zwIm@J#?4`nm4LLxam5ege%GX}8MND)YD5m|R9h8L(mdBuaT1TJxW@7kdCTNd+$*64RQU z2eM3ljBFaC-n(`Cq07GD6NS1chCZQYf^^lI?-9Ip1;OiGATK(#oAtz-d&CYm&B2T&Tv1Z(ksn z=Y|i&CFt{YQAnCI5*)}cu_N&X6Pi&`(NBJ;d1pA;S}&q%Aer zVm1r}9?M)e`)Nj8kL1z?GF_JA4NQR^`RS$A7z_y&>TiqApYW(i;_f}S+;5#V?YyJU zo<5O&1LwT!Z?FbWC|}!hD`^5f*|LWB6#{vQME6Bc^7p2nsN2ixdtk2PGEg%Fy@jMy$_jGyX7~vd zTzlBuKizKT+~m?7C+YQYyGyMa0RNdcqbG8g%2~yFt~JeTuEw8OAS}9I0H$%g19y-Z zWl>XWuL6$bz1bsT?MV;|J-rQP5RI%pTT32Fh~Y@KLJ7Z~E`L%z;)#cXPp$r6N*z=z7E7u>h%Pw6~)n&WgiL zzvon!epo8b{RZ;rE~{fuqs%VI{5l-33N0gYxU#Z*lhJrNVX;;Op^umSp_}oUDuR&I z`RpQUf2z$QU$KDcQxG4}t0@UD2c;u5Y~gS+?OdPS)}y{5K|{hZ&X^`B`jcDPW#?AK zWlvt=?0aA?+W1s=;PbNgCw$uka}Uk;te=7;bz^?VVjX-sYyQP}2Yb0sF+)q>?^?%K z{Y4=g@|n%_5OweVsrM}IGN+zXDIj~b>x88IgczhQ@hl=H`#sKhn69orN6%&l1G|S_ zwMw$JDGcErNUXcg4%H|ot3*inef`IAZ|rSPUpF{4UL)nAq6xGst=CQ$XlSUtWI_e+ z)q>7ar;Kbvq&cqXlrzok7fJKNC-QaGd`&1NzKB66Xfvt1r5f zQF@z4a0f}+^`(9UP5<8!(hu$9ukE%Rve8A+`OX9)L%y@(tiBl;PiIwk2e8)~Jei#h z3A*eL#l8?qReF8{cL3zV)-XdE7CGij0Lnn+H5d~1EWpas)IJl_I(}%-N4wm(MNK0N zY7mCt7>p(ym%=A?73U{dVb|B7gIQG}6LU>k?u=;USLuMTX<^1NmJn%v`#!ZPc;?N` z<3IqNBc-Fs6aUnYtCaV#nb}|U>T0vu3>W3+W^@7w9G8#EDDpA^mrt)-2vmV+BD;Ae z&SA5b)?5}J)3zh`(s+x;Ny z$0Oc!8cN^C2ujw3JK@Xs;p=Ct4yHF3rjJC2TfU-@%@2DwIJHs3xOMw9FWe)}M?eYv1;Qp(^7_UZ*A+TT{B zv^i5lS75QDZxN!21xxP|ytLayFRBLXEXR`fr^;wLf6=Q|DxdJ+B%{Ntnl0_YL&rWK z;}N#MAPn8Ls;}Q9{}5QkhkFn9@H0Z)cF+Oe-Y-KTClLx_34b2DZ);jN-}rAq`~RSD zs!2YIKsQFVh0p!yZc?Sg;ilsiAs*`cj{qttq9mVa^m<&FTE4lNt`;vHl?epzE_r3buHUJ)?0W zV2`NQ&vg>Cl;gAnv&ZpvZ9nEc>mpo5|f7oJ>!O7VHY42K|xjas7bp3-*ig z(iT+q-QN{;uSu}eD#kMSZE6m9C zs+c)~a^F#9G5(HN{@(GLjOCs1=lO$~94OCAFD$(g6wjat_Ic|vokoMtjc9Hf0opEQ zi;U60js)i!|JsrHd=+eWKattZ&m+f9FQPkNhKWDbxOtg&zZ7N54su6&>#w z`&mGt7~!}5-q@eAM{1{juTg^eRrQ0blZZ97C!G^b9ePv39D{2dwib;#u9-~UHC?vdzrBp`&MA;|N5r)Qru%Ury< z94=o+X1pIznhNlGg92?q!I7v?t&6kt`u&AglZH zB2$Y|fS{}@9zhXW$jHWrvz`coW@Q4PwiQ_ zi!!e5z3=!8Y+O*0*L0~pgto%AsBLsn+^!$F*{x?ZTJ3+|_m+6yNrZ@foQ+H{=NR9= zN{jr$u4X0M#&EVgKkxiek$N;=%Dd5d#YXc4NHWHDvpqvZ$|{`EmJDdJeXN=!w459N z1qC!djq=F>d!=thKXpWu__YI2z_))~mapyat{FWP9Q3vj`uk+XR}c$t`_T^HxSDsmmf0UZR31(mO8a$$^$1d((rO8ow?IvfYiceY^)VDc z&CRum#zgDWocGaHlJ7<4k>vbT0WK~aiNAc}-;q8YrNgv43shE9&!h%Mq+C4!=%2E4 zJ^kS_)Ee<)(PMNAT!rn3yaM7xBaF*Xqa=~jn`P@lQ|Ap25`s4>3>j}XdYLe7YdN11 zSMRl$WiMo{qdEcN7as$NQw{$!)rjT??`M1Y28w7&5{HL5AVFIPZ3C?O#IoI5D;Ase z?R{Z7(Utn>Mqvm_FTNFQyN!I`CX6sZDLhXoK}sE%AO0Izt}r`O3fMr-xC8}O=3xky zGM}NE7Ij)l1#+RvLydWwsvQ^LdQYgrkNI6bS@PV>w3IknAv~oD+NXyM9W!W_SYww> zbDCX^q+>{(-^tdm?A!uk#Uj50rDi^Ig~oN{bbn@$!)<&jx^=?CU#zP})c7@X%g;r7 z%xkk-ui4pnggo?AD`U(+EYzbOMXv;x*G`=wm>#7LGa%78ZSCju>< z%prGhKKi`WWj_#p!)DROXNFLX^>1hu*ix}KfBz`%~#N5vOj>tEH9gR zse3Vhp$DUy&Nf#oln^seVt$HrOaf{aqIB7Jl_$mLNYz~@%pma%%-1zQ+1$0s1#3N5E{I#35-^D`-qe=S`V+Bnc0G)52g`?la5{xee23B zm*WBl1twrxscNd|@zT^??r`{7tkxd}2u}*z#vL^c9p5Z@x&pE*Ra51*B&`*p)*x~W z&dByR)&piDOL?zHfpT<<(fZ0yEQsH#A|^ia_;6fH0+;c0MO~Z>6k;Sv?ok- zHXyLck~td+=s1WrLM0}p7Sikc4BuobVB{g752Jo%zrcLfMos( zeHpq+GU@J6xWzp41N@t*o8>Ira|fi|l`x_ua0)Oxt7W0{O(*up)5-$ELD{k`L9|KI#CJp{b2Sj) z;!Jbks0k$>7KNnGeQ`OnAI*3C^aiQz-SQJCb`)w+8NjD=t%x)v%OMW= zeHs{2`7_R4wi4IixafuSLQmA{^pFiPGDH9rmx7PpLh=yXe`W{`UUmJi6ADN>wj9Sp z13(cq;BfQ2qiLSH(f%Eu0dK2?!}a%}#T8&;#_V$XtXnkTZLje94W6p=Q89+=sbby;fkuo{#< z0#R`?q_b<|vo@5r-4JlS3L-NA~uwU$Y@Sr}vzrcUw*yy=E!zlUozw&>2N=y>~c`X7E*!g-#90v94 zYHW?I%}%p~z~I;@Fu5C_%fnBBzH_Lekd}Q~%Wmautvw72;OG@MZjybivfy6B0R)rR zfU@_O|0UY}hxuCpra;a<6V9ol08-Gkczv5smHG0dHlN?vIm*F7zyDW0msxK+wn$@l zW0UpF8unSaCtwr?rBi$S{;qCsAJ6h;PXIc-(3Hu$A2jpXGD8F^;>g7}LwuJYcS=%X z5R-aM8YGUTa1!Q$FO@U@Zp8EFdhf50jcPrF%l*(#%eTuN z2tasoB&fq9WG5(}4RJhdn*ccdFqbLz-nm-dkNOp@G$OU=?x{$T+QRpw-J2tXhN(c@K|QHlvTLzgW=^^ z#FNbb{X=afSw2hGM^J{CGoT9o|8e%#QBn1KAE+Q*f^?U3iAXba=KvDYh=6o=E8UH> zbayw>lG0t$F$~>tH_timdEfIq_m8{oTKq9fT*IC{`}fUHK+*EA9fogYj1a?)G3U(& zhXZ;xI1?ny@3_L)c5NE7)N%Ig}YG(DyhK4vVO|}(dj3Gm7 zVD;on8$rk%fB;0N0z1|1-v_f57uKdR!fU=qD&MhzdHT$q1@I&RvyD^lg)WyK6;VH6 zvm^=8_G0swq4O7J@K)GY^kvTyHZN<5Zxw6ynibI49-F$Fp6KX*pBW|a|D!@chHrhS zQO;zLP#aVp+n}%9`gpPQI$5dXBAYG6wM3yx+52*>q=ym%jV2S=F|!m_st13qbFdkY z5$Zx$Q*xd!%*z}2HLuv_BbzCQgGW@BQDEG+APVDw<>Cci9ewWd&3I}7&+1pr{DSMOneAGy^Uew|8-^Gd8B=)B{Hm5G^3kRb>%Go@ z3-(Z=|7-MIRZeO%qT~j)iNlO z`{h#YaliWQ7Pa$%66RU=L6A#v#e8LgVj3UQ&hp1#GRAnIXF@e|Jjg1mRC3 z3+RXLYFy{VD+SH04q?I^G8o<0HaP+^A$evDufNRh^WT=<-c776>zBTwIk{tRw83{9 zgpJFb1)RXGj&)9MKgTGPe!03+U!HdH>#s9EL90rH>?SEJn)U9Z7yAaZ;Z#cdO1y0q zX}#FIh1`_aE%1+I{>7f zHL)RgpINem^Y(d*?C^yW&i`j_(IB2b-T4B5{wY|QKYZ18+;y3hd?LdRi>^3k{gDeI zKAMc2HXJOHh%7^d2Zx{_KWP1h+99;RPMt!@92;@Qti{0?A8nGUVz<&4U*sTXkx&-kx z{Jj-%0B|7~y+JGhD?MTpNMN2dnMfgTy{Cko-U|Bi=^5v85@1INFUx`)95}JrYBHd(NeSBi7s4IytB_yQD8RC zWVj%%0Nn#d2ATYF=Isv`DTb7F(*UIULoT7HB)SB8S~&UaS7Z9Em}CrJ_cjS3JKV)j zxSUT%+U*J`1ao)r9U3-C3=FytH6q@7N(Z}10QHb`OKK<|y-=i$ZHpm{FY?JHu+`o} z#jwgEGa~a|UOnW^}KHTFo1jsTM|M@IW-#M#d zv7EO_`p274761a>2+BQ?aZKUI8(RbE@Aw|DtZ!O{4gZHSzyu;Nz@6w9m{(x~vSZ%7 zu>OFSsNVw1>4a3BLrIU1zE6~MSyMrVHe(!rCN*xwnrwhv%kM$6ESxiyRf)Ronv{#n z0(ii+}Z3wx4YS%yCF`MtB!@M z{Zw%Q06@v+9071Y1r+#eNiII`)m@7{8WDCu2VP=cz<`kDk5@%Z%SjV6L&zdzrYi3( zJ$|gDC)Ya{2zDWt;V4g&{io+h9!uZ_jS zrz+t%n}Y$K{Z?&VnZx8iP+&XMk9+X?A~yQ9;JrLXjdF*z!s+=yo^nMRiN`0e6-u+gf+dHcA2Pj+b*a(*bfCc^b5BD6}a1o5M0m0S1?%AL2u_0EqkFVpjb# z6=E@yTKj+!Xu-IslUs#mUZdL@QUS~$f%rD9J=Z%Ge)YpWL&r&{D37hA-*I5iiBOEH{IPG{Npx?-Nl^1B9xxrOj z*SV^qhr~=dzb>%}x#9wOO1<9r;g$~KJ6M$Dh4(rg zIQ@EYVc_yxK{nUOBCsAAnsv@`WzM({e@$Lf0lv-)r652??~p+p z*{&P(Wp&$wQNJAL;*eWq$V0{QkSPpF@P=?kK9b7v!))Y;*Y=jR=GFG%IYYl(?Zu19SSz+?GE}N*uoLe z*P45068Z+6D^m3DLm+8tAU@_|T|3@u0)g;k)3~QxTaF&Hu@J7QnZFQ8%7sS>YkeE? zUCpN2Hs8<`nDg0vZGpCkQoJpL(wqbd4G9jgB)vpWB`04@){gwE1ITDN6#Gr|4DFvI z@Ea5K&UAOSRsb@|k9u81mCu_T#0QkkFQ1RfUlWQ9`~y^YM-8!l=aJp?P~#%iD@q*f zxcVpSafr74DDTp2kKMN~XEUp2ao1y-?`Ux}YphWr3)pNpzuOvA@5lk}?K`SmbsqT0 zwCo+iUy8wqSMkg;qg00zW+zXmgP+G(;a{>kJ6EHvz&nQgA^C4E7R9qM7Dd}|Jmef; z;V&kmo{M8vCV~x?iYKU8y+qNDe=3ZDEyKN;%`6mTfr;k1SmwP}R4Vr=kuJ!{O)ODt zhWWjx69kpC@e3!z0BJ0T4qH zVC`McP4%@N zs<-#E*N0+SH)oRO=T=rHcib!2qqvIcO~M@CeBwpndgFZEH=a017=Nt(uxsv(*8w;` zZKNZaq;J~TD)AA-Lf~Ob!h*r@PxvUzKF7W$0Re=?q3`~2zVLynRT_Wtvue6OxHCWh zW%@5mK={GMW1p}5t(&W{8lBL+2-*mdV?YMTD=+aQ-^(oDypU`V@IKnqZ!IRI88O$S z?Ck6Sw@`WrziT`IkXfE-4tab=zxj?lhsc5fXCRnR8XOjSZys&SKKo&d1t|@rKS0%r zgtrD0bAdq)82XsA1r;Mh2J`^8hPprU9Yfjq0662;ueen6*<1f=RG6Rpb-*m!r~L@J zBj)$5#Ub%=#pSzVngEkegZfitvFFNZLdS3YCz9A%TtG*s(&cNL&jS+(uhO-1wm)?= zqeUFR^Sxg2A_3%lierI#<+k~9$8r6S+AVa7*ZqEzffSU_wxU=L_Pt{_z6Ued?(%mn$QGtP!`X%B`0~9$iE96eMX1-vOM2W(|+KNiXl43^?5i~j9FiDs(!O+ z&(-2ALG6C>rhGB?hK&JGz~hGImMvZuPA@O%eEBo?6Nh2xh>8D>Ny9xgg}Y4Y46iH~ zz*!YL@#c0;A&c!v?phIXS_d*~_`}YMSxJO_eUg)Ra-OZ4?yVLa* z-Ykws|7kZyUH2czeqr}#EWCR%!{QztP=ava?}ktShg5hi`}O92##*GiW6&867MVpI zZ>5WC*aA9}G`t*7$yj)phgevjUI9}WPE7N6`P zzPpF@VEL`^QT(Sxgy^zEgxtX2iDJUd&veh`@3g7=Z~S4oI7xTI0Z4rtEq<2g4Yu>? z7=bGQZ;z-RgqxdhlNh<%Du~6!{^NQ2ZFaOtM(R>f@j~z#&pw-MBdl<&$$>gF|Dvrl zgZi(;^`A2DnalUx-wFjj6o*y#<(+f3)OwWJlV8sBCqF>BdQ4kzB9jJC%!yfuOG~;k zSQuZ_%QXrRrf>E+_UCQhNJt85uq7}n`wu2Ch&(M!B*G$NV>G6M8?g8|?250$<`=;WXX>*e;6NW_2O2?w6JR|AC{sqPzq zD9FWJ_SWa;)b;~tjakGVlqN;@HvQ;+?b=OPWBDlMK;5rZZ_IgXt(U6rF&^5sveZAC zr^kD+A#xsURdD$nX~I452#SNG{`)NA0HwoQdI2x{s=PY^Ybi^L6*Dg*#HNq?Mx3-PK=$Q>+G-_cUi6ZJZl^a$cCl3UG|Fmrn zcU}*mg}UtwV6BsEvv>!d9s|{;tg>XZO`?pclWF~{JtNzSe_Q~1Hr8$oVqB#EqWmxd zUn@ZX@U_OL-x6~{eyr9%WsN2m$pbuy4atiF0lkd#gYEQMi>poR!; zxYUdK`QEp`w*-;y_5?~CYi2-R7jUz#w7|9=2T`U4IS?u}pWv3lf zHdwvQlSav-e$a>j)xY`YcFV*h!ACxkw9c`)h6hS3EqgjnGSk|Te<3scD-kWe+DwcK zsS0iSjbp6C{vST2?+9>{d<*)3L%CEF;LtZ&cfif?MdfYgeqI{y^4`ftfq4_aAJC|> zd+%{ekJ4lpCW$!m0lE|ZuO#>R?YS=t61?WpTNPJPTieQlf1g3~3v#;uJpTWF5v}~p z6Hqqgy6A(?65g+p82a@bWPBTZxb`{n3KzNo1}4tjyNgHP^IzP09}YZhF5J?1Z)c6P zn8MF(R=(gC-2VFaP|#~MUNDKC`2&As;eUf<{p6pkfDG?NfLs7wiXBW~kxBJgR7kBq zoX{$v3B}D91TBu=0Ndih@PN}4;DgOpto|Nmpr-%ePe{P)+`Mq4O_jLN*`8i#o8=2E zU8_I;5=H&`ZFg-QyLPufbNbSWBWy<@_t~as(+qVp@82zj*+?@B;M^|MJT1|28g>8~ z7-wfH)2a!%JY25OK!pGQcqd-Cu>3V|cL96w{xxrZ(g8Jm*j`Q{`_NGqrS4#gA(V%! zDjM?i!gS=rzo8RepEoBpiKZ`G|BieA^8CG;%>kJd{pj%1>M9$#ZWECx;FyvPm;*Da zHuI^P1V5mxe3OOE(>ONNvBS!HGM3RFO&07ofI7&Yc{~;#NmG^n zSl30U_*g`-Zq~=zTezdF@vr#_KwRz_bCbJQl1WmM8hndb@u`gI_1cclg_vHk9(Th8 zF5lyrkrwFeADn=H-J9Gt@DH)Y{0~hkyk_5{BE0f=CEno(FRHI9C#&?*Yja6mEC4ns zW~2AGjt962ky8F2KcvOm6LuwU!qBE2h_jUUc#!rtx5 zD=C)p`y_#?{Io(EKeT@mVLORO`k>-(h?EDoga6)Qnw_>7_&X&}*yK5Jn4#UZY8LdRolDMKQugr{J%d`z>O1jP?X;S1t9v899cV_&FH${ zoaPl3o9H_@k17J==-riXK{#aAH$MD4e0-r`7z`Y&li@?bEUNz#dHw};{2%#?p7%g7 zl|TEb#)Ms&5AIx9XCbO9#o^`YX(`yuVofIyHH{M2{5(~LfB^m#YRzD6;dpn3bHc;b z3yJ?XpkVRefC3dQS1vHW-~UCq0fpRikfVD5oEF^KvmE~Z)V+W$dR8j>(3?t090aBi zQ?$4xjR(*O@fs=zxo`HWO?*Hi- zDRTa*4+#JTi}q1=!M_*#14z$F7pdmUGN9@4Z%u|$791q{#PsHHhSKR0UO$b!+nXIN z<6pd0G+DxauScicK2Vk!!o6w}rNr0&lCa*x2d9&k&Y(o56dD?u&+h`w+s!&en4v6r zx!g`I`XRWnv?y5sWFOPg!UR;${$1ok3L{ckR{yyYV&JiPp#<0>a#fRzqyOih|MLPH zxWczEh)HNb6zQbE!^y{mu|S1)O@jpD{s1`o)0Em1CB6$^h)f;ZkahTQWl*K`l{WN@ zSNeT4%idi;=VJg15$TsfO43-t|4kMau{!u~MzLp|08KJ0BvrL+tYmWEDb)-hXfc?f zJPS$8QTR<=ThFb%9S8I@{N6kVG(Qpg=pN&5`~Um~&7Pag_r4jUjWOz4;eFHbniSJBUF805=@$RZKthZj?_3V8>_~^Hh<+SRlbO-=GDc0fI)z zfLemlYv~B6WZ#ayc3~*u6 z1-$g`vI9n$&B8ghl{;g{z=7ylzM`;Fn9@FQ!#DMLeJ>_*@XL<$fPncfzZ^&ayGySE6u+N?qtiFQ* zK`yvBvo=e}YluT2^(q=HXsT@n8Fd;1x(KoWmm3*wq0UlN-$(5mm*t9xoO-E3qruNK zng}~!?gRwK%{cB?ZLU}nSq(>;xmSQT2plyLjNf}ogV6>S&UWG%qEZKEI;|RJO~G=J z8bzFk)4V#eh#gv$z?3?uGYxuJHRZjMIKIj{}lz{y1*mL z_p*@L0U^uRm?s+-QyLX^=DI$ww=v#S-K#(V9kQyBAxi%P{1Xd~87RPDwvmAUsE)1m zPfDcpGq5I?b~${W3%G6vy-7&n1hAm~-3*UQ`_wgGcg;fL5W$-6nXhJYKqoQO1a8TK zuWKfB-+~AFc!`qX8Ko8X1D3%9h=g0K00S2nz&>n?+0@NmakG!>$b9uY$hHnmzZf46 zbV=T}b;;4n)F{Z0IFMoPu%0j4QeGQL<)*cBbKlIp_ihK&UeZKuRwz|3BHVBWAbTP= zJ+7oRyc6GoqINISJ#etGjZT~T1W=9@hNI$&+CMuu<^rTu)tOQZNA5$xfMpK~DEoPL zG`Mq?j%^D!913!MbCcqpn8oEZRL#c&_VyvSx3kM1(h%L9Kig?mi*-CY+Ggy(IyDYo zBa~Fiko@k|0c7ViK~l>oVPQkPte9zw92*2 zPHd&Avj(*wtE!JX9Z^}>aZZ3r$hK22=>dGuLbaN}4~4?s^UHxF{3WaITZE@y{mAdF zk8g(|F>>BET}L1ss7Iq;N?%w!JIy6?9=yZ8w)qIt*c6E9;9J(I4)1br%Z?<_-0yRJ zJClDN?qz%dREB=p_rLu+QH4SmNFx-wO8O~|WI$~D85u-G{mjY65c#d^PZ7*r(RcN3 z-;IQY#4EyDkJAeLj*HeJ=?>RE8{lTg#sQmsK7|MVqhJP^SPq_i&D)0ZH#4d8qkfFi>EVZEaQss1jDK>3xY0zPNf->^)9DBLh zOM`_w(d}v31z1UHeP}fBRma_~wL4(FbsE9|t-}O`eHY>gb}g%}n$%>}YJ8!9PDG2I z!oq(!U7X)Udx{z}Y&yMK01M-7pTU1gAm89$rN@!LtoJ>ItC%jljD|BTPt&*`>NCEe z@1qLHYvaD=UAOa@t;A3(*HjE9dObtX;{OEHg<7YRe4*j*S-SqXS>9V&xoe**up68j z>34XubifEztTKzEXCZjRsuFByFsIR0Oq)$fhWY{w6iPVa$m;OLMt2B882}EzAmh!N zm6V0fT1Kxnkf(Tx-Rtoov4_V3w8tobgUJRH)HP z%xoh3=6tqY%sold_Yzn_eo`#PM2&xs?Ssf|xuOVAv?rOlzVBSrdai#MJlYiZGb)%k zc^V}sEx=)P=qd$x#bsAz^1o7^{?tSjS_I)aYTkR3a2n>HO1Et^{BdDIWx9NPU{gr0 z1GkkoZ6Elo`e||7yy^ILPikDX{0ib;U)1kdl8o`vilBTuVYAY|UF6LH4hP zSpoWKhRBvEbE@JFzV0zA=1@XMheQ|Py%I6b7nTvk05lI7Ar!HkEYg+q#RrP;R`Q`c zD3TZlu@`_M%qN<4MYLY~UQ|pe$G${BTu%x3Nl23s&qamehFmQj?@u$$E3G7xN3SXo zWwl+v4i zEK#Ay0&MAAjvdyC&UNf5`%$>ft33AZTQG);OH<2z&o7P%S1nlrV@NN?qtOubOVd&Pcs+PmIzBosM?^MF)(Fe$&dyhtia%T9dmxo`fD2ZvwLgF)-Y`Y6 zL3@=zRdujxFY1>=r})e5PhU<>P5>5n3IZB&MID)30=+E2yHKAc_aH%Pd5RtkuIuD4 z<9%@1C#kBsFcZ%e;NFpn5ruhg?dns9?j4oDtF~g8k@|}RpNO-xy3@e6qkO;lQw3G) zjHWCAQYivqgiHhx9Q9L*i^j)_QwFXGp!3?<(}cNN~@U37TzUQmm-sHc5#P`@0l|Jd2fBQ9l422Pn{{7)Tk*o4Z--?#*=P_6z zg%-maLnNLh;TpZ0IsxS47tZC#Im-ueM=M$u$Laz_|7Ourz6i$VZ_xPN{!(fxy}s2b zE}}Difh&PO9-mF0+SwR7wNFYsk~oq{HPok=qVPl}SgyyWSBr^GKJ`sUS7#Uc5R_{d z&31}mzjHWm48j0)O6qaN*4U+}rp>vPww$>MS45uw^hhw4_9t}k&i&R^m`%{fizc#q z1PO5o%mDd>AizZ?LFk2Wj7TzTIsrFay+{DJ86@EvfN6HWL7JAp7>^~{gfL;-+qV$2 zQ6Q(WA9IZv{SYzTtD*ZXK_WM@8+4^mL{f{S-@+4I)FOZqi%mKHN0oT zeNrTKY$KPb?C1PEXf<*y`;KgndhaM=ZnF=`EdG44qS&$94AugSTyGnbIt zjPI;(jVCdtxA=%H~%^sff@y{f8kFKBwES zOID*$+Z%hDUd5vd24N(&xfk0>_Q zS1%*lZ)5`#3>xmlBo$^jsx63a-P$ooZ=&#+brr58zN0A)HwPVu{v-okdrW%#{=x!< zV`$6FT>o<@zafPlZDc$?DzMH=A?}|Ee$BDFkj48fAX?sp@kyb&P@J0qN;bA`zAmxu zJGVzh6@HSYd3~03jmKH6ubuHk<=l1V(Zc}Ld|Qj3r44!@RXfNl0b?QXVgOetnl;45 zca&@9QNBiiy7>wlIxa+pB6Df=>?6~!nzSvIu#qxUEFWQZAl6V~x*wuqgmcu~BXtj`sIF_znZegYQOlv@G5LU0K-s3?n=kZ7dX9 zQw#1fIr3?lx#==AgYK@yb7;A%Se#1YOuvhTEBL`#(0%#ZV(8^Uvw$7`o;!EGG7Ry| zH~)1Nas2|bpJ92Z7Gkpso zU-T2S9*zf8Qo&(^3)WSkH|J&oCxfyQ5iJB>{^ZaGwAD` zMn-~`o}0_%mW8UZ`F=K^e>?Ko-^bg_fU4;bS9FQ7vBe?)rsGD5`n^w|(qW~|WNTHp zzL0GXoEg$gS@#Of+)xi-ca-blw0w}V!;EPFy!%@%q;Kg*tgexDAg?Z4hI^#f{EeJq zNbj-M5mJz^jxAkH?1DZ8Pg`d8!ZE*IuLP{^c0sP;?`avG<_>yY4d3kOp0%>N7BrXp zWgMLHkudPoWI6UU?y1!N+yYeHE9t^n+g{S3T5EGu!Fc=^i#sK0TEJtNfV-8P7v&`@ zD!k@f14dp`m+Yp={y{LwaQ#yy#kZD0-Vgm#KeDPqIpj%`ckXR% zYH6TPIN{eJ^(|0o3dJp3AgG_+Y}nwLNC_{->^mX98d|ry|3s#K?a__kE>;wRROjxO zoAN(e028Gr+(1)Fc0t0URcMxDJuhGi;K|D8dXUm>b}28;zmFF zGe`68fM{}nN|WZ?wxSn#E*9*IXe!Ta`$dTd*ti6JGWz4fs7>OZjLruPdGs4brPKtc zBQ-`E3b^11t+U||%e14Bk{9B<}0uaisS;8v*aG$TJVCHJl@C0eb z_z+qb$-A^1eiZ$_|9k%Xz7{1X^r%5jLB>F8-JIr6;TwDa;ey7c)P6;?SWS#zcY%|; zQJb>}5FhX@)5T+sFmE-=F#2#n%hh;-;ledxM%&xjA2dq@e3 zgi_GoYJ)|@MLvX51ZPv|Mq^BPRKUXGi3`IhR~kYSs8qy1xI<}>qoXg!xD69qQkOr+ zSq@sayJc+FH#wNDBrjWDdhU><2DM&f+#6;sxLR?piBZ77z=wBl6pYHn9xS^Hwbric z@aX1QBTbS`&cwfZdFPnm0d3Y@lUaS*LjF}AMKoP9_)|;@B2W%uz!7eIa3c3Hgfv?{ z#n1w)LK4zieD98|4J&1QOI&9DC{7P>5X8kqp#H;TOCJ~+M!ccDTdmQ4Hk&a$P=wGh zsxbO&Wtm@WxW#1UsINTy+c#Yv{?96Em9kj4^?a1Y zS4CtHo@s3Zhe<4Xk=sep`y$aixI4{2^FaDUtWs)>s2cEI!nbI-J1O}0<_hXPr&ez)P zD?;(MOV=D015nqs3f*^)*>9{i)I%JDb2kqKGpJ!+Q~c-0FZ_)#pzJwuF;WkZjYixq z7L<*-vt9`E$%*-%?I`LdC~0IwTM6lR8s;Z0JTXzc5>gXI!Ic}fvVr(E%U`&zBo&@sktXk<(|OK@m8wiQoeqJQ&@B6;*-3r#5&dfU zpwA6NBf1y81lR31B7`Vv3oshSxBiBF@wb1tSF6r&T+~+Q-3X>-6X^5L#)V4#Uptx4 zMsN0z=c5yx=w}M4c@#gjm}b5M-b-4E#|q=1sZMx2#WCV`PC_z%@A1ZRETrtTwS7*+D?TTDzmNzEv!{|@5{yWH z)T;5lKFw;`&4vT25Gm@%n7}kxDnsp9L)|y>n}H<_)ScEXQ10qgAE^mbg`!87Ker;K zf=QBl>D5D;)d}#_)nt>j_`ddcu3yGr$Ul{8W49qdqk_@CasDZ$uG zs-)Hu9b#i^heJ$UKuyzDBF-17JfgGIHTgyu_J4oY>|k+FTuF+?xTUjv$CRpE(BJZ- zzzbLEb$^}6H~ol`39Y~kfUUW zJaJ?-UCExMB~zIG)HnilQM%9T8ubmbB}Sej9H2ES?9+Q8%$4^Ge!PUSi*khVMo? zkwh8l1W}fWJZL)#UQG=0kQR3NYlrcR!c0k(Lk(ZL@7mt*1oq#Wa6Wb1KL#BxJdi8W zFrY)tDPG>T{um?Yapn2t)Q@fQ@NrUvqU>jNZ;hjxX`pC7R~o4Yz*@RLp80|}vqK4b z**XhWA+o9ZBvE^U?UZ@I4pvNeCZ#bLUkYLL5=F-CdJ@AO^dYsDQL7@_S!S2cIoVbq zk1ijpQ=|b%jPmxaPc`hTsCyidR=(9Eu7{G#~$LV};+6G=*g!&{zq&_-Yj7ZQ|Y;VvhHmS`n z%TAZ5jeiaBx_k9&wdJbOLpy)A-H&a-mh%%fv22ouUO9{_D4IxvjTCT~$+R z%5_9Swn>kN7u(u0s@WoFUfZQt534&oib^DiaMyBieIc1Gf_HyBE}rDm7Dt+?afE9t zuT~nASa5#84Z@@N?>!YA3&~?8jKb0g2&mu{(Suu_<`107HDlnUegF4IK*CoPMk!{P z7Xqe_cGzBEl1$MJfc4eLS0Qt2l`~_|;O$|MLqhO=+E2T$V_4d|IL~Np^8UWGQWy=$ z3@!-P?o@kLZWfZvyU?^n4aVLv#cLoW?}Z>FPdUEGhV}pM!h8)|nSfHE^N`P2FL&LA zwBDjo>5%iXF(rUlM1C@ zXg53=E6&#w8n1a2E1&?EbHZ$5sehOwWW5;npDkCS=6?0gg+oU`rTwxowcnCq5wAkP}X!h&6hG8D5WUPVT6& zjI}wo7?|{=o^Ejq?RyM2_jt&<;4%t&6lY{ zuDm7Nq8h1j8ruc+r~B^X`+Uz|l9%c*2iyLM#9B=e&E7zLa16y3cq!VLSD`oy@qI21 zesL;g`DP846#&WqMfOKF9NTTk;a-zsd0TxM`Lv{kf3uW+wFTjYy*}x(#ppdZJOe>m z0uV@TXQa|Reyl%j7S*#%J>m5mpI?i!7nd~iJ_raRw!ULJ@%csO6)5Le>xELcc@13E zT)R=jaPm{&kjb&oYMJcZiF}ayYru#(On^>4x#BUCcmI@3?|bK$!s&q+*#B)OJq51WAm}9KeB!@+^C}qIva*kDb6V!ZWng*z2LlUL^mKFF0gk1yZ$qmWNe;#sHxp@o^Q;EjQtm?+|cKv2-}uaD0o{C* zSg>tK<8fNZGZkET+m+xl>-}bE^`Udw#Ok6H`Z9-ZGLP9pLml|*;sDZqpdZ)7B z+0uSoqO8cLx<9)?#kV56>$81@6&p!!JN>}cW<^mBX*^po z$=IQP`>x_ua2e)T@^O3>#=dWl_!lV|JYMZ(?vkxhKkQumVNI4RbUQ>=blUr7=rs6& z;agnOq~yU++ig_*%b>`{Vsri|9CYdFX5+9Z5bmHJ|c7XVAoG+G9X$7LNIn10QIV}EPo1R?7M zCUvv$23K$1ZJA8>lXk({U>*zj0bz)8C)GcjA5gfr69n8I%0_7BSLT<}~eT26mE^?#p%++2QLnnp5R0H$e8`#rAsg`&#kDjR;3D{A5};Xl(` zH{Low*Qk+-Z#CSAee6aS39g8{EzPM>*7W+n@_zAL)txAFKwP%*AC*M1QWdaT8zRRm zKK(v6KEmc{)s()zB7m*!O4H5H%ZUYFdX?(s@8nhQ#e`ej9wU2&NzK;EBd?e#gO;P; zqynD|GS21lt@mkHN)c`Swwls_k7S=vq0^=(QLbr22D!wuz{%);J5VoK=tgIO8bR1y zRufEAKI319O&xST-W6gDElrq)dWL++O`ns_c##5MIrDS4qKER=AP`|QrJ^USA9WH>VhTx=OiK|#F? z&-x^7*bv%ROVn*GppqN}3ilV9t(SwJNfYNzK+^)NsuqvlxRm+&P*$02p6@%~%do0E z@472)p>e#>Ba6PN9j+ZrpxShREQ`Xl;_oTHd9%y1!Vx3L#6u6hJmP<&k*$N;i8)`i z4nohBI77T>1Dd06rB$BJ(v36u?YqaQV*%?pl=DWPK5hMYt&_L8XLTEzFTaR+o5-vz zk1W$oL-i-NTUESc_Rnq32$6-~TgGAC$|=@tUo+I%GzlDE+ma7OfA(uM!ViUPdDOBF z#%YhFn)4}o&wpp-a8WXp=hfxXWWU(17eC2^k^0BvGot}7V7KoWnQRG6#{Lr~qOWF!~z7}QT zZUA3kBFW>D)KJ?rAJl(W+Mf|jZ(s$@C$@=(@zVc&@VWvwSJZ&=KkeLe7$2qrj+IHw zW%>?qtoR-Fu&Gb*fH3Z*nhtJi`G{4d#Wa;R7!T=Kq~7e08XGt&!%9AF9d?(_JW9_! zd2k8igtnBJ;(cMAO#sQ19Cj_l5eXc$k5)$WzOPN10Q1!7E2% zw?E@SpO^df2P|ybELz5z&j!!g`7*Ch)yNBV4#_{V&0ktfH_FgP66Hq4VWW6HPG7yV z8P~4AOM|@k*!AAK^h6}>njjh_a?&LX&?US-HeN_?m`wmNj&1)^9X+eZaIFe^-+G5Z zBYiEh&8lO55Lk4c%hW$Tdpx=3+Bnd|3gJC*#mG|IjhclJz3|eBdB5{>8QE zLY2Y24QpCHHJ#=T{0{!}I6&BN1Pkig!OL23IzYy6LM{S3dwa3Ze6{LP@Th_lI8Y)R zy;eM>s>~VCo)9Qp_KT zuz^6fj<}n!q$W#Pr<3NViz}hD(SqmWxx#%6t|@PS+H*=Lf;?tBrURy*nt2eqjmaE$oU0Nf;ryKTn%lM=UBL z$&c_ias3#Hsm1Dvt6WyN;#qbDo1>)6Hf$Mr5;mA$DKCBjeXt|r>sECmH5`)uPv3K0 zMpA>{Fi4anb2!B>fvZ}9$BzeF!1=kJjXu%Kdf}hUk&pzE-8uTU#cq6TbKkiP3qvF8 z>G_pw&8K>uc)l6J<~4dRDxOcKo5>Xv``r)i-}6nH9e?y5ck0RtvSJ_@JDi& zrWMQ1s4m#+L03>YrhkcDT^q`ISA>N^F*33d#TB!-KU*)?65wbNY#&h77>e}Xa9Egy z^*fhEjH1GHy^{k3%jVYaiO~DTDa^BV-NIpT4=>Zp)<)sN2Xo@`hp?2ribU?$s{8)T z3e@N_bj=;lvqXryV0219jyQCo>5Lq=%v|?1^uCJv&P@4h(Ltl`{jKbc*JNg70VEQ{ zf+M`K-0b)}JHe=5aWJ^b3_ETF~Y0<9DG(addC4tM#lcdK7i_4P9D0 zL>1d`yB`m%_&iR`WHrXo$E-wn{oI`39(AO0?K-I-)XFKgMx?xNmU3@94uAYJlO7C9 zd+1{S3ENe&Ta0M^Hx}Mb84op6`R$jMV;zJQMh*|b8`0EOKyaMCe3Ld zVrb-xvfG&@2ayR7eHO2SWQI)YRmr6q@_i$LAW`}puyDff!KIbCsN!oA z$Y8CIie><<>R{)3T&>@f7UJDC6`|1pIbOb4tv344t-<)%k8x7Fv+PvZo!^#|qhTss za$orMFE*Xw=LX3VV!7=#+tQZ=z!DTB4*?C)&=0IQM z)nJms^ipPaXW>AbLa(~Iy8cZ5E^*?vO6uI*-;OL0#^T?z)O<2w{)i75o9&>?Sp`~r z$a)`R!so6+KfdZda-XC47;F=*mKaI~`QewxD;aDydV3sS9ACqr?5{cT`fO`5=vMn@ zpbjH%_f-iy!eqhf1!3Y+==xr8?rW}|G#1G6kAKKZ_oWo1=+tkBBjHdgb35OF(A2!R6ObM z=)f_iFgtCo%RTj5J)Iyh>=Gv73wh-kpZh$|LT{3= z*Ho)7^ps5=R=8Pz0pAk?ux7 z8k7dq!Jw>#&Zo$IkY-gaU-;TJt^1y)8UEQY>MAL;|l2<4x zf_2x$A$+JX#(>}6f+CGB%pu-o3*4( z_Ss&$QZKz4P*g4hZ3crS2h&3g2DY zl)d1i4G}LV!|{jRWRurMg>B@SRn_D<`s`t&e*A^jwe^g?mM$^xgEBrQikG}LQ8oa% zrDf^7YPERJ%4HY5-HR;PO$1*rx)V*vKch`T(T4r96nB3nS zt@Zb|d+1O{x}Hrf-WBt%KhYNXVlw-#*y<-UXsNa^+tkmVrN8v7k4_B2 zG$miDd3dA8ZYeK!Tle-lVxEf)kwW~le%ijNyc$}-XX+=lmeY-$R}y<4VNj#~{SpYk{VWgZ9J#XW#7Dc>8F$@i zZ`Pq(l4ud(jJvN=B%@d0tHWm`dWIN+AZ6+e(?|N#CX~lZ0#+emh3cnJvG%J6lzEZj z1HrxuwnmEtobP)bTIG98F2|lXze3(@jtE|$>@`8#Cn0Rq7ZCG)bZ%sfa%Hm*>u%}s zg@vPDkE5YQm(+dBtMSqDd}vWh#)Nfoaa%n!n{@O!jd|Ab&dR!KR#thToMk7Y9mPe^ zy@1_$)hIcTDeNNO*X@XoB{o&@*4rCZOby@pz7t1Ft7b)t4yH`UPdYt6Ov^=B=)@iL zlj-l|lX^UVf_jRMREN7_@`}whN0rWteS5r7Lziq^y2?+GB<=WMJ#Zs*^S-SAvB%LM zBD*im-T(^xV%4se*$U-MAjd17s8D)e%8vSu^2i3EG*`lnd0e#5sq75mW<8FK6-8|b z$oy^^PSQhLGXeq3yx=HjN(=rQnW^_T#u!$wu$MdbJkLzC?q93ejA*6w%)OS^y@)7a zeus(Jt(QI4o{&X{L)Bh|X3>N1XGqTNQp$doZ1>jUXg1ljbUhCAz}%!Z~?`#kFUZK2_^uP3xmH%}jwO+fO8Rec-SNwNTeagQxIx zSJY`E*(`)IylA@g_MkXQY^5%pR~zYt%(m?G=ZdD5W67sJU#YIk%Y?=d~PvY21!gr^7C0c=A5`sEcot>L|3N@?&Z=SbmqbImQt$25p=Ui8>kZ1ti>7 zqn)0a!s}i+@29+Q&vO}hy4!nXu9gSML%Z_y= z388FYBuT>Piit+4_9E%$I}@Q9U*W*WzHy?m8B_`xM#Arbg_mFNX>i^Od^TVdqk~cC zy68JTF;U%iaKqZ1D=2wcUlPH7)cM1PF^G6XtOVOlHI?gFCAIO3E9rF*i?_ss$9(s) z;sNEl9Ci_r0#zF=0MnsG<0*CsgF#ftb!~eo<;hg7+p|$}S=FB7tLlR;E?QC>h_v$>GVO2KYV_k zZDvPu!_{k*9amg3+zeh1oU_HGIy#2V2l>;&*u4)Jz#rs{jjr%!KDHRqY&&|AT$5+SGPR02j*d=uOgXIqHXo#uHZ&T^^+8k z`222c7IXcN1coD-e!;=tsx97S+eUkQK8}zD=GMs{&J-q^ex}yE6mub%k>*b9v2=Xv zQ$T_+A!N_vpaWJ~kFMWre zfTT0-nca8G;N~JsU)Ee5wgi)AZo?1_kKqXpCX}d?hZ*)(U!wm?9*t9MLG%;JnZE_# zd;IR}&kA!31)h!68rxZwzjQGlh2d%PkPqnRm`K=~REGUV9QdAeAO3WEvRW$-2lM7+ zn})z@S@`sm^ohD%Gk+7ru7pcFRhJbR||!s&~m-OR3)xj!6yfXs-3aSAVt*j=)9vtZzW_zyRwy{2=l z&5^zL1l{-f?8U;`>xDcQ?ekpooo)BK3G}QF8w=M@+@yrO6>~xc>Z5OKdTu@^&`LQw zXMcBmho^g=rMs6UO2K;_QO;WZIHUcX|Bh)uwb)@sj3Dlr1Q9liSv{d$&XGO*ItN>ZgdBzC*!VYS<|j zknoaEJ5cAhzsTQ})-Z8U;tGuVLHJZCks^|=xmW4?V(g5QBPrR|!BIdSZYDEC&q|e` zTj9r2Ko0yB^(Ajy?q09(AZ-vkdY*vnP^Lw zJ8PAR`{oT>0&wo)CWwWN&X9~OO zRZE_6tdNy1Xy`3dhrEElLLPRrdFtE-W9VF(uH=K;Y?6(SHT6F1B9lbyUGYHT55noX z`*(#JAhoo9p>5J58j3#|jeD@xyz7uGxcziKanBS>e4BBd??VT6Y4HN}t6AfI4( z2IlGaTkZ>ns^%E*35$g)(-qR6r^Y3#D93v+JH`(rWFZ9T_r%1=!+2`xrg8{+(vWe# zk6_Q_t~KBlBZemox>xq`a(O7|^_-ad*sX41-<+RK2=+$r`MX~tYOf^+dOr1cV$aiR z-QP&-x|}j?$ zZZj$}N1!s8!X+dgP0VT#afk6H&Cn0dhDnQ(zd(ZL8(JnsyCHeHFwT5?YE4k%g>fzezliQyd{=DxtKp=`F9oIQq?^|2Rja1v;$Rv8JAKb$V7)y~VmoYi(VIF@+EL{8bfc!87TxT2|# zn5fQd0NrD82T5dsdQZPwIjagZ(4mHWN3qxhV@3iQCerQ?8Fq9NDFtlL>U*^nk7-h? z_2&nP(cu(edAP)s6aoQ?5tpk-7|^l_dB-;2geQI(#o<@TAr(M-f}hUW(K2bMx^r!F+7{^o54}VT=n>`7W*PkgCWmt=E$>ZB&{Yu!X zgDMCKDpo1_G+y9d<*JIxXz7)&9^C8_eB3n)oGfUF&2|evEdG+Bw+LMLUX%3InX{}Y zq~RIh0pMmEfxL(f4KR*xBf+!z!LbNM5*;cQCNyTLwQ-;zt`Ct=K6&Dz$UFIjArn3` zpg~I!5A9@UQekUBv2%Xi@|1)U*;$BgBvZrCrF@hZ&bNg=IyynQ@fksml&FtTHaX#? zU5NZrcVV27e491#*B`-lDt_UVNa%IHk39oAcKK$$=~rOvoFxm~bYSdGdq3>{HTK?M zgs4^+dUG7j2Hn(8N0!&Bc=-5K(rV4L`z6;eX(^Ty-NRt~;S%N15WxT;^8>|Z!5OEt zGA^R}RE~L&ycV{aMDRG>kz}90E47?|L7G15adZkO*cPCQ`g9^qkBZ1u{XrXQx~Bn( zTKRL{!TNmVjkDifld-i#nfy}4I=0lYIPqr1?alVvuSS78YV=JM6s2Xb+2#WM0Vx#t zETd#8;ZyH6;(vpNUig4P5eZJz&1TED*KJH~i-~7=O}!@KmiZTNi}O=^jLXODAT&nO zd?BXfqlr5HzB#o7fcH0Zeq}^;W`ruQ13p?d6~4esoZ8#)39_}1xkCxOAFy-HhCcYp zFMUl*&2}6zKf1dbUj2xAQO^=n`2ZQyF& zBKyG1>0{f$3r_h(kkN)&PZaWIXC#lN3Ez+V!^bMQ?A`3xAFrsHb1-rDR=Wf)v!iBD z$}{DBuQT&D`^`$uoVq>Y@Lk~9h7n$6D%0tStuv}Kcv>$SH`uzL*Sgk8OnsB<``0F` z+qP8hv_FrDa66qllT~O>|-qG zQzaznWTZSy0d^GJvXpZ52|3R-5qzU>n`mPhze#WtWLW+$4n{JS^wxt=a%Jmv#C~jx57+X zMD-yBY)c%EnLlK+CGuE#Yu6L*RS$`iHR`1~?>xD*m}+}*9mlalv5+lJ_fD&2rV$$l z4TFSBuvA;p{Bzqz>1^CmW==kT0uc><`{xa)2{L~jp2Q-KN)f@ewzQL-=Lcsjl@JRu zVDUe{hL|39pG=1upYwl6<&D|+J(B2zMiK_5?zIMJh;EMNEq3~VBDv9AG4*%z(<%v) zZ-W+-=!krZ%L8q<%N%tNHDqMMv|HUor-sNMGO*@Fj9jNSVNW8-n1sjD=_>291S}Pp zEOuQ@x^k$NQ2AatC?Op>?`mNBR#gF`&)dXHd3Wc*wR3gOZxtIl6*dJ9v{KBm6?Flm zETkoK0x#ggsQ z8kp)|a7VThf)OFD-~Q$b$3$1OaIM~Yv4z}}mkS)-&YP6YEQHJ;Og%SR^5XkBnonK{ z{3392AU+X=b2b&rArqKYPgl?5cD$oRf5`l?NX_sa*VmsB@-UmEx>}9>r6mG2Y3TU9 z%wIzY;*n0bB~Hy%PG4nZmGx^qo$TL#TsJeZ0sEU48zBL6_QJQ)hSwMD;Gg8m$T7hV z&hJn1Z>$OY#u>Mt!GYJ34hXgG~I_5&L`ay(iYr*Sa| z?;RPU?m9Eiee8=*43BJ8BFMNiL|`8|{Bj|TRQQ&{%Z&c0jS(4(Y_w-x&D9@{MO%)T zL;YwCbM$owOZY}xg)Pl_ymzVBJA?y#QQlzYSJo@^a5|BX9 zX%93nF20wYa;mifqDXz?)Zxt?e4xV&CMEIv=5L07?d5-v8G22j9??sKMT>MG&t#=C zGF%`}UiTfIzlq%|5-QIJQUHN%M_DXA%~I4ugb`qREu3dKh%Z^^5I3I&-gcr!hnT0~L`a`AvL&>F! zZ5z+YpC~&`3}ysqUESS%{^*a^Qm#1df8~>HFH`pD@CIy1{*5Cl0a1dke)>fBttS9S z7`J!5*9RNc9p@^_-;IP@Ak=XfD1Lxu)D!0?0qY;vb1_k*=3wN#dZiBWOvHbxsqW(g zhlq5IJ~f6zJr5CwUf|KXe!unqSvj~f=0=$7o1`eCF0wq%^2L%jqSVA&4w-cJ1{0w4}Z5A+&6 zGBrI&QW;)7@|92Izz6LQ@TZafrX?__&H+FUOMp6VqWVDVH?qv1x+VeDH7cD&%VeNy zDQab;1VGog9d=&*?J8c_P`dj^a35?YE3DwZ_NKok#VrEdf{!DIhz|nn0LgRmC}MEY z?0|>cF@JlUD1mP1Rov+Ddw-~OPyX|HybyQahF!&OjB#293zh z5zOSv3NNnLDqnZlXq`!bR>Dm? zV=En&-&_z(H(W>k&jCArfxBD-x$T#J>sDzAetv!_m{gcqdMtJ+u}`%$#ln)G0G@PQ zz(Yl+fg(E^sU$^eqaTR{mF^pR|D;u!yZlGQ3W!sga) z-HOrK{2N%#wMizPK)EYpz@qq^4*445CmAP2ZKZ@u_FmNS#{GxmAn8A~7AP*bEL%}r zT=~d$^ugV%leTOss+vwFFcKToP5eOHcld-ki#_qtR?AU`#X3(Pf^!fBym$^xAH3eX zJx!Oi)Yh)ekjN0Y%A=?v%5CdOnuYU+OBzU)`=j6qI`sFX2*}71Ei-XD55MN}pZ84^ zRXA?^10VWR^^;yh=;#Et7T?_SZ?9WjQ*nK|uX=l??L2!7%xo>u@!_2!-O|c~l<>d} zMj>y&b}^dJI%exrC2f>ewzsd%_%tnMEk_hyg()x*J@_^;wR=xik3p60=@&skTTqVG z;ID>S$q>4!0B z#-TsRNO6g%XProud%|e+eLG0=z`A}H;!j%zb*wc+(}tmv0)Cv)#pear4m$iqI%BE0 zCl;-VaA70D=y{wU^S-f(Yp zRu453)531VLk4vLskmpk&5^#w`**&!%M`YU^-O?iwb~yiEfr5k^EH$pIx&%Oy6Rm2 z6VG+0&~X9Z!vs**XnXPlbuHRa5f2Y9#Sw3~Sf}a}wA#)(UtM>~Y`!A!%7^QDrdQFm zjA6l=!CsZM9Wt`?rsCI}pidtM)G}8SxAv#)Hmp>}ELNFRtINTLC}N9@+;`_IzB5zH z+g17TQxKfX(duMzMH&UOPRs+^;ohVw`VTNZ+)`3*^CcUS0qaSVcgxz-W7Gsa9e8Dv zV+BeF_Vz8MCrjhZ-{T!p^i>;;P}f>Kl}ig9_KNX)$#eD4FOLKJ8|)sfUIZ)Q;kxu` zsJMTdw$oN&cX&U4GLXXBQ@Z!{@~1f?0dwi3(%zh{>d>hmfj@+u{rR}6xgVUjH>~-5 zf_y^(dJ&tQZjBw)*K>;RawnZ9Z0(DB{jv1)putjX=rV47mk=}(*M;sVtglh=2$z`a zCQ2-2f9)>7=dE@Xp#Lw`7yT?!0cR`h|Hd(L_M(R@I9PP%4LF6c{Q!ar>|zXLIk*^F zGpIT?Og4;#h7r4$%H7-IG|wc+&{arLyW+^h@WtUpzW zax6(6u&SF>MbhNgVgsG=4>!V(x{uiKaBaFAFbU3`f#a@D&mPJY+`A(*gtBG zZx5Q|M@B|Ym3ccYUdyA}V`7#9DeG09eOJK` zzGtgfv3sX2w~UK>wE1YUFGOW~_1mmXT*mE(-o^W!XzxziPdzhMPjH+ojqO}6z69Vs zBsOnC8tt-nSoE2Sw}Ab)>to!*#ld}lC!Xe(nKY-K6N6ARHGK1Rz^F4}QN!FW0lH^a zasbsRKK=-a>wlCG^A-JvtZsPlM}B2x?{O4OD-OHBfBH+{H)Db@SP2d)FTFntcxpZU zbElCjGz>wol&@cb?i@^`2SWey5>3)gI=o(abir83`{KHuw|!WfyF^#aI~&4_p^e<5 z3#+JFZ)0MS;EIPbJ3tNQGy>9rA72Jfp#?)0&5YQk-8GX{w*AR32XVTCt}N_6JGr{i zU4Yc?7@gZTO0VK)GvJNhmV5(5uDO=!nqnk&ilUhL@~fZ z#GCNBb%5pkT|$Y6EjNpOXTEtq0YL$b0$O`#tZ!gM?~gt^2P0HFtl8MGZk9wjB5sk# z$qM9l4(b&FbuB6f<@$ZI{a!bWg+B=7P!V5*WK0l-SMW~cQr}f>{M8G11)wLy^F z^wP1{0?$U9W~*vzA+4P5SH-$=Vj~AD%#YXVUTYcar@%#Txxt zM9*8X%#nIq@|0*Tb7wk|+2Hq->YpAs<&jzShcm>i}w)-a{7wdFlf z$UJ#)u({?9@D{9iR7zy?qrGL*S-u$93-#r_S@|~UqP=6C%t+)t};|hU6K$)}!)K}w+ z&$@W|nXI1|uH;%{Nj-N}$$84mmr*D%sudJ4t@D+2%irpfaqEaDvsks8@`0u;UwL%7 z9LPesjKc@+lDNovQTVLo8xT}=50N;MU_>NIN~<^$}bK}pPM?9 zHZw(=5 z%jpXCz;!>$eJ$Ft4H{1^s9?w!h0$|6_8ruz9|sKOj&k1j;{sMAfPm%$s|1oOkijb| zYN2*=H4)Z}^=rLBE63Tl*u0SWG@CMiES+l%6|wHn+HEKt+A;kgTmB0imrpxj2UE>G zX@Ox_xf+!0JUy$aQ{9X@tQ8x_0zA}s#*sWthhIzw=8n(Omb}@;u{;#4i=0AVz==QI z-zTcHI4A27-(16jtSRY_?W;0Lp(M<`SQU z9i$1>sQe&eVs0F~Ib^ogc1!|E8y0q&g_=R?K{*Q3uh%OBsQc z25Smb-6RD0Vag91_4qVFVk)~X|@!u}jidsT-T$+%7&py&UFqk8S8?{9E+=7kJF>wV&mU@)XZbZw9VO3=*Fg{{f%B|ZXV z+7o%VVb124a~_hA(xbGA)O53_D5!i!h;Ft zNFrhYRrnV4rDg5R)xpwbWr)qtKHy7}*5Y!lDe8KoLs946Q#tFN=7andaP;K^9^l9` zg>J}>&HId==IL>0G$k65UoPBFeNN-s2g+fvxZkqvNUD)>Kky)hICn_cT)B(^8Jkpv z+@2{($#uKmG>i@z+J0kU7PQ|;D~^8nWIY-U&WxC(b2*uFw*C_AkjAC+RVB!bS})^d zNj0}|P7e4usI!QO4PT~lSbd|oyvti0%1X5kPq+iQ^qhncRRhKVY6LEvtyfP$WezPg zRft8-NyCguw4t2+X3zJD2j~XW?-j!w3|Sftd^~`jI{8kTX`0I1%*&G3Zx7X}UNQus$_s%KS`#>=V=v$W^fsFr+IJy}XTVSxH`ka3c<>YQ zJEX}f=}J!|w7&vTQmUD8#q7)PhHALyR>xOzEo> zU*RO94iNrB54@03Up+wmd}-xL8rv(aU>->Ui~aNLG8d@9CH+|`EC@<s~O(R;9}AMgYWE?!ff) zM<+CC$(1UY9KrjMZPgINX--v5SJh=(0pu&aHfPq*9Tv_A7%=X*8Av=dL!M?Gf<6>E zy7QW{Enic4dy2XJrfp^m>dvUdTTTFW7W3rFBy2Q@CTfOrYwSZ13IBVvpagBc6R(ffohvU!U3JW#o`6y{#SFJ;DvRu^*KsOc-UeInr_^Tm zZsbkMj~q!G9KGym&hy8yBKCRTT1WXH6iEExe6%M+4ZkIzb)(@w#iLPSh?7zDHbVii z5$b=Kepqarck$LRLw9xi^(kBrJa$n5ItSwrVdewyJJyMX=OD2Q`Ut%!OgPvJh<=3R zfbYC$GkaKPIn$`)ab>K87is$)+qt##!(+sSvA(!BUqd7$(s&yC?Rb&;3%>VGQ36j( z0ud&Qra!4_gKF$ck&a&Zjn5%2V#Z#&+QLZgvrpU#QVGwVl-hPByV6?$;-<5YIEZ0P zg)f=nR!Gh86d4RME{(o!+f^qx0`d-MSNt?Lc=WNZYG$yN6i;;g&q32L$3Yh-%o!Bl z$afcX%vdCh*H|QD*C4?IHhudM!Yrqo8m)kcw8HC@IcDcpXyJG1&sX9BNfR(ORs)|t zbsp+k@NRn?gUT#WY7&}7hwKpM?GD0+J`hG&*2O(lk`kp5AiQ_p9CwfM7@B4(BsICM z){--va8=wVqK_*b=A|A=W|yMC7ub4`Eg&el*@ECOxP4o+?-4V7yx2~!GdR~=wJxkt z;hM@h^oRL$hC+neueCDOKmUnij8etPrnS;tW2ee0*vGGmr2)X{KVHai<*7@a!#_nI zC>3fluXqj{(tgw77LE3b!#r04Fq%Mrm^$SHF!xcxmARe+HHWIU|(#1u9|_CxF|KCnkMl`Eti%!dfx2& zxOe{2v^D%-Mk1dq=)dZroEcdC5QL%Y8U^kFambnQ5UKV&J-4Um@y)xcN+{F1_3~fv zDbduE9DmJmNHU<-k>xUQvJ$W8vfj~G>8ccS@CbLO_ipLy9BdnX+nqxd4F(in`mB5u6lpScB(V^h=O>q za4eLUR~%_?ai2`?5uJ3bTQ$LECkzloR3{MjH75dV*Y{fY=#6*L^Y^wFzce`CZwc9k z9}xeCxr0Hir}CnMGnRf7|5@Ok%7G3~!pDzR5#%(zmEjCe!vJI^(0z28JBcgXY`zv^ zYmxfN_Ct%-YCuRZr~dL9`o5V(>y>{$d_(b(h%U4~|8i=`8vD4b;Ct=O2B>FNW!|~# z?3M-uHLcyA{1a3h^u#w9Df^|j5~yT+EO|;TAY5ERCF>qZ!Ugr(#d?n4;pd3xI>$%R z7s5PuuP~3+kJ!Fh*Kn&92yrHHTUGN-72Qj4zWWulAXf%;STcQcZ&RD@qMu~t{^FxO zA83p(@j;ne3CS@VcHRFKTowDoGq7RRcJ^m<_t@IBqvq=O((j>;rw3OayK#Mr&FTtC zT-Pd>%NyaE`4uMN@V@rg8q5{V8Qera)C4?2NVp=(U9W9gx!k>35kBd(9ynG zwQPH8ZYhO%1itZ?*YOwY0gDy~A0Hx$9w>=QAP8~V6Ucj+Xx&c#Fii%!%oI_>CRpRa ztP%}OC2NWA9eBGpN{v$Z8~YyFrrR9al5=K9&N*6G#c{Zo^rzoRehM&SW7niaYyaGE zRdNXj&x;Yl@+>z8k|Wg8SkpDna#)(S{D&iFW%2gc?fIqWi8M&I*chXiOQA|rRQ_GUDWqCb#jnBi2_1qTaiNNqiJ2+HL2Lv zwYv{{Q64Q#RL^O+Yp1dXz8@X7?Vt0}aYT7q;>-x)K zc^&Q>PlzeN0r8cm69m#)h&5HN({8D?D=iM`<_Zy~pQ_v+C@lY3MW1~PC7*7NoV|x) z1TSnmWNxq8w}F=#%0MjcnV0b?^^}!ydoym+(0&F+JVRhjioobBHrf@l+Osv1am>5w zklN|nAjlf`Dg0yurpX3WmUwZq#?d|OP2i{l2N!A!9j`gMC^>f#G~|0wFpCznai~o! zep1i#Jl1A!NB_^94WB3su8l7od@Lq~gsAK{#!KO2iNve-Dijo1MvGrQUfuV1amjEj zg%Awq$$%vlOH?671JYBF2L>jc;wlQb2uG_}@w?nk+`Fl$kFelrF;a60efI!n>k#2W z2wH=E21U=R*-<2%jvb{TPcvW`PB#}Mi5ETVUadc=vsjve^}|q5P;kV>epfK+?j*TL zHcZc4Su~clh@#aGZ(;>Xgj4uhobEHI5&$YY@L}N5*0B}WS?qvXDOJG=Dj9Xiqd4kg z8uYO8?iKDn-_lfpR8Sl>a8Eq`-2`|RpB3A5Q^BO}$KE1iSr~fQ+97#=1+0J?*vlEp z)9$2E!bf|Ti&ii4Z8%PIKBSzGz0$-Y&)t$fgWTwgJPbogNUbJ?SH%xG%q#pu&?x1?<1G3Dllcc1tc3$6tS zj@nZ9^lXI?)a=qeohnxdX(VwwRO`-02*DPweLbd;?ECrEX!2%iZF}ECcFblw7*KTv zo}cRC6-|DsAymajQ!jXzjv&#l1@%Mr2B||3<(n)EIut?T#>vKr_djI0)o-vu_xuY=aXTGlN&xe!E{=IPgxpj>O@KrnjtyLfGcwsm8 zu8;g7O&PNmH9%!M9EWzAo9xqE#dM8#NEyF%A%FLN zE`A74E6^wm!#=SL6!f^OoAM=bS?9;n>nI-YX9!)0>oyu$_1E&7o01pk)zuc?zVoei zuCH(nzZyVi#!@MZ-X6uWjGKrk@(?n5`I?tC=TuoLm_Ik-F$Ln$#?%lO8sfXkO<&9$ zlY|IYONpu_se0w2?$^InF7vpH)dlOlwFUse5-;pNz51+z!f5S>24QH5U^*Pw?t-M~ z?Kj>_O9J#dnNfJ@1QM^|i>3e8g6%IBwIm7&zl&f*+AG@8QB_*W5QG@7pTWuxfZ3Sn zbru$b+7HUjxBImQ)&2?0&F%*89<#o$CE>CioHQdGF<1>8B@?>?v=jZN08(e0&R3|0 zx5I5#@dQPa(|h8xamr0Bu^ro_6h2@2ox?^>a;a$X1xT~m33G+EJK;&KJfXFtD6R^N zSSzbT6NM5}vT~?AVRGr5PXSma`-a3n@CtuIeDy;h?QP*Xe|*X8eT;Mhlg03MV~tI` zV~G|WcC{j2#!>1yF^kkU2Fh&1q?fKy?D95$)C1hVc1;vM)LLbHJUrPQv@xt z8bQPUR$5QX`GO7P%+SY0a}ezOe3;k7^H1}}Q`QC&)BIgbePrS zVi5d{wqkErQ#e-rUbuw}$3=f@N3;>Ueo9k@>DtfFS)<&j;cQ0S9Ijd+&k>X8;wL&6 zBjO&wAbS7M#VJXUEVi!>F$U%H$#r{ChCOoTk(Y)2ULN~8mbNt8I~Mh?pH3H z$0~Gc-Nu^1CNp)hlaaic{?c|2Tj`VUeps`vQ%VWBQ|p7m*8%~L#b%Z6*9~OBaPw?- zA5-KZY|&EBQ0o6sza&|(HH}lWF+FTg^@hFMvXS$kSEPG69g9%lj<)?{3QK?#+E!KR|;8I;Xbi2bU2(cs@>Q3XJjKi5p58^ zL>|}jhe%7r&A+0NU@737m9ijX?bV#2+OC09`MN4Jk&-ekFq9k^75sOVlIV2y@KYW+ zfq`bUHWFk>`F^Mz%Fk?MH-k_v<9;}AWt8yzA-%RlE?tGd;Tus0B~(;YTjdI-LPfdur(}pX zc?IRS;I<0n+;={ZHxg}Rwmnu3r_={xj{)1@`@)jCVf}f<+t(?;XVNHVP@EmjLV}WB?hjq8%Hx*MV6pYGge)5TL^>2R)U<@BPFnWB{2j>zSbUf)&kz* zO=8H1KEbv6EX(!M^<*XyJGN)>^}grTytZuR>w>$FMA}Sz7S-j9&;Mv-@FXzG<`6=wl@A2iMYJYR&KhsprsRG(= zK8}td5fLf{0aP19-@A;Cd{uBc^z&xGNCC)*>h?2o=ejS2Xx+K$* zMF++vaPjoL_J(y?S?4!SLxaVRv{pmxKFph`9$DDxK8R?n_Y6I%4#>bKyN>|H<1l*# z;Mk!E85rgd7O0UyQOs?ZlB%T|`{SL9nvdRi*D@wstgvE4=IU$n(`6ke+muP-g}0AC z*AjW#C(+ygLWpRrhM+`C3^a0r@(|n0#A84V{7|3L> zKM!<)>DVaqxPL%8@g>EsRun(@+i-0h;76JsdKbXMcFy@r=Kz$K;YiQ|pi1MzC;<`O zzphp613?n=yU^qB;+B!=Jk;C#cZz(MH;;KuCN17BlE&vU)w0A>3W?t~vRVCvNeMJv z0-zx(&t_y{KGGh3xdmvT`=VA{s^`(wCid6TJ-fX0MB3&+0f-T!x?H;3S$M>%x9LNW zhJmn~E}X!cm1aJNyzs9{0ZCSLyVkoslRO#Hjc(Vn={))Ns3kyRhcrQVs}|N+WtOOg zhc5j88ScnZ3U~|1CLazGGXn;R=%?ZLplWOND`~8yY_3t+gIG4=`42deKWKr2E9gQ;vQvKVedfN4Bwj+ z79q+GAsLzC6-vt<;MBZ31}E?)WcDlZE9OYUs5wV`C~VKi-oF>g4YVpCzhqS*m@yc<7d| z`C-W$u**8_0DSKdD>l<={gF{mF?{1b~QqZLr_nv%N`w$U^yhef02*mK7Bcofp6Oq2+f4xNY>8EA^D#U<$-}1%q}8iT z^0FrpHW;Bf4#WR=0s$##2oa1^X2Re-67>odOD3v4 zs^cel3bRuBP~hKroWKHW)8afLrGK6eJ^Y8hxe7h|O}L?^VNZAz;iW_K z{{#F@*WN)pT&Wp3^9`WjV}-_PZ++-py2+tV&=ZJ1^~L_}SKcX7kSBbqnapHyehAT3 z%QrGi{suYbGwzh+~p2}t)~zTtEx+CQL6@}0hq6tBE|4g}?R=6(6f|4$ioftDcr z%xNUJD+~N2iv*v{kRzy8a=XVWp7z)@R#2YvtYPxEXNe4f<-^WTK zwFK3J$nZ(%*Z#Lyp~kV5EuD{*_@f7m5G)GPKfn4S5C#GCXlL0K06k!!9JBxOf;@$i zI|;@w2k}wCgfqMNtbFCC6M;K^__~7c>2GrmCG-jm=6uIh8VyZ~D zX8jmj^G9}Tc=UhMVBts&ruMNX(UV~Qc6kiRTXb;eCL{?YyL3{b2K>QPAa7Vazj-(#G|j0UYmS(M8($$R7Msx& zOusDJ-_|!aPEdor=Fd{y_zUM~s1;yJ8*Sq8ihKPJQT*$zKrOIY0=4NBjw3h%B4E8l zxd@0q^iuaSL%|@k{*CF~?heN=->yQ9CqM;TQzQx(MA!b8P5*6GgKFUvmOO!UD7PP{ZgxplN$#O3(%omIPcX3cH zp+gOfzs8_}p#ZVZNR+d;DGc?$G>-+1gy}bZ%}x{0wy*Ef<}0%iLGTV5@Q~q%at&+t z{cmd-fc$B|CV=u6PA8Z@^+Tk>OHaTWwO2_1m>WALoQRa)eyEKT6d4}>3StZ4Q*5-+QA9ezgTvsBgMaH2 z_-Bp+#v3LRrAw!!c$;#fJ%`Q{*vYlY+hURbC7NWYXog&d6tenrT30YoBNBMFdhk&Y zA;bsh7}44uuHy=yK2zWmYsrl9`A0mUphWq18`5THo@bG+XlfKXW_iY&lbyWbE zrqy=I^NATRqce{uovSRzdA{HRMY0CG0=d1}wDt|D)?G1FGtp zw&`x^PC>dGK^j!LI|L*orMtVkrMtTkq)X`z0YSR!5Z^veypM5z{&9Js85UoSECFFWtU0EGds6FEksZhW6&)Qv-(_4_gT@7sKd!GSt) zCxm^^33Q?cdAIQCfW8FD$w(p{sey=Z1}lh|>VL1jVTMG2I(e2I^ZL6=z0Z8J&K<2} zD9oRB<9}O7&Ic?MwN&uj|9R8|#3@IrZp;1wZ01cStOesMpqB%FpxZPgxpxznm4z~RW@1XgYLbwrj-+?5R znCUnbb0bG&qQ*ezpdy#3HaPBZ7JjhumUxAY6GKn_NgC4~bkK3_2a7B%73OoHCyE%O zpd@|Pb&Sd}dNgkB6hGG3zT-MLzTD!lGk!cij^?oHj`qJ5i4jS`2#E|$aw~Zer$wt7 z7mwAGKX>r_mk<2M`cxxs9ZkgRF0|A-s7GOwG9x)TyWAsyQ(*yUjPn2XiT`hHz(#-< z21DqR;ltu2d54-Ue|O&B!YGd7`$5y)WaLUHf*pg6ijbdHG)H7N0@nR+wS@5lhMi+i zc2m-^_nvY7_gm~>XV_PPs@m?{dZFIYx!5uM0nr%Pw}8|2nt#O+znov-2)YjW@@ zDoqPJ2PME*@*I49s`{uNyiL6hwju2_eQtj$RA2}OV&qI*5?WkUHgyuzEL94P$IG+= z&O6etJ{vCaGgAL%1pY1E{vtX$5z}Sql$ZN62>}5bdGi|%GmD3{#_CaG1nSb=>cAv# zWFszr)AIk`gLMSoh`WXY%}qCEK_sN`cT-6#0Nqb7`2*u$$!FlZY!Ig9%V<(j_e+bR zzcJ6ueOP{>-E?gC!VD78Y7tD^WNU-5JCX>>Ziay0G&T4Db|1rF=zfxz z;!Ji*4eEwPL~aKN;XcWqG$Q}{s1J+?c$YsOeVvExKU3AFai8!?w#WSk8|ovBFkO;K zeW+#9%-Qh%r{sb+`9whmEcJRQU`n!fZGp(|{{ou-KJa4hPIuN&)6(!JC{eHb_%r;y z-HGDea*Q!;!t%H*OBym#@9JV@0X-#6qM3#F*9(2t5Z{?jC-z6~@z;-hghu0S{`&wZ z48a^sVgQ{^w7Ea5=nhGlp2v!VUr6{i3;C}XiWFdmL`NqcWv27hXE!)xm+K{OEA;>2 zC;m&|imjlS(hFX@b)=yMr#8LM+}gq8Pp}JwSqAGO5`v_^fzBA8K#}w3=D?{=(o|B= zphm{6iU)3L)I}iwy$FEL0_ylEPBtiWgoa0Qqc<^GR+X<*_v-9GA-VvU$$V(}mnHwf z6o!ddy{W(0UF`9NRYv1oUq||ThCYb%1>`Ap29aP@WGnB|Yzw{|z#Byf`fnkC{|yI2 z0gB+#@^xMR<*4zGZJc2boVPyz^tGRe>@ET-NWjXHronpY+@(6&A(Ry0ud$+tS5+_tsH`T$F=L_&d!lZh5->8 z2Yd)+eiWFW4+)^=4vMQI{^8t3VZ2|ZeoL4?$L?yin8rlJbIcB&=>K-(zt6yGH!GF` zg3s1g{fk`u3lxb$8u^FO07}hx(NuOUA&-M2scMma!Tl;8{V&mgKn#HK`@CO9|r8ci=?gknnRDk0Uk6<@i8jSMmbEWH%(dI%Op(+uoE8@U#D`WuEXcki6v0MHhTeB<9=sXzcMbumh5>BK5V)c3J4iG|?=GoGuO(unQ$tBss}GjyTco3ae-@{lK862>*T?AV7$?7Tb~iB__Vz;51`( zJJrT}Y$Wj>I<-@WZsf_m)4sUkM*=uI5ij4nB2y(C20Mt~4N@tRFC7hGhF~Qg7^0Lh<$oppJ>QQn}P$Cj>(fm?%uNXESN4sIM&v-<9?=kuYCEL2*X-@s^qu^g7hXGV529!UB zsV=ZNqj2S=&OFas#esr5g@oPVV-K>_KJtH1ynLKtPTpkZe}TFYr}xY7|K?G66#^vJ zqg|SRZ;AA;*HeREkJXEzmI=JRJgCgV8JC6Ka+WU6LKaWqlM?DyDP9^)L9B8aH~w!6 z1%Y@Y4KXo2Bb3?M2D?m!0<;~L%ha;}VNN?l#_>a1ZB}mSh~_!MN|@`y$nmFKgFRB{rKM*125HgL=i>|GHpUl2qVZsifW>>bp%+s-38U7=1YFp z?S^ZU*^I73{^#bGd&AA&ptqCFIkq~`yXwKi*;i8D{tSnjzY|BJly*R=A+%xl+q;3+ zf3g5{$|sA6I^l^pQAqE}ciM@PpVX9M(IUg7q4@S-pZ|U;q`QS-loH7CVqs$@Eswok zTDB<_D0C-=ddgV5iQrU^g~27}C0C!Rutb90>+hEhzi~-z@a}quV*Gb_^s8nlW(6dW zKB9V<3lO(NqO%i$jr=c^G9e6}cA=VbZ+I}gj0Z`775@Nc$b1Ts3+DX0VTR)8Aaq5> zbzUtXHE?Fzr}(MgHfhA{&(3@I09$J&pxe#R z5Lf=&ecW145ZXe!N!tKqh!WrGVxu|5w{PEo3K;xD6BEuQ*~OHw*bFn=jjGCfanB=( zWUsP1;^G}RWkoXRk7E<4ccx2ecFMe2L*Q1ITa>+4n&i3X>-X)+|H1Q30OP0IJ!%Ec zxeA|T(Y@bi3z~Az$ni7oWhN5yV$%d8O+)>$W1o}|sQYnVM}9H-9B?cIGR7Yo$tTtm zh2#YtA3LPi+sq9M`uq8b-aZbPgX=D(n`lVO$i;zYx+sFr z&LSuYgzjI-lxNZH&wfZ?9&q}4>3wI?>TzUn1a;oV*#GJ0DYU@E_>prLilc2y z4fzTpIleXzPF7eCvSdl*kQbJD)NB>?O1W#xFDMx9!^@&+uq+s4sOn&;`*B|(kBkY` zAK|89QAjaU3e8H2?H{iw_p*fVOZ$yOBj_@8c$ho0h zs}87e@5HZ@uwqF)ggll$G(qpzT_)f(2w$P~^8(trLYE&Z#}7=sPCyUnPMzd z+;*0i*vw7I3C1wivuE$_Q>5PY7BaCLo{h9x?SATgtkFjro?mt2%8wmXNf=l;t;lLVk}(tktV=dPTaG-FE9bkRUs6=JMVlEA2wHA7wmaW_w{E=<7Cyu z2c=v%+ZI`LR)=w@R34ieY;4>#6s-oU=l%(w44kh>Q%~mv>y}$>ha}AQX9SK3@~NHy zorje;G*LEu8km!R{g!_Z(+|)szU$GinlFLBZHa2=zv_?b^)MFpO3b`Fe%z(E?H82z z%~e5Qf@+8hqXvwi)U{|rRq2P%I7sbxckt{ES5Qk7((GW+PS*8EcA7J0EUG!aJ0-tDRRJiz#l=`9@jCgY*&Gid)d5h=_?#8m!noYdaEiwszUhCCs%IDEMxJ*k=FPlXypz-~?QGv}9 zW-IZBD%~cTexch8&52fpHmA3BZxevJ1qHn(zpo7>7J?9P`~y}~0^FkMun{gXON|~l z&T`lfMR15*vVKL$MFufhC(#cCFqi^^%W8dicrjsZU!jmptEX{|B~*1jXm;MamG*K? zc4*W7^xS!CzpIdS;cC#lI$P-IK=Ad+TC>Bn0}Dd%SiyVvixkaEX1N$y2&XlnC$M5$ zYFw#&``Y#7QNZN3tIXtkg8D~KBv?+k$3IJ`_{M;-z(KUPgH92mzA+?er3*D*TyVZ~ z=4hO$4EsI+J%;|UCICVhr?Te@ljyfDk|m3nq@S2Q=1+@VoTCIE;d)^xBUhP|2g9gU zt8;dCR$v^=J=v+tK*D9PHDB~@f0pr_vgPteS;1WBz|aq-rR@mZBv4iNQS8wan%y3KL_BfOicp$w$G$ijT*OigN@)N9GIFcCUY)oxm4J zDmnfXHmG-H{D<&801fajM9mm`3TS~H8Ie|v^#YvOxSM$_CM+P;@<;rGK@5cfI9f6K z8gK2`z=d(X5=PtZ0{rd`R$0~JXcQZ*K)CdxUsF{WlQ1c`qxf0t zNU#xl>l{>6x<*{u-`v_E>5HKVCtLTw5`7+okx2D3q2kN0<+_M>=Gs5f@664~$P}g!(5Ii9iP_n7nyQJhAQavZ@sbCT2+7v-tk>Cj!ucvGXS8xsSEGqNnU<5!3D-_IuiLI)}Tv3U$!q{&G|1D6xZ z1CxOBLXh>h*ED0SpYz24IFP+z^)GSIe~c9Q7I?1qVpwM+Kuwyh;9?8M7#7O1S(kIG zUu}hGIz;va+e={7SE|FSzlFU2+8ZBW2<>Pd;A$^bUo^Uu5KkoD6?`}OBcJ~am=H7` zz*f-ZEdK`_4I3Ph!n$jaC5ZY~lXed7OFt%J{VLX&XMGEAU!CW5lVJwur&IkWj>lC~lzJpZVI}Q=R7sWc8oc}gT@LR~w zz{~7vthHb!o+D!N%oOwzb3I%-+qT9Y1}h{iEDr8+D!;f`y4L9+4)_zpH$uo&`g$zk z9Z>c%$&(L6!{gkAjfWTf=4l=is~Ev|Z{`{7lhfgFr8I}$v37+Pmki(ur*Xxb%pD2Y zpR7|43>D!S)6H!(_p%>BJyzBO;*o zkx?+WpnL={S%+o%#r?v!ghM1vdfxe|SOmhS5<`k|@Ab=7M@;QU-m3r9m6Z+KMx5z? ze1P{b@2PUM={%J+Uny;|KCf_o84FbQb+vk$j(3-x*lb16_%bl?vlTk{B`IrBLEAXV zR8HjHT+L*Ov4D&c8ebU>HtulkcGUD=vlsK%_46IIAjI- z*-Ibap~-`66#RVE_1yIvKdfz(XeBPgeV+8ZUZrPB<2iMCw8#w!fTEoc)rB0f0mt{^#7(fpvZ{6PV^Wn~ z-7Bz@GH^E=2?U_*=J%`)PDkm-9`xRCvOiQ{otW4J0%k75{i?+D2?KT`+l0ZS2}$DR z<&N;XCtv>`jUr6-mP<<3UE5kEx^0E7((gnDhlW%sChN9OHYiJywWMr0==jeSI{gD~t>EuIbEW*;$2?QPWccePki* zt4i0ksdacMCgaF2UdSl5sWIth#HTa3UmZA9Vqxvu+12bV%ckODV<)7Wm9`#V9J>eS z7Zs)L1lFSxC02j0mYwqhDaH3kQq%A4dj16Z)xsptE(GRGUkV05x1c(@2Ow@w?I0I1MVME0MdhETMG2X7N|*8%rO zh~L_=Pxjtn5^-gFHoZzQYHQM;7~qh1$!F6{d8PkkCj}6Ot#S^zBo282MO)?|p@(~- z+V`jI#);V!lIyoGqEpBB-0x81@9#aDgd$XOAS%z7tXm|ruV2#mxLPf9m~x^ZL_Z#1 z5#_tjMY(}?^dIQfJg&pFC0DIP!l1?9vUSpi;Gc{l+cfiD#fon4F)*{5jfgP<)yZL! zkF)GX9VT8%NKm&(S3TZLk)3@jTEkBl-Fr3;+VDS~^6Y7eCKM>pd2rwLeVQ_-tmY6` zo#?n|EZ1q6&0*s8Vs6>B;yb;uHoXn6YG-iRVflAbVVwvtSpMoK0ZN@Ov9$zfqBLnw@!_ z-Com6-EdZoZ%1iYO|_INy85Q!+%Lbjac$7AW@u28d$nmoZi*v(H^24C39&AIK#*Ug zRGr1~j!GEBG5j-{pe>70s3S{o`dF?+x#*+mxnAO?=X`PKD?Ce=JqOj5qy!bQ=h0-= zok7q@_C6sA!#2{90UQ9WGZI{~#RQ25}3@q>UuXaib2HE`- z%-m{69UxP_LNW8bxGp@VL^FLC<>USPojXfrMWal;R^Eg_DBY+-a?hhqiR-#{QD4B$ zZPiGTv13LMg6gg2n-_GP^_o>eVaf4*C?za2%HU5smWTb*>wRP8No=#1+eFZy1fjikb zRB>;;?o^#;{!FbYNC3uIK>}_ux=1F+hs?0HB<$IG_+S_Z$__5G;4wATVvKlC&1Wet#&fvWAM)LcD!&WCH% z)>X4lj2xz`AAdxc2Z64Tw7VG$`xoBM>06UFl_J3cHI>KSsK4MguMuT#!NRCo&0d%%RsQ~ zSlUo)g#s?pGC1hcX_9Nr-o`;9o~x(>eh}Fj37Gut4XJ*&cOj9`cWX=^w0P#O*?32B zO9&dlaq_=4iXRJh$`$BMDu;89I&?}|Zl%>yXKz{Ss+z@GWg;$Pxo(qU(o@^w(h8Jb z6%Y&kT{<{r$3q>y#N(0m*H~uA82^i!+GB zFB{}O$jHbf5#vCSenWoLY!qcWW;u6J>&HkU4|tj4yg#Y9!x|kKs=BdtJs9V$_CD!| zFd{ly-B^Qga&A4U6rZZ36o-QH$g z9_z*2#}6}e`iN&vyabis8b4^gXCAoTr9|+zng8;lDurVyTqWw-ai51E{i4Wj%-CdX z5!IxyPlPZsieyn%ORMy|nzF!x-C+d)7dBdt*}q@1E^w+yyKArh(A0{1b+A&@Wjx?y z&60{rByDdWM{d-Y=18=)hGRK=5WT{tVCuNM>3-cer%Y1X(}F_FVO4TxEmyjZBD9=m zTjl3@J0^dYc&DE9s@~t7ppq}5&ai~O-V1)aobNWD6piBzoBIU-_D5LMI_y}#(t>qX z%ae38pKQ+IRMN4Fr1C>JvTWX2)RmGHa54_~@WR4MtI>+S#BqP{*n3=wG93RfUkb@* zoMb6ok+IS2Fkx=(ZvMU8`slEdiAk#JR;|&t7J=~3zFH^6ojGZ(l9yvCeDeC?CWk&R zomFCqZ69V;yQKJ9K$p&z@poPuS{HpM?z7?r)1NzNm|x1xRxD9l&e<@YH}&gZbLrm= zw^A$Mg0;TFNgx!N=Uv79&D608s(QhPuA{xz(++wpEASUIDj&YYfC}tPgWk9vIle-I z6UbBO{yV8m=?nPMv8-XfLhwkiP$TJ54F13&NP;Xzvf?)N`L1$E>@tpkk=wRkGq7vK zTeRwS&9Ou8Mq=2Gnf5G-O~60za{H-cM=`}<%Tj9a1hAcn+SaYIZXb`WBsp##CKmQ? zviE)f(0CgFIdFcwQJ&~5%$RxFvoGuYT1h6kApBZ=aLeqmsP{IS>^uaQt{YxZI*^ft z0S6+ZAzsDh_6rr7VZHyA;6jYAXTp3=P375n)znDh94?x9%1lWKa>gUMDrA3d8IqLs zfpG-@J(uT+dR+BgTRfk)-hUo!!mv3&>MgnBDAjg4{9?ySTIMv4P(Oq`19ig#a~7{r zBl1~4#wHAHOWiB!liajalpQ#c0~s z<$J0ORitWDwk`cN8SA29o84F*P)>{jAcE{xuW0z*tk;H5B*x3_S{GKbHWFl)sa2`V zot2Q9QDk|Ko7>Oe;O*)HB^tGvbehj+_hCyQGEha+in3fQ-e5+Ydua?<^=jL6YT5K~ zaT`rjpD)|K{oZMBRdnShaCh1}9mZ!`*?!>Bvfe)B=#Eh-czN)2Vek5=F@@@~NOmo{ z{4A4+n_F^ReGapdhEZVYv%l+|0ITyO<<48T71szg2F$?<9(`k^G=-9UUYioZK;h}z7G}7eoytZi(QnzWqQ_dSg4RdaVWBZZ zbltZDCzV6(4;aBX%vB%H3X<8qqkf$L_lWeTcCbmb$40_Oa|yu_1-hN48JVYeb>=I4 zYF~3X`XkAU0cL0*?0iF(TYG_xfaXj(g9>g3-@ zE11Iv?WdL%U)%)Xy_?x{WWHokLL=v8Q)PvShJ);GBlDn`dP=j@p0G{JU9DexiUa(u znH)V61Xx=iuj|$4nf#42180(gkiln%O*&=!$BT(f{y{(TijB}5SfOZ`qe@*y-?iiSTj z`=Hc-m`BC9zdqA=@jW^wY?kK+Y9^4iba=d&;|g}#7?tpH=iL}#ABB0kog+B=JfNSd z%Aif>vx{@R>R1=`-GFp@4C*e}@`mAZ!g{uK2C>8Tl%2#8T299q?%U{1D9arquC$Cy z9DrP>8Ksp7KT(i*okcn^E<25I*^5q8-o*eJC6g`Vc$1<#Qq?cyrhYfw)kWFfVz?#e z4AH9MbUyE4q}vqaJ>A$t;$Gfe5JBRZ)kR_U7;Fk09_Un|NBzP z32#*ta+6@<=J4&CH(xPLz9%++99xXEr(>Bor11-3E6TKQ*Ks@LYehTi!uUpDT5n#i zEo`@3@8$^GCG6t0_$k*VF>!Wymtm1@F)Au*R&>adk1sCWz1t0;Bf^tBzkMsWZcK&e zrlLU-n{}}V%?T6M;zf?Sq-1MUeE`Dikov7~LvQhXUjyg7FpZ#M&Q2|pLQZP?84t0tX^>VZ+i(YxSh z6a4PP8}pIaP(Pw9K4TzhjIav0R3Q0xI_pP;Nmfr`(`#f3&4xgw)GXG^P_4k|B~X0f zL#a!vkfREC7#Q`^NFFE2mp|6NV4p+~6m%)S{jP$?|3Gl@RfvC?J4_gK27h}6($BQu zt<=g)S^e?oWc9g?YqT03PpsNEIp7?ZQITU*eW=s3g+ALV3=QO2&c9Y%tn^LP&Mx$g z%btm5&19X}*e;~rfhY!0ux)+$G^Np03v&8%`TCBY$4GIdaD^zOF*LCsvg)971Y+g0 zfTIBv2P!Q{JttwdQ`lsMhxxVaIpRhC%|&{wZsaTP8OMl^IO{>li$%q(7cMPU^8&-E zh_uX%fb(71b+zmKX)bi-lFx8SpJQiagNmhRqdmZ3-eT5rl{pt8qnrwE?RcH8ALYD7 zw%Hf2dnSQ`bi= zWc@`k>}RY#ToxK@5iousSdy~XR_T21zCg5v8@^~uB7AltWcncJ7|EhUk%|dO{o9z~ z@0^a_d%2XJ_*Z-TWX-&Nhy4h18~0twgHDd#rTIu z>LqZvj5-#?qTa!eDKD3FuIp_dxRQr8%`)DprE=}qWcEYm)}G;K@b!|m$YUI>v1TAs z1~KY(D&cWiE@~9G@{ZphZMM1`oEBXQ_0Pj+Hv?4wJ-grV`MYyXN|MXUI9=)aeu7h^ ziQuGtZ#F*|%6wZ_(M2K&+HR>L0G-9d+`j^!OZ-kz-!%G;De6lr)V9295t=L^siH9U zEc26cSooJ&cy?>Ggp+(L4s+h+5@;iunzGXZJ$loYc!-E-#^Nw{2jOHeej);GxBUzs z1Mu$UzB?b}o=;47={B3Sg(o>|IwlVh6eT|Xm~Sx0IX7xkrDNT0nY*aN%?d^x;1>Uk zLDqG>k?fbimxWSN+Fh@^l!P{8dpuwVG(}O5o;aM%q!**}xe#?;_3Eg%TAlXj>}NY2 z_1USZ&3%{XOk5G6@A}~RFgjBz!SOJ<`+<{!fr$AJ9MuKPPdw(WnNvy`=XYD2+p}mJr^zj#w18 zy}OZc{JhiskpaWFoBX-UMNN@TM$G)xeZs(-q8*`!ppw>Gx<;;ju46{*?valnN3BXPX z3g2ILxcaA=@L3#SJF5yMQQZx7!ynJeIpBD${v*ZObH$vDto3bfhj1?x{Q}gOHp-(Wx0`po?iZYyUzA0-b7Wzrag9uOX}c7T zsd8KZRbd72Ac+VWniNEYuD|P{#zJ_>Hs=VT3ZTfbFMAA~ zynxJ&DYTl*iet*FE*>d?wu*6mV%(fcS|P$@kEm{*WeOG<2A5{%^ z)@)q~LO)dB+_(rW&88gQK1%7Qa@@VP$Qy-akKd9Q=%KI2=yfaJa<58+P5vC~bq>*;SsnpXigZ zI;5h66lpgMAP7c)F~TU*B3J&(xH_ z!4Oz>_x_0@lvmkR)$%VOOQ4r8ln(BQxK_H4&1JnKE+c_j_ys(*Y1vXB)>X2?r+C6V zFHdU@Io+3vETFFJyY!Z$_Lx%Ba&)&Fy(x;C`?VP@MxzQdN6}4zXu*q+Swk}fytRfA zHn(S#Xo3}@C?JcF6Ug9zIw5we_KLxtmaM9MjJV~hl$i?UB@^`w7SrnoKI6*KEKpN8 z{udK?p!u=_1W2sfF4q2iuOWvvqU8aKXpq_S$VoJtQTC3q2`aQThJE~33cl{gSskE* zH1?5uprMifE?NJo>yJV^R$gk;7aKFjQ#-{WL|1cYdwzWZc4DIoi5Qj?Goj};k>9Mr zIpK(f3S!H(;)NWC8KItAuc>@HF<*oA@Tx-okk|Y}|Rz;FtM_`40__jpeSfSUU zvL2*)ezOvwd|PJYJ-HN~2<_b!pK_d_C!|VP!{DfG({paUqpvMSHpuIvZI=zKWAf-6jrZS_j1H;e3=y} z77nq$h!10gF{BJYsnF(%Uv*xkmZ7Ia`vL{6!pS1;S3~HvM0(_%EN6T%QcrN!JG}-Q z+hTxWKyERwOHYEjC<2pRli0XYNkTjd6 zgcv0a{2cpT@ciaNSw1GcvP;KCYThcJu9~o?M2=K=IfGBgc6YP3EJAP-A=(S%T{SZ{ z&$n4oS2hskEw}yAF*DNg;`83YX|Mu>-0T1uQNG!hf!d6iKdHlzXBb}kGcq#z6fPKt zWYN#Nd8eUxfhjqt=hzF~#mD=!dhGHZ9wA9&Ot_5?@p_uj@Y%;dhnks0 z;MF6b?~j)&(qkBrvJ9d+;38ePpC~3LuS)9jx=EpXf7M9re2_|sa`)DENO2T=XFztY z;S!2m<3rm!ziCqL@C6d6BZY;u?0j5dnh%%no>KmW%tSNzs-mDP3~cp)S}%BHp$}m#zZgevNQPHJ6l;iO!gD1 zB?|_J7Ff_r-An5>*A_{W?8sItjwFu0z>HrW&Q>VuABZ}E_B&0Tt&(CzT*3K|EdZ_T z9{ngkku`hzpvPAc8S-j&8rmf*sCRzhCo1ObI^?y5U2fZj$ef;IY=*<^i@TMzg3ES%%GpJqw3qtW zl^#Tzxg_|0;4#2=WNK#4+n#ver|#c=ihM%O#mkaYF324sAGchvT1*) zsTl%#Q`@gYVnPE60~8l_Z)Di##ZP$TMqfB&-~1$oMV$~uzv$2<y`sNf$?_-?;Njg0B?}{ zlzjq$DH<=$rN*3V3*y+}nyD4xA^6!WQSdCES(a5$j&7&u*jd(nZNmZ*3(vR}9aYc; z#}Wb8m3b!e9HVU=gw(p&^;33>WB0noy znTiTmFz(4D=|&hP^ZYnHJ$84*z{Q2iA^!0D7-rNNVGmIZ<9UBsI)lhP0}?9n3X#F@ zwdL#qQ2lId%5};EjegRcB#RB)UFrQ!0lryh_xsGEY&y{M=%%zN99LC?w3IXN=nO+m z-2y7?-qeTh!Z*unj{yLqWxCFD-!Lpdxg)^o)2)y2UI94Q8zB>bLU-SFtumb!*!Y&h z9w+zBf`q_lv{eLHR^%@CCOP`rZy#^hH}i7ev_Vt0BITBQ6qufS-(ITJg;8MB+0>Kk z2SUx7@zp((!d>5z+AFE*yp`!xc|zfU8NtAzoQa^#Nj=TzuuqgdF34gMOce&&w5_^2 zozZ1NL4Ly_hjZc&}ACDl7LQe}OtW4qVgp(Efo>BY(zR#ah1p z4Iya3ld!I?dhE`AVQp^ta!!ZdEYmLTNYqt7Y3Xu}3}_=M_+=hHD1P&_Ed0DcxpLtdGl1&Kp^=9J}DHN49EJ-F5=2YxJv z0ei-EEj~HEAzS@ER|ero?Yg$LyZz1|SD%(eptixh1QFy;ps^_o#;XCM-s7TJuR(gC zmb&3c$eqK9K~`7_=khkI2_o!ziq~l>+nzIxq-12K5mD;EVsY#vJjV*#<_asIArfFP zDDNyffugtCPbXByE2KRk)|b~k1!o80Hffin2hK$R8C$mf_JNghNaWqT6yK;2Sf+T# zg`6LxT1(a>^5sR4;PW%-UW*@8*>OI4L$bkE!vEm}ix_|@G5F)LKm{{cN^?%CbsfNd zL&1HEF7irA@ygL4Vua!oP75g4EOU?qj1q2Jq12wL>i z8ZZJVXzcc*%1$#@BUvhb810;aLZF`Xv+LXfQz37@X+R>Yvx*jE$Z#{NS_G^+u)D9Z*5rFnzAp_5TP3uB#NE*IZ+-YCcYDthfw!De`>mm3lM?5>%qU zP>Axt&qYMRXIH}@U0d+@Ph!t*zhN$Q><06q0Pc)C|$%Njl(L9kGefKIB6;Uq2c$zfGjU?ylSYLL0RAuSnmj#6r9R_IRuS zR%wJp)yoYl{Tlm7u@yjEzNRuT3&}GJKB26z1XxM!I^hpjqjEbx8o8b(I$zW_c}tcp zOiDJ}$#bN1e3;NW#!m!l?o+w`{M;}B-JAcZo9#Mphzj5EA-Wzfc4%m(Aj!TlpL#APpAgZ{cI9*!5}SzV1Ha`uFC8OeoX56LPsH*A z{Fw^=19YwW80pxU5WXSR!P3wCqPh4QDzaID?H#;b;=_iS1N-3GV5wH#yK4U#f;#Uf zNLP^p=9A~k9Yv%;ehLsAEd!CH`6TtWT9h8C8R;oY1E*r?dIuo6`zdy4mn;qubZDdx6XZvv4M`nHNvLG#%fNQa08~t zPi;fxv&T8Hel?to|CW=8`zBuft*AqXC)=uwQ8+T^>_-fwPlqz{DDeP`@6xdI_6U!p zb8Uq!(tb24o82&=hMuMUK5A6EdS0i>3fRTHY`ewKI~NzWBRLTmyVq;()?8HR_$2ot z5{@@A63!=mteYqGK-?3rf*n|eLu+##{1x&0GyGf`^3s4hR|ae!f0AWX_|Flk=UWxd z!m1^zVHxQOiw!CPm^dw8sueJhx`*t}WQ4W=&Yr~pTyD6FvGk_x%=XTH>3B}Xv6^dr zEG2~6H#*GJNW#H9v1tAQAc?1(m}b;yy>vTqD%84*fI|nArb|Ve6H64y7s^hK<_LrW zEDyPL`u)3-Zii6-#TTq|HHuoJ41q;KhR^Y#a1$@Bx=q@_-y~l46s2B&anW_jXFfe& zqYKQo2)W*$Ju*voT?AMJI^Q*COU!BhJ0z?`?D4pNx zdH8mN?+vhKQ2nF>?(s~%m+Wo{0EJ5j1lh#sNd@MXQvpqJl{m1u#6lXj*M8BOBJ8H74{-fZl+u*bFU z*y&;!sPGKwlg(rM57siP_B2&AS{9T|Uxk{i@(<~_Zfd+|_-%D&*@Pd0x|tYEe2Od| zfrt+;guq}h^?rU+eu+P;;=v~mkEPyFYnR=&UToNJ7+{hB;pAkCv4H125LZ-WZoBpU zKo4N)NaR?saK0w78gFe%a@UfyHrPT4qS!j7>diW_kh~9}xPA>l9UW@`Ly*#YJS8u= z!W%>HX|arDR$_dO&$2@jb-zqA>%kE-mykU1bCwXOTy@kWzfEKjx%Zv|`~81NY3UbS z4+u`8VLohmq)E;5lWQuxpD++}7@>(+{l+pnMD#o#pdIk`T}4B<-_LJ0{v;VCnTE=^ zXHacTJ~+rjW3m!Hzlh%gZd%Q#HklnxUmJ87ox{Jdiz$SW1Zwn?;|5au+IqjdMpr?C z9mYahcimnX%A*Fzqe68;v}JS6-ngfn&o{`iS+i(g{wD(@lo>U#6k*2VO!;aDZh%e^ zNDAEF?|&qr=yq*e;qOQ4lE6?96*-wKJ01ouY<*Pqj-*jt*v^Ys(KT5Z^j*jx&b zz)4BY(Fs}|eev0nOv*^20-3xBH`9CwZ**AGUZ7mBGPm_=j_Jw`_teswC*nJIHTcmr zK7Kze$6ctqAL-st(=<}UhODBy0PylF24xUQH^o?%9ZL8(q_Qy?&QrT{jynJnkr8LL2kN8M^6Xv=W7} zv60aQX-et^kbaTv4AWR2VqLm^eAy%ec8IxnSAe@HbO;};QyhsE)n-Sn@-syC5PM^s zpg6M1f1n!Yz3jhCO0S$O1K68XHl638H8RMG=NNI~rmNW>kWB`2%eMbD?tzpgL0c!wInA~!a>K$DJKX%3doNkNzK4SowdKaTtVeSxxBSLGbUe{H z#7+9G9*swec*orspR{w1<>(48@Hhlv$w!k<+-yujuD z^;y+QB!LV2O1&g^v_#e{lv8^%Nw{x05~y<3L^h6=8`NjZ*Ge;dq)2KY4@Dr*;ewGw zGpMxuXRZ!M5`#$zHfLXiwx(=9?tTT0#oW8E>nKH$o9(<<>=X$s?!2FL7!#WxTfN%i z3QU5|XW#)1d z!uO?S1QbPWGu@~;Z7dzT#4_^oTs$4;k2|vO*`{;`piCK1ffC0V6uL^eJtf{}4R6$0 zo>xTig`mj^Z^MA8f};=Wm0Gm&a$Z9w#g38+fA^T z(B)BT0Zm={fu%f?@&^6qC*R_UP4|fy@0LBoKk_yD>oJX->dtaKWfN7#Ov&-BzSokv z?LOe&w{k>)jxt}96ex|=Crv7wEQ=sMPw*dv+D>G`-p$WNyiitzMFDNq9dCh3x(Led zp1m-t?ASBH+3Wl`+te%BU_@(cTe;aD_4OhI!zcNQbu?(;(uQXVtL_-nx7*g%9g9;# zY_-=s@;G$mjeFV2r|Oex6cWDAedZ8Sl561P)<=yoAWp8o9?e%QRDJ|*Y$xa!j#ZNu zj+%(Oe=e61$Me}}g9u82G=E?=APPWqeqk73$INRct~jXp!n52o($?2LgqNJs4|>fa zQzhkx`*G*OJ?Ue|`x1>QG7aS>fTOP~8J+$eOBZ@=EEu$Aaz%CszOgpCt?(SfdSWNB zH%`>IZhV(!PTwKask0Z+#w;Yje@960nh&|Y{BmR6>s@z;l9%#~AOxfM^;-BG~N5qpZRraCgs-|qj>^%X#IW=+>)s~Mbi&f|~lf5iSXc5%QmMOi|?&GWtGLEXz0mdVE6s4uMtNA*FmaQu{s=fUt!+TEzFjg5 ziaj6W|KTZl$Sk_^GaSEXP#=)X-Vmf@+z6HH*orz1mEP^v%LKA#s z$|~_LAC2acOuOwOg4r_tM$$jbq zGmJxp0M#0wpPrKi+B!J(M7`I26@R%EB!MpVHPG=0U*1Az{dK0N)RS&?UrR*uBGBt` zJl5q*+eZ%sez{(|5K}Cu<7r%2M{$NdX6JPv@m{&UavDlWaQQ;b#px+jyIkp(be#$v zx)4$1EdWYSd#sh;8#LDhLm336dcF@wA$*+^ksrR9E$XrNrJ_=QYgSgO@2w5GfKX6i zYC_0kQH7J(@yU02f#T3b`=xxd8}EY%V^R1jZ3N!EsS4Vtgs;G$7h+r`e)}Z~>8_9{ zZEG}GIG7HV_u)_@BRchF?OQPx6t#>>TxGk0q+h<|i=6hZMLEI70EA4-ZZzfBA36g8 z1fP^mkUXNx-p~IlmDd>;BQD8qZ75LuUy#l*QyPoWpF# z?{3O{)-z%@D^t&-bO{BH)pw~#-D~h2B|&OR+y+e`_K%A{7bBmdaoMG=7ieUqq?7|1 z*7kTmXa%rju$zOQP)#_7VgcIeZUPQEbJr*1NWcyHm9TFJ57^#Api(Eg8wYV!k6SL^ z?yL_H2}zAIN3@0R=sdm;ZF1P{g4p6dG9(IKA5B2TA;+!iq1z6Yd}FmEe1NOZ zXF^#VME-rOT{zMBIq`+kxRG@p+i&ChUJy{xH6v=P0iikI}+=cUCVIh*< zA?N%QV*6xaGy|_;L9+GdskK>c#(wVas%6fh^EsVXeY}sbabNCwe9l1{Mb9IJs_m!d zv!mY<^)Y`(cti7iS}0hD{uX1af+`#CX@v6ViB{A-2u$Jk6g3D&(r>C12Kjs3tTsAbS^ z?moP-UomL2sL6ygqv*w3j{;Um^6sKz&hTyFlCS%1Na_hX=?C)-T$f?TFZh=yyTEBA z7XjCK7SokoLF|*M(HtdDMSk$wt`ZdosWXcbc?_+kocFDscpm;hvoV*{zV4Tq_DYDK zx3|`6v7dj zBu`_`0tAVE&rV5gmq+G(CGsc}h1ZM#h+&e%4HBX}0ovCkZy5L!19QR42Oyxt6^O>4 z(O+$@xJ<*~+-OgCk?5o`kIL0c zi-61JwIqMMYHo`yb^t5k3O+*LO($%QdiL`X0P8~BvnkS!zY_ShAWIv#osL4lX%&}B z#uF5FoPj3bM*qRd%{os^RGPk*6kh0C!7G#r*^1R@RqIjYC?9l9xVXG7!p9r8@0Q#} z^Dp8y+AHyrY8*Y^ekw_*UxjEjs5Dh?~^V@ zHbnG!Cr&>>=%j~&k3&N$ujdDUXq1uIm9~%ZvQ7zCHpY}&`^DMTxaHJWR55>?J5TZp#M5uj<>9+1ilx$oHaK0sEIY3kex`d_6%Hhs|m*yO%&gu zM>Mkim!%$soBVX_!dBO;n+idica`1`yKYRyX6gI*`v6-Q=)%6J0t=w~eueBq7^eC? zxwMp1d@l;+ux+|x<)@#$Bl15vXcROn9Y7G2st$Mr5IIjAL|A0U2V@th><4dRE{$k{e<@zZ04tQ^f% z=K!eza%V*2qH|)M^|;u|B-sgmwlXUo5UN`lfUX6D7)zHOL1ra#pfT~-YZC8=`e<8& zg!?muwdFawP3RoZ2NVoMY(~uja*l_*Z&nLsX*x*+W>Yv9m1*HLrtqAK2xA1D4;-Q| zpjV^PTSXvx?Jyb>2L8Q}rd$;S2xvDkrfMHQ0ooGQ2}8%s>^pMSTEj2SyHi6+uN{M3HPyVU{J1br|76|2(0=k_k~S0&L6Y>gj~nZxNQ5|W{DiBYStJu zFCCz>g1O>r=f(FmKOt0BRQyVTEy1)-}J+uDs>jUcJVo?K&x2+pjfd?yqL; zkFxn2y-+9*aDoJ2k-D?7&=;6wgyKes^o_n)gKa9UjdpX0zC<{9lYVA6$)?qtOY~XI z<`=12aFn%W+UM03H3HMkJ-H`dTx~>dsDV^|Z+pQd(1^OYyZuIa;eRFS{(=ZWzt5Wm z$HrP4fJ{94wbg(B@87-xF!8`m-3LhSaNh}5c$$4 z7$7!N0HS3yT3b1S*<@fiaMQ&nBS;)dL;cvfB5=Cz-Y3VsLH^5TLglp~I251sahM)o z6OVs;zM+4C5!t=va}NUK0K{Iz|7&vAr45`ccbV`@WZ++1${RdP7?Dl!Jlz(^4S~!? z`{1F$4o=Ds+-^B~mW;c;)&#;#@}(>&;KcXtOoGnO&%1nE2&bojgV$QaJU}CQ+xf^c zto7|Lh9f5gU_}ps>ji|wQZfL33y$LbKb9Z?SOUoJL>O?ugbnf#7DsvVH+o`b9J29D z8PcLH1QG&U694uBFgZU%G97&|t#MoN&849fw3?RvOuRHNBjQ~q`uwEVCe2|px2D*a zctUnE(0eU8j4emRqobq403cJvvd>l(qTCw)tg@P z8#e+xF~_)qG*c7gNfhIXStN=__@+Lrd(Q-nJydfB!Unl55b0p`bLO5GP1(wO#-Rt|cNQ&)2};SbtyqIaR6u zpr@g%y~b5ENegI;1ogna_!Kvh8VWNb!0d~gjM*Mi@*nP?T&!k$r(SIbRE_b5r?VAi zEvl7J_oelIsi)938`HO~a034gU0B3`pE+-CeS#@$6Pr+0$x}OjwYBEth&K3nGwsDm z_22RBzb}NC5uB})X=w)~DAvlgTIF01hLm&x=Z}@p8KD z3@rv*<$qnR`sbqlxxl19VF2f%jV5EF=P@3;ajn6z?PpDBe(W_@KENr(<{NoiXSX|s zM~?$hp5ER#bB^W^SU{V5f@08QDk}8IZKs83nD#0$ zo_ag-K`8_?g&Di~{BPgq{y(P)7Y3iBh(hk2$`8?Pz>EC*Fh`Ng``66b_T4X2U>iPs zz-52}`(kJox`toybmaE#j;6GWxtdcD%4~c9at$Dl?LSW!u=-?j{Hg3bG96<*^)HXz z0v-P1+`}ThUKb=ynd?jRai%G=nFa9a-U8{F|8rUYe53)wU$qO(KF6Y45qmE6Wz@Lv z1|9x!s0?0Av$Yu*kg>r+ond?p#xfrlX_okO{UlyI3xKg?3vLH4{~tTxaG}RK zt%;nEUwYTJ7(M`=P!Xzl!BD6MO~3zp)`dF4A^}qqq|qbV8#e3Fhs{0ltmmFkJ;x`h z_mi7<=~vq;pIe^|ny*}zi+#0-cE`&zG+zSr$|IZhiPYaswRoYx-U5xhz7~mzlIL%C zCrBSH=4%3a$Th#_AilvmP35WU3vd4)yQl%`7qeSkH8yb5FN<@NM$^N@dV-oM9&xC* zZC0ydn+YsgP1rBXh`j}>+OY+{Q)2-qk z`b{F6YD=d7T&Xe`s9SGaep?HsWJz!DGUwyP#cVH4-s{0V7k32FzkiTF*nQwG42wAi z-HH8aXRg&YaVsjpPQ^qenpKDp`hWQc_ZVQnZ$u1KWN6FeM&@$A*Qi_|AAZt3o>dXN z4U*SuOje~(GBP$Exuc?@Iy*l;-;Bj%z8Rixw4q~6V`ocSXmcrK_)s_T&v^6!0p{#> z(R1;qE>qk{WDA{-W{D_HYQT$0?_W>wpRegs{dI@HQE6_21?8>NakQ94CJz{sfQux? zyM#Cga^RtP9O3a_M3M$BMrz8KTxSv*vwzL1x1t)B;^!@4gO{*dj!3RZyd-G6ttWA@ zDjbmNcVk-!Dmm!a-~J!xV|uWVK$dn4LCY{zi&e%vXWT{}OsFlBe!W`F^?}>}y$f&B zgfix(CMwiIL~EPx&rMEiP$Y(;@4gVy0TC(vg%=DHRN762Ui1fnVDmyxcO;&XfsbM3 znQuV{Z39XfGTqzA{8LN>J6fx4FNbE0b$RpASn&DS-Y$Bx!Td!h73cL=LA36MzdjrC zAfd0BW4%ZkpD3p#V@HX;G&!feWMTh@>HP@>B#`5L(XVq3JP?d6OrpU&p*RY&3l{;0 zk^Da4=@x1a8?jD#tIJc*x@K~?NKw1Z_-+=u9{u%eMoER(bk!xkjnO49)0sunfGOxi zL;luA4Q?yTG`Z(?_eAUYnm;VgV}(pGid0&YD5+;-eeNAik2_Yy*T3r8D3|(+(pAC2pHXqb-x&l{Nqayvr2~3 ze@ml$=`F7--mx#>7esOP_xFGBvmv$4!j+9-cxXCp1IWgq5laD!F{nZxElbAprh7EP z&w}Pm*kW8o3|0#z)pfS1A2~YBmee)xj(ME;Q;-1qcrqZzo!@4XO+O1im`^-B_gw_T zlt6(ADqCeoxemo%WO#sCpdb8#ioA3Qndqyl@kbIsud4rDm2<^C_(eeb;sZLItgnEg z{r-Rp@ZbhZHiLqZj>E5BJ}%aw`RX+Y3&~`vlHv#ctP{8Q%&1QdV7(4_WV_DwLH*-1 zzkGWVEadE*@YHDzSk^POu03aJHxfJnqc(LQs=FwF+??nwEj&uSm1k24!P$dqBwPm1JVXkfTk>de2xOIR7v9IMxp2Quv6p*s5nRc@L!OQJk>({ zS-eCXvg-U1fTMMU>PE%O@P%b&ZW7mj^d5jamUIf9G+fB6w*?c2;BbN+_$0AaT@pa< zaRVPYO`k0ERZlE)rZggtk_6@YxnDm*Rr2UD(aSMuh78?bv5PqmF9o<<59Zs)XiDnF zwAkY}fQ&coaC?I|VWr^NrUK3h5MTBD?Bp=a42t8Uwm;D4VU{8VT0#LSQp(?{F6AI*Ada?%1f?5zbqtz+z>(?{#(BQWu zSK)t4MqZ9CFvP;afknB}HhfA00|pb*$i~gQ<>l_Yhy(6)0Vw0kp+ADecILR~@Aa5v zokIDvQoU6y)uTb8kNo9&HoJ4>?L{Nd1&2VFGKoQ(UXovNE-4nBdOO`W-6Q4ULFD#y zmV3*S83#FA$k!LVIB93W+}dLtFZ2x^K2Nlw?PrVg5vh;o3OV{?B=L2f%{##DXaZ1y zw4t*24 zmCgrzN+_@=hR1j_wWO+Qf=AMddFOl1xR zxf?lJG~55#A_mv7lWlYa9xq$yW%(!mwfwrk^7{*z{V~l#S+uqFfarg6ZlPZoznVOf zt>-N-Nt7tjT?28Ah=9EI+pD}1H)=%?If(n25^hT0N3hqhy+&P&Z8#RyCM|L9Aw*7- zuBQv1mPz2Qr+OsAy9mAP98?+sv}ja$F)JWxi3|X9A4#Bjfq1C}SPI*n(WX1KPw`l; z+7%9wI9}x)IUjqOa&3v~daOQEk3Rlk8pdgsxI0_}li2pX zf(n<1Z?sG1DlFV0;Dn3*+m7xw_iFOJcBCX=ko|D+Tmje+^6dxwssW{GX8JurRWT6b@pC9>xz%3--8>4)}+d|*JY6GET3v+SPo%*J56 zw)7iN$rfc>Yv={JKfetB;5X`Qq!KFr8Bq)@+g^Lm_HwgR zCIvQkt@NnZL5V^~dUE>0^_3Iexm)~ul#Pn3a_84b*pE#5K56JmU9UAxBu5F2Zq`H! zbhlYjzdUihlRQ4Wxbw|izE0$rmAN^J-ZA}-7%CGN_Oq_}jrRZAix05EM2lr4iN;Y+ zAB$hT0VV~Sq(a7qa7t$j;rEzM4pPVJ35wkfD@IE~G2+k0o#QYK!D1_;U8!DP|x#!^?Ci?RfZ|f@?yWm3l35Bs$Uo z5X%J8_-DIQ_7)qlf7r%f*=X-<8%OIZjvZciKE-*gfRx8h0_Mt-qwFd{3VfbfWh+(U z1*11zYbieKqv~=SPhJZHHCR>~OV2)rL^a#`e#KUPyYBkD#p?B+In=Y1$b*mCL$zIg zNcU=6%B0Q6)srnA1cHB8v2yv{FOAj6Us4q-XM5xAF4V?z{J!3KM=oXjnT5x0p+mb* z&XZT^Jj%9|nlWvuA{g%~5chmIsWR!B!iN|3?Xs|GHxc9x>_{7g zudpznyf^nQ&k_-}iM+0Ka-0s=ZD*bZl0$i2V-Yup;E{))%d|jto%hAP+-ru}jtZeO zz&(P3Wk?z7a!_XJ_1IVL>76Nf%+*&W{aoIK?j}*%H&Nywihwk{ZGR)V!SdZRuIxjz z{K&ie(?b1?g=RtCsdog$yJG{{?RCN^>tr-`dLBFAE7V8u!0%(z(#_DUq?F-Zsvt;} zx5y5^w%f*aqXyrZ=Um#}^PcGx3M8?N`pO^aH0O!lCrxZzy}D~oGd3UnwzGY*$th^D z7BXj-bXEQC`aamKvA#^Tx{UAg2Kvs2jrX*oT(4E?U6gVTcq3sbacDR&T;$){&hnhBgg-t_Iz`(b!8PnpRa9&f$0PPkf$fdfehb!ZbHK1>N?UFr z-k&>OSKLQvNN>d&2DVt`cJS&Qw_T_DCNB{+9*5c^ACn3w$Zb$sY~@4~$7kU@z4a>^ zW7eR`KdyGt{^KCYk8V32YHLVr&4UdGDxY!KE&V;+tFXycdI0$@!Uol2o zp^zi!FEsa$dwu)UuI$4ot8b5t=R}>GS^^lx&PX2-)?l?#vpxI>2f3d*f%D>LTs+a; zT#KnO)mw|w>u%CUt1*F1IbS)t1dt70C^l2b^@ewHh?18vAiJ6}3LNW5p_lP>A<>2I zyG0mE$)Z+ZO6A^HvEgcLbXr+*lTPFPqSd5kkvM!#!_fDd`E zBvVQW&3W^qm19y~|A8At6q3Vd3fi+@j)E<}9Z?_`0hz$FQjG(fi9xh}gFOa>Yy zzZ9_E9Wm>jME8DxTi0=xjVx2@+fV?Q-_xOxwRV-sjJfB#ljHNuIxWr!2uLX7m+0VC zz~*xtgS_mu4SmxqF=iBksfH^f+5TcsRRK5Vv z0CJ(>&`JrXaa7-gxF6evr7nAJ8_!jJOcQyhH(|mrcRE0!U_vjqGE}>kj1`y zUTpWIAOYw-4u+>jv9>%sJZB%f>GPe!DubXJr#dwew2m6TNrdGYZZW?DjXWC0ji@}Q z%Sf*nd+`GM{NT`N>1o;hyg3~++aI)r?q-a6>>?e6G)nkTpYgJ@UHm?}=}L4%R0PsM z53u7Ua5iEi!@b%<7lRngj1oM_TXHfO{u@*SGzem=5xy0#Tw*ZZ{Qgew2(%wJi(K_a zzool{6B`_X{}|kUf%4Ko00y_;gb8^*qR+Kx@;{1Z>|XWc({J_!%a~1qhP}yz9c7m2 zQ1z;m`sD}1)ugUs31m`NV>?$1fS28xyzuC^3kYh7V$3%Zeo77s`6t8i_Ia(IQtsORLe4&^CYj zk!WacPG%7poUUVk3i7k;ttkDu1%!8yf`DrlHiY-X9HC7W=koSRh_zy8(iM5=_$%Tm z_{M|cI&0t7D3tSk+F?HS;7Ax3gIIE-4#+^en6#(l|Ah>>sc zgNJ;6eE42tvtUca4JBKuTJe<}rEaQE2N2_iNjdJRib(oUyb-cuP7k<0^P4FKIYk%K zp<5Eqf|YQ6L`{(FIbrWHQlX4d^iEFP#l1$qiy`=DdpwPG4wSGHuxW%Dky;m3kdrTZ zX;=*#gq`amzBf6Q|AmaG?$z9!t@_)15?#SpdTUGG8lE`s_dj zZOmbCNm`?VIEe-U;H z&cS!w%dhWYs1arc-K2My->=j{2UNak-7_R!mjZ*}8u_sBOx?QTnvLr`*r-TKTKa@}Vm zwK6L){9WdBMTWU^T`(e3S}GAU*Y9|AeidFAS>%AC1sO4OmJ!7^sgUHjNKAoq;700r zVCJxu@Qci@m$ltDjq}g#a%F`ZPIz%zq?V%1+CBopt2GymrmPC$TEfjGVkTER%pG4u ze>Rk|q%J;v&4^T;*uVF9-(tRUMOAIk)p%IT{y+6Tcs~o6?>_td?rMw(Pz{hAwUrP+ z?OuwS#4lJDw;g+w={-DMdvg1{?dDzNi5;cK8p28*!jjR{2*x-m6d&FU#|e?&&!bcq zIfs?X4Ph_S8fV$wm=&DWT6of75rK3E_ulNv&6P%u!(ZElFB$MYZ|6gS%(tNwR-f8i zEtL9jO$X+)bI?+ZB2So|dAv?@QO_jZ{5H7{l~BpREXa4tH2%zo$39#O&Vz=Z(05Ke zH3~>P^rvsNgU{X6zHm0H5qs<~*_a$vBB%7>?v^k)eo(-DY~f&zB7C=0ZthHynDaG9 zT5WY?`pEF1_kjv)2Hs(*WjL3%)|hqFD|J3{`U4h}GjcgcP}o zAr|a4{TBGso9xVUrJ_VHY~<$b{@$S+0Z*GgZZ5j zB9dyzcvTkb4VfT^7%@80FPT#8sEzLXgt&?jTKy~B%4 z3j6W1P3ezuNH7}o8g@Se&?$ab@f52wOStaerDJmID92$hPl`Y}Eo!{%`^;sRdv_@- zy^a*oF8FcT<#fUOcfv;as+{k}m^JoJXgGxxvV3IPk@J&XimZ{XJl@9J z^qs6A*^A)+-{Fi92$T`PrXKA1J~a3;9;+tqG^md9rG%KN)YbF|3(;<@@mzA{cHU^J zKdekVsWNCT7j_9920a>=Bd#3ncpNH{r4oD(e-k^;POoV$PQ*`3uWnc0@Yrk=1U0w| zeKtz*+(zpfSkB+s%x#<0Clro80{`7wdOs;jRr1+&o}vm!#esK?sW)*|2hFu3ligLN zq@p@-D~dYHMi3U_|FAl0xcI~2zNVD5jXW4!dpfDtU)CEN5eDh^)UNz=J+1*HutDSa zA(XhU?&+BN6K6RPk<*y-$fpFvkdA2;Y!&h?6T`JEz&rr*#B2}_+{ftAvKgn~j~s*f z975R|*T4hDRAq@ml4b@9>;4{^KUuK)@m5Vz~BkRv-Et3}!)Rtz+9 zl!Xyw@944-+HzW5NfHKldFn+VorLoo!P%o~;Ql9V6^T9b$@&EYxVR7&KHg6H0Zu_l zaXO*hX}g4UzD=5dE?+V6Fg2$-`dsd4UYz*89x+~f0pI6#n+>48!o*`g46*YY!2t2y zhfP&#tBlFz_Q|^q<6Wy%i)aepL3&N0>;Ee$nT$^c@(X*JC`E|vTz5~n5%V&7VR_4C zWBpN?Q@6Dn&it(5g2WBnE&kJUGgLt2qB23^6y2G;d-=Gya=n|iufq2d_~`x#qyW9? zH?St(3LV?80lLlpBZ7I&y$p~$mo9&JKa@yoIX+jt?{B@(yfS|^izousXfv&dr~lgX z^z8qR=c%YL~0XDuZPFudbzj8LpwmC-K7hSzAp?Cdj8nYGa1zoDAxc3 zPoC1oJ_Dr6Ej_w&|5hVM6JUmkX2ICQ&yo-eXkc*)P*zVw#Ki(8&2!4vkJKZxX=o`R zk^Pxrn6#_kFF&r}s5`ml&J0(g%D$-~#sY{p+%|cr)W?I07WnMTtpnx)j0nBl;^CYq`P~WT8!JWcHvY*(86xPz7c!wnO4+YWInheimY{d>!9T}cA31jB9>8&B4 z#ki{gS%m#&uwBKPPpxhW!2HCIX3z$slU%<_Bym}8WOUmY;W?&Fl z$QHRFsyhEFFRKbi9|88j=8H?vH;_7|NO*}Kn!r!J^>nEe&JoQV&86OEE zUMhNZs-Vh7)EfgT4FmbZkDf{%^weqrfoGDF3s&5!_nX)3bTLOBp+3cPMf!!|Vs8Kw zzYnd3g@jzrQ}b8b;TVWrAEK&;X=(cmT8+2$hyoUM3Hrj0hAbAcZIFbCZQi&e952`E z1CkZGQq?A#4FfkdZ`wEZsHL_Qp+B!*_kD8$o1X(vPrvx7k@!XNK-RK(7eN7D<1mJ( z=ib8=iQiTE5P!#F2^`w+sa;zIe_>(gWpRd5L@U9tBQe{b;cNXp*eX;iy|QI>d4Ns>&vlWI|D> zE&wXV*4;JG4F~Jv>cnQ=c49VkYiR=_bvVsx#M4)WzAi4?i3KfduunxehCmZ$^NlnO zL?A~F&Xk%GXY5{17;E&F`r2YfL?h6z)F`*4>P`v%1qnM&$zi=nXO%EuQOIcXNnmF) zD|VHX2oDAd3)dbA8-DgT#Qkn&5Y#Te1nKvlZ_iuA8n=gskFJfj%NY72Snp|8cXb<) zU?;x(5nIlK6(NkG_onG(%JJ1My<#kw(c6ASP-hEC{}E-beCKCX&YG=96`~CV7`M=~EBx@cgsE}kXOEwAj9-Hh_IS_dcWWV=iFz)T^ zToioD_bZut#nK^TV=yl_$eIfe`_m1VY3)%z+xz3bI{L1`;6!I4fUkahM?UIuGIsey#_8`V6qovh$60k!v(8h zB`rYbj0kY)YrP&MSYNJ_KTTFNnE#gjnOed2r8-aa@@b#W+9<=NC<30-c5;GHj#>Q% zTj~Bh|K)3U61BE|uj!fdF+K*Ay=iI6Hz(qLKf#gYZ~P4}#zT*=-JicetqsKu5^@Gh?KKz8E50ZBDLWGpl>-z zRP6HAN6nBk>h+Mn{7x7kQ=m@c-(0U2@xFz~38}i;{PGu1SsykzFfm-E*VHm&s;wVk zjN|hB^KN6QsUr{}2$u1;CLK{(e7YwVo_>v;UVD1_2wq?Noc-Ma^xu(zGIknh)5cC` zy1(jNxp*L}ajEsh#Kk=(LuBw{T%n8y^1DHZMC*nMoHMap= z>xR~$@*{7|NXZlYkn3F_lSwpK{aP`xKE0hUy@|+r9V*VM@K~Gtl90-b36^|^)@?;g zLc(F1M{CtNp4gQ-JZv#LeCu(37*oar^b&BP=g`iR2hu%|%AP3AzY}D4{Rtnf_Wcz&1G=G#h( zP4Y`Fesv|7tsF~A2amY*D|K@D=eeU}FjPU7@E%b&pG$m;o(t7mkvb^8h_TLedKo`$ zvyx_=-|e3D=aYB3JeAAwRGkmB1e|s%A92Zvl%p2CW{D=QM$Kq35%Z=A4X;N@1aFBT z*Z;UTIxrD$!jnDVl;4H=n_C7!xs}pz9VVv0t`n{MU4DrI_;`?1FtRu4U3}5Ei?bN8 z-rOLMcNJ}qIvh40#wiMw+%P_81%d^~c&4eDD`W45_-jf28W8^bIu`3?b6{mUzHR9T zHpkf(K32Z_cmQ^Wt{2*1lFhT$La}bKQh9m;ozgGMt-Wch8rw-GEJr?vl;?Cv?mXe8 z5>#@?^qaB0a!iklyy^Fr8YPP#w1$#t&DfpL<4|X)iFUhq$f7h@bAW9>48Xhd1Wn4{ zYvyIdgt9@8#a%t0Raw;wqB=1l2l23nu*dw8rlzX9g=?466xT+2#8qeiHC>*SGQBTk=at=ke)V`wSq?@xqV#)Aw)Xyc7t!iRid&R*4HD zNy_-O{j_dMy&n&~OZzMmk%-BDQOl-MX*V3zT`g!Fgz#_t3h5qxV;31(P~mfHnQUH% zZgL;Z&+7VH_MWVAHY$5WMGQQ{NFddJKfmkM%U_W9>%1+ua;LTss`qN+RJ6`vQS;^g zSe@^a+*8QzIuYj2vlxfR!Y~R9M?U=|L+Nhk<>n_vB2%o`walCYz38Vv@NxM<9YBG? zF9_Jw<>?FqT9voWuu|89`|Iqjf1V)l41r5qb|~(?e4c{-$S(19iIW;l<9ACs6Rc>( zQLjf9XdBUP`SK!N#fK%-Uqc$`^>urgo;7vj-%@9dInZkfQ{spbozyFKC7*vjZ<4ZH znB1=6o+aq@_8cW!zUaT;&t;fA2MYFP^Q*xBY2*Gu7OQ~*u&tUNl~J+lluSV}Y4bHfNokM` zb{!e$2xy2*>78yiBZ>SK!{?s7?2L_glOt&Hi|=^~9u~bGdiknJKN3mfd&U}09CN_~ zbqMaeC&syItIE>JO{PtUs0&D%D>s~lBjhpWNMqTjcJHWRH~cZmo^S41IoYH#$>M?4c5?(IM)jM% z&c@#bCcKrT3XsI&pK6OrAgGYeBF>oF*2c>M$~SIM^Pbxuc`VVf6+K}0nG`JZ6gx+! z7Um>1%>C_F>z90qV8!U^b;ren@6oZ>=H)+>HUHuPk>UW$i0>Z$(WStmpFN zhVOV1+Jx7w(4LIM5v6~m4ar;`%#BdBY4v6DgZv)a^_WUyPdn&>k%DE~=M&4fV$FS@ za{;O&jXNO|{)VZD0m6kJw3b zokHG^r7-x{%RZsj>gjJ4{8rZZ*>AhXmk%n5?!i60~;lM^BfT z-;Kbatl>yE0ax7QtqwBGox8J1X-Rv{F#=wj9u)l_SRDY1Cg3GQ?nTQ2c}%tOJ8!(9 zN_TienaVRd?CD~;3U2pk&rEWX%!w!_3Q25zYU1f%xt}<{Z|*!!oc)`b$$z+7;4)wWAh_(J?p=3# z!8KYO^Y3H^V#7EoB+%2>w&r}G%;K^1cOgTgm&lPHXo+g&^R)8hS~|?Wb19J&>t^1+ zc?wjz9huuT!KllXDGj9@F}KaWdm1HhWI zo_A>bG?+!{%GnU3!5Y5X$(d773C$~@gq5cUiO~mh`}f3Gh?~O$6hmHk*}pIleE|6V zQ{<6FzwXEB2Um|1@YT%P`cP5SwxMIYHk>uRTZ3&$Pt{8CHL1o6Fh7vl4tL>18!ISF zaDCi*FK+{}P=BwV%5}*f+IGN&@ewry<)EV7^7>$@5~Wsxd|kz*OVSU(TJmfU_vTB9 zFMWV6fp!@Dc%wPBuqCv+?DNSaW(GNg5iIUuiFySMVDuN8BTi1KE^dL#>it<1|CL=o z5e#vqi-)>xnW{Vzxxm8)!Cbp}7Q3%QRwH{^ZpAd_k|RBg`wkd&qUP3yC-PANDQO7k z3Dj{4WMbTfu{gSg&a_0mrj{?hr(Xq-=ZL2p5gG^w)Ep>-+YJ0kbatT;6VOo*6uv9hH;RDMtY{Suak74HlRiIOpW~DcK%GKW9L&|q zuD|JF2!kPR>ukqH_*z~EI2-Be|B$g5)>A%jj&zls zk85fwW!?O7T@Nw5EHE=^iR#dS+R(lmQ+oc;3~KMpxAPvar2c#8v zUoTpDKBMCiW0N8hAjZ~TR4S<%A5R*5~xV4Q5Cfg;%7kYbT6(2TYAW}AFKnC_pnM|?xd}(~8?Ir?= zi>a^tUOcEtg4>-&`KlCs{x-3?RpfSJ9v#~52dBAjo@m&<^z$P)?iKgI+F%rvsJY1o z3+)Hy&S(hxJ?FYIoqBn#dW!_QY>4>~I9icQW9w`}9>QWVNOR{8A8|tzqv-*{*U3q&^Nm*+D-T6`Nxt#8d?!fq+i{S z1Lp!xZVk4}6(MGAN|o(iDv=Lrzhf=Hkc3J`Kmxzk*&r@Hexu~8cav7JeuTD_WUHGs z`Cep7SQVj8twj}qs2ln|*3|Sn@Q*Fls8kFtEY>X5>j1N)EL%CvhmwC(@#4S zF9mTGD1I-d-S+(lg<}A^U(1|>`~U21#FxE|sKEVtDOb=ptS#SG&Gai$Jx#v2DrBic zeE`WsVBi@|u7;is1fSni&bJbhOOT%Iyw%TTdB>TITm+$nDr?h#LT|@;>ERYUVH*GY zKqcHbNUcWeJg1m6uaI%G<4(A`!d8s8DaK|9p!LuMPG11gVGLx9?zX=IhNjT38+jb! zWqk>Q+R|DLM!!U7{v}h!I{JKiEuDJZOJ3Qgbh!QHGJB}D)4jT9ekWXUhPlLD1%IkE z-$|Gvy|KLu={W}A50Pv?e>PdR$+KwE#*2(Afxy62TvbErz13J5O~zA^$omAWFF3oh zo%O?PiIN<_mufWFo>#d09m*kA>*d6Lluve!K~P-K#9fCAY#QUxdzw8k2mQE#RnWAs z24YvL%*jH|6FIx(JT?LCOfXDNejkcN*U}_$fOyFTVt+hMRD?JtIty!5>XW~K`%XN% z0!Xo4hLh>@k$({}=JH+%2i4o$GkrhzBBK4h)YwM}%!zSb&5m&Zv%y?J1@7a}ZF7^y zyQ?q@cJboJK}UXt+cuPayg3Ke+$49_RpYD+vIAXlePCPpE7eDZlLxp>>5Yo@4+MyJ z4wD0=objBB)DN9FY!S$dX`D7?p3q;KhHd<1eF)z~XQ+Li8f8+8w23)+MB9XM zSh`x4TtVI@p;3il5>P!&{eYM8^A;R~zy2ZcU(v~5)jwUA@<6WeCyamIj}{lK%JuY$ zj-j)?Os`QFm5AGRCGq2I1Qso6y;a|~Gbd-Y_cXRC4VNiLv$H5f2!a^2fAy=rpuo^* zN_r|7K5L|6Klmj(k)76N)e_gxEu?Y1d-w%Z=<3$C>%rzQ48$^>c44#8J4)`ty%wMh z`l4+xn(p|pLCfuV(S%JzSxC01&|H(xcHS$Iql3Q_KdI-q*Ao`FjZ-GlBT;OD#a!kg z-5#6XaOh%K)#K8m_RBRdhRc~t+M&g$^795yA8igtm)A{6O{8&Kb|)=u$Bu$@#lE+^ z0DHk&z2Dwcs)^HBDY;Psou;fr9hdipMa~LjTOP5{Dvr3cYu*`EoNVz7 z7Ox|{boze2S6pu6VHI`Ug3SX9?cwDSeNuL+loE|4d{tb&KkPBMoIK^rw7w)7L@HJy zYyzo4#kh^Wz3(wevhDOxeHe4R{nVtO_rIL&KdW8*muh$Z_1Nn5J^+sH&sLO0x}0Wu z2|3Gq+yc$Is5^(HS_zX^{lzFYa(11XXB((>E%+`Md1W8kr{}j25x8Faui0Llba*~Q zX52JbuT(EIBR2l0s;Pm8^z#uMBX{>m`!DM9A8ZbIvC8>E5=Y?&9fbRL`i3F@z@d!7 zpRwPW=zvzL@r^eob__*KHOPHmf2Ld_79^_R_w3bv#^rV>zO5KXpqT`5*2HP8sQs_> zFwT_wr0+j}TkPTTG5z2_-~Lr%0lc1gQCoc+PA;d8_ZRdFE7Pe?P^HmW%zMKm;R+a7Q&`p9XsCEB;>ct`oFP;i5E5M$MEDR>SX^;zc4XXNHLtMWK(+1 z;p+9m!&cS@&u*w}fJRe-`Y84WQtY(>86+>5Ig!HWVFyx+2BI5cXu5QEV|}b6aphUZ zuyV-d-w_|oAlbFDGFD6KxXk*`mfN2vH}6FQJOTR-^qUdV?-_lU4z_!9SOdlgJc3z4 zat#qDBqW3icOc8X>K{n({Qnqx>!_@@u6>y94gu-zR=PnzP&%chrMpX7k?saT1Qet} zI;1jhG*v~K_G0c}KKzyW zSt1(yBY)X!{XM2wW{#Ge2P@v)c-YWLf!!4ZWI`CMgw;L*Dtg6CjS;w#)Op?CBvgW7 zNMQfBZP{nwWGgKR_C&>SUn~BPKEeW4H^bsk;}-MI|NdrB$nHRU5Bfm6%uE2QTUJy`qp>U^o>}$D zh@Rcg2A%tP@)V0^QMY(DZLK0r)}+s<^%rD`1GDFJGee~Rcfwk;_g!QRokpVVAK!wJA{x6nt6+)89p(S}61c$d(*5nnn&G&%F=J@o;m5w3V6F|q zb=i&IopDl9NRM#!n41zj2@RFKD*r*7Yna^kY0CB|BO(T=i${duKOUWeAN(g5C#!R? zJHMI4KkiHefhWACn_H2AA-W3f9`+VjX?(-qI;tLEXt;PU8!qHIICt1CFcj;skGzLh+x^`Cq34+2btNOWfNw=GEj>sQ74cj`{E9fDhYxclz^ato&xN z-BB%H5V*1bTmwD?R8mDxg9a}?VzvA~cHZB+V~QAj&ypJY)Sd(SihC@g5*4_37Jb=w z1gs3x<)-p+1@>p#>iq7P$-AQNY6_pY^2Jk~qd)v^5V~$~Tss#hJNx2?|6>|GWcgaU zAbX2bi6=<_CgmgFgwCGc*({^4D!}*N)8KW0eIR=j}W( zmKKSBJowf#iV8nbMRtXT|6?bc@PJd#q?+C}aYAhM^K9j7xog*H6HBU+SCdU=Xc8xbyy%njuv}^gvW}L zvmQr+L*$~%rr(g9`iZN*4)hyvzO46io4;N?P1!^nV|V?-j>?$=cJ^*OG<+f(?0#E@ z-R>m-)@wV@Z@^t+ypND(A6@+dNR z@eXkdi8ixt^c&-7Iv1e1m}vI$ac`999o6FC9e?{dcNHlrN-s0)we!fpDfttP621Dw z89EOU$WF~ehV~V`Ak~l}?juOoK@B@u#ZVjRaxNS{~GbiKiWe# zS%`XXx_^N>cKOCyIJod?6(&rf=XGJ00obSLPJhD1ekiV^f0%+nF7Pm z{N?hkFqA43LRxPF9rH^#GhhB=$sx8HZHm;SQv~XAMGF#H`MZL?9 z?Ec&z96oSsYUm@d@9;6=sIYSsWNM%P>)v88J=DM!D@oo7{a}FYY44oThq!W7*)Ora zaF>!M*JbMoCG0TpC_(bF_R*kiB(0Dk;N&w;a?r^NHrHHk&mm&D`4AguC5_z$wWiRX zVEw1ARBkw8cMQP)W|@%{1vJqTkQd@@Py22?DfY(+{ex8IKhMiQcP$wb*ozVvBqGZ> z2$(Tq$B;gokp7p9PRPSNhBZ3@e>Q~=+1ABfJ!w5Oa0r<0FXa*$02_tQLx0z78~O02 z?gB0Fcs;f}AI0MZC)U^F7gSRwyVIy(AJEq29V>PI&^x=Q`tt90VXueX4LsZ`S~q2# z(+1vcGnawA?HXS4?4B?cZEL2F%-I9;yv8p;!;A&tm;T$=Ri~6K!1+YNn|^j2h_%C;3tGhL>*Kj zN%-IFxlKeCpS%=y>aQeDWtV!#R1J!xlNXN&k{WKMLD5@1GIfljHW5?<>s5Puo>%}!PYQPdiI6)@k3$?uj+l2A%BI`)m&Ze0QCXl?r9eOZ zRP$nEo5pTud46)}`LovAPnoz2b`2jt30)7*kA8VBdG#0JByC=wbp)~DBJ3OV{>?eL z+Hx%$tw)K|Vxx~t`p}6prKXGCo+PoE=;T0c$7N@_J)OX-*RKbEDdqkucB9BYN!nr- z2pLDom&4b@R#4NbY*%L6u`|wSEEVP8WEyumgut^6mpD|nGe;OLQ$_sVpb-l70okn zSmd^xle?TI-!>fbUage+>1JB-{zOO^ zG8kJY*A|U7>XlzBt;Tfsw}xMBT#|vjXfJGM0z%_iM%YJ>*oBvFt9Ii_lCGH;3lX|0 z!=+d38C^`Y8Zyw7hzkpQ%LRI$b@t1-&b~I;cWR+7tJHptcA6QJIp)nV7+t$VWWQo{ z>v@WO}8f-1x6?168h%Ql&A zLVOc7K68A6h_L?XiE`=vN1;!*Vp-B?TZQaVM;QC=S#*&f$eo5$2{=!F2_)v=L3TNA-gLKv?oa?S9`NOQ=M*O&%?wiuCa zv69f4$~}6ab~L)i$8WzGBt`b}RdUj%$^O51{UEG(mTjM-#Hh^DT%Kg2*kOEdZ|ul- ztd@H>Cl0d!(y|sEl`lzbki+1+;ovudfG(#f&8#T|PQnehgK7GLAu0I@CVbi&fe;u; z@V0%oMg{Rh&h+Q?)llj$zjL5b<3L9^cW#msduf<8KGXrN0&46~o$W;yMPc7&9>*1m z2!-|A!$T!KzkSU2CYje8x)C|MX$QWs^)prDHtFhbgDlprbn@)mFuMR3h!N0+hOV4V zBR&wIh#^78NVGl(E)G{h! z+hV?*_As_^@rf+aZ0>{V9H549L|&hIYd`Zt8Yx(A6u=>(4bwFw@bW&sBBA}PWoGxP z^ak|%F+IWzfJ%*x9;`9jzFc~;8>&xxeSigQ&j*HKz$gP8Or3e2g&Vy$`?a4Un(%v* zsu%8p-!I<@i;m10A;YU2Mn*iI(VvJ(b@z*`$ zv4$Za029MyDrYf**QV0Nu-rZ6w7%mptjk<=05!w8!T=5je!u%6dH5li6Z}l}Tmg!< zP)38HtLKvp%5qtm8I?*fLqc3~1J9TQ!c%H6$polY=$lt~-bnm7HqDzY9@3U5Z)bYd z%8BoiAB$s~%u{VW&v?-ApqXy9?JBdtt?x<< zhB-@ek7!yBHZsY-3&x1WzoYOcw@%h*;T9$PH?>wa70TBxP)u0j8KFHJ9x5O1va2H` z;30YSC2bvIE?YKnn(t|pW=U5a)7nF&syA(ZTs%;nZqf$gWl|pQ!Fx_wF6z^drfd&ElF>97s1hPe>9PWlBU8h#1tq#Nb|$&dlH}XK)2&P@lx&G41w}c~7jW@w>Cp4I4o6(A4skIZ5O7)K#@#1Y zM%DMYVq~SMbG|C?PpKCJIMX8G%cFk4%gznP4%7GFYfdViq{6Kip9G|@Q*s13+>BOV zQnw2PvmxQT=>0{}Vt~|cW{(5VNyd*7>F3`=yUt)QswZBfA(;azQD5t@O=kvk4is9Y zJH26;=%-OMF|l%OWRt^)Lj`pPP3gzQ8ycF=xcyttKPomSEwlu{uAcv_X3pADf|ali&0A~r5l zYQ3E~d8qe5J#~kp?jK2hZ@4Sd0k0V&jm7yXDfK;teVb5-1tFae0@_^yQ(^)^mXB1l zr&(hvDn&^dfuPf=>HIb8b&8m7(A%peqNj_7`axQTm&9Y^LcX%(uscE?zn&?FNkIi* zc04^%qd|)=mg`<-eD$HELzE`^IV5VoLEK=QZ`t>Y;(F)rWi9m2)cB7)NdhK}O{v6L zLP~uMZ48SLN0%-M1mZoko!6Ff{-RQ!7#GkM`J`a5P+4@3LtAFY>RN^uH9Xetzo7Xz zS=aR~kB9&n>YgNaEf0Be)y{FE8Lx#aZ}&24Z*P&R^t-c*#8!+m!!Nt;euBsv2%pMu z&EFU|o?IPjh1BdSqWVsBI^H-KGX$3TbZlBCcDIfP#NZ$p5r$B5`TuOukH{ep8Sfce za3MNsA(S%0JD9Qg_6R$fr~e87nGer{yS_OEh&TEjunBy*A~X$K$Pp^u%Xhm-s)XKe zIChrlfLg_IW2+UFGWHi=jL!>#2}?hG1%P!HIbK=IGdDletr9sNE0Az2y{Dy9@X;jx zK2S!G<)s!pR+JETPA7NhZgq7nRX1m6n|u6-rQy2-0Z#jIx6E+v7xc3N2PMbw9iE z$-Ihu@?toC5J&`Qus-ey+@6Hf&!j_6If02sSn~~%@-qrVy@g^k*8aIFQBHUWw4}BCkB^{I>84?hy13*8-!O%Oj^X zu>#V+KYK5QBt^X_m@go%LpVe@g{mfy&aN&% z{0OIZ0b->)^d#}TN#mbiagDTo6~tu5R<-^kIQcVu{rzVX1s2&OngnLNm*eBt12+lO z@(r-+xq%>%u?0?k2?5RRCKOU9!MuoYoX`{yWqlfNUM5J56_LuZ+D<*AAHj*6c?la5 zA#ajbGZjn$)ye1%RnK%->3aT|_bkGQIK+{#9WW|;qsec8t0^NdpJe_VJ?*33Z4ILCXHuhZp z={JMo;&&p-6`uHO(E9?yh})l5NwwmPj+~o^-F8oHZs32&#P|w7BCM3&RlIPun58U-=6{NNAbwe9UFGuGaz$sgEc9UH z0JTHw@X}55)zfCZ0{ow4PNfPDM%&XV%_j@y5c-f)w^6unZZj6H7~i@s1D-uy+ulwF zRC89nZ`(w1yxOAt3iXHN$9TxVqy0OD%%g?Yd>xSd6Sdr^@4m8uWwr?e6o%|cMaKKR zpuxJ4VsFXjo6jXq~_ADEL)64folG0huzD1>IoM7k1Ydutm?JxjKBPoiq@1+lRU zgFWHbJzzFML|>Peuh&us~MS47#of<&dFuY7(U0 z?1?MLPm*I^Dj}4-o^eToU%2{2@vdEOn>-h}VbtfF%nHe%xUEM}ip+C427iIQ*=nqy zBWXNXDQqRo7pzHq8PlCL$@9Df>CJgD}RG3jk*c!)d) zf{Ee>;t}Lb;ZA=>x?C~2MeMwn?&{&`6cSsLUde$_Ncx9yofzXjL9Ij~=Bj`CqrB&0 z-{CZWXo47%=Z_eZcVkM43Ox@cK&e>1MqJ=~VDXKo{Xs#^J2Vp)eT>{(TJ`-KM-lQ)j)9QWtog`1O424W?kCExaakpM*oT+uC@XD9MK zzph9zIOhFfF>L?cKFZ^S*0e-ACl{hb#K@9eVXnB^2?qz^)Yw=9#(uDjo zM*O)P-9&Pa{rrVuOAEM)=YjD%l5 zP*Bknx?kF`cN6U^Ff3VrtI7&J3-7f+GES&48q3I8yz*Yj*tKSHa%;=I!2*>?|I~mKmVr z96_TX*_yTs>gY(XicGmVo5aHSc)WTPNGnT}+pM&FKyXKJzmOymkeAsw;ZgPWlmNG@ zp~Q_69ez|fFOLxR>q*rB7;Aj&pciqL1G^H8Cn=+#;W3T5v!4f;Az{d2=}_V_NmB@~ zVn~GMnXd!xX(rtAa8eG*C07f1Deva1^cu9VeUKOluhHDwixOwt;7%TO+G|;a$&nwW z+*UBP%FnyE%8;tZNFaQuDhbE0ADIC`toEg`T?@njo~-=vAek-=b#XgM;@zP3X^)<& z-@3T0(wEFgtFHcFv6W=-kf_*vIXGiSg>Kl@Dv3RFC*6-fF=j&)<_UZmZNID-; zmTNn%)9jY#LYJ_f5=`OXn>hg>ik=>Bf8$9Hl88t}J`N7C?Qw>cZ`|8IiKeS~dyU9> z|DTRDlBMDY4;C_;t-Dt{Z#H*hF$m+M#Wu{ZS!GuKsO$_tcTlnkt;d_NFY`w=jMd$9bL0g4 z{8_=Y>J?8SffhnyT0yL2C;8iT zn%Z{A^XhSQ2p-r}E-AXSIfGr4^>!jhJ~Lu+p&t=)ATYYEbmz3cY0r{?=Khp%6F=?> zlp8Ez*iMZh6lLcY#E^7?K39BSJlHJV7<>j%KR`J!K;e7-NZ zwDdzi-w|H?a_0-4@=`0}4C=8@{c)J<4DQbfYnk?|mlLmGYZ z0>qjWLiQNbk<}l<3_+C|?y5JAiBM6M9&O}p?2y?|0IqNTgXLQ7BeYz_~@dyNHEN((d?3?mME!WsPWux0UM;*}_9_+;rm zyvJk~1(YUX-`MYpBr-uLVel_FeO_3OqgSeCi`7PuEogq#8>0$REg0H#rfo;O7!IM9 z>IjRBe3~>ae?utyTngHt5q2{oMN*Z?`FQHu>psx5(~7hAwFrX-gnk8jwVT-yh%>AE}uy3TUyco)z}Jfrdt9S2T?26 zKGQQn22^C4XP{Y`hjirr9cKwMX6v1xs@@k+H9O8lF(M-)OYMF?w`weNZ%3FAr}H-O zq<7UJ@XRvHTSO-DzPjHOmsG6-T8gwA$hYDOkcoLRQH!8uXZE&}9>f9)--LPtfXs(M zqO3dXmz(FHMwn=x<*nqAORma@+)4YLhDwy;mN!@4d5Z^3R{fs*InpO|{>HmpF6Wza zeuWsM`QTu8I<@EQJKen9{ZkpM@ z^oj4nmU`l8zQrv5<;N_G&gpTBrR*LHMmSLBYEr;-1J>cVkF)JinvDSxynRMyX(L5~ z9Si%S_eEU)gGZr|y`4_oM|ETEM%R!1?l&t^dPgRe=XAOLr3=u`{quZ|`<0^9C=H`m zmW2+grdO`}L!Q=r7XxWFiv4>VVEk4=s|%zUD1z|r5k?#rE$XX!Hr-m5V)ZA`kN&lS zpkG5DFvC|kx4D@vAd3${ zf72HbC=<`=m#W)Da!_V@ZE8TZ-PUv$y86O7!l!1|!8~FSO9hRL^EpQGDbctca#*7Bm2PkFa^k5i{^(dlg&EwF}Li0*p zk?V1%)Ub7?y>4pEg?t?ard%kd<;Jd?Cg8JgqtS5=VZ){V)t~30VvU#-Omgwi_!6B}dyMpn2wIl*KSqmLAJ^25_ zQe@3xe!L5k-@<|aQrro8vgkVJIOvufh1jHG`dxg|~Mi#}CT=-lz_H}sU ze6UsWapow}`^dx1PjCnby-4`Kh(jpdZ`$jB^7r#@w`n0CtQ+E&-}c%0MhCz5n|cXY zs*=P@lz9HwSGQNFpDeAW0RiK<RtCVB!NXJYtk$sljM!^^gbUJA8vROVJa_EkNjGz1LF*o2kyhd>1PWW z4z{w`V0!q-K~T?_?LMmfVdve{S3NxgVoTxOy^oPcRBrU$pVi9J&p!<%?uAGJMz~!r zzM;?g6!HOS^&b4&3mI7=#Zoz0j6qhqnuA2j056ZPo^JJF#|<(vv>uU}`~p+`rwSA5LwdBeE%ZkBy7bMy4#kr_c-p zx?4*HP$R<;`VU?N5o`k%d+DJ8TfS@{WY04<26E zpYf34iil+v$|Ph`21hbWEC zxay0)g2|)jpxxed$gl;{mt;0l59jq+Yd}f#QWqo&l+O36QKE*(%2?_vl{idNcydVi z@E-+)k}|q{R1g*pzbR#CKAi@+-lFr4-4t0#`2c7aV`DQVkWRWc#8@Pm&wObqGn(zO&K zCzuFyF|CZ=)&N68rR+l;63P8R`cuT2PbC~?(1H_A>JbALMPq(0&u#rd_5zO|P!VC! z{{qIO{?y||FKI-K7&Y$H?Q1#(E)gU>=iWycG*2U6G~clT0|S_nyiRBOox9G<*_wy! z>vV>kk595O7IGAulBuzXr{B}BpL;$>hF7Z5tRYzIlv_Ks3^NQo5;AMk!N67mg4wET zo@R6)RXtKHwJwxUp`jZ0j0aVT_&da?KTgj7WmOE?4gT>Aj~@g%t{njOXm{FeJWKCa z6*n}%^>DRH_R8t4V#a81S=KjAWoI|^!ZsA1JM$ojj0Y_vE`JieUA5X9*uAzM!A71b z_PzjRi!uF~Ph>*bMo4$tv*e^`{Of#)FCRaR20h!@=x7Qn-UgKiP?Yq(xPxKT{hWQO ztc+UzS_&E#ZiE0dD_MbtZ``*-@6`|?+Rs9H1-NmCW(PtD$G)|oVk4T6v1{R7teHR65i;B z(`*=HRO3=0*MAFlRIt)=UM;$<^>;GHJU=KidKfPSQ#SdeJsQo{XDw@1w4xxT|c0}y4_gxhUi?G044-eI2~BVZ>;%v~#5twd@3dm8shFQp?f^|H2D?Jo%4imlAPpcx?H zWc^}>+^2$TxP^+^<7H0EjOij2sI03Rm#_RV0O^Hyvox5_Np5dGiodhf9*ji#Z5TK-ew`vf4cY}z5yDe@b9 z{x96Ji8xH1(^`C5aZ>gEEl}kz_q@}$N@J#3dIw%#$!GhlMab)G&e;fl-a-vc_^mIA zm6chu9z)SiVIM@!mhRcZYbA?4luCz^wHpB!ZMNyWMIC!VkY6dX;1nO@E(4PdFti@mAu zBFqy-YU4(i53j0K05X6UhzE=o!pjwN+|q5^UPpN@y$Lt2pi8vJd-_^WC%o^MG2 z4isdB`S}7huO{ShNO74#=fvmM1AOXDWkjPm!L`MdmLWJNF{W{~RVB-gb zVc=gp_P0WvMI2VuWdI^rfld)j9cAU%bNCwz35FPALH)YnZ%SIZ@t9-k&@)ufhT- z(}_h|#j@L_>xS2hD|DGDhBBLt%X8$4N&9f^68y*3{-(2mabqa(I9m1tg1~~@yTYqR z!^P|~`H<0S>B=@LdV=MTmb=HcMjO!nd8Pjcv66I6T80btI`=DtaDJH_fAkL=xqlR` z{2@T)NX#QwLirx1g(8B@6ZXUsaF?EPwFpfC_^0o~!rTSM~hV zD3|7N$3_2sgFOIZEaqrY2C0m+I7H_laWq)|xh?7CBijc z9Qd0}^;bv@VIf#^)NVsy%MEQEa$C=#sG!5(OFHH$3XChRqhhz7XHHT59)Ab8!_e(P zL68h4d%wtY#6aIJ|Au*pHr)45nVo)`oid40I0&H^s9`W>=o3YMKK@JK;6>%)E}!Ra z5SpKH5u^^V`)d>x1{6pX$qkC)S9=p*e&3z9`v38eFI)1+`J8y_b(>-*{E}bTT{i&6 zz<-TggAOZtC3Us0uM!s7xTRSl07%hmKe{`Xk#I|&EYWXd(k$uV-)r>cN#ku)_qZZR zx)4duSm#~qv9Jk(fen2bz0#$)-DEP9sMnjoOk1;{BC|bFNXf}*p8v2^hKEYC^4#OK zKBJrM{AlFKhH3gs1|>>OHc~yq;+diU2N@DA2AmPxBi)lou=f`nUVn9_i{_nD?;-70 zD%gt1Nc!iPE7EyX<)%S{emZk@4*cXWzhIa@^@oE=BtpS=a=^cJ=?|Z%L{Hw2? zT(5|8#Im66x{q)RaLzzFFw>p!HLZKYU@#7}_)<3c+-iXVTxro_SUkp|3T4xaonuNB zbB`qPY}6V|FQ?*39D&!RUeo{0n+LFfEI)wd_E6Ow3?a*{8?- zDC~f~#6%w(=(JXq7?rLxM0znOgAwEl4U!j_UBX0P<8V+`d+{0U6v)_g@D7kw&9svw z7vB*uvjCI@L=|IovutIOb0cACsX?XiHGg=75ECNiGXe7IYE*od>}l)8IvG$ECf4(!_I79T0!BYA9qAW#CavMi8^! z%>s4>{-OJu85|B}_-N06JJoy+#D2OOfGlyvU*DWSBvO3-!7AwltWK+!iz`@oM4;I_BuUd+k{4wt-i3K+SH z;5ytuMRwg0$8>0oD5PHP=oy1yzg-UWl-(DqGu;hJIhNZf$hVhjdm1BP6w2kP=(Ph| z=gg=-?k@|Y&ZNmvW5`-CbgML3GW(^*C|+8p7SrpY=0M42;Iah=N{hZYp&-j$YS;ExH+mRp66?t+%y+${uncCKc!Vlyb=^XB<1;teoD+Ioi$Z?#CiA>GUM}<%hnWe7Qc>ZS9ZNLT(EB za}_ddg5l3j#qa-7)CgdKaLidmpj7N{z{Z1mtoWQ9<}!ncW%J#!H5R{@NLqSx$G3tl z$xO}Puj_sX=eW_p5FXZgs?eV4%9xBGBoJxyzmN_6oQI6AJB2N zfUT;Nw0W}skXqyv_~liFvPS7VL#z0M`GH8wN2W>9$mVFd=bLa6h|tUoJl0{2fm3hw zShS+)WMdZcsKdg-92?*1l^GrQ&8kZ&jWElV=F}+R;Kbf;WVk2J@6t`b82XOGGGYQ3$J#EjLWqa4Z<_2B~ z6t}cc;-r9#?;e{Gd#v{tzs z6w&6FG#DFa$d%Pm*NxA?`AGhRD}-!YmnN%@~u z+xBJXEv*v^%(`wHK6GXIvbwyqUnyc{i+@aql^yVb{N=1OF|VgTvetNvqR5SO;_Y=P z`Xh^4adTauep^H`D8QoHiFuSdAtp&&VIEoGvdQ)6dwOuiM5(4G8PUYz`9qwO{x_eG zd&7s_-_O!aV#?;5oRTU9kKAu=uXnj$Y?^Ex^jYI8D2cf}5jy^nwAi=)b=G=uyX;r; z&Y9cPSLO?P+Mc|4yyx89nh|e)D(U}h(j!}peTYEyBqfGHqVR|M^G6JWm=Xn!SEIWP z9fOjPXbGDUv>x%(9LL1QzRWx2bw6(skG}jMyO(GGy#z@rLd;n$Qmr)g=3xE?L%Jsi zsGHr$ZY0?#i4|l|)$E&Q?6%Z#Czp<0igG!8Dy~&P7xmOKxZ&}*(3jlfg7bV) z&@IW?zm4(cWvG8Q|@ z#+>$N$HUwEDSXvEvWGZ&`h|8qKk5a-;1&$>1O!&?|Hz-s;O!+ci#9-PF&BP1w+FXE$XRNhTYXUyQcHY7Khg3GK@f$*hE7V(D4u9vfUo-31RC@_OeWF zn;sNeF{!KHK|jt+VO+|%5UC2Kk0Q4&dHGFakPG9xbvtOqn$Cy39o93p{&O*a ztvS1o4@e_Qq+E=qmE3F+pi4%OTxVxA8VwJJSF_PGWZ!w(MYWcAy}A08YDFsf_(`-N0?*SDZLtIxKn7S8tX*&4rG>c;S~EaFdamHeYx!TsZA^hwjc^3SXnu7$Ix6`ZZZ> zinSvK!^1yHS?XvFv^;0>iKP2L{1e*w?!HyVpjYR>H@)Ufl#h9fL6S_e&>o|gZFI`_ zX4ChdxJ)|mrmKbB5}~8s_eZjQJzR~DS@o~Gz^bSemp0qSLHFo$`F>2bWqohqXVJVl zSu-{7dLHm_vo15TC}C&pxRhl|JC{T{?DctP(niqq=VwNb;_91%j8TpK9oP2__v?se zW`U)8@|c^)k34R2Yu5*1)t(rXKTJD3?5A(wLc?K+LH+f^5grNUP##ImKU*yOH2~f~ z`_w;w=rZkGMu~mX24nr-g#t@U5+H?(6ZT;ceSMon-`WGdmxm#HtYgRdDA;Du&==Gg zcbzZx*IYQfI-*6+(H(qL8~Um=dua(=qL+=y65`{(?mzSKW&gY%9wh`IS{iNxB-!|< zzDpQ_cMm}Cb-)p3);dE$Df^&>vjj?FA#L7a_RMimyP!8a2iK%)aQ?iqG~55=QGFBX z!=0bspw5T+DQKtpeUBxh`ngtaMFlXj#)T(K)wJ}c90dPDbo zO73d80E~Vel5cE-;&s_#A;|PgMCZ0Z5<4iUAgHx_e3&fa5!9uED}Wm?_~dAt7DpD0n*`4H$|+>tb6d77*ybJR#Ln=Tq#{0a1(JXojjXI763Con7E05kZ3AV9Q0#6 z7GNl;+xg@z{-0HWtWPr>63XQdDN0`Gw=lMZ-spM(pWpGHv(lf$hGZb97f6~){`S`a zzmPY%48G4LXj>iJ)nN0&S^yz`f5wg7GVI zTDL{f;YO{d#f)tK((glp7ie{7pZro7@14w1!ajT`vum=Oua*pn6gt-UjsU-%>T+iyOrOu{YuUNWlKri74{`XCCi$lS%M1UJS2bQGP=Sqz+7<%-ZkD{c{eo)Y>QmNLPkvGSYeG08B0R!)%dI=Ao`qYM|oot_$+~?Sj>tPSG z@p0)`=Txb|R27T3xHxp9*3_4&tuvXZG)f=OIY#w_Z?F1+J~}> zrKSa^8Gtt;Ahs%Mt2Ds)NvF1W!&^?2r`$GrSE+XRY7{40Al!!bl*&KErznb;M-@J- zL`BBt``wx%KDc-UwYJkwI~AnQNq=8-DsJF;@EP%)&_-~shBjB#q(5CIae5Hi_%gN{ zIa?A(VBn$CbbTEP6A1I;sarGq;y;$a9hrhpA08GN`iu`xT$eW**{e2Lb%jd)bUVCx@!xz{Ta+z@6MNgN6%Xdo?jyEIBcWJNJ z?_TN&^i=N&nqF=ek_8@L_Z#<*B3--saJ+>v&vYoCn?FM+orc1}DeAr)fqiC9V*eHf zGA}vcZa)d+9I3W(6vUR2O2h20k5NLQ+Qm;S~K zVVL*8ZFkOQQDTT^OaV`=#wiQg81ebMK-F%^%_#JsM}~6t_Y}DYdyT}#p?3*ZrXZ)F zDSP!6l4gu-XjixfW=M#3*?iz9?I0I5%hu*GEcOZ1LmYRhgY#MO1+iJK&6x4~N9+le zmCk|__l$cA-)cw&mmRcgeB(}#9B){sk}WT1`|e>8*8m{de9)$HElTiH0&9iSlr8tX zU)Ad&5R9Ava9sqc(!*`v!K&hl*DfdPo(lBQk%MdW0y4_xhl7SYPySgJ>TI98y$jJE z=o4?!en;r9k#EdyTqn~#svEbJ3S3_bsx-9^Xc*~i*9H9Os|A_r+evrey&Ee}>t+CEDk7ahN z_Ih@{M`!4b8v(uAFXfbJ#z>Ea?>}XJKfvEY)_b>I+Yaox1v(N&85jpneid2~H%1tr zUC9*u{)bZ<4yDNN(K65ezKlT}8Xch{O&jiXG0kNx9|0pzX4=n=t#vj;d%_eK&tkqP z*kkOrNrKgd>AGhulgXY#^#5z`y@R4$x_(g@GKe4`f)Yjr1SAQP(;y;Af}kLARB{|7 zXBbdKQF4wW5(EU490xFwg9wad6p$PwXHJi96R+Oyy{B&7Q*~j636uu`NU3goNk>fxsfVS9ENvYHhlCY_?D}>h+!M zwb&9D%_c3k`Mbhn6+Q+$63=-U1+^wIHtF6q6zjV^C(RaQrUp^n-EGK&?zY1MDnmB(^POfp#W#ERHYlqGm z$7ZL#ThR=z*yDDMLZ;v#>@T`}rFB(T=$BxcauE(J<-S&A%TXwME$`z2ve^C1Tf@QG z#zUd@LP?iaL*108L*p!<;{7x?ehJ^87w|db(xp+5Dl)L>l$n!iL-vE)wr2GzfJ=sA;hAOithD z*5k_4=-q->Rps;TT2C$sF4OLKhnV0c&R8Z0&*f+&S?_i-^_G6IWe;C_)F~p0jB(MK>Kp;~$xeJRE5H1XI}UfzU-D&wX{hbl8&z7J zqVIx}n`!&AidvLA{VRU)9mFO;j2{n(Ki;&)C%8}ucg;RUJW0k^@i`lPF8w2}+4~OI zJoAg0eA74y8C6w+J)$hU*JpkhGFUlHhYvWN^rU=hOAV2HoSm;*c^@I(z$@J2q#g97 zoh>OohDtm!Hr)O9f*%61Jj{v1-O8d4_z;KdzItM+kP|M0n?fKO_zy1ePZFcf0_G%l zD`+x^nDnCK`aQ&`lV$gZSnK_|_IlOW6BNhCOR~!3CA(ZGB8eoH&2P`mkl!EmUuOl+Z z!1=uf^Qye&Y{a!GX0QJ2RJR$<^|_n|bLrfRKUA7n4VN5$GR0azFS;#$yd^El;sV6F zjt0b^%7x3lz7t}T1h0|&&ya`ni1I?+<}P3E5qz~6p)$NT;J~i z$D6<;mFOi7*~+U!4~d1b{eY^z%{DR;M+O-lo^JT74#RMeBP5hG#K|UUT^H4%8t(DV zr+(ra*iSSvV3J2V%J2^mI}(`iNPbtkfnXGj&heDWFVQTPzw8`f?X0ZI)dxsbM-64C zlxSASx{rdTt(>3xDGXmm z6`XTmQ0IR@2JR%odI<;uBnOm1jzB}%s3yJ7=I|L!(;*mkRphEa_y@?gSy4q9wepH*&>wROuLr&ZnR|rlu#VSE4uxK>SVTLTr*Nq3%a*GBI|8$Qvko(oZW|C9rUUdK z?%a%Ysxse3Uz4o*joCZ(CLmQoGr>8pK82PJ+dpy?*>?2s{?yeAnoy6Yn26HF1Np;R ze$Ma81!cfeOqMs=_5@%_p0LX=9`LJvXoDvbab3yJ-mz4N5y3Onn0St!)jBi-P@j zy_T<+uJonzxs2ESphscXaxlue?iG^rGx;C{>3kvUG3D9)W^Lt6iq~mGm6P!$+)PzC zX4-3}CyNyvX%*Sh@~Xgg_mZe1`z!4$m~#_4tG=2pSFc8P0kC~7BcloJMWk<%#OwYj zdBJg9&VIVlX7*!!if5YFZ_bz6Wn_($$~MReFphJcJ#W)jVIz+oPcpNccFq@; zl4|R^R$pWjv?l3-J3-C1s_@{x* zrr*7M_JG(uU{Uw>hkz*CINq(kp6kEWV3bYDVlA z)+g3ri!N>>=>9~5{PtWumxj==i0a@Oq(Hlf4o}UPgt+elO$V|kvQ=*!T#+3OkJ+1I zSlj60SZ$ZgtmfJnaR6qeSl_LepcCkgIF9r}dg<51@&h&%eps}a#5&Bmr{TRjE0@5?&#Kq{ipB0)+>K*@8{XTP;n1ptpF`c7}|Y7{G( zOzT$11qA{1sNyyBsG~ zkAG&mQO7Lt)T85U32|pR8#=-?tGrJ?Iw8nc7ax>1M^azrt?AzW>K;Y&C)S$g=6v4g zA$+eS3T@Zd=oswy-WWE(zuQJ&k2gR>FoJhimH?}%q4y$w`3Y;1!?-D#WRRF4S2f$R zJ4qP5?MYr^GPO8*^K#kAw%cMe$$^KW4j(PdkMhK}fhmEG=UQ zI;c~;^8~0pCk3z1;S=l`qIKg1L5AW}SWwV<8M18xu8(R02*L;V!F^79_1ZhQYYWmh zWFca`FHNa$J=H0!n1q(tdbIX0YG$;)K=@S-w{H$jKQ-+vRTIYCa93*5>ctk#YpO= zsRf_LSu?}ukBL1-Qfi9kC|1ks0|dH^qoyi>C&T86is?T3MHI5|W-#w>4TpvPjKHP-C zdsQ#NX_@Ha0HGGsd*i<=uYAcgBPTF^ZQd;tls*+gWnbZ*dv|V4#U~R*crW?wb-_U9Cco5ACf)%pSrKOR7Y7=PA>dAwYFA zWJ+(0w`wQa+#H2U$8oglceC1iEVUkQa&)>;Utn^(#-!P%JC6RI0is|A*K7*cqjP69 zIj(x7khdlRFN0fb&>NJU(zYc_AE;8~-$Wv1-zJpSNyeNq?<{+KXwr=EPHT0|#01GuAuL`ifaz#3-bv!j5WLH%SaZ3UVP*P@L}rR}IJm4q#hDg|G1euT zvqNTnEwea6+_rM4ij~(ifUv!n(ei3Oo93Cr#ZIm6mdRY3s}$PR-0{L;Qj+tLoTkyZ zNv*YRJ(_*RVe{)lmaj;?wnCOjxhL(ZLLN>pWXqeScF-SRvRzL=ce0*wd=57|V<)t` zy9SChC+s^GYx@_xZ^b<6xN&!H@3`PIgzPD8LvQ5Z{z6EQ4bDri`?$Hy0A_I^_ZAUQ z83U~w+jjf&CGEnteb(OE@P-thTt1mc=f!7`0cdF2vxxdxY{e8R7lz z%W;rUY#>EtjDJm59qK2RkZ~aX#^+RDlfh*~b(L1`_Db>l_q4??&Vyo??{-mr%9rCS zJ-E#$@jMjlcUi>kp5ZmPm7d6}>^yAmeJdl`2Shnb$tBxjB6$eSpsRd%dHMGbS8et2 zOu9x7cp90B(@DOrBB{Yty_mNK5<~P^{$UcE9$DPhaCzG%!@0DONxeaVmf9T+0oa0- z0|n_M&i)C6TdDkvt7|QubBV8_rdhMSz_xGUwLE=AwpigoL50P+^`NoxV?%bTZl2Sq zDtGfh8Gp!eI(GAAVRn@Nz}A{~{oy$qr-;^PL_WN5lbV?uo)c$z`SB)f=KAN+(W>S~ z8Lu%&53f<5fwVIcOp3CQeIUT5U zV{T6b@w9g2yMO}|+s9L7AV~r6{v2h(Nq#!DHa8itcd1fyz}xU2)Wc*vyI82<(~R5T zjO$M0#F%g?D>t^5NOHHRxMuxKvb&-8{wQzARuUt5?c{=LDTVZ&(vauG>50f)M?XkK z*W17sA?~}&Pwt+7#&6q&bE3ARmxfK%O+%xVi_T5h%P{Hg1+yo1LVl27{FI;OpboeM z%0q7&vi(so<5l6@pUBqNyn$E&HR}&SO4!yQjph;--5&vre9EVWi|p9$bRnl#&K5k0 z=LKRxEqN_co8HF{vPHYc@ws)r9lfDy=w*b|W}GK-j}xv|vvznEmo(zwhMCKC21RW= zwAkW_Nm_Gt)c&hcV^DUHLOk)`*;-roTbGV-X=OHhKeg(F@*dn$S!#G4msh%)v^<}3 z3~m=}Fn@FNfuQrq(60W_f>@vgNDDkRq?d<6X$oolwli=E$e9^jE-Q=M;h3mf5=ij&G>9CaYHQMdgxEjUDst2)*D(qA&-yxiVxqomj_@Pds_Yuh+!p$PFX)&-wkzpeGa*FX z@|0_r@X_ki(KPCih~#yb;^wm}j3RyApZkg}8(zyZl?V_#9e3F`7&9!!tXt)yFY^fF z5*w((_BU_C(X}L`*a|_VaRBDcXBa^41OzPf&GJtO*=Jk5Jq$N->bV#8iYZd8*sAY6 z06;iy|Aa_TPl26(zDmo(B#9cD)T;rVTc$7Rwik29F^A#*e9u>+-S_O4j3@II-t0%hDjxfY$bJZsmktW_R>op%{)Oy292CrVV z*WJ{Dh|#3sdNLI81g!3~G28|<%-&PG zL8q+oj4HccKbECOXD^Fnyx$06*t#)KvnS0}f*4=8oxt(($@6|y zJ!;x_(so`338L=a(gv^YkB7`N6L9;PC=Rc4YFt-Gxffq_bL`~vNIG0QQ!z_m z18xm0%>?j2w|{`D-BBk$h@07QyQA!5%1{~P%b_KgmxtWUgy|5`j0)L${ZjYyzRav_pH(q89&aip=t-}86m9Cht=W2r zLM7pRfx=+sgdfCO# zdlT0zTt0p29Np`m!$DJXy|cmw(T-COEkfF(_Tx;*6I(YKbHSxj;53eLhPHLhYDfAz z*``wg+O6SaDRJq?5?e_~&2eD0Ho ze&ch|JJTDL;W^}c-fkaSCZ9{D&@&btUPpmwDWtj2>BMes-;)7Fn~(@S+bUg0LV&Rf zPYWY@**G}#Ox}OyUbFF#i~$~}{ydl6M>n%ZH^%nJ3Mb2{la&?R($D1dve!V6non@QoZfNj{-iC&+xmUbzmn+w}(Z1dl%`v%~dO7Eub zR2gTze)FaY6e0PY#uZZTUFzl7>yKrn+KNr50#%Y5F)STAw27_dd;93kD~7I{+!J=l z6uj+0UTmq2LTXE6$bH>NTL+l%HpHhaGedslgJFHl=XKDX(Z_#t7UmI;f_W=3{H&L- zKLB(}eJZym2%3#5_bnuUWSw8>3CfW81f*o7ENoY!rZnv{dzgi%NP27bVaU`r#iUP$ zuOMw&OyEB7hts^PGu=^}2p^W9R%l60LID1X%Jxpl4SWK}t!=}>1wLii#ke>et-iW- zaBXO8FVR}reC|YYyl5R4^@unqo~NKqhM!rS7Om@YOC@1GZyRZ?HpN96k=e>&=Zs5E zHwp7j7!8Rw3YKaLpm2ok-_J~@_G%vXdT+wuC`v?rO2RyvKJY;{yFf-Tf6A54%zgHE zIy{aZ&nE`$Uw+9Qzg>9Vw{6L8V$R@l?Fdb!#LJ-ksyV~-0r&ScV^t3ApXqC7x{C;-k>Vg}Q|86%Ag$!~CNK}a_rT(xOrnKF^ znBX)!pYvjp}3wMyfQY({+=z#!fyd)t%41wNm zY@=F?CCRvYPMP4c`w9m(r`K%pHuStn^ltcB8-E8lEe}95!qy{K8f@ylEsnuaN28~HYa1x}Ti@+zVSCullk9K5LEW~8y_ol3Zb1xPmf#NbXZ94kIu z@ZdxMpG(I09v97F@YBJTwR*rmNu0=|rm% z{E1{;=cTffrfmMC{0r&AbM_={qVN=hyz0&!w73GOK$S=(O}*>|qBz+}vb7Bgi;+j3 zFmv18zpoVa$)pS5iq3QKYqaH#9(ILN+0HLOP5O$472H7x;&<*)h}CPZ-i%H?1(cI`_G{syOL^!$mWlI6l1VOtTm$tY&CEmSb&nPN0mUZ-yUti>-!G_M4AOR zEJMjF*qo-Sa6}UzoY&OikXxjtl;S#hRXd*ViYL3RKXsikS&d&^^Yr!suS2bh;Z2F1 zu6-uDtY30mSLE~L6KrO$1P}*u2XnV|l&{pf!g5CC;o5}{<$9*E92-eO7QMQHRtoL& z26A{O!O<^wL3l_lX9mx> z>%PEYTH<^Bt!C+?1fk}J7w`8)J;r3WwYER>GR28#_Bj?iMl5UEbHfJ+&#M|79~~xbbX0@8VNg7ob|^XxzD{&GJZz7rIZF#GW$BZpoxN9V$unp;3|^*Cs1=83)HaEi>?BoCJ~*H ze!$4#l7Rpo8Y;gxH8E@qP>NaBI#N<|6TGdVGx7;_s)H*w7D*Wfne#3eNY?Ib&J=0( zHC3B(doVuiw$W^&6|k$pTvi!wQMCdMd{Fnb_q+`tN^!yz1L~{ywrKF(oP}mtW_-k` z4A1v$OP||z!$|raq3LLv#^jv!XPV|AA-QHfC`P_lv3f#oxKG<3Q+_xB!)-mUI*O4^P&kyoR{gC1ezd~z}fv>6Et2wg3> zW^4vdjy+SNs4*xeB=LkuJ5Tql!`^N|(p{N#64IxTpI!E_=h#Z9GQa)wNp?z6FBRpV zcJphL3896uqm0Ei+}^Jyja{Y2??B!hbeBG_beKWJyry#B$uI7$;c!=v%&m2s{XM*; zIiF*V5CL+ZOP4aXIkv0IWN>pY5-nB^xhK&xAZ`)8a_Z=dV}rL7on;>xP#(6EP9G$3 z=F<&3;~V&Y zc$A-;%s5Xx$7B+6ff`*i6R&xOZx;2v-Z&yh3o-*v)N>Ux^|IOU;1bEUhXiecTM}Xs zwE!m^VOZKa#KMj`2JXfiZnM07tAEs5;Z>Hp&%*If@1)do!0niQn!xXz{D0$ju!Ta1 zdy59=Gte=d@QI$DUJ7&5#pfX?=wSPZop;?CpARp$0~>ClG+h}$50E&X?UoiIi>WDA zrxSYl0qo(^Jwk{q?Wo*-=LVtWGxG8i&2~ArOs{naFRrTWMYi_0!1f>eCbJ0%y)DVQ z1WGuAEiEYj>AfOFqPm$_Da<(i`HQK|#FJh7Ce>38Q-~KOn{%ddi!W6La_+W8kEkU) zSel()*kJ=*WxcEvjusTZcBd$5fPhYMI>2lYpWtO7+~VkgpjjO&S$D&fer79QKPh2* z!|yKzn2dwR3iK>!4m@UueXKrA_uymycl1 zPwLT-D_4%D?>5SpGo3suF7LhLR^BVUG+dAu;VCo13@Yk7GzZ8-*`N)TSGDce|1^3_ zpEa7x;HAc`FxBOc}Gnfprfaa;rlWd0f{Gih1q4|C+q^2jq%MZdsgLVbM z?c%AAzlU8QKMjTjpGSnVtVU#u6B)}k@qpXz?^&h%l2Lq{N@O~0G@v;BioFWvwDnMh zyjFg{<^MQkjZ){-B5T88QE1k7=h(W*3H|Ng+u;F_f#M=i70C!=VPl9RLA;r6EwGW# zc4P5_nDp{K_C|nyqaj%d<^$3hNBa7WTr-DFf``PbRJgYCrMEXjjAs9Xfqjq{FW%Wt z-%s9e-C9QEjCY*eODHbdPOTaYLBZT+&LtoF;WfXO)lrcI_GzszR9GHcR?VQnO^u-{ z2`=Spn+Hn%zAzo)^H1TL@j}^i6|3mose+YuC)1Q(e0_G$F8~UtJwtY|V~ElY-=3x1 zP{pFBEZ70o`Ch=}OQ+zU1cMfGrqqJ%%a?O`digpv1{x*i&p{(U*px8FEGc)W^|l>EYis4b z+b4MyaB%8VBn;hLis92&m&-o3*W^aa-s5jQ=Lccpo87?nP(|GJKd3HaM;pQ}H5RAc ze$~fx=DJ_4zdz#v%#4b5v3RU@>ybE+c~u9q3lP>8W}$9s8sdb!w37#3$9gu@CZRld~GenE73%`VR;CpkUAs5J9V}U>gRT$JI)NPX*Vm!=Q9Mpzg@?2rLNX zX(56KtVt?CMpy?croar))QajQzQ| z0uzjMJqd{`?rjtd*i3>YJE{W<#Dzl$?h)|w7aG6HNGdStXM!Jd_z6gV6HCxJ?MREf zL~f}F1Wa4!0>qGofmj{*Fy9+AKM|yFk_**FjhGM@U3PcRus$bn$a*-Alb-$_@<3w> z3Z}lYYBP~11C>t zI9C`bDAbbs=l`Wy4_2!=qHrC`!*dDTJk9~kz6b41ii0o1ArL|go=zy44F|e5n8(60 z5>SUZg{|?QVu<;5Zva-BM>yiMXVLS4%?4V%c?&A|5+L*Y=@!M2z zkf$N|_`%l~b6J3Kjl9F@bU;m^>L{F#NQj%r@11%VBXJ)422RgYT5!oADW`~;@D6b1 zPhXLp*tX2$O#}bcV9Fyv+fOmp8670SSFHNL|J08Ic~p{(^Z0KDQ=S5YFQlDzJ@h** z{xoM?d?i^xPz!bkivMQt1uSeC=!hS3(0m@SreD9pEC7?)$xY_}tHFU-i3kfGId{NF z{_!h2Igr)#$1Re7{PiEl`F*{_N5J5dokt`He^-P*%^B?S000^4d}KM%e>3>xDd18s ziuu(a_>+J9iaL*#!2tgCKmK~a?L#ku!FLqo7wHaa!ku^ZpgNyb!W)01G<>gh->% zxc=>Boqe;4o$5){&YI6Qiw)e_&DAma1q0TO5GB1neb9J+w~}G(9nY^N>f7n5h)(oP zhkfwu`&Rn%jj1g~%!lzBeqcQj!@ML`kBbk%n%zKJlLN@kPdlO{H?oE6G#)N)71dN- z_D^5gKE!k|@B40Y0v(Zr+@oW8B#oV~xz5#okEA!r zo(U*ZNr;Qc3FY2!M(#w3M5KT>?HG#$|JfK3L)Eh(+-iATl4gRDfMn_JaNBP$gSj0Q z35{n}Tlv6#mX?_-UuC4cSpgVl`Z@=_zgcqN3;}>sdn}%kO60;z;cvrss5+k4j`jDP zEA)ly(%1v5BSPi*H$oFf#?>xvwqCbIwXBq%!&*p~+p!K4; z`;(prK2;IqF{^9ylov*?lLY@GcfP}rlpV9os&gg@!{Z!uy}*6_q3-yDLh2b1a=kZ= zPhH|;rUdL9zAfXW+>Ng89Fx%{*^iwJeOLUj{*p2#`>$*!rJWQjK_@!ctoo7Nru~O+ zJ5(EMt&&SSi>=;K>FUN{4?y7TUgobSYW%7xusD*dN>AAZj+O8fZaWzLGmk4M%#@FE zA9~i#`nU~gDqt`4mc{`z=*LogefJ@A`PpoPY^>WpxUB!o7Nw3X_tzM!Utgou4FZ@>P0lVfqtvv8-DIGUNbxsCkR6M!Qf ziO4>{jh|n4j?qcg#GMxv8rmmg{~iq8C4IInV1Q+AhdoW8HQ;U7;C>O)cPam2LBG9* zT>wchT@nt&)Wq4x_L~O6L`WGFTEnI0V(uBeH`k=Zb}j!uPa}4F;@sY`43>Y~?*@0r z+y@iynDiUQAnXln@y_f%u>9{|VR6_!8_PT+xL>F95{s!%wRn6+Vltw z@hP@z2V?UetlQuPz=Y3PrEeNWiFL)WqEm$+%xsu-(S7v$)P6h_Sq{eWFF=^SMhVc% zfQ)x6>Iq-yfD%KX;ZUe07({yAB2A!fRBw?!XKp{Mnx&*==aqcp5S<35 z6y8N1Qb7Xx-K9JK_9svS0BvV?F`!+eNQA4yPV6;obEg?D?+~>$JE-3Px3rin%_VED zt$P=Q6-`|)9#|8-iL~!`l5h>h@{@%BVGbw+zD-ho|9#2_Tpv;$R0JuTs;T4Jwba#7 zH*;L+mn^C8Kgyq^&Xgb`7)nGNNV%Kdldo(7b%tzKW#ny zX~SV(0C{MJLy!BNRaaMsEp&Z(d)$5|&|M0ln}~urM=MOXy`s{~^1G@UxTNEw$k5VA ztFx;Y-!ff%MZ<-0txQe?pP)$Q4uM2PR1z^bWQ9^D$>4Pc)gQ5=A38>(2HfVCoiecv z27hTqs@y$&#eV&@@%{TbBe(Tk(C%)fTzl3j^hTdWz=;k;iCZ058A&=n%gMq{>1?3n|2Ix7Ve@v+ z6-^e&bZHsn2Im$2rQ8gS%q!1`RG>0Qc+J2WwUvR%+tv9=X&JZe7rKls?5(S29Q*dH z>2G&i_ErnNce-4o-;*1y-=CjX|6;Yd)1;-?N+NhlHAVDMno==4z0as_zQZP?>&TaY z&iR*jc2w`}+k}BNRJH`tyf!z{cBvB&CSIP7>QeDzTzrEcrxQ2KT6iyCCmMJC*1Yn)EEI0DY}D50iRCn!J{_~5V`o@rf8DG%=$%q|c5Nwg!qD|SwP5RhI(DwgIhXDd^%lm=2KaYGj_DLJWb54OYGN{+g{mh5;zdpjolP)N5C`rXwf=dB{d#gT^n8?mlghQjOgPBjt;^h-#t zS`HUpvXw@1!kfa=BS0*%We;Xx6FpIO#0Lz>kFTgPEETHGxe#B5)}U%h7_%E9#e0I< zh)2*<342CER&0VZZxn9IAosm|U>U=OL%a4CUb;u8giFIN$}#J_gpth-xnB=}m+N*? z#5yAT*T%wooP}^EI(nSw`Bw_Awb>$5Fl)JIV+J*w&FJCHlx6pzo`zS0DS(L7C)GdM z#%^ClWCwC9s6%g6CI|dAHUvc^l=W_TWhu;C23az3Ey_TT-{kc*t17~U5V5R+Ly4H{ zh75(*&~8Sh^64R7!%Epbfd%!+CrWhC9#$dsn{~W`QCr-%B!fl87vj?i(5~+s8vTzT zgbERB;wCH0{hJ{laKy7LQV?-vhomR=SvxO6myv zIyMCNIu`AU2S_J!PWV7R^7HE=wwfD5THmCBLV?~ROnCcxV??#EyX2>+bxd?uk`4hO z0ozbPo0TYT{sU6c4jX&C%4fbFFA^ETbgG4#^5OFi(z9Q@KAFiY&JmttsvmGU#mWv- zsIA6qGRCpOIQ+Qp>v!#lfp{M<6#uh%;iXjX1Br>?* z{G~m75&8h^44!NH4}fZ|3}L$1-)4Y?$VmZ2p4Cac2wL02lDR|lYqT`97&%w!2K*tC zY6kNT(3%dV0aATTO`g8HHh1aia=1XJgRyaDcY&8t0H$1qS12rcj?;tDMVfLRJAwJ? z*7g4#bA#<#d?cJJ!g5+XpJ#<0{P_?^owHW^3d?1mr-z(a#7g|?U-&uqIX>lVlz-!P z)Xi&2Xmh1J$*_JE_9%^xe%a6=>uPao`?5P}-`%-q;2mRx!{*-9W43O2#S;c^r#`d2fJJK;!|-(9b* zk$-%_c~93>J!7amuU2D1U(cW-I5!1Bk39e`Q#e$UN3mr+e#y=+6y`R`n*1USP&qQv zdZP$yQSE=VT|Y z=36c~?w`h3$$hz&YP?h5%KAd9D93O@8JOkr{8o5d-b~^8>?QjFoog(ded1{&oHTxL zVv;*IG8Yxnv8ifTWAh+6329^{&nWV5k^UmKADd~HPBoYKJUhw;{$c}lxuSKwYafU) z_x5|Dtfdv4c3e-%JUtMNWDT-k(%O%X_JFnz$2jG%V%BnI#J1kw%iv+Y>3eQLFd}~S zmhqZ@g7KHkth}YI@z=}LX%p1sSes^)uXlQ8@3M=tq||EfJe@YYFLB1>5+vlMNtLVu z>Y=!A|GkGmOhcz0gnChevP8e21l?b<3d$j@VpsY!8_hhRqUmr(ua6yeTfaYNsL}?c z7Sc{J%r%TIug|fTA&O@>!RrsV;Cy$k9I>`AWDgucai5j5pLjiMe=mMfURTmRlZNym zlX=%PbfTAvQ+_}9_7`6XcZ@sOm5sYzk!19EO;G{b<$h;^Lm3E!Nfumc9_;n^T%lI` z4h9_*j5|qS9nWVv?T1mRgaieJ_Qp$dGbZD_M3RR)EuM#1Y3|uzWnEbjOUxnmdY$bIWr; zuqLxHhIcNSnRa&7O{!cjQGYNqxTun^ZgeMPA+u=!ne4xhmDt(s*7QpnMe;g>aqkfk zTw5O;Nc>6|sV_gRU8llt_K{*ofF{hN?(890gJ~#Dboe3`J|>=?JtY+N=UV1>3y#8` z1M^^_zWd|J&=P4qXWOPo;BCk4E(LelFr0Ntc&%jZInR%0(%l3+m1O_n=Er!wRPf?d zmYxUE53ZQ3p5Gf>|CS&R#2r7+(g7l_Jp%;}{Fm6uI-Rp+XaYEcr2%#I=ZPLa@_=tv zYXrd4xciCh-@r2%3QPxbG^lC`U}O317GDA2UrpLSB0@<8#$8A~;Yy5M2$Byphk&T~ z_!t|&#`xL0|Bj7;(^G1t&nSHxK=~9<3HIhxz68L=W*l@6?B@9~(>r&t`ZP(%^wr)& z4}m!9&dp51az%iR9a3^SD7HV$@gBAjtNp&lw*mM-Frex$8qR{v3QJpww110#PGbA# zSt^kCzF}jsKv`~n$da+80@#?p#?MnK50J&z2asgPA@!gBJ|xKEiLY`kHGwAbDyhsj zf0-mq0gIvCw;eh8HKF*IZGh?jvh9cDe-q{ZzqPIQA+w%h)a$3AuC(7&4hLy>1Y3*p z>f@z|`P>mq1+WJ73(v3q-hA^z??6rKIkt$D*7)KJ!Ld(V|9C%qmgn>Bj`SXb@xFPF z?Z$v|{tuer$fyZ#E6;ORkRYS@)?olEBlZ;c36YS#wY(<2f{!c zq#r>a{F+LIiV{y5rP)6|0}B0Kd?9oszk3=Bhm5U?a{oN==SNzxS5v)BR9q4K3TH>| z{tR>8#Q<4@aL7^p|%+WXT-lkv3|6wewisnQF48Jr)}Gl0X}~c=8J=jqx?`&X5qQ{3LUq>C54X*!6&AS zJ%&^pst~cw9Y~51bGHuleOyae=dOqS2@0P1I_AfR>+lhO>KwSVT?dBZ8855M*WY`N zmDxG3S`h_r_90i(Sq>5GF#mYqw-3lnw&z7IHyNbY`!qe!MAX;G@2+1*J8t*Nb?n?HrX!U&atU$aPxQcroM3(Kbo;&QZql0<3#~Sz zQM-C?gOuAJ&4~*kx<;#bzfLWdgS_dnKofCGVG+$~O-Ka=$*!#a3xuy^>#lK)8)evX3q!nkg*Q)-e>{rYbQ{^D1j zd*jL?_fA;;Q6PSu@+~kfRw?ukulRKo@d_Co>B_J=-v6`=N-*yARlh$f^e4-1TQ}|1z1^VBEPV=xNEr2pgXuo~aTuzhmDUkLE$nZ5wyF0(59`NyA=`B(J*#EpMN z?+u~?1LH|13KLu+4#(ICypnqe%KZb_?r((TD Z=~SzbR=O1*I1czvQBL(@-h~@}{|h{@=7<0Q diff --git a/docs/tutorials/microsoft365/getting-started-m365.md b/docs/tutorials/microsoft365/getting-started-m365.md index bf9d6b0664..f94707d86b 100644 --- a/docs/tutorials/microsoft365/getting-started-m365.md +++ b/docs/tutorials/microsoft365/getting-started-m365.md @@ -4,9 +4,9 @@ Set up your M365 account to enable security scanning using Prowler Cloud/App. ## Requirements -To configure your M365 account, you’ll need: +To configure your M365 account, you'll need: -1. Obtain your `Default Domain` from the Entra ID portal. +1. Obtain a domain from the Entra ID portal. 2. Access Prowler Cloud/App and add a new cloud provider `Microsoft 365`. @@ -18,8 +18,6 @@ To configure your M365 account, you’ll need: 3.3 Assign the required roles to your user. - 3.4 Retrieve your encrypted password. - 4. Add the credentials to Prowler Cloud/App. ## Step 1: Obtain your Domain @@ -32,9 +30,7 @@ Go to the Entra ID portal, then you can search for `Domain` or go to Identity > ![Custom Domain Names](./img/custom-domain-names.png) -Once you are there just look for the `Default Domain` this should be something similar to `YourCompany.onmicrosoft.com`. To ensure that you are picking the correct domain just click on it and verify that the type is `Initial` and you can't delete it. - -![Search Default Domain](./img/search-default-domain.png) +Once you are there just select the domain you want to use. --- @@ -78,11 +74,11 @@ A Service Principal is required to grant Prowler the necessary privileges. ![New Registration](./img/new-registration.png) -4. Go to `Certificates & secrets` > `+ New client secret` +4. Go to `Certificates & secrets` > `Client secrets` > `+ New client secret` ![Certificate & Secrets nav](./img/certificates-and-secrets.png) -5. Fill in the required fields and click `Add`, then copy the generated value (that value will be `AZURE_CLIENT_SECRET`) +5. Fill in the required fields and click `Add`, then copy the generated `value` (that value will be `AZURE_CLIENT_SECRET`) ![New Client Secret](./img/new-client-secret.png) @@ -102,9 +98,9 @@ Assign the following Microsoft Graph permissions: - `Directory.Read.All`: Required for all services. - `Policy.Read.All`: Required for all services. -- `User.Read` (IMPORTANT: this is set as **delegated**): Required for the sign-in. -- `Sites.Read.All`: Required for SharePoint service. - `SharePointTenantSettings.Read.All`: Required for SharePoint service. +- `AuditLog.Read.All`: Required for Entra service. +- `User.Read` (IMPORTANT: this is set as **delegated**): Required for the sign-in. Follow these steps to assign the permissions: @@ -120,8 +116,8 @@ Follow these steps to assign the permissions: - `Directory.Read.All` - `Policy.Read.All` - - `Sites.Read.All` - `SharePointTenantSettings.Read.All` + - `AuditLog.Read.All`: Required for Entra service. ![Permission Screenshots](./img/directory-permission.png) @@ -174,25 +170,34 @@ Follow these steps to assign the role: --- -### Get your encrypted password - -For this step you will need to use PowerShell, here you will have to create your Encrypted Password based on the password of the User that you are going to use. For more information about how to generate this Password go [here](../../getting-started/requirements.md#service-principal-and-user-credentials-authentication-recommended) and follow the steps needed to obtain `M365_PASSWORD`. - ---- - ## Step 4: Add credentials to Prowler Cloud/App 1. Go to your App Registration overview and copy the `Client ID` and `Tenant ID` ![App Overview](./img/app-overview.png) +???+ warning + For Prowler Cloud encrypted password is still needed (when we update Prowler Cloud and regular password is accepted this warning will be deleted), so the password that you paste in the next step should be generated following this steps: + + - UNIX: Open a PowerShell cmd with a [supported version](../../getting-started/requirements.md#supported-powershell-versions) and then run the following command: + + ```console + $securePassword = ConvertTo-SecureString "examplepassword" -AsPlainText -Force + $encryptedPassword = $securePassword | ConvertFrom-SecureString + Write-Output $encryptedPassword + 6500780061006d0070006c006500700061007300730077006f0072006400 + ``` + + - Windows: Install WSL using `wsl --install -d Ubuntu-22.04`, then open the Ubuntu terminal, install powershell and run the same command above. + + 2. Go to Prowler Cloud/App and paste: - `Client ID` - `Tenant ID` - `AZURE_CLIENT_SECRET` from earlier - - `M365_USER` your user using the default domain, more info [here](../../getting-started/requirements.md#service-principal-and-user-credentials-authentication-recommended) - - `M365_PASSWORD` generated before + - `M365_USER` the user using the correct assigned domain, more info [here](../../getting-started/requirements.md#service-principal-and-user-credentials-authentication-recommended) + - `M365_PASSWORD` the password of the user ![Prowler Cloud M365 Credentials](./img/m365-credentials.png) diff --git a/docs/tutorials/microsoft365/img/m365-credentials.png b/docs/tutorials/microsoft365/img/m365-credentials.png index 9c06343ce2f23e3dde7a3b13dce072acb804c799..87191751a8d5187c5d6a4be97a01c04c073fe0ef 100644 GIT binary patch literal 122221 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 z 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%0A>tGJ;%8(F?4=Uu0o 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 literal 355105 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 z zOik3!cQEy2BKXlvZz2vElj2qCIKx$|1kuADsXmLdwLqTL@AwVW?finKZ2f_qGh z;_K- zmK0~Mg-)$U5+XKdZJ>IRF1Fozw`k8Njdzz#@rn!ITO2c;T~k=)yxI`FnFjD{?@?T( zbny>XLSENVeh*MZ^pgy~MbISoNG{E@%dZET1h#g_88Eg6B8jal?5mO?6AO7se=dzF z#^Bf-clbxZ+Q9J4apUMY3-T5_N#i`ea>}|sSTq7GU7`W?J#_x-?!X8`KnaogUaVH7 zJm-ry6TFZ1@n9@qBjp~~qNY1;J71a#Qu_X0rh&1%XBBtWkF@vurZg_fm|qmmi8E+v z%HJHh0dr9rjtm3bAn+BbbkK%3c;UYYmlN6ZMRwI+UjoNqcIwZ&slKQ3xebe}*dhP(}O- ze>0Xj&Au=nss~Xlvl$Wq07@*Od5dxDNu5@lG~uht@D<)Eh#*S1{%(YzNwS^8(U^{v zCSfE5&^=kaC)0UeQm}&1-rG|mj+k@F@T76JX72lAEU%-CKiyiw+ySaK3lF;^EQ0k5&m!zY z+DzWu@_<)4I;gXl2inlSu{t!DEmpBg_sOg8lzK05Wqx-@&e`r+m<#BI!w7_Tk0w9m zshtRnA6v4^#T1ghDWniY@z`5&LNt$f)cv!Y?KRzVK+_Heare50mr+$J6)&`mXn+zJ zvjg#&^W79_O7$F*F1=81GK;jf=o&!jcBUHNDc{D(_N`tqs5CbABIvfkic{2vPVRMwQ5yrp^+F^E|Gu)ImiR;VS=i1}YE z@8JAnt2!YxxYA~3o28Cm5&=oU79CFjq|p!K?LWfXIjiq8jJDzSH#a%rN^dnLJ~3gW z#!ilvwPPSnt2uDaDRjGLp*LJLeFVZ?nQyW$=Thun>!V z;}l3O3cFoJBXz~h)^;d@Y9eSc$OG^sJ2XF%yJEJX1N6%!oDT1l`pHR$%y>u*ugpIS z3N96-i&VRf6l#O~A9wDVs6i4H^iTfBry8(ncCc@de@cT=E(m|$!9*+v*T+iqd@ zEALgX^}27LzHYlek*0uv%kdJj1+ca}i@+mM2MoCort)^b0H8B4Q>$}r^UfP?y5Y+g z1nu%EZj0`dat9d~HfpuP&lsf;XQa4hWDROL1V3cW8p@ZsB6@Qpbo1H#^csZT|?oQR?7> z^p<4lm(LAa11ND@Tsr1Jg%`7Jg#0TBdL97fj;XKx{fx&8a! zt;k{c@8e{>iQi*{`%s%^79C8B8}TmP+{a(k|8mrH!G|%=`7GIgh%|>lJnh*cKfBGT zh9_2UQdMHD1Ia7XGWADK$8M!ww((A4As+lf2Ml*sjM@sq&Vz|;S`Ef;&CAr`A77#w z1SE?-V$%>uo8kuhtifJ#-+9qK=JoKSRkhCCIz^xTRVuzR_+4G==#^&bRsKoz1qdu?gI%3uS}m+DxW>LX@hdf(Zwn|^mGFpswX9?T(n z{9$V!JFlO50aNs!vj7I2$?aA`9A3aHbF2Es_9Zq@i%t@Uo1 z4{yxW$b6)flUB2tsD5HKvBD2mOeYHMd|RkFKYsf7DhF^LTa83G_r){O2Qrh09}dSG zGz7ecrPp$$#Asl~REwMU6h3$imfAy~Q$=dc43xcLx9A%>Uh1H;;t{(w z3Ck?En`HNY=JW9Soubcrw){ypI{l9{pfj>lqx9nRfOxMZQrLMG%<`HLbL4%>?t2_h zz>jcHjhb{h+}aU~H8u589l(-N00Dufc>X~#fi}f^yRyObqB}fKPHzEgbotx0%xVwL zFxPPTBcxnsy|?+Uo+dHfS!OdEx0jS#Ofv%tn0p%qSo8Z!uvj$imG6QWK~NwbX|#H> zH8V)`aaRm+S z^Yf!UCePl7H8y#*otC@ySbIj#+A06kEunhg9@^x;$%d0vG~YP6%~@VUe&5k)Wj@0& z?T=W+ej>?Up>X=6l??tkO;hUn2^j=$-pfLuZ4{hcTkit67cMTUj+?Sm=90J9?G>~4FX1W0(as1M<~LizLcpnDm&qj>xF_!Yb8V)bUps;pSppW5jq0}BAO}96>KUB5=*e1)(lIOZO+k4FdXg`% zx-cJ&4X6_#z`DrJ@lTp|wLb6Ot>LuUZ+y}YH>q8kLam#q@sUEtEl(vM^C!(4 zsV+W%{}KcIw^e_GAJEYimb3nQGZl%gXc*)$F^rneYKyCkTd&SF)1Zo!NWJAZIsC$p zE>|`;pM$b013cLS0*etTML3+6rqbv_j1+S5QMBsxua6R4ZUN3|b})c&nWYL~O(+F@ zG(_zHjfF@d(cFud++Iuc47#O3)-&}_X3xJxJQk~!EmF^B?FhqZGqwzrMtMx&IVsjI zV!&LP{LSz^C@zN=pJazLJ>)4fNpB52#83X@M0U@Kp?-oT9$WGQlaGh%Vd*x`f3i8; zEgB)>ane&fCrY7Jr?ondIA9xS=kRFIQ=)D@Q!6mnBwzy=ZQrr1{;pNZ5k3dc+m&=9?ltWF`tVBk?tCWLK zgSrv2;eU}-)e$rf$X+^_ZvjeWvKNuWdkPSfokJ7-+xPrx)Gm899W%)H@*vvk)kiR{rGj>H@3hX0Me%dFb4$mhWdEdi*3R7<(X|xUQJtLHZny1bNL^| zLZHB)Q*-98ZXCC>b!S6_K5OBvbl`DqlU%y6?<9CR?OxH?Sfrk^$eyZ4HF}(n2zw4U zN%w3$qW7g2Dq!vkX9ds`z{7sU*BWDVKQ<7%2V{ z;YK2M$3x~Cn~Es^)_Y-$&VE0(bt{{RG@aB%tfCJd5)%wUf%c79IKhamsklQihihw- za}&lr9ZiJte)pc~e|oCVECx^e(i6|6FR`X4=My~F!3o{BM91Xr7zXJKspE>Dy7~e~ zfLtcG6xJqS`TFVDrTL~W0Ky++)EtRzPm92WT$mY2BBWH6EM}SoUuJvP_l9Ft9T)LH zuJlvn^W}#%*E-kN7i^CEJR{a|NU*&kzG9CPg&NvO+j%@zp2px2Q@@l0oaaG2*t+HU zy+mttXI4+l|bv_;JyPw~;~Fg%B^C^O&DgeQL(fiPn4&3en4 zvBo$UJPrEYP5?&rzC;|MI!f4k8(t=bR-o?OpRG9jie7ey^~PjqM$;(A6hnr7=Y2-@ z;KBRoUB<4GGMQLvag;z2UAA}HXs^UBFyF+xOdZ1>zeqeb7F!;Yh&=(M%RxN7VUAJ* z(P)vjS~XXsk>?}Lb*wEU+`@E;*4-PR7R=TD6f4Aly%0FraXZj5O9L=JCzMgkkX!X? z)%l9`sF`n<9QN2~^Vo>rJ33N;=s>yGd^N{((BmU0d>AM>$+kLC>(>f zeEq0S@vEuVCN#NvAN?hT+UM}?{Bg@Po}*8LHTIv>>hc4D5GzamalCQ~`GqCFY;pEO zCto4U_NTR;>w>$p6|LH$&{k-g67X-~PV$wymSC+4Ta4m1!JSKH-6I#QJ?ezaMVlW6PMeaPy%7k zL7}40xc&M*0aA8eh%N4QABB8k^O_TPBJ$g>_qsNt&fchGR!g`|0#fXO7GaEEB*o41 z@GHGZfn$YnONS>sGtEmXBs#=*Y!6<4_q8Wq@fmnrEKEv`1QW2#ii+^6ySEj3@Eb9# z3-VhS%9D^gwoh55G4VrlH{ZO>QDlEtx_Tf4cK)2i{Ur}NdI*rZQApz}Boc)^F^U$# z>=fa&O=_~0AlUWX#y$65qQL6x0=hk!mS!|Eco*uITl3X#f~{v8*R?;D)X5K|5)Yjx za_-Kv%5I$yR)Hm(K0e*$t6QEO#0R2hj9XG@iAdZSfRxInNL&w_^y`KV!1r&=T+lJ5 zOq}&LbcQ`j!VGivO;K8ThOsfYY;vfhuS+86vOCxu<0&4AD-nbcLN&*OAs&04c>=_Z zo0CVM3T2(mWS^GUc=exqM$j5=3wqy5H=3CA>yYE}lYWM`-3WJiW7K2vnBRrj?ckuq zV+`CCjQ2ABR3j)0g@0m!X59+_ChF zAcdK%Yh=#Ghjm_lnA3QcE}>Y2569a9txRSPRGgb zcMU?F7RRvaut?3CKJ*oq@ezZel!*?hGA;L{s)>;pB7X@#57wn9EDNT~V(vCoP5` zUD|nA$bRUvN&A?4B;#sRZlpjbbZabkY1v|D);Zu31%EZ;f<7#c&mB1suO{~PYX8Zo z#Xy8^z3sJor$?og7PXhNpV{!szPrclu}-^!8;35)F#j$MIpDiLyN|WMBL7!bK0rcu zIXeD0To*M5BY#U3en1%sF${ahlj@3nFnf9Qc7J1Z)frnB5k`YL6#-71ksXDY9vPja zFG~uVPtewk~0fAx_BLm9#&ZIkjZ(PO1z*>^@(HF-Y z=YFRk8qdq{%-mr-{He}}Eh)7?UriY>E;Q?N*(X!A6<;6W3%d@}>kVjZ`s#wg>BpkJ zsJjFz*{Ho9vgS8IyCXSfCM3Nn|3H`enX7(9(ZmuQDV%oV9Jb=djlQm%o&e>ch-^lS zFzUa3*jri9+Io9IRrCMX(;?hU2`b^{{d$Br`HqJOtu;=fw-0BhZ$1b%T+#wXw68Ea z4bcI*)sR1wJGSC$?MTSxhk#5B6!HsvFJW9nkBh^=dv5X*qu$x+P1YqJECBmbfc*qy zbwK=oV^Ye!*O?IvNVuXGH|FYTQV*nS>THc>6fDM?^lJiq0+pqF65NvY{__jQ1mmI} zGr|CfJchx)V{p~s;Ni9w3rG5IKov$30_u*p3Z9t~*+OC3(Tp(Sly;l7GnLkMrq(Ry z3H*unvm?d~@XQQPE;AK{U)jx|)s`Pu9Fvm@Ai}fw&~Ulpk}7>7hCL>S-ZbzLLyv1k zh53n|4A*X4c@n<1EQJ{r2=P!EFPu#$r!XG?1-ee-H^nqj#7|pqsa@@4zC&BF20#cx z^`1mxQeY@v0Hb>$>pKnPaB5Ob~sC;l})CIdNQc6a7n2ds(Ot*-@%DTf?HA?Z#08SNayH`~!BnDJ>1#O!aGM)m6IpB&ZMJ+$ zb}0_Qz<7~fl3cbH2kk(JLBj|)s*3H|+yk|WAKJx!yv~m|4hw+pknSgqJ2W|k!wf#wO4Ahm`35^ccToMsPO5r^*Rs2BdE;V|SzChMk1}<_rStfJCABJ0>nK&-ZlS3__ls#*Hia5XziL(}CqGm=w zI3|W&(a1&DPxHx58F#hY;}d9l+KLRbuK3`~z=M_mVc{SmeFL9!m$*PkEHex}HZu~O z1~qBGgL)}kifPdx1DndUIv^$5vrt= z50yRxA{d{Ji$bt;eqq4{BCGjSxmWUwm>RwSNP|S2&l>qlpI8kdMbQu#Ys3d~H=pE)zlj!JJ59Q3CnJdZ&lMrLUy*sXwut{;k(p=B zK>k=-W@9=zsm_ZAu^bpjf^x}-xXk%muYj3oG z5CK6ld?TZo5>bp6jQfadkix?mQtdb5A7EpB0WeXyk5ml zZaZ3qyj*MF{@k$VTRL_J`I@x|(gNK=#I zq8Uy>sr3`RQ|>rS9eEQF)%+Zh9ssQ2_k7)|xm>7%!nDk<`hw|gWh=nh1tP7cHQmbQ zb?!_$$Mq#GJGX9Q3%=CIQ_aPG-SshcsWV(|Fhe5E{fuM?(Ds|@=S2J-L%D?KK%J<_ zT@n#{F3z8QU;7VbA*x)vlw`SIZ?fSHf;O_kfRm?gpokWE9_U3e-9sr(F=KS=J?=S} zFKi}EgF~y^8=&6gJgPSjK^IKquSf<(?nh2JY3VppMggyD)%FtaXM|k)nY(*(F zV>gqYosoFKprOo*Eh0asl8b*fI$khOd0~OVq+6dZAv5;fd?*tkSIM71wbB9O-fzY! zzN(VVM2f1Dnsu~ZG_cnYT)w5S3NGdOl7&PSy6?(dAwRz7Z`xPCdhZ$ljc~c`EzF6| zIuD4%salTOZ&T=ZtG>m=gjnkd$$DQKAZoIj?6Gc585LV#u^|4tIgwNt!$*-+SOC=$ z?%!Vk$^_C>4BMyJ8m@~p1+@nnmg;P!n<%$mIBD?ppCoF+r#`wa5W|^(hy9U;ENf9_ z>obhzX3NViz)KQTnvEnQmoNDV;*abd7~2qWTVH$mzVNH3%zT%BvhL5P{Ujorb?3Hw z&tngrHBY0K8}AO#)t4iq=tFkD$z6zfG^)fR;)=No;~)|NJ6z$*8j+K2H4ajPs>65| zo%t5Hvz7;Sn+c`>;Uy1pSCythp4BR)!p7&zBT*|bd{Z}7$$x0h^>dJ_aBcYEi~ z0f31?Sa-H7WL`8qu%>t1-&VDiC}j$yLEu|xAh6yzVpw+l z(2npb&L1A5HUGpU^en&5rN2HJ@axa{su;gKdrzKccD65+-r8Y-?mlxMABG`7niO5`GJ-cp1&WF5BA>+MDTM54_xOKY`w;Qkpp8u%y( zG@>ykys05{8MiPNa&eq+D2&&^o-7}>2%_v6&1q5%MCl8n2sJ4ZY~HA){4^(1I(Any zwfs(DgKCYN!{ray(O7y-@~K8wmJ(<^83pkWzw1`v`e%uaYbvK&mzrt9=>b1Y*N)$J zzpkq+RKEb{Emt#t4`^T>Cm4*0`T}`2p*YeMj5|=duJ#An$eE^wpU|2xh9@|t8GY;L zCVBzH#_{Z4=z$2!6)u5z`p}|R@;9cFVJN8MN4=hKoWQ8TI8p9JOd*f0_j9stAAU4v z){kF+!SC_tW-2LQtLo#H@-N z1KtDkG|@f#Gj(SqnNndu5IYRq0wWsO|Cv;9?~}^dQM2`bya0X+!H1R-^>w2=MSzAv zf}FR>KOlN^?I;T286qcQ?j0R>^=Y)$yz0$}`bZ@TXRbTT@xD3fL}4=s9Z>@YLM+Ox zkBJz^k63&L6)goFJO^`LSU%0VPZtswQzEL^Ju~76r4LYHLzB| zBSgKcv`kbW6Vnohy0-(1O5_g*quo7;;A+yuH&n^GROwwEfWgUUr_?n%3c6^d#MZC6 zzlAU>j>RhFv0n7-m=tbygMZin#@J@}D4}Y#2Fm5-Nq(9P6ZQhC?zgr!Ojf@J3`y?$JInysyzV`)r`(ny7BF?85F&X2^h+@t1sTHlFN1 z$J*$;H}P(&%F0qBn9j1@WcfBjN?{YoCd*&Kb4C#JS+VuirnvzNxErv5{~$&^T zW9xu%BQ#ZPB0wP;=qUb#L&v4q!`YDI99cP1uc;$8|9x;cv&Y-|`2TVCmqB%PUDGJc z#@!u)26uu4cXti0A-KD5Tmr$}2~KeL9Y`R!yF-F|a6OCreX72Cuj_ukI(2?gY<^^C z%{Axj(WAQuOMxinIXl4^i3%V9;WGGaxa{f`^hN+f7E2UhXf9?v5lm-B>9z(BlLCzO zIsi5HvMwRJ^?@MJ$9)Ij&JV-~P3PGSSb>NAaLI4w#Qht%cH+ncLcWj+F-W{Q14f?6 z%K*3{QQG8b18|L~Vo@4+F~vacH7ljzUfEI`A2#I_%R#khqn_s0=3R}8=~C3MuXxP) zmDH8j$|~b0cr?q~>aP0}2BreK+dsNbo<_7t`sL$#%+x z^Z2*?8x!hv;q6*|V&{x!mBq49?>gOis)i?^FNBZ0;3tsaV#J|yO^jsTY!bNtz;ln#5I@QYqOTgw>t_&1O#GZUtBxWnSHrLIr#0{&s*_g>irRVp>tGvDOw zXL-C2{0?|ck}GWCc-kFT8^PE=;uHv24GPYab|%`dmP6TpUKHN_5pMDy$r1{W#vQBF zDu1o#pTvBh)#*J0q z5?^>c%=KKIgYV08;Ezq%1)R{XAL4NUc3VEYsE_T^a*~aILipm%ho19~itvOQkm^0? zY|H=SbKuvYc(71`XagG4kDNW!JA+gnOCFC*)Lc77Ufp{oT2Jpopd=g=v@bOto2~iT zpm;SYMLbB8{p8)c35=XNn|OIKq3gw8<#?F&JeaaGq~xm2LF#X+BiR+-6f z#YS6jU7GP)E(LIqC1Z&*JRFUsCkv&VTk`;dOFf8c7WHKEb=6A8QSchQjJ<%c0=M;- zSM2`~g-O}TRnk!TBA2v_i~-WOL%o{=+R=Tb-`~)9SO$uR!bf5WRS>&KMp7?$4bM9# zFF191eTN;&=)<-NmY^vb)||maFHk7mnSu#w9?NXf|IOf1RXwipRz!bYIB1RB*X6dmd7n3nwDN@ zbcOj08Z&NH98992eGbr}3+N7u)~5D7rT3+uh&bG6JMs>KgOd4@ja~Tl^ulnEt{3aA zQs%GP%LYp}`oK*_Wg$vJ+Jb*uMZcl>t-OkD@#3)ej zbx9tT#6hDFwujN}Mx48P8+@pR%jI)=)wgo^jETRts#m$zpVwtbPNzc9Fh+o#MF=s2 z>Jo+g783pYN`}a)Kr^G)BElYpk!>*5Lj_A=#q#1c^?-O=_yIwS2QuP^XOvwP%!fG! zGPj3s>$O7mYxVl`TLJ|Lfay<^VC)E&?r%s%6JT7F(KOu;;2h`}I!{X7QXB1robA>fYS{fx%@pAe`+6jOqsq z-r!N+q2M^{-Uo0KZ#3Yqo1WNAn(_N5V0nxKn5gFgvJe066ClFEehY)vcgQYb;Z=#s z5g>rA)zu59iodqbsf7s6*EvBNo9B$*tD!R{PY|}OVYO?Fdf-Ih*IrSW;G@c_f#sOb zB)ss>W&j482!fFcoem45jt|l2SdAPhRuzr0sx43c%F^1jidO*TSOy^P8DQ*9R@Z25 zLvs5SsoC@i2^ri}se)AJ7vU6o!wBUZ4~Oje@wyMq_{i_y-Mi{Qp=0D1zqaHqdR&&h z7$@$p_(-a243|`ZAcBHS1XNN59J+BecOKN!wYrfV+&iG}R7_|JggZ2v?*_EH-L+?$ z*KEu`%v4+3%VN+MAT&NL4)bM0fPPdtVD$<=DWtKP0+dFY`pJNMe`W9(S5uIerA`)* z7YPPFtJ|vc`NpR6+BQ=>i6qAv+s(q5kPlDQKd(BLJiub}-?Ft=hf&EBjF)(Ko>zGv1s)It1lG_U>z=x@>}B@EMScQ#|lv^A+x02GGXU9>s%V?M}mFYkVK#)UMb z+bpFYaCFz&o#PHA2~-mE{7*$%;Yw+^)MH)1j@nSLq}J|pOk4NfeE;I=hZ)@A?=Sur z+%R8N!8fD*H)8PxhNrS;%#(NsP z=YE!-cOTyk8X<-ncn?pu*O7m5-?U9))l1aMEu3$uv_0+v`{vp#A~${V*S#@OQ^!#(I_TD_`5w_@!HpHVnT(x}IBz>HYTnmDh5H*de#8lUEQxb2?6 z^dSP10c(-r2bU!^bAu4;^X)HyeWwx&zRD@Kh>Urw|x z1PZT|ayjGfpN4xpg;kh|+q^u|OoJF_v!=SAWYFx({(n80|Ipj5dB9n6V)=#X-zh_| zRM0*JkTC%S>)jlfiytCcqDr4sWyGPX4C#n5aR3geYCXBZ+h|Ek*VE)$7IL^7lb2Wj zIgV-nxwY@|d5I)RRh00d=cN`1RPw=&-&QPu2Rd$TI1Qaa!*hd;>j#IGdY-omtAKuJ z&17{cCG_E%j7r;AM6dH>Y@g6WxGKee9I}I&ecV%@=oMA+y4V}MNnZN#L zgdhRWQ;p_q3xn><0)Jb2=Pg*9$8_g+R=;YaDjW=D0nSIOQZE%5Z-k}m{Q?eJEy<(7 z9pl7u%jt|8@L<_d;QohtQy)Pm=ac)x#I1QX$MRBeVyIt!zu1sgW+k^=OJW0VgB0T9 zw^&*KIZ&D@)WWDb*nXU9TgBybk>u_H@&OtFQMr~3=>NVRA%Orq-4I!E*7`4JgSaRg z?t-r;`Eggn{KpC2tf@O5#S(X(v(M2Ngd3TdqFGEr7<)UmwD;P45v_^`K9x-$&q*mH zp?l52-+O(NmiD=bkP1kArK@eF}cX#D%@1j4@EFaKc_%Wa()tYXjv(+4s zhzI?M+L|tSvPGM>UMNbMwk4r`U*`3J-o$?>JI!6I(PW&(e*nl>`d+Ao?qO;7g^VQ{ z7q!-j0tg8TS4NkZs4D&Q#&cd6CQ%jA*B7GxR%Od#4^gNQP^PM9Oi5|tkgP7=R@2yq zGyk|{au2wFe(K=);m{2julxRHaM*HO9SMzmvIEK)Tn2SXpYyF0r95{S-}LuDs#igq zU0C4WUfpy!kLEuL@0HhH!Ogn?ynnO2&{&`@Rg=LxKDX0Rd#3+121bwgB}CQ>2QMAk zb(aHH1>a%p%R!FRz-e15eMi(IT}GCU%?5=ZvZ@hH!EzKPmlXNl_$F*Hne33{EOE^D z7xX4b*^m!uEp&g$HBIdeYj}T`808_t87yWx0up8@zsn7uXact8_TTk?4$Iv;)+$cQ zCV*?t=kk`peyMY~I%vK_Jm~g(Ya$`!F!H9TxOx>~GTVE&siLp*)71r+ORL4WNGKsK z;L>q>81wJTW;Yerm}B0z253USQC+O@P%=~Ck2C9bx+XD{*oQp@dGql5^Gl5C#!TJl zYc`TQ1|0H-0)U|cyg^}-NZW%rk6Kc)k$aPc>bcN(uT`{iX`V<|NFmaBSZcpYwh|0N z+;l}Uou{^5vsZM5YXRVka@*X}lE~`57$7g$yDxrv4M>_@DP5O+&AzENrC(t;&N{OGRv!WuPC*Do@Dv|VWEzKPRw?DA>;V2f7C?Z-DZV? zR=%EE27&FScNpSeO3piziK$u6ORm~j>{qrfs0o}dc8^n0E`6pg8ZaS8a-v?i6QQ8& z7j|DllQ>YOD7XuiP#pa+J`sMc%E7Y#v#ZKt6Ix8{vnI+fagg*>v%AE>Qd?M%a*c4G z_5FxcIFEmr5ZOpNzX1>6Dvjt@$&_HycF1>J7o253MTYa*>h<0(2YMMcz}OVy24yC; z?Vpz8sR^mf*|L-p;hKLvPWfbKZJRW&0IE;5FVH4Zg*zIPQn1NpIw`egrR@F+4j;#$ zqctuV9)&S$ae@@!D7U(-25YX%tH$rf5#i>lGNp7wDZ~|k*rZY|+nCawCgBfu}!v59TTIi0^QHVqK z@l?@=5jre1G~hBC9oTKWY#c;u5xir&uI4Sy8aecnkfsbWMg1@$ z4x&M4&-y(pIIEJ(s4OSXAY5G(VNZa(-NW|-YIn*NEC-NY@U;jahh3(>@5fkzgUIW1 zq+mL6G+1d+)psEz^NIV<^3~1R$n!pr)EIl>AdikflT(}5V4>c={&Sw=2TWgrT4jLY zFT_(Q#U}A>aswh9oT)n7zo(zz0C?x=14|xjD0AxWUC+xCUF`I=!FNm9yv$VAOvTM! zUDUD88-TpPBx!2Wq%cO;Ycwg;E(RvIsou$>?Z4Vtm6+ZtVt(-Asa?70@H}Pk9um}R z8F{kFyZ;Qxn@uhwg*ChM_?lLtl6K1g>&|Oxg;o|5+%=c8Y9|R$1*`S}3^L<->_Bf; zsQZ@f7s92aV0i8*=2ie|4QsY~p&b@*xv6?q=$Fz4ZX|?>Ni|PmDT{JOGVho0HnTbOP<@)q=l6-2pf*-bi9^fq9 zxcfi!1@U28q6Lp?!}$x4RN0Fb@JbQF{29*bt0f?N{~zn=2o>@KzS)PHqYER2SF3?D z&ZkLn)9iqU>o;|q?_2g9=S#4jayZ*~0D5#)0^oTy+^aS|Jj~3!5CN~nkuGz-3Sg8h z>3WEphy`R#KZoZVfm_hOrOzeKp{iW#^L=>0b#<*npGUjfKEMC%SrAZ9X93{`Nbf%rcpKk>Z|*lAVvePF{{)KHe$lbp&LgW??FOar^@Exct)ivV(-*U~PrSYmtx$n(sZR z{iAYoVgo4Xm0^+(F#l=`AbxyZ+dkf1>lbdU8-1OjJJIIBZ)3b)kwA*a_;DcGKK?lN zjHM=nnBBV__iqo}fBotgiW#DATN8yH1eC~m@;H1^fkQOY6IA7Z%wd9!nLczR1;OiJytAl6Nu|UiIKMRd24*E3HX8z7*eQr+lG-e&Rre7^QJbiwQ zxMyc)`GYv{YKxpw_H%A?kp5G^!nNRToJVge=p5`v3_#lHPZ?>wPGlTrUVU<2WS9HX zmW&z&!Z`w-i=Vz2A8T|>0Ec5R{8fGx34wZrW}wY5(M8w87u8wfQB?acjHF~Hn=8)A z+_vyC5~R(Z`#kYGW5%1cBF1Y+jaJXFW~pm(Mq#+WfDA>zau!{P#1Z9*je;AUT*e>; zx0Vr6_mAT);PtrcG5?(MZ!{4AdOhyWvs~SN6O-7nga>Ft)gppLX#eu3DTcc(I#kG; zLdDg_OpoJOXhal;|tN>g`@7r*a!uW(QRNH`sCAdQ^66C(`$DMEwGPrgGx?t7!@v~q{J zKO^o0zU@>QKA`vw4~D}i;pQ6=>hYd}P;OgY%-n4Wu`|gW#eBhg#}D+Z5}p+kfYjK! z{mHL%y-A|J{B#Dpz9|4(>(`YBXgMEe#NV<9j_E`*oGkKt%g{qy7vtA~8P=~|21?YR zt9HGdF7C$Dg*+bn#bV&!xpNaiktmdjJ8+7b`(A*f<5vr4AgTr($QaaNi60$5oC^~) zEIY2YzD9;lRtN~;oO1o6@eFjGfsQo98-D@m-yLbFw?KP67pVX;NOI(|N(E~&++Ae} zrO>nZJl^+_6A3!|5=DYJZa6of#5?uxk=DHR<#tEt z0Z(iiU)mpsw%Flp#SUI?+>H)82nu8<7b@oP-wryBkb!?qI-4!)AD`e`9-<2gr;0<*@1UeSnU0ihMD>c<9;E6l37aGYkvC`ESc{ zed!~;^^{lBbA?U;EVr$?etUCEZXYzFhuC`6F6Jwcb#Ga1H$M7n83x@s>9pCa+A_vc zE_n_O{~Zh<@FgVxOr^JbIEd{}KP%Ol{hY|udcNFu)ob??dL>JM+{2Qk9K81*MZdyx zze>?~OkuoOMRrpvc_sl5%>LZ5?^vqF6Ts{xA3i?;!CB*obNdT*(~TyRjCz!F&j8GJ z=RNqxd;b4lUMm4AUW%b zaWb>DWg5h9$vyaa*;zdj_QzN^3cC^-p;F_=yMS@w_hBE#RbU=O^LezPq z;BV_!#^vbnH{iQX6J(e&ViIR-dST-IWWi_$c2IGEVD%?vY1ip$pezBaQ892%-#ba= zsh|*X!qO-us-DpJG?raH{#5We+u(Q=)r2FQ4GxL@7#_Pxr3f&1#oxGa*#v7axrpX1 zDoMsi)1|(3xdY)Bu;<$o0E*iC-Zvn;Q&Kfdg?+7u$*asf7z6hfAld-tzSXJcW}9`^cx&7`&7}T{I}CQ&gk=JbT5(2|7t|2%VPy&|L;wPmX@~%sjYCuMeuhV-L@06s52T9}jzuFRMR+@G z7agl=(;FR<;xc_O)qo59_bK+;r+o9;!(65A3;*|@SLA>%>39Da%4&4L%4&~|C_Bx! zJQGG^hzu(kH<(?0$lJ1b?Mumpc{m_9mGg}Fw^X6!t|SjJA|DAzOa`>;z^n5y=OIj1 zlnryj7eAf~#6URVjU68hs^i*ataI8xpm}2)MAiQ*U+|&@OMl64E#J+e zeSi0G2iR&FZ_-h@DZ)URKqSR8Q1FR}|H_Yo=Mn=M>xRGCFr*IxTg%|9KzA}ZOeb2W zVSRp5!ip{pRTb?ECjGyw_5TDtK)*&mLvKp-rT&*kC<8pgGd%J&VnuQhg9P}1B;B0Y zUH*`saz;3i$HVCIr|;me&+L;-s#fRDH2%U~$->71Hdx4eaL`A(qLsrdnrW$lt^%h9 z{*ol8(Gs}7R_nw??KE-FBLU3%xwPc$r@91vK1l5UR!sh%{T=kGH4Zu}FdhEKeg}R% zq0T2j_IqB(^9itxw-tvnHMJZE!BYl#FMrbLEI0o0&fUqkH5p~}Yv-5)n~t+d0qz-|npV#kW~LU?F)dI*39$Jb}O|JtJfI!=Cl{gUI*vOYlvh9XOu z_J)@LcCXJb2^ROpA1KW8L;)E)gF!3%<<7CM&%<@jlUR=&lg=Y8264;XFxD&FA)Nd= z1=xM}`hZB2KPMQxxMzru(J!47C;L^mH$l8TcRd)le@F&;KAdm$C#JP}zF<8I&9a$x zINRG6KpEc;|JAy@xSf(vmN&rpHofi`j{#{TeOcJs&n%T3t%Ch@_~a<8GWcuI*^G#do{w&pBDP+ShpiVitmT zy9H_;>Eu(nIMB$2Qm)D0Z}Bxmbcy4hK`Fmq`x8aKab90dM$%T3MCf2J#Xo<*5`ZX? zVF~#7ST!-dLROuGD-6C2r7_82QFV#|_K%`jTb`*g!-xHYro$t(zoBORF=A(2Px*Gv zL)V{ZwQ52lUcPc{TTVPZV2Bsznm)ZPFg*gl_3HL?akdJ{l3%23m1~=OM z);w9{om#X!4R;4*8?!rg<2k9skBR=-Z)04a`6!!b?j=!ZrhMq(0 zj2=g!MAm6(T4R(1#fCChVIuOVL39=-wJv{8xD*016$V6T3N&`pjs1o{$xR65hlPQ$ zGNE@@vXj%{cl`2jaQ|&dfpvxu1OIWIZ7TgfM8M3CSFps*Sh>Wk+bli!TUg5{eGZRV zy9mnPsI;95@0-zIgwbc~0{8xTJ6kJ4fs36nWtOa24N8i83^IZPM433USlXDA(y`@E zB^CWdSt}E)1A>=CmD~E|XBy*f{w|XZKclK`VCOFQ|B;NAyoCt1hP*(#zzn)TrL)TK0D;a z<49|HumvApCj31LA-oYqj1L9jW2+UxA+ zTR#EGyDfHah5z4C-e!4S^1w$98pZT@?P>!#;DHy9WW3WTS1)F+^g7!R(`)#o6z>lJ z`9c+uCr$f-fZr0)*fhwqHO9tOSuZ0w0)Y3R`x_668YJe+BmO`3_y27AUX0gmE@FSR zG~2jHkf+hz;yMLz#a1JsM8d`*y?BjQ>S=&vUkZq|E!1yu@D=27E`&{{H-(PI=0-Mb zb4eM?>yZRP*e|_M#|o0P-$xD&SPrFsIa%wHDIL$YjJtl||7=S{E$t?sLPaF?Tdp6- zzkcu|^GC-GRYd_PjuOC>$B^;jy2~~NRN{uawR-0R3!rhoAG@(QbUeN@Ii)BBFm#}* zp`Xq4N8Z2<$y#yeOcVXnT_9kKiwF-c#+^3}L<$6I$VRoIkqP_#7|5;Hf@UYL4E%~3 zntfZO2PdDzAGWkoXwUY6Z|ASRX@a0Gw*1IdE6{JepyDF`I&RVAwnaRFpyAZh>by;x zW6CC7*=_FbVE4DB>u89>A?}R;ZLv~L;_IQeXUyxc#(CmV)f3Y^f0J7WsN^GMWLyOb@=D}0vI{x;WxnLr zUd_x76gY4TSIeHJvC0GD!BW1zfeqiP$Ku$za@9i-v1VFR*-icM>UXH(Z2Rk!(#-n@ z96Ig{axZj`C9=MbdHAyc2Y=AjpYB+80l+h%aW}f#^iVY(^|WJK&)=W+2ynHU{@hsR zx9Nugcbp<@{(Bnjc8*uI!6`c4JKQt&suup^(f;E&^ud@eFcSJc`@MDxdGlsQl&@SG`AWcs zg24Uf%Ib#dnr?^6;xXH9;cdst?Mt4RItcOh+g{cjp#etNNA$?w7-~>gXE%nwDo$Eu zCVA!^SMsxXg?b(iY~zaq5sy}ZU>~3dv@XWemUp5nt>VFIQ3!dL2qg=nh#R@i9Zw(6 zZL7W16WGJw?zrAP1L%1vXtb*IQg+7kYMMjX*&Wve?~fYB_c~6yQ4$GAYP%d(+r_S* zZnxv2lWW}%wHeimA`gYQ^qcJ(0o@w2Q6Hv! z(yP|u5dHp}hn5s}Bp~i)M6vkx2`)6Or&_Z=hu)5~Qmu;$NIuV_v8OH~-cS;g!2Vwox)`OG$Bry~7gR?@b$uFh|AcYI z@2a{@E_{sfBD~*ai*aIt1w4*5Oi3?cTh|cGAPWipmny>+53Dd=&`;9w{$cC>5x@;u zPTO>)tay}X>eBmYoH}`(Gl!GJUt@HAxSFe8pRmg6&u7l_)Me3O+k*AE>gA{i{>nzR zy|LWj!4!9W^mp>X8azr4f_?Baci<)`?W7p z2^a%(GUeW9w8iX}244JTSkLnH@-t8ZLjD7~`)WUtbqH5n3RlMBYK5YHlpvyjduqP) zy!RX+>q}5X-*B!sSTu83_PgUSy=V~|>UCz%G|OhteKZ8vgfIGP6x^eRwV~H10+Ppi zyoIEW76mnyV+FB+4$glb3QgZIri;W8mwx!Bce>icF6(ZQ!~LE)M~j8yTAR^0Gd~7K;;S-+`WrrGy1AV8V7FO^-G#nv-GLwa)6X6&ApW3n#dzhIea@uAxo^uqK7Mgel?*RZ2tHv_ndA4fQ8yE9cA2TY?-GV>q@s=6Y@%gynM>!`dxkVmc9DnJtDpS+ z{hJ}as(xeyJFGhL3TX&Fx+I5fFA%K1rU#zHw5eL52Y|o0||N7 z!>KG>pGFAhJ-#s;wkHo9RoY}>!mZ>dkpCB43xHkGR&fCPY*w@xX* z&KB(3%^PEc5$n1OSvHb37�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�o3P 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%0D)Q$o|0p1JoT>zn zeXN>#8RD|&1?kdXls?9ovup1AuOFN%%UR5kymb(Dh63E=Y)T^j*$cqm??(=ltC%)h z_jMeX0=UhT>l%*axBr+URCA#-8i;wVJ%wwBBx8q`ySX%KYOZc-A$t-~-jX4jLYiDm{iAm=Xh3*&K8#Dq zYpSTrjC6VGkTI>0~}F^Gb1y_q4!QwVrF0?cE}d8*K1SZfY*sDs0B?6ndmcOq8f&I z=}l;D2(ei{u#h6$xKOJS9`Ai8j8DAb*HSn3`^^RGfZ<(SODQohfcqds+;pD#LlEp?V`LLBz;BYWXuNq7GRF4I8U>FF4+NLyhF9=*~Nhiog(IYFXi^S zYuA-)^pC8$@OgKfDKV}UfCjWLGaQ?`_HvLnmXk&5B8#rUoE9t^om!Xsr^_4)uOXp(#lIigF7S}`?ZGt@ zjiv^fcj$;ZViCpYIvFFT?BdmzA%Tb<$k-lavUOW8e-)a&;@dyq-&?=9r>BpfZndv- z8n11ZmMd&F!1}sgP5fQ7X)%ia<*v1g{>e^7cb5S`2&HYi=E7O89n`;mscX!6s&;sg z4l9>GYw(L5!VVR+=*Wi3I~KfmaO86gAQtfL*;~jw1FpBS6QxoNXgUyTt*gm|u-XSjjV<$j>a_HQX#D^XF&CwV!+lJ6VqJwh5Q|*t z8DFuN42JWmNxK^EqJNY%?1r3<=}W>UE(xpMp&@1r1#3EcvG2!!$a(hOM*Z#K8!rPF z`#Lv(1|+BkB_|mrYF5pB3>P(b2w!KLDKMA`&e1P=FN1}FuY21fBYKGIB`AqM$`kP< zno3rotZKB9d2VziLlNhGGW^!^b6@R#7NM-Ivugq+(as=8)0hE_ZhK%Y=$fe#v@TC* z_nn04ssh>oP27%4ao3!r9o;n+v}7Ke@K@t+ueDU1E!svA2qIq-M32 zm40?rAld|ne#sMVCJ}25k8pM6plSo&pr7h#x1C*bW)4=T3Z75kc@%2}ZoN}oKMm2( zQjypk%f;~7xRm#9wt#{?hRTk6Rl<|Rr0YRd`i%`5NA|sv$E9pk@zo(feENwiuIOeZ z3+wgRpAGEw_uHQ|t((G%$!|#=PqK-ty^1i>Z*;>aAsTzrO~#RTiBz%fQlVMse(=6R z73%d$XPepP%7((lm5T0F+67zFy`SUz-a_a{kt42(^0favO z1n#9x5d^=jmJ<+-lCZP%Rf}^Qvt12I@Yhb^WK&^DYx(hAGx*Tj?R3cEb9QsX?=~iV0ydiC!v-NU1Oe@0r{2hnxKKXB_B1bHiKLu!3@0i?@9tiRKzUjSi zC0C`pv%zjvqKP~Z>E6*9Gt{()8e3Jz%K0e)A0ei0J>k-&|I`>z$OzDezcRx z%8A)hxl@_>xUire8eP2C=#%gW)N-Y-hcJJi6J4VxUc8*lw>`iZyjvk$8}tDuc)@@m zlz_6_C)~rT@T5KY@g4)3oV%9K(;-QWt`o?lu-7E>E` zD}TM4-tyqE9~^+Y&3({+WViX;T_Aq>6dhZ)Z*l_bofF~fbT7pzTHKJ1M@m(ATR8=c zJr|%M|AWn*2yYgR2QXYZaEzAj%g!ry^Dnc_-`=qQUg(Q=>}xCSTK3k0QxnPyE3~l| zwvp4ihL`O*b#>Zjh+rFTi>K~6Ij5!EHCq^S-%7~MV0Rrd-`|!J(m=(9!r!cmiYa02 z<6PFSIgZm^81MCXVbz>XTODHuoaHzMIJ8hbewH>P8qZ{YWG3`Q-Eg_Sa-24n zLHs%=ue7-(j+#j1+S%M7-_1vBGD%B1lI?q(*e&kN&&B12)hYpn+^ zL^0ab)#Xyr1Q1%jJdFbG0mal?UHz7k6UGC2A=wlgwK=oGyHJrrl?zD{lKcq59V&V? zF|X)scd=?C-`{jH@Aza9)~}vVEYkvlrrJ$2`40J1^5pfs=Vz4+u|darnYSMG-sPlu zq#U?a3Qqg!>KXb}ErNVONuk4+si@$zK9h6c{EZ&da_JV&m9aFF_=kS^FD>MBRBnC` zDRblyVwvrtU#cIm*Z8CWQH{WzzgqajRE;z?S(P8gr+BbeY@LLn6l9g9R2^4-6YF@` z?DPGV<3#w4)JBcbAwmysOOxZw)>|3|4vZ2}ImsFJX0s@Gb7igaFd zYCo8-pQ5QLHOp+-DPU(T;Lk4D!&xsLJ`~5k|nX-VM6#x-Z>t33C#nkmp(jDT1Ven-6}Q9P;4c*n+z00A(!^IE~T8Vek??) z6>+Rn41E^H#Vs_r@~kodqvzap(|y9`qH;yO48C5ogW9P zn#RDMeWNOYbj?Z^o!45n41sN&!A|Bh;C}K%pq#S$PKzw_?j^cUmw!{%jwrzD^eKOr zlHX~U513-dlX(#&zgVSU?VqR-2X|59Iz+#lED@Xe!DzyLnZhDhxdQk?a6yxWFFUBa zzd&bf2s^!DQ^T*!ly^l9MQys$^)LvsQ!F;rZvGftWL{N>-++{d%t_lMFH2Ju zi2$5bwkIFh-Zv00)2{d~X!VsS}fZ~b1g>&<=p_J!^cXbTa zEXW8}+LWh1U%%ADV9wvBktxSNb)03`ztO%cPwICVe_<4(H3LVEGDk}9pt0-kx~yJ< z*&f)%dk7G1G->FsY*@Ceo4YPW$n~yUCPL6Sv6@5tFcnP>_q~pTh+s>m+b-QvMt3?4 z++?CR0KS5d+M7&F&X}iu6ADsjBTmKg5Y5rmIRE5&)N86FaqK3A#rM3B&Xm1E@HWB> zmb-nN5i}-s{nd2i>}ao)zG-t#@FU`<*v0$ApkEK3KmB<5tWx)YBKZ_DDlpRuRJ;92 zQrl-M@fD&?Iw0)uVdDTz&59&YyJTj&*BPvIipCz`q`_uPTVGIv+pl`=v6fjIsant@ z#p99T+q8+XK9V|eAM-_Vk)PJt1@JIBQ8|0nPMe9y%BqT@(kM`C5=zFtr6UeR8Ei^ zF~amahHN4D^6>j;rBGCFX~`xy@8}4U32cSX1LkAJ!^}!{hDi%}IKuo}y9}l4o0w#q z_PdgkE(=C#1m#U6w?dd_SOe^CvQHv?n(neuiRoAE->TECJ!nnM#^lY?<$BOBzD@b7 zmE`hLdINfrt&jy==VL-{HZ2tKJ|F``KX=F)`ISjyV)i%g)_5$oc3&b!D?!+a88OqT zl{DG0H8+AjuCC)neOz@Z%eP-ox|Y_2Ja=$Z1N%(6%}w4I&#Im9HRyZ;w&>E>EcMz4 zw!|@aO>7t-VLU|#T(rTBy8#*qr0$xsa-UX$h*K{|8Bvwa`u5v$_-6Vwu+k_pgcPQ? z@xh3~SoK?}ybUOoUsbKoQ_(HlIGJaxCm0#3gD$Hps8MK+DT~%QRVQ-!Cz*f1jOr89 zp9$lcio_|O^Fmn~H27HqwM?yMm6MN*n750?lu<^{h4JM0Elu?Z@Gub#g=_Amq-$?? zgx>I1<1V5F`pBnAP!-zbcBm|O9qFe~m=^Ia0%w8 zY>0|Id9m$5Idqzkl%6Oe)_^Pt?#;>C1!c39Bb1NUEhNPc0w4LM{G63d!xjoFHbDb~ zUg2k|F{RfsC)#AaoVj6qVYk$#_V1pq=;8$xjj9|4>d$u);AQ0X!eIaQuSFCD;}#cr zNssz7x5G3q$?C{^)L%*4>lg>iJFR4ao~Q)sx7B4F{luyVVu~YJZjhztuLNfTE&+f~ zcK5>`jX<|3^Ah))H=reu0HpKovQX|bf_H!7avF3q@>j>}TZEs*TM@}zykk24i}uU= z{-cBWt%o~eboZGkhl)>rJeEv;vH<9f#F%Vq+AvQ~B=LU4hEU)tuk6FfP1lyX1Zj1Q z&Je6@cFg7LxQsyn9sqY81O&PYAT;C^%F3n$jnnPB_S8D_+gCU*es;UksL95kOZ47# zh#@<^l=yZe70_%L!-n5OZUII?y;tB}%aBEj%#+uyXEn0YBnz{)cEo{~xB72t$E{_< z{dVb348uq<47DjgpP!a8FRTn&Z!uC*SX${gBIjs0N(V;b_*&8dg|bk<%0y-_!^k!` z0HlwXT_3=}ebqYkW$aY}r%WigRp4UeW?KvQcvY`B7?W8>iS4;A^R#5n(%-_X_Z7I_ z6A*?xCSIL~IK09#g}TQ`*oMSwJU(^N;#*H6|H(v1WcYHKckME(&a-#Pf84uJ(-KZKMIb<3xOcQ9V!n)vIY8=v#IRh?iavp?f5`fwORPo& z&WUU$`W|ymU%qkg$1Bp+$sd#|$%{z?__L6$(S73VforD=x5D*}#>8Ut39BmD@l32? z=o}?VW~HMP6U7Ts!-Z~a_GU(0uQuqFHSQqyPJH(;etSqtB9J!5gN!5i6Buc~o;sy# z{!AsD4SDi5?3AvmO3|+b@Z+J`!?ye!KAE`2TVQDoUYg$?*+2NrI^Dt*9TkjT-hqV} zO$CVdJmA-olNS4oS9$1qQ;!*y_rPeslUKU3sIZOVjOK=Q_Q_HF*Ogru>x*#g@B%B- zH^v*DOC@rKO@{t@w)Jl!!~*BjDftoYf$A-j`bDJ?tvaJkIxVyeoLV@g&rdP5ywDza zKpWGSmsmhLlF!)i)*9{R;Sut3M>kC$SaCS(OjbL8@boIuuXyfRJ#?$E?LjyP1Bb^W zWbvvAd!9WQP!ld=hH8uvHhIj7bhv?3B{WgqywNS_W5VW6{aHBe!Wm~JerYwP-s0&& z4wvhU>Z_Hc#)nip&$C&%Uix>;$1(!7+4tUMUn(@6t8=#uELiQabX#0BHX-{vCrE2) zr7e~na%)d8^~hzQT32d`vqT4r%adAT&$11MCN7yfSK{T)neA~CV(Lg3h??e9mG*4i zqi`xx*Yo+Si0ko4l?6$S5!>L@Nc)alP+F7I z#LF<$qb)vsk^xJ&)^QxN($<3I11N3xPS&#l=ipf!fK&%VdlJMJBiZSa=-&*LOW0eK zZU1Po?^PCK=r@yDE3m58ipc5oh9%*Ya#5d!^$I3Ui48fOS~M9&(d3{U5@uH;;)h`W z$RWD%p-|6MVGeP+UHvUNSn<@e70*sJv9z}7AciA}isJ=9y(1<>=;=I(WTD|(IRcYx zbk_4nT7V;KYp>Y$@^hYr2QhF=@zO9HB0s#Mkhx`nx(v8bP^L+9;^Xs5xOa*iTYNTg zxz8l*;4lv=)-4u7V7#a}O@j)#Xn3Dkh)hd1_tIFXdVqeotTSzIRcKMHamDv_1k0cf z)ub@HXo4>nwHTiGGRcUg{XFN1ylf+_q=zJu@+gf!lDJi;6$a31OvP{HwzGqc@09r; z_dzs3cLYcCR-rC*7il8DiURcuiOu5oo1WpDtdoT+6vLYzDU_92{oIzrZ?aQO2yVmN zOeSt{k9a{?Ez#57PHi)a@>qCZRXsE87j9;G_1?3n%$+Ue25B7?Rhr+`!~lrL+Sp9q zhz_w{dS11tGT4|It-}`~^cq~SvaDrrY+e>ch-)glGt@|bmoDZg6#*U75H$?JVLODC z#r-pH92;LoHz@*M$8q6}2Fpe@5wsGj>-Di!Z(N&r)X z+0J`s?DvjZPvtFI(ma}-VlM$G?AaSTj9u(ow^B4J+Nc17==F0^&rh}gqL3Kzg1zp;2o>Juw&cCviR4W{TZC7Oy4{I%nv}OxEHJP7}&GX z9cP{G0aaai1dz1Q6L}d%%rj7b*H!z^B>_xr9p;C&c(L9u%b!JB#~zrr+*8X#$b6>% z6@`3^pI0j;`Z=f<zjE5AUyr{UBo98e@oM*O0^;30vI|HqS>!A8mSZ*Y@E1)+7R=Ku-8t?!Q(^9} zX24zLb+lDUXVkmAXD18lAA+P|^Y1n{6oLs%RTk8g`v^xu>;)))B`fi+DnlvrG}fhY z2l*gbc$NDd#ivUmHCe!>c#T`KGPY3SDV?gdFnKt!A>lj!^8J#_}G7G>$kUY=vG?-#NW z=jIyOWG$HxCD?e~thOD&Bi~N^iCPb-i3L?^%g;HX%dM24tdy;z*0zrI-m=KgX}qL6 zTldK~Zr8grWLjK?BB(OtRKDwhfL!%g8>WC9okjM0|SJ1}{eB0+hIjq2*66Ugk z9=!jE=(?cn*?voC|KUk4;CX|lH8#u5D{CuSh>5XkDY66dV+Z&WbyhmP`6`ODpRtz^Z zky>wgtYyI0qlK0{>fp?uY-M&ZsRNVDK8!E2o~C!=VeCk0wQvoU)1S?HGARP{HCpX!A&e9FZ$opiXn%DjP} zN!$UH48tbXscly43@SBnphqf`_el}Jvfgb91awJ^G1bXazn(oqd@9b7EPgYj==J3j z)n6>8RqT2e@6g&oA#b)zwSL*|Ck`0VKwRFQN+-AD4l&G-iLZjB!)z53UTRsqX5IL7 zE~nm>qYGYFWqGaReiw*ah~<-Ap=E-E`6}qw;su3;j@pc35V0ru#(de18zjcatwVa; zcvx$`Y_|NZh4_67Tj{7`z$y;pC5RiT~a>6dR$IBI=Tg4go+Qj8r z3h)_1R`3#R1a!MtQp>Q-vZAZdchK93(ZgNMLry7n#eFTrWxQ~$HW?enA@al4Osf&) z;FudNDyIYo3Vd9|L@>2|jw{%6ww+P!s@q%b$LJ^VS|$*rQ0^P~n~P&P)f9FM>Ppb( zWN`{+>8N2!#$)1r=}3PvmML*@craN=Z*XbA*!F?BS{apsk10L7cb86Sp>l+@m_nPP zEL&TTJ-1I|%FABSr)B1OcQ#Euc9uVSwO#3(;6?QXWIoLG!}z3J-j(C0?rIg3JRk08rs`lDzo-*?ggK;RRx-hVwrz%4k-1g%MBBAN~RT|BN6S~j{n zF!dE<{Rm#EzFFAu$V2AaVU#1lj(D(ZLWTyLD%5%8!ax&RvY*>;K=!VtspLcZ?*6rR zs_^3hq2XSO>j2l~zi0HHpPsSu>pa8!K(YxLmK0j}QJiZ%b6YM&zLPn-?*YEe|FF+P z<{7n_RLxuQ+cR;3aPI~K!!i@sIPgx6^8^+BzfB^`4WIy8eHwM{4^;oxyz|?iqURK` zD`?!o8dwJJzDSVsd@KbyBczixbI!fgWlReksIFOO-^-D9h{+_(489|bOzcd`|8M|& zaeyHf_kz(7ZtjjezBO|gc9htkhP-Kpt77@r@BWwYe07pacCVbQ2qP+Y0_Z-adV1``fwle73AgZ=eTe=wI(4t^c} znlfd_xIfp?KRpBgInTfUH{J#){d}IFS@!#{Df;_e{rO4P?DtAVP(CUB>u>wtgR8tb z!y*)K!})1M{m(!DlUn`9@BO_d-G8r1(xETmKiA~{7+m-&@J`=Ycs=I)?}7g7HP_Gp zt84>@n*6U-_TO{!`Tr*Quj&53N&ahz|KCdfJ8}G9y7((X=>Gqw3!kex$k_}zv+%tC zOxF8xG@&Fi>Uf`S0_MR9r2jfAfmr5$&yPQp+4*&TC@(rL|3{L=@T+9C%4FqDi2UDH z@JH1D|9`jtYjgZ_zim32H2PvZOPMWiOS)lJ(VNL|?O#Gt;nW*;Q5$XoS%7?P`DirNfEcK$$-@^oOg&*QwOvv)mr8eIx4L^Gcke2zX1Ro@0nh)Nt zC!f)CpZt}0yxIU08gp-5ES#@c!ED(6F?u`xtucM8RIm|nGQr^<7DQPt#-4MIPw>~->SSDDP~&z zI(@t$*8n7GCC>7=yWJP z_O}rr9X4Ad<26_w`1U5#Uzv$NjzQnY`AA!7RR~kc_VUH;bRNRK@^z zAi$I_d5cqc+6-#6)D?>6&&fb$FNH;apNg#X_E%ie3A3CEIM$|}1R~>oO;GKN|Mebv zf4_%C&et6eSe?eJD_}dTt`zku4j#A7>4P)QrWXglf>)0#OCc@oXPx{@ZkSeInW?nz zNvJ$yOKS?2trZQYT6GEx|8wNe2`Z5R?j;`SAfVEGhLB5Aell4VAgw?sd@(af-MgM1 zN`3xDty+Ga)9i$4<8hbvQGZ0pvEDFY=*zdz@#aZzZ6}jlmal0OaMZN6KjQD8`umd) z5(v$PW03dD$62tZ7aKLne7@`{uBDG(yr`5Kx_PPt!IvnOrP7kWHdgFD(`fF%6X&^A z=e6jTYH2_9jPwaI)l3a)WV z^rkOP`m}eYqhBNiXwyE8zJ9ac$WS~(4RS-8m-id zb&Hyr$kx%NrZrc|eT7E$7Fnw)>2W)H8L%A~rrg_hbb4LshDpvxc5%y5`UR9{v0+)w zqNw5F!_!gYdmwhS6n0+bmOO2H{_X&{VyoQq^w}!R=8C(hQEBYMxKN3ZdtrR$UOvkY+(!$& z18_IcQznj|oCLMl;w<|#Vkncmu=ODBqZ#Ja{4PZOLXPA{1WtTM?dHp%VxzJOS?s1K zGZA)mgnqMJ@y{cxKn9XyEo^dR!VMx~N{@qIC>{GCFP1iIcgT-_-mx^yfB4-G=RQ$B zlz${MqY;zhgtLL});W*$rEb<4H7?p(H52EIYFlYymZ}rP4BF+J<~Zm%u0O?|<*{cC zOHUekRQ_*F@eh2W!pj1n0A};A`nPHD%^>NYlEvl?IZXS%%$oKqJ!*q|2Re0TfL0>( zi@j4_9v5Cr)qDwF0$gH~6W*+)&L3bU?|bR8Bz(s&HZAYi~Te5}s2N>a7*2<&18AQaEp~BX*9@&*fE1E~P z?X1h#behx8ulMyfqN~b!ZjRouqgGV?E4NHs4Og3zs)KQl)umJ|PhQImOWSa-_L%%i z@N9(G9Uv{T+T>*w4U68Jz0gR$ZedMU=2|I;r1|Y?4W~MQ#jB(Y3%U<4D7$UP^L2;? z{Y$0cudldw>o?0>f4M-%vm&w(59J&Da&Z^Sx3~A*B=aJ84!2gm$9h%$wC-F6$^I*u{otJBTXn$qM8b56GMe_+S^=W#;dscN-V zV%7@ML#h{1nJDm~TX}zmq_P>eTTm-v+~!y#baIC^tf~l!+U7bTWvAjzY^ipL=^6i` z&dMoeItXkDn=fb*Dpb^&4(SsNh5|qv7U-)F4`(#UQf=BJ%BC{Vz~b)chZ%lO*zvW^ z6pj<5u`E9GR-C!sHr2oAq6<6Aqe($IFmk_+?5S2AY%cgA zYHcU&q^HSzC)39IF1#lEMZ`CYBQhkTrq9_81Wb2pJT4EAr()F0L{?=2@JTnb(dN!e_o(RHAp6S{=AbN^{8V)ReGc4VH0gPj&gEm2B|J<#>F+6zWQYk_>C@?W-%~+L_V!(!5-rn zduyCGA_OKN;@qTOJ8rOzdBnkFx=xAHIfdhOR`4W~V@-W%fX}tRRB-C1$oyq?872rtp;7McK$K)~yoyf1FFX;R0NdQp*~v z)F+;+a*~D-aCHJYM;hptiV2-oqKGx1YSy%@p$Q|u@s|XMv2x6HTw^QsKWWK7-c67( zkmwadymt?a#!8;_Pw`BSPt_@WHRYM;Ble)>%FOC!8~wMO`Sy-438)%|Q=zSbD`uw2 zBFUvsU#H_DsJg#I^O0f<3Uvmi8fGc1=BJlq`A2WMjPAEnuH&P)GQaQG8v@IO=GW&54QEl2eg^K3jmp{r2qc4!OVcZp&aJ*<8$ zJG{Xo_MEScfRjKvsbP5}qXYk6TRSrEJf>!ua0h5~!0H_LuZ}(zp=~d$^t(K(rvzfcc< zyks~TBwPN1c?ye19Cv{aeww8zIfmBC>L5KHDXewB2tkpTE!P~mW!-yxW^7|!T>V{) z>iz`$9tS*JLRmcQeriuGLfXD3p=dszJ@WYcDC3u7BY78)X#NI2e|+NiqzA%5w#>CB z!(iv9`bHbcv+nUVUUyN$5}>d1qvKzTT)|=X>_Xea46yZ&xy+~v+hh+22D25yW+Hxy z-aOFTi1f3!?cHir#%Qq-CIUvv&YT&wXB+%jF_iZkRIP~))N$NM)wt>z(1HNWN<6rE zs&j@V=Ikj0tbhHS@J|e*#d;&L9*}q|Z!^$Kxqs?_NWJl4fQ0!yxu9Q)S^kOG6ZNRbD5$h zR;*$uD4(kmqhvPK8N)pf*DZFCR`~V0mU3K6TT>o#usiu)uy_6FZR5mBW@uE?S=PUc z2NIlxmZk4`wsd!jA!MMJgPUz9IrV_vduhB_uY(3uy)#Ld5!R6Des3El1|74F15Xf2 z4EiY_!5GB8i}Bud3|BZ+sp+O;f7+&PSigl6U#P^*8A{OKYvwQd#UC&G8-u5zrM1%y z-d%cC+UuV@vD3xle9f9 zb4&PrP7iPZ@H8X$_s*9rLN|{hhXMegR%Jdvn=!MI!!S?|fLG%Y>evCFpc^`QT7tp9 zDl*0!4SY#t;_5h|yjp;@vPOd8Z%P>W8~se&=ZUMPqWOhE%@<6S^L4s?czEDrzrLq8 zjOc>>I;fNJB{W~J^Zia!V4ST)KQ)mVRx<~59j!YeoT6Xfq~evbGce2}pDQg@Z87zZ z1b4ew{0mV2J7cV;0<3906@6nd_OL3>s%D9_;R$1CHHp45!_vwa-kpXrW2KcJtnPs4h$|^7BP;7= z)Q5Zx?O!Ohtky$(7$#fu)BDu`DYxfT7Xcm40R=vem0-vJ>gX4fvDhuI*H%ja?Qt9WX}_9;1#l(R!7fI?J=Lr<)nJ`Wv1*ztGAzJ2 ztiNR#01y2xS18A%*Ngl{qh7XgmAvj*ZO!WACkl;##+FQ8c)F z&;)l2?jg9lyCryVYb;2D6FgW*g1fuBhv3?{yEV>TWS_J5KIeDdyRTl=t-61lsxE3Z z)xE0MCv%QD#+>uBP}OY{U(1oYF+t?m5Bi%Cg5Z0e;&rW2sku46oqNI|aUsfMQ8$1h~sbB^Y6C``hFe<-H zGS0734}!|t0AFFsb6|9&(OLr}=O*|)%*|)ch2a&hvh=?Bk2Z$-$;LEfc;480ErGrp zIE|&WtX?K)fh%bOEuVLVkXJ)O^%^?f3li3l>#z&Cbp_2NCs5+WO`?{fqMaTO4 zi)kN$m30)mk+cYU6NuxE5!g$p_{5O@zHxB^=!ik;kjia$Ij=qyz{#I!Y_M3PzKZ6I z2?I}~biMfeP-7JM$@U;}&{7C0@ec7B3f^2N29aaFK&d!}ogKhhl{t^Jj$n8$^V}SX zm`Ddk+DFXGmDcq?^Qo`K))9lL;45~PBIdGAa~0g_*w*lj`qMkch<-J0hjBYaIw;bg zRkimhq@H?=6RTkt``{I*K$X_yH{M+AI!NRD5G2z&ubz|-%zw9VvW6HEfKJ|@K{!EM zX*_}F;UH9#r@xmCJb8vXoKgpRY__A&cTAk^u`pj9L!-^xyp=dAbY9>dIT z;ffwO&w%Kk!12#t16VpwIRL9PxeA@#&AJF*cz7=_=@ot4yRM$)ni);IPa6Jmk@N&a zcBhN&t{0Ol7)G0qa~2mX9U7MI$9SJ78m~jh^>%(`->nmITFuAP`^{VvxPCGm3d3hM zJ!-zMIsn@miGU^xxVWv)d9}**CV|-hAeY`b0EWQ6`Fm~YRpgQ=A};Sn)nL&XeQ!#X zk;I;SDtD*#MBXYxDC8djn*P*c%av1^AL)HGLrkXkjhH|INLN=Eo=iTOt-GKRc@uv) zRa;mKy2*Odx^a26&8OA}G6%@th_AmizP|5IRMZ$s zYLZf+{i5zv@u0<2)jLXHY?z%2_NI#6Be&uXn0c7QEX8qx@FsqOb0MTtP1n9HpVcFe zLP=-&hN1)$nN$`U^!+}id)|D~>=43`2taO?znZkb-rfsDSj~+?3xJ_@Z<&yM;O((L z^sP<@S>{Unzn+bX$Et-1A#} zi6j%~N5FhD8t&U71Q>&;3Yw~SlM|Ok28+mzwwhxS0kGeD02W;E<2xV9M(c=erAW=A3#K~EiwD{yC(HoWjDg?@20X#v>v_$gw$WG{i+ul?H)cbt93uU-bx zZKrYW|&IKL_brRMvl5b7(lHB+(O734@>SR2XAKT8s6Ydo-DhECx)=IOSB5 zbiV4RsMhpbRH#}83<0QnXwB5}!>lXc!_&-qt>b-J&tp4B&goP}6aMlqk>YTw(VeIXZ#sCR`)=U$5SsW;eNXS7(fWA6mIsOx!!UeVebUE*jZ{Vmrjo0ljV+t6Ax z1&W{D)?LqWfD&OYkG}#Cf6=8Uk;Os3R}h5HwVPOV3%2fdg!Q~(a0XUPOcI>1uYF16 zt-X#RKlR8HLX$>==0R;g*EzEVnjYo9Z<+T<^>*0^T5Hi|kIA5B;c^z@sMlovu3@L~SGa)?Q2a8vkYe@=ln7KI|15fE)_A##LYee7 zr7^^yVUhG{ZK4Xr$Sc$Y{{^8$O@WPtJ;XsP?SbY?oOROD(pKMW$iA#9y1w!lQ>Ua))H+`+9<%mx%)}g z2T)}=HS>Ow#pXZhZ4KVl>|9luB!<`*x>_N%`^~Ig}}!Fdt9iVD-2wUwpVp z@p+xX`!39tf5SADo%7^a4bXQgFcxMm4;CCr$2QtSGi&C(&Z9D_QjJmxhof)lM1>`$Iv|r&5-3`9t#JI$E=}OOLV5tI9HMI zU0>zpfX&e?K;rZoNT5|nkuCM0i|kVru5jQ0VbRnktG4;`El`^lcn;Dj)os8k&!k=E zpAOpWU&#hY!Ko$BBb@PbMOqTOgJ{97Czx(CU0k^{ZZ&&L?qd%qR-c&2@2OJe!(yC1jf1ax#x0Qp15^@`Lt+_c%1Bs&b0mRcQcF6JfbstCIl&Zm#)M&vO7`oZn9A8 zWY5OCH6qg-Xbd-_RiaPoM(SC#lGu3oCHw$)8l?q@Ct`QJDtx+S8+Q_mn{TE|jT{`B z&r}*Lz8Uq^y6hC2wT`9>fLrcv8n-2W32DhbswoKzFIHiRM3wi)`9Y=`Z}_dVAR<>2 z7!I-a!G1>TgGr<4LO&9??5mQ1Y~%oqeAO`;#V^((k=Nal_vhim$v|3!b&BHn#pAm! zf~m5VsTa^(L!xo_^QjfE<{Gcy+LL2pi^M+g`_@JJlKZYK@jO-{;pARv;4B(_(P_~q zvYF4xuI6|2^HXX9G?w@7N&DV;{l2$XkWV4XdCDzC3O5%##Mf)u?vD}GI`$sHPo2Uu z%+%dJQ=&T%^Fe?!4ot*DqN*w^Wapn~6ogj}rU?v*?vNX7KXB7w+IdS9^9_jrWMA!0 z=$kinL!a9WL{CJ^m+(3cIFWIf6}$0~%Vuh(@yPFavsc5`yfZn_SK`TUPgO{$srA4v zp55&K+}a~BLa)i{^p$s)2g;NFh5*k2SpNgEtigiAdp6K~aD`&MS@C_<@pt4^ft@U1 zmM-MJm#M?tYx7JQ1fk87tT;(Sh_9NHyZSU20^77>@34We62DU+O+qU;gyXyl9~g<0FH8(au=v ziuyJ#$wEg7754O}*kX2n;RQVBX!@_&%B>&aPSqlyO_JP2-+ALEkn<2!zV-?`v_mf3 zm{_PHXd|xP==z}K!9^m4$2|mGW6bDyn@Oqk$+*#?>!;zba*!JMVSGSOYNSz)p}fZv z%)Qr9SUM4x?|@cm|GA?(BmQ9C{ZqOS2VT?Bdnrmb%X=jf5$P~I=6$V1SNOGTvF~m$ z(fIap8tbM}0ki?7_#hk2&IipxT`_=!rJ|HnicJ@Azul;<#WJgYlV5PUBc=9Z|9iHN zCm3{u^KP!9(18@iFgoic1Wy$eVc@$3*{MLZt3}Vev-w?Dt;O2&$4jd|ugvfMo#Fgb z1u8n545O$tD`XtT$J*CBx2#kjB;rjkDdA*8NA5R@>5ozrZrmqFjbu&`!mjL4YJTN_ z98&l}HA{9Pk1c-avP*%{ykyT8-*0Qu{mjuYBjReRoq@;5QN={yvYAzwDq4KYeUbzx z?flmdVCCDoE>Bji0CCi>Mptt>_e zXH!9J#12bR8O%N|tlq)2B3bHojDzB#lgQ_OX{)n-rj(0-$DHi5Nx&II%yszH3X*C! z1?C@BPasm0LbBXyltIB~nLG%>BJY>W@*nr`tbgy#jQPG`{?tKOrE=4Ouxm_dgK>IN z=U~5lOor}fqm?%`%MPYGg^3U=YF_nj6T@vnE-cT^2OXUIo?)=xQLK0Tc2}Xf17#3Q zGMWR=)O;`uFi%^V#U(vIrR&$Ca7|J#r;YsN+5OJw(fX9e3(Kv3%2JJ6Y zi{MWmPpKD6REBT>!Vqo?WRdl=>l4nPyPOEtkYG*D$B&2`Fa19JP>2J{Z3Y|`vy<548ZA;Y zpyvk#RaFz2ucecS%Q(B94b_CazypRIYC!MgAlEm0H1#POGhPQ^Wc+(AX4zz5?bmpn_p)?=e3v zLJ4bYNMJvEPe9aYGcp(Zdp-Mb*k|6=hm{oaVLz>TiV>{39Mq2jFl)NK^==;eEA6li zGSky~H?oU>61kvvE(2~LKpFnhL>0HxWRfP8l8h#>^_|sxr&gqop9`g_Dy-Wezhmvx zv{~0z^1TOso=#)A&;2m6kwzeq(R4AG2@~e-+iLOFV5-!vkdfN+=DVgNUZ%F~M8+d= zVXbS!#Ng9g$PQJrS5@aX)(c`b-5hxknBa`;*?HCn?>=YOg6q?-=@x^Ni5i8|*EM45 zWxm6z{qL=~!Q4#7nh#cI`27_}n!6yb0*!e7>dZ^dmmMgb-<2jbSA#CRZYi@%LviSI zzU8^>_+J<9}!Bh_4?AA*^>UmSmj+wPZH=^&7}Xnz)THP z?X{KS-9{}}ygOWL1dCSM+(&UN2eOyRM!xsr%NENKrw>pou%D;R-Y$}ZrAJ6+U1v8j z^ry^FL5;TA#`_v{Mw%IZHD3g^?|kFBkEU60k1L|ugJAN&MUbt5OudI+OMG)xUfoJx z1Cd$uT2u>w!<_bXANr+Sc~Oc`$$zO8t*B!zt<77A?D||)YA!M^&qDY6`g(6ev-X!~v;eZ`+4qyAR{sEh7?dk-=+&d@iz4_06rnjC=(eR^c$A4eL=<$xzG z+fG`BdB{E5LR#%fHMauSxSA1ho;GMf#aTT7O$Hj@6K)kFNsdjnGM%S;AGN^#G9bbf zx!-5Bsew9zVN>1ehm;v*I5NK7YB4CRc880rm4k@!s|V@y9%b&e#=*cJUfNZ7@wG|P zUTS7Roth6Mi}6?4ykt&oWtyJw%O0GHAr){lOJZ%0x!oIJy^mP<5ZXe2j}UdT@m{wt zfwS@Mewx*{(K!D8A=K!;M#8E)KN1n?WVutr9C8SPmhct|!QAuRr+Z|FTk|TmGQ#`# zx`^KM)V#v+fywi(yzRso581;&sxgbqHE?b_p6ATS6Z_s!bjhCq*V z(1eH$gU-!6u{%#H+OeC5D^ z$y=@ue-~s=W;d=$HELYmXx7P;jl(w>vhOwWaGPnd$OgAK;bkUe`Whb8GV?Pk+P$Ge z^T2VG1w5&1E9*%rC~EfFg3M3S``nS=@5`%v^NUfGYWBGXFaz#!LzJ7i(8#T5e=giA zx%cZU>>&2?91>62zF5C#9Ue~>T()2-_b1OPpYlrG(B|$NU%D;0MQ(S>fj*TRTxVa# z32LZ<{zeBD)Bnrb|2F%W$nd;~rd$EgoMZ_w-M_ka`750Mn8*=0$*LKKEye56Rp*iZ z;y?ab{;93rnZO+UKv|wITmFruGalt`gf#Vbx59M~z5cO1tmR^xr48OA7k${LyDe3; z$5tZnd1EY~4mFzZ_29LbmHlimU`^p(gKZw}ztU~6Rk$`Ae%5L>G;m1TdQ*So@axXi zQ>p%y)M*7%BNpZc>x~zmFNs>hzy_5`N09F=@}iNV+u;IpzFKblS}4!$0Wq&f8mjW+ zx43=wpWjzipte{wtIE((jElo3>uds7~%6I?NwIvd6oQr`!0gOqy7qz)^H1ypg2?O4CV4ns@u!rt;A*crx(Q zc7ZL$dl0?LivZWC3`IsjQ6_eU>h09PgIiZyw7+x~ZKPQ$gnWfpqWO&<{b1j6^jhCr zk!@o-Pg6$t(WOD>;{Ih&UtlnJphIFXFwDXyrT*{x=IJ^Ms#kO$sB_UU$sglY+ApE9 zk@~%}Fh!T!4$nA>x4_Wz^?#rwic1_`uX7PTw^jB1(rtwjlSb~+fo&`h$V$ljGR=JW zTJ)#RaZ3aXf$+^TvuDj^WXfi1u`VOv64AZSAB6m*6NiXE*OE~gOhUJ)(|dsRRDQNu zUD$f*d_t~BhdEiX%m+<|`z>x)5UfrFm$a+1oQ!6#pfqhuC)e7HWwqEadQhSD8anN$ zHWUA<{+67}GVFX?Nd7a8!Z&d?^P!j}t>Vq%hCv{HTG#6hocDcm6?VEYAe}y^0W>@u z@LlUD6&(yC&Vs5S7pfX#4SJn7`;fS5z{+1e_E9Vi`O^-&dhzDq>2R$GZ~9#AK|TNE zdgpAM&z^P}GJI1J?cP4Cb2A0Im2GJH#OM&PrS$sT57-wu4&SWWgSvJf%r0^fkcWu zoJ`!i@fQvG+=_E)MoS;+yAO=mJsj>3^XyPLYLKO`XDdUU>_hIGb(cH9KNu#7rO$HE z?gSaz;-CbPXVmI^yLhio&)nB#HWb=2+z#d#iFq926b7`zv@auxndf{G}e7r>-Q15ngboVRyk~52z;r zUWoT#llyNl9U8mN4oR8Lao!EI@Q$|$88!XvBb9s%#i9BaF6!T_I=Suc9fJ8m7)~ua zG~`9z&Fd?l(|yN6drLih>=zmG8)kDO^X7)Ce# ztL3c}*K9Ba3IS`JEFKx8&^@KsrhgYajgaM$cL4f3 zPI}q`A#ilKb!Y-YEZp^T;n&$>v{n`#`nDK*zs<-=LK`_aJqCUpqicGz+~CQzVwNJ2 z@cZa1X7J;b&J!;7P|GJPH`cS>AAe~1woKEq!g#PzC;z)wL2L06wtICNE(lq(pns*K9G|;@I13+{TV*@#7PekZ%pA zzc}_c{uOrQ7b~k_^s2B0j3w?Z(|f4^+SC3Rp$v5mPUq7!^eX4Z2O&jZ@tXpH6^wo( z0i&+=vvWTKNahh#wd2VuHN9$6AgjGk9k*^Y*PvlkmMk85oP<$}L)cX7v72(Wm-zKP zh94^iMiN5_>V74)>u$X7b-5`Xvhm^|e+cKqnh(v2;hH3!|4$^uEMx4~8iFb-e56yI zww$diBS#y&sMNT5TD3Vt$@~Mfzpi$+CRML@ZhRrq6P~ACFK&QS8f(Gi!)^~x)A;AB z?cjIZS`S$>o?p@V>f3vVDvpV88>In|CLh6YzJ?z1E!WG+clK0zzcJcLtUof3<2IrY z(wiC^?~Avz_qQ&{yr_Wzu6sO#C5yM~5noI|(+2fFq+`9|B(1z}oCl3mYk)2qDKn6T zI3?ffl|d+2DodWnvQwVfGL!IlAk@IyYW^`QZ8>mn^(f}4-Mw5hQWRNqa$$)K|1;_+ zX&A2##Itj{!RYl2a*8L?-vYXI6<`$9(LBu~T%TIU6?sS}GW!9PN=(^$d5&)uSJ+-F zeKr^t^({EX`OK|g-71Jk@AwFd=VM4%B=GpKM-ag1Y;yxdn-&KR3Qj8>5T>W0l{bZ z8qv-w2YA-9K~@P(x)^%1XF9Ex`I%OzYRg%jj{}>-^Xg#In5vy$(gAnwJ1LKrtrxX2 z;Vh?1MZ_kY9o1uAMLL&WsG!po+bjY?jk$mn(8a!ryGrf>Mxf6U^-S% zFQx|S@Q|B+<(0^13U+wq;UoFfu39m#wt)~bcw+w8?6Pz*%r=&@4LjZQFkzV|=d@UEo(qswU4)QIs zv_(}(672}bc*0$cJ7PF8)g>PENP^n;AU~YD{vBfpyKclSbtJR(tNuYNCMH<8qGvjl z9#?ce4K;jaF2WJ@g182$&#jk~e!cfdIO!V%OkBn~5#q&K{dshg*=gu>6{WhWeC!>q zAjJ=Pg8E|*%!vKj>(tB>Yzx2R6+zF9>L|tBvH6aRwR;KV{x2F2StO1WmR*!h@DaD| zs^-BkbhK7c`y8MFM3LIV_JLZ5(CuuS==Q+b#VOp9$f>3&3)Wuc8<%$*0OIdkbl1`)PI&Isghm;wku!({QhThtJkcPDYYQT_N4=(X&wQl=x@UozyQty}GJXfxtYoBMIChQGF zGiqH=9iZ6XlzUH4aeM{ueWnnDxm{^-^ z6hu-a_PkCRzH9QzWJqe6P(WH%~7yb>+nf(3d=~S*q+NwK?Sz z21E`8I(LPB2U=*?q%unxCG%MNtHao|ZiT5L4JXECH<^KVEu(698O-Wf0a zfZIUZN~M$`pUF`0I^a}Em_ZJIDOsTvbjw1ozb|8R0h_pZN!g^*=9tOjK-TI;N!61U z-4f&L5b^mlby$C|GtKP?mPVF8J(T@bql-1mWJU>{Ba(v>FT|m6YM_x}s7>GqM50cy zRug%7I@|z^{F31FCUvQ~Djx|lI=4)|;D_$&%ib@M9FBdw0mmzui>-~=$ji&yQ|vjw zvk@Qih(B|UE6^B_10bA|ax-eTX@NP_r-keB>a>7$zBojV7E#E#id0!+I$3Qy^ay?(Xa@A{hZWXUuN z4Db;zTRV`>D)&T%69g z-`BhBIK7fvTX~=Ee_>z_Xp&9`bJcZARHJ(i7F~}HCnT&WQ~}!JfLqZX$16hoA8tj| zmgZ-}_2B0-ph1GS5UW80RioP@rNHCT_eWA*kC_aK(p(_Np(kSdds1rEeoyr0sCfIM z$n-g`SitiRoY#uPx4IuhazuQ_z)wgVe%=?A?rpx^C!@kbOM@OUJRP8QC;nb8o-S5U zYwI1o;l8jPqT~|KvuGSbhU9Nj%PG$jHda)-Er3X_zjjbdvb0Rk#bvJQ-FmiH^?C-3 zC$&aFywk%S{JZh;Bjy4$B^zqx>{Fc6F0<^7(u2nJbe&9X_j+9x9|!1n+O1JfLc7t~ z)Q8p1nd%x^Ze|g~OB2u2Pf}Ds5c8SM1m=2s9KOP3HabHcYeTc-s&21h3P>v;AH5%N z^%Z2DtM-z38d#6ov{x3I$|^(=4IgfrS&-C;JF~%$GZdMia$fx!k7jbn^vU;|9d2%$ zMe&y}U#{AEhcEe+Hfh)9-1x}M3P+o5E|7te+2sG_kpzc;1IFtPLC%{mj6yTN43h^3TdQ3Z;Qeqb z&V6lhG7s4+sMbZ?u4V5U0BF>h0X(v}@Bx9JZCMT>K8oh5WYQrRyJX+0h#NH@nsh%I z2sf9naO;ODy$(>NCXd-v*tNkLKOTz{+EaM&3%8=v!9?n^2EvO!wc~#cFHBLODRHk3 zZ;i|+cU^raWz(q2*ZUIyQeco01GiaeqW0bOP7-)y5wdkNe7B0gBVw!no?qZj^ zzM?=U8Yst0h@(|PLB&#}=QctxJaM7@BkZ1GT$Fr8{)4)=XkgP zzr*7gK_ark!t^Gt=VCoJlzaj&S9y8!+z6mM?%1 zGGw8p&+|-fj6Q6KE9+=%2g~W^;d7`7f{C<(VC*wMz%ZV*4{XMYqT+l74q%3^^!Oh@ zIN(aG4G~`W+BSM(FATDN6moH7MVw841E%%xtT7j=IA1G6%jWDDY& z$&aNou58udiko}%BTvKZSMOA1z!{`epoUi!9{tEE0uHf2Gi(ca)_X74c!5J{7Rx1wE-bR-O!q=<2cqe+wFw1$a6MveJtcU&&zCC&ro!wfHIo)j!X%716yCCa9M8; z)PKuj`8V8th2_YI+a@+Tolo=80##fiDMQ>x63*B0One}Lkjk+z2&QKSTPqlbeTMoo z@B5c2uk2$U>>h83oi>MNlLZZ$7>J*xms8%*L2Guzybh>ac#9}aK^0K@Nf=hLcO$23 zz5x(V^=D{h>&meJvjy_~De6W%LR^>Yk1dl{?((6S1dME0M7hXn-R)zg) z2^k-2A$?^~FH>HyAi~>UR7O97vHQik_o*CTEuSCEH7kvz3miSy ztuU8yJtfi&oFSm6%EH2GYI?a$suyWQ_K_&-{`;iED55G+A$ zD^7A0VO_IWU8uFOU5?|VJvqA1bA8a7!(<~|hcfboy7CLiReE~d7j>$1tDlPKS8iNo z7+9tIMSS7A+%w*Ua61~-M1|%d?#d`oJGLcBAiF-fczmFnem!P5bv8;chnX-m zWs+CKYrpOi%A|%enk&VOJ&`7g^s9Td=1D)6^V|>PUQ<8w-mmoIY16uHfJdB&xQ%B} zgovdNueXQwhuVnvwKP`g?cNW(1p&=K)P5WhoJ=_vc+0)C_&Hba9IfBrGg~`43==h) zaHja_W81xn-_Jda3s|cmWMApvDp9YqVt3$|CVQD>s(F_!(o@UEOB+0xgZf$hV*X@p*Vp4J zuke9wtNIi+x-cww{CHvbZ3hPm_kpT zy$#Fj;4K^J4dmz@NIbN7Pvi4>I!Jdz^$*i)sSAO5;t#z$Yl~^6uHi`=?FeDgqrQ}r zpk*VT&^P=TT^NKs9z4xOOFWnN&J_EN**iFlgN{c=yglI%X~H=bqXipG?49Ko8^t?! zt_}*ZSjcaxg)eJz)kc>Ej)n?^dX}37U#{K=q&8DJ>YHbPc$a)xyi+U}56%d#)0d{@ z`KF8_!bu7YJhXbe`FPiKI^F=1ArC-oVDj92s*ZRTK=r9qX7$bVqu72bTRYdqa#ttk z^WanEe=+rS-EhX7-K~Yw*mSU=eF-1oZonIiK4X#jC7%GDhCHJ;YQM1Xm)}qAOqG#g z1Rg>`n>^mlE62#_WSaKnma`+FxqBwzwqV(-I$b5u*Opf47ecTEp6rI`AyItJfd6BrFP zp!t0nHt{<+=^&<*t$0*3<-AvuJ|*rm=xAn8Z0*?}ClKmDjBor=_oTD5Au}e|qVidVIMMsi zsI>K@(IOA_DP{a1=rt(_PdERA+b*{>aaGy4FR9>n)K>}d?C^InC5Fv8-PC}Fom9QY zvuD@-;4%43&6n+As{HDfoOpdw(siRmkZ;(;Y4@B6IKwEFf~9J*3>~XiZw=w*l#kg~ zy*DzIm(y5Fz2_@^*Fc@be1#kR`;*?u4kjwPSqr3(mDS7r6 z+gld3>8ZQY#NFrzHsxa?mmJL#zlu5bj4Q4Qk;>op!i3GI5q(wdGY=< zz!ahL6IZkP5m5j;xAx6LFW7tvA@kZzZ=O@+W8wR%EZs@uz+0rl$tf3kqPf=F2dx8N z!Q|LZeo57A`TV2mo$=fYJlK_AKoaN*fm=`Qc#ZP@gLk&UUQbQ&L!q;X5mk7r&PuCF zan=LC*ycnkPNi>GKBcfW>h;#S$WD1ojRTq{5si&(fR8)l2av2zc2D~R5&0Eqh>deq zLv6OQX;QhvNQ{C>25iry@a``igWD+^7J*>1-Zim6m+!n-w=TVzm!Vs>-0zstsnn&WS8E75^8M7ouK76EBDd)y zXmm-=Yo32{(cO2+6BRac#etWn-BL86JgOo{DIaKaPCg;fmxPiSf*T}p!5_@q_F(&J ztB3WC0`okOb1}qQeOSvP?lN8pM%<&B9>fqi_kZPG+#(EC=HjM!=@duCWcWsx$4{rV zQX%=Sglx+`N<4$-#^tj>rBy=Wf!EEO5BAY$Nf;r<`arqR$w%zGg*xy`-G|VJgi&?r zVB=AnJ)!a8+a!Xc*m~y;<<)4}K<^^aDH02MSoPSuuaFtEhd!F| zz-aRpr{`LVV`$Hl>5YD*HDWv>8PvKXag6BiGy;g2nWw08W}KktQz+bL>iQfqMJ?)l zY$RpO5l>Cv?Qa)D*)|lAxMXSh`v)x@=gOJea@dvM-m#BHtSK0_B(3Uh7%A9R6 z#^<-H_m#9mVFwE>`5B(@CLNp1e)&X8GTFufO>@H>s1IzLFAPi60;!-_)&JQGU{J5F zMIvy;G!&a#Uo9jP=K2M{@_=1J%Qb%G1wK5X`nlpfdEpA&mSmGj90j`n*Z@P0zc!Tp z*YwZV%4pyB?c*DOVc!J+{lfh$StJ@_tBecf*f- zE?9`lgkdArO=zKvk{E`|LPt8!HAcekPQHG|Z?enhw6Fdi8@bJ6Jg?ok#dPeM2X9{@ zSNPGRpUJjfF6us;DjW_nV36dgzX1`@)j0f|V?+fT3Um3F^z_5W1@@4fkz||+i>f3$ zHanyqaD;@38>=1acNIM3H&&?Mn5Vqay7-cdqk?AV zdMAXSE7fD=e+OxYjkRC7p-kl4jicOB92nRJ6w|M>T&y8q@UfS*7xaE2OwS{h#%1Y(QYvZMjRj4I)O#@rdh*~@U?Vg!ld_Z) z(}kIVsL3fJ)cytoCcieP#X)iHD%_j+@V#RB7Cbux8FlyESD`%H!vuRXtNuWzy$W%N6s zPZ<(7T#)4)4SO7Ya9rN6cXpB{IurL4KgC-u^Y?x;4uqNjy#n%Hfqt{d;d3N26X4y8 zOU+R+`k4nJ&vRsC*d+Cu?pL;%^Dx#$AQaM(<1s~W8M-v$35V+@!p-w;FSaaEmtC`x z#@2X3sMm@g;g03`@|vuFXdSJ2gi3TgQbwpltP2r&D@KLE^%IYryh!jx)8FT}Sa&T! zNo6STj^Or3&Sl|`94{;%lstLsl@@Om=GiX6zDGD(M|ZsBfVSIK`~pzZi&sV}d!V3w zoMmIr3#hanhaUS@Us+n>HL*(SHw(}2e)-}Wj6nFWQgD|BjK`M3*Cva08_jP)$6u+1 zm2`6yJhqx0>9f+b9=Gqult0}#07_<0G89iP8w|0TS{{b|73S?6BP$~6JuiBt;0tUv za((s>g+1eV@RHc^JRVnFfXT5`zSy7B9X$`WF|Ql#miMKKf0W)q$bR41Fqg+}z5i;q z!Y-5?(`-HDJ<&4}Le$vh9NZ9C556{pXMye$g{#*)B$@tNAF@m;YQ*0X~h2fw^MG)h`a zy){Z9OTNyZNM=Zu7?e7*R7#2ZA?W)BweDIWY2isFMn=gNwrD8Wi|ik9w290}Uq1JE zTQEYilNPQ^Z}hto2wqiw!&^w|GQ zlmbc|9(%W39*Jd{gA}Q!YRg)L885>}J)CvU^)Ppl!;BmiYbJW49>mGa;JE9WIEl3kW}zj-8;y6$XmB}rTBJw+^UdYT{pr_0H;}TQJUTW@)*I@Bzs2T@1KRy z5vQ`21MiW4tV-t}2H(i-lTgEyY$cFUiiu1yS)w7~DMeR$y;dL5(smV)g`I&zk+)Nr zk%HO%MuX0O4{Bq@GqfdW#(q3={`?HSQezBx} zMF*`MsN0T~%kn_9AV8v^HE%dT_ zwetPt?LOyL$0N^7FpLW5;oHcRI}%V5&=G4{+LD*~0`x3m3c^qF!F}UbHifRQ;UdaO z#$CP7<67xV_fza9_r#mX34}~KDM4YR34At4z}?N1!9>t+`tgvTqOO&|>;FgM^gpRj zdjc4wgtrtar$q@&I~T`#Ig4AYH1W>6&Hyk>o z4j`R^bV_#$NOw1qQqo<5fTVQ80TiSW>F(}s{>^*i^S%GQ3M@?LkPqG$&t~XUROlXGRDGL%%~2c$mWg-W-a=uy`EwyYL~f~2N+cG>thkidC`R^ zjRWtyVBSeLPcHcKC`Xp%bO+f^1#W#)tH3K`sW z@~TwGgFhPzKlh__pY1NbpvD(;oW>dcU8+kGIBLER`?S}$&czvWAgNpf>L?Tfu9|u{ zkkWiL@#?-pz?uk*|Cy9#a4>WW$cdQ3)`%jYWh`^XqzX>nz4)$$Y1SlTS3zdI(5_P} zzv05BQ}RWF3-fm1GOg! z*9a}PrRdifVbS#k8b-Tt2zBmS*=M(s5VlTL7%+Edzcrxj0T)EL+X*Lz+-L;KZFNml z?MfvWuOYmO{3W|@^u`lFLbdj1CCkJ?sR*k`K!)8z(p~w6BKStXNh8c1Jz@T`L33?j z9)&WOeNj$c|Jd6;@4jC^2FDi^@(IF^-rB6_NX~PGx-Kr}-x<*Qrb+H;y(VOeM{=bS ziO)y~cO-Zz5fi~!g<{)Lb`p%IcvpqCs3aMcy?Sk+Lh-aPD{3c%fAjR#BoAP;+zNJx z(gbpp)l8N5PN$Tr`H5v$Ixnb>XT~NTTZYseBOMtwUan*zjrf&b56yFmxA}XXkVo7t zEI;bI=$@1jbDy&0Fnph7^(fn(ZjZoK8peW&0=wg*Y%M~D$sghLoAB|;k7JbxzmXKCKfi$vUs90SOd&#bbz8V5- zcAD3?EwhBuV3KXk3@p^pSV1dpe_<{GM0We6A-Ue7uu|hSET|&1%T6@VHTxa<9lfF- z+xtw-#6Thk>aff4s=9-ocl%OZHsqX4JGaRs{wv&MJ+Lj51U=;urU>u5Rlu4}*NBls zZr9tk3aMCdCqV#r*)|D_$Zj+X)pL@g$|lNBE1TOn#{A=kQ6C{8I1-gpyS&e*Sd!E= zSj0g#{4Of(GL=1Y=B;^8t*XJfc8cQAMVR>@q&}2LRL}hTeUJQxfh?x6((&NvH$O64 zqy1Uy;+*O3@!vqpwcJK+*43T2(2rM1J8}(T?v4kUfMZ_qW_k_iGIhQq$}^ zvgOlKxuR#v!K~ufCMxpvl!X4A_{Q6a_%*~AUe@;%wum7ESGHD#wOmbD$R5wj6akf} z(%kH*LE}fmexW{iw{0;mO_*-n)mktfvW>b{BNT|C0v1nW?}FzXZ(>hQy`0`dVngeO z*U#B_94=FW1K3KmYhGlW-dMstUL%~Q>vtgk-=QK!PEo(mVN&a}Zs8G)Gh>k450=S= z-ic}osm?T3yT9zU`Orz&qeX)VXVl2kN0_t>{n@s+-S3Jbp?Bx1N=j~Llp73xxi3Jq z%zJ(k-YHb;?J4-Atdv09p{LoO%=i^85lllI%LOoG3D(?=I);O0R@^$1Qp5t4r$Xz5 z&1a(C0y>iY4?NNBLUTJ?XUXLP=kms_1k*VY0BP{uK)UwG&mK?AQ|Owe547{9hrkN(!f<{&I zuu;b_f6W}7Z2l`^zJ-dy~1JLe_~WzO9A^)=y8(^-n%)40310D zK+8m-;flb7Lj?0xmS%;Xdeb z?H#nrKlv1(o$ruhXFl552uA?HbcGb#=R8>U#0wR24V&&-;vomHqmHIJhAJb1gF@x( z&v%OTVdmzrf19#oR^eRK8z4Az#$sY9_7U>01d;Y=B$!mADc(C8aN>6py~nzJQBfyy zzbN^Yx8V^FT2ohBa8bN65RXHSy>GNV#{cO4i zhi&=;lEg#U0;Ca4g;IZYMpu2W?FE#qH71lWU0TRy1(Iz>*JPs&IQSR7{kz6LqT-Z; zUg(t`lLva+KfN|}MTFAV3Kv%?d*Dr5T3GWwuJNrK5&45q)%iROsHxI$x)#*X6Tw4~}=WlLRZ@BHK7uP7gc z1ovr*cz|>-wJLh%T*ICbSV?N7Dh46(#h(Wp&q%*F9rP*qd-Jt}<(dsE(Qmy%r{Fy{ zME6e}`UduJx15|uz^qt3e+p${ zgY~z4nroiBsBW@=_kQYn=mc=BN88KKVwI3H+{L`EF9ds&@gFxp6EkIiwhuVY3xxAy zetfCL(e(;ZX8E8edp^q4nU&|ks^9(WzOG#kfUuingk9^NhJNMUZo%I5>CR_>_X&mD z^TKeuK(Jm5f?BOCY+oyh>G-&BF=80ow7aToPWdOfF>o$j6nR6R!VGysLzFgnkKdOy z?+sWjWsluBss*fL(CE;4)EJqrqVj?I}0alPSf??Rsp~q-;)nZ%=@}8gt5(`ZD(s0NG7pNr-kKEJ(rz)YB@eq zlZl+6E&z>Ia9u<0(kPn9z99+D4ktTTY3x z0*7f1g#=G&-9f^Ruv$$eTq=WUZB)oCyy||yr^d;7cWk|DR9+Mz6!qXB5KUCNqVhms zwUc@TDD|dHhYVsJdKA|&+{mT}I5;h_#M@lMgxeR`XW;1{d8>#b-CopIsyrEj9}ZtR zj{&N_Op#{OQ5MsNgCJ#q2NZA3a||$5>v?o5Nla4`um(s2tZ^5mJ`qfbnY&g7zU@gj z5o0i#wd^1-+p1&DS6q|4z-jD!l18dd)`8V7j4higzR;=>G=BpUnp{9Ec93th?j;PG z|4626zPHJ?*LYz)#q=WaRKql$k%>c+)|t6APt;)(*RWk-K=QW9G)KmsEcVj7hH>gq zcSQ!TL~@~bc_J_R)XOM7MGU%SWgwG!+8*HP_n?Z=L5w0THgb(|lIUao?>~P0sJy(9 zl0C74zZ_3m(U%_&gpj_qAJ<}J(NcuWYn}~fM{Tn2Y9;(MYZg}U7a2W0vp)Oqz-y?+ zrs5(mlWsmD8XLz7Kf*Mn>q}aE2%8vI zCV!FM_*vF0o**@@=)O*4PmC<`W#>?1Nvus;$9=sdCLJW*>T7ClcnwN^!L!OhopTf& z1=T0@twzZ^cBxpHpRv=&3~SE>5l;moUi_MZgBmU4>)!o~pLF5K&F6^1-N+k6`JD{| z{wiD9N4vO~$jhe13txO2F(w#%x>9*u?uv%5MM*llvM@n1MT(>)=4kYYm~@2h2bjq& zyWEhgK(Z=7c5A16Y@;Zk%(RTFcu~u7IBgcd#8YAJ*02EH-OxfQZk@#(o{lgL(nq*F z1vbCG_V~AKocN|X49gRQE(6oHEuR4{1L_@J^d2L%6P9mV03)h-uTtjdRpE!-$I}38 zZnL3yMoB?r$Ztf!7|0w->z76ufB=H|{cC+BcThBzcbWkT++d@K$F||lf(W=E;^AJa zw~f^C^T8D~k0fo;={J@J9bTEVg=NIAx{qeRzhG>8YhMhx2=Eyu1LSmL=b($V;{0vp3vL zJN9h7DPKX^2M*>WS_`DY_ zyIGUoQJNQy&I>E+fI(9D@EOm13vAC@3EEvR6(s%Tra_u;Sl~GK2J>^T%sZRYXHzN) zH_Yda`TT|TN)VLryFvw`JpBcIl{|RGQjGNL99g=*m3=7!e_}z_hsI?CGSot-AOaVC zHMl5^l!OUlfnl<^3HSKxrHR;li{-2yzXA*fO zg;$i5Z1YUi7bLuro*#G%Qce(R?)zGpC#mU});r*p_Hf9cH5 z+_ijA-kZ!1NXvWAgXzUJxqrdE$0N>wnPBU%8e5-MMfm$!;-2d|IBfx)-u_X(1*o0` z@FZOJlL;LPrLwo!+{n%}dX_r%`u`khbIa0EFVLAdWv9Y@e{5p=%qOhfN_pK)r-jAK zx_0a9?BdTtntpcTqkXxc)b7*S6VBHCM9_+loa%^?FE^+7kZ3{TKec{&X1XwVY*^!# zAfL`Zkn*D(dcZxvcBSX+n29#??)8zxQXWRu;nd{TcV4`96Vp$}c$2@?N{&;@hp+I+jywGk=iq29pk z3aPLfw6kJ=+ux-6J1tcd7g3b?6LX*I2n;3)81?o0@J(?$c@Ka)^v?KtXLJK?Y5#1L z>vSoD-&GbbwmD~!_paOXmb%(MX3siR|D$%HVje=~sVRvtR5HuiC&)D_bf9aG(4~S} z%{o}l7GS6PfgV02ZMn6ue}XKq=qVWjcl33|755aBt!QdaU*lD9Fvc)Y4m z=k)ih?57Epz&J|1pcI6`k2S#QgwQ%~*q1XH<}Y0EzLF^N*#ON7wfUj(s9ygUVEo|o zt+>`^QWWL)EjlR+LZUlP(L3|w-Z$IO9@?Ez#(K`S{Fi4q47?LR`18l@rqQ`2_cuIP za78nn35DapdxSNy;LA>IK60zxVwB+ z9ue3kLnv(DIcf&n4;G8&ua_|0A#-T0s?$fdm(9faH4A4kbJpDkh)~gO=@IE)eXGK06ZO%JXoraqU#{VJ4Z3~*o%AOCAzK_K)TY&ttj7FQy!fopR|oM- zktvcVki&hxyN}*|-~h-`1vl0gwBn&Iai{C1N7TBu7SU^Y!SW{pfTqyux~jac;&(sVp{o@~Yma9>0R~ow5FKN}&s< zsci8AgN5{FzdTg4&fOcJ>Lm>{1srGI{~-GvOj(dhqdC0a|NFJnLEMO){FzDF4m{kA zDXOueuMxWA-3p)9c3`TFIQY?=xu+Jej$_|Wu9|a`kYX^3V%M!d_ymwR(~Os|ycbxm zNcvgaR|D=M`=*Pe1e%zX6w`7|cq>(_GP6{^T^1-+R{ZD`N}^;59K2oTJV2k>@u(?3 zteMyVat(W6kiHk{q}}CEyOHVleVz^g6DU{k0h+q0zS=bB!LOwL#vZ}Y*hp96dI@xC zj`((krG55KAytlp$BQ}?+&<^H2a06bRzPJpU#$Q7jH5Tby|cy|GI~NOM3vhCf4);D z$WMa-E-@cU*A8v{MO(HqPpG!mtV~gZYyoyLa`zSCS+qn|y<>Yr33s+so+C5qYj-zS zdJ^);q(xyrYQZfQwVZ{pRZR@+{5Od?6SO#+DM2BUYCHEf=d$pi^YLKzq80ugw8Zwk5I|$ z;XJV>k+b6|4r}Q+E5wkv+B{-|bMZDHXRiV4!hw$0i)L>d0G|grf7)izMogMgWvD%a z@!kVh0>JujbB17F@0agms8>qBCmO)yq1ts$kpe|pQW>Af*h!Rf9*}Z6r~*7P2UYMH z%`eJNFC~I$l)N6gY0dfA=S5xKpKARLOB~bZw(nUU=_6jauBgE9IcJ+d`-|~RngBJY znndr`+E-*32#&JvoFCMW!}2K0zpnI85U6v3kEBhmhDcu5lyP%z3%l=C`3OQ*)U& z^U;3)cKEBVu0Rdcg4J&H(8HoQ<1-g!j6?#?z~=OBuvu7{v)2dP4O9)?LNBa40wvX| z55}4O>0Ak!f}T3w(hj$yQ5dU656Tgry+S$WOYD}a1~U7ProNLu-ew$44Axca7>(8( zA(~+JqF5cmmIshCyKPP@7V|H|pyDnDN^xI-0t@Tnjvu~F)bt(>4zSID4n&b@dHcQH z?L6DWIc>kQlPi>6pqQ&wZz46=+~W1fA__W)psE)EBqBV*R!lY$Q{(+$B4~JtOin;$ zaZ8>oq-*XAI(+CU4$!&`wFUp`6@ok4xfCbFo(h368UsWkFtL2#fEXf??i0@s-cnna zL$#QrtOm|=O9oMF=S$MGpTtGPc@d%WggT`oJx-;`TF{SCV%H~JKUPx%#9#6t3b7!< zK82ta@)Z+@jtAq7m!9^QdcEBavE3~Ms6`$YdyC$w=vZbP85U%dOTPXU%?K47E%$!W zDX1+JxJMcv5D`W%)6^dE>Yo%e@km=xW zNHvQJ|48f4?XhMmLxyVDrke(R`AbHYjE=B-#PNeW#3kj=QQFK>i7`|W2SSeZCWG69 z!Z^ZZSq)G@lD%HcDS*1X6|e^gxRTfY90t1#k9VjX2W~;C$^1{1ZYwQR98{|ZWtMP? zblBbLCF)6jZ7M!;K>W?VN){ePI%Fy%>=k>c65i(u6rM!76I=N#9 zyjBn}^Ypg31PK&Son_5NjA}wyN(~af z;k`7@LDoE0?iHz6s8|v@W(y=<;sjf1$#C{fw(muXeQg_Gg{|$#$Q;!_E+TpMX#(GyDRtrtx;EX zX{g2o9>!E zZSE;iXRJI*SYkC~1o@qQsq<(f1(qNuvFT+1<(k>Z;=|r!TU{Rq7G&$C=$W*IgmV+i4SkN6Yo{A?bsu65JFH1MWB2{Dbsv|e=H9QzFn+sh+<58#W^T`r~@v7xQRYm8LG!UH*>3kmOQ7!!6BF ztdYD&4-B35RSR0uHcG+}Wdwsf2ixZaUlb`POR>?fN~1cJqnmVFEQ6Vn#yO`Zk8bEdGT9XDe4anIn$B^@hRWlvlK;b~gTLV`Nv2c`g zp2LC0SW3W#Y8rpxwz2K73khys@GdBesrj$f?_u6$jUuS^nv}x;$@8SbP6ZGwd;v0O zUah`$@6-Gi(|xa_qk7@@9G@+8!-<~Dd8nGnyU@@Vt#RjHD~d5Fs4Pb46VFn{VgAly z`Xm~KDGiXG3gjKteFJd$9O^QJZG!# z<`s18_l7>a%PD=R1*BM{)!P^osWQmjSo33D0kPVP;b>@8fxvcPioB#NN>WG39H3=f z>V)T~NalPbbVHlx2p#-r0%|3GrOGaI0*!^Vh!g`7`5L{)fP)0Wr7xX1 z28V{oY2+`lyOIhsrw2P>9ub396uRVj20ff*?L^epw7x4#YC*5XmyrX;9kx)lJ$_&sZ8Exuo5AMA))Y&Bf~r)sY0Dq9@e z)Ym|(-xu)vEvM_)gTzuny7xo6kMSi*12SL$ge-|8xZwg5;9+1zdGlC47SFI zDk;z4iT`{>a7y+fUpxN03=Lp6)Nbom$=FV2MLA7awb|(;j|8V&&;HVc2nlGEEjtYt zm>}cf2Km7k%zcSFSp05;z;2=OyQDDv2%KW?8sF~oA%pke3f*-fNb-x#RE;`(Xn=cT(#FTpL;XYO#PPZWA{rBT&H6L-(%I$zz> z_Kv6%5-l)-X{zYiDpV7RhyXX*4{YC=r7=s4NYOz;Gb6{9?z4|ZnVqFrv(XmhhZdLw zVr3~@a^?@Mp?O~W!D+JNHB)Zq(dvRcC--lHuENP=r31I%50j2#0v*xq9qTj0%W%lXUL+NL_W$Ngz4Xw(2W`IIMQEgO ztazMX(w$-zDjYRu7r(HrS?GdfOVKSQV=boJu3xW`?EmDf%o=y299_L)oClB?zqou| z6{e2jqt|Op*S0d(EneE%Wq=Oj2*?)lR^)djSBle6X9{CbbdL&0>8jHQ&9`(vY$`5WgN;>Q3 zQ5=bI02&sF>H`SSMS7B3zkKc8E%ytBQeDws<3(}qJh26c%}8Uyb|yfX?;^+nIW-}F zdB6~bbw0x(%Q*BKSJvArqDEH3#`jH2Q6|>eMv}DF#&LkbU?;j2qK<>gEPk3#2?(LZ=k6{&1iK+yP_4p(>N}1s?VPS5Se{ddzWmJ46%9s= z%~Op1(Phd|Bc%ir`!`{U(!N&~g4Mwpw!)0W;&={CzV?hQDT zDr|YuS~9%GkM12WcbkWSmbH_?j<&72S`Bk4l#0bgg52w>t18qsZ^-p@5oJzxEKtbW zs-_33D)U8{7-Qk_vYGSWB<%RMoV@fp9yO+g*Ta34nKC z%<^4#^ss245&hg=20=$k;K>^qs_m^^Hlxtvijs8+-HBx}@sBJy9AP7Jsg(C8+X=M|{dBVO2rdst{Y8E1| zajPlzxJs>xjh&-c%yjWC9uCuvDHah{>rTB|dg{h}Q~1e9QpD#I0s$ias4ya&SOfu; zv!b`bxJc=00MVjF(%UmbS60GxQ*p5@4vXR3DD1w(txz1R%Y!%o7u)R;EmYy}k|IU~ z5cv>_uun+w`U4aZwL80>_Gv+Q>N&r2RdiQF*&;C?QWZ|L*soxiw?qWsRe<8Ch?F`E z%M}_{N`h+GDAl2sK?#}g8wm?HttJdslr!s_(E#@fn2gPBMzK! z3x~%K!+G6uNs7I57wb7(pkdebq-vIXsNue2Hy7ajDqAy^_TU|ZyRM>MUy53Y-OqU1 zd=9#zsd;o#L0nT`@`aO-J=AP+uq0)2_Z_U5f1^UfD*q2(5Dd7D`d<7ob-z7u8a?;|W8#Q=OGbA8 zBujh}&7}Qw8-pm59Bcr$YJ<>I^AR`|f3GpG=KIU@atjf%{py>ch0t%jY?IAW|G!yG zIYt5#(6O|`E@ReQ-dSP@9+S)|U=h|X!_Gqd*+TqZe@vjE*VLgZ-o$1#AG&ejt3|3e zDm=TRX1EDvC;&{$J*33vq_FQR!3CEiA$iQxzs+F4mli0c*j-H7zSSKx=wdEp!a`c_ z;Eb?~haZBzl8uI*o{~&60;K? zCdAM`ZxsDmagOe8;8WHd5!V0h#YvU>%%8QXz{WR_U=Xh-cbs0k7_`0KuE1o{KR@3} z_X%)7+jvWnmC5I=$ZF8K?RvuekG>!O82Dv;;3+QSi*7M~z>$uVZ{k((Q)eyy^uj`I z8~V@x1K=nG>WWh&Aq#!d3!&ikejNha^3(lH_cw~*UyTR;L$VFL{Ei9?t4S!6Tr^eS zxceLFYMQB9X(*Hb@~=WsL5IV!8Yof}jnFo8B`s_JIWPYl0Fz)~F0%(Eg-9krEo4Y0 zk;YR0$(?|6;zUhWR_^pD@~ffF$7Y9B&`blNH0FY z_&){`c;XaZu*U{5SI(^|YY&}N|dH}e4g2l=Vq<%WeRIGT?AsX*Ta5#{K~U| z{o}?&GwC2#XS@r(WrBbF_78t6SX!VKul#D>kqPlwe7!t(*!gdp3eY#AJx9QKMdNRo z$$vX|h3`Gro%VzXM|MXr;!euMXGs5eV<4|Wz|odt^PQIGAHV%$Fc4({5nJy2#x)Jh z<*=W+ud}vj{`gx8XbTu05%vXjtJs)iOiV5;(M--BZsz zFvc{ucjl9x2W)4*e_OC^&ovymae;aZ6%xdfAFfY0^_zW$D%N0}@|5$$fTOwPJA!tf z8`&*3J*1xtj!pGv*NyX^oWfuzp#4NJ0zUL8n8U~iAc3LjAh4-WI7a{XB7h85i@^wi zhIQ2&_FBB)s0v-$0-0QpaH2vxqCbg667F<^hA`%Q=O$9K)@;BooztI>Ovp{AW5A?M zHO%~#i!x7|h}Gb$-9_tE38G;m80cux^l`>wzlE1-w@Y1#ypAvln@^7q88Kuc;(I)Y zxt5&xV_PGJ@|Sx&)sI<$F{D~-HGt`}65m?*aXVmyCu7YX1T9p1m8+? zGN#yaVV?-dh{%rjuGqXzR=I?H&V${K_-L-}i>{7Di1A$0TE8ZQDrf7>nE9vI?J9<$ z=NvmOwF(Fe3$tqicN`!Yur$Jj+uHRXH~;S^kwOI#gH9nH4p<_3#3VZI9sMOFoyNh) zlFAvwVJ5$4IdS|FY}v23J7WQBZ2k>kSO;L?4Wksp2EihUWeITSx3}?Q!g6JQ0esI@ zKhR}uAIBwxN@z0}bto_2etE$Ej4EFIG;)8uf}>ussP+-wCJE)|9d|{B)Q`wbAd9JA zL2f%&HPX9aoEH#_4m+1nD0ewg8Bc(>z|hlcrr8N9;b9;dyxD9QN1{t&bYd- z?0Ec~Jhaz0^W=pABO=il7>1EE+IEM*=(4Sx$ne(ZBbHD}-wKcY;+NZKfzcBj3x(6F zPN1O|O(vEo((-H$k2UJX;7NlF#$v0l)YXrNlidjtr$~Y@Y?^Q>O7YOqen>YYSjM?n za|sKd5=o0;SuhU@e);YSq*iI{t<&U{z)fCJ+a(6ANvv>)f^#hnJoBe-%Uu8K78TUFLLzF$Qw~=TS(lRKHm)~VTg^_<73cKQfUZQ{;ZMDBn z8|nOCOJa#0SQ1M>51HE60U~c^18}6>C^I29ssgoXBQ;yBU(8ur<`%re;WR2!zb5s{ zFLCYFTg@@!0+l{lDB98D*J$bdmf@U{8D;5yyYz^4yfD18Y%^ZOBNr39e zxudfcCirs)`}ZOSCYnzy6bhVAELTn+I?O%g7`im8!8_$A*6})Ll$n7Ho};lPKH2B( zr*(Xfi^)P|knoq~`Seb$UAJ4;pk-22FbvS*K7Z^9ztF`}Rpos9?aoPpg;VmyqOa7e z7bX0QHMF|{r6;f_Yj3ZQjdwb`>0RzFg?5tffo@RQWOj{9ajtYS@t>;AW!NmZsSR$k zybo(ld;Pr5ufMJ|m7AH5Bu6|B$G;{P5%Im1w-`3SePY!P_WI`5+TSa0y%GNa?C~zQ zgK%{Nn;Z(exVY>l9@?96sad{D4{^pf6t9DnAAR^36n590;Te?7kF6(m~< zMp|G{+)u4OY;j-M>HEDEy7k&T7;%NcHa*elsl^?%4LI!5nPE{;I~9a;9CiIDg{2n3 z?xArX?uZC33b;Yh=ohs1H|YtNOc_4Plg6U{Nu{9ck`L_2+Dvw-Iee=8vsJE0Lm3@G zbn@v6hZyA68?Ds1h&Xhw@YvD~FS}U`Y{Zs2uYdkhb=lZOE4Q;|0*qzoJOo7f{a27z zysDFxJ2G_jn(kJ*d+BU>_~91`z>ke#M#WDzXDN;Jpx=i=VRiMMQ<%OFV}7!kyn%w{ z7UXbhb9M%N(v5|mfW8R|zs>JYGO>9SnPn+v!(E;p#SgNhD6?gnoXnH%%!dt3l49K} zUC${s2DeXJj};vcW?7o-_Am~$=Ub%N4BHAxcn*KMK5+S6>?(MjU1kk7T=r_OttD*X zWG@*Z*<%1Cz9a=HX%f96%<1`7S4}+;e^}7uZO@H7Bnk2Ou8Ap{?keQJ#m?uM=MSv& zWegO9Glb{xDMAP>ET)VfGk*8iG6R}+xiMJ?n5ZH3DpgcB??pQlVNGk^2IV!FFHE|PIK&>|OAS|t z8ly|zuYWxo6*8u&OEOCJbJ!|)HJGpWwc6G4Zuo&N3<5Rt`6asJ&A+?=wDql~n)A$4 zxfm(959gbdOnXKOh-&b4@ld0PX2NtDY$z}eMw>(wG6knviERax4sD$3g*nj4`Cr3D zYW%u1mH>4KNo7}yy^qWGaxbmSb;1%|^L{Z4gOVQT5xtDJ3`2MnS%g&5^%QPje53VMOY{Lg=Iun>xdfdaCINA@~JX|?9HLeK>J?#>A)}X;!#hDi5 zStf+4Y{-6L&};lw%~Z3=oVQu-rL~8@#R;8418ljhd}Z^D|0^P5qQG5K9cw;Mqz+7Sep*Y2bp7_Xn5B45x!>2^S1KUr`SF*dTE ztE$A6)DlP$_J2s{Q>*rPon~eyIFX{d=W3;1FvBT1FywtjuKcm~M!r?jX!5a@&$Nzz z!f`U0g!`ZXKAL~DSpx-xK6&z&@ZmbbpBz)+JiDGZ{>{(TGsby~?Y9U zb?;R8YTm6>tyPVsMb9OLQ9T$4-HaIC3|)vcGI0ank1Kao2Yg#JWHtAv0oQsOG!l00 z1FGP-X~y~8Jt2Asp`cO}(i>t-z5;w>#NCOnV#nsW*m@Bu%&NVst;5*J#b;eFx`*`< zwqxF}0ipK&MEa0b$`20Nb?Ni{UwkYe7$gq~hj-Od3{XcT^f7jTB_s79q<_cL<(Qm_11T)5BjzK6 zPDif><_W`&VU7u*Qs!=9Q;t)GDzVMUOp_~xDOvAA>zwO|F2j2bir;e))#w_c@1-X3 z`}_pCPdNNA*k4ND{PC{LU24knXp&v*-nn4@X29C9VWN+n>3+Kt4VPWaBQ2>?nRe$= z??5T*C0`bAbwuJ8oHeHvRHl>6YSBIvliH>LnV{bP~V&xx-NG;Fp0ZIdQtx=sld_CZ9gFAnDh%)Z+D=Au!!i zig^HMdO&Nt1g$>V@^?W&4Sho&Rq7WIw~Ev4&F|(&4_#O7xvey1s6|$a@zJnpa5Imx z|GpOc`=epJF>tJHZIg7wuFLYWqm5NxoLHbN-s6`qk&lQ{iaAZ95^|GZ+#6J~afRX4 zDPk&(OrY#E_@uD6H9&a93xb7`QCWZGcw+x(6BJM&d7v?Cb@csKHYflSEtRob_LEt)S}yqlKwKl zRS8osA%kR5-Shj&VuyDUzH_^8(c>%Nj9NFhi@id!%um`k8D-w)=swh3u2$CrdMi54 z5Qp?R97q@Rdo2r-NeWx{xFCYK%hKfFLJ*K>jw9GsYy5A|we8koYl2|_bXq{_*-so3 z;^tI?SL=MY`GbRCkpVNk`&S=lo@j&#Tmi3SR)cq?@hjl;UuRh*pGrY~fHU<0yMz$w z9VsI&ue+51B{K}RpfuzYS}e@u*tm>%@!Jo?vvyL*a1nS41%knqb5C zlhp!4X$|rMY#Qeyg|Q%!x3f_p+rQR|=*-4LIV&!JUWfh4%)C+=m%i_JU1A+jcQdtC z`2x0}v4ce|IlO{VGWr_B$U<4L{_|VUv%ot79B6->FInS8p*?r>uxG)bh+TBCrEQ)-~CKI-wd+gQ1sb+w_p5m^Zu zDZ#vGi_KssQd)Bl6XtsqmcnKVgMNnFfpBq>>dsQT@6;tpc`ybj zIa`=lic$9&Yasv zh*eh{2wdUJZ+Qc*OvB>3+#cU+!{P+hZ(*L#I0s-UB)D^1sf|WM$E8`>#zoew1%>01 zz;*q+fO6;UtJk$-YJzjXalL#bdGFQ&rxl3;H?(d&%DPP^KmCl*UYI|@XL>fpQyjUxC&Pn^%;``gk z1wurhSE6y^3uVxa_&X?KX8Konc6)M9x^E_J*5MbiipELS!1)c9k#-uTAq`N2$5KJY zoMz4UPGtVG^>)(vp;yUsM~nWsgpM53TmpI`&X11|VTrHQ?TRKN`Yn_|60TO7W5YGB zcLqR@PBPo2svLt3&(aN&@@*m`kuDgI{O~{TOVT;m5C-iNx!pk967NO9Z-X z*{QVJ?0l}ZY6>&PCMN}xg9S?qI{dip7Zf&La;vr2uwL|xz@ccq?Jmr!Jq02s1P4Zt z%7fNy@KdNF`2sUWU?))?!ZKcWoQ(aTkms)8#-Q$G!L6neo6ObO&;2o9a5S07?{^)) zB)3QN5PKP`WV`9e6i_!}u#vZ;w;C%ti*SSNWDbZ7a%JNG#ale0f*~8HcV`Q0kUh0x?fp4LF2B>vz-|+EEEYe;3@O z)U`o^%VZZG_7L6)foTkl5(6{PJuj<}=Vg@~x9P|6x54@Mi@<2$G!8Qtes}hG8Yb;8 zEUIX?m>3~m?AT3w$_(TXk`9~5d}Z6%(OG}5@Gt1d#?w&hw=^mpa`Sk^lK%>ut+k@K z>Ll}@K_=gu+*P@`otfC|F|ZhqIFpRU52;5=xd1r!Dnp;-f-xXAGtZIg2;RZnF1tU4 zMUg34$DPIAV9|#pbRY4psuzC^s5gm8HA;i^3=@H{iEC=a{OFf=BWgmf2*{+2dXhi> zmyLz5_QP%NqkggV7CwjdQ9Ct9VcYBx&?XL+V9sq{wW!LPh{@c=i=tJaIFUle&Fg+W zZPw-ISh6yON$~Oc>5jyK;L|#*c+rU7D1bG#g)CDe14wCcM`M#TgQ>VmlJakyd-^uL z0U-Q=FBt0fTzB5^r_?o+N4r*=dE^in(ZG|NZ%s#PZflT`MeLJW;sV%T_;PO{5I9Cr zUzO|BXn!PM4?T=!$qV4@=_MMWZv*P@tY?lBt|^*nqPc(JSM%bg{QrSpDgMH*+{=$` zEdYM)i2dX|r&;6Wna<-4lp*v==>Z71!dcj65>-Qsn<`+9I#KfWb-im>0pEDl094B| zjr_JGPvyO13W!C6KL}{|WikGhI7GYa*j%|m(d;8B_qB*-0 zS-W&ZXfx}T7_*#XOQt<6-6X$S=|k4 zo~{o|db^cL9MajsDs&A;>~72S`gwCZxzOV*nZW zr|zJs{|+gj>6T>y)VM60zXRjDf)U3G4j0}QivluFD{ZP{3?Wv?1eKD2GWzUwbaI&2 z4?+t$2B@i9eSWSKdS0*nR~szb#;|pQ`Id?sAHM*JL>Z2=-$f(1j9ymd0i3(zFQ1-} z=OHPN4PZPrjew8HJWuSVZ#Wsp3VlK8{Jw$7Vaia5NVzHzV|5cH`U4;lKMzY(gv&ko zh348sS2kS7c@jjP3+bQT!UajCJa40C%h#J9NAi5F8NKV}IjpC{`^H;x!cGhgd*1tw zUB4c$b!2H8mr zodOclU4jVG-Hm{BgCN}{ASvD5@a^CIyyv;kdC&ch@%^a-#&xl;wbx#It~uu_D^W>o zNe3^F&Y&(EfPo`zN~MRAMDL)~&Y@X zyA)pgtVJy4AefPc8JrY(3pce0Y`H(1?eBKSfT=Q_;gYZAY~4E!G;*~sh5a^kYv3b0 z_FnU@-~14VcBMZ4f^-kr7{1!ag#RzhP%j*0DLpGL{VZ0nG2r0GL-og++rVf=5J-fC zdA8~1f4&(2P#K?)a;lh+;I!mJ{w<_{_{t=HW7(zjO1qiHJIk* zrZa-`mp5m4@8#3J3VU5sNr)CDpMyI1We_5p5(=<=v(^~sv(*zgmNio1_w_``fAduj zH&_2O=d0oQBEl?|7#xx5%T}$k19l$qv_? zl-8EcnV3^VVoNkxm?Pn^LE5Tt?J4$N=;bo8RBCLr?SU`Rulyt@3lqiHyF~Y^sW<(v zGp0(p!_th8^&8g8)meuRoa56!mjKXO)BqROBKZY1&kA}rq6j1Y!yzgsYmNFr)L&GX zJar2PlgOWw2z(c7DheIkFL{+R+4Ov&Rsv+?Fd|yq-%TIFR#?c2&C@l%n@rOj2ud?L zKKWk$;2w6pA6tzpQhHL+Q2}SofbpDS0uzQYe3MFmz>_m=y$xquDL72S#413a>LWdX zpWfFf+}wT#r9$oCE~a;I_OgK0UT?5^gEFayC73F|y$Q5l&ZVJ|-uUm;Ea+sP9?J&9tVKvcQC+!C*L@*dC=~UX?txRo!f+Mx) zWimK22-h!Q@b$1j$7iz3F6%kb%t$_FS2rByA;Kcw%ol?xV-{>#P`>|0Hx`=GPNkeRj887Oz6Ht_vsJHj14=sA&e zL=ZYA{A{`kWdF@v^WH-CUvBJ1OUD~XC3lC@@nG?H)A8SHI=!!u?dNLt%(DF&RB|M| z2s}hpLl~39Nbsw`T~Ir{vqZ%8)}`1ol8uAW?RIO#5I1C~`uuE5sXPhn!y;t|$6#pe zin$nKq5O3Dc9`6SCJpDH=BE}8qMB1M&Ct}i?}JOasmw)w?{k|0=Ptzuunrf)6En0* z_@K?>5x+O(`jWi2`88sd-#0|rV+Q3cS)8U12MP0bRY9QvAIiL&eE~r7%@V-v`k2OX z^O}2DNU%3YZ$lbVflm{6zXOaA%lo9qpyb~SVzM>nzcp*+GLYaV@)hMQg65>Ci6hz2 zXId1n8In@LwXW1dG>OxJ;FaCDA_+@kuFQEhcR697YZOnHJH7{uAL91)>Zc%|m&qt_ zpX===DZ2P#ms+1hgM(zgoZ(gU*`0~7dF9@V{Nl7}hKT^+$ZQk5SlP;Bw|5xq5itaK z-%G7OEO?JYG~k*mQU`|T9sPBu4iAQrrX2L}PluF-myCXQqyOArYG8mg|91P}$9zsg z`=Iz8-&kH=4o4On`RnNn3rMBy1GU{`Mr&xTU@a!OIIq?H{zNgHR1~^_`P21@+E6@; z6dtR-TF;*efE++t#wQY~h+8tAcZWjLC6g(@OUQO@gd}8pwd<=}KJwGR`)f|yA7;D1 z9rEhRHHr0U&AUxC1u?sj{$O)<3_t(9+8vsY70P2}@Qgv-UV(_`NL>-rn7C_#-WXQt z3sv?|x9ysEPsv;Sg4JXw>1Jqe0jr-~MTqM;T3;G5)Jag*odT$SrJv6Q>Y-OAeGaG^V|bxi_ixN0#3kL^g-?rCANyX6Cas(RE-9 z5aTgOZWy&3zDWCMz{`(13D3`i6o_yhL;L zquPWCchh4UU8oHj4E$m@Lub!@1_>i#&2J43Ok`07NB1Xw#iZl?8~O2{30-sE1Cm32 zHXaiV{wZ6?8WtcEWVJ@O&EPy^io_j}Pvv16v*>p{vk3Hn29F1|kBkVYeT;-lT83f6 zt{>7W|DQeV1{z2VY&O8p89-t{z~zMluih->n-7z{wF5%f7PN62TPU zI(i~Uu&0908Lo?*cmcW}Tzt4h(b&jY!VQi;_jTWWlUf4JM$2XY+;in2LDnP@Jo1Vb z;m+WP_IG9JD58Y%>|vnG@&m@kXrctN09%bgKKMzsg%{q_1&Ij~@E`I= zNK#XY15e5{>cO5I?@fyJE^-}&r)ka*^nTO)fh6yxSfK3sw^ROXs-`0l^?ojqh;c(YuzI!BPrVXnDV{17i>eQfUQ-)A>Tye#Vrh-$J^BoBL8t zw1+XXmCMR4?oM=4)jxE!ku=a(DR*C4I$%_bI(!%TpZlUFNe(l4#$2;=J~obJvdPBo zbn0nSs8(=GV~q_AbiBV7n%$$RIV~~o z{LBOWC)Jyb$z5lZcY;{RSyAA!5<5zZi)<9n%MPsubMIq6&`qmLE&*Q{wko04@GYB8 zVf!;ShZ!5eF16+7b}v-oV#4Adf{ zy{9NS0ObP0f_S%^*dhE+cH_<6h3dNo@kuzirf$Tf-m(_-CiaCE)y9W2LeKU za76Pt^Xp8B)TCc*O;wJj)CA4D?$i4GY2T}1o&oWqx9@;a6R3uiTUQQCX?4T!sXPRy zFO8n0Tt`@fvqYy9rREIdeU|)HXU65E4oT99_raQQ+;4F1<~|@qC;xf7usv20j+i(W z8~}%6ULH2|lh+3g*lPEj$9Ii|R#5f;h}s#Hv5cDpFbShNuUA!PYRTO^vWS zf;M%_%kQ=ZN*P@#%1{D()8!O`@Ti#ZN$AyOwIU#J3Oqs6W;}53U92AswrDPicR8bG zL&9pXIJMrg_ic=7YKZ*DAQ;{;0EZWCVWGgGh9+=6;{%tNt6y;Fg4)Wf7_=}_k(e1> zAarX6t}XwenT5y&E9`aun$^%3Jws=C5{-Q)1`Ep(9_)7BK!({JJ4kDOVO#IEgD#d* zrJjYk7@#E(rch*C7n}FmAHI}VZuG;3-zH4jg}VvBcS0k7hMIJ-r;(38p1Z3gXSsZt zerI(W@A2NMda^f!a!=CTzu=S2;I9@Zlb>9CjEgfz*fj^M!O)zQcKJmr6p=nN`Mq6^ zq~P)%mjieqx$Cqeul=FSYwx%ouDz5>*Lpt*#M79H*)3$?xTjcB3Zkgvt|G?M!n!U3 zs(|IMhzlTj~uQC?2;o5ZSLlYiyOM)(9_YX)F^6k zy|0i+nWCcB9q-yb&R7U}&4?RC+{<3nXwNfZD<=ZrP_!Pqx46Lg(FfS-S}S>A~&y#f7ac$GhDOyHiAa>oWlp0&BZ7n>nK4~DU9$gOmpLSm&lW`M##5DcSIic4G> z@6oK*qVwYicuustFsQX>5YO5=UV|d7mFM)B6rD%YEP{md%N4^)?mymG?=w5%EF5;m zCwcbY`Bfr@Vi{%ob;rIB7A6Ng7jJP^M`Dz0sKuae*-!YJN$l7{w>L@a$ zrr+&e7a{ne&D_7g5KWshDzRd3FWRAhN@W|=bSk}Ldtt3$bR4AnnA-KRs}MM!lA78f zEG}CNBqd=y^QnJ14H7+p7x=DTrZq`x-5qL6af!1(RDOl6x#v)Cq00?H3txK~Yd_ z?0gMl9S#5AHq@~`B&~`ZIT}l-tiiI|hTyxit|?H=P?@~(xj9X5Ls{LcG;BW*K}t0H zhaxpjPB3^#I?-YpwF;wha!njhF0aMpn?4n2~e60RP{!* z5RXG;4LgTu!JnA|1~57N`sRm>H$b_-2l@{?AC?SxQiy*3pA_C91?if3KO>^lfqk98 zn_#?JY3MsPiFdT!Q+m}!89Up0fUh}_{12ejN;Rx_5Tf*Wu5_06I3@CEN9Xf9kFyaq z&&P=mbjID!_~MYZ0r^4{AyDff1Ijn-{EmGEmkqj|>a(yugZ0vP?pM~z65Q**@6h5Y zTn#R1RuTidw*H3(=`X4X0$zv=n3YkeC+k5~cB%ZEj78ygCLi>^Q@;WPHzjbR?uSK$PCefCr5WY{w}4nh;CP$zW_HS z>zNV(NJ6E`Q9tK#v1#i0u$e0*Z1Im&I!9Q4y4Y@&5;G^J5`N!b>B2s@*0G}m z3LUuMG?~lkzVk|le0tYEUg9(>4v4UT9@wz;u;DP@{rvC01(czS*9@|m{KCO#cmrm% zk+7iS|M&X;y}Z2PezDps-9IZ`RwJ6@M*60k{_ktbqV0d2cYkp@61sPBX&HKA@TScW zLW$TqJBj`wd{)e0q>T|5$=Y%dVhs6ihV)t)F~Emo{8WH)9xNi+)ba8?-rwH_JVY-9 zB#_h>@A^J>?i`_pD{y4Cy35ob3Ul_aKmU(+_}4#1Xg+hPC`1ql<@8&Jl$vh-T0)pu!%!s6bYVZJHG1O_68Cl{O^Uy z|1*-mK~9^eEO1EDy&FvXqZFdO{`naVuY2HszSdvy;FavBf*62hVLus@+3wXy?bYNb z3pzj0PE&df!=Q`^Mo4V#{r74SeFadqZZgRuu^2h1BgpgzuWv69(s7qyLGk&omHM~O zb1V<@Hb~1~IXl2cv0?8qfKzg!q%1obQTP8Z#RXzdfN(2A?lnz)_kk)R< zn0C~D79OvPTM=B5w&cku8Q3iRGs(Dv74gR>l3>gxsmV7FtLs`#jy?K+E!O|9kAubp zDVN(hsW^;XP8UgTA0G9m9 z5Al!LI`VPu%|dFQQ{vV%wQaaL9cbT0dSb&CX+USt`HIV2Tx7p0=s?I%s)3k;I?~%588m881{a z?0e{>e43MVsPD(Q!xi@8jlko<^?tnnde|&-&P^md<_r^#*@IUjFY&qgj`H^WCUOhG zFkO}+8FsJ=ncKJKpuE}5;tEqXchE}m=d$<8p zE9*D}31t4Hm6hl1G>~-W341?!<9r_%JP^+yPB2+mFjr+d5F+Gr8qZ?bC@1jYurR$D zjlZ^PJV&}fe<7jY*=#^F?eXqNq%dPtM9ZMX(ua_{K_FfDV=N)}&Y#TG-Hp0NljR8P z0SU^`iyQ!jDgO>RXdU`7jb=Ii{l!;01HS}jL#4>X@-r1TE!NC8V1Q4ad3n=h)w+e3 zIv&}+8*ITFV)2u;o`MW-=`nB<^j<`Nd^lzoujl|D_R1L*5e4r4*Sr4Vf6A-RATjON z^_Ck_P0)}o?JPjJfDTw!nOmjG6}%U_OCdmUz(8~jS_ijE4gKM`%*YQHiJ`Z4fb`8} zc1^`T_)w$9-x-o2qOCukRN=W5;cc4jN2tF}ox%K-;a+~yf;p#n5|0qCnlmvN=0m{g zR?kd%iWCx7gUb4*{x;x=3fnV3`CQ|ZYpskz;tf7180K-m8jRoh@9gOZ4ZZ}v=qghx zWXofr9i9Jmv#SrkYd_N{*Gp+~v!W*AwmDSQX?suE>VERtJ`@Q{$CJQPy}b$hdB<~~ z=@jN|K%IVZBrD2({=+R&UJ7L^8;{j+66h0JhR8vaDV{|UxygNppG3rC=Ga|}tDrQx z$z&PQTAOw6hp@u^`FLI;!3}(+m%jF%Z`*?sazEx}LnFHSjR*2GpAq1dK~F;zP_iu-i+mu==Mt5|+C+Aj!?7r9O;)8dyz(3n6ojNl z5xp+cDq8zQC~#BTgskhm;ZiEW*%!ZR@PPDDeqH>-X0;5ofY{BMNq-!50pRCM03rs- zT7GYGJJ}$fQZ^W+qr7+7y0emv^_a%QGpYgkF4A9uVJhAWIg9-FwyA)Slqv+9Ms~mx z)4IRfT+l#2qVFg=vb@)B`c7}Px_DB}(<48fQ`q&{f*C?O*c>L50Q8aEFYk6IN@pF) za4t04IG+nGS%3Z-7@xh|EDrt7#U#5!%6cv@4rc(GF*O*bjmH4!PlRTmcN9i$AHuNd zVGfq+qCibB05BLAu?A7yn+M{+K5=NghWJL5|4vVd5OqN!nMtVI=U|u@G6OibL6AIz z)avJJ+a~xlcFq2HW+Z@9?`#rrqa(qij~we1DD|(BrkSb%tzPoz7T=AR_j(@Ytr028ua}ow@A&=WMkYvB)5T`BZs6I^1!kLF-HTI9; zJ1n(u3Qm>kO?%jWDt(mPd{Fzjw@}PlX^2L`k4+s$rnR^*zO!C9`seU*?oZn}!1M)X zTRaxVx%HOYeV+_urW+-F&0?Bk$GuvcTwg^+5)rU(g@b%dOMp(l(n@ z8_D>PV_!LyPv-k^FBC78DjaKUP^)t1uodC7exOK6x}9vbD>&aw4hyrQ801gSerM?U zM7nIES2n8hK`H&TO26tP4Ef!!8}w$cdWwV$T7O3EuC#POZe;9_OxTEvZqQd5|5Xa2 zvw^$bOQWbbUu$ZRK_@L8b;Cp?;SVEUT73!nZvD#zDO({Jegbh%jpA5vti{T1Amde> zoQ6{HiSzV4GnY&d4;x1b0fDCi13D2pBA2~#AcNMu7Jd<>b#uG-(;K`Xa?8Hs@QI|n zgKyQUd5#7phK0zW#X6J+`vVmvv8(`)+fxzI&{K?`D!$UZ8|FbyEPBIg*v37Yun>&0 zS)kGlhN?+ydS8XA*O^GzwJ#+t73e$cF4tq>3}vd}Zv^yl0OTnjkX|N_Rn+pF3q&X6{T8DJ_*?U8#6IJb?M zsz%wBuqOUEr99*J!KHa8n(a#ENApebIZ~10;H1tgowYBvjodhqAVP%sJh8C{8cYe& zM#O$qHp-PLJ+-Ho2LeE=#i^KH<%f*ZrwC3t%-%jm^?Kuvk!RbSLwA|H7@;Wd3(C`xd!H19Qcp%WX?oD>D!HGu|p;wL6Qm#d6T7K z!<|aJsb2wzA6aF-7FpA4k0iW5x}Sy1^)!8gv@_X-z0Rp>Z71aq$LpPU&x4yLd^O4Q ztY#W;zdqK7aqX7~p^v2rJNx&Bv5}x}%~4_>AHJ$2O9h9ia$@u_U7UM{R5WpT-NBs9 zZ_gJR!xIUUg{X0(O+c(N8PxCm-76PIaJ|mKfXSk8eO|=-GDnU*$kKAYfd+>$B~v^E z(YX2uaJAP`4CR1J0Y|?U5z^Yv+>25Rz?#Se1in*-1(RfMMPwZ=hXCwm?7RAe9-pt! zN9-#N=D%?X+2-7boQ{<61w=_r1}TTr2y*G13tT|^So$O?gKDr+_mzBD>tYeeF)pW5 z9zeVQ|pS;!bV{Xao z(n0%lUFBMacjbp*N}>A|X^khv5{4z@EDOm1gttrhm4Dzc!k~kL7&fc(lveRwwx0+A zqJ0PgNcjW}m9Rsei!DB+Jy96xK%XiO4C=mHd)0=jZz@<>?fxL2xQ;ljKU&O{iOEn& zVA`RxO=7E#0O+W4y+L=MS6xkGwv0$ODMHu9+4gEHoo`!OH7Wk5k+eqHsvZRgMAFYj zc_IETp!9gZu#JXV%BEKm1cuw#J zfC=2i;to--09VdYL-avMr5U@AMHb5#AvsupsK^k{_{Q6_ zZgwPm4<#TmC?_+?DGFBQN85vp<#yJg0WR`Ta&uH~)PC-7R&-4-bQtKN98ILPKv2dF z+URZ+=W}#)e}3_dZLV_?_OSdU&U~_f+4t~SrX#aT3)FLxIYne#WSmO-=}EEc<5j>u z$)D)^4LDNstykY{ORRzQh_tvrB1YGEnH43H)1F3vJ52=JSniuVrA%QJM)DLfeNZ#T zD*!=kZiJ0|rrz1^e2^CEYFxl#5D$uAD7rcDRHIZ4%S+#WVw4Krw)`=c@xE68^{7rT zm8(eW>-=|H(S{gCbt@B9oL*x13w-vRey_BvLm{^a62=1a{oWU0*_vhZX78D}0foK@ zXeM3v7FG4+9gs|4#2{}LD~;BP52>k|qmi(OCsZz48U!8dEmyq@$HsbPIT1UO)=D)9 zs37Ot^C>0j4Ag_hOfSD&3&?xk2m}x9@z|>YLW5%0^0u#t^r!SU>GM2ae~N%wI{*RY z%`uCA(24(w>DFQ3`-OS3BSbi__c3p65VjBu06H06Wsxnq()z4n>%WQte?JLOu|Qjt z-OI}ZHKw6-zydiExNEhc1M>y(XFXA_R6{VNJjUF=TU=)cjo7-qHr0&&fhxe!laN42542sSRtPDj$s6->8?E8S{bBVBYLR zT8+yw^ieiRzYVIq>?j0BK)axd)& zG4wPI8{C6;c@C+b%kzpvCCKtQn_<}PFp1+VLR3C|g7+S0m*v^xgm)`QnpquZ>NkA$- zoqHQ{!ik6MH+en&K>t(ZZ63Sl#MF(;@tD)jD`-wFHq@k^nPI`FN!>7$H(a z)e$P=xNa4fwXOx%SUqIHCCo+#Wpx0ETBeHss1mGHovf^y(tqJ&{=vE1rX1`&fK#*J zX0I;}?v90rtsxUL2Y2ezH1h7Z+rP>`ajkS&R?KJ5TTx*nQZDW*WeO^|i_6N93439~ zgz~un<7)c84t&b?^Y-8kp=U~j#|eJ0Cqa$M9fh+kP24IXu#%>|!`R-xZKi(<4Zxw1 zMtwkJg+Aub!jmz|6kfgk{mncYe}R|F}XSja~w#768P znWF&bft6l=MM9L#v5%L1(iixqXo8*NM`y7$)3bJq_WDzbYk^uJYf>88!!LSRsN+R{ zm-9I*>!sV#Gi98RPO=c+pglT+lDbR1dK&C7451WsT&9Fjw{1bc%l$L-)R&arP3l}u zi=q*96%x*9Xt&E~VT3P8gz1GUUfMpxlvH^3s#!hjzVmaY1>ha}$VAD*2 zA}K?r#r1EM*~M9hWrY^P>vK|0>t|bV_K^K_az!Q%?T#$>m4iNCAw$wr+=F$gry|m= zBa#Ajs>XtqiDl|g+{{(s-u~#J{pw3~ek8JgQZu&DTkOm3DCBpMgKRPb&5Fq5?dNL* z#Y)%1{zf=QXUAh^@~DL(FZN=4nthiLF}9EIuFfYSSF4Bi*6jWh#{rjgKVOJ6_eqfd zvBnPE1~S(%Ep;Jk^nelR^dURRy2ofgGR;w3e`~0+jbt7E848j488h$aREHo#m z*+aHoy@WuLx zpAIY(Nj*flT%`u-%~4WXsb^{hte;_+9(-)}9ee$uN}iYyZ;>0*Cra%J4YY-T%pxmokm}NM6uXbX;A-l1_`=jP|M-G z`TGUK*VmD6bIZ+8PjoKk@d-6FjDLIz(Y17zs9GA!1zyUU?B+>b_zM+kBB>|&?4`~N zy;2+%tseU}LoZlW%KXyc3=72sA_=ZbytU0SPQGLKKyh9V$2p+DMI@BT0ooatL&&0L z)p{Y)DD0%1C5^CBm?k@I{I#B{Q!7cUT7l)5fl=bF% z%-iYInc+Cj>$?~DiomObjc>#&*LCoA>YKqU3Abxu9As32ISoQHduXq>M^Jx0IyelVu>E|rO-2WN>`lPQ_u z$ZiOgr=13iIzq`t%N@~hK;2T*k)ZO6bz!6O%Qjs-J}}}G%mY^ta3fI;#b=Ruu_q;k zyb*gh6buvHu=!OP%J{{5yrQCEA0FE%7OV&DcF#JdCx^zS^FRI0zYStE-pLxYJ2f8% zuuCtXIUpS?2b`2^*A{D3A-wSGLlQ3?TDvh54qOJj0vykEpg>nIQ)k8^El-(^%Mdbh z{8_8gU}PW39tA-(ezhrhQg@*Gv?k)&i2H->q#9bMm=_uaZdEpE=Zwc6{2bA5^PV2I z$3ODgVPwlisj97d6nISX2RV{FPyN8nU=j=TZyhRENj>3wl*)k6>WtdHj0{(zMbDUF z*Z4;OYAJA)Ty(fdiOJ_|ceYre;b|GM(@YCvLh|6u1}IedzhbmAb8a$W(3=!hlumV74EWvnV?8d7tC3<6=m3t581&dTKDV+bLFjLg z;Ovpvjks6e?yZEPoy)fny*K$!02>r!|MKFvePam7=mKdsOdl`-3jHAfS+a*sfXg9c z-z34|gVpB%8yBjfYZ5m1mTYMACdc74V4=-tip?owmmh?*Hr}LBlkd;t=8vqS(wZ&9 zirtq){wa+QO{)?vLUUU9hc!Y5#7tHHs2R9xs42Z87hc zwdO4}wkvw| z3xY8zPo;p+M7}evmkV9FqL!;tC=>xlU3W1KREWDJ8Z3$r2r*bWtv@xDtQ6^>#sg#7 z@Y{_8rLI|m*7zy9hKIO6qIHC;BC^6n2H`>H*%-E=w;(S*U8Z9q`a@%W#QThYjrM<| zwk(jQ91C|=+ZYKh@->W^aPR}H-ho7(?ia^+UJc3j@`M>CKhfk>Oha?RRK!)296N(z zX^LRa9`0Cg?@wr3KR$di5W0D-v?wwjs7tmzGVON0aw&7S3K#GtY*J5bh{8d=Jtaym zh9#AVF*bB=AxR?=R%@zGb&;2y-gfR=wQM*?ZSAjmPl*@e<(-|(*FVelr zxu?<|AcmKC-YL}08X*S?qi(ZxMH6#=!e!MjO&_5ZhkmG?_%6l6?{iwFSy_v-k+7Um zSNhn^>`6)AgrV zUwYmuZ#HJQYcI56G|Jq$lsl;&Yl(g(e{H`}o+3(0rd-&DF)6#vEi}}!OOI|P%*No; zr<+=29N8d9Pg4}bZv`ylH z_Qru2RYG&P(5mAkijK@{A{fhW=6e}|G@e)Aj`-X#+euEn{$D0%V{A6esx+_Tfx_TxlYwosAfs#jNP zhbH+HK_N*FYWya=d%2&s6P1=A!UqRkhF0cnizHKNLDT_vZfts$ZVK*}+7Bgl;LHvW zL9KTfazhk@L1h4CtgGGbo&9LjBSBtouK<{dSSh_g5t*ET_ze0a`n8SbP}Yxd%(1L& zEQs*{gD#6kbMqy>IKWbQep!6?KYm6VV~gFJlSP9HwB&Re)#%SLrL$#XGA95#cz~wZ z;`H<@k>z$+KZnEN(0Dw(sm{&_nf*g|C>pIK$zVQD0K=;kq-S&bafc9{%*%|Liy&Qx zsbWm?KP25+)LAartrYr zo#>>LoQdD@?c)EnK40Sbp4==WQ^LYkR%6$&}whF zzA4EdGozks1=pt%Kba*22=513Bm=B>Vus|->}`-=F-yxxQX!>G&;HX*fq|bgWO;}a z$-S+uCv!5;OMYi#h!ps!L5Yw z$0z-o0unR+m*(yzdFFyKnOuJfmaB#IyROgg>VFPV*o0(2)W{$@@=vN%r)e@~ijj>z z?CG9#;>a1+x7Pg75ZWB{dx`D%!#(MWXknm%$N3U7MbNHI1w-i!1mQ;)J4FqKuQ{Oq zqE_x{Cs>ZKN_BalM-Ru)Eu)wXq@XrGuO;bL(rxl}w{W|tz1}u2{sgHrPV^9FBmGdN zBUTUEU357b(pa)O4p}9#%4-mb47+pbuXcr?1<8d^riye~rzEQ?9T>poh6sRJV}?N^ zenhv=5MtC)Uyzbx8Yw4>d}K0)7m&ox6!9I;C7(X@K+zm)2(MARB(Ur7tMxj;ZY+I& zVeWF45DLBYRvcRJ>I!j`gj}j@$GTQ$tah*7>NeguUdV>Vdb|Lk6Dk-s*Qa^r6JoZ7 zbWEyPzLeL#{{#Qz@8(1Gw%4X_rJrPk|J{EyZoVQ^}0y`{(J_)doL+O8v?;h`9WteP)^2u zUA&7EuU&=RRJu@=8hL==Q9jtu8Vp{-rhZK|@P(cv|8;UaN1nWtz>mA@y;+AHfJ=Ii zzV$zh0jf%1B9}+Mju7$LY`N%N^HLL`kY;X#<12aK0?gV)sSqdNW@(ZmiLDmIUh1<> zBXo1}J4f&z$Qm&G5V-ps@l#cT7>Da>F5E_f!~YR`>V1}T60tW)M&Ai*=>mlz=ih{@(7nZheC3H}P!J#VDp zESU27m@tDXRIEmwON~M!C!yO(p}}m3(fducbI`v`WVqdLGg7D8{u6n-FJZfmmfMRYclgg0g2^xAK)G5d!8Qv2>`@#h>RM8+|(uo0lW5No~laPLtS_pc?YLveW9 zT)PJ0uwVp!4Ex4PR_uI5uHz$oB5WYjqIQ8t8V00zGpEB^EsWTrLhI6(`Hrhy%DJ2R z!=?EUIG_j?3CQqL4ck@4$(fRl7h~(1!Ui{&o>2Y)4^J;Xph@ z*m$(qa8;?ih);2<34-h`V*)?%guIXW$}>D74-LGxt_L2ndf}XVRe{#6d<1re2Z@t! z^)(?m{B2nB8vqTBePFzrayt^rvZk=-j*^|hG^YTR(%%%DrLQE=Q1jT@Kwh9U*Z!3A zDfNR+sm>;?T$&$f6k}Ey388A2u$kAJBrxi=%~s6Lm=mqOeweRK4Iv9V1Hx&npD(aE zZ5+Z0>X3j)@~9s6-I^Qt8= z$1+M@lRCXB)mN_qsgYj*f0vN{Z`8>BnO9_lJWcIoTCCWjAzBq*|MX)H5-c^mX=T9H zuCb3qq-Hay>zvOl`6{n=#ZoT$^I-9W7|YqL4DW4Tw?iu?1WL^%65i0hAPl)tM@JK0>J z(h>$T(_6M!RnR3n;J?iGMtBU0SH9q1CslJj<2c4dq&wOgAt47z-sNcV%NH6sQAM2( ziEE6Nm*bq-9WPIW3FYoT)L||)MyZx=y3(tKa7`7Mirk*>)SwDM#lT1(SS>e^=PSkq zq|_c}w<6qxC>v!RvtR>hzV%#LqzWEgSl={)1LrcgU>N6rD{`UZLEQke-Em`F16nwt z$2U_6urOVreI?9a)EaL|rDX<5uN6m{8tbiY;)#5m-y>w;km2EtT(GHM67h!2INY1w z^N1+=-}70OC5Z(k6>TuQ;$VO5xQ^jnbXx!M#lBv^g}}(TNX8qTD2ix0@%_eqs`-!s zgT+ z6>xT#Qo(QZL8&j=M56FVGQCAIy++&7x!Z3Xq>-9ZxQwCrE_Mimqj34FCfgkLNWf7Y zKjW5wG$$%Fqfr!K{Gckqf5jB#DA8tqgBpRu2rq4kE=W(3~8<#p*U%rYeAmK-23qPxHPI)MW%Kipb&5Wt=oF#J6EO2Ul}x>4Ep-M40vAf#}zs2~7bF zFSjryqkEqAWp$x}j`F(UzrZy+{nXu-3})bEBGVmuo>kcOj>~*`oxhekN7Qy#W3T{A z9HFBW<&d5d`h~b%hp6FqM`5c5>#4FDIL0)*t>q>=w2N&{apBU7gHNPFC0#eqEGAF|&V-Req_OhxpxYU7Ws*4KKGCD;NbY z;l;iIH4h3-B~2H4OWa;^UGt7*U@c1qeePC{3At0-9_9U!>&Im zXT2Flo|qgAW1oBuXOMBRkf02e!?Q0lZzOe{B4YRg5LJmkWeO&;=(R8e!(aq`%PQ{_ zFy$j(2|}#X-+Elr--;`nL;d0{DIJ-YT+8aZXKqEy1Z@=N{r)=r69D|^kBLg8UzO(jlZ zB+X`iH|wydLO7-_ltJJL=>tFC)%eP?LvAgqptX@9+;W{2fj=YETwn0bxGU^!X0P-$ zu$~Kl+b^_H=K9@fqeRhVb5V*91*P{uu(3Llcj0-y*gmikn-XmZ;lab|nC92(3`NF? zCDKJG8srAQ-r+p%*J$vXaqcmD0}PM%39&&ZGbFmWAbFIUZ(v;AWbhp z#ho#F8vU*B{xyMB)KA_&eHqCquZpF@v8c1$j+Ri|&WC}6bfOMU-E9cLByiu!x%Y6E zRq2Z_KHKS7#hMuAtsr-&_d_`kxhUDk(>XAZKlz8ZOLoDc!}2Y{ zrD+<5e5-7>;2M7iF%Jc}K%F|KN8``0kJeUu#<2|j@ce*L8#UmQRz{MpHw=V_Z$aYGaOTq~|GrpcrWm=Ef$;fkgE?zbm@c zlUWr#jdaVi=;27D3kq+{iXe=T6#y`ng!O~%<0PVp1s@t^a``6|jV%9o{Ww-l_0Kag znOhh7e2hHt#xLiRh`uYg%=Yp&z${Z;}swj3gzdbRnv=AEfz zjC4(KA(XqK2cTJDE3Y;}CC(!5dbO0 zt-5+iIP# z^Oh9g7<61l$RcTYnOEEuI7p9?0hNu=1q?_?nvy)7#K7<;KV|qfdh9UrrL&XN^m?`JVf8_?tDp z64k&6hV*ft2@T(bGe+)RgySmOC>&r5$9k|GqLJ|Zq6qR63d#6Cw48TB=tOCFoaF(? zrmRunVgayUZ<2zSv(ksps#L#mFeeRPGYF_&B(;cJSR=fmyaD%ym~i)iX{Fn znJJaKL~b}Z79Z)M6V(X6Cz`mH>o%46`sw*b25~AIez&)kbx0Fd?T3bF9#BmU3)<&WG-Hc8LpWA@)|-lG)ffw@QQ9vqKYmPpsLSI)~M=%DDL zGZk)8y}-?`6O>2n3H+?}n#&p(b~Ks4A)pERj`pYdn}w@sJ21wHXVp!6{gsXm)+W^Q z*TC~j7yrTkrdI2vKu{P@_w)%qfWp8rYJvG)k0%mlJN)6r(tFrT2VXLY>&@0&=Nnd{ zGt(ASXnR6O3QRVsqHdFtOEIHzwSu$F0d1XI0;}khZORy)#@viCm;JKyrSJ7NeZZZ0 z!v?p~CBCQ8w;o%y`|f>R?|>?w&3)>LuZ&T)b(mdrTt&KHfvtp<>i$OQ?03g;YaJ?B zjHE^zW@8%9-}7IKe9{?ALY&>-mgTbP9V~sEnBHv(Cm&4+j zv-x(eK)P997yuDXd=#V6(uk@{4 zy^X2|oqh0PXXydqyV)<#fGdsB&KBdBtDXidf^t!*Y?09yQ+ z<0RGE=xm-Zw=QIkIa9Wv<1X=yG@>WtL)U@Vq;zeO!Vbj*W0GkQs z!Ub&P72YF*vrE0y68*Y_};uhiw(oyl^Tz4={l1&33b6+Dl| zwus8Liq%uleJBA>HKh+O1Fqw^?M{LK_eZHXG=ArmtszT~Se+mo-RLvNM19cO&E4!5 z1gGo%kF(k)L{?SZpawrbacaT1Ro7>vgfDZ(Xg~UhC@(<}zEGPIrI@;Sfb;zl){6w@ zL)|QKfBHTS<(VuYy1?GA-!&eg1uO&PN(oWCCfrdI&@giUKepaFs0(jfA0{QGyStGN zX=&;15RjJc?hpx4>F)0C?vn0Sq)R&A&AIoT-#OoNo$(Kc5pjQZto5uXV829(MQ0KX zXC88pM@kIhQi0alJ-!!bEnEkoLPhchFgPMHOulx-8jpNrrlT<64$VaO&y+9+`5Ur z6OB69S2Kp>4h7@4}6#_$)@EvWe+ihcwaJcu|2I($B0kK+^8IENE0~hvrHxlPcob=>GH&GHcxK9iwf- zNqR~T)edkLV%{}O#ErKCwjT}geXYluqiQvRSF7dR=dSnXbP%ii6;kD&(|9Rs7BCU9 zm>;-ii?rXjOCjU4Egq)5I#Cn5bBlGU$4M{S$m>)F2H&ar5{dEj)3|7@xZ1KcA+#B) z=Hp0^C&)>8W_5_758D3C5vSbo9dBPaVikXPu%H$*OjBN=W?;!xnjQ(XX8bo9dJVw_0-he=diWr7M zS^)gyyjtFR`vNl4!&iTnwhS-SjO$>iT@G;>;$^NZEzz61(@D&|N!WDg7o~wVyLmPX zhxrf5C-su&>`TJ>MAk)+|dH}BI^FzRhdprA@MttMo4RDOoDDStpmanb11paw?IE+ zADvN=(2qPFCtD!PLiu9k?*kWoE~el9#5KO zqCz&igIj4815q>C{{G8miIMQIN|}0lTQDb3@NGF5-OgjWjo*OFd%3If^V*T=LIR5Z ztK_SqIQG2uoQU7DDk;&A(g(kDMV|E3s`TCiIT*@nvrmHO6>(8SV!Xwly&7CO5?Hiz z*sLE+n0I#%x3YYWhcJ(4^TJpdC%W-2=iL7s_R5iQ0)ecE1%dp;MMwx#`sS!Pn{+3x zkT?!q(hnWfyWtOC9x0c54WuluLsOn6wQQ-ucOU^KhmbK@SA(B7((h(V=COEeKi%n! z!q}|k)*};ET2DY)E#@akEp-Cvx*XXB`f13u(~0V3yOPL=NJzg2lW10Fjem(st%Wju z9XyYdSg@w&`LCps;<(G+Nc^<5HXlWhC*Ww=ricGuKdwIl%*)SNGE8mjm^3UbWzsPGP2QNuk+wv#3B}2p9#(b)vpRg`mC~3ZS{#TZ|r# zyEPc+dpxY^Gz5XQONyYkz3rOp(po0b2rm}xdz zz-_$IVzOPr4D??W(Q>od4GVEmtpM`tQFJm&?_oo5;lI$Z)JC;Kf zqb8GtX2n{jVX&8x!jpWa(}0;;jgG|P=MoB(3lM@~@zAS%@z5vxe2mxdBGIV8IK8@W z(&V?}dkeIAbngFGN`iMh*tFiR7T)znfFrn=g^=?4@6HP_#I782wE*u?P$@_D?xFF*px53E70T$AVWXV`avtM!=f26>YfBC=4edio68<5={MQ;x zyh!2AdBgH+!0o^pWk$FAr9ntMe~c(4bd&`R5q{}JG={HbZ;IaaolOQ7Q0V{L%AL;L zH`&F4w%#rZt|9clZk$e-ix;nf7{rqr3GnIG@1C;7V4lu}4Jw#8DwlVE7FaX1OFjJ= z&CglfLvELvJOQqs|7Y>AVGh%J>3gi32tE|u?XI%_OZz7X&hF2g?)y(KvT$ZT@6m0T z)-&?+5-5bCgPRqSlM)_9-qzK3e9Z^tJSm<3Yh>`hqP$aRs5N)tYe6Qk!fkAuIR6b@ zB>GbW>_Q7;)5hyXtQUhudQAsu=N*11M2~7ZlF*s+cyTopebOQ&rb~S4%5n4XZ%gw5 zN=TuT5X8lV0Wn}Z56ue2e=$KJFe|CR$&;mMwRuTkIYi&uCZXQgLyb+U9>{yDX}_`{ z_4)nLhwvz`W`N{Q#;K9`Kfk|p=k&=Rp>PpS;2+lh_RR{z|M4&U!~hEu|Ehuz`20Xp z{@{%nfOo$W`}p19Imd3e;6m%!drw?;P=;?1Bjf3vLtv?8ciS#d6pYSQY&q(e8 zu{K1ww*QwV&;mRwBC^Ap(oOb>QyL;b#RR_)Kh7 zlwm7h+t`%qU+;0Y7=SONVpRL0oZY%NyaTb`*MHwYWX_nUzd$ke4Fvm~M89r`{P!>Z zuW%O&d^&U(t(-Dob4k8;5Q;%N1<7$x)ZbJNx(q#X4a<2EV4y~XKf@@IibFl_#5)!5 ze-@0HI*#H=D-J^X4_oVC1E_Rw;cNW}uo+gXHsk-V&F~U;B@vh)`JywWqaXi+4we3Z zw&*Cr&7j86Bz5=u@I8|RRN(}+Xh7P5-Opb_18FuS3E+kKe==kEJg_vr$1U&x?rkyY zVK({qFaGbzdO0Z(Ff36oADpsE>ICJ>YC7(R+R-bt4wCF8aL`U-B4oBRP+UNCqw;F~LyIwJ^OOgbqf;vsOMEyQxd5wD5DAZO>_%)0)pLzkNZ)V@+sx*Pj)1kEGI);{bu8!t#hT#S+wE`QB{C;sxpYxlOdD`aH{E}Wj9M; zkLE1P^iOcpj|^-GKRoJnD@t%#TMKl9-NmO6|Bac8(BYAt2-q{8H;5eR~SD z?Y9&C3*f<%7^Fg_D9U2cn$4(L;k93DbS^;ujW*BCm}aF+*RA{GbJKJ`!iOF6DXP!8 z?_g?#-@;-@f8!n~nm@hhJ~aw5p#@kgVp50~UpJ2|-|9ejel8 zB%lm@GTk=$w+#;VaOc6xD|$(O+VTpVlao*;XPyOBQVQ$3`#_m_xq}*3L23*Le_FV0pbIYY-+{7qq1p!Z2$v%zDz{+k`ZE7Z zh`XWLI2|k!fW7j74?Ce{sOC8q!`Cq5f#~;eC?o~^ZkIiXH$h5dZsniU8q7?|;lml$ z6Y5V^6uquUY2bU-+I^&ADI|WZ!M4-uhz}N(VIF6(AjWoD-I+YDGw3E7Rx6Q>8bXmkzii7G7dmm;^LC{Vx5dI1J^41| zR&9)k>X_ZRCmoDb%l`E@R{P5}FPsOtQL+q1vu_zwHu)7uuqt_S3T-V7=oC#8yB(P3 z7I%kz-OIDGtL-0X1r$EG3Wy>A$#KxD*D2CK>caXPjFiBN3cNV_?gT;fYJQJpo3(C1 z&*}sOib9EH1J6GBdwW5ya>KN5)JWc8`gG!7(2ni@F?Mc$@u_I%WoTce0pzi(o8YE7 zkA1OUmDI5GE}>dN1M|}qkPwZIPY5n0?IVA*?1Q|&h=e#&BlK^)PHB+cF1M>2cPTT< z5*gGYKu46zV2?ciJ@hW+Y3<##`5UT6``^8w0{V5sfCLN)C7TtG`9E+TE&2GTFSCB# zokhpFs!}3jimbM~m;~FfeNxxD4BYwbbE2giFEGdO0HWsIW^bguA2y;0(|nCJqveCJ z^Do0>Zl~C!$@L}dh_67fS4-`Vb7OP#>h5uZ%qWcu5XzgqEjuQ`TGW&PqgQ^%U(z$h z+WLX!uieT0@wV@xQalTOzjQVK)-ZLJyc}8e2VW0IunNB`L)Ij{z$(nVUROzVkM%*! z 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 Z=~SzbR=O1*I1czvQBL(@-h~@}{|h{@=7<0Q From 2dd6be59b9d09f639efd91569f42c6dcf826c428 Mon Sep 17 00:00:00 2001 From: Matt Keeler <19890779+mattkeeler@users.noreply.github.com> Date: Wed, 28 May 2025 03:05:00 -0400 Subject: [PATCH 034/111] fix(m365): add compliantDevice grant control support (#7844) --- prowler/providers/m365/services/entra/entra_service.py | 1 + .../azure/services/entra/entra_service_test.py | 4 ++-- .../services/entra/microsoft365_entra_service_test.py | 10 ++++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/prowler/providers/m365/services/entra/entra_service.py b/prowler/providers/m365/services/entra/entra_service.py index b14f82b03c..05e152bf2d 100644 --- a/prowler/providers/m365/services/entra/entra_service.py +++ b/prowler/providers/m365/services/entra/entra_service.py @@ -493,6 +493,7 @@ class ConditionalAccessGrantControl(Enum): BLOCK = "block" DOMAIN_JOINED_DEVICE = "domainJoinedDevice" PASSWORD_CHANGE = "passwordChange" + COMPLIANT_DEVICE = "compliantDevice" class GrantControlOperator(Enum): diff --git a/tests/providers/azure/services/entra/entra_service_test.py b/tests/providers/azure/services/entra/entra_service_test.py index b09b6edaa4..11cd49b40c 100644 --- a/tests/providers/azure/services/entra/entra_service_test.py +++ b/tests/providers/azure/services/entra/entra_service_test.py @@ -93,7 +93,7 @@ async def mock_entra_get_conditional_access_policy(_): "include": ["797f4846-ba00-4fd7-ba43-dac1f8f63013"], "exclude": [], }, - access_controls={"grant": ["MFA"], "block": []}, + access_controls={"grant": ["MFA", "compliantDevice"], "block": []}, ) } } @@ -216,7 +216,7 @@ class Test_Entra_Service: ) assert entra_client.conditional_access_policy[DOMAIN]["id-1"].access_controls[ "grant" - ] == ["MFA"] + ] == ["MFA", "compliantDevice"] assert ( entra_client.conditional_access_policy[DOMAIN]["id-1"].access_controls[ "block" diff --git a/tests/providers/m365/services/entra/microsoft365_entra_service_test.py b/tests/providers/m365/services/entra/microsoft365_entra_service_test.py index 46e92aa1f1..defe476e4b 100644 --- a/tests/providers/m365/services/entra/microsoft365_entra_service_test.py +++ b/tests/providers/m365/services/entra/microsoft365_entra_service_test.py @@ -68,7 +68,10 @@ async def mock_entra_get_conditional_access_policies(_): ), ), grant_controls=GrantControls( - built_in_controls=[ConditionalAccessGrantControl.BLOCK], + built_in_controls=[ + ConditionalAccessGrantControl.BLOCK, + ConditionalAccessGrantControl.COMPLIANT_DEVICE, + ], operator=GrantControlOperator.OR, authentication_strength=AuthenticationStrength.PHISHING_RESISTANT_MFA, ), @@ -211,7 +214,10 @@ class Test_Entra_Service: ), ), grant_controls=GrantControls( - built_in_controls=[ConditionalAccessGrantControl.BLOCK], + built_in_controls=[ + ConditionalAccessGrantControl.BLOCK, + ConditionalAccessGrantControl.COMPLIANT_DEVICE, + ], operator=GrantControlOperator.OR, authentication_strength=AuthenticationStrength.PHISHING_RESISTANT_MFA, ), From df8aacd09d58590aaf4ce8d71dc7581a62780971 Mon Sep 17 00:00:00 2001 From: sumit-tft <70506234+sumit-tft@users.noreply.github.com> Date: Wed, 28 May 2025 13:21:28 +0530 Subject: [PATCH 035/111] fix(ui): Added missing icons (kisa, prowlerThreat) on compliance page (#7860) --- ui/CHANGELOG.md | 1 + .../icons/compliance/IconCompliance.tsx | 8 + ui/components/icons/compliance/kisa.svg | 439 ++++++++++++++++++ .../icons/compliance/prowlerThreat.svg | 16 + 4 files changed, 464 insertions(+) create mode 100644 ui/components/icons/compliance/kisa.svg create mode 100644 ui/components/icons/compliance/prowlerThreat.svg diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 6ba9950320..443c6bbe03 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -11,6 +11,7 @@ All notable changes to the **Prowler UI** are documented in this file. - Possibility to edit the organization name. [(#7829)](https://github.com/prowler-cloud/prowler/pull/7829) - Add `Provider UID` filter to scans page. [(#7820)](https://github.com/prowler-cloud/prowler/pull/7820) - Download report behaviour updated to show feedback based on API response. [(#7758)](https://github.com/prowler-cloud/prowler/pull/7758) +- Missing KISA and ProwlerThreat icons added to the compliance page. [(#7860)(https://github.com/prowler-cloud/prowler/pull/7860)] --- diff --git a/ui/components/icons/compliance/IconCompliance.tsx b/ui/components/icons/compliance/IconCompliance.tsx index 543f6c68c8..304fe091b4 100644 --- a/ui/components/icons/compliance/IconCompliance.tsx +++ b/ui/components/icons/compliance/IconCompliance.tsx @@ -8,9 +8,11 @@ import GDPRLogo from "./gdpr.svg"; import GxPLogo from "./gxp-aws.svg"; import HIPAALogo from "./hipaa.svg"; import ISOLogo from "./iso-27001.svg"; +import KISALogo from "./kisa.svg"; import MITRELogo from "./mitre-attack.svg"; import NISTLogo from "./nist.svg"; import PCILogo from "./pci-dss.svg"; +import PROWLERTHREATLogo from "./prowlerThreat.svg"; import RBILogo from "./rbi.svg"; import SOC2Logo from "./soc2.svg"; @@ -60,4 +62,10 @@ export const getComplianceIcon = (complianceTitle: string) => { if (complianceTitle.toLowerCase().includes("soc2")) { return SOC2Logo; } + if (complianceTitle.toLowerCase().includes("kisa")) { + return KISALogo; + } + if (complianceTitle.toLowerCase().includes("prowlerthreatscore")) { + return PROWLERTHREATLogo; + } }; diff --git a/ui/components/icons/compliance/kisa.svg b/ui/components/icons/compliance/kisa.svg new file mode 100644 index 0000000000..8450a6566d --- /dev/null +++ b/ui/components/icons/compliance/kisa.svg @@ -0,0 +1,439 @@ + +Created with Fabric.js 5.2.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ui/components/icons/compliance/prowlerThreat.svg b/ui/components/icons/compliance/prowlerThreat.svg new file mode 100644 index 0000000000..f14d50c323 --- /dev/null +++ b/ui/components/icons/compliance/prowlerThreat.svg @@ -0,0 +1,16 @@ + + + + + + + + From c2e54bbbcc2f1ec6661b2aa53fdbea9de930f699 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Mart=C3=ADn?= Date: Wed, 28 May 2025 10:03:20 +0200 Subject: [PATCH 036/111] fix(threatscore): remove compliance name in tests to remove dummy files (#7859) Co-authored-by: Sergio Garcia --- tests/lib/outputs/compliance/fixtures.py | 4 ---- .../prowler_threatscore_aws_test.py | 13 +++---------- .../prowler_threatscore_azure_test.py | 13 +++---------- .../prowler_threatscore_gcp_test.py | 13 +++---------- .../prowler_threatscore_m365_test.py | 13 +++---------- 5 files changed, 12 insertions(+), 44 deletions(-) diff --git a/tests/lib/outputs/compliance/fixtures.py b/tests/lib/outputs/compliance/fixtures.py index ddf25ad661..c656165195 100644 --- a/tests/lib/outputs/compliance/fixtures.py +++ b/tests/lib/outputs/compliance/fixtures.py @@ -857,7 +857,6 @@ KISA_ISMSP_AWS = Compliance( ], ) -PROWLER_THREATSCORE_AWS_NAME = "prowler_threatscore_aws" PROWLER_THREATSCORE_AWS = Compliance( Framework="ProwlerThreatScore", Version="1.0", @@ -901,7 +900,6 @@ PROWLER_THREATSCORE_AWS = Compliance( ], ) -PROWLER_THREATSCORE_AZURE_NAME = "prowler_threatscore_azure" PROWLER_THREATSCORE_AZURE = Compliance( Framework="ProwlerThreatScore", Version="1.0", @@ -945,7 +943,6 @@ PROWLER_THREATSCORE_AZURE = Compliance( ], ) -PROWLER_THREATSCORE_GCP_NAME = "prowler_threatscore_gcp" PROWLER_THREATSCORE_GCP = Compliance( Framework="ProwlerThreatScore", Version="1.0", @@ -989,7 +986,6 @@ PROWLER_THREATSCORE_GCP = Compliance( ], ) -PROWLER_THREATSCORE_M365_NAME = "prowler_threatscore_m365" PROWLER_THREATSCORE_M365 = Compliance( Framework="ProwlerThreatScore", Version="1.0", diff --git a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws_test.py b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws_test.py index b4771b6139..bae12554ee 100644 --- a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws_test.py +++ b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_aws_test.py @@ -10,10 +10,7 @@ from prowler.lib.outputs.compliance.prowler_threatscore.models import ( from prowler.lib.outputs.compliance.prowler_threatscore.prowler_threatscore_aws import ( ProwlerThreatScoreAWS, ) -from tests.lib.outputs.compliance.fixtures import ( - PROWLER_THREATSCORE_AWS, - PROWLER_THREATSCORE_AWS_NAME, -) +from tests.lib.outputs.compliance.fixtures import PROWLER_THREATSCORE_AWS from tests.lib.outputs.fixtures.fixtures import generate_finding_output from tests.providers.aws.utils import AWS_ACCOUNT_NUMBER, AWS_REGION_EU_WEST_1 @@ -24,9 +21,7 @@ class TestProwlerThreatScoreAWS: generate_finding_output(compliance={"ProwlerThreatScore-1.0": "1.1.1"}) ] - output = ProwlerThreatScoreAWS( - findings, PROWLER_THREATSCORE_AWS, PROWLER_THREATSCORE_AWS_NAME - ) + output = ProwlerThreatScoreAWS(findings, PROWLER_THREATSCORE_AWS) output_data = output.data[0] assert isinstance(output_data, ProwlerThreatScoreAWSModel) assert output_data.Provider == "aws" @@ -134,9 +129,7 @@ class TestProwlerThreatScoreAWS: findings = [ generate_finding_output(compliance={"ProwlerThreatScore-1.0": "1.1.1"}) ] - output = ProwlerThreatScoreAWS( - findings, PROWLER_THREATSCORE_AWS, PROWLER_THREATSCORE_AWS_NAME - ) + output = ProwlerThreatScoreAWS(findings, PROWLER_THREATSCORE_AWS) output._file_descriptor = mock_file with patch.object(mock_file, "close", return_value=None): diff --git a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure_test.py b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure_test.py index 64b79acb9e..d259641967 100644 --- a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure_test.py +++ b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_azure_test.py @@ -10,10 +10,7 @@ from prowler.lib.outputs.compliance.prowler_threatscore.models import ( from prowler.lib.outputs.compliance.prowler_threatscore.prowler_threatscore_azure import ( ProwlerThreatScoreAzure, ) -from tests.lib.outputs.compliance.fixtures import ( - PROWLER_THREATSCORE_AZURE, - PROWLER_THREATSCORE_AZURE_NAME, -) +from tests.lib.outputs.compliance.fixtures import PROWLER_THREATSCORE_AZURE from tests.lib.outputs.fixtures.fixtures import generate_finding_output from tests.providers.azure.azure_fixtures import ( AZURE_SUBSCRIPTION_ID, @@ -33,9 +30,7 @@ class TestProwlerThreatScoreAzure: ) ] - output = ProwlerThreatScoreAzure( - findings, PROWLER_THREATSCORE_AZURE, PROWLER_THREATSCORE_AZURE_NAME - ) + output = ProwlerThreatScoreAzure(findings, PROWLER_THREATSCORE_AZURE) output_data = output.data[0] assert isinstance(output_data, ProwlerThreatScoreAzureModel) assert output_data.Provider == "azure" @@ -144,9 +139,7 @@ class TestProwlerThreatScoreAzure: findings = [ generate_finding_output(compliance={"ProwlerThreatScore-1.0": "1.1.1"}) ] - output = ProwlerThreatScoreAzure( - findings, PROWLER_THREATSCORE_AZURE, PROWLER_THREATSCORE_AZURE_NAME - ) + output = ProwlerThreatScoreAzure(findings, PROWLER_THREATSCORE_AZURE) output._file_descriptor = mock_file with patch.object(mock_file, "close", return_value=None): diff --git a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp_test.py b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp_test.py index 4727cc748c..5318392ea3 100644 --- a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp_test.py +++ b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_gcp_test.py @@ -10,10 +10,7 @@ from prowler.lib.outputs.compliance.prowler_threatscore.models import ( from prowler.lib.outputs.compliance.prowler_threatscore.prowler_threatscore_gcp import ( ProwlerThreatScoreGCP, ) -from tests.lib.outputs.compliance.fixtures import ( - PROWLER_THREATSCORE_GCP, - PROWLER_THREATSCORE_GCP_NAME, -) +from tests.lib.outputs.compliance.fixtures import PROWLER_THREATSCORE_GCP from tests.lib.outputs.fixtures.fixtures import generate_finding_output from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID @@ -30,9 +27,7 @@ class TestProwlerThreatScoreGCP: ) ] - output = ProwlerThreatScoreGCP( - findings, PROWLER_THREATSCORE_GCP, PROWLER_THREATSCORE_GCP_NAME - ) + output = ProwlerThreatScoreGCP(findings, PROWLER_THREATSCORE_GCP) output_data = output.data[0] assert isinstance(output_data, ProwlerThreatScoreGCPModel) assert output_data.Provider == "gcp" @@ -140,9 +135,7 @@ class TestProwlerThreatScoreGCP: findings = [ generate_finding_output(compliance={"ProwlerThreatScore-1.0": "1.1.1"}) ] - output = ProwlerThreatScoreGCP( - findings, PROWLER_THREATSCORE_GCP, PROWLER_THREATSCORE_GCP_NAME - ) + output = ProwlerThreatScoreGCP(findings, PROWLER_THREATSCORE_GCP) output._file_descriptor = mock_file with patch.object(mock_file, "close", return_value=None): diff --git a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365_test.py b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365_test.py index ea0b3e529f..fa43a336ec 100644 --- a/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365_test.py +++ b/tests/lib/outputs/compliance/prowler_threatscore/prowler_threatscore_m365_test.py @@ -10,10 +10,7 @@ from prowler.lib.outputs.compliance.prowler_threatscore.models import ( from prowler.lib.outputs.compliance.prowler_threatscore.prowler_threatscore_m365 import ( ProwlerThreatScoreM365, ) -from tests.lib.outputs.compliance.fixtures import ( - PROWLER_THREATSCORE_M365, - PROWLER_THREATSCORE_M365_NAME, -) +from tests.lib.outputs.compliance.fixtures import PROWLER_THREATSCORE_M365 from tests.lib.outputs.fixtures.fixtures import generate_finding_output from tests.providers.m365.m365_fixtures import TENANT_ID @@ -30,9 +27,7 @@ class TestProwlerThreatScoreM365: ) ] - output = ProwlerThreatScoreM365( - findings, PROWLER_THREATSCORE_M365, PROWLER_THREATSCORE_M365_NAME - ) + output = ProwlerThreatScoreM365(findings, PROWLER_THREATSCORE_M365) output_data = output.data[0] assert isinstance(output_data, ProwlerThreatScoreM365Model) assert output_data.Provider == "m365" @@ -142,9 +137,7 @@ class TestProwlerThreatScoreM365: findings = [ generate_finding_output(compliance={"ProwlerThreatScore-1.0": "1.1.1"}) ] - output = ProwlerThreatScoreM365( - findings, PROWLER_THREATSCORE_M365, PROWLER_THREATSCORE_M365_NAME - ) + output = ProwlerThreatScoreM365(findings, PROWLER_THREATSCORE_M365) output._file_descriptor = mock_file with patch.object(mock_file, "close", return_value=None): From 41f6637497cee4bd2b5c22ec4809f9f6d537a53a Mon Sep 17 00:00:00 2001 From: Daniel Barranquero <74871504+danibarranqueroo@users.noreply.github.com> Date: Wed, 28 May 2025 10:32:44 +0200 Subject: [PATCH 037/111] fix(defender): update `defender_ensure_notify_alerts_severity_is_high` logic (#7862) Co-authored-by: MrCloudSec --- prowler/CHANGELOG.md | 1 + ...tify_alerts_severity_is_high.metadata.json | 10 ++-- ...r_ensure_notify_alerts_severity_is_high.py | 13 +++-- ...ure_notify_alerts_severity_is_high_test.py | 54 +++++++++++++++++-- 4 files changed, 63 insertions(+), 15 deletions(-) diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 741a89f2aa..583c2a09b0 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -25,6 +25,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Fix `m365_powershell test_credentials` to use sanitized credentials. [(#7761)](https://github.com/prowler-cloud/prowler/pull/7761) - Fix `admincenter_users_admins_reduced_license_footprint` check logic to pass when admin user has no license. [(#7779)](https://github.com/prowler-cloud/prowler/pull/7779) - Fix `m365_powershell` to close the PowerShell sessions in msgraph services. [(#7816)](https://github.com/prowler-cloud/prowler/pull/7816) +- Fix `defender_ensure_notify_alerts_severity_is_high`check to accept high or lower severity. [(#7862)](https://github.com/prowler-cloud/prowler/pull/7862) --- diff --git a/prowler/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high.metadata.json b/prowler/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high.metadata.json index 20fc3d837c..d8a4f1812b 100644 --- a/prowler/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high.metadata.json +++ b/prowler/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high.metadata.json @@ -1,16 +1,16 @@ { "Provider": "azure", "CheckID": "defender_ensure_notify_alerts_severity_is_high", - "CheckTitle": "Ensure That 'Notify about alerts with the following severity' is Set to 'High'", + "CheckTitle": "Ensure that email notifications are configured for alerts with a minimum severity of 'High' or lower", "CheckType": [], "ServiceName": "defender", "SubServiceName": "", "ResourceIdTemplate": "", "Severity": "high", "ResourceType": "AzureEmailNotifications", - "Description": "Microsoft Defender for Cloud emails the subscription owners whenever a high-severity alert is triggered for their subscription. You should provide a security contact email address as an additional email address.", - "Risk": "Microsoft Defender for Cloud emails the Subscription Owner to notify them about security alerts. Adding your Security Contact's email address to the 'Additional email addresses' field ensures that your organization's Security Team is included in these alerts. This ensures that the proper people are aware of any potential compromise in order to mitigate the risk in a timely fashion.", - "RelatedUrl": "https://docs.microsoft.com/en-us/azure/security-center/security-center-provide-security-contact-details", + "Description": "Microsoft Defender for Cloud sends email notifications when alerts of a certain severity level or higher are triggered. By setting the minimum severity to 'High', 'Medium', or even 'Low', you ensure that alerts with equal or greater severity (e.g., High or Critical) are still delivered. Selecting a lower threshold like 'Low' results in more comprehensive alert coverage.", + "Risk": "If this setting is too restrictive (e.g., set to 'Critical' only), important security alerts with 'High' or 'Medium' severity might be missed. Ensuring that 'High' or a lower threshold is configured helps security teams stay informed about significant threats and respond in a timely manner.", + "RelatedUrl": "https://learn.microsoft.com/en-us/azure/defender-for-cloud/email-notifications-alerts#manage-notifications-on-email", "Remediation": { "Code": { "CLI": "", @@ -19,7 +19,7 @@ "Terraform": "https://docs.prowler.com/checks/azure/azure-general-policies/bc_azr_general_4#terraform" }, "Recommendation": { - "Text": "1. From Azure Home select the Portal Menu 2. Select Microsoft Defender for Cloud 3. Click on Environment Settings 4. Click on the appropriate Management Group, Subscription, or Workspace 5. Click on Email notifications 6. Enter a valid security contact email address (or multiple addresses separated by commas) in the Additional email addresses field 7. Click Save", + "Text": "1. From Azure Home select the Portal Menu. 2. Select Microsoft Defender for Cloud. 3. Click on Environment Settings. 4. Click on the appropriate Management Group, Subscription, or Workspace. 5. Click on Email notifications. 6. Under 'Notify about alerts with the following severity (or higher)', select at least 'High' (or optionally 'Medium' or 'Low' for broader coverage). 7. Click Save.", "Url": "https://docs.microsoft.com/en-us/rest/api/securitycenter/securitycontacts/list" } }, diff --git a/prowler/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high.py b/prowler/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high.py index b7154e99aa..34eaab9624 100644 --- a/prowler/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high.py +++ b/prowler/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high.py @@ -13,12 +13,15 @@ class defender_ensure_notify_alerts_severity_is_high(Check): for contact in security_contacts.values(): report = Check_Report_Azure(metadata=self.metadata(), resource=contact) report.subscription = subscription_name - report.status = "PASS" - report.status_extended = f"Notifiy alerts are enabled for severity high in subscription {subscription_name}." + report.status = "FAIL" + report.status_extended = f"Notifications are not enabled for alerts with a minimum severity of high or lower in subscription {subscription_name}." - if contact.alert_notifications_minimal_severity != "High": - report.status = "FAIL" - report.status_extended = f"Notifiy alerts are not enabled for severity high in subscription {subscription_name}." + if ( + contact.alert_notifications_minimal_severity != "Critical" + and contact.alert_notifications_minimal_severity != "" + ): + report.status = "PASS" + report.status_extended = f"Notifications are enabled for alerts with a minimum severity of high or lower ({contact.alert_notifications_minimal_severity}) in subscription {subscription_name}." findings.append(report) diff --git a/tests/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high_test.py b/tests/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high_test.py index a2764139c6..23aadef795 100644 --- a/tests/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high_test.py +++ b/tests/providers/azure/services/defender/defender_ensure_notify_alerts_severity_is_high/defender_ensure_notify_alerts_severity_is_high_test.py @@ -31,7 +31,7 @@ class Test_defender_ensure_notify_alerts_severity_is_high: result = check.execute() assert len(result) == 0 - def test_defender_severity_alerts_low(self): + def test_defender_severity_alerts_critical(self): resource_id = str(uuid4()) defender_client = mock.MagicMock defender_client.security_contacts = { @@ -41,7 +41,7 @@ class Test_defender_ensure_notify_alerts_severity_is_high: name="default", emails="", phone="", - alert_notifications_minimal_severity="Low", + alert_notifications_minimal_severity="Critical", alert_notifications_state="On", notified_roles=["Contributor"], notified_roles_state="On", @@ -69,7 +69,7 @@ class Test_defender_ensure_notify_alerts_severity_is_high: assert result[0].status == "FAIL" assert ( result[0].status_extended - == f"Notifiy alerts are not enabled for severity high in subscription {AZURE_SUBSCRIPTION_ID}." + == f"Notifications are not enabled for alerts with a minimum severity of high or lower in subscription {AZURE_SUBSCRIPTION_ID}." ) assert result[0].subscription == AZURE_SUBSCRIPTION_ID assert result[0].resource_name == "default" @@ -113,7 +113,51 @@ class Test_defender_ensure_notify_alerts_severity_is_high: assert result[0].status == "PASS" assert ( result[0].status_extended - == f"Notifiy alerts are enabled for severity high in subscription {AZURE_SUBSCRIPTION_ID}." + == f"Notifications are enabled for alerts with a minimum severity of high or lower (High) in subscription {AZURE_SUBSCRIPTION_ID}." + ) + assert result[0].subscription == AZURE_SUBSCRIPTION_ID + assert result[0].resource_name == "default" + assert result[0].resource_id == resource_id + + def test_defender_severity_alerts_low(self): + resource_id = str(uuid4()) + defender_client = mock.MagicMock + defender_client.security_contacts = { + AZURE_SUBSCRIPTION_ID: { + resource_id: SecurityContacts( + resource_id=resource_id, + name="default", + emails="", + phone="", + alert_notifications_minimal_severity="Low", + alert_notifications_state="On", + notified_roles=["Contributor"], + notified_roles_state="On", + ) + } + } + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_azure_provider(), + ), + mock.patch( + "prowler.providers.azure.services.defender.defender_ensure_notify_alerts_severity_is_high.defender_ensure_notify_alerts_severity_is_high.defender_client", + new=defender_client, + ), + ): + from prowler.providers.azure.services.defender.defender_ensure_notify_alerts_severity_is_high.defender_ensure_notify_alerts_severity_is_high import ( + defender_ensure_notify_alerts_severity_is_high, + ) + + check = defender_ensure_notify_alerts_severity_is_high() + result = check.execute() + assert len(result) == 1 + assert result[0].status == "PASS" + assert ( + result[0].status_extended + == f"Notifications are enabled for alerts with a minimum severity of high or lower (Low) in subscription {AZURE_SUBSCRIPTION_ID}." ) assert result[0].subscription == AZURE_SUBSCRIPTION_ID assert result[0].resource_name == "default" @@ -156,7 +200,7 @@ class Test_defender_ensure_notify_alerts_severity_is_high: assert result[0].status == "FAIL" assert ( result[0].status_extended - == f"Notifiy alerts are not enabled for severity high in subscription {AZURE_SUBSCRIPTION_ID}." + == f"Notifications are not enabled for alerts with a minimum severity of high or lower in subscription {AZURE_SUBSCRIPTION_ID}." ) assert result[0].subscription == AZURE_SUBSCRIPTION_ID assert result[0].resource_name == "default" From 2d71cef3d598363926d4f8e599840caec132f204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Mart=C3=ADn?= Date: Wed, 28 May 2025 11:35:40 +0200 Subject: [PATCH 038/111] feat(azure): add NIS 2 compliance framework (#7857) --- README.md | 2 +- dashboard/compliance/nis2_azure.py | 43 + prowler/CHANGELOG.md | 1 + prowler/compliance/azure/nis2_azure.json | 1898 + .../icons/compliance/IconCompliance.tsx | 4 + ui/components/icons/compliance/nis2.svg | 28966 ++++++++++++++++ 6 files changed, 30913 insertions(+), 1 deletion(-) create mode 100644 dashboard/compliance/nis2_azure.py create mode 100644 prowler/compliance/azure/nis2_azure.json create mode 100644 ui/components/icons/compliance/nis2.svg diff --git a/README.md b/README.md index 1219983bdf..8702e8f675 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ prowler dashboard |---|---|---|---|---| | AWS | 567 | 82 | 36 | 10 | | GCP | 79 | 13 | 9 | 3 | -| Azure | 142 | 18 | 9 | 3 | +| Azure | 142 | 18 | 10 | 3 | | Kubernetes | 83 | 7 | 5 | 7 | | GitHub | 16 | 2 | 1 | 0 | | M365 | 69 | 7 | 2 | 2 | diff --git a/dashboard/compliance/nis2_azure.py b/dashboard/compliance/nis2_azure.py new file mode 100644 index 0000000000..8baac9a9a5 --- /dev/null +++ b/dashboard/compliance/nis2_azure.py @@ -0,0 +1,43 @@ +import warnings + +from dashboard.common_methods import get_section_containers_3_levels + +warnings.filterwarnings("ignore") + + +def get_table(data): + data["REQUIREMENTS_DESCRIPTION"] = ( + data["REQUIREMENTS_ID"] + " - " + data["REQUIREMENTS_DESCRIPTION"] + ) + + data["REQUIREMENTS_DESCRIPTION"] = data["REQUIREMENTS_DESCRIPTION"].apply( + lambda x: x[:150] + "..." if len(str(x)) > 150 else x + ) + + data["REQUIREMENTS_ATTRIBUTES_SECTION"] = data[ + "REQUIREMENTS_ATTRIBUTES_SECTION" + ].apply(lambda x: x[:80] + "..." if len(str(x)) > 80 else x) + + data["REQUIREMENTS_ATTRIBUTES_SUBSECTION"] = data[ + "REQUIREMENTS_ATTRIBUTES_SUBSECTION" + ].apply(lambda x: x[:150] + "..." if len(str(x)) > 150 else x) + + aux = data[ + [ + "REQUIREMENTS_DESCRIPTION", + "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", + "CHECKID", + "STATUS", + "REGION", + "ACCOUNTID", + "RESOURCEID", + ] + ] + + return get_section_containers_3_levels( + aux, + "REQUIREMENTS_ATTRIBUTES_SECTION", + "REQUIREMENTS_ATTRIBUTES_SUBSECTION", + "REQUIREMENTS_DESCRIPTION", + ) diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 583c2a09b0..ccf9fb4a7b 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -20,6 +20,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Add `repository_secret_scanning_enabled` check for GitHub provider. [(#7759)](https://github.com/prowler-cloud/prowler/pull/7759) - Add `repository_default_branch_requires_codeowners_review` check for GitHub provider. [(#7753)](https://github.com/prowler-cloud/prowler/pull/7753) - Add NIS 2 compliance framework for AWS. [(7839)](https://github.com/prowler-cloud/prowler/pull/7839) +- Add NIS 2 compliance framework for Azure. [(7857)](https://github.com/prowler-cloud/prowler/pull/7857) ### Fixed - Fix `m365_powershell test_credentials` to use sanitized credentials. [(#7761)](https://github.com/prowler-cloud/prowler/pull/7761) diff --git a/prowler/compliance/azure/nis2_azure.json b/prowler/compliance/azure/nis2_azure.json new file mode 100644 index 0000000000..d3a350bfc7 --- /dev/null +++ b/prowler/compliance/azure/nis2_azure.json @@ -0,0 +1,1898 @@ +{ + "Framework": "NIS2", + "Version": "", + "Provider": "Azure", + "Description": "ANNEX to the Commission Implementing Regulation laying down rules for the application of Directive (EU) 2022/2555 as regards technical and methodological requirements of cybersecurity risk-management measures and further specification of the cases in which an incident is considered to be significant with regard to DNS service providers, TLD name registries, cloud computing service providers, data centre service providers, content delivery network providers, managed service providers, managed security service providers, providers of online market places, of online search engines and of social networking services platforms, and trust service providers", + "Requirements": [ + { + "Id": "1.1.1.a", + "Description": "set out the relevant entities approach to managing the security of their network and information systems;", + "Checks": [ + "storage_ensure_private_endpoints_in_storage_accounts" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.1 Policy on the security of network and information systems", + "Service": "generic" + } + ] + }, + { + "Id": "1.1.1.c", + "Description": "set out network and information security objectives;", + "Checks": [ + "network_flow_log_more_than_90_days", + "network_http_internet_access_restricted", + "storage_ensure_private_endpoints_in_storage_accounts" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.1 Policy on the security of network and information systems", + "Service": "generic" + } + ] + }, + { + "Id": "1.2.1", + "Description": "As part of their policy on the security of network and information systems referred to in point 1.1., the relevant entities shall lay down responsibilities and authorities for network and information system security and assign them to roles, allocate them according to the relevant entities needs, and communicate them to the management bodies.", + "Checks": [ + "aks_network_policy_enabled", + "network_http_internet_access_restricted", + "storage_default_network_access_rule_is_denied" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.2 Roles, responsibilities and authorities", + "Service": "generic" + } + ] + }, + { + "Id": "1.2.4", + "Description": "Depending on the size of the relevant entities, network and information system security shall be covered by dedicated roles or duties carried out in addition to existing roles.", + "Checks": [ + "sqlserver_azuread_administrator_enabled", + "sqlserver_va_emails_notifications_admins_enabled" + ], + "Attributes": [ + { + "Section": "1 POLICY ON THE SECURITY OF NETWORK AND INFORMATION SYSTEMS (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "1.2 Roles, responsibilities and authorities", + "Service": "sqlserver" + } + ] + }, + { + "Id": "2.1.2.f", + "Description": "evaluate the identified risks based on the risk criteria;", + "Checks": [ + "keyvault_key_expiration_set_in_non_rbac", + "keyvault_rbac_key_expiration_set" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "keyvault" + } + ] + }, + { + "Id": "2.1.2.g", + "Description": "identify and prioritise appropriate risk treatment options and measures;", + "Checks": [ + "aisearch_service_not_publicly_accessible", + "aks_cluster_rbac_enabled", + "aks_clusters_created_with_private_nodes", + "aks_clusters_public_access_disabled", + "aks_network_policy_enabled", + "app_ensure_auth_is_set_up", + "app_ensure_http_is_redirected_to_https", + "app_function_access_keys_configured", + "app_function_application_insights_enabled", + "app_function_identity_is_configured", + "app_function_identity_without_admin_privileges", + "app_function_latest_runtime_version", + "app_function_not_publicly_accessible", + "app_function_vnet_integration_enabled", + "app_http_logs_enabled", + "app_minimum_tls_version_12", + "app_register_with_identity", + "containerregistry_admin_user_disabled", + "containerregistry_not_publicly_accessible", + "cosmosdb_account_firewall_use_selected_networks", + "cosmosdb_account_use_aad_and_rbac", + "cosmosdb_account_use_private_endpoints" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "generic" + } + ] + }, + { + "Id": "2.1.2.h", + "Description": "continuously monitor the implementation of the risk treatment measures;", + "Checks": [ + "app_http_logs_enabled", + "defender_auto_provisioning_log_analytics_agent_vms_on", + "keyvault_logging_enabled", + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "monitor_storage_account_with_activity_logs_is_private", + "mysql_flexible_server_audit_log_connection_activated", + "mysql_flexible_server_audit_log_enabled", + "network_flow_log_captured_sent", + "network_flow_log_more_than_90_days", + "postgresql_flexible_server_log_checkpoints_on", + "postgresql_flexible_server_log_connections_on", + "postgresql_flexible_server_log_disconnections_on", + "postgresql_flexible_server_log_retention_days_greater_3" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "generic" + } + ] + }, + { + "Id": "2.1.2.i", + "Description": "identify who is responsible for implementing the risk treatment measures and when they should be implemented;", + "Checks": [ + "app_function_identity_is_configured", + "app_function_identity_without_admin_privileges", + "app_register_with_identity" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.1 Risk management framework", + "Service": "app" + } + ] + }, + { + "Id": "2.2.1", + "Description": "The relevant entities shall regularly review the compliance with their policies on network and information system security, topic-specific policies, rules, and standards. The management bodies shall be informed of the status of network and information security on the basis of the compliance reviews by means of regular reporting.", + "Checks": [ + "sqlserver_va_scan_reports_configured", + "defender_container_images_scan_enabled", + "sqlserver_va_periodic_recurring_scans_enabled" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.2 Compliance monitoring", + "Service": "generic" + } + ] + }, + { + "Id": "2.2.3", + "Description": "The relevant entities shall perform the compliance monitoring at planned intervals and when significant incidents or significant changes to operations or risks occur.", + "Checks": [ + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_security_solution", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_delete_security_solution", + "monitor_alert_delete_sqlserver_fr", + "monitor_diagnostic_setting_with_appropriate_categories", + "monitor_diagnostic_settings_exists" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.2 Compliance monitoring", + "Service": "monitor" + } + ] + }, + { + "Id": "2.3.1", + "Description": "The relevant entities shall review independently their approach to managing network and information system security and its implementation including people, processes and technologies.", + "Checks": [ + "entra_global_admin_in_less_than_five_users", + "entra_policy_default_users_cannot_create_security_groups", + "entra_policy_ensure_default_user_cannot_create_apps", + "entra_policy_ensure_default_user_cannot_create_tenants", + "entra_policy_guest_invite_only_for_admin_roles", + "entra_policy_guest_users_access_restrictions", + "entra_policy_restricts_user_consent_for_apps", + "entra_policy_user_consent_for_verified_apps", + "entra_privileged_user_has_mfa", + "entra_security_defaults_enabled", + "entra_trusted_named_locations_exists", + "entra_user_with_vm_access_has_mfa", + "entra_users_cannot_create_microsoft_365_groups", + "aks_network_policy_enabled", + "network_bastion_host_exists", + "network_flow_log_captured_sent", + "network_flow_log_more_than_90_days", + "network_http_internet_access_restricted", + "network_public_ip_shodan", + "network_rdp_internet_access_restricted", + "network_ssh_internet_access_restricted", + "network_udp_internet_access_restricted", + "network_watcher_enabled", + "storage_default_network_access_rule_is_denied" + ], + "Attributes": [ + { + "Section": "2 RISK MANAGEMENT POLICY (ARTICLE 21(2), POINT (A) OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "2.3 Independent review of information and network security", + "Service": "generic" + } + ] + }, + { + "Id": "3.1.1", + "Description": "For the purpose of Article 21(2), point (b) of Directive (EU) 2022/2555, the relevant entities shall establish and implement an incident handling policy laying down the roles, responsibilities, and procedures for detecting, analysing, containing or responding to, recovering from, documenting and reporting of incidents in a timely manner.", + "Checks": [ + "sqlserver_va_scan_reports_configured" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.1 Incident handling policy", + "Service": "sqlserver" + } + ] + }, + { + "Id": "3.1.2.c", + "Description": "assignment of roles to detect and appropriately respond to incidents to competent employees;", + "Checks": [ + "defender_ensure_notify_emails_to_owners", + "defender_additional_email_configured_with_a_security_contact", + "defender_ensure_notify_alerts_severity_is_high" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.1 Incident handling policy", + "Service": "defender" + } + ] + }, + { + "Id": "3.1.2.d", + "Description": "documents to be used in the course of incident detection and response such as incident response manuals, escalation charts, contact lists and templates.", + "Checks": [ + "defender_auto_provisioning_log_analytics_agent_vms_on", + "defender_auto_provisioning_vulnerabilty_assessments_machines_on", + "defender_container_images_resolved_vulnerabilities", + "defender_container_images_scan_enabled" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.1 Incident handling policy", + "Service": "defender" + } + ] + }, + { + "Id": "3.1.3", + "Description": "The roles, responsibilities and procedures laid down in the policy shall be tested and reviewed and, where appropriate, updated at planned intervals and after significant incidents or significant changes to operations or risks.", + "Checks": [ + "defender_ensure_notify_emails_to_owners", + "defender_ensure_notify_alerts_severity_is_high", + "entra_global_admin_in_less_than_five_users", + "entra_policy_default_users_cannot_create_security_groups", + "entra_policy_ensure_default_user_cannot_create_apps", + "entra_policy_ensure_default_user_cannot_create_tenants", + "entra_policy_guest_invite_only_for_admin_roles", + "entra_policy_guest_users_access_restrictions", + "entra_policy_restricts_user_consent_for_apps", + "entra_policy_user_consent_for_verified_apps", + "entra_privileged_user_has_mfa", + "entra_security_defaults_enabled", + "entra_trusted_named_locations_exists", + "entra_user_with_vm_access_has_mfa", + "entra_users_cannot_create_microsoft_365_groups" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.1 Incident handling policy", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.1", + "Description": "The relevant entities shall lay down procedures and use tools to monitor and log activities on their network and information systems to detect events that could be considered as incidents and respond accordingly to mitigate the impact.", + "Checks": [ + "app_http_logs_enabled", + "keyvault_logging_enabled", + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_security_solution", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_delete_security_solution", + "monitor_alert_delete_sqlserver_fr", + "monitor_diagnostic_setting_with_appropriate_categories", + "monitor_diagnostic_settings_exists", + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "monitor_storage_account_with_activity_logs_is_private" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.2", + "Description": "To the extent feasible, monitoring shall be automated and carried out either continuously or in periodic intervals, subject to business capabilities. The relevant entities shall implement their monitoring activities in a way which minimises false positives and false negatives.", + "Checks": [ + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_security_solution", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_delete_security_solution", + "monitor_alert_delete_sqlserver_fr", + "monitor_diagnostic_setting_with_appropriate_categories", + "monitor_diagnostic_settings_exists", + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "monitor_storage_account_with_activity_logs_is_private" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "monitor" + } + ] + }, + { + "Id": "3.2.3.a", + "Description": "relevant outbound and inbound network traffic;", + "Checks": [ + "network_flow_log_captured_sent", + "network_flow_log_more_than_90_days", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.b", + "Description": "creation, modification or deletion of users of the relevant entities network and information systems and extension of the permissions;", + "Checks": [ + "entra_global_admin_in_less_than_five_users", + "monitor_alert_create_policy_assignment", + "monitor_alert_delete_policy_assignment", + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "monitor_storage_account_with_activity_logs_is_private", + "monitor_diagnostic_settings_exists" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.c", + "Description": "access to systems and applications;", + "Checks": [ + "app_http_logs_enabled", + "keyvault_logging_enabled", + "monitor_diagnostic_settings_exists", + "monitor_diagnostic_setting_with_appropriate_categories", + "defender_auto_provisioning_log_analytics_agent_vms_on", + "mysql_flexible_server_audit_log_connection_activated", + "mysql_flexible_server_audit_log_enabled", + "postgresql_flexible_server_log_connections_on", + "postgresql_flexible_server_log_disconnections_on" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.d", + "Description": "authentication-related events;", + "Checks": [ + "network_flow_log_captured_sent", + "mysql_flexible_server_audit_log_connection_activated", + "keyvault_logging_enabled" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.e", + "Description": "all privileged access to systems and applications, and activities performed by administrative accounts;", + "Checks": [ + "app_http_logs_enabled", + "defender_auto_provisioning_log_analytics_agent_vms_on", + "keyvault_logging_enabled", + "postgresql_flexible_server_log_connections_on", + "postgresql_flexible_server_log_disconnections_on" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.f", + "Description": "access or changes to critical configuration and backup files;", + "Checks": [ + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_security_solution", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_delete_security_solution", + "monitor_alert_delete_sqlserver_fr", + "monitor_diagnostic_setting_with_appropriate_categories", + "monitor_diagnostic_settings_exists", + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "monitor_storage_account_with_activity_logs_is_private" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "monitor" + } + ] + }, + { + "Id": "3.2.3.g", + "Description": "event logs and logs from security tools, such as antivirus, intrusion detection systems or firewalls;", + "Checks": [ + "app_http_logs_enabled", + "defender_auto_provisioning_log_analytics_agent_vms_on", + "keyvault_logging_enabled", + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "monitor_storage_account_with_activity_logs_is_private", + "mysql_flexible_server_audit_log_connection_activated", + "mysql_flexible_server_audit_log_enabled", + "network_flow_log_captured_sent", + "network_flow_log_more_than_90_days", + "postgresql_flexible_server_log_checkpoints_on", + "postgresql_flexible_server_log_connections_on", + "postgresql_flexible_server_log_disconnections_on", + "postgresql_flexible_server_log_retention_days_greater_3" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.3.h", + "Description": "use of system resources, as well as their performance;", + "Checks": [ + "appinsights_ensure_is_configured", + "monitor_diagnostic_settings_exists" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.2.4", + "Description": "The logs shall be regularly reviewed for any unusual or unwanted trends. Where appropriate, the relevant entities shall lay down appropriate values for alarm thresholds. If the laid down values for alarm threshold are exceeded, an alarm shall be triggered, where appropriate, automatically. The relevant entities shall ensure that, in case of an alarm, a qualified and appropriate response is initiated in a timely manner.", + "Checks": [ + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_security_solution", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_delete_security_solution", + "monitor_alert_delete_sqlserver_fr" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "monitor" + } + ] + }, + { + "Id": "3.2.5", + "Description": "The relevant entities shall maintain and back up logs for a predefined period and shall protect them from unauthorised access or changes.", + "Checks": [ + "network_flow_log_more_than_90_days", + "postgresql_flexible_server_log_retention_days_greater_3", + "sqlserver_auditing_retention_90_days" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.2 Monitoring and logging", + "Service": "generic" + } + ] + }, + { + "Id": "3.4.1", + "Description": "The relevant entities shall assess suspicious events to determine whether they constitute incidents and, if so, determine their nature and severity.", + "Checks": [ + "monitor_diagnostic_setting_with_appropriate_categories", + "monitor_diagnostic_settings_exists", + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_security_solution", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_delete_security_solution", + "monitor_alert_delete_sqlserver_fr" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.4 Event assessment and classification", + "Service": "monitor" + } + ] + }, + { + "Id": "3.5.1", + "Description": "The relevant entities shall respond to incidents in accordance with documented procedures and in a timely manner.", + "Checks": [ + "defender_additional_email_configured_with_a_security_contact", + "defender_ensure_notify_emails_to_owners", + "sqlserver_va_emails_notifications_admins_enabled" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.5 Incident response", + "Service": "generic" + } + ] + }, + { + "Id": "3.5.3.a", + "Description": "with the Computer Security Incident Response Teams (CSIRTs) or, where applicable, the competent authorities, related to incident notification;", + "Checks": [ + "defender_additional_email_configured_with_a_security_contact", + "defender_ensure_notify_emails_to_owners", + "sqlserver_va_emails_notifications_admins_enabled" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.5 Incident response", + "Service": "generic" + } + ] + }, + { + "Id": "3.5.4", + "Description": "The relevant entities shall log incident response activities in accordance with the procedures referred to in point 3.2.1., and record evidence.", + "Checks": [ + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_security_solution", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_delete_security_solution", + "monitor_alert_delete_sqlserver_fr" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.5 Incident response", + "Service": "monitor" + } + ] + }, + { + "Id": "3.6.2", + "Description": "The relevant entities shall ensure that post-incident reviews contribute to improving their approach to network and information security, to risk treatment measures, and to incident handling, detection and response procedures.", + "Checks": [ + "defender_additional_email_configured_with_a_security_contact", + "defender_assessments_vm_endpoint_protection_installed", + "defender_auto_provisioning_log_analytics_agent_vms_on", + "defender_auto_provisioning_vulnerabilty_assessments_machines_on", + "defender_container_images_resolved_vulnerabilities", + "defender_container_images_scan_enabled", + "defender_ensure_defender_for_app_services_is_on", + "defender_ensure_defender_for_arm_is_on", + "defender_ensure_defender_for_azure_sql_databases_is_on", + "defender_ensure_defender_for_containers_is_on", + "defender_ensure_defender_for_cosmosdb_is_on", + "defender_ensure_defender_for_databases_is_on", + "defender_ensure_defender_for_dns_is_on", + "defender_ensure_defender_for_keyvault_is_on", + "defender_ensure_defender_for_os_relational_databases_is_on", + "defender_ensure_defender_for_server_is_on", + "defender_ensure_defender_for_sql_servers_is_on", + "defender_ensure_defender_for_storage_is_on", + "defender_ensure_iot_hub_defender_is_on", + "defender_ensure_mcas_is_enabled", + "defender_ensure_notify_alerts_severity_is_high", + "defender_ensure_notify_emails_to_owners", + "defender_ensure_system_updates_are_applied", + "defender_ensure_wdatp_is_enabled", + "sqlserver_microsoft_defender_enabled" + ], + "Attributes": [ + { + "Section": "3 INCIDENT HANDLING (ARTICLE 21(2), POINT (B), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "3.6 Post-incident reviews", + "Service": "defender" + } + ] + }, + { + "Id": "4.1.1", + "Description": "For the purpose of Article 21(2), point (c) of Directive (EU) 2022/2555, the relevant entities shall lay down and maintain a business continuity and disaster recovery plan to apply in the case of incidents.", + "Checks": [ + "keyvault_recoverable" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.1 Business continuity and disaster recovery plan", + "Service": "keyvault" + } + ] + }, + { + "Id": "4.1.2.f", + "Description": "recovery plans for specific operations, including recovery objectives;", + "Checks": [ + "keyvault_recoverable" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.1 Business continuity and disaster recovery plan", + "Service": "keyvault" + } + ] + }, + { + "Id": "4.1.2.g", + "Description": "required resources, including backups and redundancies;", + "Checks": [ + "keyvault_recoverable", + "network_flow_log_more_than_90_days", + "postgresql_flexible_server_log_retention_days_greater_3", + "sqlserver_auditing_retention_90_days" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.1 Business continuity and disaster recovery plan", + "Service": "generic" + } + ] + }, + { + "Id": "4.1.4", + "Description": "The business continuity plan and disaster recovery plan shall be tested, reviewed and, where appropriate, updated at planned intervals and following significant incidents or significant changes to operations or risks. The relevant entities shall ensure that the plans incorporate lessons learnt from such tests.", + "Checks": [ + "keyvault_recoverable", + "network_flow_log_more_than_90_days", + "postgresql_flexible_server_log_retention_days_greater_3", + "sqlserver_auditing_retention_90_days" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.1 Business continuity and disaster recovery plan", + "Service": "generic" + } + ] + }, + { + "Id": "4.2.2.b", + "Description": "assurance that backup copies are complete and accurate, including configuration data and data stored in cloud computing service environment;", + "Checks": [ + "keyvault_recoverable" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.2 Backup and redundancy management", + "Service": "keyvault" + } + ] + }, + { + "Id": "4.2.2.e", + "Description": "restoring data from backup copies;", + "Checks": [ + "keyvault_recoverable" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.2 Backup and redundancy management", + "Service": "generic" + } + ] + }, + { + "Id": "4.2.2.f", + "Description": "retention periods based on business and regulatory requirements.", + "Checks": [ + "sqlserver_auditing_retention_90_days", + "storage_ensure_soft_delete_is_enabled", + "network_flow_log_more_than_90_days" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.2 Backup and redundancy management", + "Service": "generic" + } + ] + }, + { + "Id": "4.3.2.a", + "Description": "roles and responsibilities for personnel and, where appropriate, suppliers and service providers, specifying the allocation of roles in crisis situations, including specific steps to follow;", + "Checks": [ + "defender_additional_email_configured_with_a_security_contact", + "defender_ensure_notify_emails_to_owners", + "sqlserver_va_emails_notifications_admins_enabled" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.3 Crisis management", + "Service": "generic" + } + ] + }, + { + "Id": "4.3.2.c", + "Description": "application of appropriate measures to ensure the maintenance of network and information system security in crisis situations.", + "Checks": [ + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_security_solution", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_delete_security_solution", + "monitor_alert_delete_sqlserver_fr" + ], + "Attributes": [ + { + "Section": "4 BUSINESS CONTINUITY AND CRISIS MANAGEMENT (ARTICLE 21(2), POINT (C), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "4.3 Crisis management", + "Service": "monitor" + } + ] + }, + { + "Id": "5.1.2.a", + "Description": "the cybersecurity practices of the suppliers and service providers, including their secure development procedures;", + "Checks": [ + "aks_network_policy_enabled", + "app_client_certificates_on", + "app_ensure_auth_is_set_up", + "app_ensure_http_is_redirected_to_https", + "app_ensure_java_version_is_latest", + "app_ensure_php_version_is_latest", + "app_ensure_python_version_is_latest", + "app_ensure_using_http20", + "app_ftp_deployment_disabled", + "app_function_access_keys_configured", + "app_function_application_insights_enabled", + "app_function_ftps_deployment_disabled", + "app_function_identity_is_configured", + "app_function_identity_without_admin_privileges", + "app_function_latest_runtime_version", + "app_function_not_publicly_accessible", + "app_function_vnet_integration_enabled", + "app_http_logs_enabled", + "app_minimum_tls_version_12", + "app_register_with_identity", + "appinsights_ensure_is_configured" + ], + "Attributes": [ + { + "Section": "5 SUPPLY CHAIN SECURITY (ARTICLE 21(2), POINT (D), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "5.1 Supply chain security policy", + "Service": "app" + } + ] + }, + { + "Id": "5.1.4.f", + "Description": "an obligation on suppliers and service providers to handle vulnerabilities that present a risk to the security of the network and information systems of the relevant entities;", + "Checks": [ + "defender_container_images_resolved_vulnerabilities", + "defender_container_images_scan_enabled", + "defender_auto_provisioning_vulnerabilty_assessments_machines_on", + "sqlserver_vulnerability_assessment_enabled" + ], + "Attributes": [ + { + "Section": "5 SUPPLY CHAIN SECURITY (ARTICLE 21(2), POINT (D), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "5.1 Supply chain security policy", + "Service": "generic" + } + ] + }, + { + "Id": "5.1.7.b", + "Description": "review incidents related to ICT products and ICT services from suppliers and service providers;", + "Checks": [ + "defender_additional_email_configured_with_a_security_contact", + "defender_ensure_notify_emails_to_owners", + "sqlserver_va_emails_notifications_admins_enabled" + ], + "Attributes": [ + { + "Section": "5 SUPPLY CHAIN SECURITY (ARTICLE 21(2), POINT (D), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "5.1 Supply chain security policy", + "Service": "generic" + } + ] + }, + { + "Id": "6.1.2.b", + "Description": "requirements regarding security updates throughout the entire lifetime of the ICT services or ICT products, or replacement after the end of the support period;", + "Checks": [ + "keyvault_key_expiration_set_in_non_rbac", + "keyvault_non_rbac_secret_expiration_set", + "postgresql_flexible_server_log_retention_days_greater_3", + "network_flow_log_more_than_90_days", + "sqlserver_auditing_retention_90_days" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.1 Security in acquisition of ICT services or ICT products", + "Service": "generic" + } + ] + }, + { + "Id": "6.2.1", + "Description": "Before developing a network and information system, including software, the relevant entities shall lay down rules for the secure development of network and information systems and apply them when developing network and information systems in-house, or when outsourcing the development of network and information systems. The rules shall cover all development phases, including specification, design, development, implementation and testing.", + "Checks": [ + "defender_ensure_system_updates_are_applied", + "app_client_certificates_on", + "app_ensure_auth_is_set_up", + "app_ensure_http_is_redirected_to_https", + "app_ensure_java_version_is_latest", + "app_ensure_php_version_is_latest", + "app_ensure_python_version_is_latest", + "app_ensure_using_http20", + "app_ftp_deployment_disabled", + "app_function_access_keys_configured", + "app_function_application_insights_enabled", + "app_function_ftps_deployment_disabled", + "app_function_identity_is_configured", + "app_function_identity_without_admin_privileges", + "app_function_latest_runtime_version", + "app_function_not_publicly_accessible", + "app_function_vnet_integration_enabled", + "app_http_logs_enabled", + "app_minimum_tls_version_12", + "app_register_with_identity" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.2 Secure development life cycle", + "Service": "app" + } + ] + }, + { + "Id": "6.2.2.b", + "Description": "apply principles for engineering secure systems and secure coding principles to any information system development activities such as promoting cybersecurity-by-design, zero-trust architectures;", + "Checks": [ + "app_client_certificates_on", + "app_ensure_auth_is_set_up", + "app_ensure_http_is_redirected_to_https", + "app_ensure_java_version_is_latest", + "app_ensure_php_version_is_latest", + "app_ensure_python_version_is_latest", + "app_ensure_using_http20", + "app_ftp_deployment_disabled", + "app_function_access_keys_configured", + "app_function_application_insights_enabled", + "app_function_ftps_deployment_disabled", + "app_function_identity_is_configured", + "app_function_identity_without_admin_privileges", + "app_function_latest_runtime_version", + "app_function_not_publicly_accessible", + "app_function_vnet_integration_enabled", + "app_http_logs_enabled", + "app_minimum_tls_version_12", + "app_register_with_identity" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.2 Secure development life cycle", + "Service": "app" + } + ] + }, + { + "Id": "6.2.2.c", + "Description": "lay down security requirements regarding development environments;", + "Checks": [ + "app_client_certificates_on", + "app_ensure_auth_is_set_up", + "app_ensure_http_is_redirected_to_https", + "app_ensure_java_version_is_latest", + "app_ensure_php_version_is_latest", + "app_ensure_python_version_is_latest", + "app_ensure_using_http20", + "app_ftp_deployment_disabled", + "app_function_access_keys_configured", + "app_function_application_insights_enabled", + "app_function_ftps_deployment_disabled", + "app_function_identity_is_configured", + "app_function_identity_without_admin_privileges", + "app_function_latest_runtime_version", + "app_function_not_publicly_accessible", + "app_function_vnet_integration_enabled", + "app_http_logs_enabled", + "app_minimum_tls_version_12", + "app_register_with_identity" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.2 Secure development life cycle", + "Service": "app" + } + ] + }, + { + "Id": "6.4.1", + "Description": "The relevant entities shall apply change management procedures to control changes of network and information systems. Where applicable, the procedures shall be consistent with the relevant entities general policies concerning change management.", + "Checks": [ + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_security_solution", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_delete_security_solution", + "monitor_alert_delete_sqlserver_fr" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.4 Change management, repairs and maintenance", + "Service": "monitor" + } + ] + }, + { + "Id": "6.6.1.a", + "Description": "security patches are applied within a reasonable time after they become available;", + "Checks": [ + "defender_auto_provisioning_vulnerabilty_assessments_machines_on", + "defender_container_images_resolved_vulnerabilities", + "sqlserver_vulnerability_assessment_enabled" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.6 Security patch management", + "Service": "generic" + } + ] + }, + { + "Id": "6.7.2.b", + "Description": "determine and apply controls to protect the relevant entities internal network domains from unauthorised access;", + "Checks": [ + "aisearch_service_not_publicly_accessible", + "aks_network_policy_enabled", + "containerregistry_not_publicly_accessible", + "cosmosdb_account_firewall_use_selected_networks", + "network_bastion_host_exists", + "network_flow_log_captured_sent", + "network_flow_log_more_than_90_days", + "network_http_internet_access_restricted", + "network_public_ip_shodan", + "network_rdp_internet_access_restricted", + "network_ssh_internet_access_restricted", + "network_udp_internet_access_restricted", + "network_watcher_enabled", + "storage_default_network_access_rule_is_denied" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.7 Network security", + "Service": "generic" + } + ] + }, + { + "Id": "6.7.2.e", + "Description": "not use systems used for administration of the security policy implementation for other purposes;", + "Checks": [ + "app_function_identity_without_admin_privileges", + "containerregistry_admin_user_disabled", + "entra_global_admin_in_less_than_five_users", + "entra_policy_ensure_default_user_cannot_create_tenants", + "entra_policy_guest_invite_only_for_admin_roles", + "iam_custom_role_has_permissions_to_administer_resource_locks", + "sqlserver_azuread_administrator_enabled", + "sqlserver_va_emails_notifications_admins_enabled" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.7 Network security", + "Service": "generic" + } + ] + }, + { + "Id": "6.7.2.g", + "Description": "where appropriate, exclusively allow access to the relevant entities network and information systems by devices authorised by those entities;", + "Checks": [ + "entra_policy_restricts_user_consent_for_apps", + "entra_policy_ensure_default_user_cannot_create_tenants", + "app_function_ftps_deployment_disabled", + "app_ensure_auth_is_set_up", + "app_function_identity_is_configured" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.7 Network security", + "Service": "generic" + } + ] + }, + { + "Id": "6.7.2.i", + "Description": "establish communication between distinct systems only through trusted channels that are isolated using logical, cryptographic or physical separation from other communication channels and provide assured identification of their end points and protection of the channel data from modification or disclosure;", + "Checks": [ + "storage_ensure_private_endpoints_in_storage_accounts", + "storage_secure_transfer_required_is_enabled", + "app_minimum_tls_version_12", + "mysql_flexible_server_minimum_tls_version_12", + "sqlserver_recommended_minimal_tls_version", + "storage_ensure_minimum_tls_version_12", + "app_ensure_http_is_redirected_to_https", + "defender_ensure_defender_for_dns_is_on", + "sqlserver_tde_encryption_enabled" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.7 Network security", + "Service": "generic" + } + ] + }, + { + "Id": "6.7.2.l", + "Description": "apply best practices for the security of the DNS, and for Internet routing security and routing hygiene of traffic originating from and destined to the network.", + "Checks": [ + "storage_ensure_private_endpoints_in_storage_accounts", + "storage_secure_transfer_required_is_enabled", + "app_minimum_tls_version_12", + "mysql_flexible_server_minimum_tls_version_12", + "sqlserver_recommended_minimal_tls_version", + "storage_ensure_minimum_tls_version_12", + "app_ensure_http_is_redirected_to_https", + "defender_ensure_defender_for_dns_is_on", + "sqlserver_tde_encryption_enabled", + "network_bastion_host_exists", + "network_flow_log_captured_sent", + "network_flow_log_more_than_90_days", + "network_http_internet_access_restricted", + "network_public_ip_shodan", + "network_rdp_internet_access_restricted", + "network_ssh_internet_access_restricted", + "network_udp_internet_access_restricted", + "network_watcher_enabled" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.7 Network security", + "Service": "generic" + } + ] + }, + { + "Id": "6.8.2.a", + "Description": "consider the functional, logical and physical relationship, including location, between trustworthy systems and services;", + "Checks": [ + "entra_trusted_named_locations_exists", + "network_watcher_enabled" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.8 Network segmentation", + "Service": "generic" + } + ] + }, + { + "Id": "6.9.2", + "Description": "For that purpose, the relevant entities shall in particular implement measures that detect or prevent the use of malicious or unauthorised software. The relevant entities shall, where appropriate, ensure that their network and information systems are equipped with detection and response software, which is updated regularly in accordance with the risk assessment carried out pursuant to point 2.1 and the contractual agreements with the providers.", + "Checks": [ + "defender_additional_email_configured_with_a_security_contact", + "defender_assessments_vm_endpoint_protection_installed", + "defender_auto_provisioning_log_analytics_agent_vms_on", + "defender_auto_provisioning_vulnerabilty_assessments_machines_on", + "defender_container_images_resolved_vulnerabilities", + "defender_container_images_scan_enabled", + "defender_ensure_defender_for_app_services_is_on", + "defender_ensure_defender_for_arm_is_on", + "defender_ensure_defender_for_azure_sql_databases_is_on", + "defender_ensure_defender_for_containers_is_on", + "defender_ensure_defender_for_cosmosdb_is_on", + "defender_ensure_defender_for_databases_is_on", + "defender_ensure_defender_for_dns_is_on", + "defender_ensure_defender_for_keyvault_is_on", + "defender_ensure_defender_for_os_relational_databases_is_on", + "defender_ensure_defender_for_server_is_on", + "defender_ensure_defender_for_sql_servers_is_on", + "defender_ensure_defender_for_storage_is_on", + "defender_ensure_iot_hub_defender_is_on", + "defender_ensure_mcas_is_enabled", + "defender_ensure_notify_alerts_severity_is_high", + "defender_ensure_notify_emails_to_owners", + "defender_ensure_system_updates_are_applied", + "defender_ensure_wdatp_is_enabled", + "sqlserver_microsoft_defender_enabled" + ], + "Attributes": [ + { + "Section": "6 SECURITY IN NETWORK AND INFORMATION SYSTEMS ACQUISITION, DEVELOPMENT AND MAINTENANCE (ARTICLE 21(2), POINT (E), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "6.9 Protection against malicious and unauthorised software", + "Service": "generic" + } + ] + }, + { + "Id": "7.2.b", + "Description": "the methods for monitoring, measurement, analysis and evaluation, as applicable, to ensure valid results;", + "Checks": [ + "defender_ensure_notify_alerts_severity_is_high", + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_security_solution", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_delete_security_solution", + "monitor_alert_delete_sqlserver_fr" + ], + "Attributes": [ + { + "Section": "7 POLICIES AND PROCEDURES TO ASSESS THE EFFECTIVENESS OF CYBERSECURITY RISK-MANAGEMENT MEASURES (ARTICLE 21(2), POINT (F), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "7.2 The policy and procedures referred to in point 7.1. shall take into account results of the risk assessment pursuant to point 2.1. and past significant incidents. The relevant entities shall determine:", + "Service": "generic" + } + ] + }, + { + "Id": "9.2.a", + "Description": "in accordance with the relevant entities classification of assets, the type, strength and quality of the cryptographic measures required to protect the relevant entities assets, including data at rest and data in transit;", + "Checks": [ + "app_minimum_tls_version_12", + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "sqlserver_tde_encrypted_with_cmk", + "sqlserver_tde_encryption_enabled", + "storage_ensure_encryption_with_customer_managed_keys", + "storage_infrastructure_encryption_is_enabled", + "storage_secure_transfer_required_is_enabled", + "vm_ensure_attached_disks_encrypted_with_cmk", + "vm_ensure_unattached_disks_encrypted_with_cmk" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "generic" + } + ] + }, + { + "Id": "9.2.c", + "Description": "the relevant entities approach to key management, including, where appropriate, methods for the following:", + "Checks": [ + "defender_ensure_defender_for_keyvault_is_on", + "keyvault_key_expiration_set_in_non_rbac", + "keyvault_key_rotation_enabled", + "keyvault_logging_enabled", + "keyvault_non_rbac_secret_expiration_set", + "keyvault_private_endpoints", + "keyvault_rbac_enabled", + "keyvault_rbac_key_expiration_set", + "keyvault_rbac_secret_expiration_set", + "keyvault_recoverable", + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "sqlserver_tde_encrypted_with_cmk", + "vm_ensure_attached_disks_encrypted_with_cmk", + "vm_ensure_unattached_disks_encrypted_with_cmk" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "generic" + } + ] + }, + { + "Id": "9.2.c.i", + "Description": "generating different keys for cryptographic systems and applications;", + "Checks": [ + "keyvault_rbac_key_expiration_set", + "keyvault_rbac_secret_expiration_set", + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "sqlserver_tde_encrypted_with_cmk", + "vm_ensure_attached_disks_encrypted_with_cmk", + "vm_ensure_unattached_disks_encrypted_with_cmk" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "generic" + } + ] + }, + { + "Id": "9.2.c.ii", + "Description": "issuing and obtaining public key certificates;", + "Checks": [ + "app_client_certificates_on" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "app" + } + ] + }, + { + "Id": "9.2.c.iii", + "Description": "distributing keys to intended entities, including how to activate keys when received;", + "Checks": [ + "keyvault_key_expiration_set_in_non_rbac", + "keyvault_rbac_key_expiration_set", + "storage_key_rotation_90_days" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "generic" + } + ] + }, + { + "Id": "9.2.c.iv", + "Description": "storing keys, including how authorised users obtain access to keys;", + "Checks": [ + "app_function_access_keys_configured", + "defender_ensure_defender_for_keyvault_is_on", + "keyvault_key_expiration_set_in_non_rbac", + "keyvault_key_rotation_enabled", + "keyvault_logging_enabled", + "keyvault_non_rbac_secret_expiration_set", + "keyvault_private_endpoints", + "keyvault_rbac_enabled", + "keyvault_rbac_key_expiration_set", + "keyvault_rbac_secret_expiration_set", + "keyvault_recoverable", + "sqlserver_tde_encrypted_with_cmk", + "storage_ensure_encryption_with_customer_managed_keys", + "storage_key_rotation_90_days" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "generic" + } + ] + }, + { + "Id": "9.2.c.v", + "Description": "changing or updating keys, including rules on when and how to change keys;", + "Checks": [ + "keyvault_key_expiration_set_in_non_rbac", + "keyvault_key_rotation_enabled", + "keyvault_logging_enabled", + "keyvault_non_rbac_secret_expiration_set", + "keyvault_private_endpoints", + "keyvault_rbac_enabled", + "keyvault_rbac_key_expiration_set", + "keyvault_rbac_secret_expiration_set", + "keyvault_recoverable" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "keyvault" + } + ] + }, + { + "Id": "9.2.c.vi", + "Description": "backing up or archiving keys;", + "Checks": [ + "keyvault_key_expiration_set_in_non_rbac", + "keyvault_recoverable", + "keyvault_rbac_key_expiration_set" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "keyvault" + } + ] + }, + { + "Id": "9.2.c.vii", + "Description": "logging and auditing of key management-related activities;", + "Checks": [ + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "keyvault_logging_enabled", + "sqlserver_auditing_enabled" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "generic" + } + ] + }, + { + "Id": "9.2.c.xii", + "Description": "setting activation and deactivation dates for keys ensuring that the keys can only be used for the specified period of time according to the organization's rules on key management.", + "Checks": [ + "keyvault_key_expiration_set_in_non_rbac", + "keyvault_rbac_key_expiration_set", + "keyvault_rbac_secret_expiration_set", + "keyvault_non_rbac_secret_expiration_set" + ], + "Attributes": [ + { + "Section": "9 CRYPTOGRAPHY (ARTICLE 21(2), POINT (H), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "9.2 Cryptography", + "Service": "keyvault" + } + ] + }, + { + "Id": "11.1.1", + "Description": "For the purpose of Article 21(2), point (i) of Directive (EU) 2022/2555, the relevant entities shall establish, document and implement logical and physical access control policies for the access to their network and information systems, based on business requirements as well as network and information system security requirements.", + "Checks": [ + "app_ensure_auth_is_set_up", + "app_function_ftps_deployment_disabled", + "aisearch_service_not_publicly_accessible", + "aks_network_policy_enabled", + "containerregistry_not_publicly_accessible", + "cosmosdb_account_firewall_use_selected_networks", + "network_bastion_host_exists", + "network_flow_log_captured_sent", + "network_flow_log_more_than_90_days", + "network_http_internet_access_restricted", + "network_public_ip_shodan", + "network_rdp_internet_access_restricted", + "network_ssh_internet_access_restricted", + "network_udp_internet_access_restricted", + "network_watcher_enabled", + "storage_default_network_access_rule_is_denied" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.1 Access control policy", + "Service": "generic" + } + ] + }, + { + "Id": "11.1.2.c", + "Description": "ensure that access is only granted to users that have been adequately authenticated.", + "Checks": [ + "app_ensure_auth_is_set_up", + "app_function_ftps_deployment_disabled" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.1 Access control policy", + "Service": "app" + } + ] + }, + { + "Id": "11.2.1", + "Description": "The relevant entities shall provide, modify, remove and document access rights to network and information systems in accordance with the access control policy referred to in point 11.1.", + "Checks": [ + "monitor_storage_account_with_activity_logs_is_private", + "storage_default_network_access_rule_is_denied" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.2 Management of access rights", + "Service": "generic" + } + ] + }, + { + "Id": "11.2.2.a", + "Description": "assign and revoke access rights based on the principles of need-to-know, least privilege and separation of duties;", + "Checks": [ + "entra_global_admin_in_less_than_five_users", + "entra_policy_default_users_cannot_create_security_groups", + "entra_policy_ensure_default_user_cannot_create_apps", + "entra_policy_ensure_default_user_cannot_create_tenants", + "entra_policy_guest_invite_only_for_admin_roles", + "entra_policy_guest_users_access_restrictions", + "entra_policy_restricts_user_consent_for_apps", + "entra_policy_user_consent_for_verified_apps", + "entra_users_cannot_create_microsoft_365_groups" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.2 Management of access rights", + "Service": "entra" + } + ] + }, + { + "Id": "11.2.2.d", + "Description": "ensure that access rights appropriately address third-party access, such as visitors, suppliers and service providers, in particular by limiting access rights in scope and in duration;", + "Checks": [ + "monitor_storage_account_with_activity_logs_is_private", + "entra_policy_default_users_cannot_create_security_groups", + "entra_policy_ensure_default_user_cannot_create_apps", + "entra_policy_ensure_default_user_cannot_create_tenants", + "entra_policy_guest_invite_only_for_admin_roles", + "entra_policy_guest_users_access_restrictions", + "entra_policy_restricts_user_consent_for_apps", + "entra_policy_user_consent_for_verified_apps", + "entra_users_cannot_create_microsoft_365_groups", + "aks_clusters_created_with_private_nodes", + "containerregistry_uses_private_link", + "cosmosdb_account_use_private_endpoints", + "keyvault_private_endpoints", + "monitor_storage_account_with_activity_logs_is_private", + "storage_ensure_private_endpoints_in_storage_accounts" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.2 Management of access rights", + "Service": "generic" + } + ] + }, + { + "Id": "11.2.2.f", + "Description": "apply logging to the management of access rights.", + "Checks": [ + "app_http_logs_enabled", + "defender_auto_provisioning_log_analytics_agent_vms_on", + "keyvault_logging_enabled", + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "monitor_storage_account_with_activity_logs_is_private", + "mysql_flexible_server_audit_log_connection_activated", + "mysql_flexible_server_audit_log_enabled", + "network_flow_log_captured_sent", + "network_flow_log_more_than_90_days", + "postgresql_flexible_server_log_checkpoints_on", + "postgresql_flexible_server_log_connections_on", + "postgresql_flexible_server_log_disconnections_on", + "postgresql_flexible_server_log_retention_days_greater_3" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.2 Management of access rights", + "Service": "generic" + } + ] + }, + { + "Id": "11.3.1", + "Description": "The relevant entities shall maintain policies for management of privileged accounts and system administration accounts as part of the access control policy referred to in point 11.1.", + "Checks": [ + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_sqlserver_fr" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.3 Privileged accounts and system administration accounts", + "Service": "monitor" + } + ] + }, + { + "Id": "11.3.2.a", + "Description": "establish strong identification, authentication such as multi-factor authentication, and authorisation procedures for privileged accounts and system administration accounts;", + "Checks": [ + "entra_conditional_access_policy_require_mfa_for_management_api", + "entra_non_privileged_user_has_mfa", + "entra_privileged_user_has_mfa", + "entra_user_with_vm_access_has_mfa" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.3 Privileged accounts and system administration accounts", + "Service": "entra" + } + ] + }, + { + "Id": "11.3.2.b", + "Description": "set up specific accounts to be used for system administration operations exclusively, such as installation, configuration, management or maintenance;", + "Checks": [ + "entra_global_admin_in_less_than_five_users" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.3 Privileged accounts and system administration accounts", + "Service": "entra" + } + ] + }, + { + "Id": "11.3.2.c", + "Description": "individualise and restrict system administration privileges to the highest extent possible,", + "Checks": [ + "entra_global_admin_in_less_than_five_users", + "entra_policy_default_users_cannot_create_security_groups", + "entra_policy_ensure_default_user_cannot_create_apps", + "entra_policy_ensure_default_user_cannot_create_tenants", + "entra_policy_guest_invite_only_for_admin_roles", + "entra_policy_guest_users_access_restrictions", + "entra_policy_restricts_user_consent_for_apps", + "entra_policy_user_consent_for_verified_apps", + "entra_users_cannot_create_microsoft_365_groups" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.3 Privileged accounts and system administration accounts", + "Service": "entra" + } + ] + }, + { + "Id": "11.3.2.d", + "Description": "provide that system administration accounts are only used to connect to system administration systems.", + "Checks": [ + "entra_global_admin_in_less_than_five_users", + "entra_policy_default_users_cannot_create_security_groups", + "entra_policy_ensure_default_user_cannot_create_apps", + "entra_policy_ensure_default_user_cannot_create_tenants" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.3 Privileged accounts and system administration accounts", + "Service": "entra" + } + ] + }, + { + "Id": "11.4.2.b", + "Description": "separate logically such systems from application software not used for system administrative purposes,", + "Checks": [ + "entra_global_admin_in_less_than_five_users", + "entra_policy_default_users_cannot_create_security_groups", + "entra_policy_ensure_default_user_cannot_create_apps", + "entra_policy_ensure_default_user_cannot_create_tenants" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.4 Administration systems", + "Service": "entra" + } + ] + }, + { + "Id": "11.4.2.c", + "Description": "protect access to system administration systems through authentication and encryption.", + "Checks": [ + "entra_trusted_named_locations_exists", + "entra_user_with_vm_access_has_mfa", + "entra_conditional_access_policy_require_mfa_for_management_api", + "entra_privileged_user_has_mfa" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.4 Administration systems", + "Service": "entra" + } + ] + }, + { + "Id": "11.5.2.a", + "Description": "set up unique identities for network and information systems and their users;", + "Checks": [ + "app_function_identity_is_configured" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.5 Identification", + "Service": "app" + } + ] + }, + { + "Id": "11.5.2.d", + "Description": "apply logging to the management of identities.", + "Checks": [ + "monitor_alert_create_policy_assignment", + "monitor_alert_create_update_nsg", + "monitor_alert_create_update_public_ip_address_rule", + "monitor_alert_create_update_security_solution", + "monitor_alert_create_update_sqlserver_fr", + "monitor_alert_delete_nsg", + "monitor_alert_delete_policy_assignment", + "monitor_alert_delete_public_ip_address_rule", + "monitor_alert_delete_security_solution", + "monitor_alert_delete_sqlserver_fr" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.5 Identification", + "Service": "monitor" + } + ] + }, + { + "Id": "11.6.1", + "Description": "The relevant entities shall implement secure authentication procedures and technologies based on access restrictions and the policy on access control.", + "Checks": [ + "app_ensure_auth_is_set_up", + "app_function_ftps_deployment_disabled", + "aisearch_service_not_publicly_accessible", + "aks_network_policy_enabled", + "containerregistry_not_publicly_accessible" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.6 Authentication", + "Service": "generic" + } + ] + }, + { + "Id": "11.6.2.a", + "Description": "ensure the strength of authentication is appropriate to the classification of the asset to be accessed;", + "Checks": [ + "entra_conditional_access_policy_require_mfa_for_management_api", + "entra_non_privileged_user_has_mfa", + "entra_privileged_user_has_mfa", + "entra_user_with_vm_access_has_mfa" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.6 Authentication", + "Service": "entra" + } + ] + }, + { + "Id": "11.6.2.c", + "Description": "require the change of authentication credentials initially, at predefined intervals and upon suspicion that the credentials were compromised;", + "Checks": [ + "keyvault_key_rotation_enabled", + "storage_key_rotation_90_days" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.6 Authentication", + "Service": "generic" + } + ] + }, + { + "Id": "11.7.2", + "Description": "The relevant entities shall ensure that the strength of authentication is appropriate for the classification of the asset to be accessed.", + "Checks": [ + "entra_conditional_access_policy_require_mfa_for_management_api", + "entra_non_privileged_user_has_mfa", + "entra_privileged_user_has_mfa", + "entra_user_with_vm_access_has_mfa" + ], + "Attributes": [ + { + "Section": "11 ACCESS CONTROL (ARTICLE 21(2), POINTS (I) AND (J), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "11.7 Multi-factor authentication", + "Service": "generic" + } + ] + }, + { + "Id": "12.1.2.c", + "Description": "align the availability requirements of the assets with the delivery and recovery objectives set out in their business continuity and disaster recovery plans.", + "Checks": [ + "keyvault_recoverable" + ], + "Attributes": [ + { + "Section": "12 ASSET MANAGEMENT (ARTICLE 21(2), POINT (I), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "12.1 Asset classification", + "Service": "keyvault" + } + ] + }, + { + "Id": "12.2.2.a", + "Description": "cover the entire life cycle of the assets, including acquisition, use, storage, transportation and disposal;", + "Checks": [ + "keyvault_key_expiration_set_in_non_rbac", + "keyvault_non_rbac_secret_expiration_set", + "keyvault_rbac_key_expiration_set", + "keyvault_rbac_secret_expiration_set", + "network_flow_log_more_than_90_days", + "postgresql_flexible_server_log_retention_days_greater_3", + "sqlserver_auditing_retention_90_days", + "storage_blob_public_access_level_is_disabled", + "storage_default_network_access_rule_is_denied", + "storage_ensure_azure_services_are_trusted_to_access_is_enabled", + "storage_ensure_encryption_with_customer_managed_keys", + "storage_ensure_minimum_tls_version_12", + "storage_ensure_private_endpoints_in_storage_accounts", + "storage_ensure_soft_delete_is_enabled", + "storage_infrastructure_encryption_is_enabled", + "storage_key_rotation_90_days", + "storage_secure_transfer_required_is_enabled" + ], + "Attributes": [ + { + "Section": "12 ASSET MANAGEMENT (ARTICLE 21(2), POINT (I), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "12.2 Handling of assets", + "Service": "generic" + } + ] + }, + { + "Id": "12.2.2.b", + "Description": "provide rules on the safe use, safe storage, safe transport, and the irretrievable deletion and destruction of the assets;", + "Checks": [ + "storage_ensure_soft_delete_is_enabled", + "keyvault_recoverable", + "storage_secure_transfer_required_is_enabled", + "app_minimum_tls_version_12", + "monitor_storage_account_with_activity_logs_cmk_encrypted", + "sqlserver_tde_encrypted_with_cmk", + "sqlserver_tde_encryption_enabled", + "storage_ensure_encryption_with_customer_managed_keys", + "storage_infrastructure_encryption_is_enabled", + "vm_ensure_attached_disks_encrypted_with_cmk", + "vm_ensure_unattached_disks_encrypted_with_cmk" + ], + "Attributes": [ + { + "Section": "12 ASSET MANAGEMENT (ARTICLE 21(2), POINT (I), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "12.2 Handling of assets", + "Service": "generic" + } + ] + }, + { + "Id": "12.2.2.c", + "Description": "provide that the transfer shall take place in a secure manner, in accordance with the type of asset to be transferred.", + "Checks": [ + "storage_secure_transfer_required_is_enabled", + "app_minimum_tls_version_12", + "mysql_flexible_server_minimum_tls_version_12", + "sqlserver_recommended_minimal_tls_version", + "storage_ensure_minimum_tls_version_12", + "sqlserver_tde_encrypted_with_cmk", + "sqlserver_tde_encryption_enabled" + ], + "Attributes": [ + { + "Section": "12 ASSET MANAGEMENT (ARTICLE 21(2), POINT (I), OF DIRECTIVE (EU) 2022/2555)", + "SubSection": "12.2 Handling of assets", + "Service": "generic" + } + ] + } + ] +} diff --git a/ui/components/icons/compliance/IconCompliance.tsx b/ui/components/icons/compliance/IconCompliance.tsx index 304fe091b4..c73d0d14ee 100644 --- a/ui/components/icons/compliance/IconCompliance.tsx +++ b/ui/components/icons/compliance/IconCompliance.tsx @@ -10,6 +10,7 @@ import HIPAALogo from "./hipaa.svg"; import ISOLogo from "./iso-27001.svg"; import KISALogo from "./kisa.svg"; import MITRELogo from "./mitre-attack.svg"; +import NIS2Logo from "./nis2.svg"; import NISTLogo from "./nist.svg"; import PCILogo from "./pci-dss.svg"; import PROWLERTHREATLogo from "./prowlerThreat.svg"; @@ -68,4 +69,7 @@ export const getComplianceIcon = (complianceTitle: string) => { if (complianceTitle.toLowerCase().includes("prowlerthreatscore")) { return PROWLERTHREATLogo; } + if (complianceTitle.toLowerCase().includes("nis2")) { + return NIS2Logo; + } }; diff --git a/ui/components/icons/compliance/nis2.svg b/ui/components/icons/compliance/nis2.svg new file mode 100644 index 0000000000..a8773aed8f --- /dev/null +++ b/ui/components/icons/compliance/nis2.svg @@ -0,0 +1,28966 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From bc56d48595a9b19e2bcc8362d16483ba77a17a86 Mon Sep 17 00:00:00 2001 From: Harsh Kumar <54257619+iamharshkr@users.noreply.github.com> Date: Wed, 28 May 2025 15:14:01 +0530 Subject: [PATCH 039/111] feat(dashboard): add client-side search functionality to findings table (#7804) Co-authored-by: Harsh Kumar --- dashboard/lib/layouts.py | 28 ++++++++++++++++++++++------ dashboard/pages/overview.py | 11 +++++++++++ 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/dashboard/lib/layouts.py b/dashboard/lib/layouts.py index f1b4408c38..144036f183 100644 --- a/dashboard/lib/layouts.py +++ b/dashboard/lib/layouts.py @@ -90,12 +90,28 @@ def create_layout_overview( ), html.Div( [ - ( - html.Label( - "Table Rows:", - className="text-prowler-stone-900 font-bold text-sm", - style={"margin-right": "10px"}, - ) + html.Label( + "Search:", + className="text-prowler-stone-900 font-bold text-sm", + style={"margin-right": "10px"}, + ), + dcc.Input( + id="search-input", + type="text", + placeholder="Search by check title, service, region...", + debounce=True, + style={ + "padding": "4px 8px", + "border": "1px solid #ccc", + "borderRadius": "4px", + "marginRight": "20px", + "width": "250px", + }, + ), + html.Label( + "Table Rows:", + className="text-prowler-stone-900 font-bold text-sm", + style={"margin-right": "10px"}, ), table_row_dropdown, download_button_csv, diff --git a/dashboard/pages/overview.py b/dashboard/pages/overview.py index 2688281af2..0901604ad9 100644 --- a/dashboard/pages/overview.py +++ b/dashboard/pages/overview.py @@ -518,6 +518,7 @@ else: Input("service-filter", "value"), Input("table-rows", "value"), Input("status-filter", "value"), + Input("search-input", "value"), Input("aws_card", "n_clicks"), Input("azure_card", "n_clicks"), Input("gcp_card", "n_clicks"), @@ -540,6 +541,7 @@ def filter_data( service_values, table_row_values, status_values, + search_value, aws_clicks, azure_clicks, gcp_clicks, @@ -1144,6 +1146,15 @@ def filter_data( } index_count = 0 + if search_value: + search_value = search_value.lower() + filtered_data = filtered_data[ + filtered_data["CHECK_TITLE"].str.lower().str.contains(search_value) + | filtered_data["SERVICE_NAME"].str.lower().str.contains(search_value) + | filtered_data["REGION"].str.lower().str.contains(search_value) + | filtered_data["STATUS"].str.lower().str.contains(search_value) + ] + full_filtered_data = filtered_data.copy() filtered_data = filtered_data.head(table_row_values) # Sort the filtered_data From 60314e781f0a408ff46349a119ee35c6a6f42132 Mon Sep 17 00:00:00 2001 From: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Date: Wed, 28 May 2025 16:30:28 +0200 Subject: [PATCH 040/111] feat: enhance CustomDropdownFilter (#7868) --- ui/CHANGELOG.md | 1 + .../ui/custom/custom-dropdown-filter.tsx | 258 +++++++++--------- 2 files changed, 136 insertions(+), 123 deletions(-) diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 443c6bbe03..d554b44c2d 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -12,6 +12,7 @@ All notable changes to the **Prowler UI** are documented in this file. - Add `Provider UID` filter to scans page. [(#7820)](https://github.com/prowler-cloud/prowler/pull/7820) - Download report behaviour updated to show feedback based on API response. [(#7758)](https://github.com/prowler-cloud/prowler/pull/7758) - Missing KISA and ProwlerThreat icons added to the compliance page. [(#7860)(https://github.com/prowler-cloud/prowler/pull/7860)] +- Improve CustomDropdownFilter component. [(#7868)(https://github.com/prowler-cloud/prowler/pull/7868)] --- diff --git a/ui/components/ui/custom/custom-dropdown-filter.tsx b/ui/components/ui/custom/custom-dropdown-filter.tsx index 5664122e89..254efa5024 100644 --- a/ui/components/ui/custom/custom-dropdown-filter.tsx +++ b/ui/components/ui/custom/custom-dropdown-filter.tsx @@ -10,167 +10,183 @@ import { PopoverTrigger, ScrollShadow, } from "@nextui-org/react"; -import { XCircle } from "lucide-react"; +import { ChevronDown, X } from "lucide-react"; import { useSearchParams } from "next/navigation"; import React, { useCallback, useEffect, useMemo, useState } from "react"; -import { PlusCircleIcon } from "@/components/icons"; -import { useUrlFilters } from "@/hooks/use-url-filters"; import { CustomDropdownFilterProps } from "@/types"; import { EntityInfoShort } from "../entities"; -const filterSelectedClass = - "inline-flex items-center border py-1 text-xs transition-colors border-transparent bg-default-500 text-secondary-foreground hover:bg-default-500/80 rounded-md px-2 font-normal"; - -export const CustomDropdownFilter: React.FC = ({ +export const CustomDropdownFilter = ({ filter, onFilterChange, -}) => { +}: CustomDropdownFilterProps) => { const searchParams = useSearchParams(); - const { clearFilter } = useUrlFilters(); const [groupSelected, setGroupSelected] = useState(new Set()); - const [pendingClearFilter, setPendingClearFilter] = useState( - null, + const [isOpen, setIsOpen] = useState(false); + + const filterValues = useMemo(() => filter?.values || [], [filter?.values]); + const selectedValues = Array.from(groupSelected).filter( + (value) => value !== "all", ); + const isAllSelected = + selectedValues.length === filterValues.length && filterValues.length > 0; - const allFilterKeys = useMemo(() => filter?.values || [], [filter?.values]); - - const getActiveFilter = useMemo(() => { - const currentFilters: Record = {}; - Array.from(searchParams.entries()).forEach(([key, value]) => { - if (key.startsWith("filter[") && key.endsWith("]")) { - const filterKey = key.slice(7, -1); - if (filter && filter.key === filterKey) { - // eslint-disable-next-line security/detect-object-injection - currentFilters[filterKey] = value; - } - } - }); - return currentFilters; - }, [searchParams, filter]); - - const memoizedFilterValues = useMemo( - () => filter?.values || [], - [filter?.values], - ); + const activeFilterValue = useMemo(() => { + const filterParam = searchParams.get(`filter[${filter?.key}]`); + return filterParam ? filterParam.split(",") : []; + }, [searchParams, filter?.key]); + // Sync URL state with component state useEffect(() => { - if (filter && getActiveFilter[filter.key]) { - const activeValues = getActiveFilter[filter.key].split(","); - const newSelection = new Set(activeValues); - if (newSelection.size === memoizedFilterValues.length) { + if (activeFilterValue.length > 0) { + const newSelection = new Set(activeFilterValue); + if (newSelection.size === filterValues.length) { newSelection.add("all"); } setGroupSelected(newSelection); } else { setGroupSelected(new Set()); } - }, [getActiveFilter, filter?.key, memoizedFilterValues, filter]); + }, [activeFilterValue, filterValues.length]); + + const updateSelection = useCallback( + (newValues: string[]) => { + const actualValues = newValues.filter((key) => key !== "all"); + const newSelection = new Set(actualValues); + + // Auto-add "all" if all items are selected + if ( + actualValues.length === filterValues.length && + filterValues.length > 0 + ) { + newSelection.add("all"); + } + + setGroupSelected(newSelection); + + // Notify parent with actual values (excluding "all") + onFilterChange?.(filter.key, actualValues); + }, + [filterValues.length, onFilterChange, filter.key], + ); const onSelectionChange = useCallback( (keys: string[]) => { - setGroupSelected((prevGroupSelected) => { - const newSelection = new Set(keys); + const currentSelection = Array.from(groupSelected); + const newKeys = new Set(keys); + const oldKeys = new Set(currentSelection); - if ( - newSelection.size === allFilterKeys.length && - !newSelection.has("all") - ) { - return new Set(["all", ...allFilterKeys]); - } else if (prevGroupSelected.has("all")) { - newSelection.delete("all"); - return new Set(allFilterKeys.filter((key) => newSelection.has(key))); - } - return newSelection; - }); + // Check if "all" was just toggled + const allWasSelected = oldKeys.has("all"); + const allIsSelected = newKeys.has("all"); - if (onFilterChange && filter) { - const selectedValues = keys.filter((key) => key !== "all"); - onFilterChange(filter.key, selectedValues); + if (allIsSelected && !allWasSelected) { + // "all" was just selected - select all items + updateSelection(filterValues); + } else if (!allIsSelected && allWasSelected) { + // "all" was just deselected - deselect all items + updateSelection([]); + } else if (allIsSelected && allWasSelected) { + // "all" was already selected, but individual items changed + // Remove "all" and keep only the individual selections + const individualSelections = keys.filter((key) => key !== "all"); + updateSelection(individualSelections); + } else { + // Normal individual selection without "all" + updateSelection(keys); } }, - [allFilterKeys, onFilterChange, filter], + [groupSelected, updateSelection, filterValues], ); - const handleSelectAllClick = useCallback(() => { - setGroupSelected((prevGroupSelected: Set) => { - const newSelection: Set = prevGroupSelected.has("all") - ? new Set() - : new Set(["all", ...allFilterKeys]); + const handleClearAll = useCallback( + (e: React.MouseEvent) => { + e.stopPropagation(); + updateSelection([]); + }, + [updateSelection], + ); - if (onFilterChange && filter) { - const selectedValues = Array.from(newSelection).filter( - (key) => key !== "all", - ); - onFilterChange(filter.key, selectedValues); - } - - return newSelection; - }); - }, [allFilterKeys, onFilterChange, filter]); - - // Update the pending clear filter - const onClearFilter = useCallback((filterKey: string) => { - setPendingClearFilter(filterKey); - }, []); - - // Execute the update in the router after the render - useEffect(() => { - if (pendingClearFilter && filter) { - clearFilter(pendingClearFilter); - setPendingClearFilter(null); // Reset the state - } - }, [pendingClearFilter, clearFilter, filter]); + const getDisplayLabel = useCallback( + (value: string) => { + const entity = filter.valueLabelMapping?.find((entry) => entry[value])?.[ + value + ]; + return entity?.alias || entity?.uid || value; + }, + [filter.valueLabelMapping], + ); return ( -
- - -
+
= ({ wrapper: "checkbox-update", }} value="all" - isSelected={groupSelected.has("all")} - onClick={handleSelectAllClick} > Select All - {memoizedFilterValues.map((value) => { - // Find the corresponding entity from valueLabelMapping - const matchingEntry = filter.valueLabelMapping?.find( + {filterValues.map((value) => { + const entity = filter.valueLabelMapping?.find( (entry) => entry[value], - ); - const entity = matchingEntry?.[value]; + )?.[value]; return ( Date: Wed, 28 May 2025 16:43:58 +0200 Subject: [PATCH 041/111] fix(tests): typo in m365 domain test (#7866) --- api/src/backend/api/tests/test_views.py | 2 +- prowler/CHANGELOG.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/api/src/backend/api/tests/test_views.py b/api/src/backend/api/tests/test_views.py index f6c2c56c38..ffc9d22802 100644 --- a/api/src/backend/api/tests/test_views.py +++ b/api/src/backend/api/tests/test_views.py @@ -921,7 +921,7 @@ class TestProviderViewSet: }, { "provider": "m365", - "uid": "TestingPro.onMirosoft.com", + "uid": "TestingPro.onmicrosoft.com", "alias": "test", }, { diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index ccf9fb4a7b..2f6de1ce04 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -21,6 +21,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Add `repository_default_branch_requires_codeowners_review` check for GitHub provider. [(#7753)](https://github.com/prowler-cloud/prowler/pull/7753) - Add NIS 2 compliance framework for AWS. [(7839)](https://github.com/prowler-cloud/prowler/pull/7839) - Add NIS 2 compliance framework for Azure. [(7857)](https://github.com/prowler-cloud/prowler/pull/7857) +- Add search bar in Dashboard Overview page. [(#7804)](https://github.com/prowler-cloud/prowler/pull/7804) ### Fixed - Fix `m365_powershell test_credentials` to use sanitized credentials. [(#7761)](https://github.com/prowler-cloud/prowler/pull/7761) From 12987ec9f91ad735235e8cd163890a08e337835e Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Wed, 28 May 2025 16:48:49 +0200 Subject: [PATCH 042/111] fix(admincenter): service and group visibility (#7870) --- ...dmincenter_groups_not_public_visibility.py | 2 +- .../admincenter/admincenter_service.py | 4 +- ...enter_groups_not_public_visibility_test.py | 88 +++++++++++++++++++ 3 files changed, 90 insertions(+), 4 deletions(-) diff --git a/prowler/providers/m365/services/admincenter/admincenter_groups_not_public_visibility/admincenter_groups_not_public_visibility.py b/prowler/providers/m365/services/admincenter/admincenter_groups_not_public_visibility/admincenter_groups_not_public_visibility.py index d61fdec68d..f38f94f64f 100644 --- a/prowler/providers/m365/services/admincenter/admincenter_groups_not_public_visibility/admincenter_groups_not_public_visibility.py +++ b/prowler/providers/m365/services/admincenter/admincenter_groups_not_public_visibility/admincenter_groups_not_public_visibility.py @@ -36,7 +36,7 @@ class admincenter_groups_not_public_visibility(Check): report.status = "FAIL" report.status_extended = f"Group {group.name} has {group.visibility} visibility and should be Private." - if group.visibility != "Public": + if group.visibility and group.visibility != "Public": report.status = "PASS" report.status_extended = ( f"Group {group.name} has {group.visibility} visibility." diff --git a/prowler/providers/m365/services/admincenter/admincenter_service.py b/prowler/providers/m365/services/admincenter/admincenter_service.py index feac9c8375..32b2b12805 100644 --- a/prowler/providers/m365/services/admincenter/admincenter_service.py +++ b/prowler/providers/m365/services/admincenter/admincenter_service.py @@ -11,8 +11,6 @@ from prowler.providers.m365.m365_provider import M365Provider class AdminCenter(M365Service): def __init__(self, provider: M365Provider): super().__init__(provider) - if self.powershell: - self.powershell.close() self.organization_config = None self.sharing_policy = None @@ -203,7 +201,7 @@ class DirectoryRole(BaseModel): class Group(BaseModel): id: str name: str - visibility: str + visibility: Optional[str] class Domain(BaseModel): diff --git a/tests/providers/m365/services/admincenter/admincenter_groups_not_public_visibility/admincenter_groups_not_public_visibility_test.py b/tests/providers/m365/services/admincenter/admincenter_groups_not_public_visibility/admincenter_groups_not_public_visibility_test.py index 81209d67a4..7391bd102e 100644 --- a/tests/providers/m365/services/admincenter/admincenter_groups_not_public_visibility/admincenter_groups_not_public_visibility_test.py +++ b/tests/providers/m365/services/admincenter/admincenter_groups_not_public_visibility/admincenter_groups_not_public_visibility_test.py @@ -114,3 +114,91 @@ class Test_admincenter_groups_not_public_visibility: assert result[0].resource_name == "Group1" assert result[0].resource_id == id_group1 assert result[0].location == "global" + + def test_admincenter_group_public_visibility(self): + admincenter_client = mock.MagicMock + admincenter_client.audited_tenant = "audited_tenant" + admincenter_client.audited_domain = DOMAIN + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_m365_provider(), + ), + mock.patch( + "prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell.connect_exchange_online" + ), + mock.patch( + "prowler.providers.m365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility.admincenter_client", + new=admincenter_client, + ), + ): + from prowler.providers.m365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility import ( + admincenter_groups_not_public_visibility, + ) + from prowler.providers.m365.services.admincenter.admincenter_service import ( + Group, + ) + + id_group1 = str(uuid4()) + + admincenter_client.groups = { + id_group1: Group(id=id_group1, name="Group1", visibility="Public"), + } + + check = admincenter_groups_not_public_visibility() + result = check.execute() + assert len(result) == 1 + assert result[0].status == "FAIL" + assert ( + result[0].status_extended + == "Group Group1 has Public visibility and should be Private." + ) + assert result[0].resource == admincenter_client.groups[id_group1].dict() + assert result[0].resource_name == "Group1" + assert result[0].resource_id == id_group1 + assert result[0].location == "global" + + def test_admincenter_group_none_visibility(self): + admincenter_client = mock.MagicMock + admincenter_client.audited_tenant = "audited_tenant" + admincenter_client.audited_domain = DOMAIN + + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_m365_provider(), + ), + mock.patch( + "prowler.providers.m365.lib.powershell.m365_powershell.M365PowerShell.connect_exchange_online" + ), + mock.patch( + "prowler.providers.m365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility.admincenter_client", + new=admincenter_client, + ), + ): + from prowler.providers.m365.services.admincenter.admincenter_groups_not_public_visibility.admincenter_groups_not_public_visibility import ( + admincenter_groups_not_public_visibility, + ) + from prowler.providers.m365.services.admincenter.admincenter_service import ( + Group, + ) + + id_group1 = str(uuid4()) + + admincenter_client.groups = { + id_group1: Group(id=id_group1, name="Group1", visibility=None), + } + + check = admincenter_groups_not_public_visibility() + result = check.execute() + assert len(result) == 1 + assert result[0].status == "FAIL" + assert ( + result[0].status_extended + == "Group Group1 has None visibility and should be Private." + ) + assert result[0].resource == admincenter_client.groups[id_group1].dict() + assert result[0].resource_name == "Group1" + assert result[0].resource_id == id_group1 + assert result[0].location == "global" From 48c9ed8a79347049810278b8da4d4dbbb3fbd87e Mon Sep 17 00:00:00 2001 From: sumit-tft <70506234+sumit-tft@users.noreply.github.com> Date: Thu, 29 May 2025 11:22:36 +0530 Subject: [PATCH 043/111] fix(ui): increase limit to retrieve more than 10 scan list (#7865) --- ui/CHANGELOG.md | 3 +++ ui/app/(prowler)/compliance/page.tsx | 1 + 2 files changed, 4 insertions(+) diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index d554b44c2d..01480c765e 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -14,6 +14,9 @@ All notable changes to the **Prowler UI** are documented in this file. - Missing KISA and ProwlerThreat icons added to the compliance page. [(#7860)(https://github.com/prowler-cloud/prowler/pull/7860)] - Improve CustomDropdownFilter component. [(#7868)(https://github.com/prowler-cloud/prowler/pull/7868)] +### 🐞 Fixes +- Retrieve more than 10 scans in /compliance page. [(#7865)](https://github.com/prowler-cloud/prowler/pull/7865) + --- ## [v1.7.1] (Prowler v5.7.1) diff --git a/ui/app/(prowler)/compliance/page.tsx b/ui/app/(prowler)/compliance/page.tsx index e3dab9e762..56b6dc9d62 100644 --- a/ui/app/(prowler)/compliance/page.tsx +++ b/ui/app/(prowler)/compliance/page.tsx @@ -33,6 +33,7 @@ export default async function Compliance({ filters: { "filter[state]": "completed", }, + pageSize: 50, }); if (!scansData?.data) { From 921f94ebbf9d3cd5eec5984e497fe626b6e42907 Mon Sep 17 00:00:00 2001 From: Pepe Fagoaga Date: Thu, 29 May 2025 12:32:57 +0545 Subject: [PATCH 044/111] fix(k8s): UID validation for valid context names (#7871) --- api/CHANGELOG.md | 1 + api/src/backend/api/models.py | 2 +- api/src/backend/api/tests/test_views.py | 10 ++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index f49253fb45..6459e17086 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -16,6 +16,7 @@ All notable changes to the **Prowler API** are documented in this file. ### Fixed - Fixed task lookup to use task_kwargs instead of task_args for scan report resolution. [(#7830)](https://github.com/prowler-cloud/prowler/pull/7830) +- Fixed Kubernetes UID validation to allow valid context names [(#7871)](https://github.com/prowler-cloud/prowler/pull/7871) --- diff --git a/api/src/backend/api/models.py b/api/src/backend/api/models.py index 28b0845a3a..2b4fec00cf 100644 --- a/api/src/backend/api/models.py +++ b/api/src/backend/api/models.py @@ -242,7 +242,7 @@ class Provider(RowLevelSecurityProtectedModel): @staticmethod def validate_kubernetes_uid(value): if not re.match( - r"^[a-z0-9][A-Za-z0-9_.:\/-]{1,250}$", + r"^[a-zA-Z0-9][a-zA-Z0-9._@:\/-]{1,250}$", value, ): raise ModelValidationError( diff --git a/api/src/backend/api/tests/test_views.py b/api/src/backend/api/tests/test_views.py index ffc9d22802..ac6c6b51a6 100644 --- a/api/src/backend/api/tests/test_views.py +++ b/api/src/backend/api/tests/test_views.py @@ -914,6 +914,16 @@ class TestProviderViewSet: "uid": "gke_aaaa-dev_europe-test1_dev-aaaa-test-cluster-long-name-123456789", "alias": "GKE", }, + { + "provider": "kubernetes", + "uid": "gke_project/cluster-name", + "alias": "GKE", + }, + { + "provider": "kubernetes", + "uid": "admin@k8s-demo", + "alias": "test", + }, { "provider": "azure", "uid": "8851db6b-42e5-4533-aa9e-30a32d67e875", From 5d043cc929886a8d28dce66b3d7d3cd75b1e2524 Mon Sep 17 00:00:00 2001 From: Alison Vilela Date: Thu, 29 May 2025 03:05:23 -0400 Subject: [PATCH 045/111] fix(awslambda): aws service awslambda not working (#7869) --- prowler/lib/check/models.py | 5 ++--- tests/lib/check/models_test.py | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/prowler/lib/check/models.py b/prowler/lib/check/models.py index 875350c757..9c8ee40eb6 100644 --- a/prowler/lib/check/models.py +++ b/prowler/lib/check/models.py @@ -329,9 +329,8 @@ class CheckMetadata(BaseModel): checks = set() if service: - # This is a special case for the AWS provider since `lambda` is a reserved keyword in Python - if service == "awslambda": - service = "lambda" + if service == "lambda": + service = "awslambda" checks = { check_name for check_name, check_metadata in bulk_checks_metadata.items() diff --git a/tests/lib/check/models_test.py b/tests/lib/check/models_test.py index 414de90288..fdbb8b6d70 100644 --- a/tests/lib/check/models_test.py +++ b/tests/lib/check/models_test.py @@ -37,7 +37,7 @@ mock_metadata_lambda = CheckMetadata( CheckID="awslambda_function_url_public", CheckTitle="Check 1", CheckType=["type1"], - ServiceName="lambda", + ServiceName="awslambda", SubServiceName="subservice1", ResourceIdTemplate="template1", Severity="high", From a89e3598f22133d1a03e31020215172d18108dac Mon Sep 17 00:00:00 2001 From: Sergio Garcia Date: Thu, 29 May 2025 13:20:53 +0200 Subject: [PATCH 046/111] fix(gcp): test connection by verifying token (#7882) --- prowler/providers/gcp/gcp_provider.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/prowler/providers/gcp/gcp_provider.py b/prowler/providers/gcp/gcp_provider.py index 789c434bb4..63c1c6d51d 100644 --- a/prowler/providers/gcp/gcp_provider.py +++ b/prowler/providers/gcp/gcp_provider.py @@ -515,9 +515,9 @@ class GcpProvider(Provider): credentials=session, ) - # Test the connection using the Service Usage API since it is enabled by default - client = discovery.build("serviceusage", "v1", credentials=session) - request = client.services().list(parent=f"projects/{project_id}") + # Test the connection using OAuth2 API to verify token validity + client = discovery.build("oauth2", "v2", credentials=session) + request = client.tokeninfo() request.execute() return Connection(is_connected=True) From 71ac703e6fdc728cd8854dab7ee1ea8a9c6c450b Mon Sep 17 00:00:00 2001 From: Daniel Barranquero <74871504+danibarranqueroo@users.noreply.github.com> Date: Thu, 29 May 2025 16:38:15 +0200 Subject: [PATCH 047/111] fix(api): connection correctly reflected (#7831) Co-authored-by: Pepe Fagoaga --- api/CHANGELOG.md | 3 +++ api/src/backend/tasks/jobs/scan.py | 8 +++++++- api/src/backend/tasks/tests/test_scan.py | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index 6459e17086..e7ad901fc4 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -10,6 +10,9 @@ All notable changes to the **Prowler API** are documented in this file. ### Changed - Renamed field encrypted_password to password for M365 provider [(#7784)](https://github.com/prowler-cloud/prowler/pull/7784) +### Fixed +- Fixed the connection status verification before launching a scan [(#7831)](https://github.com/prowler-cloud/prowler/pull/7831) + --- ## [v1.8.2] (Prowler v5.7.2) diff --git a/api/src/backend/tasks/jobs/scan.py b/api/src/backend/tasks/jobs/scan.py index 81fbfbb0e9..1f4f9a8b94 100644 --- a/api/src/backend/tasks/jobs/scan.py +++ b/api/src/backend/tasks/jobs/scan.py @@ -124,6 +124,7 @@ def perform_prowler_scan( unique_resources = set() scan_resource_cache: set[tuple[str, str, str, str]] = set() start_time = time.time() + exc = None with rls_transaction(tenant_id): provider_instance = Provider.objects.get(pk=provider_id) @@ -139,7 +140,7 @@ def perform_prowler_scan( provider_instance.connected = True except Exception as e: provider_instance.connected = False - raise ValueError( + exc = ValueError( f"Provider {provider_instance.provider} is not connected: {e}" ) finally: @@ -148,6 +149,11 @@ def perform_prowler_scan( ) provider_instance.save() + # If the provider is not connected, raise an exception outside the transaction. + # If raised within the transaction, the transaction will be rolled back and the provider will not be marked as not connected. + if exc: + raise exc + prowler_scan = ProwlerScan(provider=prowler_provider, checks=checks_to_execute) resource_cache = {} diff --git a/api/src/backend/tasks/tests/test_scan.py b/api/src/backend/tasks/tests/test_scan.py index 8880b8bd03..a5fde62963 100644 --- a/api/src/backend/tasks/tests/test_scan.py +++ b/api/src/backend/tasks/tests/test_scan.py @@ -1,5 +1,6 @@ import json import uuid +from datetime import datetime from unittest.mock import MagicMock, patch import pytest @@ -206,6 +207,10 @@ class TestPerformScan: scan.refresh_from_db() assert scan.state == StateChoices.FAILED + provider.refresh_from_db() + assert provider.connected is False + assert isinstance(provider.connection_last_checked_at, datetime) + @pytest.mark.parametrize( "last_status, new_status, expected_delta", [ From 6c3653c483375182452822755dd2cb657c123ebd Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Fri, 30 May 2025 10:01:32 +0200 Subject: [PATCH 048/111] fix(docs): remove warning of encrypted password for cloud (#7886) --- .../tutorials/microsoft365/getting-started-m365.md | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/docs/tutorials/microsoft365/getting-started-m365.md b/docs/tutorials/microsoft365/getting-started-m365.md index f94707d86b..f648b073af 100644 --- a/docs/tutorials/microsoft365/getting-started-m365.md +++ b/docs/tutorials/microsoft365/getting-started-m365.md @@ -176,20 +176,6 @@ Follow these steps to assign the role: ![App Overview](./img/app-overview.png) -???+ warning - For Prowler Cloud encrypted password is still needed (when we update Prowler Cloud and regular password is accepted this warning will be deleted), so the password that you paste in the next step should be generated following this steps: - - - UNIX: Open a PowerShell cmd with a [supported version](../../getting-started/requirements.md#supported-powershell-versions) and then run the following command: - - ```console - $securePassword = ConvertTo-SecureString "examplepassword" -AsPlainText -Force - $encryptedPassword = $securePassword | ConvertFrom-SecureString - Write-Output $encryptedPassword - 6500780061006d0070006c006500700061007300730077006f0072006400 - ``` - - - Windows: Install WSL using `wsl --install -d Ubuntu-22.04`, then open the Ubuntu terminal, install powershell and run the same command above. - 2. Go to Prowler Cloud/App and paste: From 878e4e0bbcf903d7651a06cf98394bfb52759d41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Jes=C3=BAs=20Pe=C3=B1a=20Rodr=C3=ADguez?= Date: Fri, 30 May 2025 10:07:32 +0200 Subject: [PATCH 049/111] fix: add new get method to avoid race conditions when creating async tasks (#7876) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Víctor Fernández Poyatos --- .env | 4 +++ api/CHANGELOG.md | 1 + api/src/backend/api/models.py | 40 ++++++++++++++++++++++++ api/src/backend/api/tests/test_models.py | 37 +++++++++++++++++++++- api/src/backend/api/v1/views.py | 8 ++--- 5 files changed, 85 insertions(+), 5 deletions(-) diff --git a/.env b/.env index 1fa497f3e6..1f53b81153 100644 --- a/.env +++ b/.env @@ -24,6 +24,10 @@ POSTGRES_USER=prowler POSTGRES_PASSWORD=postgres POSTGRES_DB=prowler_db +# Celery-Prowler task settings +TASK_RETRY_DELAY_SECONDS=0.1 +TASK_RETRY_ATTEMPTS=5 + # Valkey settings # If running Valkey and celery on host, use localhost, else use 'valkey' VALKEY_HOST=valkey diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index e7ad901fc4..937c090f85 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -20,6 +20,7 @@ All notable changes to the **Prowler API** are documented in this file. ### Fixed - Fixed task lookup to use task_kwargs instead of task_args for scan report resolution. [(#7830)](https://github.com/prowler-cloud/prowler/pull/7830) - Fixed Kubernetes UID validation to allow valid context names [(#7871)](https://github.com/prowler-cloud/prowler/pull/7871) +- Fixed a race condition when creating background tasks [(#7876)](https://github.com/prowler-cloud/prowler/pull/7876). --- diff --git a/api/src/backend/api/models.py b/api/src/backend/api/models.py index 2b4fec00cf..9564399868 100644 --- a/api/src/backend/api/models.py +++ b/api/src/backend/api/models.py @@ -1,7 +1,9 @@ import json import re +import time from uuid import UUID, uuid4 +from config.env import env from cryptography.fernet import Fernet from django.conf import settings from django.contrib.auth.models import AbstractBaseUser @@ -352,6 +354,42 @@ class ProviderGroupMembership(RowLevelSecurityProtectedModel): resource_name = "provider_groups-provider" +class TaskManager(models.Manager): + def get_with_retry( + self, + id: str, + max_retries: int = None, + delay_seconds: float = None, + ): + """ + Retry fetching a Task by ID in case it hasn't been created yet. + + Args: + id (str): The Celery task ID (expected to match Task model PK). + max_retries (int, optional): Number of retry attempts. Defaults to env TASK_RETRY_ATTEMPTS or 5. + delay_seconds (float, optional): Delay between retries in seconds. Defaults to env TASK_RETRY_DELAY_SECONDS or 0.1. + + Returns: + Task: The retrieved Task instance. + + Raises: + Task.DoesNotExist: If the task is not found after all retries. + """ + max_retries = max_retries or env.int("TASK_RETRY_ATTEMPTS", default=5) + delay_seconds = delay_seconds or env.float( + "TASK_RETRY_DELAY_SECONDS", default=0.1 + ) + + for _attempt in range(max_retries): + try: + return self.get(id=id) + except self.model.DoesNotExist: + time.sleep(delay_seconds) + raise self.model.DoesNotExist( + f"Task with ID {id} not found after {max_retries} retries." + ) + + class Task(RowLevelSecurityProtectedModel): id = models.UUIDField(primary_key=True, default=uuid4, editable=False) inserted_at = models.DateTimeField(auto_now_add=True, editable=False) @@ -364,6 +402,8 @@ class Task(RowLevelSecurityProtectedModel): blank=True, ) + objects = TaskManager() + class Meta(RowLevelSecurityProtectedModel.Meta): db_table = "tasks" diff --git a/api/src/backend/api/tests/test_models.py b/api/src/backend/api/tests/test_models.py index c2beeb3583..de2ec7c59e 100644 --- a/api/src/backend/api/tests/test_models.py +++ b/api/src/backend/api/tests/test_models.py @@ -1,6 +1,9 @@ +import uuid +from unittest import mock + import pytest -from api.models import Resource, ResourceTag +from api.models import Resource, ResourceTag, Task @pytest.mark.django_db @@ -120,3 +123,35 @@ class TestResourceModel: # compliance={}, # ) # assert Finding.objects.filter(uid=long_uid).exists() + + +@pytest.mark.django_db +class TestTaskManager: + def test_get_with_retry_success(self): + task_id = uuid.uuid4() + call_counter = {"count": 0} + + def side_effect(*args, **kwargs): + if call_counter["count"] < 2: + call_counter["count"] += 1 + raise Task.DoesNotExist() + return Task(id=task_id) + + with mock.patch.object(Task.objects, "get", side_effect=side_effect): + task = Task.objects.get_with_retry( + task_id, max_retries=5, delay_seconds=0.01 + ) + + assert task.id == task_id + assert call_counter["count"] == 2 + + def test_get_with_retry_fail(self): + non_existent_id = uuid.uuid4() + + with mock.patch.object(Task.objects, "get", side_effect=Task.DoesNotExist): + with pytest.raises(Task.DoesNotExist) as excinfo: + Task.objects.get_with_retry( + non_existent_id, max_retries=3, delay_seconds=0.01 + ) + + assert str(non_existent_id) in str(excinfo.value) diff --git a/api/src/backend/api/v1/views.py b/api/src/backend/api/v1/views.py index b8679217f9..8fc87d2808 100644 --- a/api/src/backend/api/v1/views.py +++ b/api/src/backend/api/v1/views.py @@ -1086,7 +1086,7 @@ class ProviderViewSet(BaseRLSViewSet): task = check_provider_connection_task.delay( provider_id=pk, tenant_id=self.request.tenant_id ) - prowler_task = Task.objects.get(id=task.id) + prowler_task = Task.objects.get_with_retry(id=task.id) serializer = TaskSerializer(prowler_task) return Response( data=serializer.data, @@ -1109,7 +1109,7 @@ class ProviderViewSet(BaseRLSViewSet): task = delete_provider_task.delay( provider_id=pk, tenant_id=self.request.tenant_id ) - prowler_task = Task.objects.get(id=task.id) + prowler_task = Task.objects.get_with_retry(id=task.id) serializer = TaskSerializer(prowler_task) return Response( data=serializer.data, @@ -1489,10 +1489,10 @@ class ScanViewSet(BaseRLSViewSet): }, ) + prowler_task = Task.objects.get_with_retry(id=task.id) scan.task_id = task.id scan.save(update_fields=["task_id"]) - prowler_task = Task.objects.get(id=task.id) self.response_serializer_class = TaskSerializer output_serializer = self.get_serializer(prowler_task) @@ -2823,7 +2823,7 @@ class ScheduleViewSet(BaseRLSViewSet): with transaction.atomic(): task = schedule_provider_scan(provider_instance) - prowler_task = Task.objects.get(id=task.id) + prowler_task = Task.objects.get_with_retry(id=task.id) self.response_serializer_class = TaskSerializer output_serializer = self.get_serializer(prowler_task) From b256c1062275771fed52904e6f133b159fa620ae Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Fri, 30 May 2025 10:24:49 +0200 Subject: [PATCH 050/111] chore: replace `Directory.Read.All` permission to `Domain.Read.All` for Azure (#7888) --- docs/getting-started/requirements.md | 4 ++-- docs/tutorials/azure/create-prowler-service-principal.md | 4 ++-- docs/tutorials/azure/getting-started-azure.md | 4 ++-- docs/tutorials/microsoft365/getting-started-m365.md | 4 ++-- prowler/CHANGELOG.md | 1 + 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/getting-started/requirements.md b/docs/getting-started/requirements.md index 6e79f86bba..e5d6087c1f 100644 --- a/docs/getting-started/requirements.md +++ b/docs/getting-started/requirements.md @@ -70,7 +70,7 @@ The other three cases does not need additional configuration, `--az-cli-auth` an Prowler for Azure needs two types of permission scopes to be set: - **Microsoft Entra ID permissions**: used to retrieve metadata from the identity assumed by Prowler and specific Entra checks (not mandatory to have access to execute the tool). The permissions required by the tool are the following: - - `Directory.Read.All` + - `Domain.Read.All` - `Policy.Read.All` - `UserAuthenticationMethod.Read.All` (used only for the Entra checks related with multifactor authentication) - **Subscription scope permissions**: required to launch the checks against your resources, mandatory to launch the tool. It is required to add the following RBAC builtin roles per subscription to the entity that is going to be assumed by the tool: @@ -199,7 +199,7 @@ Since this is a delegated permission authentication method, necessary permission Prowler for M365 requires two types of permission scopes to be set (if you want to run the full provider including PowerShell checks). Both must be configured using Microsoft Entra ID: - **Service Principal Application Permissions**: These are set at the **application** level and are used to retrieve data from the identity being assessed: - - `Directory.Read.All`: Required for all services. + - `Domain.Read.All`: Required for all services. - `Policy.Read.All`: Required for all services. - `User.Read` (IMPORTANT: this must be set as **delegated**): Required for the sign-in. - `SharePointTenantSettings.Read.All`: Required for SharePoint service. diff --git a/docs/tutorials/azure/create-prowler-service-principal.md b/docs/tutorials/azure/create-prowler-service-principal.md index 02ab7ea629..25c170df97 100644 --- a/docs/tutorials/azure/create-prowler-service-principal.md +++ b/docs/tutorials/azure/create-prowler-service-principal.md @@ -40,7 +40,7 @@ az ad sp create-for-rbac --name "ProwlerApp" To allow Prowler to retrieve metadata from the identity assumed and run specific Entra checks, it is needed to assign the following permissions: -- `Directory.Read.All` +- `Domain.Read.All` - `Policy.Read.All` - `UserAuthenticationMethod.Read.All` (used only for the Entra checks related with multifactor authentication) @@ -58,7 +58,7 @@ To assign the permissions you can make it from the Azure Portal or using the Azu 5. Then click on "+ Add a permission" and select "Microsoft Graph" 6. Once in the "Microsoft Graph" view, select "Application permissions" 7. Finally, search for "Directory", "Policy" and "UserAuthenticationMethod" select the following permissions: - - `Directory.Read.All` + - `Domain.Read.All` - `Policy.Read.All` - `UserAuthenticationMethod.Read.All` 8. Click on "Add permissions" to apply the new permissions. diff --git a/docs/tutorials/azure/getting-started-azure.md b/docs/tutorials/azure/getting-started-azure.md index b9331703e8..5dead442d7 100644 --- a/docs/tutorials/azure/getting-started-azure.md +++ b/docs/tutorials/azure/getting-started-azure.md @@ -90,7 +90,7 @@ A Service Principal is required to grant Prowler the necessary privileges. Assign the following Microsoft Graph permissions: - - Directory.Read.All + - Domain.Read.All - Policy.Read.All @@ -107,7 +107,7 @@ Assign the following Microsoft Graph permissions: 3. Search and select: - - `Directory.Read.All` + - `Domain.Read.All` - `Policy.Read.All` - `UserAuthenticationMethod.Read.All` diff --git a/docs/tutorials/microsoft365/getting-started-m365.md b/docs/tutorials/microsoft365/getting-started-m365.md index f648b073af..5e0364faaf 100644 --- a/docs/tutorials/microsoft365/getting-started-m365.md +++ b/docs/tutorials/microsoft365/getting-started-m365.md @@ -96,7 +96,7 @@ With this done you will have all the needed keys, summarized in the following ta Assign the following Microsoft Graph permissions: -- `Directory.Read.All`: Required for all services. +- `Domain.Read.All`: Required for all services. - `Policy.Read.All`: Required for all services. - `SharePointTenantSettings.Read.All`: Required for SharePoint service. - `AuditLog.Read.All`: Required for Entra service. @@ -114,7 +114,7 @@ Follow these steps to assign the permissions: 3. Search and select every permission below and once all are selected click on `Add permissions`: - - `Directory.Read.All` + - `Domain.Read.All` - `Policy.Read.All` - `SharePointTenantSettings.Read.All` - `AuditLog.Read.All`: Required for Entra service. diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 2f6de1ce04..34e9fc3037 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -28,6 +28,7 @@ All notable changes to the **Prowler SDK** are documented in this file. - Fix `admincenter_users_admins_reduced_license_footprint` check logic to pass when admin user has no license. [(#7779)](https://github.com/prowler-cloud/prowler/pull/7779) - Fix `m365_powershell` to close the PowerShell sessions in msgraph services. [(#7816)](https://github.com/prowler-cloud/prowler/pull/7816) - Fix `defender_ensure_notify_alerts_severity_is_high`check to accept high or lower severity. [(#7862)](https://github.com/prowler-cloud/prowler/pull/7862) +- Replace `Directory.Read.All` permission with `Domain.Read.All` which is more restrictive. [(#7888)](https://github.com/prowler-cloud/prowler/pull/7888) --- From 4888c277133f6191ea40bc37dd2cee7d674704f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Arroba?= <19954079+cesararroba@users.noreply.github.com> Date: Fri, 30 May 2025 13:55:57 +0200 Subject: [PATCH 051/111] chore: fix commit sha when a pr is merged (#7889) --- .github/workflows/pull-request-merged.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull-request-merged.yml b/.github/workflows/pull-request-merged.yml index 090950f79b..7bc05dc3c4 100644 --- a/.github/workflows/pull-request-merged.yml +++ b/.github/workflows/pull-request-merged.yml @@ -18,7 +18,7 @@ jobs: - name: Set short git commit SHA id: vars run: | - shortSha=$(git rev-parse --short ${{ github.sha }}) + shortSha=$(git rev-parse --short ${{ github.event.pull_request.merge_commit_sha }}) echo "SHORT_SHA=${shortSha}" >> $GITHUB_ENV - name: Trigger pull request @@ -28,7 +28,7 @@ jobs: repository: ${{ secrets.CLOUD_DISPATCH }} event-type: prowler-pull-request-merged client-payload: '{ - "PROWLER_COMMIT_SHA": "${{ github.sha }}", + "PROWLER_COMMIT_SHA": "${{ github.event.pull_request.merge_commit_sha }}", "PROWLER_COMMIT_SHORT_SHA": "${{ env.SHORT_SHA }}", "PROWLER_PR_TITLE": "${{ github.event.pull_request.title }}", "PROWLER_PR_LABELS": ${{ toJson(github.event.pull_request.labels.*.name) }}, From 678ef0ab5ac26b9461038d873c294bfaf70e5674 Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Mon, 2 Jun 2025 10:23:39 +0200 Subject: [PATCH 052/111] feat(providers): setup workflow to support new GCP credential method (#7872) --- ui/CHANGELOG.md | 10 +- ui/actions/providers/providers.ts | 71 ++++++-- .../add-credentials/page.tsx | 21 ++- .../update-credentials/page.tsx | 52 +++--- .../providers/credentials-update-info.tsx | 51 ++++++ ui/components/providers/index.ts | 1 + .../workflow/forms/connect-account-form.tsx | 3 +- .../providers/workflow/forms/index.ts | 1 - .../aws-role-credentials-form.tsx} | 5 +- .../aws-static-credentials-form.tsx} | 2 +- .../aws/credentials-type/index.ts | 2 + .../select-credentials-type/aws/index.ts | 2 + ...o-group-aws-via-credentials-type-form.tsx} | 2 +- .../aws}/select-via-aws.tsx | 4 +- .../gcp-default-credentials-form.tsx} | 6 +- .../gcp-service-account-key-form.tsx | 34 ++++ .../gcp/credentials-type/index.ts | 2 + .../select-credentials-type/gcp/index.ts | 3 + ...io-group-gcp-via-credentials-type-form.tsx | 77 ++++++++ .../gcp/select-via-gcp.tsx | 38 ++++ .../gcp/via-service-account-form.tsx | 160 +++++++++++++++++ .../workflow/forms/select-via-aws/index.ts | 1 - .../forms/update-via-credentials-form.tsx | 18 +- .../workflow/forms/update-via-role-form.tsx | 4 +- .../update-via-service-account-key-form.tsx | 169 ++++++++++++++++++ .../workflow/forms/via-credentials-form.tsx | 20 +-- .../workflow/forms/via-credentials/index.ts | 2 - .../workflow/forms/via-role-form.tsx | 4 +- .../workflow/forms/via-role/index.ts | 1 - ui/types/components.ts | 11 +- ui/types/formSchemas.ts | 29 +++ 31 files changed, 714 insertions(+), 92 deletions(-) create mode 100644 ui/components/providers/credentials-update-info.tsx rename ui/components/providers/workflow/forms/{via-role/aws-role-form.tsx => select-credentials-type/aws/credentials-type/aws-role-credentials-form.tsx} (97%) rename ui/components/providers/workflow/forms/{via-credentials/aws-credentials-form.tsx => select-credentials-type/aws/credentials-type/aws-static-credentials-form.tsx} (97%) create mode 100644 ui/components/providers/workflow/forms/select-credentials-type/aws/credentials-type/index.ts create mode 100644 ui/components/providers/workflow/forms/select-credentials-type/aws/index.ts rename ui/components/providers/workflow/forms/{radio-group-aws-via-credentials-form.tsx => select-credentials-type/aws/radio-group-aws-via-credentials-type-form.tsx} (97%) rename ui/components/providers/workflow/forms/{select-via-aws => select-credentials-type/aws}/select-via-aws.tsx (85%) rename ui/components/providers/workflow/forms/{via-credentials/gcp-credentials-form.tsx => select-credentials-type/gcp/credentials-type/gcp-default-credentials-form.tsx} (91%) create mode 100644 ui/components/providers/workflow/forms/select-credentials-type/gcp/credentials-type/gcp-service-account-key-form.tsx create mode 100644 ui/components/providers/workflow/forms/select-credentials-type/gcp/credentials-type/index.ts create mode 100644 ui/components/providers/workflow/forms/select-credentials-type/gcp/index.ts create mode 100644 ui/components/providers/workflow/forms/select-credentials-type/gcp/radio-group-gcp-via-credentials-type-form.tsx create mode 100644 ui/components/providers/workflow/forms/select-credentials-type/gcp/select-via-gcp.tsx create mode 100644 ui/components/providers/workflow/forms/select-credentials-type/gcp/via-service-account-form.tsx delete mode 100644 ui/components/providers/workflow/forms/select-via-aws/index.ts create mode 100644 ui/components/providers/workflow/forms/update-via-service-account-key-form.tsx delete mode 100644 ui/components/providers/workflow/forms/via-role/index.ts diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 01480c765e..bff6a36cbf 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -9,10 +9,18 @@ All notable changes to the **Prowler UI** are documented in this file. - New profile page with details about the user and their roles. [(#7780)](https://github.com/prowler-cloud/prowler/pull/7780) - Improved `SnippetChip` component and show resource name in new findings table. [(#7813)](https://github.com/prowler-cloud/prowler/pull/7813) - Possibility to edit the organization name. [(#7829)](https://github.com/prowler-cloud/prowler/pull/7829) +- Add GCP credential method (Account Service Key). [(#7872)](https://github.com/prowler-cloud/prowler/pull/7872) + +### 🔄 Changed + +- Improve CustomDropdownFilter component. [(#7868)(https://github.com/prowler-cloud/prowler/pull/7868)] - Add `Provider UID` filter to scans page. [(#7820)](https://github.com/prowler-cloud/prowler/pull/7820) + +### 🐞 Fixes + - Download report behaviour updated to show feedback based on API response. [(#7758)](https://github.com/prowler-cloud/prowler/pull/7758) - Missing KISA and ProwlerThreat icons added to the compliance page. [(#7860)(https://github.com/prowler-cloud/prowler/pull/7860)] -- Improve CustomDropdownFilter component. [(#7868)(https://github.com/prowler-cloud/prowler/pull/7868)] + ### 🐞 Fixes - Retrieve more than 10 scans in /compliance page. [(#7865)](https://github.com/prowler-cloud/prowler/pull/7865) diff --git a/ui/actions/providers/providers.ts b/ui/actions/providers/providers.ts index f4891677ee..9bf9826c47 100644 --- a/ui/actions/providers/providers.ts +++ b/ui/actions/providers/providers.ts @@ -10,7 +10,7 @@ import { parseStringify, wait, } from "@/lib"; -import { ProvidersApiResponse } from "@/types/providers"; +import { ProvidersApiResponse, ProviderType } from "@/types/providers"; export const getProviders = async ({ page = 1, @@ -110,7 +110,7 @@ export const updateProvider = async (formData: FormData) => { export const addProvider = async (formData: FormData) => { const headers = await getAuthHeaders({ contentType: true }); - const providerType = formData.get("providerType") as string; + const providerType = formData.get("providerType") as ProviderType; const providerUid = formData.get("providerUid") as string; const providerAlias = formData.get("providerAlias") as string; @@ -152,9 +152,10 @@ export const addCredentialsProvider = async (formData: FormData) => { const secretName = formData.get("secretName"); const providerId = formData.get("providerId"); - const providerType = formData.get("providerType"); + const providerType = formData.get("providerType") as ProviderType; const isRole = formData.get("role_arn") !== null; + const isServiceAccount = formData.get("service_account_key") !== null; let secret = {}; let secretType = "static"; // Default to static credentials @@ -199,19 +200,36 @@ export const addCredentialsProvider = async (formData: FormData) => { password: formData.get("password"), }; } else if (providerType === "gcp") { - // Static credentials configuration for GCP - secret = { - client_id: formData.get("client_id"), - client_secret: formData.get("client_secret"), - refresh_token: formData.get("refresh_token"), - }; + if (isServiceAccount) { + // Service account configuration for GCP + secretType = "service_account"; + const serviceAccountKeyRaw = formData.get( + "service_account_key", + ) as string; + + try { + const serviceAccountKey = JSON.parse(serviceAccountKeyRaw); + secret = { + service_account_key: serviceAccountKey, + }; + } catch (error) { + // eslint-disable-next-line no-console + console.error("error", error); + } + } else { + // Static credentials configuration for GCP + secret = { + client_id: formData.get("client_id"), + client_secret: formData.get("client_secret"), + refresh_token: formData.get("refresh_token"), + }; + } } else if (providerType === "kubernetes") { // Static credentials configuration for Kubernetes secret = { kubeconfig_content: formData.get("kubeconfig_content"), }; } - const bodyData = { data: { type: "provider-secrets", @@ -257,9 +275,10 @@ export const updateCredentialsProvider = async ( const url = new URL(`${apiBaseUrl}/providers/secrets/${credentialsId}`); const secretName = formData.get("secretName"); - const providerType = formData.get("providerType"); + const providerType = formData.get("providerType") as ProviderType; const isRole = formData.get("role_arn") !== null; + const isServiceAccount = formData.get("service_account_key") !== null; let secret = {}; @@ -302,12 +321,30 @@ export const updateCredentialsProvider = async ( password: formData.get("password"), }; } else if (providerType === "gcp") { - // Static credentials configuration for GCP - secret = { - client_id: formData.get("client_id"), - client_secret: formData.get("client_secret"), - refresh_token: formData.get("refresh_token"), - }; + if (isServiceAccount) { + // Service account configuration for GCP + const serviceAccountKeyRaw = formData.get( + "service_account_key", + ) as string; + + try { + // Parse the service account key as JSON + const serviceAccountKey = JSON.parse(serviceAccountKeyRaw); + secret = { + service_account_key: serviceAccountKey, + }; + } catch (error) { + // eslint-disable-next-line no-console + console.error("error", error); + } + } else { + // Static credentials configuration for GCP + secret = { + client_id: formData.get("client_id"), + client_secret: formData.get("client_secret"), + refresh_token: formData.get("refresh_token"), + }; + } } else if (providerType === "kubernetes") { // Static credentials configuration for Kubernetes secret = { diff --git a/ui/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx b/ui/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx index fce06d1a88..7f579c67ff 100644 --- a/ui/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx +++ b/ui/app/(prowler)/providers/(set-up-provider)/add-credentials/page.tsx @@ -4,10 +4,15 @@ import { ViaCredentialsForm, ViaRoleForm, } from "@/components/providers/workflow/forms"; -import { SelectViaAWS } from "@/components/providers/workflow/forms/select-via-aws/select-via-aws"; +import { SelectViaAWS } from "@/components/providers/workflow/forms/select-credentials-type/aws"; +import { + SelectViaGCP, + ViaServiceAccountForm, +} from "@/components/providers/workflow/forms/select-credentials-type/gcp"; +import { ProviderType } from "@/types/providers"; interface Props { - searchParams: { type: string; id: string; via?: string }; + searchParams: { type: ProviderType; id: string; via?: string }; } export default function AddCredentialsPage({ searchParams }: Props) { @@ -17,14 +22,24 @@ export default function AddCredentialsPage({ searchParams }: Props) { )} + {searchParams.type === "gcp" && !searchParams.via && ( + + )} + {((searchParams.type === "aws" && searchParams.via === "credentials") || - searchParams.type !== "aws") && ( + (searchParams.type === "gcp" && searchParams.via === "credentials") || + (searchParams.type !== "aws" && searchParams.type !== "gcp")) && ( )} {searchParams.type === "aws" && searchParams.via === "role" && ( )} + + {searchParams.type === "gcp" && + searchParams.via === "service-account" && ( + + )} ); } diff --git a/ui/app/(prowler)/providers/(set-up-provider)/update-credentials/page.tsx b/ui/app/(prowler)/providers/(set-up-provider)/update-credentials/page.tsx index 3a680c3be8..185a107244 100644 --- a/ui/app/(prowler)/providers/(set-up-provider)/update-credentials/page.tsx +++ b/ui/app/(prowler)/providers/(set-up-provider)/update-credentials/page.tsx @@ -1,53 +1,47 @@ import React from "react"; -import { InfoIcon } from "@/components/icons"; +import { CredentialsUpdateInfo } from "@/components/providers"; import { UpdateViaCredentialsForm, UpdateViaRoleForm, } from "@/components/providers/workflow/forms"; -import { SelectViaAWS } from "@/components/providers/workflow/forms/select-via-aws/select-via-aws"; +import { UpdateViaServiceAccountForm } from "@/components/providers/workflow/forms/update-via-service-account-key-form"; +import { ProviderType } from "@/types/providers"; interface Props { - searchParams: { type: string; id: string; via?: string }; + searchParams: { + type: ProviderType; + id: string; + via?: string; + secretId?: string; + }; } export default function UpdateCredentialsPage({ searchParams }: Props) { return ( <> - {searchParams.type === "aws" && !searchParams.via && ( - <> -
-

- To update provider credentials,{" "} - - the same type that was originally configured must be used. - -

-
- -

- If the provider was configured with static credentials, updates - must also use static credentials. If it was configured with a - role, updates must use a role. -

-
-

- To switch from static credentials to a role (or vice versa), the - provider must be deleted and set up again. -

- -
- - )} + {(searchParams.type === "aws" || searchParams.type === "gcp") && + !searchParams.via && ( + + )} {((searchParams.type === "aws" && searchParams.via === "credentials") || - searchParams.type !== "aws") && ( + (searchParams.type === "gcp" && searchParams.via === "credentials") || + (searchParams.type !== "aws" && searchParams.type !== "gcp")) && ( )} {searchParams.type === "aws" && searchParams.via === "role" && ( )} + + {searchParams.type === "gcp" && + searchParams.via === "service-account" && ( + + )} ); } diff --git a/ui/components/providers/credentials-update-info.tsx b/ui/components/providers/credentials-update-info.tsx new file mode 100644 index 0000000000..1b32e2391f --- /dev/null +++ b/ui/components/providers/credentials-update-info.tsx @@ -0,0 +1,51 @@ +"use client"; + +import { InfoIcon } from "@/components/icons"; +import { SelectViaAWS } from "@/components/providers/workflow/forms/select-credentials-type/aws"; +import { SelectViaGCP } from "@/components/providers/workflow/forms/select-credentials-type/gcp"; +import { ProviderType } from "@/types/providers"; + +interface UpdateCredentialsInfoProps { + providerType: ProviderType; + initialVia?: string; +} + +export const CredentialsUpdateInfo = ({ + providerType, + initialVia, +}: UpdateCredentialsInfoProps) => { + const renderSelectComponent = () => { + if (providerType === "aws") { + return ; + } + if (providerType === "gcp") { + return ; + } + return null; + }; + + return ( +
+

+ To update provider credentials,{" "} + + the same type that was originally configured must be used. + +

+
+ +

+ If the provider was configured with static credentials, updates must + also use static credentials. If it was configured with a role in AWS + (or service account in GCP),{" "} + updates must use the same type. +

+
+

+ To switch from one type to another, the provider must be deleted and set + up again. +

+ {renderSelectComponent()} +
+ ); +}; diff --git a/ui/components/providers/index.ts b/ui/components/providers/index.ts index 99dc5901b7..967b661073 100644 --- a/ui/components/providers/index.ts +++ b/ui/components/providers/index.ts @@ -1,4 +1,5 @@ export * from "./add-provider-button"; +export * from "./credentials-update-info"; export * from "./forms/delete-form"; export * from "./link-to-scans"; export * from "./provider-info"; diff --git a/ui/components/providers/workflow/forms/connect-account-form.tsx b/ui/components/providers/workflow/forms/connect-account-form.tsx index a33ebd786b..fa1d48abd4 100644 --- a/ui/components/providers/workflow/forms/connect-account-form.tsx +++ b/ui/components/providers/workflow/forms/connect-account-form.tsx @@ -10,7 +10,6 @@ import * as z from "zod"; import { useToast } from "@/components/ui"; import { CustomButton, CustomInput } from "@/components/ui/custom"; import { Form } from "@/components/ui/form"; -import { ProviderType } from "@/types"; import { addProvider } from "../../../../actions/providers/providers"; import { addProviderFormSchema, ApiError } from "../../../../types"; @@ -171,7 +170,7 @@ export const ConnectAccountForm = () => { {/* Step 2: UID, alias, and credentials (if AWS) */} {prevStep === 2 && ( <> - + ; diff --git a/ui/components/providers/workflow/forms/select-credentials-type/aws/credentials-type/index.ts b/ui/components/providers/workflow/forms/select-credentials-type/aws/credentials-type/index.ts new file mode 100644 index 0000000000..39f365d1c7 --- /dev/null +++ b/ui/components/providers/workflow/forms/select-credentials-type/aws/credentials-type/index.ts @@ -0,0 +1,2 @@ +export * from "./aws-role-credentials-form"; +export * from "./aws-static-credentials-form"; diff --git a/ui/components/providers/workflow/forms/select-credentials-type/aws/index.ts b/ui/components/providers/workflow/forms/select-credentials-type/aws/index.ts new file mode 100644 index 0000000000..102dc9031e --- /dev/null +++ b/ui/components/providers/workflow/forms/select-credentials-type/aws/index.ts @@ -0,0 +1,2 @@ +export * from "./radio-group-aws-via-credentials-type-form"; +export * from "./select-via-aws"; diff --git a/ui/components/providers/workflow/forms/radio-group-aws-via-credentials-form.tsx b/ui/components/providers/workflow/forms/select-credentials-type/aws/radio-group-aws-via-credentials-type-form.tsx similarity index 97% rename from ui/components/providers/workflow/forms/radio-group-aws-via-credentials-form.tsx rename to ui/components/providers/workflow/forms/select-credentials-type/aws/radio-group-aws-via-credentials-type-form.tsx index bb53c5a5b9..8ce7eb3407 100644 --- a/ui/components/providers/workflow/forms/radio-group-aws-via-credentials-form.tsx +++ b/ui/components/providers/workflow/forms/select-credentials-type/aws/radio-group-aws-via-credentials-type-form.tsx @@ -14,7 +14,7 @@ type RadioGroupAWSViaCredentialsFormProps = { onChange?: (value: string) => void; }; -export const RadioGroupAWSViaCredentialsForm = ({ +export const RadioGroupAWSViaCredentialsTypeForm = ({ control, isInvalid, errorMessage, diff --git a/ui/components/providers/workflow/forms/select-via-aws/select-via-aws.tsx b/ui/components/providers/workflow/forms/select-credentials-type/aws/select-via-aws.tsx similarity index 85% rename from ui/components/providers/workflow/forms/select-via-aws/select-via-aws.tsx rename to ui/components/providers/workflow/forms/select-credentials-type/aws/select-via-aws.tsx index 59197bb40e..01f7fe8e7c 100644 --- a/ui/components/providers/workflow/forms/select-via-aws/select-via-aws.tsx +++ b/ui/components/providers/workflow/forms/select-credentials-type/aws/select-via-aws.tsx @@ -5,7 +5,7 @@ import { useForm } from "react-hook-form"; import { Form } from "@/components/ui/form"; -import { RadioGroupAWSViaCredentialsForm } from "../radio-group-aws-via-credentials-form"; +import { RadioGroupAWSViaCredentialsTypeForm } from "./radio-group-aws-via-credentials-type-form"; interface SelectViaAWSProps { initialVia?: string; @@ -27,7 +27,7 @@ export const SelectViaAWS = ({ initialVia }: SelectViaAWSProps) => { return (
- ; + control: Control; }) => { return ( <> diff --git a/ui/components/providers/workflow/forms/select-credentials-type/gcp/credentials-type/gcp-service-account-key-form.tsx b/ui/components/providers/workflow/forms/select-credentials-type/gcp/credentials-type/gcp-service-account-key-form.tsx new file mode 100644 index 0000000000..00779a7b22 --- /dev/null +++ b/ui/components/providers/workflow/forms/select-credentials-type/gcp/credentials-type/gcp-service-account-key-form.tsx @@ -0,0 +1,34 @@ +import { Control } from "react-hook-form"; + +import { CustomTextarea } from "@/components/ui/custom"; +import { GCPServiceAccountKey } from "@/types"; + +export const GCPServiceAccountKeyForm = ({ + control, +}: { + control: Control; +}) => { + return ( + <> +
+
+ Connect via Service Account Key +
+
+ Please provide the service account key for your GCP credentials. +
+
+ + + ); +}; diff --git a/ui/components/providers/workflow/forms/select-credentials-type/gcp/credentials-type/index.ts b/ui/components/providers/workflow/forms/select-credentials-type/gcp/credentials-type/index.ts new file mode 100644 index 0000000000..407b1dc25b --- /dev/null +++ b/ui/components/providers/workflow/forms/select-credentials-type/gcp/credentials-type/index.ts @@ -0,0 +1,2 @@ +export * from "./gcp-default-credentials-form"; +export * from "./gcp-service-account-key-form"; diff --git a/ui/components/providers/workflow/forms/select-credentials-type/gcp/index.ts b/ui/components/providers/workflow/forms/select-credentials-type/gcp/index.ts new file mode 100644 index 0000000000..3c6c994a16 --- /dev/null +++ b/ui/components/providers/workflow/forms/select-credentials-type/gcp/index.ts @@ -0,0 +1,3 @@ +export * from "./radio-group-gcp-via-credentials-type-form"; +export * from "./select-via-gcp"; +export * from "./via-service-account-form"; diff --git a/ui/components/providers/workflow/forms/select-credentials-type/gcp/radio-group-gcp-via-credentials-type-form.tsx b/ui/components/providers/workflow/forms/select-credentials-type/gcp/radio-group-gcp-via-credentials-type-form.tsx new file mode 100644 index 0000000000..2990f95ddf --- /dev/null +++ b/ui/components/providers/workflow/forms/select-credentials-type/gcp/radio-group-gcp-via-credentials-type-form.tsx @@ -0,0 +1,77 @@ +"use client"; + +import { RadioGroup } from "@nextui-org/react"; +import React from "react"; +import { Control, Controller } from "react-hook-form"; + +import { CustomRadio } from "@/components/ui/custom"; +import { FormMessage } from "@/components/ui/form"; + +type RadioGroupAWSViaCredentialsFormProps = { + control: Control; + isInvalid: boolean; + errorMessage?: string; + onChange?: (value: string) => void; +}; + +export const RadioGroupGCPViaCredentialsTypeForm = ({ + control, + isInvalid, + errorMessage, + onChange, +}: RadioGroupAWSViaCredentialsFormProps) => { + return ( + ( + <> + { + field.onChange(value); + if (onChange) { + onChange(value); + } + }} + > +
+ + Using Service Account + + +
+ Connect via Service Account Key +
+
+ + Using Application Default Credentials + + +
+ + Connect via Application Default Credentials + +
+
+
+
+ {errorMessage && ( + + {errorMessage} + + )} + + )} + /> + ); +}; diff --git a/ui/components/providers/workflow/forms/select-credentials-type/gcp/select-via-gcp.tsx b/ui/components/providers/workflow/forms/select-credentials-type/gcp/select-via-gcp.tsx new file mode 100644 index 0000000000..b998005c8b --- /dev/null +++ b/ui/components/providers/workflow/forms/select-credentials-type/gcp/select-via-gcp.tsx @@ -0,0 +1,38 @@ +"use client"; + +import { useRouter } from "next/navigation"; +import { useForm } from "react-hook-form"; + +import { Form } from "@/components/ui/form"; + +import { RadioGroupGCPViaCredentialsTypeForm } from "./radio-group-gcp-via-credentials-type-form"; + +interface SelectViaGCPProps { + initialVia?: string; +} + +export const SelectViaGCP = ({ initialVia }: SelectViaGCPProps) => { + const router = useRouter(); + const form = useForm({ + defaultValues: { + gcpCredentialsType: initialVia || "", + }, + }); + + const handleSelectionChange = (value: string) => { + const url = new URL(window.location.href); + url.searchParams.set("via", value); + router.push(url.toString()); + }; + + return ( + + + + ); +}; diff --git a/ui/components/providers/workflow/forms/select-credentials-type/gcp/via-service-account-form.tsx b/ui/components/providers/workflow/forms/select-credentials-type/gcp/via-service-account-form.tsx new file mode 100644 index 0000000000..1e174ad21d --- /dev/null +++ b/ui/components/providers/workflow/forms/select-credentials-type/gcp/via-service-account-form.tsx @@ -0,0 +1,160 @@ +"use client"; + +import { zodResolver } from "@hookform/resolvers/zod"; +import { Divider } from "@nextui-org/react"; +import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"; +import { useRouter, useSearchParams } from "next/navigation"; +import { Control, useForm } from "react-hook-form"; +import * as z from "zod"; + +import { addCredentialsProvider } from "@/actions/providers/providers"; +import { ProviderTitleDocs } from "@/components/providers/workflow"; +import { useToast } from "@/components/ui"; +import { CustomButton } from "@/components/ui/custom"; +import { Form } from "@/components/ui/form"; +import { + addCredentialsServiceAccountFormSchema, + ApiError, + GCPServiceAccountKey, + ProviderType, +} from "@/types"; + +import { GCPServiceAccountKeyForm } from "./credentials-type/gcp-service-account-key-form"; + +export const ViaServiceAccountForm = ({ + searchParams, +}: { + searchParams: { type: ProviderType; id: string }; +}) => { + const router = useRouter(); + const { toast } = useToast(); + const searchParamsObj = useSearchParams(); + + // Handler for back button + const handleBackStep = () => { + const currentParams = new URLSearchParams(window.location.search); + currentParams.delete("via"); + router.push(`?${currentParams.toString()}`); + }; + + const providerType = searchParams.type; + const providerId = searchParams.id; + + const formSchema = addCredentialsServiceAccountFormSchema(providerType); + type FormSchemaType = z.infer; + + const form = useForm({ + resolver: zodResolver(formSchema), + defaultValues: { + providerId, + providerType, + ...(providerType === "gcp" + ? { + service_account_key: "", + secretName: "", + } + : {}), + }, + }); + + const isLoading = form.formState.isSubmitting; + + const onSubmitClient = async (values: FormSchemaType) => { + const formData = new FormData(); + + Object.entries(values).forEach(([key, value]) => { + if (value !== undefined && value !== "") { + formData.append(key, String(value)); + } + }); + + try { + const data = await addCredentialsProvider(formData); + + if (data?.errors && data.errors.length > 0) { + data.errors.forEach((error: ApiError) => { + const errorMessage = error.detail; + + switch (error.source.pointer) { + case "/data/attributes/secret/service_account_key": + form.setError("service_account_key" as keyof FormSchemaType, { + type: "server", + message: errorMessage, + }); + break; + default: + toast({ + variant: "destructive", + title: "Oops! Something went wrong", + description: errorMessage, + }); + } + }); + } else { + router.push( + `/providers/test-connection?type=${providerType}&id=${providerId}`, + ); + } + } catch (error) { + // eslint-disable-next-line no-console + console.error("Error during submission:", error); + toast({ + variant: "destructive", + title: "Submission failed", + description: "An error occurred while processing your request.", + }); + } + }; + + return ( +
+ + + + + + + + + {providerType === "gcp" && ( + } + /> + )} + +
+ {searchParamsObj.get("via") === "service-account" && ( + } + isDisabled={isLoading} + > + Back + + )} + } + > + {isLoading ? <>Loading : Next} + +
+ + + ); +}; diff --git a/ui/components/providers/workflow/forms/select-via-aws/index.ts b/ui/components/providers/workflow/forms/select-via-aws/index.ts deleted file mode 100644 index 8dd9822258..0000000000 --- a/ui/components/providers/workflow/forms/select-via-aws/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./select-via-aws"; diff --git a/ui/components/providers/workflow/forms/update-via-credentials-form.tsx b/ui/components/providers/workflow/forms/update-via-credentials-form.tsx index 640c2d5975..76da05efcb 100644 --- a/ui/components/providers/workflow/forms/update-via-credentials-form.tsx +++ b/ui/components/providers/workflow/forms/update-via-credentials-form.tsx @@ -17,15 +17,15 @@ import { ApiError, AWSCredentials, AzureCredentials, - GCPCredentials, + GCPDefaultCredentials, KubernetesCredentials, M365Credentials, } from "@/types"; import { ProviderTitleDocs } from "../provider-title-docs"; -import { AWScredentialsForm } from "./via-credentials/aws-credentials-form"; +import { AWSStaticCredentialsForm } from "./select-credentials-type/aws/credentials-type"; +import { GCPDefaultCredentialsForm } from "./select-credentials-type/gcp/credentials-type"; import { AzureCredentialsForm } from "./via-credentials/azure-credentials-form"; -import { GCPcredentialsForm } from "./via-credentials/gcp-credentials-form"; import { KubernetesCredentialsForm } from "./via-credentials/k8s-credentials-form"; import { M365CredentialsForm } from "./via-credentials/m365-credentials-form"; @@ -38,7 +38,7 @@ type FormType = CredentialsFormSchema & AWSCredentials & AzureCredentials & M365Credentials & - GCPCredentials & + GCPDefaultCredentials & KubernetesCredentials; export const UpdateViaCredentialsForm = ({ @@ -58,7 +58,7 @@ export const UpdateViaCredentialsForm = ({ router.push(`?${currentParams.toString()}`); }; - const providerType = searchParams.type; + const providerType = searchParams.type as ProviderType; const providerId = searchParams.id; const providerSecretId = searchParams.secretId || ""; const formSchema = addCredentialsFormSchema(providerType); @@ -201,12 +201,12 @@ export const UpdateViaCredentialsForm = ({ - + {providerType === "aws" && ( - } /> )} @@ -221,8 +221,8 @@ export const UpdateViaCredentialsForm = ({ /> )} {providerType === "gcp" && ( - } + } /> )} {providerType === "kubernetes" && ( diff --git a/ui/components/providers/workflow/forms/update-via-role-form.tsx b/ui/components/providers/workflow/forms/update-via-role-form.tsx index c0d9c24917..b207a27bbc 100644 --- a/ui/components/providers/workflow/forms/update-via-role-form.tsx +++ b/ui/components/providers/workflow/forms/update-via-role-form.tsx @@ -17,7 +17,7 @@ import { AWSCredentialsRole, } from "@/types"; -import { AWSCredentialsRoleForm } from "./via-role/aws-role-form"; +import { AWSRoleCredentialsForm } from "./select-credentials-type/aws/credentials-type"; export const UpdateViaRoleForm = ({ searchParams, @@ -150,7 +150,7 @@ export const UpdateViaRoleForm = ({ {/* Conditional AWS Form */} {providerType === "aws" && ( - } setValue={ form.setValue as unknown as UseFormSetValue diff --git a/ui/components/providers/workflow/forms/update-via-service-account-key-form.tsx b/ui/components/providers/workflow/forms/update-via-service-account-key-form.tsx new file mode 100644 index 0000000000..17991cb90c --- /dev/null +++ b/ui/components/providers/workflow/forms/update-via-service-account-key-form.tsx @@ -0,0 +1,169 @@ +"use client"; + +import { zodResolver } from "@hookform/resolvers/zod"; +import { Divider } from "@nextui-org/react"; +import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"; +import { useRouter, useSearchParams } from "next/navigation"; +import { Control, useForm } from "react-hook-form"; +import * as z from "zod"; + +import { updateCredentialsProvider } from "@/actions/providers/providers"; +import { ProviderTitleDocs } from "@/components/providers/workflow"; +import { useToast } from "@/components/ui"; +import { CustomButton } from "@/components/ui/custom"; +import { Form } from "@/components/ui/form"; +import { + addCredentialsServiceAccountFormSchema, + ApiError, + GCPServiceAccountKey, + ProviderType, +} from "@/types"; + +import { GCPServiceAccountKeyForm } from "./select-credentials-type/gcp/credentials-type"; + +export const UpdateViaServiceAccountForm = ({ + searchParams, +}: { + searchParams: { type: string; id: string; secretId?: string }; +}) => { + const router = useRouter(); + const { toast } = useToast(); + const searchParamsObj = useSearchParams(); + + // Handler for back button + const handleBackStep = () => { + const currentParams = new URLSearchParams(window.location.search); + currentParams.delete("via"); + router.push(`?${currentParams.toString()}`); + }; + + const providerType = searchParams.type as ProviderType; + const providerId = searchParams.id; + const providerSecretId = searchParams.secretId || ""; + + const formSchema = addCredentialsServiceAccountFormSchema(providerType); + type FormSchemaType = z.infer; + + const form = useForm({ + resolver: zodResolver(formSchema), + defaultValues: { + providerId, + providerType, + ...(providerType === "gcp" + ? { + service_account_key: "", + secretName: "", + } + : {}), + }, + }); + + const isLoading = form.formState.isSubmitting; + + const onSubmitClient = async (values: FormSchemaType) => { + if (!providerSecretId) { + toast({ + variant: "destructive", + title: "Missing Secret ID", + description: "Cannot update credentials without a valid secret ID.", + }); + return; + } + + const formData = new FormData(); + + Object.entries(values).forEach(([key, value]) => { + if (value !== undefined && value !== "") { + formData.append(key, String(value)); + } + }); + + try { + const data = await updateCredentialsProvider(providerSecretId, formData); + if (data?.errors && data.errors.length > 0) { + data.errors.forEach((error: ApiError) => { + const errorMessage = error.detail; + + switch (error.source.pointer) { + case "/data/attributes/secret/service_account_key": + form.setError("service_account_key" as keyof FormSchemaType, { + type: "server", + message: errorMessage, + }); + break; + default: + toast({ + variant: "destructive", + title: "Oops! Something went wrong", + description: errorMessage, + }); + } + }); + } else { + router.push( + `/providers/test-connection?type=${providerType}&id=${providerId}&updated=true`, + ); + } + } catch (error) { + // eslint-disable-next-line no-console + console.error("Error during submission:", error); + toast({ + variant: "destructive", + title: "Submission failed", + description: "An error occurred while processing your request.", + }); + } + }; + + return ( +
+ + + + + + + + + {providerType === "gcp" && ( + } + /> + )} + +
+ {searchParamsObj.get("via") === "service-account" && ( + } + isDisabled={isLoading} + > + Back + + )} + } + > + {isLoading ? <>Loading : Next} + +
+ + + ); +}; diff --git a/ui/components/providers/workflow/forms/via-credentials-form.tsx b/ui/components/providers/workflow/forms/via-credentials-form.tsx index 5ae75e8658..d73a875872 100644 --- a/ui/components/providers/workflow/forms/via-credentials-form.tsx +++ b/ui/components/providers/workflow/forms/via-credentials-form.tsx @@ -11,21 +11,21 @@ import { addCredentialsProvider } from "@/actions/providers/providers"; import { useToast } from "@/components/ui"; import { CustomButton } from "@/components/ui/custom"; import { Form } from "@/components/ui/form"; -import { ProviderType } from "@/types"; import { addCredentialsFormSchema, ApiError, AWSCredentials, AzureCredentials, - GCPCredentials, + GCPDefaultCredentials, KubernetesCredentials, M365Credentials, + ProviderType, } from "@/types"; import { ProviderTitleDocs } from "../provider-title-docs"; -import { AWScredentialsForm } from "./via-credentials/aws-credentials-form"; +import { AWSStaticCredentialsForm } from "./select-credentials-type/aws/credentials-type"; +import { GCPDefaultCredentialsForm } from "./select-credentials-type/gcp/credentials-type"; import { AzureCredentialsForm } from "./via-credentials/azure-credentials-form"; -import { GCPcredentialsForm } from "./via-credentials/gcp-credentials-form"; import { KubernetesCredentialsForm } from "./via-credentials/k8s-credentials-form"; import { M365CredentialsForm } from "./via-credentials/m365-credentials-form"; @@ -37,7 +37,7 @@ type CredentialsFormSchema = z.infer< type FormType = CredentialsFormSchema & AWSCredentials & AzureCredentials & - GCPCredentials & + GCPDefaultCredentials & KubernetesCredentials & M365Credentials; @@ -58,7 +58,7 @@ export const ViaCredentialsForm = ({ router.push(`?${currentParams.toString()}`); }; - const providerType = searchParams.type; + const providerType = searchParams.type as ProviderType; const providerId = searchParams.id; const formSchema = addCredentialsFormSchema(providerType); @@ -200,12 +200,12 @@ export const ViaCredentialsForm = ({ - + {providerType === "aws" && ( - } /> )} @@ -220,8 +220,8 @@ export const ViaCredentialsForm = ({ /> )} {providerType === "gcp" && ( - } + } /> )} {providerType === "kubernetes" && ( diff --git a/ui/components/providers/workflow/forms/via-credentials/index.ts b/ui/components/providers/workflow/forms/via-credentials/index.ts index 88bf5587f0..9058fc7362 100644 --- a/ui/components/providers/workflow/forms/via-credentials/index.ts +++ b/ui/components/providers/workflow/forms/via-credentials/index.ts @@ -1,5 +1,3 @@ -export * from "./aws-credentials-form"; export * from "./azure-credentials-form"; -export * from "./gcp-credentials-form"; export * from "./k8s-credentials-form"; export * from "./m365-credentials-form"; diff --git a/ui/components/providers/workflow/forms/via-role-form.tsx b/ui/components/providers/workflow/forms/via-role-form.tsx index 3bed8d3af7..84c6bfc3e7 100644 --- a/ui/components/providers/workflow/forms/via-role-form.tsx +++ b/ui/components/providers/workflow/forms/via-role-form.tsx @@ -17,7 +17,7 @@ import { AWSCredentialsRole, } from "@/types"; -import { AWSCredentialsRoleForm } from "./via-role/aws-role-form"; +import { AWSRoleCredentialsForm } from "./select-credentials-type/aws/credentials-type"; export const ViaRoleForm = ({ searchParams, @@ -149,7 +149,7 @@ export const ViaRoleForm = ({ {providerType === "aws" && ( - } setValue={ form.setValue as unknown as UseFormSetValue diff --git a/ui/components/providers/workflow/forms/via-role/index.ts b/ui/components/providers/workflow/forms/via-role/index.ts deleted file mode 100644 index 763c90c0c0..0000000000 --- a/ui/components/providers/workflow/forms/via-role/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./aws-role-form"; diff --git a/ui/types/components.ts b/ui/types/components.ts index 94c5a06646..f5928386d0 100644 --- a/ui/types/components.ts +++ b/ui/types/components.ts @@ -229,7 +229,7 @@ export type M365Credentials = { providerId: string; }; -export type GCPCredentials = { +export type GCPDefaultCredentials = { client_id: string; client_secret: string; refresh_token: string; @@ -237,6 +237,12 @@ export type GCPCredentials = { providerId: string; }; +export type GCPServiceAccountKey = { + service_account_key: string; + secretName: string; + providerId: string; +}; + export type KubernetesCredentials = { kubeconfig_content: string; secretName: string; @@ -246,7 +252,8 @@ export type KubernetesCredentials = { export type CredentialsFormSchema = | AWSCredentials | AzureCredentials - | GCPCredentials + | GCPDefaultCredentials + | GCPServiceAccountKey | KubernetesCredentials | M365Credentials; diff --git a/ui/types/formSchemas.ts b/ui/types/formSchemas.ts index 217cca4e11..ef627bcea3 100644 --- a/ui/types/formSchemas.ts +++ b/ui/types/formSchemas.ts @@ -176,6 +176,35 @@ export const addCredentialsRoleFormSchema = (providerType: string) => providerType: z.string(), }); +export const addCredentialsServiceAccountFormSchema = (providerType: string) => + providerType === "gcp" + ? z.object({ + providerId: z.string(), + providerType: z.string(), + service_account_key: z.string().refine( + (val) => { + try { + const parsed = JSON.parse(val); + return ( + typeof parsed === "object" && + parsed !== null && + !Array.isArray(parsed) + ); + } catch { + return false; + } + }, + { + message: "Invalid JSON format. Please provide a valid JSON object.", + }, + ), + secretName: z.string().optional(), + }) + : z.object({ + providerId: z.string(), + providerType: z.string(), + }); + export const testConnectionFormSchema = z.object({ providerId: z.string(), runOnce: z.boolean().default(false), From 0580dca6cfdfd81c7629be76e39bd99f9312013e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Jes=C3=BAs=20Pe=C3=B1a=20Rodr=C3=ADguez?= Date: Mon, 2 Jun 2025 11:06:49 +0200 Subject: [PATCH 053/111] fix: set user_id for tenant operations (#7890) Co-authored-by: Pepe Fagoaga --- api/CHANGELOG.md | 1 + api/src/backend/api/base_views.py | 14 ++------------ 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index 937c090f85..9ad5df26ee 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -21,6 +21,7 @@ All notable changes to the **Prowler API** are documented in this file. - Fixed task lookup to use task_kwargs instead of task_args for scan report resolution. [(#7830)](https://github.com/prowler-cloud/prowler/pull/7830) - Fixed Kubernetes UID validation to allow valid context names [(#7871)](https://github.com/prowler-cloud/prowler/pull/7871) - Fixed a race condition when creating background tasks [(#7876)](https://github.com/prowler-cloud/prowler/pull/7876). +- Fixed an error when modifying or retrieving tenants due to missing user UUID in transaction context [(#7890)](https://github.com/prowler-cloud/prowler/pull/7890). --- diff --git a/api/src/backend/api/base_views.py b/api/src/backend/api/base_views.py index 3e965482df..605afe332d 100644 --- a/api/src/backend/api/base_views.py +++ b/api/src/backend/api/base_views.py @@ -109,16 +109,6 @@ class BaseTenantViewset(BaseViewSet): pass # Tenant might not exist, handle gracefully def initial(self, request, *args, **kwargs): - if ( - request.resolver_match.url_name != "tenant-detail" - and request.method != "DELETE" - ): - user_id = str(request.user.id) - - with rls_transaction(value=user_id, parameter=POSTGRES_USER_VAR): - return super().initial(request, *args, **kwargs) - - # TODO: DRY this when we have time if request.auth is None: raise NotAuthenticated @@ -126,8 +116,8 @@ class BaseTenantViewset(BaseViewSet): if tenant_id is None: raise NotAuthenticated("Tenant ID is not present in token") - with rls_transaction(tenant_id): - self.request.tenant_id = tenant_id + user_id = str(request.user.id) + with rls_transaction(value=user_id, parameter=POSTGRES_USER_VAR): return super().initial(request, *args, **kwargs) From aa11ed70bd0ad4a720208ee9b1610aa446f587ed Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Mon, 2 Jun 2025 11:47:11 +0200 Subject: [PATCH 054/111] chore(docs): replace old permission images (#7900) --- docs/img/AAD-permissions.png | Bin 384891 -> 392608 bytes docs/tutorials/azure/getting-started-azure.md | 2 +- .../azure/img/directory-permission.png | Bin 84098 -> 0 bytes .../tutorials/azure/img/domain-permission.png | Bin 0 -> 163688 bytes .../microsoft365/getting-started-m365.md | 7 +++---- .../img/grant-admin-consent-delegated.png | Bin 470214 -> 463701 bytes .../microsoft365/img/grant-admin-consent.png | Bin 448683 -> 449634 bytes 7 files changed, 4 insertions(+), 5 deletions(-) delete mode 100644 docs/tutorials/azure/img/directory-permission.png create mode 100644 docs/tutorials/azure/img/domain-permission.png diff --git a/docs/img/AAD-permissions.png b/docs/img/AAD-permissions.png index f530293bfe1580fe264bf365fcfc2a282bb8117b..f2f37e354d7e209215e21dc262413fd90a37c6d3 100644 GIT binary patch literal 392608 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%0A&k}$y_=G8C5)k(wr zdu_S;x}$H^^>e>KeDGUl4ZWAv+N+K~iW7lE@TdHkqcAUk;Zr!`V8(rY+z$-K_Lm<3ZrUS? zx42;u9=;55^hZ|MOv+rr4ulAG07CgC$4`@&D-_6&v+P(fb6xAnj1||%Mya%bOa1px zd@;j|Mf=!+)Tu9eVtO@B0jybg_w?Gum7m)p2!`?E?m+j|T~DV18PWbZXz4%$=eO+5 z#_F~&R(&_yyw_t;=mv1!k9Ited{_@G4I(d&R)FqmM7vdUonrDP(UHh$t@WFsDXIPZ|`Xnb_mcWfIXSGb?k8uG}rbo zHVNH{Sw9~T{MkfZb+?=o6a%Lc<#EfL`vGx^M)*om|F2&IAm^my-p{V_UU1~d*l2*4 z5A#bDEla#ShTysSH#Pm@wj;cr2^?KdHdtC-O0DjO)jwM=621K@xyx~y(b#u3oCYWH zRTItq4XKmRgzJ&rq%tzfgXM%BQm=pfwfUEEl?&IAPm$2dN{HL6bD;H3gU2S%IwiAA zp-yqimU#>^-gNWBVLu}iahmUpkES0I2dqsqZR zK&_2jqsfhzQ)iY#4)UUTymuo2uBL7ub7@JZz~?$l%{vSli;4|3h|jzs+ogcNt61Kc zT`5C7<6;4Zh3xBP(1eS)jS+C%BYV+;Fcp>c!bA^@4YsNyI`F%21N5)damV6Sjh@E@ zjYRKwkV-{{mjnDZubENNgTk&9c>^}9$y=3r<}C(d_7@5iFdOz8cVgpXk25YeII;*k zJ&Jh3JBcmG9{RpTxqAZQf?%zm-MDwGuFCKsRaIH;mTM<8-aLN*%jLE>ajd6{+ivkZ z&L#W?YqF#?X9h%|5UQ?&6R~VBul}P7j#wv6fHY`K`Cwu7sR{3Orp>8!yc@O`cXMxF z**+_ZbJW4zj*P$DmK%Mi5_%z(p?eLpKfd|%)N|SE?}-EF%?E>Di)IzmusPW>7x7@m_`#By7Q=9jk6z#8jrqz8!$jjpo(RO9GOfY$>c&fw? z?=BK3G9hC#0%_thdi04sbawIG(2(88)!k)<)-7MCx{~R5l|82lRy-OhXr}%Btm9Xr z&z1@*L@E34YUqyb#NKpsuoctpp2tJPX2r6{kPl#zOjL=o%19wIQmy)hZ%o+T>b0I# z59K4j!|B)Vfs4r3n~kvxu7TP8bn5ncV5{l#kFqx1ieIZh?#%`+Px1@<@~8}0`y73szR>JJW2j&qnU zj>Q;PbX!e6EHFcDC-nUibm>jdPmTtxme8-2kfFTE)VlT8Xt<~|%UEy|%!8Yprfx52 z(~+Rm(v`~$%@^EE_JEJ_N8oQohz!d=_71mi|3I7hERZZrsC%P{rLD$!;e74L7xg8^ z!VJ5?+{fQLCysYLS0i8?8PhMLkTghRV};~>9J(q60#-BynJ8S_uL8lc`&-ICuYR(C zZzgt+lP7*iRH$GXp_?xq`3cS-8=3#;J;L0Db(xf?@X;x9mubK-(aRJ#tJ+&9{( zPD7XXaz{?&E|YQQq8xj{ZB+Xm`NgB$mag)%=b?A)K9&?prn5XwEV6nrEAA3z ztG4SoDU#bG>_pN%3Ijj8|qer}OASYF7J(ubQP@=wtU{>mzTm8jzv5K@4`g-MSZ{par2gX+g$^P5v6O(|C%JAL=we z*a{)~881!w07JISSo`ee1=hUjYq5!^_^EF(KP!7>#eGpnzrv0exQ8nOaem{O&&|Au zgdgs@fqQuQq3OoM;?Wg$&osBK8D5sqwP96BJjIQRZMi;(LyK54e3(C#TqF5weGY2uWF5wB^`^FU6Gj#ZMhf=?c}&3zTrxEh3$g!s=MoCX>gVM z>?(yDo4s4+CyHT^CW|T%n1m+6%jgm;n>I*?>3ZdP&XCib)7HuASWg#XWwk7tRK%}| zt&EndKC;XgYdCI6tYTBgi#fCSK_OpDx%tu<{6=wlQO}LAkI_{X)<%Bs?iZ)-jTtbbbZ zjHvrbK4ApQ1h254mZ%9e;X?KJ0W}aB9Trz~CL4shFO@wIQWG6L`k?;R;6qWh9xA&@ zeDcjh$!O9h8Fh>Z9ZILzh*dqL+7e%7Plpyh?XfLrvm^!$AnQ!bj$c1UZsX8u%|X-; zL>ddeNY~Wg20xyD;xOM)S%-v zp0w0bS>tT=_z#OTxas&p{VJ+OY-=kXwn~JrxZTtLA@`MX|7kBCIB&9bm3yD*fSTF6 zfV*ZAN>g_{{hH!4ZHsMqd4G`u>Py505m=Dhm&D@cW?EJCRPhxg@@Z5ww`l^iQ>V=c zG10KZdH9$9F#=R`~`lXR2e#H0KP46H46t~TB*b$sMN=<+ni-^zI%nGD#m?&U zx0g}r;f20nl0tsx=rgnALs!KYvaLNpHW@DspP|=sFZ;#_vnSGAg(Jhb^lG7L@3c|H zu~UhTXX<2$w$wq>=?4l29N$y|mv);Ph`qG0250W+OvqG@XLp}*a8;Hx%wwR*>`N0v z$m`G23m#kAie4a%YDT*UNX*WtQm+l3QrC&RT43U+@%sEipx+~Q>X_X#LEkWVJX+_{ zNWPC_NeY{M$~hr;5a=LdP1s=J#&pZ%2Fe&J@-sHC>td9{M+7g;Axl<3{GevnX!;LA zlgO^;b=>pSzv>XHMN6SxXXJHN!tsH$Q?$d(G%e@IomQ7-6N3UpzR@ytF|W8!&b|b*=y#|%ziYy|YtDR{0Ch<M5rbjUU~2 zAqvGyJ4XIjAa+(IMubE$CXJ(~NqDKOes{$m@1+G)M$M!vpVU|nZSMtwQ>M%m>5%J|EO z88)!*$On-eqfLQV9`^@z>{iHjPa)0{*}<#j7P%f_K(u_$&#NSh<3XY0lp-ZX2M4^Q~7{k`6z> zRR4Ck1|)HoxUXLop^Xh>9bU``xy;8v#S;&KR*b@RzCm%To=9tJN#mM)=(562TZVIj zb?|o~?ydXk7Egq2zI|8I{QSgOi=(OSiFZY9*iN?EuT7{}t-g_;eXzB*WNqG$Ck!ER z^O6!*MVgrVvWlZ8u`P8SwPXTZs<=B`I}3hh%{Ys665g~ zzhGV)8>9h7SV!Ig=w&xQoFr@*lGTNn!7w1*kGXjDC&=@djm8wJwzqsa6EspKe8Q5vSM%KUueUOn4)iJg zbY1vN3l*CPQtcX=6!-X*Fi>Dbc<7a`8g5dT_p<^@MSWHLW_so5_%@Fubj{ww_cP5lpryv%Y>Wgy=Ec<7*jLeXxEY2&-?OoN`PhvZhb- z;RqK64Iqv&9np@|DjKN@cY;&gV(jat9NlH&uBr4=3N>C5Pi8h_P_aA{pqvl`p}jNz znXmZVew_h!!+8WIF+hOfmQoQ3)8pgU6W*bs(H{00D(@G@&|5CD0{>(I6j4@L7?nia zzwCJajpY{!6vUP-^z8usaYMr4zN}{Ey~s;0I0PfGhDGBOAk>T7h~88&X!jw09xkeP zA&@&|Z_MN{INIR@fq4k|RA9;2DS*kJD{j&I$o^o2ikn%ZZx9cd<@*2*pS(^t3CKSN z!bYDako1_(w>_?!Ca&{8UA-PJ{5+j?ljwnhUM3+b_~AP2pME}wTKTiMPoJgn3_cG*UeUAe}z7U%TyN~ zRzaf{GTh#sAR%j7#~deSSykaM)IlAbKMh`EyRizj&lB3xx;f}P{mKM!tDnMFjry&Y z+LOy|k2A7>Ud}Oh|MfvZ^JSHJDlEaAAVI{Ca!nyU@xNqN)PlFMng~;jyl|-oUCtL z-cl0#bGc)WR}cGSOe>u%Mt3gLxnaSO)rC%bt+kE%miO3t?DX_s`re2K#~!+dpkx#m zC>-xDz*!NmEdRbkZSg?fve?!8zTpo+8sK-c4|P`aJ-eddCjr2Os-M3kbxW60x;C-q;t|^?n!s#mR3OIm>8*qDkl{@o?p2wMLYLxX0p#e? zb?&X5OY~cdPd-z51X{Z@OE~b;$`AJREa}AI0<4eke~Y#$5*_rLdG8k+sE0uF4QxrzgLUsZLj$S;j9$+1>4k62``9&_u?fu1pb=Khk zqhIgPz~bC?jjsIg_GSMU(bl5(K%>OVUZj6n1gSk}W3v70Zph2+#&Gt~=YL!hfrk~A zU_EH&FCqdutds8u{>~^K$b6ph)-4N?*3^7eS^cC}1btkM!@53wrf%~_us>}BvFT!e z8jR?}%`%8a1XUnv0>!QRIDUKrk#Bczfg!iTQ>39oq5)69d=i?LoFTEJ(WOlAf7abC zy9EA-dmJaxLkj`JM0vTSeH^pq7tiPIZ5}J(ipMvznPdUJeEa;n;OJXwn^PM18+{MI zo3C6(P3Q`1RFD@oeQ%Hlr{YugqAK+H-X$UoG*?pA1Ln0e-zb|yI`fMgO~Y^Vn8P{D z-e2`-_r{n!2x;U-eYa>+Fn#->s>%7Kp+~I;<@n z`O~SEgr60k>#gLj;bVCbGrZ`%yUgqHq?oO1kzDi*-=&xFrn}%JDE&d`4y+bK;nPNc zD;W~NtUB42DV4DO>8`=KjgeyGd8$vJv>r-7eK?&MDXRTC4|%U83jxR#Z!4tK$0kR?F{gQrKG3|uMC)^f*x@6d1=@roO>K37hv8l95^sNCKLNGPxf2j#e4G8v%5+yT^2kPvhg(Bz z8pExXXneGJ!S9SQUr93;i|`_w>%l04I3J9F+iMO{p^ClvSTjs|G4AbiDs#mEPoVO+ z`Z>M*ZSHA|{;r3{84JvOd(?GVW$(rZdy-Gjkia0uJPR)mo0(i;FA5Wd^d*mcF0bSM zip3BGH7U(m#P&&RcRGk{-)ik`E_@=Rx1mt{vX8)~!*rHKON*GssvUX6vNcBZZd9Tn zin95skCT*C9<(C?@LTD=>dY3In)e_dn8_u%X8?i1~N@^4qxwV8c4K%`>Lr9K0@5Dc6 z8N1j8(!VS>RmIb~gapr|BVehKb^Qd^wky9|k;RdxtsNZf4%^qXIm`+;w2}V1N?mQs zskYe^R!m#FsHR*}%4zD=_~yOX+0fA0m2f#+?u1kG``di-ClsXHXx&aInJ8|r(!sLw z2PgHp;fv@^sf@jT2ZKKflp>HaB8@FK>-`6B1R1NC9@&AaZUl5o!C~r=T-8kJ<7%+I ze4P=P*lJz|I+p`rjcbQq?ieQwb<|WHV2Q_6kDhY3&K3f%{FLDjl z&WjoLHhntQQtnVK1Rw#3-WAZwaekOSJF<;Yr*Gj&cu{Zl17W70gNNR29h(NMQzwvn zuB~>&7IOq*;g5Dk*c}v5i18`fs(XL~8rM#5MaNJka%+yRZz6c20?;WwHuXcn3Q8y9 z)R)hYrd_lxZC&6_*ef_DRMxJ3&JXlUBM&HGxF;U*d>~V8pwO1FJ`p!#g0EUnpN8ri z`C2C#x{q2^O%s-g)HcHD3LhyLk=C9_5}8Vq!Y!FAJ<=p#3$TeAfOUKA10zIJ0QJ?Q zP#`~VqOn}`$b+w0S+YHVT>7PsRDwfgP|9XesQ)-v^SgWym)A_UkTq0b39$c5?&XO}*? z3UFpQ@-Q*^J;(idLZ<@EPZnd6tVdYIj%a^_S%S*G0k%)zbzmsXypoEdLCx^9o@7Zy zPcMlvuWEo)kKcNixDPb4ASZ)D@`@`#28uMg>D!%pkM(JZbFpe-q60W^wwy~T`#KBi z`oVHh5Ho)Zl>W}FrPbpiKFtdK8}9~u?5=*z5BQ?rBQ;0mQY_ZoxC~caBlOZf8F~y9 zd(4hs1jAjIO_m1n$=E4_8^HEGR-gHHD#*xf;c}DHLt68}u2*B9wF-6s?4fMT;RZ&H z!$%p?T&0d!%dEEX&TFMa`SGp9mBy9qM7z%04)SA#fTB%vOBy6$GMg;N?U8B3X%|=Q zu_AXji62ARBs#)&(2+-8h6rzT#^lbQ#ayCvk@U}DazTmXg4J+^wdOmQ-csUk!8m)N z2Ymqchw11(ZFrWH39zKJOS zMzYDfLUF3hZ@kJxdJ_APRhB#ce$b^51PDA;vmGgVe`S*$15&E5XV;#FwWJD-)e%SEhXuE`_QEgyNcURwKy zdp-KF3yMu##&T~9$uYK!7{7|mZRbwToKtsMpiA|`I!tP^JO*32q}|VmT`+?qM>n>; z;m3>*bDLYj+nu+1#sdTkaAC)wj|NqStXtUp6`=r+w)~ z{3dFi)8WlY-f?Cpl6%mh_8cLGzZ(E=-(zutJvIBCgE}{G#5AoErhB~IHmO_i^0@k? zDiB3bjF0-eiv3-Tc%CN82siA#p2amn?Ah+^pw)KADjqk#X_AOF@`+!w2(XtMDcJCa z)*tVs8>kh?h$OSwj&8XV{M^y+pH|OhtD*(<%5In@E^=kf;3m3@_XNE+^M0JozdPYL z;i4fRCb*NJSG-M_I}wLWeAXPqb2+orO<7^U6i)7+Df_k*Bh^{e4uj&6tZVh?cmPM0 zG&nDG)b-yUL9#!nFp@fw4%*~#v!dm^G>MCqKN4)*)C_9uEm^ zPn6@Zza%yrWxqW^rx5ngjrAYm!8w!s?>WQ7;SD~53dv)GqSYihisP>>i|R%HQE zrLrf#n{zn#@tueKzUfCb_K5`s)x!|-(fP*gY&}#})2gWj(|NeC{Pq{tq+#!i-EGTL zkVfFk)2wr~=CztKm58>kVu}Zv_p^c&)j%s z*mk)J*M~@v$hq!h+3In_LGXg!pSQSTY}*Z;m> zcAYcB!3m()18M#ZCgXL+@2^V4fSR)-HJkT2eV5I&up){|BjxD6FuVM@HOc^GG0|0p zf4oa{^{674kM&PLNlLM9A@59lAFD*)D>eNw-&x%F5vV-fGweNP>o?mec#=%;(97=* z6B~5I&ED`uJ2dJ!)EtvZ1Ig36$1*5M_%KVov49iokQgyS!!r`!lOA=Q$JOVgVjWNw zV<4o3$qh_N+8oOF2=02Zaws^&pPJB=;U7qL5`onDENCGb1oljbqvZIlzSWs#-4``c za@PK)p-6c0dCG{(6uIlY2oho#F`=q4{D(>vyfq+%_5SR)*K>7^ebI*qMt_w%$&17k zbjj6~>6jD@yZ^znzTNWVYI8NOg`tt_WpBS=H|o;^;No&7ug<$q) zfG7XV(`tP?-TFYNLH*XmliSWqJ)E6go3Wi=KVv|awnhboh)!GE@{Q$xQ8`{x(elPe z<+;`n37v}9jNQT6*heVPh-yeWxJKDwm3rE8$xqyfZ_(!6!#UmRK$5;~YUC~E#urtn z0mj}GQXa$~x*mSZw)mLfG4jzYOj-qEKXqfS^*yS;>Lkp_g(%C_b`%>abE{j^lB6)x zr~wDbNTb*hb8}{YN3rXiNI%&MbmpV8Cls`XO3PJ=jSqY1;ZeUne58KmMkyg7z6`(s zO^qsOfaZ0!<#qyEs3NQ!%wN5|e;*b;{M^X3|8ALIt2>jezWgEBZ(Us<9f49PG(<+L zQ@hZP?|uk_P#GA&{W80?w=I_m-x-S(sd4lL2_gouIT-Yk70F+L)>sMqTi&Tl9roD{ z9_7--70Z_Bo;#9$#%_c<+d?xz>kW2V>D>#5i)cq>BH2;8+XlcJXjMRV)q|p%BP4_5 zuH$E$Asf?|=kB6|Dj&8fI_@PkPE7bXOw?R6{Za(%J0dAQ!(c{s+oLGz!OQa4iq~&o z_5S4o%!jGvsgWXL;5e`P8!MeR1o?gg z!bxs?>()~-SPWYoT6o9feYS}*kCe-b%M`QN{qlUJ6&m&Y>djA0_x!g51qSHbmW%l& zHp3+46y#Wn&O&cQ^ed(|qleDRMG^RN=es^DsZ55aWb1w0o+IX8q1{ZRvE3332<KgXwEy<`MZ{G(<9(=+??8qq8Vjr-kU-3sdgWNPL%u-&oA5gE*LYrwn zP5Li4UzOk7tL_pSd*Xh`?0C+9d_r8lYJpFCtZA@_Nxh0jgvov2%kcpDvoqw>AC3+& z_0V$xp{GetTyMWOWu@~0T?IlDz=I!0wZL0+IH9s#4V_L~A|)7C*%;+bftc zJ=oDHQR;&=Fzmxh?0a6cmWC|!4HeVXFUkcNcxG5fG4XvBtf30w-}N)idhPde<}j0L z>sz<2;P#&sAECy7KX0zSS-KKp4w5LG5+C&2Pt?4NnLQQuNT**?_bZ!zy@;ak_1;2b6je0kv)VZ-cm=}p+r%*y8`Frpg{Y(>j2L+& zTPbD60LvPkSP)tIko;@-vkND+on7;s_5(RfwB@#Eh{o=Gn zXC^T4S{R0Fr^^qQMj4t;&CoIyvJBq;OJKI(u}qJ6_;ri>#)S=4zXJ_KnQqWa8&%sC zIQ$gX=dzks@UuJhx`^|Lp_Dy$q3SWfSTl{0Im&zsh9*N-wDbz1J@k((T&IA?u=cLK zWJ<6eQ49dDz|Q&fmMLq(&}Ylu6kY|hIp;Mw%yN5`3e*7w2wCL6KMKFbAgFi)-x@;bJ<-&%dle8Ho55X&jufC8Srv zA`58~>|}5y-Is~gb6gl~UOZ2$9MSiCWniP#K%oydx2d@<(3BtC+ zcCyQkoMV+AjDoC62VA2cnH$6Wi5VZ?2 z^XMYaB0W@{(e5VZ2ym-Gx}E8F9lk zz35*}+#|K6-lei!$MkZ-G%7CczjM>b?92w*25G-qO*E8HaO}+jdN468V|3P<+sLY2 z)vGg1Zi$>KaSWkdpe^ev zkf~|Veb1$|+RC>6EPw8vE8p`%N$dUQRyH60U<oVeh>Sd$G(_!Y2mg9&dG6#fF|+ zBQy~*x{epZTC+aN*DkaVIfqS*-LE`Ya)J-5jz?qIPjqTZVJCJVRfO-F+&{9l2>vwM z)k-E)0euQ#%btmvm*+mjPE`|aNei{p=4ID}r9bsiWP8QY16MH3Xf^Yssx5J&-Vw_E zwGgtLUD9rn9W7iM+?Z82`eb5Wq*cGh=^A~-BdNQ676ld=??<$UTa{OZj@en~!g;u+!1H}R6#X4+R1xFd2yf8h#9el}6uN?;19>gTj|0tb0y zTMOIoJRll@2*kKgo66Oxt}cyA*Qc|*1qquWLU!d2t?`SC;-`$+*|MJ=ALAYI5n6!< zCwQdv;k?!_1q4dJI&nksz>Su5uX_CWVH{!DM1y#jtlF?9pVpa(MGBeY_gS5BD>?1& zcv3E7=tF73- zW;-RWlQ`s-;XR#!y{7M&i`~GN72T3=1-g4kJt8OB-Np&{%Kd-GXWr2Bpz6z;^7(k5 zVVq`RYgn~;5N_EM8-4g2O5cBf5+2+VUHNZ$t9J`nPJT8Lng`OJHSKSvJ&18^vlE*r>r!LxJuy#0Di_Z9^FAogDs{`)z~7&)$bB$beHU~u^xh$&%&h0@U!D{iCm1;Mo%i({RAnLx zAS|$|7O$Jg86grwHAnYWP>I9Lm9gbN|3PbzUL6;60rfWoCglm@isd{NY{M@7Lmil$ zwqN}g?U^9piuvt&y&&a8TG5{06iC*dk|{6hxG^!KbdsMLui&Th8EOLXYN!4{B}2eg zwfy+5{!an)rwRgPr&fe8$?wk&2-F5w7Pz0W^z|S7?VrDC9sux&wg$IVWfmZ@V&jc6 z_IlbQhv|B|Jqtde`8pM6L>+hxd3fQ=e}3inv$^n=3tS>UQ_J5~t`^+P7x6f?dS%~;=e&WCRxHjGs;_;(KFya3$x_#!J%whyQdVN&`|tuKK;L5d_dB5 zuxcJ2X8zRpzx$#zN?VG$sg8wVqZ`(k4S}6HJ+vA`mnl~$dw!MHPA@I)h5UHd|{?G4B zKqw{HvYt1aP@@}B$X_^0H zl z=0r(H(WSZB6R$0cYirNxKPb=tk1wQjbaHSzMz1D;d73dNvV|e9Z}g6}3&T|8UVd9m z_<`JKcj{OFWN%S9zL{0O)MxTTrgBpxb+5HaKO7{s>s9%_ep0&*>7Qu;afWR(mMIk3 z?4k01BB#ghAngAKWp5b}WxKTv8z3bih;)M}9ZH9Qv`CIfOLvKMNh1!Sbc=w%P|_U= z4BgVrNXO6}@5z1Z-p})X@3(LFKh$Bou63?+<*|;{q4rSubMv>hM$Z4@$;hvs%;#<| z3uwPa%Mvicxh*+*e<66j*}1u)8$AoxJc%XYvC6(ZMwa1XxzO<%VBg!ysVdq5I;rD| zQ;u2W7r}LwHyyuO`(KnEeDlF~-GxlLh*w4`!YM>w%~I!pA?grU;@{+F|KouFO=R|e z{ge%SR{R@EGu0+!-JwnMc)88_fXVXUhpXxb`A0^@=Dp#3stAW3VO|66&w!BnK2uE5 zaqf#c9g(R@Wl&wEOP2}{dpQPz0He9@s48U^j~_x{YR#oLt!F_8A-dl4r0o>R9^<$s z`cWv&;WSpy>jOZ2>EiGzB=cJRkl9)6cK>w8PUue__3tN-kOks2!8a-$dgi^W;CeK7 z;4}ckRhJhb_z^u80H$^BDR_D^$kU^xlv|EW-&)QTIrI_S2OCvmKy*HO6MC=BWtNg( zI`9v4>eol&StG2$R+jZKI#7Y~I|G-T4^BVmzBlK(09aYE;MPY6><>9zR5?7JrA+Rq zhU0(xdH^WWbiB@YZQG+Qk!B?+9>yPg++S@1P7)ED@GnXaKRI|!z)?{y~+?G+$8TM!g zGBF-ViU|Z`${_31GwG-)p1L6iP$V;D)J2rk@G^)#^bxoPJrS3w-%T;TUy`UG6A&Qe zprhxs*cI>8dvf_ear*FKflkdm-$!9`bS7ZiAvvyM#5O?5NA$%bK7x@SJXSl3rKd|y zM!rx3yZL5}r0t#W-CDdKShaY5c0`i_p1U{WDTl6vB)H^!*Yx!C&R>E>mf~Pt-a6$r zK-BVi9C3tEi57^b*l)qfT$KQ8fQyUEXm@1jdm^^k?=A0TVp!sBk^xP+A-SN_-P6O3 zpvy?c)lpuh0&RYJ*^l(iMROFDz}Q?s@)Ivlk#{L4z2Aa5CSB@@9@yos#xW%GX2sUQ;i0sRF~i{<&Cbm>A-|({=`0)L<^8FEBT6D?Aamah&?lCT^ruVHuttOB zka;tS)8@xCGqUFG9-t7G^x|-RWhICF{Vd?G_YV)pWqY94G|aaS0^yFMI4|Bzxo9WS zW`Hlv6Pccx(s3tgovv}ll@25CZv~GcN9DdXD|S}r%>H_@ zRG;8u4A5ei%_WU3e_csoD2O| zFjtr#j6!nr#*MFb-)=lh5o%x2Sy0xmut&hx`Vt+*Uy8v21Ec=Y*EBb`egm+neA=TX zVh)(-V6mHMFBP*!0MBa(sQU$E^YM9(Kk7>2mq26Ag6)I-fAhoLiB7Gc^hd#M(jy*5 z&c6;%t)NM3i|00po8xOe-dU#_F0jS{9I;qn#{#^Uj3>@;m@p^isD(&^W=>=cKi)KA zOZ!}LO+(SJLd0T^7)+Qmnhj)d;+*Z`f;RR$uk+K1Zr7tN8c?i;c7y6oXr~ll@qeS_ zaFC~g*8nz;COQD(@OPlazr4{m9vM!`kKY-~E&+(>i(J}y7mJ3Ga4?kG4^aLTM^P9% zo-gY?0#XE>x`;h?yYYAV)L-b`u+vI~|Kb?I zkyoa??L;Lp9Y-bc+fp6obF!Gj<{EZD=fZh2N1a|eWHb2XaYjcn3%&_+I@273lYE|^ zsi4z32X?*QuAk0OUEd8uFw!bkm?FGquQFuUKi?vgB2-C=0IRtnc6Qa%?1WT+o-vs5 zy5d(^)QtjINKA28V#77#j;Q{%ohJ0_9c~swn_A*fFli>?2H{lQlo0nQzRRwALq3*u zaBc3Gh6WDi0cN8xE81xfcYA7()ZkZ-4u3X)zFH!VJ*k*f4y{I=CPao$=^n<`0=v?a zLgYjRt~7*DT;pfG*M)1kjte(euieF&>+N%cU>G%V@cHTCii7D3LRw*NlOJm;$whgv zr{>sW8h%hkwXzNYrsd@YW6O8CN)R{;1Qu05TJ5;@LR$sG7RvC&7YbIjj?l?Ot%X7|tE00Q2p|jKU2t{2XDg;XQdQ{yA%Qm8@ zr-a&&9Foi_V@!iqV;2ER!jiZ1~>m4X7tnA7@P!bOS)dQ{u-+{2I7x@WpfDAvJLmaXfNgc<6f8TNnmRS(R zc)e|C#?!W(+v)ao;2OH}Y9CnpX3ozl!aCAfa$k6(nRAn;7$?AvcrAyY2}78+9hdt! zp9&h9D9->fm_FyApE>{BRk?sTq@MZis7?e)#k zEgp{ZrKJ9uo&9Z-->zX)>PB#Kq~zQ^qDLotjfzHQEbZb4m6C)%afJQ|aTp4L;$LIY zfo0%4l&hHmc+^B1NmpG%jarvG@Nlv$UgPIQ^DX<;hOfFNCMK->SkfvpEo?|3!u{1U z*A#rsiqEPM-ff?57!Ml*CUdiq@=(eXSHykpJTvU;&r`S{>H{T|&fDKn)$%nZarw)A z%X>-+PLGa04WN}@OZI1K6>*nZBVVg7rN8)z2;Wo6dY;^$@9w;2<4~vC8a7(B>+Lo% z{*j-l7cZVVy>{ksnz=AnJ@7@&4q#@^{=)Q3E}%0GldJx4`ZVsbd-;l?&W9x~-=g7d zI#{u>-%09f+GEi(Ga^2yRfIiQ-A=r{5POn@b&suC5Ls(km!TWWVR-!7cwdwtQ!X~p zpCq(})aYzsgre;zkLgPh;22NknAOli=1-K<0dEOs^HTX!H}|*r*_dWE#o+J5IUhbT z2ltBxg;Sk`3k~S!oGL&~PdJsfP3VH~KRb+|1r9XL6elWE^Rg zRq@=TYkM$6yu|+U)$PPoaN^%vsfLCph8qj{eVG4C?e4^=REx0BMIkx&3(Y9oi>a0M zMf;)omwrnjUa9A|ndN&`8n5vfDPM2y18W_pTZfp{`^v2a_cjNm6-#a%KoKgrm{8DC zkpkn2P?}v;*k!awjepg7ZS)+>Z8|G;cw`WY_sO5W0_N^m{v%r#8=%!BUJl{sw|1vI z#!}6C?qm3>TcEX?&0&Gq6+YuVV?AYD!KPo!6wSQCY5C;QU#g1$q}6>eV=Paq#0sm& z6NVF0dE*g{pC+|{NJsK#-hxRoLERU&r^mpUWeKg_P4J&V?3K$>N1%;A5erhHXT8e3XHSFqknv z;g4vB(vWZ(ocTWq&VCyW@YyXDRBh%qm$^IjZg+z}@jXeRUckrm&qw_@c0J%P?Ty-P zJJv3v1;kAt+Jcd$vbbMP2N|`mr;eO#?XM2^Lv~h&^MmftNw4bk_(E;#ASmzEIJ&#L z>k~4`?ZnEw3l8$mOZF$z^1ZiPlpcYE4ap<^79{!b6Kt|1%AF#MQxCZ^Zyei*{_LkO zzbesy0j1hr-R&>5#y+|4Lcybgsu@a@i=0 z!QbKDe3qZZ)OI9Kqs72u$WbdMl}>B;NkAz9Qey$!4qpHGjWHM9wXFVf4H%~!L`oyC zRi4jky0*$q8@2=%x?sPJPodEur<)zo^Xk7)@hs7DYZTMRzZgow>4I?6#cpa@B2$M8 zBtTNQ9u|p>7!AHflAkvGD@1cz5&_HB5+0R95Ktg9e*%V#I1!0kAn_M&b{?#}ZkS?d z79%Dl5&YkU0xq5?+U#vEBfUR{#NY{<=pRWhP%mt>;?hfUu59WJj?jxOs zq((I4m*<*-^oJ^DR$Gr1$}pbq<|%wNj8JAe@H}3ybFe8}9dcZ#aoL_Hxw|}+%Lo|d z@+z8O_%4?ho{(hrDpzea@wbbzvtbh9dA@a`o_gC85x-zs6W2wPis6x-agty?6aAy9i?HEU_e zY(EfuN7MPmgss`k^e~fv_r)1;q2?wik*JCuB3i>a4dHKC;zadqafvzbx)XRuK<1Y1-cs^@U)ZDzSsGjlp?e-bbw89GiiJg^ioJ2`5PP^#S0auej>zys~Krsl%?pMot~ zCreE2f?1eoo_Ovkc|p}j^lDu`Of$0vq2Z7lm5bFoBPkbq6N6MT<iSJ*-Qz= zfS`t8;5$EX^%1-0JDpBCA9jEmfgn3Vd0IL@;qjXXs$uc@Fzb8ly5haU_VXwLxz~OI zpSxs|*2a(&}$a{>yG_?ySV-3 zr*UI7Bej}4>gT;z2YcROfW6yZu4ej1aRGiRsBN_Szv7Oxmus_2oa_M_qe`pQOwS-3cKWuX*>5*XEhmO=SG2cq zo3{HN!9p_BAW@P`>~g458W{|)Pn|ZtdS8mvv5L}PBmQ(FDV9z5Q7b+D2+YyaLF{-5q^U!V)Fy9zFP)fvJ@S}F3H*|BWrVO9xPe$e}<>VFlEW*IQDXCxZq znHB90#tDp`Q&72<(0j-_&%4EXe!f`0puZ*)b#0Z%?1wGB{U6;yyyw?PFu77Z-`*La zTE-0dsCwIj)L(R_-Ap7zjWjC6y(eam$=}p}kN&S1e6b!1GFsjXXz$5hf5ld>kKc1G zDY8SxR4_mU&;CHyMIB$H=xbBwz7G#7vm}#PT>2Ht)t!%|)H(S)$LK4w>Yu#L=(IUN zs8i$gIDD$gfe}<5EQlU(JIMtXnGc!(3c7qw|9EcGW$I7>mtkF7Fwrvy&i zbbdHiXRie~e{ik=>qvFX`?H^$kuwhwGx(dU$lltqc*0*lZy` z5Ozi73@TN@qFQm3ous$8>z9ZI+*+;9>!)Y`kuT{ewFRldk-e~p`6E7quC#D zielIxD!9Fg4UKuh=3S8yR#cGVK~fX#au3uHLgv6F9j);g`JrCmI>@rPMH#*dnr-2M zGOM~_G=@G&rM$G5Oa<7{mMe|PH$@he{WGgsW4bv(xKh*H1hOvuumgh%;M!fVNP(jC)PAty3uk|>|IBU1Sf za=s7vb~)6D`xsohHMSzbYDQ-z(5xy}W^X+&|NUUwFjN>Ivq@mX!KYWs)JtI<4uQf) zJG0x&v;{w>;y;Okx!@-Ov`(T9ALr*K%-%Dgdh>weO#nSXEZ{yvtyyUrPVaWV@Y3o~ zE`WE|7IegN8cJmVF6J)zNj1oI_8bc@8ylN(c@Z7Q?ZZQL2u~f})=!M-u0-_;gBbUX zzBFO4i83ruC>ykHOrC1+=Uw1$VN^^Jl8I)DE;0W=TI0BOj}3+yzSG;E$V5#teaIdy z%C24cX+n9a?E|7pU#B%O^2MNth={-^mYEs=3lBIQ4_lh&`K#QEf<)V%Q z(-2oDnZAJj<^nj~R<&A<$AG+V>7lkke}MDP#q7oal&kD$@p_*=F`2>s&f9(b zw@9S(s^3+?m=M7y=6%H~9evMt$HOj>%XDhw-m;=I)9l5cpKd-~ERk!oUkP(Ry68oF z`9s)mFy!r`5hL?Jf!oD!&2s%t^$Po-Tt>-x{D?e+EDA4&1$D5wbxxLluR8ZU7^rdO z;|h*f8wzS&i-Fd9CjF3yyqmj{`8m@Oc1tz<1Z#TNK3YV;RUS$kSdqkx<-IyyYHxkO zeL_2lXl-ei9iux7gYND`{y{q+nB+PU7T0uZU*|V5scc_f_nA(E!=Ly@Nk-UQu!h0& zhmlivDU9-*TX^n!FOaF9BO$Ohv&%=5ZbPUU6mP)rTKDi$ST8pye#=;zX?SVYJXhCx zlhkDWS2Mzn!Ush4pRRo8Uf=<8CTPAz-v2aVm^z*OCpSZoO%2&FhKY6Ud$t)}?kv7r zB;6E6Z;X4s)GU|oB;fSu#HV&XpDTxT#eFG>r4;1lL@RbfQOB)FB<_%!X&KobDl8Yh zDX(O&Po$_LIXGT?GSHnBSGUb`;4TcmPuS4DW%29v;R>+>;F zZsnjooJw?fqZYJ4GPUG7g&&&_-1WPK>(yV;y7rgJdxC;O-^^#)WA$daZ#y7>B-HXA zyYdZ?9b=75f$$qmT_Kb`(SLeXUGvZcX=Yhxsr?otCEpMDw_7KU&RWSL2E*K*n z-)Pc#9G9V?_7nR+*)zFkRtWuDyX(lt{R#uxHZyVrVwnQl;i9G$rKD|*u_2MVC&4%eSo4rEOGZmDI zPr6A0=nwJ7U}eM(N3uRdG}L17hpP93Tywx`s#kk)MKbYR2W6|b2?7Nlf=sqD?(H3> zs0p__`tUa0UUV*=2T`|k!-SrEuCxa^78||n@>#FA=*9juM^oKlYv=ba_nX78!sm#M zgxq>?)i*^XH*aHn5cX^f@f*-RZq)E57rrFU@=T!)N;q_4n`|zC)?kojDGwo~l=9wC(y!~4(KsHrLWBjo)!ntTIj=h!*%`CO}7@w{r5*8UI zCRH@yI7yVnc8myphM}Ber(z^WcD8hcN9088@@YKTUC7ee%S0R}Yeq0gV$URDSht$+ zuy}Z-|LA;{I(>be1A)1?Q5AkYdXf|7s%aYJ0R2b3j6s(P-mV$ST~FcBIoTr?w7D_g zY=3d+vAfjWv^nEEMxpw}%C*#bq{pUf6de;&{L(8GF+P+FkGME1^|~2Ivhh^SKuI5! zA8HS5YOs{gRrmVzvE^6uK`HHOmwq9KliMV3$W}nFDJ?|K^shMUiI2Jjb@ANyU=ba) z0z(uM-u*8B@T`+Y#ei}0+(8Xw){mv7?L&z7?c5Kf6S$(yNG9SXVxu>=b2P$5?Y~iB z-*-hUcVAoks#|djp0^b7b#7Ala4%`{;XLBU9=V&&cS}zqou+kB>r-+?zD>lV)v@i*?n+Ww1t8d7hf9?YpWz3lyZe6U-$ec(kx6G)cM(S;+6!@X(scAfi zZKn=JpreqD{_YzyjrI#7jy&XuV!$J5+Zt=>q1@Me?5< zvT&;L(-Er9E5j5Fa1vnXMPP%DM1&`KdT3wu@Sk2hKRa7Ht>Fyd$I;?U|lb8$Y`dUzQ zetB}iVzX7h5{`OV6SQbCk?moMG9{NGAM81D=IGcYv_de~)08zTLW`9FGwko}iT7!P z+cH2PHwl{bAZTaiNY8cUAr#}|JOd`EEy)@Cbx5G@_k)t~H8Wa<+YibXV7o8Cs zfsE|)+p={n7{Pagpwx!t8Qb;?{i+#IDzt?mVRALd<4e*=!koxfiFAzE{SrvqY9QC~ zN9r6ca+XnhqAcW?Z&nzMI^vXWN$8T}n&S?mWPq=%oqSzZz-n?w91B^ssdy+p57rpZ zbfE_>y%6)gq4x}`GXaby*~({Z-5u|m=dz=wZTlUcjoPC%ir_4-cNO9N4bM=<54ITP zD19&8>KaO&fI?E@LjPn~*K}{8{Gi=m&K4D|*XZl?ORBR^;x5+m_gg0mNR+&01MJX9 z7+j8Cq&f)9sw)Mc@#6MiD$1`dT`RjBPk!Rigt$Or( ziB!~YG*8pV=gy_YWX8VTdp7YU1$nb`x1G}&GGTgXRK6MlqN4Ppue-0^bUa_n_&stO z;nlS2ys%Y!zx;*JcLHDWY@0{qa{Cr+@flR1iL3Lj!-tRva{>324F>`T>fFfk&PAin zkp9J&Hv$`=T?S)@TG4$vje~eiGM{~e;RcW01wF;BF1eULGU80L@4^eKGAFFm+3?Rc zGr2O==A)jNw^-Q-$XFx|9$mB@s0^i4y~`9Xafu=G&<#>pNTxaw2r>uVuyoO9eix}< zc%Hx82=Y)i{#-GAk@KF>BG%0d0(U-18JQbOKIcl;_GwQkd$%bqMK&3&rE{ zQ=%k&3k(x7vC9+=(frs~4_3m&o*`<_GXC+rDQ-m8Utk8|QebX>O@~7RvP{3=A-MX| z-PI>mCA;$EL!wrZB3aKXaN^fMc1HZ@Q)-oU-d(RX*1gs9_@Z`2hDK_-hFkx#P}Co9 z^xqLE)fK4jF-7TzI<+V;p1f*F3!)KsF=Z1K+w@x6Vc5K_UafNmJ-jnm_+;`&{0d(12`xt*1gt*6^uxAo{kMzY1x zPvQbA;c=9U7%DHfD3%SW(*V<%zr}==^(8A~Z~sbO!6IK(3R?BZb7NihQbNOvcntms zVb3$XK`-I;_i}n;-#-i|V`DKkjozb7yCpaAyv8@cd#2UbWTg*Q?CEZ`=34oWV2Ld^ zEbaPrzxK#_cv-G`H<~pFJHbYK8ymp_av{5Gpg}05^yHP0hD4Qj+Cy%bipPlB>B*J5b(4Zx%W^QyfqA3LDBS(g&?^s-8|E*L}mU9v;b zODPNcDUBh}!o$;r!QZu_ts5wxNyVY7+hO5mD2-4MI`ZBKp_q~NiBBFt44-GoOfVRA znuA78TPJ!Bzz;b}oz7-O;`Zm~FNR1} z?-!N%l_zHKz&)G^{Dx=5-@U;oI?T0lJKV;)$mWM@sh@H$@`6ySi8NEP09xLd3T?H% zNS&@L$Yr#MeltCO)EgPDY_caQjP$|mBe7001Sy!>)2^6DB0W7FX@%zJG;>X#OgBCj z=5$2HyQK`(B%_kN&ro>lUEgCPJgGecGPw;?UHCV$@~>G{h%q@cF{##r>0tyEIT}(< z()YD?L$3>ZC|Fu87|7(_nz^kWyS*`owhWN6@KW@u8TgImHv)p|Djl~TYt?D%6>_)h4UMR=z@(xOC|+f zx7YtbLc?ttVc#@^tL&Z-F0#JZr5#sujB_im=ABRu{%nTDO)Hi=7+j=;2ehO{rGYe| zYnr)Ix``=a}AgpQ(K*FEQ=!Mf_3X7?nf3)tV#7mufi^OT<@zrhJ5iEe@vlXjD1hb38y|Pq4dkT5@Xq>L~Dd=5aJm7V9({}n<>d)4V=2C88owmW! z_7cRf>!is;+Z^N~h;Z7bo;7=nXFRUF{7iSB`zDd#&qu*JUV0W+6zDGJ(IN^xxe@2S z?K-{QV7qfluW?SpNys@F_}dAvK&E~z+Me=M$N{{ zFvQxfe_x2m)kD7e&S>7hMBr?iHB0Th{`*>r^c%F3dskrrs%!4ACabloQIX&8t@Q2qMJ?t453(+NDR3WIeX~_5 z&6O)C`m3)EE+ra`q`Ma1X2nIk@_p~NYspDH=uM8Sk@%{D84i`c)(*Q~dXM7mH7XR! zUkI`cpC%Q^@zt7G+%}JZuN3W;Pf7$Ws7s&-0gYXD*nP-#SPW^&i)O?a#_svKmtw>L zFcSLAHnW}G6(4|?=;>`YCtB6|?3o8`SzPuJT z;~6w)_a_A|7oQuqx$2)->4yBu5`9MWsB7n%w|d?~<4UO0lT0@kYnChL6I|sEkL>5t zzgxeJ#Wy;Wg4A0c=j}}WF6p@@`d9k#^tcbE6WImMXPHL^!E$kj*8 zHH1j+9kiLPUx8=^ac_L6E{RR4F_n2ydoDGKvnV^%;ZJ3gHlxV9-vC2I_%l;w2 z4rKf>HMzCk^1|-kSsw2&nkcz9u|))Dshx2Ui8_aEuV;pQcD?BC>-f30rMel=)}Eny zbG?S`L|?V{S+-`^3&@}a{`g5Fu+QrU6X^LytWZ}I>O(9b8n7+s!2)JkD@sr5^2Sx2H;{wSLSDuuGM}J>Em;O^< zsNxM@rB6%zI*%2ZsJt%Y8AFyZakkH$*6(bJVuGl?9B+Kr*JkG2iwb*DxBrmm(?`KT zURl4RZ7Z5i&@E81O~Sp{+LpNZv2AZ=;MA;o%9aBQj2wY+yqfy4B||b9R=t*F8CP{$ zfHMJVi1MkslS9{jo}K0C7AA0W)~`hO3&AgC@!Z&J3&KBOEU9IF%j;#r?r?eufGSVm zmfNY%n&QUI`wDd}>L^pF2EJ6iD%|CBTzZ$H%c^eh%q$+qm7B4zm+{bXHjk>D(j_=e zbY{STc0jWlz9m1pzAvM0B*gg`?PJxLkm+Bw&2jPkcWOvufbw22FcgvVt9MkP>nX|0 zRW4FF=r;d|vjMw>#-4iUMF((i2FD7}$=6t^kY@qgtinG(E~=DYqVDBJ-lB@RjYHcp z;+BIsA{Q;IQC|>wPgu0vmcly!jHEwiXtAYA{2z?;m1%xj0}ibJc?ZGo1AB5Ea&Ff{ z4jLU=s-VOOh)Le`t)+!ZXK4VRQWbayCvrb`@O6Ti$XE;mt(a8&W$U}vqgRs*+~gV@ z3LZZXWc(58XO4Wx_ZFMP!+iPATEM|^WnCO~9$hTo)EJ5;kT;h1NAvPII{%nT8QC{g zAg0j;3u0tHp}YLF>!t@B=LZ^y$GY$#@yOZD{n3{g^EnaeMSQo8Sl7F+mTz9P=6rq89hDsYnjVfyh#5VbVSmx* z3stGwae6{cpP?zkpR9)5+pD|g8R{%dFz20K94Dqq;xT<1Y8GMNdPmQLHdim{XNfhVq@C~CKyC2pe(ncho<(~Nc5m*fLxNci!%NJxxcC>Hx?fc&@<5&H z2}ESyi=?8cm*jGfOQUTBjywyc!Cuehlgn%>A7n?2?3Pof+N)qRcAKa6Sj~_P^Fs}P zI(#d4U#{7yCSiGW;JIgl-?f@VNiu0oBSI33_i9%*c3YHC_YspqM`fun<&Hh+o1ADl zo{bn$MG+~%Aty~u87(3VYPR+Hl~T!rpQ$$Khq%1dgai!KOO;8Lv*DzMwe}bKTl~G* zjrs?sJ`%0RJ>}|~wc)aBwkt3C!cG@l1=M5$oFFQ+C7CKeq1euS*87f8y|mxHM~F%B z_XbDva=wYoPe`|tw<|iYd8kyQ#-*0BoPRT&muMXJqQeVuT9WB}-(z=8hegy3E2cw4 z!!1Ug5ML{^42!elXm{GSq>z2hLAI=0x!Zc~1wUJ9Ims~3r_vP!Gk#w3APT##-s(E}<)4y7fSJRp036Gh}5vKDJvB-<=lN66k@$Xo|)rQYgHf7FwIN;VPk4KU z$JV)vM&mu~FY}S(^-|=$cGDpTz1ke{teklo`EeAPojiuU-A$U(^MU!(sBqEd9J4Tg zeN9p^_^)g^;?Qjtn(BpXo81BJ)yLkrNBdaBrknNlOLqdtUB(vYbK#918nM>*yf^GL z0vr}}I-Q%xbti3#$Bzy_itb$xFPd)i5ge`44A^9R@o>N0oIvLa(jOO(#04ZT*g@n_|!Zkm-MzJhG#0q)sQei}U*cUJ<;C_%MU=AAaM1 zzqEnoTQPXty~X3JMhy^p;aBjKgi|i>3l6)peu?I(40tGXdwZ_ma{ouI_<;8+f)n3N$p3GZz|#Uc0%f&L=>5}Y zaB;ml4Iy{k_`knlb_e{q`iyxV``@noKMPgY_3E{c)!Wd1Nw_%)h?3K^llxC4`QZOL zJaIzsQfj1||NF%L!-0T0CwT4qGAV(7zr>aRCP&+mKs`i+;14C)SO&h~P5$AxnqMki z83kT~ZC}8J`ybEX?+^HlsDQ&8*(uve`}L&#bdA)8dwe@AfA|g8G5y)VZ!GgnO8jkt zg7>fVggO0>`&tK=S z>kIyZ{d#ijKUOqNz5$4_a6OlpzXkyz%rb1>`y~W+c_5WohTgS5Rq^la z;0=!Q`F;mlKI+dJhk%%f8EyagrLHsH$ZK0h36S`G1fxLXe)9VKu~6dffm`t{ppo9{FL10`7H>ED?z07SpKOX3}S&Y6s>vgnx|p_+Gw12 zlampg5`jbpuTO_rwHsUsT&GjxF)q<`t^G|ZPZepsLg(I;Y}JwSo=2>dF*TxZ#)Eo@sHq0Zj$Bb0 zB9RWI3ek$1XJ@Zj0q_yA3yHKPgi^pI zXv6{@d^Fg$%hrbV#~)2>r=+C3tTN!A zZ+V}!#L;G^V*fWP<+CifB4)ln&HrUr{vDD1zZDuC(wON79kzh#mxVdq77BdKtM-m~ zw8*RJ7J#DardC-l^~8xde9_e_dyUFv+_SzHqK`@vdJ~K-hXRJpO*Rl61qZBDTTqgi3Fuh>$S%>f1~;uQT;f3ZXZ|K4Ly?$%4F? zL@dF8EuO#5)Ntz{UkgB>UI#U$LjCy0RF$nHI`m)ly)fGKF zaJfDc-q=W8du&3PArn8aNe+is?Jn6LtZQ7EHpR14YWIV6U_pZF%Q;(5RuCK5wzgFC zvI$RJ@4ihj+6fEzx0)Hz)GNjRCw;p5z!oivwn&?qB%jNIdY9nnsDOX? z46$EFl_r=%Lv7t&5boYepSsR&)+8U$1m@Fo3VHM=U)Jt!)(~GTpo7^G?9I*1qm@=F zag=4F*Dk)$EX7o*&KLRnRY72W9maITC~xEkO%`ze2IlGeK6!c8>dkp_)8{CjtV@5S zm*p_|A#;~q`MZEsf$d}|M!Ix3XGJI>|8q?vbuj)yJdiqUDW_z2c7(Bb0nkwCE=2}k zd)kv865M~DVAR9;!lXON2kZ#ZZ~tfuR(E#KrFaCKH~rzEr16NkWM=(VxoB&oSyx>D1NHJeR~(Hh_a&VB zipgIZ$eaXItb?bPJl!Uyveq@fzM{Fus+)H+JbkEUWuT1AW~RJMi?=6|LH-_;Oc0(o zZVpX7L5hN%KPVz1-{$lT^#Dco_7I8|gR&tMOx-+LzY0GO>fJ^7|I~0wV$|+YBMPu` zw_^{-?Szpnr{1tndTnpVViyi+6h3xUyCLQYD)y>`@LQ!dD~_J`YTZ}G_eg4;TB%FjeG8a)dKL`N1qTof=DH?2020Qb%dYEX#ddSFEZU_qxUz)b0H-xI_3Xo| zMKszCUOM55Dszn$^7Yn~CjNIjqaLQis5XZYDv+(wB15~|Tp?*FSPWl}$}v^ka<`@c zNx>c`B_*X<_KmnfldiXU>N(mPI)c{*h9}VJdg6EpZ3!P5=n9rnBQCrz#KI|s_k}R7 zy(mzVRgbB)oBNDIqUi^{6HoRcLK!B*WAWDU3THq}IdjkIR=!N_WOhfqIikpttWWA%7PRWP*FQZ;BbMH+; z%DS0H3JjKdbWTpd6pyxc+LJsYaCF1osObOS^!fjN&w}lJVkwQzb_Xk*z$br zRcpbS++JHDfrk58zGBl&i-|$5ukU3B#p}T@-FqfriE%&J{!B3*b=`b!GToG&A}lK6 z=b5WRxBFvXD3{{*aMk;sp^wZ5SMfdzg`f2bEP-iFainft7s7dc)Q3jzc68G|t$t5V zBxC$WVWDhn0v~#Y>ieRYssxC?Rdg^3fpz*l-V~dk@Zp(R^1-EtOQzIMD zHUPt&@o8Q9O@W^W(5T`LAF}4CdmmDKQ78$()2gru7|ypEk~aQm7-0|JGdEd~Jf;k# z5X8ZEi#DE~tTIWo&Y?eEK%a0{{Qg0s#AL|fXHY{!gN-#S@;%norMh#Ktl#{@VCovG zf#z%(I@bYP8AjFQ`@rlrmviN}sts{CT$?8wytm2uWc1uOC;8h_*;8Gqq%x&QUN$(f zPO46*2bSI<5p-M)US%SG@U6`fRyKLW^bM0DD34*;W%N1iMe7kWBPq`jppgejB@^NbbDb_^geUVe)Jy!qMDCio1HTxSdkX!0_ z)Yd6Cq~#Nqm!VeGO1q{OuOICbal2Ru$NZH7T$LZNG5&mv9Z&TJyKtM!)FJ*^iqP$m z-E*gH_cJf^gsDk`mBe&~{%yDQQ-TWp(wKr|ItHdCbewt(+z>KeoZ?IwGm4PmeXn!0 zWv6zPDW&i3!1HnT+F}>(D@BuvLI}z7-#>0M1B>foBMc+qp&Nneq()t_?1crBrp^PV zWMI|clgKX$`@=?%fPm#b|0_iDzQIZF!RNM~N({7aI zmrDd$m7(+IqV!$2c|(epk6uqtE28oAL2MNXY{|m!>2~Dmd70N1*HS1u(%d#$|=c#e*nzK z9A>jm)*f~{S`rrmdW>vH?iY))GdxHxgm+2EHWQ4tDxWst?mwc-SROqXbHg!wK2`15 z2X?ftvDMl5V_@BV@Rq;CG+?yhuc*}&tLoxng3Y1fF>xhu(;!$c6Os zx@J^Y?YRBU!gAvSTe53y-czH3A)8-*T4bd5c(=%?o!8FUx%I@+a-+v~>T7v>%#$n> zL1WP8PJsz5T0j^E#|E#!YzZqmoIp6z7Vq+?)p zig26$S1`TEboZ!;^09cxK18x(6ULQU(h^57?x~Q%MF^Vfoq|9mxdR8W5a=80r4FE4?o4`)c$X!AQxJugU9zQ`F< zECL+|O;=D=Yhh0f|Iau>T+NDi%-eh&uUiMnVNE1OV-(uokEL}1t_SfX<|)MTie_HvHM$F==(b( zkXO%R!Xaf1V1SQv31De%o*YU5w(x6-{4~($>{}!ZMi2BQOgjUxi25qu<(KX4<)|uU zm?^)!>86sY3_A%ZYYrtFu_`&Qjrg3jC4p zhuqxC8<%2Od-GS@r#a)TJiusXj5^1%-Zhhqzzi*Z+4LUnWvVZ2sQ1j9lK=J7AmmR0 zKQwG{uz*RTE~7N|0?{kFf3Y!9{=K_fp|GKgIvr&c#Nu;%DI@t>LE8lN1E=+Rb(kbv zfbWQE_yWDcb_Qq-VRG`8D~%-oB9Imrkk;;oRz-ilG%m=Ao}=MZSWO!Ra)$E5P0bu6 zu()g>*T1t%L;HdXRicHsjeCreIyMIdkW2e(T^8^9?-)H|+xyv0u>XJfdaIy1x2{<@ zAt6|B3lcQAySoO0yDdDpyNBTJ5Fog_+d_jb+}+*X{eQCG{eItnF3zc17bz}M1#8YR z$LQ|S?M<-_Z%{!oEi>kffV?0|%qQV}YaE4l}gAiDLXt*z~h+Y2{JWw!Tkf)kZuZZKs1H(uZm z$IkelCV;I1Jeves@A{J1TX;@X+kK)OyY|QgoCv$VQDB0K5h$bE+G{)&vyA%8frQ8Y zRLW2XG;P4pMmq%vR(EBAfkE`Np&r3I8DOw+`c!9`$%z}ti%Bw-Q{rtGvjY%_rZJ6i zE_&pT=Bh+0D(CQKliv!8u-ttu&EHolFV@gY<&P3zXF{#lozx}r`yAMCF)9KV5!dyF zIt$5!fzKx=MbT^)>|Z3KI~w!UU#Zwn+tolkNAu0t{c%A8!Hqx)T!P5m1S^n1hrQsk zr)S*`!Q989a{F{hlANN}q_nk27P^@=&`GOXg(jw=rbG`6R8!EP5P+iExh?j(LRHBc zuY%7}NV9VVs9Ous^^X@mzX3^Q`KWxAftV+kr}{6GOTcfh4B0|t;uLTe`SdqU@lw}0 zdK|#Pa+DJ~IuFu~n!FCN+JNj0pr;yJM5hRs_-n%le&Y1Fp-o}4$!hqEP7(V7+~v!Y zyH@)4s*jxhPN@d?v;E`E@m1rKD@c-w*CCq+ayP&0bzbgXkIQE9tG%B{1&hb!xY*DC z-#WQx5)4@a+GP7|E{9!%{R!iT-+&{X*eJpBG$C*7;c+U5wcgaPs=1OEMv_6GGmqi0 z0kzT#kl-0O$_~gsratI%=nqA!!@VWa}P{=UTFl*8Xq+o9Wj~NQh-|CuBk%s*L zwr2Z*fFQ}U@0)7rQ$V=fzy*F-|768N=i|fg(EHI+Rm`8h=qG=qw4w@8k$nR7r+j;O z0OD|5`g~Yl0cs6}KW#6_c&y;_=+aTJE1)i)F3O>+rGzd5LX0Aisl9&$Mp*VFf>?7= z9~@e&zbCLzsZ?WdJ0JLeOaARr<;dHsQXgSr5IwH40(-jYgyL%aGhEfujEin?u(Zvz zl~7}~(F|QYiXbPbF9OGp*?5ps7OslVX@T{xoeP0(UhG*iv&jtH)x~LRMc;>iK({Vk z@O^5YG_ZQkd#we3q7KXi!G{6tdj9Zye0)yRV#yS{(O1pNP^^EwSYb1+_YEymG7zxo ze)?~Qi$wyDLPwEOK{zq1&CExD60jVv#%yV6x#E+iR4OKx!jv+M2@O%?Qb+{4YZ_pj zeDJ)%LHf*Xsr_N3e7VlS61b3@Vl{rkYM^m{bl6=a3N}R z-wt&v2fAy78iahVbLfhtRu628*_Yf)6kuCC^t?oZ9WqxhgZBiO)u}|6;I=)OZ%9{o zn)<(VLZz~p&<`XusAPP!NG~~JNe>YcS92q6iJBE!O8^K%63>biud~}#pTqhtyqOAw zS(^_}fWMUK#~$o~ z>NtEjZB#X#!(^d$U%k$qEfkw35I~`L2qK458}zm)7YXsbU#*gwUONO}#(;OMwbg8M z^gDDnurt4jJx#ud+Y$d2u-+3pOr%Q~ZrJ1B>+f*?F3)&7`Mn+)Wd&apzd!eUK3?SL4#R^v>E95)Ut;q5i3x1<wwZMYZ_0}v=++mh8Z}1KuL{h#vUsEg(LS@BfD^OnUyG#cQyb7`l5TxY zD$s&y%sidt31A>aB(_)?7eLTKhmb@%Q5C%><^gkzkjqD8TzbD-_ z3#w##Rb;u<111EWLI_Aw>uR~Vzuc_?7Tfs>G^foWu|V~{Z2C*i2^v9r^VQ*B-mr%q zt?$@DGkX@#M(I>x>N2|&CODHNWgDdLJ)aUaPp>L9SS*U`igUwA!JehLtO#X`h73td zQ~b&BS@{9@Veu$TM}xs40c1`?2YIHTqFAK zy!cO{#P{Sv9r_u#rS*$a4_>xBnCv#x9zc1xyI9643$b)=D{i_w-kZsQfFs$)ch>t~ zDTnEo^u9s}rBJW+vZar&qlijsbbBTQFrLi+n##Up(h4}YjOaH0Xe_prd2rl!bY)79 zA94%8y6+k{Q%Pn5Ej2#ibh^I)#SYoGw)&>&D5r!yxb+&@YMqOp!~qHl%2vGYgU`{U zq{`U0FvtDL_N&#-V92urJpd>h0PLeD(@0Bb>km|-8bauaqBD(^E4XM1L*d%8Sa`C_ zMlM;m?S@n@FPuSS{;|<>TadL5A|sfvc*KKiWsS-*$v*b;$JuCxn9 zn4}US!y3sCI2pzA2KhH8wlV>nHDnP{H8q_`!nmtl|Ir1R2=%hOP%CsaD`%D zU0`d}>o@=7uGasyn=RgdH*s)*#I|W z7%-Zx7B>VV$eR0W!}v*{p=}qiR?_3&0FOPRc5!(bG>gN~TrW4FlO>J4$ndpy z?O1ew3Lufwfv-$-B~s$QJoTA5JPDfkikQW0Zl-w#C1+`~-@=2@^N@$w+GP!G4WIoMV@u1(S~WFMJgo-v z79{=MX)zIalL6%JmZpmN)`r+(hW5ald1D}9@J_-BBL-`Bq9@C-Xd?O*$$%CB%-~6$ zYkUOqWz({6zY-~7aWsfhYTwZr7QeLkyrzS9Njcpv-f#3pMe({_WSWi}fD2=myG`&W zyu`qNt)>-MrB_<+uYCO6vf(jQTwnS44uK9YV-eMGwap7mlRM6~5ylWmQgCoV>D)8z z^B9^Fs)!Tz)X;=Z5xEJ};9{tAovoo5beop*z;v6TDsL$Z+o~kJ-1oQ0g#7+~032-^ zlTCSb)Q+vOt2G-jmI0{Qhe{M$Q|eEbnh?Onx=7JI=bv@Jj&OjRt8zffL>3Sy>mGS7 z0`K$;bN~;(ID`GPUrkPFGjk;C89nWiP?nalZi5atPQZ<{xJ%1vYt?|ATr)HxxbaKl zhp#`*4rb)jQbxY{lcB6tI56w1sOa8)`(FGC<}jApe->NDD_#MF9Q|EgU5zKy8BquP z2z232^O_V!^`242Bfm9p^AsJbDU7x}4xZf9n955GhN`;xqQ#del1t0qW^gcGZau&f zozbBGh(1?q1Hb)^=O6y|eSkU98z`bPJT%~^94&i)^ai8^>)Wh6sgqb@@y9olGWK@5 zkRA8au@SW%!^_+5h%P@12j%)ue98Ny;7yM(CV*Ch#_UXspC--`Nfu;(xGu5aIpO#H z*j>mZU471aKl+E%cLb0%&r4Wz)q*XDrq_5Mnz6`wn}_qGt209Y7@63pHVhV8;MW@l z|DBP9L351xn%zw3&SP2Ik2kc;FMCx7*7jC#I6hZ*KPT@KqN{`hLRmfidqVSZ2^rQJ zELLT~Z#G&0Apx+gbR%G>(oE>&AAK$n)8{7i=Dpy5K5M&Q7{}+6fpbOz^BOf5eBJ)4 z;UDo}32@(1K}ZDg*@rgkk-2H1~e!7k^fCu zMqBXP6NuU1c@K^0=alyz@I&!TewGV)798e)BUom$zOQBv{I+p3V0*1Jj5{5|QE2~* z)r=XFPW2n?1-(KP!Sa4F%DWViz;GP1i!Ca}Z}|h<&W_n-TJ_O@4{UcTTfw*V+|aF< z0QboNye&&%$cR4h%1`AvP~dR1SFW9}2@%pHAJI4YsnaMJDqm|5^@F|w3G6x5TQPjP zH+w4)H%Ie^38NtjIenjYujL?+lN6Tkl{Q}IL-P*yq)cJws%4sAy&mV+9@@3t2XE-9o?~7D$2njPF@dt#!ROo`X04Hn~6n2NmV6 z2Tl-j7pA-R;~TPY?+Gy52z9qMQkZ|w_ ztU)sQGxCobZB`T?XE$(crW-+R=lNS!HWQaoD^snF?+~p}lrW*gHfP~+GFl!)s}`4{ z9ZcgGaAml!6nk}tCBMdWJs$B-Qxu(uz~VSj2g6W6(WsR(V&OJB?n~u}N5pq6Ry*O5 z0qPk}M3qQr;a)wLuTXqM?f&6Q^W{1`MP-$}5FtLn=n%a-C}P0%lJXN8?2kA9e%>2G zF@Rb!TV4lAB}@mYNwrMO<=fL~2^npPR4PEEpGH53yaRs8dAN^rs>$>Mpxf!mz1v+> zDLkHr@s;%87@FJ&m6(TwtMd;Atnfx#ft3d8<=Pta=8N^m@sxHOf;WN_6X|Ho7vDkk z_Uet2sP@1@Vf|W?oVqp;nTmLQFz=^`5Tlp%Gk_AXNUv2YRjVBP?WfV0-)%^%ZuCb# znc0{s>aN8Hu%MGkH$r72{}vxyZ#hpbW^3u?vOSRCxO?)M+xe>SNXctQA`B~n+qpUz z-{o{g#!B;*Zg4)rxhOVouXWc$f7%6gx!FT4bOm7GzM_(dMmx=Q5|2jE3E3B_we#o6 z#3d5&dI~!D>&at_JWv=JytKsWfpUK=I%6YAp%3S-6~V&~0ezY}jlVn|I-esfhLg$ZkX9K<4ZlL>w2kjiUZ9DW(*bID2#tUkSGw^@+H zUef*E1 z^k@adocmlD*26oCrxD%MWu=q>Cm=(Br`Jlwf$kaVEDByFVu`=A_WBZ zMfY;B2@mAB@!$cz?+8;QgOzT2Kj|3a)mt)q`*fyZ>n_0|s?%UXNaYRCVFEPTC0d`-h z>@O{wAr?2X|Gi^~-geWwV5XvOoG5WjY$*GZ|_kl)J4b zVN=?ywvjEtGz~)Quk3>|1%;ZVHLr(H)?JhMo8JQ8R1-_pAOTWH&rf%fDtRl5 zmFl1S0oYrwt}5syWNx=3pR4w~)K1Jz)L4(|cRHcf?78-Z zK?X=m^@4yvQ-RhLI%zE*}^cl}7>KQ$Nt-?kv5vVINu!tEQA(V?^$~mU-y`gpZ_g+G&Gx4Ai7~>%$GQ zRzYjG>k8*@0C=sDOC;@JsIe)961kG-1@uy=KcN>zSdr-kOSe`0Z6xlx4!)3 z^_i8x7z%cHL~?66&)n))f*d9QboYMw*NQOC|1I&JHc;j)A2VD=mfYfb8lqq&pI7v& z2Fdlw!UKqQGTUH47^}qhw^Fg)UnvtDnNl!UqlPM@KfFabixa%WG~2J+RY`S4)vW%|^-ZNwW#mYWc(>fw&o$VD+fktQ1x= z>Qp+NYX1*N_`oJfB3*<1_|PF85M0FGqIXAOq`bLi=w7ATr@vi1t++&iz7a4hO|4c9 zd!_E#zd6T!FL*RE9;KkcMIY(lwC(D$x6Mx~Ao0mqFmvj8QtnoShR&L$!m&krDLn`x~|j5i8t2 zgm(ZxA!EP&w>ial3yXsZhu==|mW=394szGomAU~(QW*H zZrD((&ij5QHATiVv>YA>s9EHhD%ydT>Nmmvf zPIuhO_)Zzt?f0hB{$jy&VPZK1hZ!FxeE~o+a|3guFLK%nUt^;$cCfg5W55 zd1%j&+wm?KLlQSF1eRgu20hFVxE#|p5qC)I)iNRNuCvd-m~tWlbaG;Y8L@ZaM&ju_ zoReDt-)8gG@-k2l^@^rCmgO=y0^`%c<@Z?zcRism4n{Zi!u^VQg%xxABR~20DuW{l z{j2ftO;9TsN*gK*6_IJHH`C^K#N2=Y=c9?yKz}pw`*XEyZ1CYXUMQwm@2yX^of|1 zfpa87AWHlrVYv&{<`RY0kG+Muuy2b%tLO(+|54wD-)f;gZ>Q5sac^uU75(Z~F1tHq z>%`~s4Hms7Ep!$ygUK%3j)6H4)vb>s%z)2t`RjLFdcg+Z_L>FP8DVfV$G-|QlmY$V zAxvm;gFj!C_A833vd0(DPTkwf)Y)}?xL*_Eqa9mxI#~(;^3t@WF&Yk~!R@2_t zyilsv24iqkl2t+@U=J`=9*%vNp<7j%yEd7x#zIhhcysT9Xp^Zp(|pDJ;?1fatUc6@ zbM`D*;187EAF@P5Bt3&sk>fv(Unf&zG`dYoB31ktLddRLtc+o(ZF<9Tgyq?1^3S4p zQs`+9WqvWPsAYh~cy%BU`f#@hs?0w<+h3+%Nfei8W`?IuwaExJualh)XYrsUrfqPD zC5>o8o_n}8B5>K1>(vXY8H|i9ye+4rx>WVOVmSs6vT9I}tXEq42a0uLNCNWC6kLi* z8x#`BxlXlUaUQQu=$55woVxOazhN`y+N_rtbYYPJAruxLCE#v{u%IL0y+xI^>N%6? zb==))XjiKO1`s>p(>1XT*G;ymRl-42oa!wD7IZs^Q=w_CPRMd{a@4A&g-7ioFcju1 zo!LP}Iwe?Xn5yUC+dUyfTy_5dDIb2akxAbxjqQ!0W06hfUX~<NC=3=gZvurtGnBcDwCgbJvbDBMrHqqF4@$BEQhS5l6u)=bzNn z|8xGU@*^b6VSJCZTAvnY7aRDxIy)RY4|H=##`gpIC~(2YO&DzX;kYTW+<{qX9INBH z^CU_H`gLb(c@4FD;bL;hNF4aq$Y4=n zgPt+49col-RG!SU9Q#vn#K_x{_~J+9$D$p9mTXd|GTbgxC69O>I-XM@F|?op&wUcb zFZ$yb8GH=;3p8PpcHf^lr*cJ=b6&QaLGf*~R>{t=pJO#KBE`QN1Z1Jlu8bd{V;!by zfBF;_PD?(_b{2Vb`A}%If$N{&T7Fu%2k~G&of!KPFRot43gbj53^675bF?MuFlhDp zJ{%in78He_FvIWK=XSZ17*Mf4X#(rQ22jXLP12LpQl{<;Q=Qg%9iEXz! zHkYZjZGsT6BW0T!C97t&h+Q2pRj)YDvg>kkwpmII@&@c1YWZz0=^a*Db->DB4Lw^n zd7cSGXzYmf|2URs34@0FOkOU2*{;;~E?}3NR=+47kLOz1jEZ%EjKEmS5*OBy$ z+r*b7R$c8cvA2i?^FQ_KkLI_s2~U5kt*>QuVUPxnzM?v3bX!l}gACd%*JGh$mc-#! z*kMtrba^oEK;!57rW-UMg{z0!yK?K+ zoJ6|vww&=xHPUamauG|u+^y%>y47{+u>qL-02QsqfslrY9;!W-zDDd~weeV25OTly zHjQ#7DycZG%#*uZp`AS;FCl;RBW-7;-4>ukA}37P5|aZPZQW%5L?3$wFAGUrzV z{pH7M6b|)L*YgjtJ)O8o)rmUPnrQkHMJRjP)LM7CXH&WnGU2;tn{?f zL*HW^2r-<%d*A$Hr;h$*sMY&9rL@iL63cM15G`sNlcW#SNs_}wiQu`jTICIgU(d->r<-RXnL#SP?AV#jIDaJHD4aqjQg;V%kVRufB3*;SSw<- z=L--~7^4()V^07R@IxM&YzfZ*4ZqmFJ+ip0jJsuLTx*H+z`ca~0QdY=4y*paHz4|@ zYV$$l12UF%E4CCuvPeLHC{oSqeGtI%8m_TmW3Y3uy$mUu0$3*Bz^0YF6au?Z%D zf#Gk3_5FeJBbtdQUVc{#T^_3X2P{sitS1q)byGm*2}E+RGXU+~MPt2-lwc3bW8*dk zuHeDdC}~RNYaag1^!isS<0nSuas-@t@CHa9mC0ZZrFv)^OtFoxhuUTLLCf(-u}8vm z-2Or&#qJ2R>h5I!2%{RY-IDh_@Pzk4kWNaXrkZ!o>BJDX^)aCI)(%9yKazrOegvSl z_Gt(d0#?rjEq0~OMei^jR@F&P5ci64`|Eo*?`Ir;tvNtf;X zQ_T!+EAW~!WG|4A8VhTQ69{g>ymCto2nXAa9)0h#Y#MD@v%+GgSFapX7u~g(FOahl z`O#!~4==C`RZ{igdOR^Y#wF*nlLo;eA#-E~>5i>LEer;VZyRMeZ0qQzN%-ErI$Y)CR?I@9?H zSHaHN8bD0jtNxDEXsWND=Tc*-?=~ME&qE9oI zvJ|SeS>+EjmaBK{=+wcSdJLLm3+VZ=()#!b88Uwy8y7d~hl=$D$WiHAa{?ld9%}rz zTf1f``y%VS8LxIT$O=7f36yJ16`Z*D71Jt`(B2**e+6pc-lkF2LF4%*V$uoiT&Y$; zc&5hk@tDW#9V0y;DJ zH@8(OOcA@MC$+c8#Rt7>4^;*wJ1yZ}B-zhBAJ%t@L+!Slm`}p^7%Q=%F`s}I{S~@? z2RqtU0hZRucL%`F!&k@MAA>qEtztS8uW6q-z@R==Z7UFKbE4|~4ZDbgE|Beni6>?; zU@e!%Z}_CD*4dg|^OEIxe=*Npw#+-7_!>n1Ejn5_2#$`g?Cjy&$x>6#l2i{$_aU!)qy2sLT(I`n?`bHh%-2r1t?3JtgLop?a8X$JjwieVD|gz;>Y$y7({)OoKwH!qhn6D1tuO#@Aozt`humVNG(RsdEfuOEXE@2J{Q7E1>wK_R zQ(tu9vrFn9-hMgVxAZT&(?JM@!u;?Kwns=<5Do%GVx;_2u-?^mo~sC7ZYdwjSM%}b zxT&@hp<1wcrA;fpQg$LoZu4ea9)6)u+OKL!Y~}^D_tZ&)^|XWpZCB|R$jvm5Zntt$ z@Yua1Ka_V_32%Sv#kr%vY66tRQS`4f^o%CNrDEtHB8)O#6k>A-M^cUbyFrqyV$#!6a@HkPi-t6&j$Io8f&wr#}JMbmwRv;zz0UXzEtoxV(6 zwgN9GCE-c~R$)ULD}(=c@=_9+^glgdo4e$zDHK3P=GJ!}GX(+i4W-_1K;9dbbj0th zutH^M9f)atW8nd>&x9foSqFV>r-hsPPvEdV-(Y@qpKMws`M^2uWhV1|#Mhgs|vgjC{_iE+J3OAF*)2mbU zIy^aYd=pZ^dpF06G&NUZxBour{47(ZGw+ucmF47<(l7R#dD+{-f}#8 zzFLr;QCPe#bI5Rsj+SykQ+t+Bb?@{Ku-}G&J^yZ-^95Cvd_EV_Eh}PwD)Fs77(iyeaw}olfc@Wb_D=|)XJs)v`o&}~ z`Scv#u3L?1`{MQeg)jTnx=>3^{SmF4cUVZnYJyIG^D!nFZ338rxqaU*QcrI8&9on1 z+1LD1VAymO6bskpuqq9ms@TGfd@1Mv(cN({z+8Tp*ZQ1<4f-(mGn75l3%NI8L1XZnZ0AC7F>UnuYvuiWeR+sSW#~D`&A`qg-bk z7UXFKg*N3LUS^T|n!#s(^+^n!gjq{SL-{*0JMD_HP*dJ_1@cwWmYD)}-*n9E`h_}k zDP-c7wp?w6)ZMb3+})BEAZR(XZZZ78u`MzLjhtkKcJNPy+k<&k=kS$7yb{FHc`HZU1wBAbCl;L|I8D)gI>#7MG=e!;ieXt-FdCe&sT9FQ35B#dd$ z7a~HN8;Q-(Hqfa6bVaBQZ~xo*{?Gwx#DbXLPogiG?~QJ{Egy<#kelQV%UklyaY!aF z%Fp+%n@2Iqde}6!zX9+Wm797i7}bV<|LriEb-t5AI=zu6Clgms=yz1?V)5y~=JA6t zn_xN|`hA0Ey_cD;sQ8va84VR|^5S~zQ`hnHlG8oi24u&c;joeAOV%Zt!x_Y9bY}L! z&jI-j^^IeyUYF;i-nY5UhXg&JO(oxjF)A_4ZURkFc26U!@VK8#M($YD;Z_7;B>T0D zsk*ZAG04?b33!|ajW&NPPw&LFygBh)Q8Ypu zRx)Cuq$qy{A&wX+U%Je8Zc%Bc-NT-IM14lM-zE9wI2&k6=!;+X;mHU?I)VqH^3!CI*kSIW#3{lQztRNp_66P zY1QL~<@JU<3DK%&Lr3Th+5Wh7z+sB z9cc!DDSj+dW9aj2EWY6xI+godetuZvds&%7^u{Y8A-8re9%&BzJdKeacG`;uTpALKdx>!H@H*8v~%FkyC8p^QY zKwj~Sr{a_8;70C&R>MmX0uF#xiqyrBp4m6B?-8J$(n89>mkI&%o!nmOyst`MHw%3P zv`N|H=j{Eszh9Z|pD4b9!cHYV2#W$r2TK(7EoOgq(1Br2H^rc(uR_9m@otFKKpvi` zQ_Zd7@atri<}~$11G$YiklvJ((f-&b4k^@ry&!T4enJ0oR+ZgrA==|#$A=_DXQW)7 zr;*v)p8AZ?G9EjN&w2J5%4&d~%>}sq3aW=&lGi+I1~E4%C1MX_;UrMXY2dLoY}P&y zeqX^TnkjKyPcOTvzfjilO8cYA$0t|jHV3pZ`C~`(wAoA^hl)!{nlQ{BP&ib)9Ybk6 zL34`|@eqYv9y7AqZKp!sCWrplTTg)mO3=6RSw z_p){o7J4=Qjm?em+f$zPYF@Dc0gD{}Tq!WgB?M10G>nJcv}Hfk5PndHsF&XAEI918@^UmEvIqGI%MWCID-N!$ ziW=?2+AVrS5f;z)MbU=c%jQ`T8fvZ|&Qck~VjfHsl*XR6TCQI%FHt3{o)nVY?yE})CGdt7)$-t|6XZ?FJKk4OKqz>x4y?IGo}6F%3r25XD9BUJ7po0VuTXq zCVm^8+U+A=-+Y-gsqcev#cA9J)?QBfX$C{W!^ev*g$JsA%z4sZX*|3&JZsHSy5Rt} zx5SN>-Gc_}I`T6gwa)Qb(Y*16xqj2=pFe-hzW}IG0T!L77F%U;E*ZP^l4!qDE~CA= zJcsO2Fu&tjCcuwe!L09tmLhpphpC>~H`_7u*sbdI%&*6>i%G3sYL{|I zz~dZ_%T@~;>_nX7E|{ss#n!NW6?lDEq}5Pfy*GEh88|I*{ZeJpBf+;f@|z2RP6Irp zHVf|fwXC}TXL2%bXE=>!fiC7G?ur?6R!3%^_UiWitjcC7opb3e>Pa?Glsqx-E^Ngc zzV#!=&$Tw9y*o3JTXw%LOtj7U%u#;5gX)kW>Gxl4$d8UFB1Q>VY>5bbV!7ia6*IE$ zaF9>etGajI7$^pX@1WWld@oO6%=XHEdPCijT00%+cqUhH*I_?cUfrmelIECHJ;yVp z_rzvLYzP|bG}`(WtCdhM0)o*9_uGBa<@<$$EerqfI0`uuXJ|{T6}#7mQvmGIqb7RE_gxB@%OYI&Ce@WG+gZD&6 zPtz5QJ23yYSFgT+tl{-7L5erqfAHkOW(N=h?Lh)M*0t>FS@zL0o$3vNjFc=>j;5B1 zvY%pkMA#Q3x#kaAqDbKA^T`(FHd-iZV#A=H<7SphVQ=KGO{5`r=aVL(lS3PwDbOC* z4x;(?ohkYUclwm&BBouP`g;E1f4MOJy3f;Q5t}}k%=Qu%k?!&;#N1nq?F#tCYTbRs z*&_*M{NfQtK7UF~^Cjb1R5&Nx$U`tv4t64h#hAr%x9qwmRP+<7u3W>e#f)R@x{FPw z440J#);^_-L;&Ff`rgTH+hlc`7nFhkfGL&VM5txf0N20eq+oo&?;ovz`iF@VJAa6Q_&f*z#t^Tb23h)&x>gL_hcZ&<2%>AF=F$X+K{0Ik|jBsFjA>C40+<5 zYHt%Pf`i?O%@&VVi`jBVK-@!`icS2NJb$11)$}|&04pqfRT46%L`w~%jf#We6ldN< zpj*TM&s6{N;_tlXU{zspg3Z7PygDrYaj8zgOP<*;H9AJjlXgc*NVjEnnYYBg&QCY* znWtQ*AstAFm1!~McicnKthLP=_s5=N`3|9k4yG^AhNv_O%mA9LrXvmKtr3jZAMiL% zC9y}=l)7!6y}z!4UkCt2*W1>N+v7zF?eALM5b!mu$0?zc^-itrAE>4<58qztgbIz; z6!+@`syKkXU6yb;n2I@BZY?Q>FG$zs5k))u$ZohWsQ|9eHJQ5$40ex z0;mk>qvU_TSyZjfV*$N4J*d{kT!n~9_-a^hxlWFcWq?rk#A~i$A?yVW`=j=S8X#oT zmj{#1ph~_!krc3h7aq@%Nc!w`cjl`eJemm4b+l5WX32bYj%F;~NI~;qO|0%YQMeaK zeNO`C(zU^zMHsL2sag zA4le-glC4565L6O9>44|8Q61_)-*Ii@Gg*`$YabBiSBzG#i(oQsk`z$fuquOU!{+B zTa&t*CD&!Ow?@?(5yM{bLLlA*&AKQ%Zt>0E)}el-a%*8^9$^4O=o?{i+_a|y9*uN!|Y)8D0OcBeEB!a@dZ>7`6e$b8f6FW+3F7=vZ zNnZE#ArlHH1$@Plj_(Q}>o3=({c4~5R{?8;3;W0S4Z}_%#)(_PT5#FwJOVPIx^{7@ z%eO<45S@UX4&tvSW*~y2snMgJwp?DgTGSyS(`_VIl%a`8C(`er41C_ z6Mea1GzraFKQxWB8GZQw^55wV(n;mY#g1krVg_|_tF+-ynqlEL+HVHmnlf;d>lOgI zcti(~`aG@n$7oMu&50nJGdn1z?0W#)9%EB4*vgL zW@M7Hhii+0G@1h5$40x&BBLTjc8P2ow8aLS_F-=K{0I8d-Sx*9*>`q8BPgbKJ1xd~ z>FSkG>!EDW+X0T>K}y}$6ckgMty{dE#i(pv(O@x|@Q2$hOR4D#-4*^)PJ3M<3@FS_ z+g}y`ihsug!ji(T->Rss`a|5F@VJxF!>opqV)8^7|5>T;qrl$ld6oUq>sk z(U5?W0D0b1rPlbCL1v-a6zQ@vghSQ2#a-W0JqJi3mw&vUzR`jQkXUoNxXl(gcC8u9 ziMZf}v!TmW4ju;c!>)HX|Ipet)hFaCL=@$)kBv%vbGQ)NnA+ex2O!lHTP z<^4SYEGlzuOTK5Co0UrxN=We=KziXz3b4At9{;1S?m+$v!o7tN6A}kNxFa~6ie{fo zEG2@mlf~2RPa_|{eM^oFWa*77ot6PV@8rn1{L$`zo|ljsThA{QP*W$cJnOkwYrtZ@ zNqO}TJoc0=$_dIE9QnF^KQ%Zt%usYaA;FCE+dup^-8;Km77KeGu|^_){@CmNkI0CM z$-lZ@RyB;2@!qx{Qo~GYyNiw&G1&VC3M#5Hu;gk!sNblGbF8oJ%q|<1NqsO>bO_1!%J7~>ZONXn z_{#DUxX!qsrpaqpHqG>MN2U#H^9Zi$ifLb1eEVkr_O&ytkmlZ4)^I_!)GW5OsgAbn zK-x(d7F|8{rr1R|&P%i#z+L?@iW6lFQgXeA%0Ub>tWK zsnZTBj^L)wvJ|9aw&$s1v>II?n$-_0vgAteqc<|LBMHNJZq88QtLd0td6Y<(Z1IeU zJ_n}jcs?!F`GB%pU@R^uvQAs5e)53Fnf`sJFZ7pnMRs-l^LiH&*G8aN1m^ttzb)=9 zISSB{STjAX{SmonzL<>!^lxp6_zS)r71Ein^#hLE=U}2_y%crKBAyxlM;u0<}^?u?iKic|oo9!oL+!jBg2t!<9j|TqOau^1DD7a6&XI zocox}aQbSLcp@ZPX6SUVlnkiWic>!I@wa*)%y!W9&zyc=`8F?8ib!=%7RChZ{Oi~9 z`JCWiAI(pq&=*62@bpgc07YAs=BWYk7aOD<#31T3T6H?W6s{G+0r72**G6QsfOnxsi~@($HK zeto&6VVdSzpm{|KkIXSX@Ar=B?gGJn9Tie<%JY1tX~Num|MQ3L;2;8KTaF*W^iVRu zeZ=C3kj`@u&6evFyFBj8*wf{Z<95I2i&%Z_+?#9?r!`j^*|-oiE=NgxHisYd#-BsH z_yLZ@;EwOXU-R1~ELwo&;HG^rU|O1I`r1?eO?n=CN&2$F=%RwTFg|-n z@oHF62+PCa%r9RTPLEQh+ZryH|3uEA7Fjku-sYJ4XRMuD5Mz%r$+bOS(rI+v$qc*u zJ=>m%L_;|E^p(v}p@exH@pci^DZG;_!?5Rz5)%0|VUqmz*7We&WrAdrOn;fl-W9<_ zr@KFqFd;gIXJmPs9niRul~G!sCPY^kRKhCjwq55x7%rP_PB&aU0aEO{>(Tx3FuAEb zsgL%-__5CEUeZ31O$>(w`)R@U1xO5=^&s{PPwDO7bWX@OlA>;t8VALX@+NDmdx zTfQ9)B$-&UO#)ik^v}G&gHeEVyx32>?Eae`msY-#sEV^6{|d$`j$AGa2n8RY24_ZL zD{$DX2rJ|~G-mEf0sqXcHkKNE0N&v2^3LiU_#1!qhhL7s4G=1K$>3Kmh+M^bGu3H% zeZUq>H@GjEdZsYfqzh=NsGGWXoTJ5KQim)P8Dvqf}Zg zI@6%yX)(wnGdR|RIioI<=(Mb-BS-5bXr&rnniF`ffMEwvImMR;H)hc*#(xgMUIrI5 zMbeudlZr;vS!jv&7t;}*uC~jO`5#gt4W~2^QBY6-${e6cS6K&!%Oh2AzIymBz$8#o ztF^Tp$PzeNd=LQMD!;qk42{6YQgjNPTjD@i)L+Mr--b!;iZjy2KKXG$EegB;ogkv0sW
+`8=Je!+3-7JNsVJ=UZ<8?I7ktU~0tnJqN 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≠m(x*|C(@x@V0jivn{7jalhFMD`S!gl5w)OCIp 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 A7ytkO literal 384891 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%0D!*u((=9A+_R3*og)a?>d9o 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

o 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 Yt(mg)<{9 diff --git a/docs/tutorials/azure/getting-started-azure.md b/docs/tutorials/azure/getting-started-azure.md index 5dead442d7..3fabdcc3a5 100644 --- a/docs/tutorials/azure/getting-started-azure.md +++ b/docs/tutorials/azure/getting-started-azure.md @@ -111,7 +111,7 @@ Assign the following Microsoft Graph permissions: - `Policy.Read.All` - `UserAuthenticationMethod.Read.All` - ![Permission Screenshots](./img/directory-permission.png) + ![Permission Screenshots](./img/domain-permission.png) 4. Click `Add permissions`, then grant admin consent diff --git a/docs/tutorials/azure/img/directory-permission.png b/docs/tutorials/azure/img/directory-permission.png deleted file mode 100644 index 34dc81abeb513abea2bbfd0078fba5b0f811cca9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84098 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%0DrkGsXm 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 Lb+UPO%s1svIrB`Y;GEDqrOD%NFeDlFWKBEVM? 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 BV$A>m literal 0 HcmV?d00001 diff --git a/docs/tutorials/microsoft365/getting-started-m365.md b/docs/tutorials/microsoft365/getting-started-m365.md index 5e0364faaf..2fde79fe84 100644 --- a/docs/tutorials/microsoft365/getting-started-m365.md +++ b/docs/tutorials/microsoft365/getting-started-m365.md @@ -95,11 +95,10 @@ With this done you will have all the needed keys, summarized in the following ta ### Grant required API permissions Assign the following Microsoft Graph permissions: - +- `AuditLog.Read.All`: Required for Entra service. - `Domain.Read.All`: Required for all services. - `Policy.Read.All`: Required for all services. - `SharePointTenantSettings.Read.All`: Required for SharePoint service. -- `AuditLog.Read.All`: Required for Entra service. - `User.Read` (IMPORTANT: this is set as **delegated**): Required for the sign-in. Follow these steps to assign the permissions: @@ -113,11 +112,11 @@ Follow these steps to assign the permissions: ![Add API Permission](./img/add-app-api-permission.png) 3. Search and select every permission below and once all are selected click on `Add permissions`: - + - `AuditLog.Read.All`: Required for Entra service. - `Domain.Read.All` - `Policy.Read.All` - `SharePointTenantSettings.Read.All` - - `AuditLog.Read.All`: Required for Entra service. + ![Permission Screenshots](./img/directory-permission.png) diff --git a/docs/tutorials/microsoft365/img/grant-admin-consent-delegated.png b/docs/tutorials/microsoft365/img/grant-admin-consent-delegated.png index aa2e96ce70ec046765fdbdd9a6f904f69192c51e..d87903e271c569ef325463464a8a41a3a5e929f9 100644 GIT binary patch literal 463701 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

xfi2Px}{dsmYeH9^du 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

1{KFzaAWfK&eea0es9kXQ3lsWJU6kG! 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

y+-w5+Duq2If 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�vpB!Z;d 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 z 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

BwQPRgM%cyr$%7x%sjzsU{ACxwtFM=H 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%0DJfJ2s1efVm?Xd37v^+UdAP?%aW96YjzXCR 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,za7+b@rqlw=Ol4gMSYW~?2j0k9wE0}sAU*4_ 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%0A-iF(6E>Go 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

jCE2+5tWus`lby>W2f`{_Jx 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�}N#e1Ai>%1x$)s5Iu; z`SpQhnJ3Mn&bM)%d?e3WFE2;+ZjcGD=zYI8YkcER^@goWWHLRnRH4Ryx}}4wrR>@+ zzsMvigL&HsglumxxAAE(s((V_gRz-Zsl>7g4!P!PhPX7spDIxzK7$ej#Zp!mKc;H@ z%u2~tW!(euoKz0tr@Q0(wsEC0ly8ISsu0y$fQRg|$c8?Kt=;+-t2dFtj#}r(LCf9K z8;EXvJ!hp%dsrn}q5lTa(y67=8@8_%Hd4&Wk&5ow+h!Ooyiu}6(}*!hFuNWY?!)Py zzfQD}tM-bpHJlo>AmcTx5*{tM+Kz7;LZao~iU#Fr15_cQ4?=sl0cy+o3rA^QV)cv8iuA=xWlf z>UgRPT)z)i31jx;di2PM`6lLPG(E=L8b&IB8A%eDAQO@^97%v<8TWadXM7LWZ6T*L z>9Lr>=?uzw6A*E(3wRwy)#1;6Q0-PJ4gE^$ri_T!7ix{D?xSdjvi802o&; znAe^=D^$J-;wL~Ve7B-S`qwXREQeu#4%roq(HVvHoXyxUEm3m-Mn)(YYL;_JFA{;P*80}%dxv`1U#W!((51&#>{gp)WZL6 ztLQ$_PK-6SG+)hH^c9P}rgEJ#eMYH!*yQ(#2PI5!YZ)&mN4=fg;DSB%Ru4MD(m|PG zv#ZOTciNA-X0a6Z0QFX6-0~%@T;P(4vPMCR_$7_U!A6a7J;FL!lskPbsIE{`%_VC< z@2+t$RR694ihMDKz%|(QWk&s0K3qP`z_eHRMnF+tB`x0SU$D#f>Sa#|F@S zX*Y~w&I85k&%ENf_BL=>HOo{Bj&s6pw`cF6xNJ51cNpgTty)mClbayf*;|r5#k;OnpkFNH+~W~LY%bS|t|zF19l{C*RMASh2lc4TDoml($~8Bq1O9aw(g{+#uMKEw zb~E{7rR|rp;bw0v!b(~>(HKoSqwzE{)?mjgjC0x_pTBx$Oh@}^BCkL0tE^(FhO9yf%{mfcjyEufemF8Ik#0z~jrPBYg}J{ZQ03rF1{ z@whZuJLtY%FXlpWt$(;ZXUDiv3SrN>k-QUgGHZqQA0Ew&AEt|eUeTQ^-6AqYx9EgL zn?XTeHC}2Qx{=FJA9ag%f4Xc9?Qg`c`g z@v87WyNzaBzpIs5-0^8l_wt(ysDe#j4CP$`W?P@ z`-RzpV)FRyNDjiruZo;#wxH4{U>H|)Gj)`@YPMIZFYNQ4>dxMh!QDqd7PXojV+f$) zDPGf%ZJ}q6YRuGHWIRI0P*|D-a0$=o7`3rFpJjHz@franRlE)uy@;RLw`}H2!M4B!HbK$9yu zWPF>}P+M2|{^{6VEszG`9e2v_#m9vD7gE>cLk@uQnEYn{ zbr4Pgoo&Jj*@*Iz#av@fo5aJ}R)X$@cLtx zlV?`VAA7eipNmZ>!k)NXlYcilNcD!Ks{O_b$EyDl4?Bd)^*Uj2gSDydW2(R@`y}Yh z_Zt_wBxATXB)&ct`H8YpIS0@>6XZD#syQy1AGdWlo8vE+nM%aX?w&ENFz;?NoUNPe zn%$e2thJ6mEwV~DCvd_2jfmC1!MVF#S?gDAHbMOz@O%wjEvL$}aNJ_I88s0SxChGI z7B~yOojC~8e?WL7!_H1)q-QB`I|O%H@iZlmHWp62akfI(b6pv02AZ~=xh@+Px`sI$ z6Wcl7S+=IVd#Qx1y`BeQb~+RN1V!(Ek}sXFeoLiVIke4k>2>4|fH?|>Wr$p6uN@NB zTUadi12x> z8}ACeQ<8oAI{7tfGQN1YF0~|%x3=v$fMMle!?*?e)q5we*5i}~o{UC7akkwB72)L? z#lGVWqN?9kpXEo#&d1kn<@chz6k9Kd193b>uPonm{W$`4{FINr+iu7wjmdbCz1vQV z@Enz}T>hl&+EL1(Tnzm96prB? zht%&8zqTqAwlQe4WQ55>Yk=XCK8tjnW{fmxa9%MC$DslxW};e7DrYF&Pe_+f-seT{ z-m-lG^4oK!>uTY_jK@g9(<=Q<-O|bC)bN&KaL*hmH*X6HcKgh)n{r(9w})M44V)r! z9A9drr1UM9FwPCYYQ(&z?}THGAj{2F0W3w^86MQ!WBrNZA~fFsmR-chbNz`Pn&K3Y zeSQ3w%W>k@Gq41@@uJ)WG%8xjgVf(Y9Dh8gTU!538(#$F)aga7A;m{ViTCUP?j}kO zju5&fzQw{p6Y=>30@S8qgpU1RVU~YwboVs;Tam!T<7)N5St{^lTTvRLtmPnj-PSOM(YeW zs(bXKM$E6K{SrLnWfc`plHnu=9Jd*0A;t9Y&OWPKwUll&ZxE`Dyu1lV74nhY7X86Q zI<>?^Ig7YA5ZA{rTr{#%G*`!E!oL~cwcS%5x<*sI+b}=&N!U|@Un$w&&9Oq^ECmi| z=5DY7*&Ar-2x>`OCO*zpxm3)pNe<0)*B>wJS(!S#6Y?C2;?DEIxdWSrb2LFyd?3{? zr#Fvao;xgCzomQK8 zSZ?YnZPSXDjD(vpotlgbU>C?vu?K8@(N%Fhu4zVL8y65pq*< zx;>Uk!d=FJ`#acbQCVCop5qQ`PwCkaTPBkw4j#bYa0T$bp8x?2$;zM=se=`XB)*N( z<;uu6y7`%x1kAVV6{#?;WJH>h{740Y^Z*2opv6l2zMhDsOnwhdvIhT60|W^Em8B)G zUIQh4!m0^dmktZkG6M-?sXQE~dSNmknnS`&K6)o0tr`4zSQIlBZcTNnva03ma#ni> za1Psy#Jl%W5{{z7N@6rb_l3QHn9W}fZaJwh^=#g0ywIpB9r%j*D#1Z@)ubBvs0INd z)|z1uZFc7v`vrr5*~DN7oE7^IXGQv+c(JH}oZD90Zn_E_`c#^VXj_)8fu% z>~6T!*CwHjz|o1%ZP-&RvzzlODiXRdq*H|&!<}4=Pu0di)wt#CyqWX=k@nSLRc-6u zih>~0NS8=Sihv;9ozmUi-5}i|-QC?C($d|fba&@B*yrqf&pEgDz286hAZx8T=9puR zcz@M$!I-SCV0OGtNzzJ?RUx6U6+q|RaT2u{@A=vs#eI$&i5Gh=UhBR85Nkb9jwzsI zWF$kpM31sd5v5R{h}S(dTe~$asL64;Ao8Wd7Pv-A3Gb80Zrov`cGY?%p8?V z8$`bW{lD1BDG~bf?yEw#xp+d<#%O9>f!Hri&}5z{L|PeByjfQ`k`_C zVi#@t_|IRc&Bc=L){qs(D)IWlxb2I+%U#6E3H2(ju|Nc|8}YBykbfocw0@i)Z>nKE z$6s6BPWU*ixqK-fZg64UG(pQ3d0~AuucoK!81UY?W@iSq@i!!#njo8)U-|nwcCXXj zma{6z0Eg!*YdK=cM(6Iy3e1IGRi2$=UgtZ^r_3UH76al}o_fb9~86`F@O+ zs2$0A&jQ(4BJuMeIYLqI9ByAmzp?KwExao%gMQngfy$cYlq|S zFNXYf2NTC*K3gJ83{~N6?57l#Vge!*tBtCqn}S;Tqubc#_u{7&@rOLb6>gq;;jX1a zhi@xRWa8A^@%*Tv=+rR##-Y-_-`%@ze+75cfD##D@(8f1Vt8j|fCNId0w^l7E^k?0pBY{v_#Y=_bff@}WX{Kj9hI`Etst*;W!29M6iGN6ST;E3 ztpWRnwpfh>QbD^_=N!(=IJ?dmMQMrR%P+*9r(hnKs^>CniZ^u$#4)Dhu^Wxqp3&3z zu%6LHxaz_Ws1vZUpLE}0UsP+L4d*vBZAn0Pl;0~V_Ruj}XXQZpfWlnzB1t>7TIf`yw3k@ioeNY(_=E4QY>TS9Lt+aR#x#}5 z*_{ZzMz^DIB0c#%zyOso;N8@md>S5Yrl^)Hl0!#A-`jh3+MY0dBn~=Ray_GtK5$Uj zKfL_{Yk9u7@SE;3-=NT|&-}Jd6qT)@kg8Z$KVpv$9LB7wjW@*2U`3$Q&+XvS;-2U5X*uVxv^?QTV6( z%_H2Kn#w{6Q_RTkT6|#!>$(SNR3jvMEKt+@k?88bYwXS6uPNsD(9TsIqD_+HrGgZ} z^6k@IN37N(HbYwk$rd9 z49G$q_$@9$O3@-kL%I)zqnC9?iB>)^I0oes>Y>lSBy7fkq=K2JoHTs;2eA4m=JW+1a`Opl~p3Q#WXaGV?XH47{kiDl- zDc625S1a(Ya6M|7I~=V<2Pp``0`~I>n+jzXNZEqlxqX23PN+lgYry(_U2U{DC#>DA z{x}U42#7(ifo24`yqfH$z`=57u`%o|M_n>;5c>E}srTEzo=-Oq;I)DP*a;8-+dr?v ztlLKuMdfTq@rFgO+3#<(UKt+*%ujI&D!i7fU6~;NqcNKn!J$1O5S2Qs36KQEu1`1R zZxfDLgd)ervik>!rXFI|UBoF1vVe8LS72R0^|)F66o@caW%=GUijI`QWX9iNOdj`i zt(yF6J8!^N?ed0#X&9(hh+Se=Nr9BtA|~eI3r-ffA_bxIUVo$)J(5qm zKjYjX)vbB+*2&z88p=9Cwb!u@v!wl{K&2oPdjCm($mH6`j+Dq1YV#)NY`P%Tv0-Y! zawRu4S27gmOA%qh(=qq{)tfY$ma8%0Li?E$Dh87gPTYs)d;CBw2J-R|5B59tUye2^ z67$rmjbDMtS+?vzdD&e(l-Xtvg9wJkL)?*LDD$pIB961(YQ1Jfg@R@MMCeWK@WtiVOvjEns7^$qX+jrrvz=oR%6Fhf1ou6rU02b$Iw6Ax| ztS7c$0ydr)=lk=+uaBb-0bnhG%VJkCww+wK(8_MNrM~QbncQ&EO0AjzOi|J^U(Htd z@B!g$_Q`T*>kF;!V7?AtxJ;xDKS<}{Vuf@F;IR=+E>k23{;fPw0|RQZ5St0l(;m28 zOq#zrQ~cYC*ZsI1Tv|SO($nHD@wqc?ibToo`s_~ar||NojaE!6y=45j)_i`w)sGJ+fPPK76yH4ynOK!+zXnRpta1`xIpiWhl}b@zT42>w+AyL_~Lu z?2W*W`a1UDX4C5dFB#w$c@L4BpF3$&llO(o4+lHgdC%7w(gFSV*`ojJs{8)9HilGYKp%<%Y+i~gfy;wVG^|PU zz4d_mx{NL6Xqy>nYv)_38YxwpaKH4=sCJRodOb*D#tR>7K}9L=hx0kN z;4c6G_NnOB3NzI3S@p#-4KHLusgq{is5iDot!673z6qMrE4qn2;BYBA z@yDbhq}q%0MeYm`WeHoz{*(+)@%Y+jRce3{Lfv~_BJQv`E{e+3X1y3P07W@BZ6RKJ zCUfj8T0Vc(n~v))nRQQ#nMzP}IHS&yGPIJ#zlVU3&c}pVT(HZU8Mj81gUeqS>|=V@9MPcZC#PB)<&M z!{xS8y&@N+=gTfYlz8|8gWP)P6!pOFkSOeiDpSapJy#IB~4|6HaoEa}& zRp3x^R$}EVfMk^|2b1xg@N>@_&2E6xlNzFg`_f7pGCulH8%+T=DV+qDQ_&R}&zruO zAqKZPJ_oDtPnM|UDWso$s!~^OI&EKXiaonsqt~p7|LDegjNZt;$q0yGX#6_WD~X=3 zrSJ6l94c0cYUsN7b3P8IOrg3`Dm8gW5L;J=L~_0~WQ&H;g7U}OgW$fsKBHZ!F`12+ z35>q@8X1s3o}~v8c5k9dpAvRc)Bz%?*F1l+_EFh{Q2LF2^32TdY-X}e0ete*CCVc2 zAIRcCk{^Fx-{QNIaon~7DFB&fHtF{$wuf={slTgqnpJ7kEyb;oTL5B3@9pE3lh}b$ zv+n@0EdPX!2q%6nPPp^^u^Ib8x+n|rn_h2{4*|*S#pP$>I@^^s=GQhxN6)12@J*s-jdAF?VSE*tIco2y2GrSw_r*=d8060EL;<{gwNX8U2m1R zNg~rra%+ptXsm-d@j2Bkto#`R`8u@u!|Y)B?|=o1y2kLqTF-(;p>&i zL(^p4iYR)RIVO&TghwZaIg) z?ZR)7(^>-PoK5`Rr6wKK1;~!#xmgX=z0*1a<#7`A!}^B9dB}jDAc=ARiLu3)PSVMS zDB$VA^i==k6oe_u*0^DkFpDk%CMq&j25EI|10rFXIjOm>;MBrovYx;(bRz|$J3x=v z^{XQi%ti4_Ptv9z6#QxZ3&=Ld-7uxqH9^R)sEWn?hRn|sy5EQ*QefJWZ&UBlb==QR zvxxKPK7y~PBU(riT2XPS33p~BD%v_ifmKwY8liXOjy-%EK{o@M87Kqa#!%}{#IRb#>$JDrM5DqiHZ4XhPADG2iP ze|f{G`eN`0Teva>2<8}s7CTpNxq1ec(tU)qo*N#YiX=F`ySA1&ijQ&Ctq>Yre;4GhdCF{^z;|CFA-h6Py=n!Lkt-9u=8(iIi+<2r-8-HOnuk}UQdp>rb zFDsmy#zgOK9C`ZFm|lxhuO4OgZXsQ)iQ65M0XbS&!AT~()2v44iEX{Qb?*ircB!Ic zI*o(1`$3ao7n|Khit+?dbtr45t5#f3E&d=*WZbhmz-RgrV+7?D^Ik$xchnX2zNhy~ zHPXs#tjUz&dBuoA0)`00s!R1P{&btsZk0}D>k|Xg0F9q+o0Zn0cOw)owQN+fOTq}+n; z7bQ)XHgod?Ld+m-a(z^>>-N`9x?NN1*}bZ)toYI;4y&s&S!(NTv}RG#zV%*BA)JZc z@lO>gV{BCJ%{p{9ev8}d{*r1BTFX=pxHO5y^HBYA+J@NX?##3?C}Z1YRq*c7hcyFw zr73K(b@f$?fo~~_=ySy(Lr<9{n)fHly#moAh!e{vko&x{9m-sWL$If9?VfL(2pdlq zmEW3`&Wkg57s;U@R2yD}~Enl3-$>&;?8GO*_ zi~3-MGrs?Z2Je<>)lLi zgWKyhGYQde2Sv@73X7ndys}$IV$09sOR4Le+s3j*ife!xiYwgYTDSOZDD794<~yuz zWAoKw`0?$sbHCE~CF#d8-IZ7my)%MaIz7?aovhn5HGa5O*QPJtnQ(g|pA!u&Xu8c| z*$y=N+nwkF_h6q0%`SvL@bMJ2VGdGL769{3hV_nre6^&uSel(wA_@AVySerr)<=zR z(lWip|1VVT|InMSN>cSQe-SQ%*acgA~j!5u3m5@t+omr^-z! z!E@*Uf}`HAy0wWGgS@nDh!DvQ4$E(>7N!Za2?ya7e*eVZ^l<2x-xLdX=tNu?R6kTC zy55pXi>o*u`C-lT!~f*h;SOAEop9_fQYi;qI$^u$?=<*nz`{9>@a9;%R#oso&~m>j2fL>eU0T}3yE1bOQ?{+Lu^x`e`+jL&5Y;pY*) z1o_Sff5~3aDaB(-XV5x;q*yfcEB7d-R{9N0*;X1R+B;NiFQ7P|6(^UV+${36Y$-xoRUt%XdbjL#Q$)3uRo+ji&D$Mo_|l$8cr4X!$6B zoT=Pz#Vd2fChPYjjl?04vKabx0$B+-JG^mEJid`L`30zV_BigrM=nBlq%v}?Ocg8d z39-FKcC1IEkPvlnw$fvLAfFFJOM-?(QYQl3JHHf3zQ=k;I!O$(7DTXD$nPSk!&Nit z)iMcuv|$#F$`ljhS^;YIV)~qKGP$G5_k`{8KtKdoHDHTuf+P!s!w-$C0v1^*Vq+TjC5A&vo$dol+&e2;09s2wqVsmkA2 z1IZ>4w4JPBAQASr6Q%FfXQH8Thr-h%A`G6oR!`oASo-(o+8NYdt)@O_N+11VXWA^XMX!|#Bh2#(dyvHItkUbIBm;X zx!3w|6Ex|z(L6Ek*bIYgn}EymP=2CA5jCe=^G97Y6(+8=5wLD7mq#xJT{@AmUP*bQ zRs6b4i^L$MzZOvfBUp_U!WCWaL?{Z{Qd96T{Bqpp_Hti(SW9UjyGPjM_jI!|!i5a@w z^AviVGPcG16nd;D_XOBpVT{S6t6*=tIOOjUn1(fQZuvRqk-i!&EV-?>*7xFl z0qf24YirFWImsbSlvyS9g)(dH9OjjhMD8d5R78i-r;{9?G3|$cL|WVZpB1?pBE9Wo zcMfZ$tR`^wzZRv{g6-(TX^%B&!TYH9z{jYGXzWV~>sf}DyZEynz4$cv{+>`GYbX3! zwA+k1Is|ht3+`60v(hu2T3=tmMUqBJ48kEcp18G`wn(qgRn@6wM0sUcR_hOvMNr>~ zI>jw!GH?=roW9(~uY(*%xe`zCFl+`+cdVU02?2t0e4pKpG)<ui=~P=l;3t-862XUMR2I2TpD_> zM~5o;Skx+%q9Gx^p6Tx28NSat2j6mxBIO+?7Ddc6BEhrGhND_IDRCyMB|0i1&oHz( z?kz)f8F9s(ioF2lA-bZh_OBT&;vD8~1i!|rIp58;N!!05z?o11kSXsECXO9*=3r9) zL!Ea>$2Dcq(#iNVUZ%thJ>^a>!jz}$L(4Qes-KSjdqY)o2Ixcy>ddSC7L8y-5m=;=&6_$N=?}v# z2)%?jj5_!mhbEB#$rb{Cu(Qe=rY%0j#pfroO40&=c3+4VCMXg4!nocBL7ftN_fDb0 zw=bu_Z!&bLx4cHSKUgrFgd>!0q-*VTPw?cGrqp{p!PE7$m0W~sfkqZ9KltH6O~C>t zgk0mUp}uX5$cu)B3mC`TtCYLDZMvVZGz}JRXXDDX5XJhtry5NY>y@y`U{_$XG?U

+ } + > + + + + ); +} + +const getComplianceData = async ( + complianceId: string, + scanId: string, + region?: string, +): Promise => { + const [attributesData, requirementsData] = await Promise.all([ + getComplianceAttributes(complianceId), + getComplianceRequirements({ + complianceId, + scanId, + region, + }), + ]); + + const mappedData = mapComplianceData(attributesData, requirementsData); + return mappedData; +}; + +const getTopFailedSections = ( + mappedData: MappedComplianceData, +): FailedSection[] => { + const failedSectionMap = new Map(); + + mappedData.forEach((framework) => { + framework.categories.forEach((category) => { + category.controls.forEach((control) => { + control.requirements.forEach((requirement) => { + if (requirement.status === "FAIL") { + const sectionName = category.name; + + if (!failedSectionMap.has(sectionName)) { + failedSectionMap.set(sectionName, { total: 0, types: {} }); + } + + const sectionData = failedSectionMap.get(sectionName); + sectionData.total += 1; + + const type = requirement.type; + sectionData.types[type] = (sectionData.types[type] || 0) + 1; + } + }); + }); + }); + }); + + // Convert in descending order and slice top 5 + return Array.from(failedSectionMap.entries()) + .map(([name, data]) => ({ name, ...data })) + .sort((a, b) => b.total - a.total) + .slice(0, 5); // Top 5 +}; + +const SSRComplianceContent = async ({ + complianceId, + scanId, + region, + logoPath, +}: { + complianceId: string; + scanId: string; + region?: string; + logoPath: string; +}) => { + if (!scanId) { + return ( +
+ + + + + +
+ ); + } + + const data = await getComplianceData(complianceId, scanId, region); + const totalRequirements: RequirementsTotals = data.reduce( + (acc, framework) => ({ + pass: acc.pass + framework.pass, + fail: acc.fail + framework.fail, + manual: acc.manual + framework.manual, + }), + { pass: 0, fail: 0, manual: 0 }, + ); + const topFailedSections = getTopFailedSections(data); + const accordionItems = toAccordionItems(data, scanId); + const defaultKeys = accordionItems.slice(0, 2).map((item) => item.key); + + return ( +
+ + + + + + + +
+ ); +}; diff --git a/ui/app/(prowler)/compliance/page.tsx b/ui/app/(prowler)/compliance/page.tsx index 56b6dc9d62..061af051d7 100644 --- a/ui/app/(prowler)/compliance/page.tsx +++ b/ui/app/(prowler)/compliance/page.tsx @@ -1,6 +1,4 @@ export const dynamic = "force-dynamic"; - -import { Spacer } from "@nextui-org/react"; import { Suspense } from "react"; import { getCompliancesOverview } from "@/actions/compliances"; @@ -12,11 +10,10 @@ import { ComplianceSkeletonGrid, NoScansAvailable, } from "@/components/compliance"; -import { DataCompliance } from "@/components/compliance/data-compliance"; -import { FilterControls } from "@/components/filters"; +import { ComplianceHeader } from "@/components/compliance/compliance-header/compliance-header"; import { ContentLayout } from "@/components/ui"; -import { DataTableFilterCustom } from "@/components/ui/table/data-table-filter-custom"; -import { ComplianceOverviewData, ScanProps, SearchParamsProps } from "@/types"; +import { ScanProps, SearchParamsProps } from "@/types"; +import { ComplianceOverviewData } from "@/types/compliance"; export default async function Compliance({ searchParams, @@ -84,21 +81,10 @@ export default async function Compliance({ {selectedScanId ? ( <> - - - - - - }> @@ -133,7 +119,11 @@ const SSRComplianceGrid = async ({ }); // Check if the response contains no data - if (!compliancesData || compliancesData?.data?.length === 0) { + if ( + !compliancesData || + !compliancesData.data || + compliancesData.data.length === 0 + ) { return (
@@ -155,25 +145,22 @@ const SSRComplianceGrid = async ({ return (
{compliancesData.data.map((compliance: ComplianceOverviewData) => { - const { attributes } = compliance; - const { - framework, - version, - requirements_status: { passed, total }, - compliance_id, - } = attributes; + const { attributes, id } = compliance; + const { framework, version, requirements_passed, total_requirements } = + attributes; return ( ); })} diff --git a/ui/app/(prowler)/findings/page.tsx b/ui/app/(prowler)/findings/page.tsx index e37902ac31..82bf6d6d18 100644 --- a/ui/app/(prowler)/findings/page.tsx +++ b/ui/app/(prowler)/findings/page.tsx @@ -27,7 +27,8 @@ import { createProviderDetailsMapping, extractProviderUIDs, } from "@/lib/provider-helpers"; -import { FindingProps, ScanProps, SearchParamsProps } from "@/types/components"; +import { ScanProps } from "@/types"; +import { FindingProps, SearchParamsProps } from "@/types/components"; export default async function Findings({ searchParams, @@ -124,6 +125,7 @@ export default async function Findings({ defaultOpen={true} /> + }> diff --git a/ui/app/(prowler)/profile/page.tsx b/ui/app/(prowler)/profile/page.tsx index 29d8a01e45..ff26a9db15 100644 --- a/ui/app/(prowler)/profile/page.tsx +++ b/ui/app/(prowler)/profile/page.tsx @@ -9,7 +9,7 @@ import { MembershipsCard } from "@/components/users/profile/memberships-card"; import { RolesCard } from "@/components/users/profile/roles-card"; import { SkeletonUserInfo } from "@/components/users/profile/skeleton-user-info"; import { isUserOwnerAndHasManageAccount } from "@/lib/permissions"; -import { RoleDetail, TenantDetailData } from "@/types/users/users"; +import { RoleDetail, TenantDetailData } from "@/types/users"; export default async function Profile() { return ( diff --git a/ui/components/compliance/compliance-accordion/client-accordion-content.tsx b/ui/components/compliance/compliance-accordion/client-accordion-content.tsx new file mode 100644 index 0000000000..06bb394fa0 --- /dev/null +++ b/ui/components/compliance/compliance-accordion/client-accordion-content.tsx @@ -0,0 +1,179 @@ +"use client"; + +import { useSearchParams } from "next/navigation"; +import { useEffect, useRef, useState } from "react"; + +import { getFindings } from "@/actions/findings/findings"; +import { + ColumnFindings, + SkeletonTableFindings, +} from "@/components/findings/table"; +import { Accordion } from "@/components/ui/accordion/Accordion"; +import { DataTable } from "@/components/ui/table"; +import { createDict } from "@/lib"; +import { ComplianceId, Requirement } from "@/types/compliance"; +import { FindingProps, FindingsResponse } from "@/types/components"; + +import { ComplianceCustomDetails } from "../compliance-custom-details/ens-details"; + +interface ClientAccordionContentProps { + requirement: Requirement; + scanId: string; +} + +export const ClientAccordionContent = ({ + requirement, + scanId, +}: ClientAccordionContentProps) => { + const [findings, setFindings] = useState(null); + const [expandedFindings, setExpandedFindings] = useState([]); + const searchParams = useSearchParams(); + const pageNumber = searchParams.get("page") || "1"; + const complianceId = searchParams.get("complianceId") as ComplianceId; + const defaultSort = "severity,status,-inserted_at"; + const sort = searchParams.get("sort") || defaultSort; + const loadedPageRef = useRef(null); + const loadedSortRef = useRef(null); + const isExpandedRef = useRef(false); + const region = searchParams.get("filter[region__in]") || ""; + + useEffect(() => { + async function loadFindings() { + if ( + requirement.check_ids?.length > 0 && + requirement.status !== "No findings" && + (loadedPageRef.current !== pageNumber || + loadedSortRef.current !== sort || + !isExpandedRef.current) + ) { + loadedPageRef.current = pageNumber; + loadedSortRef.current = sort; + isExpandedRef.current = true; + + try { + const checkIds = requirement.check_ids; + const encodedSort = sort.replace(/^\+/, ""); + const findingsData = await getFindings({ + filters: { + "filter[check_id__in]": checkIds.join(","), + "filter[scan]": scanId, + ...(region && { "filter[region__in]": region }), + }, + page: parseInt(pageNumber, 10), + sort: encodedSort, + }); + + setFindings(findingsData); + + if (findingsData?.data) { + // Create dictionaries for resources, scans, and providers + const resourceDict = createDict("resources", findingsData); + const scanDict = createDict("scans", findingsData); + const providerDict = createDict("providers", findingsData); + + // Expand each finding with its corresponding resource, scan, and provider + const expandedData = findingsData.data.map( + (finding: FindingProps) => { + const scan = scanDict[finding.relationships?.scan?.data?.id]; + const resource = + resourceDict[finding.relationships?.resources?.data?.[0]?.id]; + const provider = + providerDict[scan?.relationships?.provider?.data?.id]; + + return { + ...finding, + relationships: { scan, resource, provider }, + }; + }, + ); + setExpandedFindings(expandedData); + } + } catch (error) { + console.error("Error loading findings:", error); + } + } + } + + loadFindings(); + }, [requirement, scanId, pageNumber, sort, region]); + + const checks = requirement.check_ids || []; + const checksList = ( +
+ {checks.join(", ")} +
+ ); + + const accordionChecksItems = [ + { + key: "checks", + title: ( +
+ {checks.length} + {checks.length > 1 ? Checks : Check} +
+ ), + content: checksList, + }, + ]; + + const renderFindingsTable = () => { + if (findings === null && requirement.status !== "MANUAL") { + return ; + } + + if (findings?.data?.length && findings.data.length > 0) { + return ( +
+ index !== 4 && index !== 7, + )} + data={expandedFindings || []} + metadata={findings?.meta} + disableScroll={true} + /> +
+ ); + } + + return
There are no findings for this regions
; + }; + + const renderDetails = () => { + if (!complianceId) { + return null; + } + + switch (complianceId) { + case "ens_rd2022_aws": + return ( +
+ +
+ ); + default: + return null; + } + }; + + return ( +
+ {renderDetails()} + + {checks.length > 0 && ( +
+ +
+ )} + + {renderFindingsTable()} +
+ ); +}; diff --git a/ui/components/compliance/compliance-accordion/client-accordion-wrapper.tsx b/ui/components/compliance/compliance-accordion/client-accordion-wrapper.tsx new file mode 100644 index 0000000000..a47952612b --- /dev/null +++ b/ui/components/compliance/compliance-accordion/client-accordion-wrapper.tsx @@ -0,0 +1,79 @@ +"use client"; + +import { useState } from "react"; + +import { Accordion, AccordionItemProps } from "@/components/ui"; +import { CustomButton } from "@/components/ui/custom"; + +export const ClientAccordionWrapper = ({ + items, + defaultExpandedKeys, +}: { + items: AccordionItemProps[]; + defaultExpandedKeys: string[]; +}) => { + const [selectedKeys, setSelectedKeys] = + useState(defaultExpandedKeys); + const [isExpanded, setIsExpanded] = useState(false); + + // Function to get all keys except the last level (requirements) + const getAllKeysExceptLastLevel = (items: AccordionItemProps[]): string[] => { + const keys: string[] = []; + + const traverse = (items: AccordionItemProps[], level: number = 0) => { + items.forEach((item) => { + // Add current item key if it's not the last level + if (item.items && item.items.length > 0) { + keys.push(item.key); + // Check if the children have their own children (not the last level) + const hasGrandChildren = item.items.some( + (child) => child.items && child.items.length > 0, + ); + if (hasGrandChildren) { + traverse(item.items, level + 1); + } + } + }); + }; + + traverse(items); + return keys; + }; + + const handleToggleExpand = () => { + if (isExpanded) { + setSelectedKeys(defaultExpandedKeys); + } else { + const allKeys = getAllKeysExceptLastLevel(items); + setSelectedKeys(allKeys); + } + setIsExpanded(!isExpanded); + }; + + const handleSelectionChange = (keys: string[]) => { + setSelectedKeys(keys); + }; + + return ( +
+
+ + {isExpanded ? "Collapse all" : "Expand all"} + +
+ +
+ ); +}; diff --git a/ui/components/compliance/compliance-accordion/compliance-accordion-requeriment-title.tsx b/ui/components/compliance/compliance-accordion/compliance-accordion-requeriment-title.tsx new file mode 100644 index 0000000000..92f79e032d --- /dev/null +++ b/ui/components/compliance/compliance-accordion/compliance-accordion-requeriment-title.tsx @@ -0,0 +1,26 @@ +import { FindingStatus, StatusFindingBadge } from "@/components/ui/table"; +import { translateType } from "@/lib/compliance/ens"; + +interface ComplianceAccordionRequirementTitleProps { + type: string; + name: string; + status: FindingStatus; +} + +export const ComplianceAccordionRequirementTitle = ({ + type, + name, + status, +}: ComplianceAccordionRequirementTitleProps) => { + return ( +
+
+ + {translateType(type)}: + + {name} +
+ +
+ ); +}; diff --git a/ui/components/compliance/compliance-accordion/compliance-accordion-title.tsx b/ui/components/compliance/compliance-accordion/compliance-accordion-title.tsx new file mode 100644 index 0000000000..e458cef948 --- /dev/null +++ b/ui/components/compliance/compliance-accordion/compliance-accordion-title.tsx @@ -0,0 +1,135 @@ +import { Tooltip } from "@nextui-org/react"; + +interface ComplianceAccordionTitleProps { + label: string; + pass: number; + fail: number; + manual?: number; +} + +export const ComplianceAccordionTitle = ({ + label, + pass, + fail, + manual = 0, +}: ComplianceAccordionTitleProps) => { + const total = pass + fail + manual; + const passPercentage = (pass / total) * 100; + const failPercentage = (fail / total) * 100; + const manualPercentage = (manual / total) * 100; + + return ( +
+
+ + {label.charAt(0).toUpperCase() + label.slice(1)} + +
+
+
+ {total > 0 && ( + + Requirements: + + )} +
+ +
+ {total > 0 ? ( +
+ {pass > 0 && ( + +
Pass
+
+ {pass} ({passPercentage.toFixed(1)}%) +
+
+ } + size="sm" + placement="top" + delay={0} + closeDelay={0} + > +
0 ? "2px" : "0", + }} + /> + + )} + {fail > 0 && ( + +
Fail
+
+ {fail} ({failPercentage.toFixed(1)}%) +
+
+ } + size="sm" + placement="top" + delay={0} + closeDelay={0} + > +
0 ? "2px" : "0", + }} + /> + + )} + {manual > 0 && ( + +
Manual
+
+ {manual} ({manualPercentage.toFixed(1)}%) +
+
+ } + size="sm" + placement="top" + delay={0} + closeDelay={0} + > +
+ + )} +
+ ) : ( +
+ )} +
+ + +
Total requirements
+
{total}
+
+ } + size="sm" + placement="top" + > +
+ {total > 0 ? total : "—"} +
+ +
+
+ ); +}; diff --git a/ui/components/compliance/compliance-card.tsx b/ui/components/compliance/compliance-card.tsx index ff55421681..db7539401f 100644 --- a/ui/components/compliance/compliance-card.tsx +++ b/ui/components/compliance/compliance-card.tsx @@ -2,7 +2,7 @@ import { Card, CardBody, Progress } from "@nextui-org/react"; import Image from "next/image"; -import { useSearchParams } from "next/navigation"; +import { useRouter, useSearchParams } from "next/navigation"; import React, { useState } from "react"; import { DownloadIconButton, toast } from "@/components/ui"; @@ -19,6 +19,7 @@ interface ComplianceCardProps { prevTotalRequirements: number; scanId: string; complianceId: string; + id: string; } export const ComplianceCard: React.FC = ({ @@ -28,8 +29,10 @@ export const ComplianceCard: React.FC = ({ totalRequirements, scanId, complianceId, + id, }) => { const searchParams = useSearchParams(); + const router = useRouter(); const hasRegionFilter = searchParams.has("filter[region__in]"); const [isDownloading, setIsDownloading] = useState(false); @@ -68,6 +71,22 @@ export const ComplianceCard: React.FC = ({ return "success"; }; + const navigateToDetail = () => { + // We will unlock this while developing the rest of complainces. + if (!id.includes("ens") && !id.includes("cis")) { + return; + } + + const formattedTitleForUrl = encodeURIComponent(title); + const path = `/compliance/${formattedTitleForUrl}`; + const params = new URLSearchParams(); + + params.set("complianceId", id); + params.set("version", version); + params.set("scanId", scanId); + + router.push(`${path}?${params.toString()}`); + }; const handleDownload = async () => { setIsDownloading(true); try { @@ -78,7 +97,13 @@ export const ComplianceCard: React.FC = ({ }; return ( - +
{ + return ( +
+
+ {requirement.description} +
+
+
+ Level: + {requirement.nivel} +
+ {requirement.dimensiones && requirement.dimensiones.length > 0 && ( +
+ Dimensions: +
+ {requirement.dimensiones.map( + (dimension: string, index: number) => ( + + {dimension} + + ), + )} +
+
+ )} +
+
+ ); +}; diff --git a/ui/components/compliance/compliance-header/compliance-header.tsx b/ui/components/compliance/compliance-header/compliance-header.tsx new file mode 100644 index 0000000000..9e31f4de5d --- /dev/null +++ b/ui/components/compliance/compliance-header/compliance-header.tsx @@ -0,0 +1,47 @@ +"use client"; + +import { Spacer } from "@nextui-org/react"; + +import { FilterControls } from "@/components/filters"; +import { DataTableFilterCustom } from "@/components/ui/table/data-table-filter-custom"; + +import { DataCompliance } from "./data-compliance"; +import { SelectScanComplianceDataProps } from "./select-scan-compliance-data"; + +interface ComplianceHeaderProps { + scans: SelectScanComplianceDataProps["scans"]; + uniqueRegions: string[]; + showSearch?: boolean; + showRegionFilter?: boolean; +} + +export const ComplianceHeader = ({ + scans, + uniqueRegions, + showSearch = true, + showRegionFilter = true, +}: ComplianceHeaderProps) => { + return ( + <> + {showSearch && } + + + {showRegionFilter && ( + <> + + + + )} + + + ); +}; diff --git a/ui/components/compliance/compliance-scan-info.tsx b/ui/components/compliance/compliance-header/compliance-scan-info.tsx similarity index 99% rename from ui/components/compliance/compliance-scan-info.tsx rename to ui/components/compliance/compliance-header/compliance-scan-info.tsx index c4bff1d7ad..a6690da618 100644 --- a/ui/components/compliance/compliance-scan-info.tsx +++ b/ui/components/compliance/compliance-header/compliance-scan-info.tsx @@ -3,6 +3,7 @@ import React from "react"; import { DateWithTime, EntityInfoShort } from "@/components/ui/entities"; import { ProviderType } from "@/types"; + interface ComplianceScanInfoProps { scan: { providerInfo: { diff --git a/ui/components/compliance/data-compliance/data-compliance.tsx b/ui/components/compliance/compliance-header/data-compliance.tsx similarity index 90% rename from ui/components/compliance/data-compliance/data-compliance.tsx rename to ui/components/compliance/compliance-header/data-compliance.tsx index 9b57033bc1..a24a1db6c1 100644 --- a/ui/components/compliance/data-compliance/data-compliance.tsx +++ b/ui/components/compliance/compliance-header/data-compliance.tsx @@ -3,8 +3,10 @@ import { useRouter, useSearchParams } from "next/navigation"; import { useEffect } from "react"; -import { SelectScanComplianceData } from "@/components/compliance/data-compliance"; -import { SelectScanComplianceDataProps } from "@/types"; +import { + SelectScanComplianceData, + SelectScanComplianceDataProps, +} from "@/components/compliance/compliance-header/index"; interface DataComplianceProps { scans: SelectScanComplianceDataProps["scans"]; } diff --git a/ui/components/compliance/data-compliance/index.ts b/ui/components/compliance/compliance-header/index.ts similarity index 100% rename from ui/components/compliance/data-compliance/index.ts rename to ui/components/compliance/compliance-header/index.ts diff --git a/ui/components/compliance/data-compliance/select-scan-compliance-data.tsx b/ui/components/compliance/compliance-header/select-scan-compliance-data.tsx similarity index 72% rename from ui/components/compliance/data-compliance/select-scan-compliance-data.tsx rename to ui/components/compliance/compliance-header/select-scan-compliance-data.tsx index 77e4b12198..f28b79fe1a 100644 --- a/ui/components/compliance/data-compliance/select-scan-compliance-data.tsx +++ b/ui/components/compliance/compliance-header/select-scan-compliance-data.tsx @@ -1,8 +1,20 @@ import { Select, SelectItem } from "@nextui-org/react"; -import { SelectScanComplianceDataProps } from "@/types"; +import { ProviderType, ScanProps } from "@/types"; -import { ComplianceScanInfo } from "../compliance-scan-info"; +import { ComplianceScanInfo } from "./compliance-scan-info"; + +export interface SelectScanComplianceDataProps { + scans: (ScanProps & { + providerInfo: { + provider: ProviderType; + uid: string; + alias: string; + }; + })[]; + selectedScanId: string; + onSelectionChange: (selectedKey: string) => void; +} export const SelectScanComplianceData = ({ scans, diff --git a/ui/components/compliance/compliance-skeleton-accordion.tsx b/ui/components/compliance/compliance-skeleton-accordion.tsx new file mode 100644 index 0000000000..f1077b53ee --- /dev/null +++ b/ui/components/compliance/compliance-skeleton-accordion.tsx @@ -0,0 +1,30 @@ +import { Skeleton } from "@nextui-org/react"; +import React from "react"; + +interface SkeletonAccordionProps { + itemCount?: number; + className?: string; + isCompact?: boolean; +} + +export const SkeletonAccordion = ({ + itemCount = 3, + className = "", + isCompact = false, +}: SkeletonAccordionProps) => { + const itemHeight = isCompact ? "h-10" : "h-14"; + + return ( +
+ {[...Array(itemCount)].map((_, index) => ( + +
+
+ ))} +
+ ); +}; + +SkeletonAccordion.displayName = "SkeletonAccordion"; diff --git a/ui/components/compliance/failed-sections-chart-skeleton.tsx b/ui/components/compliance/failed-sections-chart-skeleton.tsx new file mode 100644 index 0000000000..24164ae55c --- /dev/null +++ b/ui/components/compliance/failed-sections-chart-skeleton.tsx @@ -0,0 +1,53 @@ +"use client"; + +import { Skeleton } from "@nextui-org/react"; + +export const FailedSectionsChartSkeleton = () => { + return ( +
+ {/* Title skeleton */} + +
+ + + {/* Chart area skeleton */} +
+ {/* Bar chart skeleton - 5 horizontal bars */} + {Array.from({ length: 5 }).map((_, index) => ( +
+ {/* Bar skeleton with varying widths */} + +
+ +
+ ))} + + {/* Legend skeleton */} +
+ {Array.from({ length: 3 }).map((_, index) => ( +
+ +
+ + +
+ +
+ ))} +
+
+
+ ); +}; diff --git a/ui/components/compliance/failed-sections-chart.tsx b/ui/components/compliance/failed-sections-chart.tsx new file mode 100644 index 0000000000..32076f1b66 --- /dev/null +++ b/ui/components/compliance/failed-sections-chart.tsx @@ -0,0 +1,150 @@ +"use client"; + +import { useTheme } from "next-themes"; +import { + Bar, + BarChart, + Legend, + ResponsiveContainer, + Tooltip, + XAxis, + YAxis, +} from "recharts"; + +import { translateType } from "@/lib/compliance/ens"; + +type FailedSectionItem = { + name: string; + total: number; + types: { + [key: string]: number; + }; +}; + +interface FailedSectionsListProps { + sections: FailedSectionItem[]; +} + +const title = ( +

+ Failed Sections (Top 5) +

+); + +export const FailedSectionsChart = ({ sections }: FailedSectionsListProps) => { + const { theme } = useTheme(); + + const getTypeColor = (type: string) => { + switch (type.toLowerCase()) { + case "requisito": + return "#ff5356"; + case "recomendacion": + return "#FDC53A"; // Increased contrast from #FDDD8A + case "refuerzo": + return "#7FB5FF"; // Increased contrast from #B5D7FF + default: + return "#868994"; + } + }; + + const chartData = [...sections] + .sort((a, b) => b.total - a.total) + .slice(0, 5) + .map((section) => ({ + name: section.name.charAt(0).toUpperCase() + section.name.slice(1), + ...section.types, + })); + + const allTypes = Array.from( + new Set(sections.flatMap((section) => Object.keys(section.types))), + ); + + // Check if there are no failed sections + if (!sections || sections.length === 0) { + return ( +
+ {title} +
+

There are no failed sections

+
+
+ ); + } + + return ( +
+ {title} + +
+ + + + + [ + value, + translateType(name), + ]} + cursor={false} + /> + translateType(value)} + wrapperStyle={{ + fontSize: "10px", + display: "flex", + justifyContent: "center", + width: "100%", + }} + iconType="circle" + layout="horizontal" + verticalAlign="bottom" + height={36} + /> + {allTypes.map((type, i) => ( + + ))} + + +
+
+ ); +}; diff --git a/ui/components/compliance/index.ts b/ui/components/compliance/index.ts index d0ba1eb027..fc730a267d 100644 --- a/ui/components/compliance/index.ts +++ b/ui/components/compliance/index.ts @@ -1,4 +1,4 @@ export * from "./compliance-card"; -export * from "./compliance-scan-info"; +export * from "./compliance-header/compliance-scan-info"; export * from "./compliance-skeleton-grid"; export * from "./no-scans-available"; diff --git a/ui/components/compliance/requirements-chart-skeleton.tsx b/ui/components/compliance/requirements-chart-skeleton.tsx new file mode 100644 index 0000000000..eae6ff6e4e --- /dev/null +++ b/ui/components/compliance/requirements-chart-skeleton.tsx @@ -0,0 +1,63 @@ +"use client"; + +import { Skeleton } from "@nextui-org/react"; + +export const RequirementsChartSkeleton = () => { + return ( +
+ {/* Title skeleton */} + +
+ + + {/* Pie chart skeleton */} +
+ {/* Outer circle */} + +
+ + + {/* Inner circle (donut hole) */} +
+ + {/* Center text skeleton */} +
+ +
+ + +
+ +
+
+ + {/* Bottom stats skeleton */} +
+
+ +
+ + +
+ +
+
+ +
+ + +
+ +
+
+ +
+ + +
+ +
+
+
+ ); +}; diff --git a/ui/components/compliance/requirements-chart.tsx b/ui/components/compliance/requirements-chart.tsx new file mode 100644 index 0000000000..eb40619a8b --- /dev/null +++ b/ui/components/compliance/requirements-chart.tsx @@ -0,0 +1,190 @@ +"use client"; + +import { useTheme } from "next-themes"; +import { Cell, Label, Pie, PieChart, Tooltip } from "recharts"; + +import { ChartConfig, ChartContainer } from "@/components/ui/chart/Chart"; + +interface RequirementsChartProps { + pass: number; + fail: number; + manual: number; +} + +const chartConfig = { + number: { + label: "Requirements", + }, + pass: { + label: "Pass", + color: "hsl(var(--chart-success))", + }, + fail: { + label: "Fail", + color: "hsl(var(--chart-fail))", + }, + manual: { + label: "Manual", + color: "hsl(var(--chart-warning))", + }, +} satisfies ChartConfig; + +export const RequirementsChart = ({ + pass, + fail, + manual, +}: RequirementsChartProps) => { + const { theme } = useTheme(); + + const chartData = [ + { + name: "Pass", + value: pass, + fill: "#3CEC6D", + }, + { + name: "Fail", + value: fail, + fill: "#FB718F", + }, + { + name: "Manual", + value: manual, + fill: "#868994", + }, + ]; + + const totalRequirements = pass + fail + manual; + + const emptyChartData = [ + { + name: "Empty", + value: 1, + fill: "#64748b", + }, + ]; + + interface CustomTooltipProps { + active: boolean; + payload: { + payload: { + name: string; + value: number; + fill: string; + }; + }[]; + } + + const CustomTooltip = ({ active, payload }: CustomTooltipProps) => { + if (active && payload && payload.length) { + const data = payload[0]; + return ( +
+
+
+ + {data.payload.name}: {data.payload.value} + +
+
+ ); + } + return null; + }; + + return ( +
+

+ Requirements Status +

+ + + + } + /> + 0 ? chartData : emptyChartData} + dataKey="value" + nameKey="name" + innerRadius={70} + outerRadius={100} + paddingAngle={2} + cornerRadius={4} + > + {(totalRequirements > 0 ? chartData : emptyChartData).map( + (entry, index) => ( + + ), + )} + + + + +
+
+
Pass
+
{pass}
+
+
+
Fail
+
{fail}
+
+
+
Manual
+
{manual}
+
+
+
+ ); +}; diff --git a/ui/components/findings/table/skeleton-table-findings.tsx b/ui/components/findings/table/skeleton-table-findings.tsx index 3af6403e7c..865fd14911 100644 --- a/ui/components/findings/table/skeleton-table-findings.tsx +++ b/ui/components/findings/table/skeleton-table-findings.tsx @@ -1,65 +1,11 @@ -import { Card, Skeleton } from "@nextui-org/react"; import React from "react"; +import { SkeletonTable } from "../../ui/skeleton/skeleton"; + export const SkeletonTableFindings = () => { return ( - - {/* Table headers */} -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- - {/* Table body */} -
- {[...Array(3)].map((_, index) => ( -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- ))} -
-
+
+ +
); }; diff --git a/ui/components/overview/findings-by-severity-chart/findings-by-severity-chart.tsx b/ui/components/overview/findings-by-severity-chart/findings-by-severity-chart.tsx index 3f30d2ee70..ae4d704731 100644 --- a/ui/components/overview/findings-by-severity-chart/findings-by-severity-chart.tsx +++ b/ui/components/overview/findings-by-severity-chart/findings-by-severity-chart.tsx @@ -116,9 +116,9 @@ export const FindingsBySeverityChart = ({ > diff --git a/ui/components/overview/findings-by-status-chart/findings-by-status-chart.tsx b/ui/components/overview/findings-by-status-chart/findings-by-status-chart.tsx index 331748adc0..7e6040ed60 100644 --- a/ui/components/overview/findings-by-status-chart/findings-by-status-chart.tsx +++ b/ui/components/overview/findings-by-status-chart/findings-by-status-chart.tsx @@ -146,9 +146,9 @@ export const FindingsByStatusChart: React.FC = ({ -
+
-
+
{ return ( - - {/* Table headers */} -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- - {/* Table body */} -
- {[...Array(3)].map((_, index) => ( -
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
-
- ))} -
-
+
+ +
); }; diff --git a/ui/components/ui/accordion/Accordion.tsx b/ui/components/ui/accordion/Accordion.tsx index aa029a121c..e9257bf015 100644 --- a/ui/components/ui/accordion/Accordion.tsx +++ b/ui/components/ui/accordion/Accordion.tsx @@ -6,7 +6,7 @@ import { Selection, } from "@nextui-org/react"; import { ChevronDown } from "lucide-react"; -import React, { ReactNode, useCallback, useState } from "react"; +import React, { ReactNode, useCallback, useMemo, useState } from "react"; import { cn } from "@/lib/utils"; @@ -24,17 +24,24 @@ export interface AccordionProps { variant?: "light" | "shadow" | "bordered" | "splitted"; className?: string; defaultExpandedKeys?: string[]; + selectedKeys?: string[]; selectionMode?: "single" | "multiple"; isCompact?: boolean; showDivider?: boolean; + onItemExpand?: (key: string) => void; + onSelectionChange?: (keys: string[]) => void; } const AccordionContent = ({ content, items, + selectedKeys, + onSelectionChange, }: { content: ReactNode; items?: AccordionItemProps[]; + selectedKeys?: string[]; + onSelectionChange?: (keys: string[]) => void; }) => { return (
@@ -46,6 +53,8 @@ const AccordionContent = ({ variant="light" isCompact selectionMode="multiple" + selectedKeys={selectedKeys} + onSelectionChange={onSelectionChange} />
)} @@ -58,17 +67,54 @@ export const Accordion = ({ variant = "light", className, defaultExpandedKeys = [], + selectedKeys, selectionMode = "single", isCompact = false, showDivider = true, + onItemExpand, + onSelectionChange, }: AccordionProps) => { - const [expandedKeys, setExpandedKeys] = useState( + // Determine if component is in controlled or uncontrolled mode + const isControlled = selectedKeys !== undefined; + + const [internalExpandedKeys, setInternalExpandedKeys] = useState( new Set(defaultExpandedKeys), ); - const handleSelectionChange = useCallback((keys: Selection) => { - setExpandedKeys(keys); - }, []); + // Use selectedKeys if controlled, otherwise use internal state + const expandedKeys = useMemo( + () => (isControlled ? new Set(selectedKeys) : internalExpandedKeys), + [isControlled, selectedKeys, internalExpandedKeys], + ); + + const handleSelectionChange = useCallback( + (keys: Selection) => { + const keysArray = Array.from(keys as Set); + + // If controlled mode, call parent callback + if (isControlled && onSelectionChange) { + onSelectionChange(keysArray); + } else { + // If uncontrolled, update internal state + setInternalExpandedKeys(keys); + } + + // Handle onItemExpand for backward compatibility + if (onItemExpand && keys !== expandedKeys) { + const currentKeys = Array.from(expandedKeys as Set); + const newKeys = keysArray; + + const newlyExpandedKeys = newKeys.filter( + (key) => !currentKeys.includes(key), + ); + + newlyExpandedKeys.forEach((key) => { + onItemExpand(key); + }); + } + }, + [expandedKeys, onItemExpand, isControlled, onSelectionChange], + ); return ( } classNames={{ base: index === 0 || index === 1 ? "my-2" : "my-1", - title: "text-sm font-medium", + title: "text-sm font-medium max-w-full overflow-hidden truncate", subtitle: "text-xs text-gray-500", trigger: - "p-2 rounded-lg data-[hover=true]:bg-gray-50 dark:data-[hover=true]:bg-gray-800/50", + "p-2 rounded-lg data-[hover=true]:bg-gray-50 dark:data-[hover=true]:bg-gray-800/50 w-full flex items-center", content: "p-2", }} > - + ))} diff --git a/ui/components/ui/chart/horizontal-split-chart.tsx b/ui/components/ui/chart/horizontal-split-chart.tsx index b3b4c783a3..88c79e2996 100644 --- a/ui/components/ui/chart/horizontal-split-chart.tsx +++ b/ui/components/ui/chart/horizontal-split-chart.tsx @@ -70,6 +70,16 @@ interface HorizontalSplitBarProps { * @default "text-gray-700" */ labelColor?: string; + /** + * Growth ratio multiplier (pixels per value unit) + * @default 1 + */ + ratio?: number; + /** + * Show zero values in labels + * @default true + */ + showZero?: boolean; } /** @@ -99,6 +109,8 @@ export const HorizontalSplitBar = ({ tooltipContentA, tooltipContentB, labelColor = "text-gray-700", + ratio = 1, + showZero = true, }: HorizontalSplitBarProps) => { // Reference to the container to measure its width const containerRef = React.useRef(null); @@ -150,8 +162,9 @@ export const HorizontalSplitBar = ({ const halfWidth = availableWidth / 2; const separatorWidth = 1; - let rawWidthA = valA; - let rawWidthB = valB; + // Apply ratio multiplier to raw widths + let rawWidthA = valA * ratio; + let rawWidthB = valB * ratio; // Determine if we need to scale to fit in available space const maxSideWidth = halfWidth - separatorWidth / 2; @@ -183,7 +196,7 @@ export const HorizontalSplitBar = ({ className={cn("text-xs font-medium", labelColor)} aria-label={`${formattedValueA} ${tooltipContentA ? tooltipContentA : ""}`} > - {valA > 0 ? formattedValueA : "0"} + {valA > 0 ? formattedValueA : showZero ? "0" : ""}
{/* Left bar */} {valA > 0 && ( @@ -230,7 +243,7 @@ export const HorizontalSplitBar = ({ className={cn("text-xs font-medium", labelColor)} aria-label={`${formattedValueB} ${tooltipContentB ? tooltipContentB : ""}`} > - {valB > 0 ? formattedValueB : "0"} + {valB > 0 ? formattedValueB : showZero ? "0" : ""}
diff --git a/ui/components/ui/skeleton/skeleton.tsx b/ui/components/ui/skeleton/skeleton.tsx new file mode 100644 index 0000000000..4591264f7d --- /dev/null +++ b/ui/components/ui/skeleton/skeleton.tsx @@ -0,0 +1,123 @@ +import { cn } from "@/lib/utils"; + +interface SkeletonProps { + className?: string; + variant?: "default" | "card" | "table" | "text" | "circle" | "rectangular"; + width?: string | number; + height?: string | number; + animate?: boolean; +} + +export function Skeleton({ + className, + variant = "default", + width, + height, + animate = true, +}: SkeletonProps) { + const variantClasses = { + default: "w-full h-4 rounded-lg", + card: "w-full h-40 rounded-xl", + table: "w-full h-60 rounded-lg", + text: "w-24 h-4 rounded-full", + circle: "rounded-full w-8 h-8", + rectangular: "rounded-md", + }; + + return ( +
+ ); +} + +export function SkeletonTable({ + rows = 5, + columns = 4, + className, + roundedCells = true, +}: { + rows?: number; + columns?: number; + className?: string; + roundedCells?: boolean; +}) { + return ( +
+ {/* Header */} +
+ {Array.from({ length: columns }).map((_, index) => ( + + ))} +
+ + {/* Rows */} + {Array.from({ length: rows }).map((_, rowIndex) => ( +
+ {Array.from({ length: columns }).map((_, colIndex) => ( + + ))} +
+ ))} +
+ ); +} + +export function SkeletonCard({ className }: { className?: string }) { + return ( +
+ + + +
+ ); +} + +export function SkeletonText({ + lines = 3, + className, + lastLineWidth = "w-1/2", +}: { + lines?: number; + className?: string; + lastLineWidth?: string; +}) { + return ( +
+ {Array.from({ length: lines - 1 }).map((_, index) => ( + + ))} + +
+ ); +} diff --git a/ui/components/ui/table/data-table-filter-custom.tsx b/ui/components/ui/table/data-table-filter-custom.tsx index 3a394c30ef..de2015619f 100644 --- a/ui/components/ui/table/data-table-filter-custom.tsx +++ b/ui/components/ui/table/data-table-filter-custom.tsx @@ -55,7 +55,7 @@ export const DataTableFilterCustom = ({ size="md" startContent={} onPress={() => setShowFilters(!showFilters)} - className="w-fit" + className="w-full max-w-fit" >

{showFilters ? "Hide Filters" : "Show Filters"} diff --git a/ui/components/ui/table/data-table-pagination.tsx b/ui/components/ui/table/data-table-pagination.tsx index a7773925e9..cb99c48c3d 100644 --- a/ui/components/ui/table/data-table-pagination.tsx +++ b/ui/components/ui/table/data-table-pagination.tsx @@ -23,9 +23,19 @@ import { interface DataTablePaginationProps { metadata?: MetaDataProps; + disableScroll?: boolean; } -export function DataTablePagination({ metadata }: DataTablePaginationProps) { +const baseLinkClass = + "relative block rounded border-0 bg-transparent px-3 py-1.5 text-gray-800 outline-none transition-all duration-300 hover:bg-gray-200 hover:text-gray-800 focus:shadow-none dark:text-prowler-theme-green"; + +const disabledLinkClass = + "text-gray-300 dark:text-gray-600 hover:bg-transparent hover:text-gray-300 dark:hover:text-gray-600 cursor-default pointer-events-none"; + +export function DataTablePagination({ + metadata, + disableScroll = false, +}: DataTablePaginationProps) { const pathname = usePathname(); const searchParams = useSearchParams(); const router = useRouter(); @@ -41,90 +51,148 @@ export function DataTablePagination({ metadata }: DataTablePaginationProps) { const createPageUrl = (pageNumber: number | string) => { const params = new URLSearchParams(searchParams); - if (pageNumber === "...") return `${pathname}?${params.toString()}`; + // Preserve all important parameters + const scanId = searchParams.get("scanId"); + const id = searchParams.get("id"); + const version = searchParams.get("version"); if (+pageNumber > totalPages) { return `${pathname}?${params.toString()}`; } params.set("page", pageNumber.toString()); + + // Ensure that scanId, id and version are preserved + if (scanId) params.set("scanId", scanId); + if (id) params.set("id", id); + if (version) params.set("version", version); + return `${pathname}?${params.toString()}`; }; + const isFirstPage = currentPage === 1; + const isLastPage = currentPage === totalPages; + return (
-
- {totalEntries} entries in Total. +
+ {totalEntries} entries in total
-
- {/* Rows per page selector */} -
-

Rows per page

- { + setSelectedPageSize(value); - const params = new URLSearchParams(searchParams); - params.set("pageSize", value); - params.set("page", "1"); + const params = new URLSearchParams(searchParams); - // This pushes the URL without reloading the page - router.push(`${pathname}?${params.toString()}`); - }} - > - - - - - {itemsPerPageOptions.map((pageSize) => ( - - {pageSize} - - ))} - - + // Preserve all important parameters + const scanId = searchParams.get("scanId"); + const id = searchParams.get("id"); + const version = searchParams.get("version"); + + params.set("pageSize", value); + params.set("page", "1"); + + // Ensure that scanId, id and version are preserved + if (scanId) params.set("scanId", scanId); + if (id) params.set("id", id); + if (version) params.set("version", version); + + // This pushes the URL without reloading the page + if (disableScroll) { + const url = `${pathname}?${params.toString()}`; + router.push(url, { scroll: false }); + } else { + router.push(`${pathname}?${params.toString()}`); + } + }} + > + + + + + {itemsPerPageOptions.map((pageSize) => ( + + {pageSize} + + ))} + + +
+
+ Page {currentPage} of {totalPages} +
+
+ isFirstPage && e.preventDefault()} + > +
-
- Page {currentPage} of {totalPages} -
-
- -
-
+ )}
); } diff --git a/ui/components/ui/table/data-table.tsx b/ui/components/ui/table/data-table.tsx index b759e4316d..49ad556897 100644 --- a/ui/components/ui/table/data-table.tsx +++ b/ui/components/ui/table/data-table.tsx @@ -29,12 +29,14 @@ interface DataTableProviderProps { data: TData[]; metadata?: MetaDataProps; customFilters?: FilterOption[]; + disableScroll?: boolean; } export function DataTable({ columns, data, metadata, + disableScroll = false, }: DataTableProviderProps) { const [sorting, setSorting] = useState([]); const [columnFilters, setColumnFilters] = useState([]); @@ -109,7 +111,10 @@ export function DataTable({

{metadata && (
- +
)} diff --git a/ui/components/ui/table/status-finding-badge.tsx b/ui/components/ui/table/status-finding-badge.tsx index b9532d3b5d..8177d116d7 100644 --- a/ui/components/ui/table/status-finding-badge.tsx +++ b/ui/components/ui/table/status-finding-badge.tsx @@ -16,10 +16,12 @@ const statusColorMap: Record< export const StatusFindingBadge = ({ status, size = "sm", + value, ...props }: { status: FindingStatus; size?: "sm" | "md" | "lg"; + value?: string | number; }) => { const color = statusColorMap[status]; @@ -33,6 +35,7 @@ export const StatusFindingBadge = ({ > {status.charAt(0).toUpperCase() + status.slice(1).toLowerCase()} + {value !== undefined && `: ${value}`} ); diff --git a/ui/components/users/profile/membership-item.tsx b/ui/components/users/profile/membership-item.tsx index 5db1e5cc6b..a22f33dda0 100644 --- a/ui/components/users/profile/membership-item.tsx +++ b/ui/components/users/profile/membership-item.tsx @@ -5,7 +5,7 @@ import { useState } from "react"; import { CustomAlertModal, CustomButton } from "@/components/ui/custom"; import { DateWithTime, InfoField } from "@/components/ui/entities"; -import { MembershipDetailData } from "@/types/users/users"; +import { MembershipDetailData } from "@/types/users"; import { EditTenantForm } from "../forms"; diff --git a/ui/components/users/profile/memberships-card.tsx b/ui/components/users/profile/memberships-card.tsx index 43138c74c5..0aba1b4834 100644 --- a/ui/components/users/profile/memberships-card.tsx +++ b/ui/components/users/profile/memberships-card.tsx @@ -1,6 +1,6 @@ import { Card, CardBody, CardHeader } from "@nextui-org/react"; -import { MembershipDetailData, TenantDetailData } from "@/types/users/users"; +import { MembershipDetailData, TenantDetailData } from "@/types/users"; import { MembershipItem } from "./membership-item"; diff --git a/ui/components/users/profile/role-item.tsx b/ui/components/users/profile/role-item.tsx index 460d9d5398..4d1ad7861e 100644 --- a/ui/components/users/profile/role-item.tsx +++ b/ui/components/users/profile/role-item.tsx @@ -6,7 +6,7 @@ import { useState } from "react"; import { CustomButton } from "@/components/ui/custom/custom-button"; import { getRolePermissions } from "@/lib/permissions"; -import { RoleData, RoleDetail } from "@/types/users/users"; +import { RoleData, RoleDetail } from "@/types/users"; interface PermissionItemProps { enabled: boolean; diff --git a/ui/components/users/profile/roles-card.tsx b/ui/components/users/profile/roles-card.tsx index 5135c41528..126984be08 100644 --- a/ui/components/users/profile/roles-card.tsx +++ b/ui/components/users/profile/roles-card.tsx @@ -1,6 +1,6 @@ import { Card, CardBody, CardHeader } from "@nextui-org/react"; -import { RoleData, RoleDetail } from "@/types/users/users"; +import { RoleData, RoleDetail } from "@/types/users"; import { RoleItem } from "./role-item"; diff --git a/ui/components/users/profile/user-basic-info-card.tsx b/ui/components/users/profile/user-basic-info-card.tsx index 37805b2c55..7085953062 100644 --- a/ui/components/users/profile/user-basic-info-card.tsx +++ b/ui/components/users/profile/user-basic-info-card.tsx @@ -3,7 +3,7 @@ import { Card, CardBody, Divider } from "@nextui-org/react"; import { DateWithTime, InfoField, SnippetChip } from "@/components/ui/entities"; -import { UserDataWithRoles } from "@/types/users/users"; +import { UserDataWithRoles } from "@/types/users"; import { ProwlerShort } from "../../icons"; diff --git a/ui/lib/compliance/ens.tsx b/ui/lib/compliance/ens.tsx new file mode 100644 index 0000000000..bab025dd06 --- /dev/null +++ b/ui/lib/compliance/ens.tsx @@ -0,0 +1,242 @@ +import { ClientAccordionContent } from "@/components/compliance/compliance-accordion/client-accordion-content"; +import { ComplianceAccordionRequirementTitle } from "@/components/compliance/compliance-accordion/compliance-accordion-requeriment-title"; +import { ComplianceAccordionTitle } from "@/components/compliance/compliance-accordion/compliance-accordion-title"; +import { AccordionItemProps } from "@/components/ui/accordion/Accordion"; +import { FindingStatus } from "@/components/ui/table/status-finding-badge"; +import { + AttributesData, + Framework, + MappedComplianceData, + Requirement, + RequirementItemData, + RequirementsData, + RequirementStatus, +} from "@/types/compliance"; + +export const translateType = (type: string) => { + switch (type.toLowerCase()) { + case "requisito": + return "Requirement"; + case "recomendacion": + return "Recommendation"; + case "refuerzo": + return "Reinforcement"; + case "medida": + return "Measure"; + default: + return type; + } +}; + +export const mapComplianceData = ( + attributesData: AttributesData, + requirementsData: RequirementsData, +): MappedComplianceData => { + const attributes = attributesData?.data || []; + const requirements = requirementsData?.data || []; + + // Create a map for quick lookup of requirements by id + const requirementsMap = new Map(); + requirements.forEach((req: RequirementItemData) => { + requirementsMap.set(req.id, req); + }); + + const frameworks: Framework[] = []; + + // Process attributes and merge with requirements data + for (const attributeItem of attributes) { + const id = attributeItem.id; + const attrs = attributeItem.attributes?.attributes?.metadata?.[0]; + if (!attrs) continue; + + // Get corresponding requirement data + const requirementData = requirementsMap.get(id); + if (!requirementData) continue; + + const frameworkName = attrs.Marco; + const categoryName = attrs.Categoria; + const groupControl = attrs.IdGrupoControl; + const type = attrs.Tipo; + const description = attributeItem.attributes.description; + const status = requirementData.attributes.status || ""; + const controlDescription = attrs.DescripcionControl || ""; + const checks = attributeItem.attributes.attributes.check_ids || []; + const isManual = attrs.ModoEjecucion === "manual"; + const requirementName = id; + const groupControlLabel = `${groupControl} - ${description}`; + + // Find or create framework + let framework = frameworks.find((f) => f.name === frameworkName); + if (!framework) { + framework = { + name: frameworkName, + pass: 0, + fail: 0, + manual: 0, + categories: [], + }; + frameworks.push(framework); + } + + // Find or create category + let category = framework.categories.find((c) => c.name === categoryName); + if (!category) { + category = { + name: categoryName, + pass: 0, + fail: 0, + manual: 0, + controls: [], + }; + framework.categories.push(category); + } + + // Find or create control + let control = category.controls.find((c) => c.label === groupControlLabel); + if (!control) { + control = { + label: groupControlLabel, + type, + pass: 0, + fail: 0, + manual: 0, + requirements: [], + }; + category.controls.push(control); + } + + // Create requirement + const finalStatus: RequirementStatus = isManual + ? "MANUAL" + : (status as RequirementStatus); + const requirement: Requirement = { + name: requirementName, + description: controlDescription, + status: finalStatus, + type, + check_ids: checks, + pass: finalStatus === "PASS" ? 1 : 0, + fail: finalStatus === "FAIL" ? 1 : 0, + manual: finalStatus === "MANUAL" ? 1 : 0, + nivel: attrs.Nivel || "", + dimensiones: attrs.Dimensiones || [], + }; + + control.requirements.push(requirement); + } + + // Calculate counters + frameworks.forEach((framework) => { + framework.pass = 0; + framework.fail = 0; + framework.manual = 0; + + framework.categories.forEach((category) => { + category.pass = 0; + category.fail = 0; + category.manual = 0; + + category.controls.forEach((control) => { + control.pass = 0; + control.fail = 0; + control.manual = 0; + + control.requirements.forEach((requirement) => { + if (requirement.status === "MANUAL") { + control.manual++; + } else if (requirement.status === "PASS") { + control.pass++; + } else if (requirement.status === "FAIL") { + control.fail++; + } + }); + + category.pass += control.pass; + category.fail += control.fail; + category.manual += control.manual; + }); + + framework.pass += category.pass; + framework.fail += category.fail; + framework.manual += category.manual; + }); + }); + + return frameworks; +}; + +export const toAccordionItems = ( + data: MappedComplianceData, + scanId: string | undefined, +): AccordionItemProps[] => { + return data.map((framework) => { + return { + key: framework.name, + title: ( + + ), + content: "", + items: framework.categories.map((category) => { + return { + key: `${framework.name}-${category.name}`, + title: ( + + ), + content: "", + items: category.controls.map((control, i: number) => { + return { + key: `${framework.name}-${category.name}-control-${i}`, + title: ( + + ), + content: "", + items: control.requirements.map((requirement, j: number) => { + const itemKey = `${framework.name}-${category.name}-control-${i}-req-${j}`; + + return { + key: itemKey, + title: ( + + ), + content: ( + + ), + items: [], + isDisabled: + requirement.check_ids.length === 0 && + requirement.manual === 0, + }; + }), + isDisabled: + control.pass === 0 && + control.fail === 0 && + control.manual === 0, + }; + }), + }; + }), + }; + }); +}; diff --git a/ui/lib/permissions.ts b/ui/lib/permissions.ts index 7315258a9d..7d1d4448e8 100644 --- a/ui/lib/permissions.ts +++ b/ui/lib/permissions.ts @@ -1,4 +1,4 @@ -import { RolePermissionAttributes } from "@/types/users/users"; +import { RolePermissionAttributes } from "@/types/users"; export const isUserOwnerAndHasManageAccount = ( roles: any[], diff --git a/ui/public/ens.png b/ui/public/ens.png new file mode 100644 index 0000000000000000000000000000000000000000..c3e6433f31c087c14a09e9a4cbf06eb21578d332 GIT binary patch literal 97549 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¥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

w80jRaG@VNRu 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 z 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 Q0sP2HDN5!)F?{!b0IN+lq5uE@ literal 0 HcmV?d00001 diff --git a/ui/types/compliance.ts b/ui/types/compliance.ts new file mode 100644 index 0000000000..beeafcd836 --- /dev/null +++ b/ui/types/compliance.ts @@ -0,0 +1,119 @@ +export type RequirementStatus = "PASS" | "FAIL" | "MANUAL" | "No findings"; + +export type ComplianceId = "ens_rd2022_aws"; + +export interface CompliancesOverview { + data: ComplianceOverviewData[]; +} + +export interface ComplianceOverviewData { + type: "compliance-requirements-status"; + id: string; + attributes: { + framework: string; + version: string; + requirements_passed: number; + requirements_failed: number; + requirements_manual: number; + total_requirements: number; + }; +} + +export interface Requirement { + name: string; + description: string; + status: RequirementStatus; + type: string; + pass: number; + fail: number; + manual: number; + check_ids: string[]; + // ENS + nivel?: string; + dimensiones?: string[]; +} + +export interface Control { + label: string; + type: string; + pass: number; + fail: number; + manual: number; + requirements: Requirement[]; +} + +export interface Category { + name: string; + pass: number; + fail: number; + manual: number; + controls: Control[]; +} + +export interface Framework { + name: string; + pass: number; + fail: number; + manual: number; + categories: Category[]; +} + +export type MappedComplianceData = Framework[]; + +export interface FailedSection { + name: string; + total: number; + types: { [key: string]: number }; +} + +export interface RequirementsTotals { + pass: number; + fail: number; + manual: number; +} + +// API Responses types: +export interface AttributesMetadata { + IdGrupoControl: string; + Marco: string; + Categoria: string; + DescripcionControl: string; + Tipo: string; + Nivel: string; + Dimensiones: string[]; + ModoEjecucion: string; + Dependencias: any[]; +} + +export interface AttributesItemData { + type: "compliance-requirements-attributes"; + id: string; + attributes: { + framework: string; + version: string; + description: string; + attributes: { + metadata: AttributesMetadata[]; + check_ids: string[]; + }; + }; +} + +export interface RequirementItemData { + type: "compliance-requirements-details"; + id: string; + attributes: { + framework: string; + version: string; + description: string; + status: RequirementStatus; + }; +} + +export interface AttributesData { + data: AttributesItemData[]; +} + +export interface RequirementsData { + data: RequirementItemData[]; +} diff --git a/ui/types/components.ts b/ui/types/components.ts index f5928386d0..c8a8054f80 100644 --- a/ui/types/components.ts +++ b/ui/types/components.ts @@ -1,8 +1,6 @@ import { LucideIcon } from "lucide-react"; import { SVGProps } from "react"; -import { ProviderType } from "./providers"; - export type IconSvgProps = SVGProps & { size?: number; }; @@ -44,18 +42,6 @@ export interface CollapseMenuButtonProps { isOpen: boolean | undefined; } -export interface SelectScanComplianceDataProps { - scans: (ScanProps & { - providerInfo: { - provider: ProviderType; - uid: string; - alias: string; - }; - })[]; - selectedScanId: string; - onSelectionChange: (selectedKey: string) => void; -} - export type NextUIVariants = | "solid" | "faded" @@ -269,53 +255,6 @@ export interface ApiError { }; code: string; } -export interface CompliancesOverview { - links: { - first: string; - last: string; - next: string | null; - prev: string | null; - }; - data: ComplianceOverviewData[]; - meta: { - pagination: { - page: number; - pages: number; - count: number; - }; - version: string; - }; -} - -export interface ComplianceOverviewData { - type: "compliance-overviews"; - id: string; - attributes: { - inserted_at: string; - compliance_id: string; - framework: string; - version: string; - requirements_status: { - passed: number; - failed: number; - manual: number; - total: number; - }; - region: string; - provider_type: string; - }; - relationships: { - scan: { - data: { - type: "scans"; - id: string; - }; - }; - }; - links: { - self: string; - }; -} export interface InvitationProps { type: "invitations"; @@ -497,52 +436,9 @@ export interface UserProps { }[]; } -export interface ScanProps { - type: "scans"; - id: string; - attributes: { - name: string; - trigger: "scheduled" | "manual"; - state: - | "available" - | "scheduled" - | "executing" - | "completed" - | "failed" - | "cancelled"; - unique_resource_count: number; - progress: number; - scanner_args: { - only_logs?: boolean; - excluded_checks?: string[]; - aws_retries_max_attempts?: number; - } | null; - duration: number; - started_at: string; - inserted_at: string; - completed_at: string; - scheduled_at: string; - next_scan_at: string; - }; - relationships: { - provider: { - data: { - id: string; - type: "providers"; - }; - }; - task: { - data: { - id: string; - type: "tasks"; - }; - }; - }; - providerInfo?: { - provider: ProviderType; - uid: string; - alias: string; - }; +export interface FindingsResponse { + data: FindingProps[]; + meta: MetaDataProps; } export interface FindingProps { diff --git a/ui/types/index.ts b/ui/types/index.ts index e35a2815da..1483946f3e 100644 --- a/ui/types/index.ts +++ b/ui/types/index.ts @@ -3,3 +3,4 @@ export * from "./components"; export * from "./filters"; export * from "./formSchemas"; export * from "./providers"; +export * from "./scans"; diff --git a/ui/types/scans.ts b/ui/types/scans.ts new file mode 100644 index 0000000000..ac8bfe64e6 --- /dev/null +++ b/ui/types/scans.ts @@ -0,0 +1,49 @@ +import { ProviderType } from "./providers"; + +export interface ScanProps { + type: "scans"; + id: string; + attributes: { + name: string; + trigger: "scheduled" | "manual"; + state: + | "available" + | "scheduled" + | "executing" + | "completed" + | "failed" + | "cancelled"; + unique_resource_count: number; + progress: number; + scanner_args: { + only_logs?: boolean; + excluded_checks?: string[]; + aws_retries_max_attempts?: number; + } | null; + duration: number; + started_at: string; + inserted_at: string; + completed_at: string; + scheduled_at: string; + next_scan_at: string; + }; + relationships: { + provider: { + data: { + id: string; + type: "providers"; + }; + }; + task: { + data: { + id: string; + type: "tasks"; + }; + }; + }; + providerInfo?: { + provider: ProviderType; + uid: string; + alias: string; + }; +} diff --git a/ui/types/users/users.ts b/ui/types/users.ts similarity index 100% rename from ui/types/users/users.ts rename to ui/types/users.ts diff --git a/ui/types/users/index.ts b/ui/types/users/index.ts deleted file mode 100644 index ddf77b4624..0000000000 --- a/ui/types/users/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./users"; From e34c18757dd07210b8a7b1ea14ebdacdb2d35f84 Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Tue, 3 Jun 2025 08:33:24 +0200 Subject: [PATCH 059/111] fix: Fix named export for addCredentialsServiceAccountFormSchema (#7909) --- ui/types/formSchemas.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ui/types/formSchemas.ts b/ui/types/formSchemas.ts index ef627bcea3..a2fbf1e3a4 100644 --- a/ui/types/formSchemas.ts +++ b/ui/types/formSchemas.ts @@ -1,5 +1,7 @@ import { z } from "zod"; +import { ProviderType } from "./providers"; + export const addRoleFormSchema = z.object({ name: z.string().min(1, "Name is required"), manage_users: z.boolean().default(false), @@ -176,7 +178,9 @@ export const addCredentialsRoleFormSchema = (providerType: string) => providerType: z.string(), }); -export const addCredentialsServiceAccountFormSchema = (providerType: string) => +export const addCredentialsServiceAccountFormSchema = ( + providerType: ProviderType, +) => providerType === "gcp" ? z.object({ providerId: z.string(), From 3e8c86d8801c2cdcec2fce0902dc0c13771fd033 Mon Sep 17 00:00:00 2001 From: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Date: Tue, 3 Jun 2025 09:20:52 +0200 Subject: [PATCH 060/111] feat: ISO compliance detail view (#7897) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Víctor Fernández Poyatos Co-authored-by: Pablo Lara --- ui/CHANGELOG.md | 2 + .../compliance/[compliancetitle]/page.tsx | 80 +++---- .../client-accordion-content.tsx | 12 +- ...compliance-accordion-requeriment-title.tsx | 5 - .../compliance-accordion-title.tsx | 4 +- ui/components/compliance/compliance-card.tsx | 2 +- .../compliance-custom-details/ens-details.tsx | 43 ++-- .../compliance-custom-details/iso-details.tsx | 23 ++ .../compliance/failed-sections-chart.tsx | 116 ++++++---- ui/components/ui/accordion/Accordion.tsx | 8 +- ui/lib/compliance/commons.ts | 95 ++++++++ ui/lib/compliance/ens.tsx | 14 +- ui/lib/compliance/iso.tsx | 210 ++++++++++++++++++ ui/types/compliance.ts | 28 ++- 14 files changed, 506 insertions(+), 136 deletions(-) create mode 100644 ui/components/compliance/compliance-custom-details/iso-details.tsx create mode 100644 ui/lib/compliance/commons.ts create mode 100644 ui/lib/compliance/iso.tsx diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index dba82a9d13..1cb3bc30de 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -10,6 +10,8 @@ All notable changes to the **Prowler UI** are documented in this file. - Improved `SnippetChip` component and show resource name in new findings table. [(#7813)](https://github.com/prowler-cloud/prowler/pull/7813) - Possibility to edit the organization name. [(#7829)](https://github.com/prowler-cloud/prowler/pull/7829) - Add GCP credential method (Account Service Key). [(#7872)](https://github.com/prowler-cloud/prowler/pull/7872) +- Add compliance detail view: ENS [(#7853)](https://github.com/prowler-cloud/prowler/pull/7853) +- Add compliance detail view: ISO [(#7897)](https://github.com/prowler-cloud/prowler/pull/7897) ### 🔄 Changed diff --git a/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx b/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx index eeb3f1a588..b32781e482 100644 --- a/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx +++ b/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx @@ -16,14 +16,11 @@ import { FailedSectionsChart } from "@/components/compliance/failed-sections-cha import { FailedSectionsChartSkeleton } from "@/components/compliance/failed-sections-chart-skeleton"; import { RequirementsChart } from "@/components/compliance/requirements-chart"; import { RequirementsChartSkeleton } from "@/components/compliance/requirements-chart-skeleton"; +import { getComplianceIcon } from "@/components/icons/compliance/IconCompliance"; import { ContentLayout } from "@/components/ui"; -import { mapComplianceData, toAccordionItems } from "@/lib/compliance/ens"; +import { getComplianceMapper } from "@/lib/compliance/commons"; import { ScanProps } from "@/types"; -import { - FailedSection, - MappedComplianceData, - RequirementsTotals, -} from "@/types/compliance"; +import { Framework, RequirementsTotals } from "@/types/compliance"; interface ComplianceDetailSearchParams { complianceId: string; @@ -32,7 +29,7 @@ interface ComplianceDetailSearchParams { "filter[region__in]"?: string; } -const Logo = ({ logoPath }: { logoPath: string }) => { +const ComplianceLogo = ({ logoPath }: { logoPath: string }) => { return (

{ return (
{children}
- {logoPath && } + {logoPath && }
); }; @@ -73,8 +70,7 @@ export default async function ComplianceDetail({ const { compliancetitle } = params; const { complianceId, version, scanId } = searchParams; const regionFilter = searchParams["filter[region__in]"]; - - const logoPath = `/${compliancetitle.toLowerCase()}.png`; + const logoPath = getComplianceIcon(compliancetitle); // Create a key that includes region filter for Suspense const searchParamsKey = JSON.stringify(searchParams || {}); @@ -164,7 +160,7 @@ const getComplianceData = async ( complianceId: string, scanId: string, region?: string, -): Promise => { +): Promise => { const [attributesData, requirementsData] = await Promise.all([ getComplianceAttributes(complianceId), getComplianceRequirements({ @@ -174,44 +170,16 @@ const getComplianceData = async ( }), ]); - const mappedData = mapComplianceData(attributesData, requirementsData); + // Determine framework from the first attribute item + const framework = attributesData?.data?.[0]?.attributes?.framework; + + // Get the appropriate mapper for this framework + const mapper = getComplianceMapper(framework); + const mappedData = mapper.mapComplianceData(attributesData, requirementsData); + return mappedData; }; -const getTopFailedSections = ( - mappedData: MappedComplianceData, -): FailedSection[] => { - const failedSectionMap = new Map(); - - mappedData.forEach((framework) => { - framework.categories.forEach((category) => { - category.controls.forEach((control) => { - control.requirements.forEach((requirement) => { - if (requirement.status === "FAIL") { - const sectionName = category.name; - - if (!failedSectionMap.has(sectionName)) { - failedSectionMap.set(sectionName, { total: 0, types: {} }); - } - - const sectionData = failedSectionMap.get(sectionName); - sectionData.total += 1; - - const type = requirement.type; - sectionData.types[type] = (sectionData.types[type] || 0) + 1; - } - }); - }); - }); - }); - - // Convert in descending order and slice top 5 - return Array.from(failedSectionMap.entries()) - .map(([name, data]) => ({ name, ...data })) - .sort((a, b) => b.total - a.total) - .slice(0, 5); // Top 5 -}; - const SSRComplianceContent = async ({ complianceId, scanId, @@ -221,7 +189,7 @@ const SSRComplianceContent = async ({ complianceId: string; scanId: string; region?: string; - logoPath: string; + logoPath?: string; }) => { if (!scanId) { return ( @@ -244,9 +212,19 @@ const SSRComplianceContent = async ({ }), { pass: 0, fail: 0, manual: 0 }, ); - const topFailedSections = getTopFailedSections(data); - const accordionItems = toAccordionItems(data, scanId); - const defaultKeys = accordionItems.slice(0, 2).map((item) => item.key); + + // Get the framework to determine which mapper to use + const attributesData = await getComplianceAttributes(complianceId); + const framework = attributesData?.data?.[0]?.attributes?.framework; + + // Get the appropriate mapper for this framework + const mapper = getComplianceMapper(framework); + const accordionItems = mapper.toAccordionItems(data, scanId); + const topFailedSections = mapper.getTopFailedSections(data); + + // Todo: rethink as every compliance has a different number of items + // const defaultKeys = accordionItems.slice(0, 2).map((item) => item.key); + const defaultKeys = [""]; return (
diff --git a/ui/components/compliance/compliance-accordion/client-accordion-content.tsx b/ui/components/compliance/compliance-accordion/client-accordion-content.tsx index 06bb394fa0..b79a1c1e8e 100644 --- a/ui/components/compliance/compliance-accordion/client-accordion-content.tsx +++ b/ui/components/compliance/compliance-accordion/client-accordion-content.tsx @@ -14,7 +14,8 @@ import { createDict } from "@/lib"; import { ComplianceId, Requirement } from "@/types/compliance"; import { FindingProps, FindingsResponse } from "@/types/components"; -import { ComplianceCustomDetails } from "../compliance-custom-details/ens-details"; +import { ENSCustomDetails } from "../compliance-custom-details/ens-details"; +import { ISOCustomDetails } from "../compliance-custom-details/iso-details"; interface ClientAccordionContentProps { requirement: Requirement; @@ -150,7 +151,14 @@ export const ClientAccordionContent = ({ case "ens_rd2022_aws": return (
- + +
+ ); + case "iso27001_2013_aws": + case "iso27001_2022_aws": + return ( +
+
); default: diff --git a/ui/components/compliance/compliance-accordion/compliance-accordion-requeriment-title.tsx b/ui/components/compliance/compliance-accordion/compliance-accordion-requeriment-title.tsx index 92f79e032d..1c62e87d29 100644 --- a/ui/components/compliance/compliance-accordion/compliance-accordion-requeriment-title.tsx +++ b/ui/components/compliance/compliance-accordion/compliance-accordion-requeriment-title.tsx @@ -1,5 +1,4 @@ import { FindingStatus, StatusFindingBadge } from "@/components/ui/table"; -import { translateType } from "@/lib/compliance/ens"; interface ComplianceAccordionRequirementTitleProps { type: string; @@ -8,16 +7,12 @@ interface ComplianceAccordionRequirementTitleProps { } export const ComplianceAccordionRequirementTitle = ({ - type, name, status, }: ComplianceAccordionRequirementTitleProps) => { return (
- - {translateType(type)}: - {name}
diff --git a/ui/components/compliance/compliance-accordion/compliance-accordion-title.tsx b/ui/components/compliance/compliance-accordion/compliance-accordion-title.tsx index e458cef948..0f3f681b59 100644 --- a/ui/components/compliance/compliance-accordion/compliance-accordion-title.tsx +++ b/ui/components/compliance/compliance-accordion/compliance-accordion-title.tsx @@ -5,6 +5,7 @@ interface ComplianceAccordionTitleProps { pass: number; fail: number; manual?: number; + isParentLevel?: boolean; } export const ComplianceAccordionTitle = ({ @@ -12,6 +13,7 @@ export const ComplianceAccordionTitle = ({ pass, fail, manual = 0, + isParentLevel = false, }: ComplianceAccordionTitleProps) => { const total = pass + fail + manual; const passPercentage = (pass / total) * 100; @@ -30,7 +32,7 @@ export const ComplianceAccordionTitle = ({
- {total > 0 && ( + {total > 0 && isParentLevel && ( Requirements: diff --git a/ui/components/compliance/compliance-card.tsx b/ui/components/compliance/compliance-card.tsx index db7539401f..c7a745348e 100644 --- a/ui/components/compliance/compliance-card.tsx +++ b/ui/components/compliance/compliance-card.tsx @@ -73,7 +73,7 @@ export const ComplianceCard: React.FC = ({ const navigateToDetail = () => { // We will unlock this while developing the rest of complainces. - if (!id.includes("ens") && !id.includes("cis")) { + if (!id.includes("ens") && !id.includes("iso")) { return; } diff --git a/ui/components/compliance/compliance-custom-details/ens-details.tsx b/ui/components/compliance/compliance-custom-details/ens-details.tsx index db0652c770..2c133f7e11 100644 --- a/ui/components/compliance/compliance-custom-details/ens-details.tsx +++ b/ui/components/compliance/compliance-custom-details/ens-details.tsx @@ -1,6 +1,7 @@ +import { translateType } from "@/lib/compliance/ens"; import { Requirement } from "@/types/compliance"; -export const ComplianceCustomDetails = ({ +export const ENSCustomDetails = ({ requirement, }: { requirement: Requirement; @@ -11,27 +12,35 @@ export const ComplianceCustomDetails = ({ {requirement.description}
+
+ Type: + + {translateType(requirement.type as string)} + +
Level: {requirement.nivel}
- {requirement.dimensiones && requirement.dimensiones.length > 0 && ( -
- Dimensions: -
- {requirement.dimensiones.map( - (dimension: string, index: number) => ( - - {dimension} - - ), - )} + {requirement.dimensiones && + Array.isArray(requirement.dimensiones) && + requirement.dimensiones.length > 0 && ( +
+ Dimensions: +
+ {requirement.dimensiones.map( + (dimension: string, index: number) => ( + + {dimension} + + ), + )} +
-
- )} + )}
); diff --git a/ui/components/compliance/compliance-custom-details/iso-details.tsx b/ui/components/compliance/compliance-custom-details/iso-details.tsx new file mode 100644 index 0000000000..1bcf687b08 --- /dev/null +++ b/ui/components/compliance/compliance-custom-details/iso-details.tsx @@ -0,0 +1,23 @@ +import { Requirement } from "@/types/compliance"; + +export const ISOCustomDetails = ({ + requirement, +}: { + requirement: Requirement; +}) => { + return ( +
+
+ {requirement.description} +
+
+ {requirement.objetive_name && ( +
+ Objective: + {requirement.objetive_name} +
+ )} +
+
+ ); +}; diff --git a/ui/components/compliance/failed-sections-chart.tsx b/ui/components/compliance/failed-sections-chart.tsx index 32076f1b66..d27e961737 100644 --- a/ui/components/compliance/failed-sections-chart.tsx +++ b/ui/components/compliance/failed-sections-chart.tsx @@ -12,17 +12,10 @@ import { } from "recharts"; import { translateType } from "@/lib/compliance/ens"; - -type FailedSectionItem = { - name: string; - total: number; - types: { - [key: string]: number; - }; -}; +import { FailedSection } from "@/types/compliance"; interface FailedSectionsListProps { - sections: FailedSectionItem[]; + sections: FailedSection[]; } const title = ( @@ -43,7 +36,7 @@ export const FailedSectionsChart = ({ sections }: FailedSectionsListProps) => { case "refuerzo": return "#7FB5FF"; // Increased contrast from #B5D7FF default: - return "#868994"; + return "#ff5356"; } }; @@ -56,9 +49,28 @@ export const FailedSectionsChart = ({ sections }: FailedSectionsListProps) => { })); const allTypes = Array.from( - new Set(sections.flatMap((section) => Object.keys(section.types))), + new Set(sections.flatMap((section) => Object.keys(section.types || {}))), ); + // Add empty bars to complete up to 5 bars for better distribution + while (chartData.length < 5) { + const emptyBar: any = { name: "" }; + allTypes.forEach((type) => { + emptyBar[type] = 0; + }); + chartData.push(emptyBar); + } + + // Calculate the maximum value to ensure proper scaling + const maxValue = Math.max( + ...chartData.map((item) => + allTypes.reduce((sum, type) => sum + ((item as any)[type] || 0), 0), + ), + ); + + // Set minimum domain to ensure bars are always visible + const domainMax = Math.max(maxValue, 1); + // Check if there are no failed sections if (!sections || sections.length === 0) { return ( @@ -73,14 +85,14 @@ export const FailedSectionsChart = ({ sections }: FailedSectionsListProps) => { return (
- {title} +
{title}
{ fontSize={12} axisLine={false} tickLine={false} + allowDecimals={false} + hide={true} + domain={[0, domainMax]} tick={{ fontSize: 12, fill: theme === "dark" ? "#94a3b8" : "#374151", @@ -105,34 +120,59 @@ export const FailedSectionsChart = ({ sections }: FailedSectionsListProps) => { tickLine={false} /> { + if (!props.active || !props.payload || !props.payload.length) { + return null; + } + + const data = props.payload[0].payload; + if (!data.name || data.name === "") { + return null; + } + + const hasValues = allTypes.some((type) => data[type] > 0); + if (!hasValues) { + return null; + } + + return ( +
+ {props.payload.map((entry: any, index: number) => ( +
+ {translateType(entry.dataKey)}: {entry.value} +
+ ))} +
+ ); }} - formatter={(value: number, name: string) => [ - value, - translateType(name), - ]} cursor={false} /> - translateType(value)} - wrapperStyle={{ - fontSize: "10px", - display: "flex", - justifyContent: "center", - width: "100%", - }} - iconType="circle" - layout="horizontal" - verticalAlign="bottom" - height={36} - /> + {allTypes.length > 1 && ( + translateType(value)} + wrapperStyle={{ + fontSize: "10px", + display: "flex", + justifyContent: "center", + width: "100%", + paddingTop: "16px", + marginBottom: "4px", + }} + iconType="circle" + layout="horizontal" + verticalAlign="bottom" + /> + )} {allTypes.map((type, i) => ( } classNames={{ - base: index === 0 || index === 1 ? "my-2" : "my-1", + base: index === 0 || index === 1 ? "my-1" : "my-1", title: "text-sm font-medium max-w-full overflow-hidden truncate", subtitle: "text-xs text-gray-500", trigger: - "p-2 rounded-lg data-[hover=true]:bg-gray-50 dark:data-[hover=true]:bg-gray-800/50 w-full flex items-center", - content: "p-2", + "py-2 px-2 rounded-lg data-[hover=true]:bg-gray-50 dark:data-[hover=true]:bg-gray-800/50 w-full flex items-center", + content: "px-0 py-1", }} > Framework[]; + toAccordionItems: ( + data: Framework[], + scanId: string | undefined, + ) => AccordionItemProps[]; + getTopFailedSections: (mappedData: Framework[]) => FailedSection[]; +} + +// Common function for getting top failed sections +export const getTopFailedSections = ( + mappedData: Framework[], +): FailedSection[] => { + const failedSectionMap = new Map(); + + mappedData.forEach((framework) => { + framework.categories.forEach((category) => { + category.controls.forEach((control) => { + control.requirements.forEach((requirement) => { + if (requirement.status === "FAIL") { + const sectionName = category.name; + + if (!failedSectionMap.has(sectionName)) { + failedSectionMap.set(sectionName, { total: 0, types: {} }); + } + + const sectionData = failedSectionMap.get(sectionName); + sectionData.total += 1; + + const type = requirement.type || "Fails"; + + sectionData.types[type as string] = + (sectionData.types[type as string] || 0) + 1; + } + }); + }); + }); + }); + + // Convert in descending order and slice top 5 + return Array.from(failedSectionMap.entries()) + .map(([name, data]) => ({ name, ...data })) + .sort((a, b) => b.total - a.total) + .slice(0, 5); // Top 5 +}; + +// Registry of compliance mappers +const complianceMappers: Record = { + ENS: { + mapComplianceData: mapENSComplianceData, + toAccordionItems: toENSAccordionItems, + getTopFailedSections, + }, + ISO27001: { + mapComplianceData: mapISOComplianceData, + toAccordionItems: toISOAccordionItems, + getTopFailedSections, + }, +}; + +// Default mapper (fallback to ENS for backward compatibility) +const defaultMapper: ComplianceMapper = complianceMappers.ENS; + +/** + * Get the appropriate compliance mapper based on the framework name + * @param framework - The framework name (e.g., "ENS", "ISO27001") + * @returns ComplianceMapper object with specific functions for the framework + */ +export const getComplianceMapper = (framework?: string): ComplianceMapper => { + if (!framework) { + return defaultMapper; + } + + return complianceMappers[framework] || defaultMapper; +}; diff --git a/ui/lib/compliance/ens.tsx b/ui/lib/compliance/ens.tsx index bab025dd06..c46c659ecd 100644 --- a/ui/lib/compliance/ens.tsx +++ b/ui/lib/compliance/ens.tsx @@ -5,8 +5,8 @@ import { AccordionItemProps } from "@/components/ui/accordion/Accordion"; import { FindingStatus } from "@/components/ui/table/status-finding-badge"; import { AttributesData, + ENSAttributesMetadata, Framework, - MappedComplianceData, Requirement, RequirementItemData, RequirementsData, @@ -31,7 +31,7 @@ export const translateType = (type: string) => { export const mapComplianceData = ( attributesData: AttributesData, requirementsData: RequirementsData, -): MappedComplianceData => { +): Framework[] => { const attributes = attributesData?.data || []; const requirements = requirementsData?.data || []; @@ -46,7 +46,9 @@ export const mapComplianceData = ( // Process attributes and merge with requirements data for (const attributeItem of attributes) { const id = attributeItem.id; - const attrs = attributeItem.attributes?.attributes?.metadata?.[0]; + const attrs = attributeItem.attributes?.attributes + ?.metadata?.[0] as ENSAttributesMetadata; + if (!attrs) continue; // Get corresponding requirement data @@ -96,7 +98,6 @@ export const mapComplianceData = ( if (!control) { control = { label: groupControlLabel, - type, pass: 0, fail: 0, manual: 0, @@ -166,7 +167,7 @@ export const mapComplianceData = ( }; export const toAccordionItems = ( - data: MappedComplianceData, + data: Framework[], scanId: string | undefined, ): AccordionItemProps[] => { return data.map((framework) => { @@ -178,6 +179,7 @@ export const toAccordionItems = ( pass={framework.pass} fail={framework.fail} manual={framework.manual} + isParentLevel={true} /> ), content: "", @@ -212,7 +214,7 @@ export const toAccordionItems = ( key: itemKey, title: ( diff --git a/ui/lib/compliance/iso.tsx b/ui/lib/compliance/iso.tsx new file mode 100644 index 0000000000..92e5cb999d --- /dev/null +++ b/ui/lib/compliance/iso.tsx @@ -0,0 +1,210 @@ +import { ClientAccordionContent } from "@/components/compliance/compliance-accordion/client-accordion-content"; +import { ComplianceAccordionRequirementTitle } from "@/components/compliance/compliance-accordion/compliance-accordion-requeriment-title"; +import { ComplianceAccordionTitle } from "@/components/compliance/compliance-accordion/compliance-accordion-title"; +import { AccordionItemProps } from "@/components/ui/accordion/Accordion"; +import { FindingStatus } from "@/components/ui/table/status-finding-badge"; +import { + AttributesData, + Framework, + ISO27001AttributesMetadata, + Requirement, + RequirementItemData, + RequirementsData, + RequirementStatus, +} from "@/types/compliance"; + +export const mapComplianceData = ( + attributesData: AttributesData, + requirementsData: RequirementsData, +): Framework[] => { + const attributes = attributesData?.data || []; + const requirements = requirementsData?.data || []; + + // Create a map for quick lookup of requirements by id + const requirementsMap = new Map(); + requirements.forEach((req: RequirementItemData) => { + requirementsMap.set(req.id, req); + }); + + const frameworks: Framework[] = []; + + // Process attributes and merge with requirements data + for (const attributeItem of attributes) { + const id = attributeItem.id; + const metadataArray = attributeItem.attributes?.attributes + ?.metadata as unknown as ISO27001AttributesMetadata[]; + const attrs = metadataArray?.[0]; + if (!attrs) continue; + + // Get corresponding requirement data + const requirementData = requirementsMap.get(id); + if (!requirementData) continue; + + const frameworkName = attributeItem.attributes.framework; + const categoryName = attrs.Category; + const controlLabel = `${attrs.Objetive_ID} - ${attrs.Objetive_Name}`; + const description = attributeItem.attributes.description; + const status = requirementData.attributes.status || ""; + const checks = attributeItem.attributes.attributes.check_ids || []; + const requirementName = id; + const objetiveName = attrs.Objetive_Name; + const checkSummary = attrs.Check_Summary; + + // Find or create framework + let framework = frameworks.find((f) => f.name === frameworkName); + if (!framework) { + framework = { + name: frameworkName, + pass: 0, + fail: 0, + manual: 0, + categories: [], + }; + frameworks.push(framework); + } + + // Find or create category + let category = framework.categories.find((c) => c.name === categoryName); + if (!category) { + category = { + name: categoryName, + pass: 0, + fail: 0, + manual: 0, + controls: [], + }; + framework.categories.push(category); + } + + // Find or create control + let control = category.controls.find((c) => c.label === controlLabel); + if (!control) { + control = { + label: controlLabel, + pass: 0, + fail: 0, + manual: 0, + requirements: [], + }; + category.controls.push(control); + } + + // Create requirement + const finalStatus: RequirementStatus = status as RequirementStatus; + const requirement: Requirement = { + name: requirementName, + description: description, + status: finalStatus, + check_ids: checks, + pass: finalStatus === "PASS" ? 1 : 0, + fail: finalStatus === "FAIL" ? 1 : 0, + manual: finalStatus === "MANUAL" ? 1 : 0, + objetive_name: objetiveName, + check_summary: checkSummary, + }; + + control.requirements.push(requirement); + } + + // Calculate counters + frameworks.forEach((framework) => { + framework.pass = 0; + framework.fail = 0; + framework.manual = 0; + + framework.categories.forEach((category) => { + category.pass = 0; + category.fail = 0; + category.manual = 0; + + category.controls.forEach((control) => { + control.pass = 0; + control.fail = 0; + control.manual = 0; + + control.requirements.forEach((requirement) => { + if (requirement.status === "MANUAL") { + control.manual++; + } else if (requirement.status === "PASS") { + control.pass++; + } else if (requirement.status === "FAIL") { + control.fail++; + } + }); + + category.pass += control.pass; + category.fail += control.fail; + category.manual += control.manual; + }); + + framework.pass += category.pass; + framework.fail += category.fail; + framework.manual += category.manual; + }); + }); + + return frameworks; +}; + +export const toAccordionItems = ( + data: Framework[], + scanId: string | undefined, +): AccordionItemProps[] => { + return data.flatMap((framework) => + framework.categories.map((category) => { + return { + key: `${framework.name}-${category.name}`, + title: ( + + ), + content: "", + items: category.controls.map((control, i: number) => { + return { + key: `${framework.name}-${category.name}-control-${i}`, + title: ( + + ), + content: "", + items: control.requirements.map((requirement, j: number) => { + const itemKey = `${framework.name}-${category.name}-control-${i}-req-${j}`; + + return { + key: itemKey, + title: ( + + ), + content: ( + + ), + items: [], + isDisabled: + requirement.check_ids.length === 0 && + requirement.manual === 0, + }; + }), + isDisabled: + control.pass === 0 && control.fail === 0 && control.manual === 0, + }; + }), + }; + }), + ); +}; diff --git a/ui/types/compliance.ts b/ui/types/compliance.ts index beeafcd836..ce563f4214 100644 --- a/ui/types/compliance.ts +++ b/ui/types/compliance.ts @@ -1,6 +1,9 @@ export type RequirementStatus = "PASS" | "FAIL" | "MANUAL" | "No findings"; -export type ComplianceId = "ens_rd2022_aws"; +export type ComplianceId = + | "ens_rd2022_aws" + | "iso27001_2013_aws" + | "iso27001_2022_aws"; export interface CompliancesOverview { data: ComplianceOverviewData[]; @@ -23,19 +26,17 @@ export interface Requirement { name: string; description: string; status: RequirementStatus; - type: string; pass: number; fail: number; manual: number; check_ids: string[]; - // ENS - nivel?: string; - dimensiones?: string[]; + // This is to allow any key to be added to the requirement object + // because each compliance has different keys + [key: string]: string | string[] | number | undefined; } export interface Control { label: string; - type: string; pass: number; fail: number; manual: number; @@ -58,12 +59,10 @@ export interface Framework { categories: Category[]; } -export type MappedComplianceData = Framework[]; - export interface FailedSection { name: string; total: number; - types: { [key: string]: number }; + types?: { [key: string]: number }; } export interface RequirementsTotals { @@ -73,7 +72,7 @@ export interface RequirementsTotals { } // API Responses types: -export interface AttributesMetadata { +export interface ENSAttributesMetadata { IdGrupoControl: string; Marco: string; Categoria: string; @@ -85,6 +84,13 @@ export interface AttributesMetadata { Dependencias: any[]; } +export interface ISO27001AttributesMetadata { + Category: string; + Objetive_ID: string; + Objetive_Name: string; + Check_Summary: string; +} + export interface AttributesItemData { type: "compliance-requirements-attributes"; id: string; @@ -93,7 +99,7 @@ export interface AttributesItemData { version: string; description: string; attributes: { - metadata: AttributesMetadata[]; + metadata: ENSAttributesMetadata[] | ISO27001AttributesMetadata[]; check_ids: string[]; }; }; From 7a0549d39c71b90e3d8ffba5cb27b8730223f5bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Fern=C3=A1ndez=20Poyatos?= Date: Tue, 3 Jun 2025 13:10:41 +0200 Subject: [PATCH 061/111] fix(rls): Apply persistent RLS transactions (#7916) --- api/CHANGELOG.md | 9 ++++- api/src/backend/api/base_views.py | 66 +++++++++++++++++++++---------- 2 files changed, 54 insertions(+), 21 deletions(-) diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index 4d0fbce45b..dd3446550a 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -17,6 +17,13 @@ All notable changes to the **Prowler API** are documented in this file. --- +## [v1.8.3] (Prowler v5.7.3) + +### Fixed +- Fixed transaction persistence with RLS operations [(#7916)](https://github.com/prowler-cloud/prowler/pull/7916). + +--- + ## [v1.8.2] (Prowler v5.7.2) ### Fixed @@ -30,7 +37,7 @@ All notable changes to the **Prowler API** are documented in this file. ## [v1.8.1] (Prowler v5.7.1) ### Fixed -- Added database index to improve performance on finding lookup. [(#7800)](https://github.com/prowler-cloud/prowler/pull/7800) +- Added database index to improve performance on finding lookup [(#7800)](https://github.com/prowler-cloud/prowler/pull/7800). --- diff --git a/api/src/backend/api/base_views.py b/api/src/backend/api/base_views.py index 605afe332d..54b020597f 100644 --- a/api/src/backend/api/base_views.py +++ b/api/src/backend/api/base_views.py @@ -1,5 +1,4 @@ from django.core.exceptions import ObjectDoesNotExist -from django.db import transaction from rest_framework import permissions from rest_framework.exceptions import NotAuthenticated from rest_framework.filters import SearchFilter @@ -47,11 +46,9 @@ class BaseViewSet(ModelViewSet): class BaseRLSViewSet(BaseViewSet): - def dispatch(self, request, *args, **kwargs): - with transaction.atomic(): - return super().dispatch(request, *args, **kwargs) - def initial(self, request, *args, **kwargs): + super().initial(request, *args, **kwargs) + # Ideally, this logic would be in the `.setup()` method but DRF view sets don't call it # https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View.setup if request.auth is None: @@ -61,9 +58,19 @@ class BaseRLSViewSet(BaseViewSet): if tenant_id is None: raise NotAuthenticated("Tenant ID is not present in token") - with rls_transaction(tenant_id): - self.request.tenant_id = tenant_id - return super().initial(request, *args, **kwargs) + self.request.tenant_id = tenant_id + + self._rls_cm = rls_transaction(tenant_id) + self._rls_cm.__enter__() + + def finalize_response(self, request, response, *args, **kwargs): + response = super().finalize_response(request, response, *args, **kwargs) + + if hasattr(self, "_rls_cm"): + self._rls_cm.__exit__(None, None, None) + del self._rls_cm + + return response def get_serializer_context(self): context = super().get_serializer_context() @@ -73,8 +80,7 @@ class BaseRLSViewSet(BaseViewSet): class BaseTenantViewset(BaseViewSet): def dispatch(self, request, *args, **kwargs): - with transaction.atomic(): - tenant = super().dispatch(request, *args, **kwargs) + tenant = super().dispatch(request, *args, **kwargs) try: # If the request is a POST, create the admin role @@ -109,6 +115,8 @@ class BaseTenantViewset(BaseViewSet): pass # Tenant might not exist, handle gracefully def initial(self, request, *args, **kwargs): + super().initial(request, *args, **kwargs) + if request.auth is None: raise NotAuthenticated @@ -117,19 +125,27 @@ class BaseTenantViewset(BaseViewSet): raise NotAuthenticated("Tenant ID is not present in token") user_id = str(request.user.id) - with rls_transaction(value=user_id, parameter=POSTGRES_USER_VAR): - return super().initial(request, *args, **kwargs) + + self._rls_cm = rls_transaction(value=user_id, parameter=POSTGRES_USER_VAR) + self._rls_cm.__enter__() + + def finalize_response(self, request, response, *args, **kwargs): + response = super().finalize_response(request, response, *args, **kwargs) + + if hasattr(self, "_rls_cm"): + self._rls_cm.__exit__(None, None, None) + del self._rls_cm + + return response class BaseUserViewset(BaseViewSet): - def dispatch(self, request, *args, **kwargs): - with transaction.atomic(): - return super().dispatch(request, *args, **kwargs) - def initial(self, request, *args, **kwargs): + super().initial(request, *args, **kwargs) + # TODO refactor after improving RLS on users if request.stream is not None and request.stream.method == "POST": - return super().initial(request, *args, **kwargs) + return if request.auth is None: raise NotAuthenticated @@ -137,6 +153,16 @@ class BaseUserViewset(BaseViewSet): if tenant_id is None: raise NotAuthenticated("Tenant ID is not present in token") - with rls_transaction(tenant_id): - self.request.tenant_id = tenant_id - return super().initial(request, *args, **kwargs) + self.request.tenant_id = tenant_id + + self._rls_cm = rls_transaction(tenant_id) + self._rls_cm.__enter__() + + def finalize_response(self, request, response, *args, **kwargs): + response = super().finalize_response(request, response, *args, **kwargs) + + if hasattr(self, "_rls_cm"): + self._rls_cm.__exit__(None, None, None) + del self._rls_cm + + return response From 9ee78fe65f179887a0b134644d5205dc9bee3b8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Fern=C3=A1ndez=20Poyatos?= Date: Tue, 3 Jun 2025 13:34:44 +0200 Subject: [PATCH 062/111] fix(views): calling order to initial view method (#7918) --- api/src/backend/api/base_views.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/api/src/backend/api/base_views.py b/api/src/backend/api/base_views.py index 54b020597f..60940733c2 100644 --- a/api/src/backend/api/base_views.py +++ b/api/src/backend/api/base_views.py @@ -47,8 +47,6 @@ class BaseViewSet(ModelViewSet): class BaseRLSViewSet(BaseViewSet): def initial(self, request, *args, **kwargs): - super().initial(request, *args, **kwargs) - # Ideally, this logic would be in the `.setup()` method but DRF view sets don't call it # https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View.setup if request.auth is None: @@ -63,6 +61,8 @@ class BaseRLSViewSet(BaseViewSet): self._rls_cm = rls_transaction(tenant_id) self._rls_cm.__enter__() + super().initial(request, *args, **kwargs) + def finalize_response(self, request, response, *args, **kwargs): response = super().finalize_response(request, response, *args, **kwargs) @@ -115,8 +115,6 @@ class BaseTenantViewset(BaseViewSet): pass # Tenant might not exist, handle gracefully def initial(self, request, *args, **kwargs): - super().initial(request, *args, **kwargs) - if request.auth is None: raise NotAuthenticated @@ -129,6 +127,8 @@ class BaseTenantViewset(BaseViewSet): self._rls_cm = rls_transaction(value=user_id, parameter=POSTGRES_USER_VAR) self._rls_cm.__enter__() + super().initial(request, *args, **kwargs) + def finalize_response(self, request, response, *args, **kwargs): response = super().finalize_response(request, response, *args, **kwargs) @@ -141,11 +141,9 @@ class BaseTenantViewset(BaseViewSet): class BaseUserViewset(BaseViewSet): def initial(self, request, *args, **kwargs): - super().initial(request, *args, **kwargs) - # TODO refactor after improving RLS on users if request.stream is not None and request.stream.method == "POST": - return + return super().initial(request, *args, **kwargs) if request.auth is None: raise NotAuthenticated @@ -158,6 +156,8 @@ class BaseUserViewset(BaseViewSet): self._rls_cm = rls_transaction(tenant_id) self._rls_cm.__enter__() + super().initial(request, *args, **kwargs) + def finalize_response(self, request, response, *args, **kwargs): response = super().finalize_response(request, response, *args, **kwargs) From 49e501c4be3e3663da8a37520cdb28f5fd56d4d7 Mon Sep 17 00:00:00 2001 From: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Date: Tue, 3 Jun 2025 15:47:46 +0200 Subject: [PATCH 063/111] feat: CIS compliance detail view (#7913) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Víctor Fernández Poyatos --- ui/CHANGELOG.md | 1 + .../compliance/[compliancetitle]/page.tsx | 220 +-- .../client-accordion-content.tsx | 57 +- ...compliance-accordion-requeriment-title.tsx | 2 +- ui/components/compliance/compliance-card.tsx | 2 +- .../bar-chart.tsx} | 55 +- .../compliance-charts/heatmap-chart.tsx | 165 +++ .../pie-chart.tsx} | 20 +- .../compliance-custom-details/cis-details.tsx | 150 ++ .../compliance-header/compliance-header.tsx | 44 +- ui/components/compliance/index.ts | 19 +- .../bar-chart-skeleton.tsx} | 2 +- .../compliance-accordion-skeleton.tsx} | 0 .../compliance-grid-skeleton.tsx} | 0 .../skeletons/heatmap-chart-skeleton.tsx | 28 + .../pie-chart-skeleton.tsx} | 2 +- .../ui/content-layout/content-layout.tsx | 5 +- .../ui/custom/custom-dropdown-filter.tsx | 89 +- ui/components/ui/nav-bar/navbar.tsx | 22 +- ui/lib/compliance/cis.tsx | 204 +++ ui/lib/compliance/commons.ts | 164 ++- ui/lib/compliance/ens.tsx | 13 +- ui/lib/compliance/iso.tsx | 8 +- ui/package-lock.json | 1226 ++++++++++++++++- ui/package.json | 2 + ui/tailwind.config.js | 7 +- ui/types/compliance.ts | 37 +- ui/types/filters.ts | 3 + 28 files changed, 2336 insertions(+), 211 deletions(-) rename ui/components/compliance/{failed-sections-chart.tsx => compliance-charts/bar-chart.tsx} (81%) create mode 100644 ui/components/compliance/compliance-charts/heatmap-chart.tsx rename ui/components/compliance/{requirements-chart.tsx => compliance-charts/pie-chart.tsx} (95%) create mode 100644 ui/components/compliance/compliance-custom-details/cis-details.tsx rename ui/components/compliance/{failed-sections-chart-skeleton.tsx => skeletons/bar-chart-skeleton.tsx} (97%) rename ui/components/compliance/{compliance-skeleton-accordion.tsx => skeletons/compliance-accordion-skeleton.tsx} (100%) rename ui/components/compliance/{compliance-skeleton-grid.tsx => skeletons/compliance-grid-skeleton.tsx} (100%) create mode 100644 ui/components/compliance/skeletons/heatmap-chart-skeleton.tsx rename ui/components/compliance/{requirements-chart-skeleton.tsx => skeletons/pie-chart-skeleton.tsx} (97%) create mode 100644 ui/lib/compliance/cis.tsx diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 1cb3bc30de..e770712ddd 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -12,6 +12,7 @@ All notable changes to the **Prowler UI** are documented in this file. - Add GCP credential method (Account Service Key). [(#7872)](https://github.com/prowler-cloud/prowler/pull/7872) - Add compliance detail view: ENS [(#7853)](https://github.com/prowler-cloud/prowler/pull/7853) - Add compliance detail view: ISO [(#7897)](https://github.com/prowler-cloud/prowler/pull/7897) +- Add compliance detail view: CIS [(#7913)](https://github.com/prowler-cloud/prowler/pull/7913) ### 🔄 Changed diff --git a/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx b/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx index b32781e482..189a33531a 100644 --- a/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx +++ b/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx @@ -9,16 +9,24 @@ import { } from "@/actions/compliances"; import { getProvider } from "@/actions/providers"; import { getScans } from "@/actions/scans"; -import { ClientAccordionWrapper } from "@/components/compliance/compliance-accordion/client-accordion-wrapper"; -import { ComplianceHeader } from "@/components/compliance/compliance-header/compliance-header"; -import { SkeletonAccordion } from "@/components/compliance/compliance-skeleton-accordion"; -import { FailedSectionsChart } from "@/components/compliance/failed-sections-chart"; -import { FailedSectionsChartSkeleton } from "@/components/compliance/failed-sections-chart-skeleton"; -import { RequirementsChart } from "@/components/compliance/requirements-chart"; -import { RequirementsChartSkeleton } from "@/components/compliance/requirements-chart-skeleton"; +import { + BarChart, + BarChartSkeleton, + ClientAccordionWrapper, + ComplianceHeader, + HeatmapChart, + HeatmapChartSkeleton, + PieChart, + PieChartSkeleton, + SkeletonAccordion, +} from "@/components/compliance"; import { getComplianceIcon } from "@/components/icons/compliance/IconCompliance"; import { ContentLayout } from "@/components/ui"; -import { getComplianceMapper } from "@/lib/compliance/commons"; +import { + calculateCategoryHeatmapData, + calculateRegionHeatmapData, + getComplianceMapper, +} from "@/lib/compliance/commons"; import { ScanProps } from "@/types"; import { Framework, RequirementsTotals } from "@/types/compliance"; @@ -27,17 +35,23 @@ interface ComplianceDetailSearchParams { version?: string; scanId?: string; "filter[region__in]"?: string; + "filter[cis_profile_level]"?: string; } -const ComplianceLogo = ({ logoPath }: { logoPath: string }) => { +const ComplianceIconSmall = ({ + logoPath, + title, +}: { + logoPath: string; + title: string; +}) => { return ( -
+
Compliance Logo
); @@ -45,17 +59,13 @@ const ComplianceLogo = ({ logoPath }: { logoPath: string }) => { const ChartsWrapper = ({ children, - logoPath, }: { children: React.ReactNode; logoPath?: string; }) => { return ( -
-
- {children} -
- {logoPath && } +
+ {children}
); }; @@ -70,6 +80,7 @@ export default async function ComplianceDetail({ const { compliancetitle } = params; const { complianceId, version, scanId } = searchParams; const regionFilter = searchParams["filter[region__in]"]; + const cisProfileFilter = searchParams["filter[cis_profile_level]"]; const logoPath = getComplianceIcon(compliancetitle); // Create a key that includes region filter for Suspense @@ -88,31 +99,33 @@ export default async function ComplianceDetail({ }); // Expand scans with provider information - const expandedScansData = await Promise.all( - scansData.data.map(async (scan: ScanProps) => { - const providerId = scan.relationships?.provider?.data?.id; + const expandedScansData = scansData?.data?.length + ? await Promise.all( + scansData.data.map(async (scan: ScanProps) => { + const providerId = scan.relationships?.provider?.data?.id; - if (!providerId) { - return { ...scan, providerInfo: null }; - } + if (!providerId) { + return { ...scan, providerInfo: null }; + } - const formData = new FormData(); - formData.append("id", providerId); + const formData = new FormData(); + formData.append("id", providerId); - const providerData = await getProvider(formData); + const providerData = await getProvider(formData); - return { - ...scan, - providerInfo: providerData?.data - ? { - provider: providerData.data.attributes.provider, - uid: providerData.data.attributes.uid, - alias: providerData.data.attributes.alias, - } - : null, - }; - }), - ); + return { + ...scan, + providerInfo: providerData?.data + ? { + provider: providerData.data.attributes.provider, + uid: providerData.data.attributes.uid, + alias: providerData.data.attributes.alias, + } + : null, + }; + }), + ) + : []; const selectedScanId = scanId || expandedScansData[0]?.id || null; @@ -126,11 +139,21 @@ export default async function ComplianceDetail({ const uniqueRegions = metadataInfoData?.data?.attributes?.regions || []; return ( - + + ) : ( + "fluent-mdl2:compliance-audit" + ) + } + > - - + + +
@@ -149,18 +173,57 @@ export default async function ComplianceDetail({ complianceId={complianceId} scanId={selectedScanId} region={regionFilter} + filter={cisProfileFilter} logoPath={logoPath} + uniqueRegions={uniqueRegions} + isRegionFiltered={ + !!regionFilter && + regionFilter.split(",").length < uniqueRegions.length + } /> ); } -const getComplianceData = async ( - complianceId: string, - scanId: string, - region?: string, -): Promise => { +const SSRComplianceContent = async ({ + complianceId, + scanId, + region, + filter, + logoPath, + uniqueRegions, + isRegionFiltered, +}: { + complianceId: string; + scanId: string; + region?: string; + filter?: string; + logoPath?: string; + uniqueRegions: string[]; + isRegionFiltered: boolean; +}) => { + if (!scanId) { + return ( +
+ + + + + + +
+ ); + } + + // Get compliance data and attributes once const [attributesData, requirementsData] = await Promise.all([ getComplianceAttributes(complianceId), getComplianceRequirements({ @@ -172,40 +235,25 @@ const getComplianceData = async ( // Determine framework from the first attribute item const framework = attributesData?.data?.[0]?.attributes?.framework; - - // Get the appropriate mapper for this framework const mapper = getComplianceMapper(framework); - const mappedData = mapper.mapComplianceData(attributesData, requirementsData); + const data = mapper.mapComplianceData( + attributesData, + requirementsData, + filter, + ); - return mappedData; -}; + // Calculate region heatmap data using already obtained data + const regionHeatmapData = await calculateRegionHeatmapData( + complianceId, + scanId, + uniqueRegions, + attributesData, + mapper, + ); + const categoryHeatmapData = calculateCategoryHeatmapData(data); -const SSRComplianceContent = async ({ - complianceId, - scanId, - region, - logoPath, -}: { - complianceId: string; - scanId: string; - region?: string; - logoPath?: string; -}) => { - if (!scanId) { - return ( -
- - - - - -
- ); - } - - const data = await getComplianceData(complianceId, scanId, region); const totalRequirements: RequirementsTotals = data.reduce( - (acc, framework) => ({ + (acc: RequirementsTotals, framework: Framework) => ({ pass: acc.pass + framework.pass, fail: acc.fail + framework.fail, manual: acc.manual + framework.manual, @@ -213,12 +261,6 @@ const SSRComplianceContent = async ({ { pass: 0, fail: 0, manual: 0 }, ); - // Get the framework to determine which mapper to use - const attributesData = await getComplianceAttributes(complianceId); - const framework = attributesData?.data?.[0]?.attributes?.framework; - - // Get the appropriate mapper for this framework - const mapper = getComplianceMapper(framework); const accordionItems = mapper.toAccordionItems(data, scanId); const topFailedSections = mapper.getTopFailedSections(data); @@ -229,12 +271,18 @@ const SSRComplianceContent = async ({ return (
- - + + diff --git a/ui/components/compliance/compliance-accordion/client-accordion-content.tsx b/ui/components/compliance/compliance-accordion/client-accordion-content.tsx index b79a1c1e8e..d22c4b2fe4 100644 --- a/ui/components/compliance/compliance-accordion/client-accordion-content.tsx +++ b/ui/components/compliance/compliance-accordion/client-accordion-content.tsx @@ -11,20 +11,22 @@ import { import { Accordion } from "@/components/ui/accordion/Accordion"; import { DataTable } from "@/components/ui/table"; import { createDict } from "@/lib"; +import { getComplianceMapper } from "@/lib/compliance/commons"; import { ComplianceId, Requirement } from "@/types/compliance"; import { FindingProps, FindingsResponse } from "@/types/components"; -import { ENSCustomDetails } from "../compliance-custom-details/ens-details"; -import { ISOCustomDetails } from "../compliance-custom-details/iso-details"; - interface ClientAccordionContentProps { requirement: Requirement; scanId: string; + framework: string; + disableFindings?: boolean; } export const ClientAccordionContent = ({ requirement, + framework, scanId, + disableFindings = false, }: ClientAccordionContentProps) => { const [findings, setFindings] = useState(null); const [expandedFindings, setExpandedFindings] = useState([]); @@ -41,6 +43,7 @@ export const ClientAccordionContent = ({ useEffect(() => { async function loadFindings() { if ( + !disableFindings && requirement.check_ids?.length > 0 && requirement.status !== "No findings" && (loadedPageRef.current !== pageNumber || @@ -96,7 +99,29 @@ export const ClientAccordionContent = ({ } loadFindings(); - }, [requirement, scanId, pageNumber, sort, region]); + }, [requirement, scanId, pageNumber, sort, region, disableFindings]); + + const renderDetails = () => { + if (!complianceId) { + return null; + } + + const mapper = getComplianceMapper(framework); + const detailsComponent = mapper.getDetailsComponent(requirement); + + return
{detailsComponent}
; + }; + + if (disableFindings) { + return ( +
+ {renderDetails()} +

+ This requirement has no checks; therefore, there are no findings. +

+
+ ); + } const checks = requirement.check_ids || []; const checksList = ( @@ -142,30 +167,6 @@ export const ClientAccordionContent = ({ return
There are no findings for this regions
; }; - const renderDetails = () => { - if (!complianceId) { - return null; - } - - switch (complianceId) { - case "ens_rd2022_aws": - return ( -
- -
- ); - case "iso27001_2013_aws": - case "iso27001_2022_aws": - return ( -
- -
- ); - default: - return null; - } - }; - return (
{renderDetails()} diff --git a/ui/components/compliance/compliance-accordion/compliance-accordion-requeriment-title.tsx b/ui/components/compliance/compliance-accordion/compliance-accordion-requeriment-title.tsx index 1c62e87d29..8f14cddf36 100644 --- a/ui/components/compliance/compliance-accordion/compliance-accordion-requeriment-title.tsx +++ b/ui/components/compliance/compliance-accordion/compliance-accordion-requeriment-title.tsx @@ -13,7 +13,7 @@ export const ComplianceAccordionRequirementTitle = ({ return (
- {name} + {name}
diff --git a/ui/components/compliance/compliance-card.tsx b/ui/components/compliance/compliance-card.tsx index c7a745348e..10a473236f 100644 --- a/ui/components/compliance/compliance-card.tsx +++ b/ui/components/compliance/compliance-card.tsx @@ -73,7 +73,7 @@ export const ComplianceCard: React.FC = ({ const navigateToDetail = () => { // We will unlock this while developing the rest of complainces. - if (!id.includes("ens") && !id.includes("iso")) { + if (!id.includes("ens") && !id.includes("iso") && !id.includes("cis_")) { return; } diff --git a/ui/components/compliance/failed-sections-chart.tsx b/ui/components/compliance/compliance-charts/bar-chart.tsx similarity index 81% rename from ui/components/compliance/failed-sections-chart.tsx rename to ui/components/compliance/compliance-charts/bar-chart.tsx index d27e961737..5701075247 100644 --- a/ui/components/compliance/failed-sections-chart.tsx +++ b/ui/components/compliance/compliance-charts/bar-chart.tsx @@ -3,7 +3,7 @@ import { useTheme } from "next-themes"; import { Bar, - BarChart, + BarChart as RechartsBarChart, Legend, ResponsiveContainer, Tooltip, @@ -24,7 +24,7 @@ const title = ( ); -export const FailedSectionsChart = ({ sections }: FailedSectionsListProps) => { +export const BarChart = ({ sections }: FailedSectionsListProps) => { const { theme } = useTheme(); const getTypeColor = (type: string) => { @@ -84,16 +84,16 @@ export const FailedSectionsChart = ({ sections }: FailedSectionsListProps) => { } return ( -
-
{title}
+
+
{title}
-
+
- { { }} cursor={false} /> - {allTypes.length > 1 && ( - translateType(value)} - wrapperStyle={{ - fontSize: "10px", - display: "flex", - justifyContent: "center", - width: "100%", - paddingTop: "16px", - marginBottom: "4px", - }} - iconType="circle" - layout="horizontal" - verticalAlign="bottom" - /> - )} {allTypes.map((type, i) => ( { radius={i === allTypes.length - 1 ? [0, 4, 4, 0] : [0, 0, 0, 0]} /> ))} - + translateType(value)} + wrapperStyle={{ + fontSize: "10px", + display: "flex", + justifyContent: "center", + width: "100%", + paddingTop: "16px", + marginBottom: "16px", + }} + iconType="circle" + layout="horizontal" + verticalAlign="bottom" + /> +
diff --git a/ui/components/compliance/compliance-charts/heatmap-chart.tsx b/ui/components/compliance/compliance-charts/heatmap-chart.tsx new file mode 100644 index 0000000000..d4cb3b3a0a --- /dev/null +++ b/ui/components/compliance/compliance-charts/heatmap-chart.tsx @@ -0,0 +1,165 @@ +"use client"; + +import { useTheme } from "next-themes"; +import { useState } from "react"; + +import { CategoryData, RegionData } from "@/types/compliance"; + +interface HeatmapChartProps { + regions: RegionData[]; + categories?: CategoryData[]; + isRegionFiltered?: boolean; // Indicates if a region filter is active + filteredRegionName?: string; // Name of the filtered region +} + +const getHeatmapColor = (percentage: number): string => { + if (percentage === 0) return "#10b981"; // Green for 0% failures + if (percentage <= 25) return "#eab308"; // Yellow + if (percentage <= 50) return "#f97316"; // Orange + if (percentage <= 100) return "#ef4444"; // Red + return "#ef4444"; +}; + +const capitalizeFirstLetter = (text: string): string => { + const lowerText = text.toLowerCase(); + const firstLetterIndex = lowerText.search(/[a-zA-Z]/); + if (firstLetterIndex === -1) return text; // No letters found + + return ( + lowerText.slice(0, firstLetterIndex) + + lowerText.charAt(firstLetterIndex).toUpperCase() + + lowerText.slice(firstLetterIndex + 1) + ); +}; + +export const HeatmapChart = ({ + regions, + categories = [], + isRegionFiltered = false, +}: HeatmapChartProps) => { + const { theme } = useTheme(); + const [hoveredItem, setHoveredItem] = useState< + RegionData | CategoryData | null + >(null); + const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 }); + + // Determine what data to show and prepare it + const dataToShow = isRegionFiltered ? categories : regions; + const heatmapData = dataToShow + .filter((item) => item.totalRequirements > 0) + .sort((a, b) => b.failurePercentage - a.failurePercentage) + .slice(0, 9); // Exactly 9 items for 3x3 grid + + // Check if there are no items with data + if (!dataToShow || dataToShow.length === 0 || heatmapData.length === 0) { + const noDataMessage = isRegionFiltered + ? "No category data available" + : "No regional data available"; + + return ( +
+

+ {isRegionFiltered + ? "Categories Failure Rate" + : "Failure Rate by Region"} +

+
+

{noDataMessage}

+
+
+ ); + } + + const handleMouseEnter = ( + item: RegionData | CategoryData, + event: React.MouseEvent, + ) => { + setHoveredItem(item); + setMousePosition({ x: event.clientX, y: event.clientY }); + }; + + const handleMouseMove = (event: React.MouseEvent) => { + setMousePosition({ x: event.clientX, y: event.clientY }); + }; + + const handleMouseLeave = () => { + setHoveredItem(null); + }; + + return ( +
+
+

+ {isRegionFiltered + ? "Categories Failure Rate" + : "Failure Rate by Region"} +

+
+ +
+ {/* 3x3 Grid */} +
+ {heatmapData.map((item) => ( +
handleMouseEnter(item, e)} + onMouseMove={handleMouseMove} + onMouseLeave={handleMouseLeave} + > +
+
+ {isRegionFiltered + ? capitalizeFirstLetter(item.name) + : item.name} +
+
+ {item.failurePercentage}% +
+
+
+ ))} +
+ + {/* Custom Tooltip */} + {hoveredItem && ( +
+
+ {isRegionFiltered + ? capitalizeFirstLetter(hoveredItem.name) + : hoveredItem.name} +
+
Failure Rate: {hoveredItem.failurePercentage}%
+
+ Failed: {hoveredItem.failedRequirements}/ + {hoveredItem.totalRequirements} +
+
+ )} +
+
+ ); +}; diff --git a/ui/components/compliance/requirements-chart.tsx b/ui/components/compliance/compliance-charts/pie-chart.tsx similarity index 95% rename from ui/components/compliance/requirements-chart.tsx rename to ui/components/compliance/compliance-charts/pie-chart.tsx index eb40619a8b..3e5cc01fb8 100644 --- a/ui/components/compliance/requirements-chart.tsx +++ b/ui/components/compliance/compliance-charts/pie-chart.tsx @@ -1,11 +1,17 @@ "use client"; import { useTheme } from "next-themes"; -import { Cell, Label, Pie, PieChart, Tooltip } from "recharts"; +import { + Cell, + Label, + Pie, + PieChart as RechartsPieChart, + Tooltip, +} from "recharts"; import { ChartConfig, ChartContainer } from "@/components/ui/chart/Chart"; -interface RequirementsChartProps { +interface PieChartProps { pass: number; fail: number; manual: number; @@ -29,11 +35,7 @@ const chartConfig = { }, } satisfies ChartConfig; -export const RequirementsChart = ({ - pass, - fail, - manual, -}: RequirementsChartProps) => { +export const PieChart = ({ pass, fail, manual }: PieChartProps) => { const { theme } = useTheme(); const chartData = [ @@ -119,7 +121,7 @@ export const RequirementsChart = ({ config={chartConfig} className="aspect-square w-[200px] min-w-[200px]" > - + } @@ -168,7 +170,7 @@ export const RequirementsChart = ({ }} /> - +
diff --git a/ui/components/compliance/compliance-custom-details/cis-details.tsx b/ui/components/compliance/compliance-custom-details/cis-details.tsx new file mode 100644 index 0000000000..e4d99db68f --- /dev/null +++ b/ui/components/compliance/compliance-custom-details/cis-details.tsx @@ -0,0 +1,150 @@ +import ReactMarkdown from "react-markdown"; + +import { Requirement } from "@/types/compliance"; + +interface CISDetailsProps { + requirement: Requirement; +} + +export const CISCustomDetails = ({ requirement }: CISDetailsProps) => { + const processReferences = ( + references: string | number | string[] | undefined, + ): string[] => { + if (typeof references !== "string") return []; + + // Use regex to extract all URLs that start with https:// + const urlRegex = /https:\/\/[^:]+/g; + const urls = references.match(urlRegex); + + return urls || []; + }; + + return ( +
+ {requirement.profile && ( +
+

+ Profile Level +

+

{requirement.profile}

+
+ )} + + {requirement.subsection && ( +
+

+ SubSection +

+

{requirement.subsection}

+
+ )} + + {requirement.assessment_status && ( +
+

+ Assessment Status +

+

{requirement.assessment_status}

+
+ )} + + {requirement.description && ( +
+

+ Description +

+

{requirement.description}

+
+ )} + + {requirement.rationale_statement && ( +
+

+ Rationale Statement +

+

{requirement.rationale_statement}

+
+ )} + + {requirement.impact_statement && ( +
+

+ Impact Statement +

+

{requirement.impact_statement}

+
+ )} + + {requirement.remediation_procedure && + typeof requirement.remediation_procedure === "string" && ( +
+

+ Remediation Procedure +

+ {/* Prettier -> "plugins": ["prettier-plugin-tailwindcss"] is not ready yet to "prose": */} + {/* eslint-disable-next-line */} +
+ {requirement.remediation_procedure} +
+
+ )} + + {requirement.audit_procedure && + typeof requirement.audit_procedure === "string" && ( +
+

+ Audit Procedure +

+ {/* eslint-disable-next-line */} +
+ {requirement.audit_procedure} +
+
+ )} + + {requirement.additional_information && ( +
+

+ Additional Information +

+

+ {requirement.additional_information} +

+
+ )} + + {requirement.default_value && ( +
+

+ Default Value +

+

{requirement.default_value}

+
+ )} + + {requirement.references && ( +
+

+ References +

+
+ {processReferences(requirement.references).map( + (url: string, index: number) => ( + + ), + )} +
+
+ )} +
+ ); +}; diff --git a/ui/components/compliance/compliance-header/compliance-header.tsx b/ui/components/compliance/compliance-header/compliance-header.tsx index 9e31f4de5d..e6bfe0dd2d 100644 --- a/ui/components/compliance/compliance-header/compliance-header.tsx +++ b/ui/components/compliance/compliance-header/compliance-header.tsx @@ -13,6 +13,7 @@ interface ComplianceHeaderProps { uniqueRegions: string[]; showSearch?: boolean; showRegionFilter?: boolean; + framework?: string; // Framework name to show specific filters } export const ComplianceHeader = ({ @@ -20,25 +21,46 @@ export const ComplianceHeader = ({ uniqueRegions, showSearch = true, showRegionFilter = true, + framework, }: ComplianceHeaderProps) => { + const frameworkFilters = []; + + // Add CIS Profile Level filter if framework is CIS + if (framework === "CIS") { + frameworkFilters.push({ + key: "cis_profile_level", + labelCheckboxGroup: "Level", + values: ["Level 1", "Level 2"], + index: 0, // Show first + showSelectAll: false, // No "Select All" option since Level 2 includes Level 1 + defaultValues: ["Level 2"], // Default to Level 2 selected (which includes Level 1) + }); + } + + // Prepare region filters + const regionFilters = showRegionFilter + ? [ + { + key: "region__in", + labelCheckboxGroup: "Regions", + values: uniqueRegions, + index: 1, // Show after framework filters + defaultToSelectAll: true, // Default to all regions selected + }, + ] + : []; + + const allFilters = [...frameworkFilters, ...regionFilters]; + return ( <> {showSearch && } - {showRegionFilter && ( + {allFilters.length > 0 && ( <> - + )} diff --git a/ui/components/compliance/index.ts b/ui/components/compliance/index.ts index fc730a267d..5beaaf4c5b 100644 --- a/ui/components/compliance/index.ts +++ b/ui/components/compliance/index.ts @@ -1,4 +1,21 @@ +export * from "./compliance-accordion/client-accordion-content"; +export * from "./compliance-accordion/client-accordion-wrapper"; +export * from "./compliance-accordion/compliance-accordion-requeriment-title"; +export * from "./compliance-accordion/compliance-accordion-title"; export * from "./compliance-card"; +export * from "./compliance-charts/bar-chart"; +export * from "./compliance-charts/heatmap-chart"; +export * from "./compliance-charts/pie-chart"; +export * from "./compliance-custom-details/cis-details"; +export * from "./compliance-custom-details/ens-details"; +export * from "./compliance-custom-details/iso-details"; +export * from "./compliance-header/compliance-header"; export * from "./compliance-header/compliance-scan-info"; -export * from "./compliance-skeleton-grid"; +export * from "./compliance-header/data-compliance"; +export * from "./compliance-header/select-scan-compliance-data"; export * from "./no-scans-available"; +export * from "./skeletons/bar-chart-skeleton"; +export * from "./skeletons/compliance-accordion-skeleton"; +export * from "./skeletons/compliance-grid-skeleton"; +export * from "./skeletons/heatmap-chart-skeleton"; +export * from "./skeletons/pie-chart-skeleton"; diff --git a/ui/components/compliance/failed-sections-chart-skeleton.tsx b/ui/components/compliance/skeletons/bar-chart-skeleton.tsx similarity index 97% rename from ui/components/compliance/failed-sections-chart-skeleton.tsx rename to ui/components/compliance/skeletons/bar-chart-skeleton.tsx index 24164ae55c..05f26ae938 100644 --- a/ui/components/compliance/failed-sections-chart-skeleton.tsx +++ b/ui/components/compliance/skeletons/bar-chart-skeleton.tsx @@ -2,7 +2,7 @@ import { Skeleton } from "@nextui-org/react"; -export const FailedSectionsChartSkeleton = () => { +export const BarChartSkeleton = () => { return (
{/* Title skeleton */} diff --git a/ui/components/compliance/compliance-skeleton-accordion.tsx b/ui/components/compliance/skeletons/compliance-accordion-skeleton.tsx similarity index 100% rename from ui/components/compliance/compliance-skeleton-accordion.tsx rename to ui/components/compliance/skeletons/compliance-accordion-skeleton.tsx diff --git a/ui/components/compliance/compliance-skeleton-grid.tsx b/ui/components/compliance/skeletons/compliance-grid-skeleton.tsx similarity index 100% rename from ui/components/compliance/compliance-skeleton-grid.tsx rename to ui/components/compliance/skeletons/compliance-grid-skeleton.tsx diff --git a/ui/components/compliance/skeletons/heatmap-chart-skeleton.tsx b/ui/components/compliance/skeletons/heatmap-chart-skeleton.tsx new file mode 100644 index 0000000000..ae247900f2 --- /dev/null +++ b/ui/components/compliance/skeletons/heatmap-chart-skeleton.tsx @@ -0,0 +1,28 @@ +"use client"; + +import { Skeleton } from "@nextui-org/react"; + +export const HeatmapChartSkeleton = () => { + return ( +
+ {/* Title skeleton */} + +
+ + + {/* Heatmap area skeleton - 3x3 grid like the real component */} +
+
+ {Array.from({ length: 9 }).map((_, index) => ( + +
+ + ))} +
+
+
+ ); +}; diff --git a/ui/components/compliance/requirements-chart-skeleton.tsx b/ui/components/compliance/skeletons/pie-chart-skeleton.tsx similarity index 97% rename from ui/components/compliance/requirements-chart-skeleton.tsx rename to ui/components/compliance/skeletons/pie-chart-skeleton.tsx index eae6ff6e4e..f21c653b24 100644 --- a/ui/components/compliance/requirements-chart-skeleton.tsx +++ b/ui/components/compliance/skeletons/pie-chart-skeleton.tsx @@ -2,7 +2,7 @@ import { Skeleton } from "@nextui-org/react"; -export const RequirementsChartSkeleton = () => { +export const PieChartSkeleton = () => { return (
{/* Title skeleton */} diff --git a/ui/components/ui/content-layout/content-layout.tsx b/ui/components/ui/content-layout/content-layout.tsx index f1fdb13a57..518fb58efa 100644 --- a/ui/components/ui/content-layout/content-layout.tsx +++ b/ui/components/ui/content-layout/content-layout.tsx @@ -1,12 +1,13 @@ -import { Suspense, use } from "react"; +import { ReactNode, Suspense, use } from "react"; import { getUserInfo } from "@/actions/users/users"; import { Navbar } from "../nav-bar/navbar"; import { SkeletonContentLayout } from "./skeleton-content-layout"; + interface ContentLayoutProps { title: string; - icon: string; + icon: string | ReactNode; children: React.ReactNode; } diff --git a/ui/components/ui/custom/custom-dropdown-filter.tsx b/ui/components/ui/custom/custom-dropdown-filter.tsx index 254efa5024..b17828083a 100644 --- a/ui/components/ui/custom/custom-dropdown-filter.tsx +++ b/ui/components/ui/custom/custom-dropdown-filter.tsx @@ -12,7 +12,13 @@ import { } from "@nextui-org/react"; import { ChevronDown, X } from "lucide-react"; import { useSearchParams } from "next/navigation"; -import React, { useCallback, useEffect, useMemo, useState } from "react"; +import React, { + useCallback, + useEffect, + useMemo, + useRef, + useState, +} from "react"; import { CustomDropdownFilterProps } from "@/types"; @@ -25,6 +31,7 @@ export const CustomDropdownFilter = ({ const searchParams = useSearchParams(); const [groupSelected, setGroupSelected] = useState(new Set()); const [isOpen, setIsOpen] = useState(false); + const hasUserInteracted = useRef(false); const filterValues = useMemo(() => filter?.values || [], [filter?.values]); const selectedValues = Array.from(groupSelected).filter( @@ -42,24 +49,66 @@ export const CustomDropdownFilter = ({ useEffect(() => { if (activeFilterValue.length > 0) { const newSelection = new Set(activeFilterValue); - if (newSelection.size === filterValues.length) { + if ( + newSelection.size === filterValues.length && + filter?.showSelectAll !== false + ) { newSelection.add("all"); } setGroupSelected(newSelection); - } else { - setGroupSelected(new Set()); + } else if (!hasUserInteracted.current) { + // Handle default behavior when no URL params exist + // Only apply defaults if user hasn't interacted yet + // Only set visual state, don't trigger URL changes automatically + if (filter?.defaultToSelectAll && filterValues.length > 0) { + const newSelection = new Set(filterValues); + if (filter?.showSelectAll !== false) { + newSelection.add("all"); + } + setGroupSelected(newSelection); + // DON'T notify parent automatically - wait for user interaction + } else if (filter?.defaultValues && filter.defaultValues.length > 0) { + // Handle specific default values + const validDefaultValues = filter.defaultValues.filter((value) => + filterValues.includes(value), + ); + const newSelection = new Set(validDefaultValues); + + // Add "all" if all items are selected and showSelectAll is not false + if ( + validDefaultValues.length === filterValues.length && + filter?.showSelectAll !== false + ) { + newSelection.add("all"); + } + + setGroupSelected(newSelection); + // DON'T notify parent automatically - wait for user interaction + } else { + setGroupSelected(new Set()); + } } - }, [activeFilterValue, filterValues.length]); + }, [ + activeFilterValue, + filterValues, + filter?.defaultToSelectAll, + filter?.defaultValues, + filter?.showSelectAll, + ]); const updateSelection = useCallback( (newValues: string[]) => { + // Mark that user has interacted with the filter + hasUserInteracted.current = true; + const actualValues = newValues.filter((key) => key !== "all"); const newSelection = new Set(actualValues); - // Auto-add "all" if all items are selected + // Auto-add "all" if all items are selected and showSelectAll is not false if ( actualValues.length === filterValues.length && - filterValues.length > 0 + filterValues.length > 0 && + filter?.showSelectAll !== false ) { newSelection.add("all"); } @@ -69,7 +118,7 @@ export const CustomDropdownFilter = ({ // Notify parent with actual values (excluding "all") onFilterChange?.(filter.key, actualValues); }, - [filterValues.length, onFilterChange, filter.key], + [filterValues.length, onFilterChange, filter.key, filter?.showSelectAll], ); const onSelectionChange = useCallback( @@ -194,16 +243,20 @@ export const CustomDropdownFilter = ({ onValueChange={onSelectionChange} className="font-bold" > - - Select All - - + {filter?.showSelectAll !== false && ( + <> + + Select All + + + + )}
- + {typeof icon === "string" ? ( + + ) : ( +
+ {icon} +
+ )}

{title}

diff --git a/ui/lib/compliance/cis.tsx b/ui/lib/compliance/cis.tsx new file mode 100644 index 0000000000..df59c6dd95 --- /dev/null +++ b/ui/lib/compliance/cis.tsx @@ -0,0 +1,204 @@ +import { ClientAccordionContent } from "@/components/compliance/compliance-accordion/client-accordion-content"; +import { ComplianceAccordionRequirementTitle } from "@/components/compliance/compliance-accordion/compliance-accordion-requeriment-title"; +import { ComplianceAccordionTitle } from "@/components/compliance/compliance-accordion/compliance-accordion-title"; +import { AccordionItemProps } from "@/components/ui/accordion/Accordion"; +import { FindingStatus } from "@/components/ui/table/status-finding-badge"; +import { + AttributesData, + CISAttributesMetadata, + Framework, + Requirement, + RequirementItemData, + RequirementsData, + RequirementStatus, +} from "@/types/compliance"; + +export const mapComplianceData = ( + attributesData: AttributesData, + requirementsData: RequirementsData, + filter?: string, // "Level 1" or "Level 2" or undefined (show all) +): Framework[] => { + const attributes = attributesData?.data || []; + const requirements = requirementsData?.data || []; + + // Create a map for quick lookup of requirements by id + const requirementsMap = new Map(); + requirements.forEach((req: RequirementItemData) => { + requirementsMap.set(req.id, req); + }); + + const frameworks: Framework[] = []; + + // Process attributes and merge with requirements data + for (const attributeItem of attributes) { + const id = attributeItem.id; + const metadataArray = attributeItem.attributes?.attributes + ?.metadata as unknown as CISAttributesMetadata[]; + const attrs = metadataArray?.[0]; + if (!attrs) continue; + + // Apply profile filter + if (filter === "Level 1" && attrs.Profile !== "Level 1") { + continue; // Skip Level 2 requirements when Level 1 is selected + } + + // Get corresponding requirement data + const requirementData = requirementsMap.get(id); + if (!requirementData) continue; + + const frameworkName = attributeItem.attributes.framework; + const sectionName = attrs.Section; + const description = attributeItem.attributes.description; + const status = requirementData.attributes.status || ""; + const checks = attributeItem.attributes.attributes.check_ids || []; + const requirementName = id; + + // Find or create framework + let framework = frameworks.find((f) => f.name === frameworkName); + if (!framework) { + framework = { + name: frameworkName, + pass: 0, + fail: 0, + manual: 0, + categories: [], + }; + frameworks.push(framework); + } + + const normalizedSectionName = sectionName.replace(/^(\d+)\s/, "$1. "); + let category = framework.categories.find( + (c) => c.name === normalizedSectionName, + ); + + if (!category) { + category = { + name: normalizedSectionName, + pass: 0, + fail: 0, + manual: 0, + controls: [], + }; + framework.categories.push(category); + } + + // Create a control for this requirement (each requirement is its own control) + const controlLabel = `${id} - ${description}`; + const control = { + label: controlLabel, + pass: 0, + fail: 0, + manual: 0, + requirements: [] as Requirement[], + }; + + // Create requirement + const finalStatus: RequirementStatus = status as RequirementStatus; + const requirement: Requirement = { + name: requirementName, + description: attrs.Description, + status: finalStatus, + check_ids: checks, + pass: finalStatus === "PASS" ? 1 : 0, + fail: finalStatus === "FAIL" ? 1 : 0, + manual: finalStatus === "MANUAL" ? 1 : 0, + profile: attrs.Profile, + subsection: attrs.SubSection || "", + assessment_status: attrs.AssessmentStatus, + rationale_statement: attrs.RationaleStatement, + impact_statement: attrs.ImpactStatement, + remediation_procedure: attrs.RemediationProcedure, + audit_procedure: attrs.AuditProcedure, + additional_information: attrs.AdditionalInformation, + default_value: attrs.DefaultValue || "", + references: attrs.References, + }; + + control.requirements.push(requirement); + + // Update control counters + if (requirement.status === "MANUAL") { + control.manual++; + } else if (requirement.status === "PASS") { + control.pass++; + } else if (requirement.status === "FAIL") { + control.fail++; + } + + category.controls.push(control); + } + + // Calculate counters for categories and frameworks + frameworks.forEach((framework) => { + framework.pass = 0; + framework.fail = 0; + framework.manual = 0; + + framework.categories.forEach((category) => { + category.pass = 0; + category.fail = 0; + category.manual = 0; + + category.controls.forEach((control) => { + category.pass += control.pass; + category.fail += control.fail; + category.manual += control.manual; + }); + + framework.pass += category.pass; + framework.fail += category.fail; + framework.manual += category.manual; + }); + }); + + return frameworks; +}; + +export const toAccordionItems = ( + data: Framework[], + scanId: string | undefined, +): AccordionItemProps[] => { + return data.flatMap((framework) => + framework.categories.map((category) => { + return { + key: `${framework.name}-${category.name}`, + title: ( + + ), + content: "", + items: category.controls.map((control, i: number) => { + const requirement = control.requirements[0]; // Each control has one requirement + const itemKey = `${framework.name}-${category.name}-control-${i}`; + + return { + key: itemKey, + title: ( + + ), + content: ( + + ), + items: [], + }; + }), + }; + }), + ); +}; diff --git a/ui/lib/compliance/commons.ts b/ui/lib/compliance/commons.ts index 747cd59c06..6d0c3c7779 100644 --- a/ui/lib/compliance/commons.ts +++ b/ui/lib/compliance/commons.ts @@ -1,11 +1,23 @@ +import React from "react"; + +import { CISCustomDetails } from "@/components/compliance/compliance-custom-details/cis-details"; +import { ENSCustomDetails } from "@/components/compliance/compliance-custom-details/ens-details"; +import { ISOCustomDetails } from "@/components/compliance/compliance-custom-details/iso-details"; import { AccordionItemProps } from "@/components/ui/accordion/Accordion"; import { AttributesData, + CategoryData, FailedSection, Framework, + RegionData, + Requirement, RequirementsData, } from "@/types/compliance"; +import { + mapComplianceData as mapCISComplianceData, + toAccordionItems as toCISAccordionItems, +} from "./cis"; import { mapComplianceData as mapENSComplianceData, toAccordionItems as toENSAccordionItems, @@ -19,12 +31,14 @@ export interface ComplianceMapper { mapComplianceData: ( attributesData: AttributesData, requirementsData: RequirementsData, + filter?: string, ) => Framework[]; toAccordionItems: ( data: Framework[], scanId: string | undefined, ) => AccordionItemProps[]; getTopFailedSections: (mappedData: Framework[]) => FailedSection[]; + getDetailsComponent: (requirement: Requirement) => React.ReactNode; } // Common function for getting top failed sections @@ -70,11 +84,22 @@ const complianceMappers: Record = { mapComplianceData: mapENSComplianceData, toAccordionItems: toENSAccordionItems, getTopFailedSections, + getDetailsComponent: (requirement: Requirement) => + React.createElement(ENSCustomDetails, { requirement }), }, ISO27001: { mapComplianceData: mapISOComplianceData, toAccordionItems: toISOAccordionItems, getTopFailedSections, + getDetailsComponent: (requirement: Requirement) => + React.createElement(ISOCustomDetails, { requirement }), + }, + CIS: { + mapComplianceData: mapCISComplianceData, + toAccordionItems: toCISAccordionItems, + getTopFailedSections, + getDetailsComponent: (requirement: Requirement) => + React.createElement(CISCustomDetails, { requirement }), }, }; @@ -83,7 +108,7 @@ const defaultMapper: ComplianceMapper = complianceMappers.ENS; /** * Get the appropriate compliance mapper based on the framework name - * @param framework - The framework name (e.g., "ENS", "ISO27001") + * @param framework - The framework name (e.g., "ENS", "ISO27001", "CIS") * @returns ComplianceMapper object with specific functions for the framework */ export const getComplianceMapper = (framework?: string): ComplianceMapper => { @@ -93,3 +118,140 @@ export const getComplianceMapper = (framework?: string): ComplianceMapper => { return complianceMappers[framework] || defaultMapper; }; + +export const calculateRegionHeatmapData = async ( + complianceId: string, + scanId: string, + uniqueRegions: string[], + attributesData: AttributesData, + mapper: ComplianceMapper, +): Promise => { + if (!complianceId || !scanId || !uniqueRegions?.length) { + return []; + } + + try { + const { getComplianceRequirements } = await import("@/actions/compliances"); + + // Get data for each region in parallel + const regionPromises = uniqueRegions.map(async (region) => { + try { + // Only need to fetch requirements data per region + const regionRequirementsData = await getComplianceRequirements({ + complianceId, + scanId, + region, // Filter by specific region + }); + + // Map the data using the provided mapper + const mappedData = mapper.mapComplianceData( + attributesData, + regionRequirementsData, + ); + + // Calculate totals for this region + const regionTotals = mappedData.reduce( + (acc, framework) => ({ + pass: acc.pass + framework.pass, + fail: acc.fail + framework.fail, + manual: acc.manual + framework.manual, + }), + { pass: 0, fail: 0, manual: 0 }, + ); + + const totalRequirements = + regionTotals.pass + regionTotals.fail + regionTotals.manual; + const failurePercentage = + totalRequirements > 0 + ? Math.round((regionTotals.fail / totalRequirements) * 100) + : 0; + + return { + name: region, + failurePercentage, + totalRequirements, + failedRequirements: regionTotals.fail, + }; + } catch (error) { + console.error(`Error fetching data for region ${region}:`, error); + return { + name: region, + failurePercentage: 0, + totalRequirements: 0, + failedRequirements: 0, + }; + } + }); + + const regionData = await Promise.all(regionPromises); + + // Filter, sort and limit to top 9 regions for 3x3 grid + const filteredData = regionData + .filter((region) => region.totalRequirements > 0) + .sort((a, b) => b.failurePercentage - a.failurePercentage) + .slice(0, 9); + + return filteredData; + } catch (error) { + console.error("Error calculating region heatmap data:", error); + return []; + } +}; + +export const calculateCategoryHeatmapData = ( + complianceData: Framework[], +): CategoryData[] => { + if (!complianceData?.length) { + return []; + } + + try { + const categoryMap = new Map< + string, + { pass: number; fail: number; manual: number } + >(); + + // Aggregate data by category + complianceData.forEach((framework) => { + framework.categories.forEach((category) => { + const existing = categoryMap.get(category.name) || { + pass: 0, + fail: 0, + manual: 0, + }; + categoryMap.set(category.name, { + pass: existing.pass + category.pass, + fail: existing.fail + category.fail, + manual: existing.manual + category.manual, + }); + }); + }); + + const categoryData: CategoryData[] = Array.from(categoryMap.entries()).map( + ([name, stats]) => { + const totalRequirements = stats.pass + stats.fail + stats.manual; + const failurePercentage = + totalRequirements > 0 + ? Math.round((stats.fail / totalRequirements) * 100) + : 0; + + return { + name, + failurePercentage, + totalRequirements, + failedRequirements: stats.fail, + }; + }, + ); + + const filteredData = categoryData + .filter((category) => category.totalRequirements > 0) + .sort((a, b) => b.failurePercentage - a.failurePercentage) + .slice(0, 9); // Show top 9 categories + + return filteredData; + } catch (error) { + console.error("Error calculating category heatmap data:", error); + return []; + } +}; diff --git a/ui/lib/compliance/ens.tsx b/ui/lib/compliance/ens.tsx index c46c659ecd..a3103035a3 100644 --- a/ui/lib/compliance/ens.tsx +++ b/ui/lib/compliance/ens.tsx @@ -14,6 +14,10 @@ import { } from "@/types/compliance"; export const translateType = (type: string) => { + if (!type) { + return ""; + } + switch (type.toLowerCase()) { case "requisito": return "Requirement"; @@ -223,12 +227,13 @@ export const toAccordionItems = ( ), - items: [], - isDisabled: - requirement.check_ids.length === 0 && - requirement.manual === 0, }; }), isDisabled: diff --git a/ui/lib/compliance/iso.tsx b/ui/lib/compliance/iso.tsx index 92e5cb999d..8fd2e7ae7e 100644 --- a/ui/lib/compliance/iso.tsx +++ b/ui/lib/compliance/iso.tsx @@ -192,12 +192,14 @@ export const toAccordionItems = ( ), items: [], - isDisabled: - requirement.check_ids.length === 0 && - requirement.manual === 0, }; }), isDisabled: diff --git a/ui/package-lock.json b/ui/package-lock.json index b00fb5b597..14523f6c8f 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -22,6 +22,7 @@ "@radix-ui/react-toast": "^1.2.4", "@react-aria/ssr": "3.9.4", "@react-aria/visually-hidden": "3.8.12", + "@tailwindcss/typography": "^0.5.16", "@tanstack/react-table": "^8.19.3", "add": "^2.0.6", "alert": "^6.0.2", @@ -43,6 +44,7 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-hook-form": "^7.52.2", + "react-markdown": "^10.1.0", "recharts": "^2.15.2", "server-only": "^0.0.1", "shadcn-ui": "^0.2.3", @@ -7418,6 +7420,34 @@ "tslib": "^2.4.0" } }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz", + "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==", + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" + } + }, + "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@tanstack/react-table": { "version": "8.19.3", "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.19.3.tgz", @@ -7539,6 +7569,39 @@ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==" }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -7560,6 +7623,21 @@ "@types/lodash": "*" } }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, "node_modules/@types/node": { "version": "20.5.7", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz", @@ -7569,14 +7647,12 @@ "node_modules/@types/prop-types": { "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "devOptional": true + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" }, "node_modules/@types/react": { "version": "18.3.3", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", - "devOptional": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -7591,6 +7667,12 @@ "@types/react": "*" } }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, "node_modules/@types/uuid": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", @@ -7785,8 +7867,7 @@ "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/acorn": { "version": "8.12.1", @@ -8178,6 +8259,16 @@ "deep-equal": "^2.0.5" } }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -8368,6 +8459,16 @@ ], "license": "CC-BY-4.0" }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -8384,6 +8485,46 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -8982,6 +9123,16 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -9269,6 +9420,19 @@ "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" }, + "node_modules/decode-named-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", + "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/deep-equal": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", @@ -9360,6 +9524,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/detect-libc": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", @@ -9374,6 +9547,19 @@ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -10352,6 +10538,16 @@ "node": ">=4.0" } }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -10390,6 +10586,12 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -10941,6 +11143,56 @@ "node": ">= 0.4" } }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-url-attributes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", + "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/https-proxy-agent": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-6.2.1.tgz", @@ -11055,6 +11307,12 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/inline-style-parser": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", + "license": "MIT" + }, "node_modules/internal-slot": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", @@ -11088,6 +11346,30 @@ "tslib": "^2.4.0" } }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -11235,6 +11517,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -11289,6 +11581,16 @@ "node": ">=0.10.0" } }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/is-interactive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", @@ -11356,6 +11658,18 @@ "node": ">=8" } }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -11887,6 +12201,12 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "license": "MIT" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -11902,6 +12222,12 @@ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, "node_modules/lodash.kebabcase": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", @@ -11915,8 +12241,7 @@ "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, "node_modules/lodash.omit": { "version": "4.5.0", @@ -12078,6 +12403,16 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -12105,6 +12440,159 @@ "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -12118,6 +12606,448 @@ "node": ">= 8" } }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -12741,6 +13671,31 @@ "node": ">=6" } }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -13174,6 +14129,16 @@ "react-is": "^16.13.1" } }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -13317,6 +14282,33 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/react-markdown": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz", + "integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "html-url-attributes": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=18", + "react": ">=18" + } + }, "node_modules/react-remove-scroll": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", @@ -13572,6 +14564,39 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -14142,6 +15167,16 @@ "node": ">=0.10.0" } }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/stdin-discarder": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", @@ -14338,6 +15373,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -14392,6 +15441,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-to-js": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", + "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.8" + } + }, + "node_modules/style-to-object": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.4" + } + }, "node_modules/styled-jsx": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", @@ -14603,6 +15670,26 @@ "node": ">=8.0" } }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/ts-api-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", @@ -14771,6 +15858,93 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -14946,6 +16120,34 @@ "uuid": "dist/esm/bin/uuid" } }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/victory-vendor": { "version": "36.9.2", "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", @@ -15235,6 +16437,16 @@ "optional": true } } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/ui/package.json b/ui/package.json index 5d16567d19..10432cb767 100644 --- a/ui/package.json +++ b/ui/package.json @@ -14,6 +14,7 @@ "@radix-ui/react-toast": "^1.2.4", "@react-aria/ssr": "3.9.4", "@react-aria/visually-hidden": "3.8.12", + "@tailwindcss/typography": "^0.5.16", "@tanstack/react-table": "^8.19.3", "add": "^2.0.6", "alert": "^6.0.2", @@ -35,6 +36,7 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-hook-form": "^7.52.2", + "react-markdown": "^10.1.0", "recharts": "^2.15.2", "server-only": "^0.0.1", "shadcn-ui": "^0.2.3", diff --git a/ui/tailwind.config.js b/ui/tailwind.config.js index 664e360167..503418fa2c 100644 --- a/ui/tailwind.config.js +++ b/ui/tailwind.config.js @@ -171,9 +171,9 @@ module.exports = { "100%": { left: "100%", width: "100%" }, }, dropArrow: { - '0%': { transform: 'translateY(-8px)', opacity: '0' }, - '50%': { opacity: '1' }, - '100%': { transform: 'translateY(0)', opacity: '1' }, + "0%": { transform: "translateY(-8px)", opacity: "0" }, + "50%": { opacity: "1" }, + "100%": { transform: "translateY(0)", opacity: "1" }, }, }, animation: { @@ -188,6 +188,7 @@ module.exports = { }, plugins: [ require("tailwindcss-animate"), + require("@tailwindcss/typography"), nextui({ themes: { dark: { diff --git a/ui/types/compliance.ts b/ui/types/compliance.ts index ce563f4214..4fa4cf7e1a 100644 --- a/ui/types/compliance.ts +++ b/ui/types/compliance.ts @@ -3,7 +3,13 @@ export type RequirementStatus = "PASS" | "FAIL" | "MANUAL" | "No findings"; export type ComplianceId = | "ens_rd2022_aws" | "iso27001_2013_aws" - | "iso27001_2022_aws"; + | "iso27001_2022_aws" + | "cis_1.4_aws" + | "cis_1.5_aws" + | "cis_2.0_aws" + | "cis_3.0_aws" + | "cis_4.0_aws" + | "cis_5.0_aws"; export interface CompliancesOverview { data: ComplianceOverviewData[]; @@ -91,6 +97,21 @@ export interface ISO27001AttributesMetadata { Check_Summary: string; } +export interface CISAttributesMetadata { + Section: string; + SubSection: string | null; + Profile: string; // "Level 1" or "Level 2" + AssessmentStatus: string; // "Manual" or "Automated" + Description: string; + RationaleStatement: string; + ImpactStatement: string; + RemediationProcedure: string; + AuditProcedure: string; + AdditionalInformation: string; + DefaultValue: string | null; + References: string; +} + export interface AttributesItemData { type: "compliance-requirements-attributes"; id: string; @@ -123,3 +144,17 @@ export interface AttributesData { export interface RequirementsData { data: RequirementItemData[]; } + +export interface RegionData { + name: string; + failurePercentage: number; + totalRequirements: number; + failedRequirements: number; +} + +export interface CategoryData { + name: string; + failurePercentage: number; + totalRequirements: number; + failedRequirements: number; +} diff --git a/ui/types/filters.ts b/ui/types/filters.ts index e6f364794e..3d0684e1d0 100644 --- a/ui/types/filters.ts +++ b/ui/types/filters.ts @@ -6,6 +6,9 @@ export interface FilterOption { values: string[]; valueLabelMapping?: Array<{ [uid: string]: ProviderAccountProps }>; index?: number; + showSelectAll?: boolean; + defaultToSelectAll?: boolean; + defaultValues?: string[]; } export interface CustomDropdownFilterProps { From 6e7a32cb516e813b441e0fe2f7766a9ce270a488 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Fern=C3=A1ndez=20Poyatos?= Date: Tue, 3 Jun 2025 16:38:00 +0200 Subject: [PATCH 064/111] revert(views): calling order to initial view method (#7921) --- api/src/backend/api/base_views.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/api/src/backend/api/base_views.py b/api/src/backend/api/base_views.py index 60940733c2..54b020597f 100644 --- a/api/src/backend/api/base_views.py +++ b/api/src/backend/api/base_views.py @@ -47,6 +47,8 @@ class BaseViewSet(ModelViewSet): class BaseRLSViewSet(BaseViewSet): def initial(self, request, *args, **kwargs): + super().initial(request, *args, **kwargs) + # Ideally, this logic would be in the `.setup()` method but DRF view sets don't call it # https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View.setup if request.auth is None: @@ -61,8 +63,6 @@ class BaseRLSViewSet(BaseViewSet): self._rls_cm = rls_transaction(tenant_id) self._rls_cm.__enter__() - super().initial(request, *args, **kwargs) - def finalize_response(self, request, response, *args, **kwargs): response = super().finalize_response(request, response, *args, **kwargs) @@ -115,6 +115,8 @@ class BaseTenantViewset(BaseViewSet): pass # Tenant might not exist, handle gracefully def initial(self, request, *args, **kwargs): + super().initial(request, *args, **kwargs) + if request.auth is None: raise NotAuthenticated @@ -127,8 +129,6 @@ class BaseTenantViewset(BaseViewSet): self._rls_cm = rls_transaction(value=user_id, parameter=POSTGRES_USER_VAR) self._rls_cm.__enter__() - super().initial(request, *args, **kwargs) - def finalize_response(self, request, response, *args, **kwargs): response = super().finalize_response(request, response, *args, **kwargs) @@ -141,9 +141,11 @@ class BaseTenantViewset(BaseViewSet): class BaseUserViewset(BaseViewSet): def initial(self, request, *args, **kwargs): + super().initial(request, *args, **kwargs) + # TODO refactor after improving RLS on users if request.stream is not None and request.stream.method == "POST": - return super().initial(request, *args, **kwargs) + return if request.auth is None: raise NotAuthenticated @@ -156,8 +158,6 @@ class BaseUserViewset(BaseViewSet): self._rls_cm = rls_transaction(tenant_id) self._rls_cm.__enter__() - super().initial(request, *args, **kwargs) - def finalize_response(self, request, response, *args, **kwargs): response = super().finalize_response(request, response, *args, **kwargs) From 4dc4d82d427db9635ff0f9e0cfc9fc50091ba351 Mon Sep 17 00:00:00 2001 From: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Date: Wed, 4 Jun 2025 12:26:27 +0200 Subject: [PATCH 065/111] feat: aws-well-architected compliance detailed view (#7925) --- ui/CHANGELOG.md | 1 + ui/components/compliance/compliance-card.tsx | 7 +- .../aws-well-architected-details.tsx | 91 ++++++++ .../compliance-custom-details/cis-details.tsx | 9 +- ui/lib/compliance/aws-well-architected.tsx | 221 ++++++++++++++++++ ui/lib/compliance/commons.ts | 19 ++ ui/types/compliance.ts | 18 +- 7 files changed, 360 insertions(+), 6 deletions(-) create mode 100644 ui/components/compliance/compliance-custom-details/aws-well-architected-details.tsx create mode 100644 ui/lib/compliance/aws-well-architected.tsx diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index e770712ddd..265c5535f4 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -13,6 +13,7 @@ All notable changes to the **Prowler UI** are documented in this file. - Add compliance detail view: ENS [(#7853)](https://github.com/prowler-cloud/prowler/pull/7853) - Add compliance detail view: ISO [(#7897)](https://github.com/prowler-cloud/prowler/pull/7897) - Add compliance detail view: CIS [(#7913)](https://github.com/prowler-cloud/prowler/pull/7913) +- Add compliance detail view: AWS Well-Architected Framework [(#7925)](https://github.com/prowler-cloud/prowler/pull/7925) ### 🔄 Changed diff --git a/ui/components/compliance/compliance-card.tsx b/ui/components/compliance/compliance-card.tsx index 10a473236f..63f4c0150b 100644 --- a/ui/components/compliance/compliance-card.tsx +++ b/ui/components/compliance/compliance-card.tsx @@ -73,7 +73,12 @@ export const ComplianceCard: React.FC = ({ const navigateToDetail = () => { // We will unlock this while developing the rest of complainces. - if (!id.includes("ens") && !id.includes("iso") && !id.includes("cis_")) { + if ( + !id.includes("ens") && + !id.includes("iso") && + !id.includes("cis_") && + !id.includes("pillar") + ) { return; } diff --git a/ui/components/compliance/compliance-custom-details/aws-well-architected-details.tsx b/ui/components/compliance/compliance-custom-details/aws-well-architected-details.tsx new file mode 100644 index 0000000000..35cc5c7114 --- /dev/null +++ b/ui/components/compliance/compliance-custom-details/aws-well-architected-details.tsx @@ -0,0 +1,91 @@ +import Link from "next/link"; + +import { SeverityBadge } from "@/components/ui/table"; +import { Requirement } from "@/types/compliance"; + +export const AWSWellArchitectedCustomDetails = ({ + requirement, +}: { + requirement: Requirement; +}) => { + return ( +
+ {requirement.description && ( +
+

+ Description +

+

{requirement.description}

+
+ )} + + {requirement.well_architected_name && ( +
+

+ Best Practice +

+

{requirement.well_architected_name}

+
+ )} + + {requirement.well_architected_question_id && ( +
+

+ Question ID +

+

{requirement.well_architected_question_id}

+
+ )} + + {requirement.well_architected_practice_id && ( +
+

+ Practice ID +

+

{requirement.well_architected_practice_id}

+
+ )} + + {requirement.level_of_risk && ( +
+

+ Level of Risk +

+ +
+ )} + + {requirement.assessment_method && ( +
+

+ Assessment Method +

+

{requirement.assessment_method}

+
+ )} + + {requirement.implementation_guidance_url && ( +
+

+ Implementation Guidance +

+ + {requirement.implementation_guidance_url} + +
+ )} +
+ ); +}; diff --git a/ui/components/compliance/compliance-custom-details/cis-details.tsx b/ui/components/compliance/compliance-custom-details/cis-details.tsx index e4d99db68f..ebb04e48d8 100644 --- a/ui/components/compliance/compliance-custom-details/cis-details.tsx +++ b/ui/components/compliance/compliance-custom-details/cis-details.tsx @@ -1,3 +1,4 @@ +import Link from "next/link"; import ReactMarkdown from "react-markdown"; import { Requirement } from "@/types/compliance"; @@ -83,7 +84,7 @@ export const CISCustomDetails = ({ requirement }: CISDetailsProps) => { {/* Prettier -> "plugins": ["prettier-plugin-tailwindcss"] is not ready yet to "prose": */} {/* eslint-disable-next-line */} -
+
{requirement.remediation_procedure}
@@ -96,7 +97,7 @@ export const CISCustomDetails = ({ requirement }: CISDetailsProps) => { Audit Procedure {/* eslint-disable-next-line */} -
+
{requirement.audit_procedure}
@@ -131,14 +132,14 @@ export const CISCustomDetails = ({ requirement }: CISDetailsProps) => { {processReferences(requirement.references).map( (url: string, index: number) => ( ), )} diff --git a/ui/lib/compliance/aws-well-architected.tsx b/ui/lib/compliance/aws-well-architected.tsx new file mode 100644 index 0000000000..d6fd809987 --- /dev/null +++ b/ui/lib/compliance/aws-well-architected.tsx @@ -0,0 +1,221 @@ +import { ClientAccordionContent } from "@/components/compliance/compliance-accordion/client-accordion-content"; +import { ComplianceAccordionRequirementTitle } from "@/components/compliance/compliance-accordion/compliance-accordion-requeriment-title"; +import { ComplianceAccordionTitle } from "@/components/compliance/compliance-accordion/compliance-accordion-title"; +import { AccordionItemProps } from "@/components/ui/accordion/Accordion"; +import { FindingStatus } from "@/components/ui/table/status-finding-badge"; +import { + AttributesData, + AWSWellArchitectedAttributesMetadata, + Framework, + Requirement, + RequirementItemData, + RequirementsData, + RequirementStatus, +} from "@/types/compliance"; + +export const mapComplianceData = ( + attributesData: AttributesData, + requirementsData: RequirementsData, +): Framework[] => { + const attributes = attributesData?.data || []; + const requirements = requirementsData?.data || []; + + // Create a map for quick lookup of requirements by id + const requirementsMap = new Map(); + requirements.forEach((req: RequirementItemData) => { + requirementsMap.set(req.id, req); + }); + + const frameworks: Framework[] = []; + + // Process attributes and merge with requirements data + for (const attributeItem of attributes) { + const id = attributeItem.id; + const metadataArray = attributeItem.attributes?.attributes + ?.metadata as unknown as AWSWellArchitectedAttributesMetadata[]; + const attrs = metadataArray?.[0]; + if (!attrs) continue; + + // Get corresponding requirement data + const requirementData = requirementsMap.get(id); + if (!requirementData) continue; + + const frameworkName = attributeItem.attributes.framework; + const sectionName = attrs.Section || ""; + const subSectionName = attrs.SubSection || ""; + const description = attributeItem.attributes.description; + const status = requirementData.attributes.status || ""; + const checks = attributeItem.attributes.attributes.check_ids || []; + const requirementName = id; + + if (!sectionName || !subSectionName) { + continue; + } + + // Find or create framework + let framework = frameworks.find((f) => f.name === frameworkName); + if (!framework) { + framework = { + name: frameworkName, + pass: 0, + fail: 0, + manual: 0, + categories: [], + }; + frameworks.push(framework); + } + + // Find or create category (Section) + let category = framework.categories.find((c) => c.name === sectionName); + if (!category) { + category = { + name: sectionName, + pass: 0, + fail: 0, + manual: 0, + controls: [], + }; + framework.categories.push(category); + } + + // Find or create control (SubSection) + let control = category.controls.find((c) => c.label === subSectionName); + if (!control) { + control = { + label: subSectionName, + pass: 0, + fail: 0, + manual: 0, + requirements: [], + }; + category.controls.push(control); + } + + // Create requirement + const finalStatus: RequirementStatus = status as RequirementStatus; + const requirement: Requirement = { + name: requirementName, + description: description, + status: finalStatus, + check_ids: checks, + pass: finalStatus === "PASS" ? 1 : 0, + fail: finalStatus === "FAIL" ? 1 : 0, + manual: finalStatus === "MANUAL" ? 1 : 0, + well_architected_name: attrs.Name, + well_architected_question_id: attrs.WellArchitectedQuestionId, + well_architected_practice_id: attrs.WellArchitectedPracticeId, + level_of_risk: attrs.LevelOfRisk, + assessment_method: attrs.AssessmentMethod, + implementation_guidance_url: attrs.ImplementationGuidanceUrl, + }; + + control.requirements.push(requirement); + } + + // Calculate counters + frameworks.forEach((framework) => { + framework.pass = 0; + framework.fail = 0; + framework.manual = 0; + + framework.categories.forEach((category) => { + category.pass = 0; + category.fail = 0; + category.manual = 0; + + category.controls.forEach((control) => { + control.pass = 0; + control.fail = 0; + control.manual = 0; + + control.requirements.forEach((requirement) => { + if (requirement.status === "MANUAL") { + control.manual++; + } else if (requirement.status === "PASS") { + control.pass++; + } else if (requirement.status === "FAIL") { + control.fail++; + } + }); + + category.pass += control.pass; + category.fail += control.fail; + category.manual += control.manual; + }); + + framework.pass += category.pass; + framework.fail += category.fail; + framework.manual += category.manual; + }); + }); + + return frameworks; +}; + +export const toAccordionItems = ( + data: Framework[], + scanId: string | undefined, +): AccordionItemProps[] => { + return data.flatMap((framework) => + framework.categories.map((category) => { + return { + key: `${framework.name}-${category.name}`, + title: ( + + ), + content: "", + items: category.controls.map((control, i: number) => { + return { + key: `${framework.name}-${category.name}-control-${i}`, + title: ( + + ), + content: "", + items: control.requirements.map((requirement, j: number) => { + const itemKey = `${framework.name}-${category.name}-control-${i}-req-${j}`; + + return { + key: itemKey, + title: ( + + ), + content: ( + + ), + items: [], + }; + }), + isDisabled: + control.pass === 0 && control.fail === 0 && control.manual === 0, + }; + }), + }; + }), + ); +}; diff --git a/ui/lib/compliance/commons.ts b/ui/lib/compliance/commons.ts index 6d0c3c7779..7317bb6c0f 100644 --- a/ui/lib/compliance/commons.ts +++ b/ui/lib/compliance/commons.ts @@ -1,5 +1,6 @@ import React from "react"; +import { AWSWellArchitectedCustomDetails } from "@/components/compliance/compliance-custom-details/aws-well-architected-details"; import { CISCustomDetails } from "@/components/compliance/compliance-custom-details/cis-details"; import { ENSCustomDetails } from "@/components/compliance/compliance-custom-details/ens-details"; import { ISOCustomDetails } from "@/components/compliance/compliance-custom-details/iso-details"; @@ -14,6 +15,10 @@ import { RequirementsData, } from "@/types/compliance"; +import { + mapComplianceData as mapAWSWellArchitectedComplianceData, + toAccordionItems as toAWSWellArchitectedAccordionItems, +} from "./aws-well-architected"; import { mapComplianceData as mapCISComplianceData, toAccordionItems as toCISAccordionItems, @@ -101,6 +106,20 @@ const complianceMappers: Record = { getDetailsComponent: (requirement: Requirement) => React.createElement(CISCustomDetails, { requirement }), }, + "AWS-Well-Architected-Framework-Security-Pillar": { + mapComplianceData: mapAWSWellArchitectedComplianceData, + toAccordionItems: toAWSWellArchitectedAccordionItems, + getTopFailedSections, + getDetailsComponent: (requirement: Requirement) => + React.createElement(AWSWellArchitectedCustomDetails, { requirement }), + }, + "AWS-Well-Architected-Framework-Reliability-Pillar": { + mapComplianceData: mapAWSWellArchitectedComplianceData, + toAccordionItems: toAWSWellArchitectedAccordionItems, + getTopFailedSections, + getDetailsComponent: (requirement: Requirement) => + React.createElement(AWSWellArchitectedCustomDetails, { requirement }), + }, }; // Default mapper (fallback to ENS for backward compatibility) diff --git a/ui/types/compliance.ts b/ui/types/compliance.ts index 4fa4cf7e1a..8cfaab0246 100644 --- a/ui/types/compliance.ts +++ b/ui/types/compliance.ts @@ -112,6 +112,18 @@ export interface CISAttributesMetadata { References: string; } +export interface AWSWellArchitectedAttributesMetadata { + Name: string; + WellArchitectedQuestionId: string; + WellArchitectedPracticeId: string; + Section: string; + SubSection: string; + LevelOfRisk: string; + AssessmentMethod: string; + Description: string; + ImplementationGuidanceUrl: string; +} + export interface AttributesItemData { type: "compliance-requirements-attributes"; id: string; @@ -120,7 +132,11 @@ export interface AttributesItemData { version: string; description: string; attributes: { - metadata: ENSAttributesMetadata[] | ISO27001AttributesMetadata[]; + metadata: + | ENSAttributesMetadata[] + | ISO27001AttributesMetadata[] + | CISAttributesMetadata[] + | AWSWellArchitectedAttributesMetadata[]; check_ids: string[]; }; }; From c74360ab63bc8527a1f14c66deb699019630ecf5 Mon Sep 17 00:00:00 2001 From: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Date: Wed, 4 Jun 2025 13:32:52 +0200 Subject: [PATCH 066/111] fix: clear filters sync (#7928) --- ui/CHANGELOG.md | 4 + .../ui/custom/custom-dropdown-filter.tsx | 95 +++++++++++-------- ui/hooks/use-url-filters.ts | 12 ++- 3 files changed, 69 insertions(+), 42 deletions(-) diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 265c5535f4..0b72a752ef 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to the **Prowler UI** are documented in this file. ## [v1.8.0] (Prowler v5.8.0) – Not released +### 🐞 Fixes + +- Fix sync between filter buttons and URL when filters change. [(#7928)](https://github.com/prowler-cloud/prowler/pull/7928) + ### 🚀 Added - New profile page with details about the user and their roles. [(#7780)](https://github.com/prowler-cloud/prowler/pull/7780) diff --git a/ui/components/ui/custom/custom-dropdown-filter.tsx b/ui/components/ui/custom/custom-dropdown-filter.tsx index b17828083a..be4282cf78 100644 --- a/ui/components/ui/custom/custom-dropdown-filter.tsx +++ b/ui/components/ui/custom/custom-dropdown-filter.tsx @@ -20,10 +20,9 @@ import React, { useState, } from "react"; +import { EntityInfoShort } from "@/components/ui/entities"; import { CustomDropdownFilterProps } from "@/types"; -import { EntityInfoShort } from "../entities"; - export const CustomDropdownFilter = ({ filter, onFilterChange, @@ -45,57 +44,75 @@ export const CustomDropdownFilter = ({ return filterParam ? filterParam.split(",") : []; }, [searchParams, filter?.key]); - // Sync URL state with component state - useEffect(() => { - if (activeFilterValue.length > 0) { - const newSelection = new Set(activeFilterValue); + // Helper function to handle URL filter values sync + const syncWithActiveFilters = useCallback(() => { + const newSelection = new Set(activeFilterValue); + if ( + newSelection.size === filterValues.length && + filter?.showSelectAll !== false + ) { + newSelection.add("all"); + } + setGroupSelected(newSelection); + }, [activeFilterValue, filterValues, filter?.showSelectAll]); + + const resetComponentState = useCallback(() => { + setGroupSelected(new Set()); + hasUserInteracted.current = false; + }, []); + + const applyDefaultValues = useCallback(() => { + if (filter?.defaultToSelectAll && filterValues.length > 0) { + const newSelection = new Set(filterValues); + if (filter?.showSelectAll !== false) { + newSelection.add("all"); + } + setGroupSelected(newSelection); + } else if (filter?.defaultValues && filter.defaultValues.length > 0) { + const validDefaultValues = filter.defaultValues.filter((value) => + filterValues.includes(value), + ); + const newSelection = new Set(validDefaultValues); + + // Add "all" if all items are selected and showSelectAll is not false if ( - newSelection.size === filterValues.length && + validDefaultValues.length === filterValues.length && filter?.showSelectAll !== false ) { newSelection.add("all"); } setGroupSelected(newSelection); - } else if (!hasUserInteracted.current) { - // Handle default behavior when no URL params exist - // Only apply defaults if user hasn't interacted yet - // Only set visual state, don't trigger URL changes automatically - if (filter?.defaultToSelectAll && filterValues.length > 0) { - const newSelection = new Set(filterValues); - if (filter?.showSelectAll !== false) { - newSelection.add("all"); - } - setGroupSelected(newSelection); - // DON'T notify parent automatically - wait for user interaction - } else if (filter?.defaultValues && filter.defaultValues.length > 0) { - // Handle specific default values - const validDefaultValues = filter.defaultValues.filter((value) => - filterValues.includes(value), - ); - const newSelection = new Set(validDefaultValues); - - // Add "all" if all items are selected and showSelectAll is not false - if ( - validDefaultValues.length === filterValues.length && - filter?.showSelectAll !== false - ) { - newSelection.add("all"); - } - - setGroupSelected(newSelection); - // DON'T notify parent automatically - wait for user interaction - } else { - setGroupSelected(new Set()); - } + } else { + setGroupSelected(new Set()); } }, [ - activeFilterValue, filterValues, filter?.defaultToSelectAll, filter?.defaultValues, filter?.showSelectAll, ]); + useEffect(() => { + const hasActiveFilters = activeFilterValue.length > 0; + const userHasInteracted = hasUserInteracted.current; + + if (hasActiveFilters) { + // URL has filter values - sync component state with URL + syncWithActiveFilters(); + } else if (userHasInteracted) { + // URL has no filters but user had interacted - reset component state + resetComponentState(); + } else { + // URL has no filters and user hasn't interacted - apply defaults + applyDefaultValues(); + } + }, [ + activeFilterValue, + syncWithActiveFilters, + resetComponentState, + applyDefaultValues, + ]); + const updateSelection = useCallback( (newValues: string[]) => { // Mark that user has interacted with the filter diff --git a/ui/hooks/use-url-filters.ts b/ui/hooks/use-url-filters.ts index c29de37327..83bd225791 100644 --- a/ui/hooks/use-url-filters.ts +++ b/ui/hooks/use-url-filters.ts @@ -16,8 +16,10 @@ export const useUrlFilters = () => { (key: string, value: string | string[] | null) => { const params = new URLSearchParams(searchParams.toString()); - // Always reset page to 1 when a filter is applied - params.set("page", "1"); + // Only reset page to 1 if page parameter already exists + if (params.has("page")) { + params.set("page", "1"); + } const filterKey = key.startsWith("filter[") ? key : `filter[${key}]`; @@ -40,7 +42,11 @@ export const useUrlFilters = () => { const filterKey = key.startsWith("filter[") ? key : `filter[${key}]`; params.delete(filterKey); - params.set("page", "1"); + + // Only reset page to 1 if page parameter already exists + if (params.has("page")) { + params.set("page", "1"); + } router.push(`${pathname}?${params.toString()}`, { scroll: false }); }, From 4ac3cfc33d48e5ae9c15e391935df44ca539f55a Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Wed, 4 Jun 2025 13:54:25 +0200 Subject: [PATCH 067/111] docs: update changelog (#7931) --- ui/CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 0b72a752ef..9059414c40 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -30,7 +30,6 @@ All notable changes to the **Prowler UI** are documented in this file. ### 🐞 Fixes - Download report behaviour updated to show feedback based on API response. [(#7758)](https://github.com/prowler-cloud/prowler/pull/7758) -- Compliace detail page, now available for ENS. [(#7853)](https://github.com/prowler-cloud/prowler/pull/7853) - Missing KISA and ProwlerThreat icons added to the compliance page. [(#7860)(https://github.com/prowler-cloud/prowler/pull/7860)] - Retrieve more than 10 scans in /compliance page. [(#7865)](https://github.com/prowler-cloud/prowler/pull/7865) - Improve CustomDropdownFilter component. [(#7868)(https://github.com/prowler-cloud/prowler/pull/7868)] From fb914a2c908d1dc0b4aac36efb4db8d34fc4fbb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Jes=C3=BAs=20Pe=C3=B1a=20Rodr=C3=ADguez?= Date: Wed, 4 Jun 2025 15:01:47 +0200 Subject: [PATCH 068/111] revert: remove get_with_retry (#7932) --- api/CHANGELOG.md | 1 + api/src/backend/api/models.py | 40 ------------------------ api/src/backend/api/tests/test_models.py | 37 +--------------------- api/src/backend/api/v1/views.py | 8 ++--- 4 files changed, 6 insertions(+), 80 deletions(-) diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index dd3446550a..c840379feb 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -21,6 +21,7 @@ All notable changes to the **Prowler API** are documented in this file. ### Fixed - Fixed transaction persistence with RLS operations [(#7916)](https://github.com/prowler-cloud/prowler/pull/7916). +- Reverted the change `get_with_retry` to use the original `get` method for retrieving tasks [(#7932)](https://github.com/prowler-cloud/prowler/pull/7932). --- diff --git a/api/src/backend/api/models.py b/api/src/backend/api/models.py index b4a5c3a894..52e32b8c38 100644 --- a/api/src/backend/api/models.py +++ b/api/src/backend/api/models.py @@ -1,9 +1,7 @@ import json import re -import time from uuid import UUID, uuid4 -from config.env import env from cryptography.fernet import Fernet from django.conf import settings from django.contrib.auth.models import AbstractBaseUser @@ -354,42 +352,6 @@ class ProviderGroupMembership(RowLevelSecurityProtectedModel): resource_name = "provider_groups-provider" -class TaskManager(models.Manager): - def get_with_retry( - self, - id: str, - max_retries: int = None, - delay_seconds: float = None, - ): - """ - Retry fetching a Task by ID in case it hasn't been created yet. - - Args: - id (str): The Celery task ID (expected to match Task model PK). - max_retries (int, optional): Number of retry attempts. Defaults to env TASK_RETRY_ATTEMPTS or 5. - delay_seconds (float, optional): Delay between retries in seconds. Defaults to env TASK_RETRY_DELAY_SECONDS or 0.1. - - Returns: - Task: The retrieved Task instance. - - Raises: - Task.DoesNotExist: If the task is not found after all retries. - """ - max_retries = max_retries or env.int("TASK_RETRY_ATTEMPTS", default=5) - delay_seconds = delay_seconds or env.float( - "TASK_RETRY_DELAY_SECONDS", default=0.1 - ) - - for _attempt in range(max_retries): - try: - return self.get(id=id) - except self.model.DoesNotExist: - time.sleep(delay_seconds) - raise self.model.DoesNotExist( - f"Task with ID {id} not found after {max_retries} retries." - ) - - class Task(RowLevelSecurityProtectedModel): id = models.UUIDField(primary_key=True, default=uuid4, editable=False) inserted_at = models.DateTimeField(auto_now_add=True, editable=False) @@ -402,8 +364,6 @@ class Task(RowLevelSecurityProtectedModel): blank=True, ) - objects = TaskManager() - class Meta(RowLevelSecurityProtectedModel.Meta): db_table = "tasks" diff --git a/api/src/backend/api/tests/test_models.py b/api/src/backend/api/tests/test_models.py index de2ec7c59e..c2beeb3583 100644 --- a/api/src/backend/api/tests/test_models.py +++ b/api/src/backend/api/tests/test_models.py @@ -1,9 +1,6 @@ -import uuid -from unittest import mock - import pytest -from api.models import Resource, ResourceTag, Task +from api.models import Resource, ResourceTag @pytest.mark.django_db @@ -123,35 +120,3 @@ class TestResourceModel: # compliance={}, # ) # assert Finding.objects.filter(uid=long_uid).exists() - - -@pytest.mark.django_db -class TestTaskManager: - def test_get_with_retry_success(self): - task_id = uuid.uuid4() - call_counter = {"count": 0} - - def side_effect(*args, **kwargs): - if call_counter["count"] < 2: - call_counter["count"] += 1 - raise Task.DoesNotExist() - return Task(id=task_id) - - with mock.patch.object(Task.objects, "get", side_effect=side_effect): - task = Task.objects.get_with_retry( - task_id, max_retries=5, delay_seconds=0.01 - ) - - assert task.id == task_id - assert call_counter["count"] == 2 - - def test_get_with_retry_fail(self): - non_existent_id = uuid.uuid4() - - with mock.patch.object(Task.objects, "get", side_effect=Task.DoesNotExist): - with pytest.raises(Task.DoesNotExist) as excinfo: - Task.objects.get_with_retry( - non_existent_id, max_retries=3, delay_seconds=0.01 - ) - - assert str(non_existent_id) in str(excinfo.value) diff --git a/api/src/backend/api/v1/views.py b/api/src/backend/api/v1/views.py index 394913cb6c..99b551fec5 100644 --- a/api/src/backend/api/v1/views.py +++ b/api/src/backend/api/v1/views.py @@ -1092,7 +1092,7 @@ class ProviderViewSet(BaseRLSViewSet): task = check_provider_connection_task.delay( provider_id=pk, tenant_id=self.request.tenant_id ) - prowler_task = Task.objects.get_with_retry(id=task.id) + prowler_task = Task.objects.get(id=task.id) serializer = TaskSerializer(prowler_task) return Response( data=serializer.data, @@ -1115,7 +1115,7 @@ class ProviderViewSet(BaseRLSViewSet): task = delete_provider_task.delay( provider_id=pk, tenant_id=self.request.tenant_id ) - prowler_task = Task.objects.get_with_retry(id=task.id) + prowler_task = Task.objects.get(id=task.id) serializer = TaskSerializer(prowler_task) return Response( data=serializer.data, @@ -1495,7 +1495,7 @@ class ScanViewSet(BaseRLSViewSet): }, ) - prowler_task = Task.objects.get_with_retry(id=task.id) + prowler_task = Task.objects.get(id=task.id) scan.task_id = task.id scan.save(update_fields=["task_id"]) @@ -3123,7 +3123,7 @@ class ScheduleViewSet(BaseRLSViewSet): with transaction.atomic(): task = schedule_provider_scan(provider_instance) - prowler_task = Task.objects.get_with_retry(id=task.id) + prowler_task = Task.objects.get(id=task.id) self.response_serializer_class = TaskSerializer output_serializer = self.get_serializer(prowler_task) From be420afebc9f39e1e5a3b3c69299689ecb152214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Fern=C3=A1ndez=20Poyatos?= Date: Wed, 4 Jun 2025 16:09:36 +0200 Subject: [PATCH 069/111] feat(database): handle already closed connections (#7935) --- api/CHANGELOG.md | 3 +++ api/src/backend/config/django/base.py | 1 + api/src/backend/database_backend/__init__.py | 0 api/src/backend/database_backend/base.py | 15 +++++++++++++++ 4 files changed, 19 insertions(+) create mode 100644 api/src/backend/database_backend/__init__.py create mode 100644 api/src/backend/database_backend/base.py diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index c840379feb..524e83f46b 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -19,6 +19,9 @@ All notable changes to the **Prowler API** are documented in this file. ## [v1.8.3] (Prowler v5.7.3) +### Added +- Database backend to handle already closed connections [(#7935)](https://github.com/prowler-cloud/prowler/pull/7935). + ### Fixed - Fixed transaction persistence with RLS operations [(#7916)](https://github.com/prowler-cloud/prowler/pull/7916). - Reverted the change `get_with_retry` to use the original `get` method for retrieving tasks [(#7932)](https://github.com/prowler-cloud/prowler/pull/7932). diff --git a/api/src/backend/config/django/base.py b/api/src/backend/config/django/base.py index 5de1d9ca71..db4a23e464 100644 --- a/api/src/backend/config/django/base.py +++ b/api/src/backend/config/django/base.py @@ -128,6 +128,7 @@ DJANGO_GUID = { } DATABASE_ROUTERS = ["api.db_router.MainRouter"] +POSTGRES_EXTRA_DB_BACKEND_BASE = "database_backend" # Password validation diff --git a/api/src/backend/database_backend/__init__.py b/api/src/backend/database_backend/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/api/src/backend/database_backend/base.py b/api/src/backend/database_backend/base.py new file mode 100644 index 0000000000..69fee7df4b --- /dev/null +++ b/api/src/backend/database_backend/base.py @@ -0,0 +1,15 @@ +import django.db +from django.db.backends.postgresql.base import ( + DatabaseWrapper as BuiltinPostgresDatabaseWrapper, +) +from psycopg2 import InterfaceError + + +class DatabaseWrapper(BuiltinPostgresDatabaseWrapper): + def create_cursor(self, name=None): + try: + return super().create_cursor(name=name) + except InterfaceError: + django.db.close_old_connections() + django.db.connection.connect() + return super().create_cursor(name=name) From d89df839046ef8e3949607df709a4a21158be4b5 Mon Sep 17 00:00:00 2001 From: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Date: Thu, 5 Jun 2025 08:13:47 +0200 Subject: [PATCH 070/111] fix: Improve the perfomance removing regions heatmap (#7934) --- ui/CHANGELOG.md | 1 + .../compliance/[compliancetitle]/page.tsx | 38 ++------- .../client-accordion-content.tsx | 16 ++-- ...compliance-accordion-requeriment-title.tsx | 4 +- .../compliance-accordion-title.tsx | 2 +- ui/components/compliance/compliance-card.tsx | 15 ++-- .../compliance-charts/heatmap-chart.tsx | 73 +++++++---------- .../compliance-header/compliance-header.tsx | 6 +- ui/components/ui/accordion/Accordion.tsx | 2 +- ui/lib/compliance/commons.ts | 80 ------------------- ui/types/compliance.ts | 11 --- 11 files changed, 63 insertions(+), 185 deletions(-) diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 9059414c40..467fc2dd8f 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -7,6 +7,7 @@ All notable changes to the **Prowler UI** are documented in this file. ### 🐞 Fixes - Fix sync between filter buttons and URL when filters change. [(#7928)](https://github.com/prowler-cloud/prowler/pull/7928) +- Improve heatmap perfomance. [(#7934)](https://github.com/prowler-cloud/prowler/pull/7934) ### 🚀 Added diff --git a/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx b/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx index 189a33531a..98a83d403b 100644 --- a/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx +++ b/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx @@ -24,7 +24,6 @@ import { getComplianceIcon } from "@/components/icons/compliance/IconCompliance" import { ContentLayout } from "@/components/ui"; import { calculateCategoryHeatmapData, - calculateRegionHeatmapData, getComplianceMapper, } from "@/lib/compliance/commons"; import { ScanProps } from "@/types"; @@ -154,6 +153,7 @@ export default async function ComplianceDetail({ uniqueRegions={uniqueRegions} showSearch={false} framework={compliancetitle} + showProviders={false} /> @@ -192,16 +187,12 @@ const SSRComplianceContent = async ({ region, filter, logoPath, - uniqueRegions, - isRegionFiltered, }: { complianceId: string; scanId: string; region?: string; filter?: string; logoPath?: string; - uniqueRegions: string[]; - isRegionFiltered: boolean; }) => { if (!scanId) { return ( @@ -209,14 +200,7 @@ const SSRComplianceContent = async ({ - +
@@ -236,20 +220,15 @@ const SSRComplianceContent = async ({ // Determine framework from the first attribute item const framework = attributesData?.data?.[0]?.attributes?.framework; const mapper = getComplianceMapper(framework); + + // Use the same data for both compliance view and heatmap const data = mapper.mapComplianceData( attributesData, requirementsData, filter, ); - // Calculate region heatmap data using already obtained data - const regionHeatmapData = await calculateRegionHeatmapData( - complianceId, - scanId, - uniqueRegions, - attributesData, - mapper, - ); + // Calculate category heatmap data const categoryHeatmapData = calculateCategoryHeatmapData(data); const totalRequirements: RequirementsTotals = data.reduce( @@ -277,12 +256,7 @@ const SSRComplianceContent = async ({ manual={totalRequirements.manual} /> - + diff --git a/ui/components/compliance/compliance-accordion/client-accordion-content.tsx b/ui/components/compliance/compliance-accordion/client-accordion-content.tsx index d22c4b2fe4..ae13888bdd 100644 --- a/ui/components/compliance/compliance-accordion/client-accordion-content.tsx +++ b/ui/components/compliance/compliance-accordion/client-accordion-content.tsx @@ -12,7 +12,7 @@ import { Accordion } from "@/components/ui/accordion/Accordion"; import { DataTable } from "@/components/ui/table"; import { createDict } from "@/lib"; import { getComplianceMapper } from "@/lib/compliance/commons"; -import { ComplianceId, Requirement } from "@/types/compliance"; +import { Requirement } from "@/types/compliance"; import { FindingProps, FindingsResponse } from "@/types/components"; interface ClientAccordionContentProps { @@ -32,7 +32,7 @@ export const ClientAccordionContent = ({ const [expandedFindings, setExpandedFindings] = useState([]); const searchParams = useSearchParams(); const pageNumber = searchParams.get("page") || "1"; - const complianceId = searchParams.get("complianceId") as ComplianceId; + const complianceId = searchParams.get("complianceId"); const defaultSort = "severity,status,-inserted_at"; const sort = searchParams.get("sort") || defaultSort; const loadedPageRef = useRef(null); @@ -116,8 +116,8 @@ export const ClientAccordionContent = ({ return (
{renderDetails()} -

- This requirement has no checks; therefore, there are no findings. +

+ ⚠️ This requirement has no checks; therefore, there are no findings.

); @@ -164,7 +164,11 @@ export const ClientAccordionContent = ({ ); } - return
There are no findings for this regions
; + return ( +
+ ⚠️ There are no findings for this regions +
+ ); }; return ( @@ -172,7 +176,7 @@ export const ClientAccordionContent = ({ {renderDetails()} {checks.length > 0 && ( -
+
{ return (
-
- {name} +
+ {name}
diff --git a/ui/components/compliance/compliance-accordion/compliance-accordion-title.tsx b/ui/components/compliance/compliance-accordion/compliance-accordion-title.tsx index 0f3f681b59..c9fa69aa8d 100644 --- a/ui/components/compliance/compliance-accordion/compliance-accordion-title.tsx +++ b/ui/components/compliance/compliance-accordion/compliance-accordion-title.tsx @@ -24,7 +24,7 @@ export const ComplianceAccordionTitle = ({
{label.charAt(0).toUpperCase() + label.slice(1)} diff --git a/ui/components/compliance/compliance-card.tsx b/ui/components/compliance/compliance-card.tsx index 63f4c0150b..720c5acd77 100644 --- a/ui/components/compliance/compliance-card.tsx +++ b/ui/components/compliance/compliance-card.tsx @@ -71,14 +71,15 @@ export const ComplianceCard: React.FC = ({ return "success"; }; + const isPressable = + id.includes("ens") || + id.includes("iso") || + id.includes("cis_") || + id.includes("pillar"); + const navigateToDetail = () => { // We will unlock this while developing the rest of complainces. - if ( - !id.includes("ens") && - !id.includes("iso") && - !id.includes("cis_") && - !id.includes("pillar") - ) { + if (!isPressable) { return; } @@ -106,7 +107,7 @@ export const ComplianceCard: React.FC = ({ fullWidth isHoverable shadow="sm" - isPressable + isPressable={isPressable} onPress={navigateToDetail} > diff --git a/ui/components/compliance/compliance-charts/heatmap-chart.tsx b/ui/components/compliance/compliance-charts/heatmap-chart.tsx index d4cb3b3a0a..bf5474595f 100644 --- a/ui/components/compliance/compliance-charts/heatmap-chart.tsx +++ b/ui/components/compliance/compliance-charts/heatmap-chart.tsx @@ -1,15 +1,13 @@ "use client"; +import { cn } from "@nextui-org/react"; import { useTheme } from "next-themes"; import { useState } from "react"; -import { CategoryData, RegionData } from "@/types/compliance"; +import { CategoryData } from "@/types/compliance"; interface HeatmapChartProps { - regions: RegionData[]; categories?: CategoryData[]; - isRegionFiltered?: boolean; // Indicates if a region filter is active - filteredRegionName?: string; // Name of the filtered region } const getHeatmapColor = (percentage: number): string => { @@ -32,48 +30,32 @@ const capitalizeFirstLetter = (text: string): string => { ); }; -export const HeatmapChart = ({ - regions, - categories = [], - isRegionFiltered = false, -}: HeatmapChartProps) => { +export const HeatmapChart = ({ categories = [] }: HeatmapChartProps) => { const { theme } = useTheme(); - const [hoveredItem, setHoveredItem] = useState< - RegionData | CategoryData | null - >(null); + const [hoveredItem, setHoveredItem] = useState(null); const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 }); - // Determine what data to show and prepare it - const dataToShow = isRegionFiltered ? categories : regions; - const heatmapData = dataToShow + // Use categories data and prepare it + const heatmapData = categories .filter((item) => item.totalRequirements > 0) .sort((a, b) => b.failurePercentage - a.failurePercentage) .slice(0, 9); // Exactly 9 items for 3x3 grid // Check if there are no items with data - if (!dataToShow || dataToShow.length === 0 || heatmapData.length === 0) { - const noDataMessage = isRegionFiltered - ? "No category data available" - : "No regional data available"; - + if (!categories.length || heatmapData.length === 0) { return (

- {isRegionFiltered - ? "Categories Failure Rate" - : "Failure Rate by Region"} + Sections Failure Rate

-

{noDataMessage}

+

No category data available

); } - const handleMouseEnter = ( - item: RegionData | CategoryData, - event: React.MouseEvent, - ) => { + const handleMouseEnter = (item: CategoryData, event: React.MouseEvent) => { setHoveredItem(item); setMousePosition({ x: event.clientX, y: event.clientY }); }; @@ -90,19 +72,27 @@ export const HeatmapChart = ({

- {isRegionFiltered - ? "Categories Failure Rate" - : "Failure Rate by Region"} + Sections Failure Rate

-
- {/* 3x3 Grid */} -
+
+
{heatmapData.map((item) => (
-
+
- {isRegionFiltered - ? capitalizeFirstLetter(item.name) - : item.name} + {capitalizeFirstLetter(item.name)}
- {isRegionFiltered - ? capitalizeFirstLetter(hoveredItem.name) - : hoveredItem.name} + {capitalizeFirstLetter(hoveredItem.name)}
Failure Rate: {hoveredItem.failurePercentage}%
diff --git a/ui/components/compliance/compliance-header/compliance-header.tsx b/ui/components/compliance/compliance-header/compliance-header.tsx index e6bfe0dd2d..abe54adf11 100644 --- a/ui/components/compliance/compliance-header/compliance-header.tsx +++ b/ui/components/compliance/compliance-header/compliance-header.tsx @@ -14,6 +14,7 @@ interface ComplianceHeaderProps { showSearch?: boolean; showRegionFilter?: boolean; framework?: string; // Framework name to show specific filters + showProviders?: boolean; } export const ComplianceHeader = ({ @@ -22,6 +23,7 @@ export const ComplianceHeader = ({ showSearch = true, showRegionFilter = true, framework, + showProviders = true, }: ComplianceHeaderProps) => { const frameworkFilters = []; @@ -56,10 +58,10 @@ export const ComplianceHeader = ({ <> {showSearch && } - + {showProviders && } {allFilters.length > 0 && ( <> - + {showProviders && } )} diff --git a/ui/components/ui/accordion/Accordion.tsx b/ui/components/ui/accordion/Accordion.tsx index 1bbcbc9ed8..8117d5eea6 100644 --- a/ui/components/ui/accordion/Accordion.tsx +++ b/ui/components/ui/accordion/Accordion.tsx @@ -138,7 +138,7 @@ export const Accordion = ({ indicator={} classNames={{ base: index === 0 || index === 1 ? "my-1" : "my-1", - title: "text-sm font-medium max-w-full overflow-hidden truncate", + title: "text-sm", subtitle: "text-xs text-gray-500", trigger: "py-2 px-2 rounded-lg data-[hover=true]:bg-gray-50 dark:data-[hover=true]:bg-gray-800/50 w-full flex items-center", diff --git a/ui/lib/compliance/commons.ts b/ui/lib/compliance/commons.ts index 7317bb6c0f..c62933b635 100644 --- a/ui/lib/compliance/commons.ts +++ b/ui/lib/compliance/commons.ts @@ -10,7 +10,6 @@ import { CategoryData, FailedSection, Framework, - RegionData, Requirement, RequirementsData, } from "@/types/compliance"; @@ -138,85 +137,6 @@ export const getComplianceMapper = (framework?: string): ComplianceMapper => { return complianceMappers[framework] || defaultMapper; }; -export const calculateRegionHeatmapData = async ( - complianceId: string, - scanId: string, - uniqueRegions: string[], - attributesData: AttributesData, - mapper: ComplianceMapper, -): Promise => { - if (!complianceId || !scanId || !uniqueRegions?.length) { - return []; - } - - try { - const { getComplianceRequirements } = await import("@/actions/compliances"); - - // Get data for each region in parallel - const regionPromises = uniqueRegions.map(async (region) => { - try { - // Only need to fetch requirements data per region - const regionRequirementsData = await getComplianceRequirements({ - complianceId, - scanId, - region, // Filter by specific region - }); - - // Map the data using the provided mapper - const mappedData = mapper.mapComplianceData( - attributesData, - regionRequirementsData, - ); - - // Calculate totals for this region - const regionTotals = mappedData.reduce( - (acc, framework) => ({ - pass: acc.pass + framework.pass, - fail: acc.fail + framework.fail, - manual: acc.manual + framework.manual, - }), - { pass: 0, fail: 0, manual: 0 }, - ); - - const totalRequirements = - regionTotals.pass + regionTotals.fail + regionTotals.manual; - const failurePercentage = - totalRequirements > 0 - ? Math.round((regionTotals.fail / totalRequirements) * 100) - : 0; - - return { - name: region, - failurePercentage, - totalRequirements, - failedRequirements: regionTotals.fail, - }; - } catch (error) { - console.error(`Error fetching data for region ${region}:`, error); - return { - name: region, - failurePercentage: 0, - totalRequirements: 0, - failedRequirements: 0, - }; - } - }); - - const regionData = await Promise.all(regionPromises); - - // Filter, sort and limit to top 9 regions for 3x3 grid - const filteredData = regionData - .filter((region) => region.totalRequirements > 0) - .sort((a, b) => b.failurePercentage - a.failurePercentage) - .slice(0, 9); - - return filteredData; - } catch (error) { - console.error("Error calculating region heatmap data:", error); - return []; - } -}; - export const calculateCategoryHeatmapData = ( complianceData: Framework[], ): CategoryData[] => { diff --git a/ui/types/compliance.ts b/ui/types/compliance.ts index 8cfaab0246..994c90d200 100644 --- a/ui/types/compliance.ts +++ b/ui/types/compliance.ts @@ -1,16 +1,5 @@ export type RequirementStatus = "PASS" | "FAIL" | "MANUAL" | "No findings"; -export type ComplianceId = - | "ens_rd2022_aws" - | "iso27001_2013_aws" - | "iso27001_2022_aws" - | "cis_1.4_aws" - | "cis_1.5_aws" - | "cis_2.0_aws" - | "cis_3.0_aws" - | "cis_4.0_aws" - | "cis_5.0_aws"; - export interface CompliancesOverview { data: ComplianceOverviewData[]; } From 6332427e5ee6e3034c16a6609261c360f0451c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Fern=C3=A1ndez=20Poyatos?= Date: Thu, 5 Jun 2025 10:54:51 +0200 Subject: [PATCH 071/111] fix(compliance): add manual status to requirements (#7938) --- api/src/backend/api/compliance.py | 14 +++++++------- api/src/backend/api/tests/test_compliance.py | 12 ++++++------ api/src/backend/api/tests/test_views.py | 18 ++++++++++++++++++ api/src/backend/api/v1/views.py | 14 +++++++++++--- api/src/backend/conftest.py | 18 +++++++++++++++++- 5 files changed, 59 insertions(+), 17 deletions(-) diff --git a/api/src/backend/api/compliance.py b/api/src/backend/api/compliance.py index 96b5e313f3..46e7211962 100644 --- a/api/src/backend/api/compliance.py +++ b/api/src/backend/api/compliance.py @@ -190,6 +190,8 @@ def generate_compliance_overview_template(prowler_compliance: dict): total_checks = len(requirement.Checks) checks_dict = {check: None for check in requirement.Checks} + req_status_val = "MANUAL" if total_checks == 0 else "PASS" + # Build requirement dictionary requirement_dict = { "name": requirement.Name or requirement.Id, @@ -204,20 +206,18 @@ def generate_compliance_overview_template(prowler_compliance: dict): "manual": 0, "total": total_checks, }, - "status": "PASS", + "status": req_status_val, } - # Update requirements status - if total_checks == 0: + # Update requirements status counts for the framework + if req_status_val == "MANUAL": requirements_status["manual"] += 1 + elif req_status_val == "PASS": + requirements_status["passed"] += 1 # Add requirement to compliance requirements compliance_requirements[requirement.Id] = requirement_dict - # Calculate pending requirements - pending_requirements = total_requirements - requirements_status["manual"] - requirements_status["passed"] = pending_requirements - # Build compliance dictionary compliance_dict = { "framework": compliance_data.Framework, diff --git a/api/src/backend/api/tests/test_compliance.py b/api/src/backend/api/tests/test_compliance.py index 6b405536b3..bf3208a4d1 100644 --- a/api/src/backend/api/tests/test_compliance.py +++ b/api/src/backend/api/tests/test_compliance.py @@ -1,12 +1,12 @@ -from unittest.mock import patch, MagicMock +from unittest.mock import MagicMock, patch from api.compliance import ( + generate_compliance_overview_template, + generate_scan_compliance, get_prowler_provider_checks, get_prowler_provider_compliance, - load_prowler_compliance, load_prowler_checks, - generate_scan_compliance, - generate_compliance_overview_template, + load_prowler_compliance, ) from api.models import Provider @@ -69,7 +69,7 @@ class TestCompliance: load_prowler_compliance() - from api.compliance import PROWLER_COMPLIANCE_OVERVIEW_TEMPLATE, PROWLER_CHECKS + from api.compliance import PROWLER_CHECKS, PROWLER_COMPLIANCE_OVERVIEW_TEMPLATE assert PROWLER_COMPLIANCE_OVERVIEW_TEMPLATE == { "template_key": "template_value" @@ -268,7 +268,7 @@ class TestCompliance: "manual": 0, "total": 0, }, - "status": "PASS", + "status": "MANUAL", }, }, "requirements_status": { diff --git a/api/src/backend/api/tests/test_views.py b/api/src/backend/api/tests/test_views.py index 512ba79a93..a588b0ca01 100644 --- a/api/src/backend/api/tests/test_views.py +++ b/api/src/backend/api/tests/test_views.py @@ -4837,6 +4837,24 @@ class TestComplianceOverviewViewSet: assert "description" in attributes assert "status" in attributes + def test_compliance_overview_requirements_manual( + self, authenticated_client, compliance_requirements_overviews_fixture + ): + scan_id = str(compliance_requirements_overviews_fixture[0].scan.id) + # Compliance with a manual requirement + compliance_id = "aws_account_security_onboarding_aws" + + response = authenticated_client.get( + reverse("complianceoverview-requirements"), + { + "filter[scan_id]": scan_id, + "filter[compliance_id]": compliance_id, + }, + ) + assert response.status_code == status.HTTP_200_OK + data = response.json()["data"] + assert data[-1]["attributes"]["status"] == "MANUAL" + def test_compliance_overview_requirements_missing_scan_id( self, authenticated_client ): diff --git a/api/src/backend/api/v1/views.py b/api/src/backend/api/v1/views.py index 99b551fec5..96f1fbb5b4 100644 --- a/api/src/backend/api/v1/views.py +++ b/api/src/backend/api/v1/views.py @@ -2733,7 +2733,10 @@ class ComplianceOverviewViewSet(BaseRLSViewSet, TaskManagementMixin): "requirement_id", "framework", "version", "description" ) .distinct() - .annotate(total_instances=Count("id")) + .annotate( + total_instances=Count("id"), + manual_count=Count("id", filter=Q(requirement_status="MANUAL")), + ) ) passed_instances = ( @@ -2751,8 +2754,13 @@ class ComplianceOverviewViewSet(BaseRLSViewSet, TaskManagementMixin): requirement_id = requirement["requirement_id"] total_instances = requirement["total_instances"] passed_count = passed_counts.get(requirement_id, 0) - - requirement_status = "PASS" if passed_count == total_instances else "FAIL" + is_manual = requirement["manual_count"] == total_instances + if is_manual: + requirement_status = "MANUAL" + elif passed_count == total_instances: + requirement_status = "PASS" + else: + requirement_status = "FAIL" requirements_summary.append( { diff --git a/api/src/backend/conftest.py b/api/src/backend/conftest.py index be215ee59c..f3c99a42ce 100644 --- a/api/src/backend/conftest.py +++ b/api/src/backend/conftest.py @@ -846,8 +846,23 @@ def compliance_requirements_overviews_fixture(scans_fixture, tenants_fixture): total_checks=2, ) - # Create a different compliance framework for testing requirement_overview5 = ComplianceRequirementOverview.objects.create( + tenant=tenant, + scan=scan1, + compliance_id="aws_account_security_onboarding_aws", + framework="AWS-Account-Security-Onboarding", + version="1.0", + description="Description for AWS Account Security Onboarding (MANUAL)", + region="eu-west-2", + requirement_id="requirement3", + requirement_status=StatusChoices.MANUAL, + passed_checks=0, + failed_checks=0, + total_checks=0, + ) + + # Create a different compliance framework for testing + requirement_overview6 = ComplianceRequirementOverview.objects.create( tenant=tenant, scan=scan1, compliance_id="cis_1.4_aws", @@ -868,6 +883,7 @@ def compliance_requirements_overviews_fixture(scans_fixture, tenants_fixture): requirement_overview3, requirement_overview4, requirement_overview5, + requirement_overview6, ) From 1281f4ec5ee49a0c7ba55ae68e492cd94de39707 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Mart=C3=ADn?= Date: Thu, 5 Jun 2025 14:07:36 +0200 Subject: [PATCH 072/111] chore(changelog): update following the correct format (#7908) --- prowler/CHANGELOG.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index 2d4a622c30..a6a60bbd13 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to the **Prowler SDK** are documented in this file. -## [5.8.0] (Prowler v5.8.0) +## [v5.8.0] (Prowler UNRELEASED) ### Added - Add CIS 1.11 compliance framework for Kubernetes. [(#7790)](https://github.com/prowler-cloud/prowler/pull/7790) @@ -25,7 +25,9 @@ All notable changes to the **Prowler SDK** are documented in this file. --- -### [v5.7.2] Fixed +## [v5.7.2] (Prowler v5.7.2) + +### Fixed - Fix `m365_powershell test_credentials` to use sanitized credentials. [(#7761)](https://github.com/prowler-cloud/prowler/pull/7761) - Fix `admincenter_users_admins_reduced_license_footprint` check logic to pass when admin user has no license. [(#7779)](https://github.com/prowler-cloud/prowler/pull/7779) - Fix `m365_powershell` to close the PowerShell sessions in msgraph services. [(#7816)](https://github.com/prowler-cloud/prowler/pull/7816) @@ -67,7 +69,6 @@ All notable changes to the **Prowler SDK** are documented in this file. ## [v5.6.0] (Prowler v5.6.0) ### Added - - Add SOC2 compliance framework to Azure. [(#7489)](https://github.com/prowler-cloud/prowler/pull/7489) - Add check for unused Service Accounts in GCP. [(#7419)](https://github.com/prowler-cloud/prowler/pull/7419) - Add Powershell to Microsoft365. [(#7331)](https://github.com/prowler-cloud/prowler/pull/7331) @@ -117,7 +118,6 @@ All notable changes to the **Prowler SDK** are documented in this file. - Add Microsoft User and User Credential auth to reports [(#7681)](https://github.com/prowler-cloud/prowler/pull/7681) ### Fixed - - Fix package name location in pyproject.toml while replicating for prowler-cloud. [(#7531)](https://github.com/prowler-cloud/prowler/pull/7531) - Remove cache in PyPI release action. [(#7532)](https://github.com/prowler-cloud/prowler/pull/7532) - Add the correct values for logger.info inside iam service. [(#7526)](https://github.com/prowler-cloud/prowler/pull/7526) @@ -138,7 +138,6 @@ All notable changes to the **Prowler SDK** are documented in this file. ## [v5.5.1] (Prowler v5.5.1) ### Fixed - - Add default name to contacts in Azure Defender. [(#7483)](https://github.com/prowler-cloud/prowler/pull/7483) - Handle projects without ID in GCP. [(#7496)](https://github.com/prowler-cloud/prowler/pull/7496) - Restore packages location in PyProject. [(#7510)](https://github.com/prowler-cloud/prowler/pull/7510) From a778d005b65f939c9931f128641bc2a50f27a7de Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Thu, 5 Jun 2025 14:10:27 +0200 Subject: [PATCH 073/111] fix(docs): add mfa warning for users (#7924) Co-authored-by: Pepe Fagoaga --- docs/getting-started/requirements.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/getting-started/requirements.md b/docs/getting-started/requirements.md index e5d6087c1f..3f3a48cbb2 100644 --- a/docs/getting-started/requirements.md +++ b/docs/getting-started/requirements.md @@ -170,6 +170,9 @@ These two new environment variables are **required** to execute the PowerShell m - `M365_USER` should be your Microsoft account email using the **assigned domain in the tenant**. This means it must look like `example@YourCompany.onmicrosoft.com` or `example@YourCompany.com`, but it must be the exact domain assigned to that user in the tenant. + ???+ warning + The user must not be MFA capable. Microsoft does not allow MFA capable users to authenticate programmatically. See [Microsoft documentation](https://learn.microsoft.com/en-us/entra/identity-platform/scenario-desktop-acquire-token-username-password?tabs=dotnet) for more information. + ???+ warning Using a tenant domain other than the one assigned — even if it belongs to the same tenant — will cause Prowler to fail, as Microsoft authentication will not succeed. From 75a11be9e66c1af194da508a736d4a0700c54ded Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Thu, 5 Jun 2025 14:22:43 +0200 Subject: [PATCH 074/111] fix(docs): add final permission assignments example (#7943) --- .../microsoft365/getting-started-m365.md | 4 ++++ .../microsoft365/img/final-permissions-m365.png | Bin 0 -> 82615 bytes 2 files changed, 4 insertions(+) create mode 100644 docs/tutorials/microsoft365/img/final-permissions-m365.png diff --git a/docs/tutorials/microsoft365/getting-started-m365.md b/docs/tutorials/microsoft365/getting-started-m365.md index 2fde79fe84..2dd0515b4d 100644 --- a/docs/tutorials/microsoft365/getting-started-m365.md +++ b/docs/tutorials/microsoft365/getting-started-m365.md @@ -138,6 +138,10 @@ Follow these steps to assign the permissions: ![Grant Admin Consent](./img/grant-admin-consent-delegated.png) + The final result of permission assignment should be this: + + ![Final Permission Assignment](./img/final-permissions-m365.png) + --- ### Assign required roles to your user diff --git a/docs/tutorials/microsoft365/img/final-permissions-m365.png b/docs/tutorials/microsoft365/img/final-permissions-m365.png new file mode 100644 index 0000000000000000000000000000000000000000..c26d80ef66e076ca2ac69442674c076b86a0befc GIT binary patch literal 82615 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 Date: Thu, 5 Jun 2025 14:23:12 +0200 Subject: [PATCH 075/111] fix(changelog): add entries for password encryption in v5.7.3 (#7939) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Víctor Fernández Poyatos --- api/CHANGELOG.md | 4 +++- prowler/CHANGELOG.md | 9 ++++++++- ui/CHANGELOG.md | 8 ++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index 524e83f46b..6662c7922c 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -9,7 +9,6 @@ All notable changes to the **Prowler API** are documented in this file. - Added new `GET /compliance-overviews` endpoints to retrieve compliance metadata and specific requirements statuses [(#7877)](https://github.com/prowler-cloud/prowler/pull/7877). ### Changed -- Renamed field encrypted_password to password for M365 provider [(#7784)](https://github.com/prowler-cloud/prowler/pull/7784) - Reworked `GET /compliance-overviews` to return proper requirement metrics [(#7877)](https://github.com/prowler-cloud/prowler/pull/7877). ### Fixed @@ -22,6 +21,9 @@ All notable changes to the **Prowler API** are documented in this file. ### Added - Database backend to handle already closed connections [(#7935)](https://github.com/prowler-cloud/prowler/pull/7935). +### Changed +- Renamed field encrypted_password to password for M365 provider [(#7784)](https://github.com/prowler-cloud/prowler/pull/7784) + ### Fixed - Fixed transaction persistence with RLS operations [(#7916)](https://github.com/prowler-cloud/prowler/pull/7916). - Reverted the change `get_with_retry` to use the original `get` method for retrieving tasks [(#7932)](https://github.com/prowler-cloud/prowler/pull/7932). diff --git a/prowler/CHANGELOG.md b/prowler/CHANGELOG.md index a6a60bbd13..27023b6827 100644 --- a/prowler/CHANGELOG.md +++ b/prowler/CHANGELOG.md @@ -25,6 +25,14 @@ All notable changes to the **Prowler SDK** are documented in this file. --- +## [v5.7.3] (Prowler v5.7.3) + +### Fixed +- Automatically encrypt password in Microsoft365 provider. [(#7784)](https://github.com/prowler-cloud/prowler/pull/7784) +- Remove last encrypted password appearances. [(#7825)](https://github.com/prowler-cloud/prowler/pull/7825) + +--- + ## [v5.7.2] (Prowler v5.7.2) ### Fixed @@ -62,7 +70,6 @@ All notable changes to the **Prowler SDK** are documented in this file. - Update and upgrade CIS for all the providers [(#7738)](https://github.com/prowler-cloud/prowler/pull/7738) - Cover policies with conditions with SNS endpoint in `sns_topics_not_publicly_accessible`. [(#7750)](https://github.com/prowler-cloud/prowler/pull/7750) - Change severity logic for `ec2_securitygroup_allow_ingress_from_internet_to_all_ports` check. [(#7764)](https://github.com/prowler-cloud/prowler/pull/7764) -- Automatically encrypt password in Microsoft365 provider. [(#7784)](https://github.com/prowler-cloud/prowler/pull/7784) --- diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 467fc2dd8f..9c0f33d57f 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -26,6 +26,14 @@ All notable changes to the **Prowler UI** are documented in this file. --- +## [v1.7.3] (Prowler v5.7.3) + +### 🐞 Fixes + +- Fix encrypted password typo in `formSchemas`. [(#7828)](https://github.com/prowler-cloud/prowler/pull/7828) + +--- + ## [v1.7.2] (Prowler v5.7.2) ### 🐞 Fixes From 8c95e1efafedc1038703a19258c424c748a9e812 Mon Sep 17 00:00:00 2001 From: Pepe Fagoaga Date: Thu, 5 Jun 2025 19:39:36 +0545 Subject: [PATCH 076/111] chore: update API changelog for v5.7.3 (#7948) --- api/CHANGELOG.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index 6662c7922c..264a47235e 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -11,9 +11,6 @@ All notable changes to the **Prowler API** are documented in this file. ### Changed - Reworked `GET /compliance-overviews` to return proper requirement metrics [(#7877)](https://github.com/prowler-cloud/prowler/pull/7877). -### Fixed -- Fixed the connection status verification before launching a scan [(#7831)](https://github.com/prowler-cloud/prowler/pull/7831) - --- ## [v1.8.3] (Prowler v5.7.3) @@ -27,6 +24,8 @@ All notable changes to the **Prowler API** are documented in this file. ### Fixed - Fixed transaction persistence with RLS operations [(#7916)](https://github.com/prowler-cloud/prowler/pull/7916). - Reverted the change `get_with_retry` to use the original `get` method for retrieving tasks [(#7932)](https://github.com/prowler-cloud/prowler/pull/7932). +- Fixed the connection status verification before launching a scan [(#7831)](https://github.com/prowler-cloud/prowler/pull/7831) + --- From bd6272f5a79fb1ad6dce2debee58754f45b8c6b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Mart=C3=ADn?= Date: Fri, 6 Jun 2025 10:14:33 +0200 Subject: [PATCH 077/111] feat(docs): add information about tenants and read-only roles (#7956) --- docs/tutorials/prowler-app-rbac.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/tutorials/prowler-app-rbac.md b/docs/tutorials/prowler-app-rbac.md index 5532cda094..db9339cadf 100644 --- a/docs/tutorials/prowler-app-rbac.md +++ b/docs/tutorials/prowler-app-rbac.md @@ -4,6 +4,9 @@ The **Prowler App** supports multiple users within a single tenant, enabling sea [Roles](#roles) help you control user permissions, determining what actions each user can perform and the data they can access within Prowler. By default, each account includes an immutable **admin** role, ensuring that your account always retains administrative access. +???+ note + If the account is created without an invitation, a new tenant will be provisioned for it. However, if the account is created through an invitation, the user will join the inviter’s tenant. + ## Membership To get to User-Invitation Management we will focus on the Membership section. @@ -156,6 +159,9 @@ Follow these steps to create a role for your account: Role parameters +???+ note + To assign read-only access, select only the `Unlimited Visibility` permission when creating the role. Then, go to the Users page and assign this role to the appropriate user. + #### Editing a Role Follow these steps to edit a role on your account: From acf333493adc031d1ce561183c1f903b39b01119 Mon Sep 17 00:00:00 2001 From: Andoni Alonso <14891798+andoniaf@users.noreply.github.com> Date: Fri, 6 Jun 2025 10:42:14 +0200 Subject: [PATCH 078/111] chore(api): reorder docker layers to speed up build times (#7957) --- api/Dockerfile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/api/Dockerfile b/api/Dockerfile index 8291b14295..86cf59c8d3 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -37,18 +37,17 @@ COPY pyproject.toml ./ RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir poetry -COPY src/backend/ ./backend/ - ENV PATH="/home/prowler/.local/bin:$PATH" # Add `--no-root` to avoid installing the current project as a package RUN poetry install --no-root && \ rm -rf ~/.cache/pip -COPY docker-entrypoint.sh ./docker-entrypoint.sh - RUN poetry run python "$(poetry env info --path)/src/prowler/prowler/providers/m365/lib/powershell/m365_powershell.py" +COPY src/backend/ ./backend/ +COPY docker-entrypoint.sh ./docker-entrypoint.sh + WORKDIR /home/prowler/backend # Development image From 50dc396aa340eea1e00d4e2ba18961eefdadf6b8 Mon Sep 17 00:00:00 2001 From: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Date: Fri, 6 Jun 2025 12:38:14 +0200 Subject: [PATCH 079/111] feat: scan id filter drowpdown (#7949) Co-authored-by: Pablo Lara --- ui/app/(prowler)/findings/page.tsx | 21 +++---- .../compliance-header/compliance-header.tsx | 2 +- .../compliance-scan-info.tsx | 21 ++++--- .../compliance-header/data-compliance.tsx | 6 +- .../compliance/compliance-header/index.ts | 2 +- ...-compliance-data.tsx => scan-selector.tsx} | 4 +- ui/components/compliance/index.ts | 2 +- .../ui/custom/custom-dropdown-filter.tsx | 61 ++++++++++++++----- ui/components/ui/entities/date-with-time.tsx | 8 ++- .../ui/entities/entity-info-short.tsx | 14 +++-- ui/components/ui/entities/snippet-chip.tsx | 11 +++- ui/lib/helper-filters.ts | 54 ++++++++++++++++ ui/lib/provider-helpers.ts | 4 +- ui/types/filters.ts | 7 ++- ui/types/providers.ts | 2 +- ui/types/scans.ts | 12 ++++ 16 files changed, 176 insertions(+), 55 deletions(-) rename ui/components/compliance/compliance-header/{select-scan-compliance-data.tsx => scan-selector.tsx} (94%) diff --git a/ui/app/(prowler)/findings/page.tsx b/ui/app/(prowler)/findings/page.tsx index 82bf6d6d18..e8290a4167 100644 --- a/ui/app/(prowler)/findings/page.tsx +++ b/ui/app/(prowler)/findings/page.tsx @@ -19,6 +19,7 @@ import { ContentLayout } from "@/components/ui"; import { DataTable, DataTableFilterCustom } from "@/components/ui/table"; import { createDict, + createScanDetailsMapping, extractFiltersAndQuery, extractSortAndKey, hasDateOrScanFilter, @@ -48,7 +49,7 @@ export default async function Findings({ filters, }), getProviders({ pageSize: 50 }), - getScans({}), + getScans({ pageSize: 50 }), ]); // Extract unique regions and services from the new endpoint @@ -76,20 +77,17 @@ export default async function Findings({ }); // Extract scan UUIDs with "completed" state and more than one resource - const completedScans = scansData?.data - ?.filter( - (scan: ScanProps) => - scan.attributes.state === "completed" && - scan.attributes.unique_resource_count > 1, - ) - .map((scan: ScanProps) => ({ - id: scan.id, - name: scan.attributes.name, - })); + const completedScans = scansData?.data?.filter( + (scan: ScanProps) => + scan.attributes.state === "completed" && + scan.attributes.unique_resource_count > 1, + ); const completedScanIds = completedScans?.map((scan: ScanProps) => scan.id) || []; + const scanDetails = createScanDetailsMapping(completedScans, providersData); + return ( @@ -119,6 +117,7 @@ export default async function Findings({ key: "scan__in", labelCheckboxGroup: "Scan ID", values: completedScanIds, + valueLabelMapping: scanDetails, index: 9, }, ]} diff --git a/ui/components/compliance/compliance-header/compliance-header.tsx b/ui/components/compliance/compliance-header/compliance-header.tsx index abe54adf11..6427a28646 100644 --- a/ui/components/compliance/compliance-header/compliance-header.tsx +++ b/ui/components/compliance/compliance-header/compliance-header.tsx @@ -6,7 +6,7 @@ import { FilterControls } from "@/components/filters"; import { DataTableFilterCustom } from "@/components/ui/table/data-table-filter-custom"; import { DataCompliance } from "./data-compliance"; -import { SelectScanComplianceDataProps } from "./select-scan-compliance-data"; +import { SelectScanComplianceDataProps } from "./scan-selector"; interface ComplianceHeaderProps { scans: SelectScanComplianceDataProps["scans"]; diff --git a/ui/components/compliance/compliance-header/compliance-scan-info.tsx b/ui/components/compliance/compliance-header/compliance-scan-info.tsx index a6690da618..acaef4caa2 100644 --- a/ui/components/compliance/compliance-header/compliance-scan-info.tsx +++ b/ui/components/compliance/compliance-header/compliance-scan-info.tsx @@ -1,4 +1,4 @@ -import { Divider } from "@nextui-org/react"; +import { Divider, Tooltip } from "@nextui-org/react"; import React from "react"; import { DateWithTime, EntityInfoShort } from "@/components/ui/entities"; @@ -22,18 +22,25 @@ export const ComplianceScanInfo: React.FC = ({ scan, }) => { return ( -
+
- -
-

- {scan.attributes.name || "- -"} -

+ +
+ +

+ {scan.attributes.name || "- -"} +

+
diff --git a/ui/components/compliance/compliance-header/data-compliance.tsx b/ui/components/compliance/compliance-header/data-compliance.tsx index a24a1db6c1..c04cd0fed0 100644 --- a/ui/components/compliance/compliance-header/data-compliance.tsx +++ b/ui/components/compliance/compliance-header/data-compliance.tsx @@ -4,7 +4,7 @@ import { useRouter, useSearchParams } from "next/navigation"; import { useEffect } from "react"; import { - SelectScanComplianceData, + ScanSelector, SelectScanComplianceDataProps, } from "@/components/compliance/compliance-header/index"; interface DataComplianceProps { @@ -35,8 +35,8 @@ export const DataCompliance = ({ scans }: DataComplianceProps) => { return (
-
- + void; } -export const SelectScanComplianceData = ({ +export const ScanSelector = ({ scans, selectedScanId, onSelectionChange, @@ -26,7 +26,7 @@ export const SelectScanComplianceData = ({ aria-label="Select a Scan" placeholder="Select a scan" classNames={{ - selectorIcon: "right-2", + trigger: "w-full min-w-[365px]", }} size="lg" labelPlacement="outside" diff --git a/ui/components/compliance/index.ts b/ui/components/compliance/index.ts index 5beaaf4c5b..096951a261 100644 --- a/ui/components/compliance/index.ts +++ b/ui/components/compliance/index.ts @@ -12,7 +12,7 @@ export * from "./compliance-custom-details/iso-details"; export * from "./compliance-header/compliance-header"; export * from "./compliance-header/compliance-scan-info"; export * from "./compliance-header/data-compliance"; -export * from "./compliance-header/select-scan-compliance-data"; +export * from "./compliance-header/scan-selector"; export * from "./no-scans-available"; export * from "./skeletons/bar-chart-skeleton"; export * from "./skeletons/compliance-accordion-skeleton"; diff --git a/ui/components/ui/custom/custom-dropdown-filter.tsx b/ui/components/ui/custom/custom-dropdown-filter.tsx index be4282cf78..9330b5306b 100644 --- a/ui/components/ui/custom/custom-dropdown-filter.tsx +++ b/ui/components/ui/custom/custom-dropdown-filter.tsx @@ -20,8 +20,15 @@ import React, { useState, } from "react"; +import { ComplianceScanInfo } from "@/components/compliance/compliance-header/compliance-scan-info"; import { EntityInfoShort } from "@/components/ui/entities"; -import { CustomDropdownFilterProps } from "@/types"; +import { isScanEntity } from "@/lib/helper-filters"; +import { + CustomDropdownFilterProps, + FilterEntity, + ProviderEntity, + ScanEntity, +} from "@/types"; export const CustomDropdownFilter = ({ filter, @@ -177,10 +184,25 @@ export const CustomDropdownFilter = ({ const getDisplayLabel = useCallback( (value: string) => { - const entity = filter.valueLabelMapping?.find((entry) => entry[value])?.[ - value - ]; - return entity?.alias || entity?.uid || value; + const entity: FilterEntity | undefined = filter.valueLabelMapping?.find( + (entry) => entry[value], + )?.[value]; + if (!entity) return value; + + if (isScanEntity(entity as ScanEntity)) { + return ( + (entity as ScanEntity).attributes?.name || + (entity as ScanEntity).providerInfo?.alias || + (entity as ScanEntity).providerInfo?.uid || + value + ); + } else { + return ( + (entity as ProviderEntity).alias || + (entity as ProviderEntity).uid || + value + ); + } }, [filter.valueLabelMapping], ); @@ -239,7 +261,7 @@ export const CustomDropdownFilter = ({ onKeyDown={(e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); - handleClearAll(e as any); + handleClearAll(e as unknown as React.MouseEvent); } }} > @@ -251,7 +273,7 @@ export const CustomDropdownFilter = ({
- +
{filterValues.map((value) => { - const entity = filter.valueLabelMapping?.find( - (entry) => entry[value], - )?.[value]; + const entity: FilterEntity | undefined = + filter.valueLabelMapping?.find((entry) => entry[value])?.[ + value + ]; return ( {entity ? ( - + isScanEntity(entity as ScanEntity) ? ( + + ) : ( + + ) ) : ( value )} diff --git a/ui/components/ui/entities/date-with-time.tsx b/ui/components/ui/entities/date-with-time.tsx index e04c3e1cb6..080f2a0a74 100644 --- a/ui/components/ui/entities/date-with-time.tsx +++ b/ui/components/ui/entities/date-with-time.tsx @@ -30,9 +30,13 @@ export const DateWithTime: React.FC = ({
- {formattedDate} + + {formattedDate} + {showTime && ( - {formattedTime} + + {formattedTime} + )}
diff --git a/ui/components/ui/entities/entity-info-short.tsx b/ui/components/ui/entities/entity-info-short.tsx index ecf7687e2f..2b2ca7d6f0 100644 --- a/ui/components/ui/entities/entity-info-short.tsx +++ b/ui/components/ui/entities/entity-info-short.tsx @@ -1,3 +1,4 @@ +import { Tooltip } from "@nextui-org/react"; import React from "react"; import { IdIcon } from "@/components/icons"; @@ -11,6 +12,7 @@ interface EntityInfoProps { entityAlias?: string; entityId?: string; hideCopyButton?: boolean; + snippetWidth?: string; } export const EntityInfoShort: React.FC = ({ @@ -20,12 +22,16 @@ export const EntityInfoShort: React.FC = ({ hideCopyButton = false, }) => { return ( -
-
+
+
{getProviderLogo(cloudProvider)}
-
+
{entityAlias && ( - {entityAlias} + + + {entityAlias} + + )} -
+
{icon} - + {formatter ? formatter(value) : value} diff --git a/ui/lib/helper-filters.ts b/ui/lib/helper-filters.ts index fe17185746..5668e24339 100644 --- a/ui/lib/helper-filters.ts +++ b/ui/lib/helper-filters.ts @@ -1,3 +1,6 @@ +import { ProviderProps, ProvidersApiResponse, ScanProps } from "@/types"; +import { ScanEntity } from "@/types/scans"; + /** * Extracts normalized filters and search query from the URL search params. * Used Server Side Rendering (SSR). There is a hook (useUrlFilters) for client side. @@ -44,3 +47,54 @@ export const extractSortAndKey = (searchParams: Record) => { return { searchParamsKey, rawSort, encodedSort }; }; + +export const isScanEntity = (entity: ScanEntity) => { + return entity && entity.providerInfo && entity.attributes; +}; + +/** + * Creates a scan details mapping for filters from completed scans. + * Used to provide detailed information for scan filters in the UI. + */ +export const createScanDetailsMapping = ( + completedScans: ScanProps[], + providersData?: ProvidersApiResponse, +) => { + if (!completedScans || completedScans.length === 0) { + return []; + } + + const scanMappings = completedScans.map((scan: ScanProps) => { + // Get provider info from providerInfo if available, or find from providers data + let providerInfo = scan.providerInfo; + + if (!providerInfo && scan.relationships?.provider?.data?.id) { + const provider = providersData?.data?.find( + (p: ProviderProps) => p.id === scan.relationships.provider.data.id, + ); + if (provider) { + providerInfo = { + provider: provider.attributes.provider, + alias: provider.attributes.alias, + uid: provider.attributes.uid, + }; + } + } + + return { + [scan.id]: { + providerInfo: { + provider: providerInfo?.provider || "aws", + alias: providerInfo?.alias, + uid: providerInfo?.uid, + }, + attributes: { + name: scan.attributes.name, + completed_at: scan.attributes.completed_at, + }, + }, + }; + }); + + return scanMappings; +}; diff --git a/ui/lib/provider-helpers.ts b/ui/lib/provider-helpers.ts index ff6b9d0ef4..d1247c3eb4 100644 --- a/ui/lib/provider-helpers.ts +++ b/ui/lib/provider-helpers.ts @@ -1,5 +1,5 @@ import { - ProviderAccountProps, + ProviderEntity, ProviderProps, ProvidersApiResponse, } from "@/types/providers"; @@ -21,7 +21,7 @@ export const extractProviderUIDs = ( export const createProviderDetailsMapping = ( providerUIDs: string[], providersData: ProvidersApiResponse, -): Array<{ [uid: string]: ProviderAccountProps }> => { +): Array<{ [uid: string]: ProviderEntity }> => { if (!providersData?.data) return []; return providerUIDs.map((uid) => { diff --git a/ui/types/filters.ts b/ui/types/filters.ts index 3d0684e1d0..c66d0d4911 100644 --- a/ui/types/filters.ts +++ b/ui/types/filters.ts @@ -1,10 +1,13 @@ -import { ProviderAccountProps } from "./providers"; +import { ProviderEntity } from "./providers"; +import { ScanEntity } from "./scans"; + +export type FilterEntity = ProviderEntity | ScanEntity; export interface FilterOption { key: string; labelCheckboxGroup: string; values: string[]; - valueLabelMapping?: Array<{ [uid: string]: ProviderAccountProps }>; + valueLabelMapping?: Array<{ [uid: string]: FilterEntity }>; index?: number; showSelectAll?: boolean; defaultToSelectAll?: boolean; diff --git a/ui/types/providers.ts b/ui/types/providers.ts index f12fd25944..b7aae5b944 100644 --- a/ui/types/providers.ts +++ b/ui/types/providers.ts @@ -45,7 +45,7 @@ export interface ProviderProps { groupNames?: string[]; } -export interface ProviderAccountProps { +export interface ProviderEntity { provider: ProviderType; uid: string; alias: string | null; diff --git a/ui/types/scans.ts b/ui/types/scans.ts index ac8bfe64e6..707c8d893c 100644 --- a/ui/types/scans.ts +++ b/ui/types/scans.ts @@ -47,3 +47,15 @@ export interface ScanProps { alias: string; }; } + +export interface ScanEntity { + providerInfo: { + provider: ProviderType; + alias?: string; + uid?: string; + }; + attributes: { + name?: string; + completed_at: string; + }; +} From 2ecd9ad2c583923095553620ae35b0daf2b11b68 Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Fri, 6 Jun 2025 13:17:38 +0200 Subject: [PATCH 080/111] docs: update changelog (#7960) --- ui/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 9c0f33d57f..2084920b91 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -19,6 +19,7 @@ All notable changes to the **Prowler UI** are documented in this file. - Add compliance detail view: ISO [(#7897)](https://github.com/prowler-cloud/prowler/pull/7897) - Add compliance detail view: CIS [(#7913)](https://github.com/prowler-cloud/prowler/pull/7913) - Add compliance detail view: AWS Well-Architected Framework [(#7925)](https://github.com/prowler-cloud/prowler/pull/7925) +- Improve `Scan ID` filter by adding more context and enhancing the UI/UX. [(#7949)](https://github.com/prowler-cloud/prowler/pull/7949) ### 🔄 Changed From 3a99909b7512b9bdba159194004e60ec92d77c5d Mon Sep 17 00:00:00 2001 From: Pablo Lara Date: Fri, 6 Jun 2025 13:54:42 +0200 Subject: [PATCH 081/111] chore: align Next.js version to 14.2.29 across Prowler and Cloud (#7962) --- ui/CHANGELOG.md | 1 + ui/package-lock.json | 88 ++++++++++++++++++++++---------------------- ui/package.json | 2 +- 3 files changed, 46 insertions(+), 45 deletions(-) diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index 2084920b91..cc5ccc7b3d 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -24,6 +24,7 @@ All notable changes to the **Prowler UI** are documented in this file. ### 🔄 Changed - Add `Provider UID` filter to scans page. [(#7820)](https://github.com/prowler-cloud/prowler/pull/7820) +- Aligned Next.js version to `v14.2.29` across Prowler and Cloud environments for consistency and improved maintainability. [(#7962)](https://github.com/prowler-cloud/prowler/pull/7962) --- diff --git a/ui/package-lock.json b/ui/package-lock.json index 14523f6c8f..623a48e85c 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -37,7 +37,7 @@ "jose": "^5.9.3", "jwt-decode": "^4.0.0", "lucide-react": "^0.471.0", - "next": "^14.2.26", + "next": "14.2.29", "next-auth": "^5.0.0-beta.25", "next-themes": "^0.2.1", "radix-ui": "^1.1.3", @@ -988,9 +988,9 @@ } }, "node_modules/@next/env": { - "version": "14.2.27", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.27.tgz", - "integrity": "sha512-VLGHu7aBMK0rmSEPjx6qb4njGYfEfN5HpeYV32II1dNZZvPxqa+RfWVgPf4q6hmicavceAGeQneTxofx7Zm/yw==", + "version": "14.2.29", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.29.tgz", + "integrity": "sha512-UzgLR2eBfhKIQt0aJ7PWH7XRPYw7SXz0Fpzdl5THjUnvxy4kfBk9OU4RNPNiETewEEtaBcExNFNn1QWH8wQTjg==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -1004,9 +1004,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.27", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.27.tgz", - "integrity": "sha512-WKJsKqY1f8NkwcfVbUtoTjJ5e8Q2kEFhjM7tVFA3jqesetBR2EegUTed1Ov7lZebQ7XRrphAg665egiCLc9+Iw==", + "version": "14.2.29", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.29.tgz", + "integrity": "sha512-wWtrAaxCVMejxPHFb1SK/PVV1WDIrXGs9ki0C/kUM8ubKHQm+3hU9MouUywCw8Wbhj3pewfHT2wjunLEr/TaLA==", "cpu": [ "arm64" ], @@ -1020,9 +1020,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.27", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.27.tgz", - "integrity": "sha512-fsXAM07rt7FQ/dpPFk+YZ8LVQ48xP37KzPFAwdQFmVzNLgizdUyNSg9zwu7l0ziMtHFBofYgBXayg9qAxIhorQ==", + "version": "14.2.29", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.29.tgz", + "integrity": "sha512-7Z/jk+6EVBj4pNLw/JQrvZVrAh9Bv8q81zCFSfvTMZ51WySyEHWVpwCEaJY910LyBftv2F37kuDPQm0w9CEXyg==", "cpu": [ "x64" ], @@ -1036,9 +1036,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.27", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.27.tgz", - "integrity": "sha512-yMIvV5nTOk4p0TDhd9DU6QswEm8YjZnr1o9ZI7A6jh25JHvPsIvjgyTVSlnrGFKlNNtOOJCIv5mwVU7+4VZvsg==", + "version": "14.2.29", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.29.tgz", + "integrity": "sha512-o6hrz5xRBwi+G7JFTHc+RUsXo2lVXEfwh4/qsuWBMQq6aut+0w98WEnoNwAwt7hkEqegzvazf81dNiwo7KjITw==", "cpu": [ "arm64" ], @@ -1052,9 +1052,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.27", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.27.tgz", - "integrity": "sha512-gpOtTwE9GUkp+VNPwTYFn1fN1UINQTulbgO8UJzBgi77g/+T+yQxfBsKUy2H96aKjoMT/AYfn3yyomNXXVoZZg==", + "version": "14.2.29", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.29.tgz", + "integrity": "sha512-9i+JEHBOVgqxQ92HHRFlSW1EQXqa/89IVjtHgOqsShCcB/ZBjTtkWGi+SGCJaYyWkr/lzu51NTMCfKuBf7ULNw==", "cpu": [ "arm64" ], @@ -1068,9 +1068,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.27", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.27.tgz", - "integrity": "sha512-b7bogYfYyutEhyDST5qpBkmVENZz1mVOO2632KerJjwWgr2cdycAPU33VmpTVvTs/fT8+oeoUuZ31aQV6cUhpw==", + "version": "14.2.29", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.29.tgz", + "integrity": "sha512-B7JtMbkUwHijrGBOhgSQu2ncbCYq9E7PZ7MX58kxheiEOwdkM+jGx0cBb+rN5AeqF96JypEppK6i/bEL9T13lA==", "cpu": [ "x64" ], @@ -1084,9 +1084,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.27", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.27.tgz", - "integrity": "sha512-yGZX038wBDSRJ7tbZ6OFZtCUvLXZDVpw9rEgNUK/0PL++65hENaiMXhxJtupeCFqzHdMuJwrCnEW29saF4NmEw==", + "version": "14.2.29", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.29.tgz", + "integrity": "sha512-yCcZo1OrO3aQ38B5zctqKU1Z3klOohIxug6qdiKO3Q3qNye/1n6XIs01YJ+Uf+TdpZQ0fNrOQI2HrTLF3Zprnw==", "cpu": [ "x64" ], @@ -1100,9 +1100,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.27", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.27.tgz", - "integrity": "sha512-yRY9RzPpk+Jex4DthdKja8C3evh6jB+22AeVd6yTbcnGAFGXQWJTs6DfEcEfeFpqIEcIGbWYq7pinz6vRv7tJA==", + "version": "14.2.29", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.29.tgz", + "integrity": "sha512-WnrfeOEtTVidI9Z6jDLy+gxrpDcEJtZva54LYC0bSKQqmyuHzl0ego+v0F/v2aXq0am67BRqo/ybmmt45Tzo4A==", "cpu": [ "arm64" ], @@ -1116,9 +1116,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.27", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.27.tgz", - "integrity": "sha512-VSqDGpoKoUgkE2Ba4/89ZchktDOwPhKy3HgQgTf3gOhK/ZEibujLJN4qzp3rSIadn4cXUID3PmuEEM6uRPA7nQ==", + "version": "14.2.29", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.29.tgz", + "integrity": "sha512-vkcriFROT4wsTdSeIzbxaZjTNTFKjSYmLd8q/GVH3Dn8JmYjUKOuKXHK8n+lovW/kdcpIvydO5GtN+It2CvKWA==", "cpu": [ "ia32" ], @@ -1132,9 +1132,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.27", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.27.tgz", - "integrity": "sha512-bK46G4uS5SVlq88FnxyupRuuaCfHPtB/7heBRAZCiHD9GdVktadjiQPCzlXWTKgv6pJxP8bE7J9GGDwodtn9Mw==", + "version": "14.2.29", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.29.tgz", + "integrity": "sha512-iPPwUEKnVs7pwR0EBLJlwxLD7TTHWS/AoVZx1l9ZQzfQciqaFEr5AlYzA2uB6Fyby1IF18t4PL0nTpB+k4Tzlw==", "cpu": [ "x64" ], @@ -13169,12 +13169,12 @@ "dev": true }, "node_modules/next": { - "version": "14.2.27", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.27.tgz", - "integrity": "sha512-xmTsnu6rbXVaupRmU2k3BHVpQp7kK+/Ge9XYZlwXQNS2IPP/U9ToDoO6tTSzZIV36fmDBnwKqBUd7KuFXTi0Mw==", + "version": "14.2.29", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.29.tgz", + "integrity": "sha512-s98mCOMOWLGGpGOfgKSnleXLuegvvH415qtRZXpSp00HeEgdmrxmwL9cgKU+h4XrhB16zEI5d/7BnkS3ATInsA==", "license": "MIT", "dependencies": { - "@next/env": "14.2.27", + "@next/env": "14.2.29", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -13189,15 +13189,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.27", - "@next/swc-darwin-x64": "14.2.27", - "@next/swc-linux-arm64-gnu": "14.2.27", - "@next/swc-linux-arm64-musl": "14.2.27", - "@next/swc-linux-x64-gnu": "14.2.27", - "@next/swc-linux-x64-musl": "14.2.27", - "@next/swc-win32-arm64-msvc": "14.2.27", - "@next/swc-win32-ia32-msvc": "14.2.27", - "@next/swc-win32-x64-msvc": "14.2.27" + "@next/swc-darwin-arm64": "14.2.29", + "@next/swc-darwin-x64": "14.2.29", + "@next/swc-linux-arm64-gnu": "14.2.29", + "@next/swc-linux-arm64-musl": "14.2.29", + "@next/swc-linux-x64-gnu": "14.2.29", + "@next/swc-linux-x64-musl": "14.2.29", + "@next/swc-win32-arm64-msvc": "14.2.29", + "@next/swc-win32-ia32-msvc": "14.2.29", + "@next/swc-win32-x64-msvc": "14.2.29" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", diff --git a/ui/package.json b/ui/package.json index 10432cb767..9d14e01b8a 100644 --- a/ui/package.json +++ b/ui/package.json @@ -29,7 +29,7 @@ "jose": "^5.9.3", "jwt-decode": "^4.0.0", "lucide-react": "^0.471.0", - "next": "^14.2.26", + "next": "14.2.29", "next-auth": "^5.0.0-beta.25", "next-themes": "^0.2.1", "radix-ui": "^1.1.3", From 2eaa37921d5e0efee5af111e5e5d0e062b368bfb Mon Sep 17 00:00:00 2001 From: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com> Date: Mon, 9 Jun 2025 09:29:34 +0200 Subject: [PATCH 082/111] feat: KISA detailed view (#7965) --- ui/CHANGELOG.md | 1 + .../compliance/[compliancetitle]/page.tsx | 16 +- .../client-accordion-content.tsx | 4 +- ui/components/compliance/compliance-card.tsx | 1 + .../compliance-charts/bar-chart.tsx | 61 +++-- .../compliance-charts/heatmap-chart.tsx | 16 +- .../compliance-custom-details/iso-details.tsx | 2 +- .../kisa-details.tsx | 93 ++++++++ .../skeletons/bar-chart-skeleton.tsx | 2 +- ui/lib/compliance/commons.ts | 12 + ui/lib/compliance/kisa.tsx | 214 ++++++++++++++++++ ui/types/compliance.ts | 13 +- 12 files changed, 400 insertions(+), 35 deletions(-) create mode 100644 ui/components/compliance/compliance-custom-details/kisa-details.tsx create mode 100644 ui/lib/compliance/kisa.tsx diff --git a/ui/CHANGELOG.md b/ui/CHANGELOG.md index cc5ccc7b3d..15fd774391 100644 --- a/ui/CHANGELOG.md +++ b/ui/CHANGELOG.md @@ -19,6 +19,7 @@ All notable changes to the **Prowler UI** are documented in this file. - Add compliance detail view: ISO [(#7897)](https://github.com/prowler-cloud/prowler/pull/7897) - Add compliance detail view: CIS [(#7913)](https://github.com/prowler-cloud/prowler/pull/7913) - Add compliance detail view: AWS Well-Architected Framework [(#7925)](https://github.com/prowler-cloud/prowler/pull/7925) +- Add compliance detail view: KISA [(#7965)](https://github.com/prowler-cloud/prowler/pull/7965) - Improve `Scan ID` filter by adding more context and enhancing the UI/UX. [(#7949)](https://github.com/prowler-cloud/prowler/pull/7949) ### 🔄 Changed diff --git a/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx b/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx index 98a83d403b..f75c344039 100644 --- a/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx +++ b/ui/app/(prowler)/compliance/[compliancetitle]/page.tsx @@ -1,6 +1,6 @@ import { Spacer } from "@nextui-org/react"; import Image from "next/image"; -import { Suspense } from "react"; +import React, { Suspense } from "react"; import { getComplianceAttributes, @@ -63,8 +63,18 @@ const ChartsWrapper = ({ logoPath?: string; }) => { return ( -
- {children} +
+ {children && + React.Children.toArray(children).map( + (child: React.ReactNode, index: number) => ( +
+ {child} +
+ ), + )}
); }; diff --git a/ui/components/compliance/compliance-accordion/client-accordion-content.tsx b/ui/components/compliance/compliance-accordion/client-accordion-content.tsx index ae13888bdd..bbcba71f26 100644 --- a/ui/components/compliance/compliance-accordion/client-accordion-content.tsx +++ b/ui/components/compliance/compliance-accordion/client-accordion-content.tsx @@ -116,7 +116,7 @@ export const ClientAccordionContent = ({ return (
{renderDetails()} -

+

⚠️ This requirement has no checks; therefore, there are no findings.

@@ -165,7 +165,7 @@ export const ClientAccordionContent = ({ } return ( -
+
⚠️ There are no findings for this regions
); diff --git a/ui/components/compliance/compliance-card.tsx b/ui/components/compliance/compliance-card.tsx index 720c5acd77..0445e8690a 100644 --- a/ui/components/compliance/compliance-card.tsx +++ b/ui/components/compliance/compliance-card.tsx @@ -75,6 +75,7 @@ export const ComplianceCard: React.FC = ({ id.includes("ens") || id.includes("iso") || id.includes("cis_") || + id.includes("kisa") || id.includes("pillar"); const navigateToDetail = () => { diff --git a/ui/components/compliance/compliance-charts/bar-chart.tsx b/ui/components/compliance/compliance-charts/bar-chart.tsx index 5701075247..4e5fe95995 100644 --- a/ui/components/compliance/compliance-charts/bar-chart.tsx +++ b/ui/components/compliance/compliance-charts/bar-chart.tsx @@ -14,12 +14,36 @@ import { import { translateType } from "@/lib/compliance/ens"; import { FailedSection } from "@/types/compliance"; +const CustomYAxisTick = (props: any) => { + const { x, y, payload, theme } = props; + const text = payload.value; + const maxLength = 50; + + const truncatedText = + text.length > maxLength ? `${text.slice(0, maxLength)}...` : text; + + return ( + + + {truncatedText} + + + ); +}; + interface FailedSectionsListProps { sections: FailedSection[]; } const title = ( -

+

Failed Sections (Top 5)

); @@ -74,26 +98,28 @@ export const BarChart = ({ sections }: FailedSectionsListProps) => { // Check if there are no failed sections if (!sections || sections.length === 0) { return ( -
+
{title}
-

There are no failed sections

+

+ There are no failed sections +

); } return ( -
-
{title}
+
+ {title}
{ } axisLine={false} tickLine={false} /> @@ -153,8 +170,13 @@ export const BarChart = ({ sections }: FailedSectionsListProps) => { }} > {props.payload.map((entry: any, index: number) => ( -
- {translateType(entry.dataKey)}: {entry.value} +
+

{data.name}

+

+ + {translateType(entry.dataKey)}: {entry.value} + +

))}
@@ -180,6 +202,7 @@ export const BarChart = ({ sections }: FailedSectionsListProps) => { width: "100%", paddingTop: "16px", marginBottom: "16px", + marginLeft: "56px", }} iconType="circle" layout="horizontal" diff --git a/ui/components/compliance/compliance-charts/heatmap-chart.tsx b/ui/components/compliance/compliance-charts/heatmap-chart.tsx index bf5474595f..3a78faf346 100644 --- a/ui/components/compliance/compliance-charts/heatmap-chart.tsx +++ b/ui/components/compliance/compliance-charts/heatmap-chart.tsx @@ -30,6 +30,12 @@ const capitalizeFirstLetter = (text: string): string => { ); }; +const title = ( +

+ Sections Failure Rate +

+); + export const HeatmapChart = ({ categories = [] }: HeatmapChartProps) => { const { theme } = useTheme(); const [hoveredItem, setHoveredItem] = useState(null); @@ -45,9 +51,7 @@ export const HeatmapChart = ({ categories = [] }: HeatmapChartProps) => { if (!categories.length || heatmapData.length === 0) { return (
-

- Sections Failure Rate -

+ {title}

No category data available

@@ -70,11 +74,7 @@ export const HeatmapChart = ({ categories = [] }: HeatmapChartProps) => { return (
-
-

- Sections Failure Rate -

-
+ {title}
{ return (
-
+
{requirement.description}
diff --git a/ui/components/compliance/compliance-custom-details/kisa-details.tsx b/ui/components/compliance/compliance-custom-details/kisa-details.tsx new file mode 100644 index 0000000000..8f0041be7f --- /dev/null +++ b/ui/components/compliance/compliance-custom-details/kisa-details.tsx @@ -0,0 +1,93 @@ +import { Requirement } from "@/types/compliance"; + +export const KISACustomDetails = ({ + requirement, +}: { + requirement: Requirement; +}) => { + const auditChecklist = requirement.audit_checklist as string[] | undefined; + const relatedRegulations = requirement.related_regulations as + | string[] + | undefined; + const auditEvidence = requirement.audit_evidence as string[] | undefined; + const nonComplianceCases = requirement.non_compliance_cases as + | string[] + | undefined; + + return ( +
+ {requirement.description && ( +
+

+ Description +

+

{requirement.description}

+
+ )} + + {auditChecklist && auditChecklist.length > 0 && ( +
+

+ Audit Checklist +

+
+ {auditChecklist.map((item: string, index: number) => ( +
+ +

{item}

+
+ ))} +
+
+ )} + + {relatedRegulations && relatedRegulations.length > 0 && ( +
+

+ Related Regulations +

+
+ {relatedRegulations.map((regulation: string, index: number) => ( +
+ +

{regulation}

+
+ ))} +
+
+ )} + + {auditEvidence && auditEvidence.length > 0 && ( +
+

+ Audit Evidence +

+
+ {auditEvidence.map((evidence: string, index: number) => ( +
+ +

{evidence}

+
+ ))} +
+
+ )} + + {nonComplianceCases && nonComplianceCases.length > 0 && ( +
+

+ Non-Compliance Cases +

+
+ {nonComplianceCases.map((caseItem: string, index: number) => ( +
+ +

{caseItem}

+
+ ))} +
+
+ )} +
+ ); +}; diff --git a/ui/components/compliance/skeletons/bar-chart-skeleton.tsx b/ui/components/compliance/skeletons/bar-chart-skeleton.tsx index 05f26ae938..2338818068 100644 --- a/ui/components/compliance/skeletons/bar-chart-skeleton.tsx +++ b/ui/components/compliance/skeletons/bar-chart-skeleton.tsx @@ -4,7 +4,7 @@ import { Skeleton } from "@nextui-org/react"; export const BarChartSkeleton = () => { return ( -
+
{/* Title skeleton */}
diff --git a/ui/lib/compliance/commons.ts b/ui/lib/compliance/commons.ts index c62933b635..49fb6bf932 100644 --- a/ui/lib/compliance/commons.ts +++ b/ui/lib/compliance/commons.ts @@ -4,6 +4,7 @@ import { AWSWellArchitectedCustomDetails } from "@/components/compliance/complia import { CISCustomDetails } from "@/components/compliance/compliance-custom-details/cis-details"; import { ENSCustomDetails } from "@/components/compliance/compliance-custom-details/ens-details"; import { ISOCustomDetails } from "@/components/compliance/compliance-custom-details/iso-details"; +import { KISACustomDetails } from "@/components/compliance/compliance-custom-details/kisa-details"; import { AccordionItemProps } from "@/components/ui/accordion/Accordion"; import { AttributesData, @@ -30,6 +31,10 @@ import { mapComplianceData as mapISOComplianceData, toAccordionItems as toISOAccordionItems, } from "./iso"; +import { + mapComplianceData as mapKISAComplianceData, + toAccordionItems as toKISAAccordionItems, +} from "./kisa"; export interface ComplianceMapper { mapComplianceData: ( @@ -119,6 +124,13 @@ const complianceMappers: Record = { getDetailsComponent: (requirement: Requirement) => React.createElement(AWSWellArchitectedCustomDetails, { requirement }), }, + "KISA-ISMS-P": { + mapComplianceData: mapKISAComplianceData, + toAccordionItems: toKISAAccordionItems, + getTopFailedSections, + getDetailsComponent: (requirement: Requirement) => + React.createElement(KISACustomDetails, { requirement }), + }, }; // Default mapper (fallback to ENS for backward compatibility) diff --git a/ui/lib/compliance/kisa.tsx b/ui/lib/compliance/kisa.tsx new file mode 100644 index 0000000000..70545ead92 --- /dev/null +++ b/ui/lib/compliance/kisa.tsx @@ -0,0 +1,214 @@ +import { ClientAccordionContent } from "@/components/compliance/compliance-accordion/client-accordion-content"; +import { ComplianceAccordionRequirementTitle } from "@/components/compliance/compliance-accordion/compliance-accordion-requeriment-title"; +import { ComplianceAccordionTitle } from "@/components/compliance/compliance-accordion/compliance-accordion-title"; +import { AccordionItemProps } from "@/components/ui/accordion/Accordion"; +import { FindingStatus } from "@/components/ui/table/status-finding-badge"; +import { + AttributesData, + Framework, + KISAAttributesMetadata, + Requirement, + RequirementItemData, + RequirementsData, + RequirementStatus, +} from "@/types/compliance"; + +export const mapComplianceData = ( + attributesData: AttributesData, + requirementsData: RequirementsData, +): Framework[] => { + const attributes = attributesData?.data || []; + const requirements = requirementsData?.data || []; + + // Create a map for quick lookup of requirements by id + const requirementsMap = new Map(); + requirements.forEach((req: RequirementItemData) => { + requirementsMap.set(req.id, req); + }); + + const frameworks: Framework[] = []; + + // Process attributes and merge with requirements data + for (const attributeItem of attributes) { + const id = attributeItem.id; + const metadataArray = attributeItem.attributes?.attributes + ?.metadata as unknown as KISAAttributesMetadata[]; + const attrs = metadataArray?.[0]; + if (!attrs) continue; + + // Get corresponding requirement data + const requirementData = requirementsMap.get(id); + if (!requirementData) continue; + + const frameworkName = attributeItem.attributes.framework; + const categoryName = attrs.Domain; // Level 1: Domain + const controlLabel = attrs.Subdomain; // Level 2: Subdomain + const sectionName = attrs.Section; // Level 3: Section + const description = attributeItem.attributes.description; + const status = requirementData.attributes.status || ""; + const checks = attributeItem.attributes.attributes.check_ids || []; + const requirementName = id; + + // Find or create framework + let framework = frameworks.find((f) => f.name === frameworkName); + if (!framework) { + framework = { + name: frameworkName, + pass: 0, + fail: 0, + manual: 0, + categories: [], + }; + frameworks.push(framework); + } + + // Find or create category (Domain) + let category = framework.categories.find((c) => c.name === categoryName); + if (!category) { + category = { + name: categoryName, + pass: 0, + fail: 0, + manual: 0, + controls: [], + }; + framework.categories.push(category); + } + + // Find or create control (Subdomain) + let control = category.controls.find((c) => c.label === controlLabel); + if (!control) { + control = { + label: controlLabel, + pass: 0, + fail: 0, + manual: 0, + requirements: [], + }; + category.controls.push(control); + } + + // Create requirement (Section) + const finalStatus: RequirementStatus = status as RequirementStatus; + const requirement: Requirement = { + name: requirementName, + description: description, + status: finalStatus, + check_ids: checks, + pass: finalStatus === "PASS" ? 1 : 0, + fail: finalStatus === "FAIL" ? 1 : 0, + manual: finalStatus === "MANUAL" ? 1 : 0, + section: sectionName, + audit_checklist: attrs.AuditChecklist, + related_regulations: attrs.RelatedRegulations, + audit_evidence: attrs.AuditEvidence, + non_compliance_cases: attrs.NonComplianceCases, + }; + + control.requirements.push(requirement); + } + + // Calculate counters + frameworks.forEach((framework) => { + framework.pass = 0; + framework.fail = 0; + framework.manual = 0; + + framework.categories.forEach((category) => { + category.pass = 0; + category.fail = 0; + category.manual = 0; + + category.controls.forEach((control) => { + control.pass = 0; + control.fail = 0; + control.manual = 0; + + control.requirements.forEach((requirement) => { + if (requirement.status === "MANUAL") { + control.manual++; + } else if (requirement.status === "PASS") { + control.pass++; + } else if (requirement.status === "FAIL") { + control.fail++; + } + }); + + category.pass += control.pass; + category.fail += control.fail; + category.manual += control.manual; + }); + + framework.pass += category.pass; + framework.fail += category.fail; + framework.manual += category.manual; + }); + }); + + return frameworks; +}; + +export const toAccordionItems = ( + data: Framework[], + scanId: string | undefined, +): AccordionItemProps[] => { + return data.flatMap((framework) => + framework.categories.map((category) => { + return { + key: `${framework.name}-${category.name}`, + title: ( + + ), + content: "", + items: category.controls.map((control, i: number) => { + return { + key: `${framework.name}-${category.name}-control-${i}`, + title: ( + + ), + content: "", + items: control.requirements.map((requirement, j: number) => { + const itemKey = `${framework.name}-${category.name}-control-${i}-req-${j}`; + + return { + key: itemKey, + title: ( + + ), + content: ( + + ), + items: [], + }; + }), + isDisabled: + control.pass === 0 && control.fail === 0 && control.manual === 0, + }; + }), + }; + }), + ); +}; diff --git a/ui/types/compliance.ts b/ui/types/compliance.ts index 994c90d200..f6551ba07e 100644 --- a/ui/types/compliance.ts +++ b/ui/types/compliance.ts @@ -113,6 +113,16 @@ export interface AWSWellArchitectedAttributesMetadata { ImplementationGuidanceUrl: string; } +export interface KISAAttributesMetadata { + Domain: string; + Subdomain: string; + Section: string; + AuditChecklist: string[]; + RelatedRegulations: string[]; + AuditEvidence: string[]; + NonComplianceCases: string[]; +} + export interface AttributesItemData { type: "compliance-requirements-attributes"; id: string; @@ -125,7 +135,8 @@ export interface AttributesItemData { | ENSAttributesMetadata[] | ISO27001AttributesMetadata[] | CISAttributesMetadata[] - | AWSWellArchitectedAttributesMetadata[]; + | AWSWellArchitectedAttributesMetadata[] + | KISAAttributesMetadata[]; check_ids: string[]; }; }; From 359059dee6be5dead141b4d9f1bd0fdcf53cfaa0 Mon Sep 17 00:00:00 2001 From: Hugo Pereira Brito <101209179+HugoPBrito@users.noreply.github.com> Date: Mon, 9 Jun 2025 12:11:14 +0200 Subject: [PATCH 083/111] fix(docs): add `Organization.Read.All` to `M365` provider requirements (#7961) --- docs/getting-started/requirements.md | 10 ++++++---- .../microsoft365/getting-started-m365.md | 12 ++++++------ .../microsoft365/img/app-permissions.png | Bin 0 -> 163319 bytes .../img/final-permissions-m365.png | Bin 82615 -> 64148 bytes .../microsoft365/img/grant-admin-consent.png | Bin 449634 -> 187844 bytes 5 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 docs/tutorials/microsoft365/img/app-permissions.png diff --git a/docs/getting-started/requirements.md b/docs/getting-started/requirements.md index 3f3a48cbb2..efe66d8999 100644 --- a/docs/getting-started/requirements.md +++ b/docs/getting-started/requirements.md @@ -202,11 +202,13 @@ Since this is a delegated permission authentication method, necessary permission Prowler for M365 requires two types of permission scopes to be set (if you want to run the full provider including PowerShell checks). Both must be configured using Microsoft Entra ID: - **Service Principal Application Permissions**: These are set at the **application** level and are used to retrieve data from the identity being assessed: - - `Domain.Read.All`: Required for all services. - - `Policy.Read.All`: Required for all services. - - `User.Read` (IMPORTANT: this must be set as **delegated**): Required for the sign-in. - - `SharePointTenantSettings.Read.All`: Required for SharePoint service. - `AuditLog.Read.All`: Required for Entra service. + - `Domain.Read.All`: Required for all services. + - `Organization.Read.All`: Required for retrieving tenant information. + - `Policy.Read.All`: Required for all services. + - `SharePointTenantSettings.Read.All`: Required for SharePoint service. + - `User.Read` (IMPORTANT: this must be set as **delegated**): Required for the sign-in. + - **Powershell Modules Permissions**: These are set at the `M365_USER` level, so the user used to run Prowler must have one of the following roles: - `Global Reader` (recommended): this allows you to read all roles needed. diff --git a/docs/tutorials/microsoft365/getting-started-m365.md b/docs/tutorials/microsoft365/getting-started-m365.md index 2dd0515b4d..f45fde5c2c 100644 --- a/docs/tutorials/microsoft365/getting-started-m365.md +++ b/docs/tutorials/microsoft365/getting-started-m365.md @@ -114,29 +114,29 @@ Follow these steps to assign the permissions: 3. Search and select every permission below and once all are selected click on `Add permissions`: - `AuditLog.Read.All`: Required for Entra service. - `Domain.Read.All` + - `Organization.Read.All` - `Policy.Read.All` - `SharePointTenantSettings.Read.All` ![Permission Screenshots](./img/directory-permission.png) -4. Click `Add permissions`, then grant admin consent + ![Application Permissions](./img/app-permissions.png) - ![Grant Admin Consent](./img/grant-admin-consent.png) -5. Click `+ Add a permission` > `Microsoft Graph` > `Delegated permissions` +4. Click `+ Add a permission` > `Microsoft Graph` > `Delegated permissions` ![Add API Permission](./img/add-delegated-api-permission.png) -6. Search and select: +5. Search and select: - `User.Read` ![Permission Screenshots](./img/directory-permission-delegated.png) -7. Click `Add permissions`, then grant admin consent +6. Click `Add permissions`, then **grant admin consent** - ![Grant Admin Consent](./img/grant-admin-consent-delegated.png) + ![Grant Admin Consent](./img/grant-admin-consent.png) The final result of permission assignment should be this: diff --git a/docs/tutorials/microsoft365/img/app-permissions.png b/docs/tutorials/microsoft365/img/app-permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..386447d31fc859b7b32d14b5aa54e6af3770fe5e GIT binary patch literal 163319 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∓F(qoAC@>Hl<0ug%f9yEIQFs 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
  • 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 F{{sR-7sUVo literal 82615 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⁢LbU3oEXx4`h zx>ydGhW6h<0kf9Xo4JIf$oJ+2Ct9OFnpWeCxKK<$j?3PVg8t1@6S}h5bPEG253e z?G@r}$ge~81ngz#Sw05)KJHHB2J$Y7spEE2HrV;|?d9@FkAJ6)d#b}|Lc6=P;pDs! z7Bn2x$IRO~wc?Pvcu_-S2X1NK zpuO4h!u-h+aX(EWU@UrI^@yzFXr)>4dCtnWDeWhXFR&N`W_Akl7vurz;=$c^(?u?-;);2C&jqY+VwV1EU=E1`#~Ai2{e zuz`tL*Vc9;0{lY~w!!$>wV$JR-JE0Fr^RdmFP7mG_}bUKMLS)`u`-o>7wMH~f$hOF zD@Dy^%*)?w&~BCEGpRzX=)xgcNJRi^E)*A3){smBDcQp%@1hIp~0rpYu=mF7KEjBJ0M?phive~)x2}t%`&QV|M_9t^?i2XF<#1n|*fNbas zz&r~NAoCyM3QQORQtEH{g?Y7iGsfu4j$3MY1RBPUmoo2>1eQ_5Y8qw~VSI>b5p<4({%d1b270U;z>=$idx%1$R4Gf(M5H z!QCOaySux)OIPlD@7JTh9`|nzMinJ{pSAaz^O+dt=v!ki^)FAMO;JH^PaIp|HjF<) zp%`R2Jf&Ylx0ySe?B^@|U+-Vs{$3G~-<-MSbovNaFat>bXs2c1v_0W>NtpLbrj#(rI|JQn*TJ&f-lP9MiW zJ>J1D1(b=tkSeV>cb#1xLbcIkr69E#|Mvd(Y&XKh0J{erU_1w?T6+$V8GeQ|%@u$f zXSJ41^95+lN0W*u60qt!pr1o@(a8nq_A*3sx4k}osF@GqNmEI=oWO}jX>mJii)r(| z!*^iuQ%-k+&{#7qxF?zZCOepLcD6NwE>qf zX}8R~dmr60FE$=MaGpU>A3Sg{9ipQ%`A*I0a?T5VeX#+33&zQEWfurLvCdfP64(B- zZx8?3)7!ENAB{*&&@DbDCKxUTv=tXeBx*nI3-B{`&FRYT8WHVOYuA)R8IFhW_ZM4z zEi~JIZn?UzI~*TM5?7z-xJ%)cIX?G1EPAfK*>C?|dK;guzS}?Z)n~HnR4!Yq=6yrg zM9nlcF|IeDnbwy2VC%41%Ow=XL5d^p;52?&O2eYq9<*8&&6 zDF!4YF*zi+M#1>M#zRm%qiO6=Q>sm}0VPj(1CiH9e!%-o2Joqp0nOE0yqbI61b|$k z`HUoT^!R4F$r{h%E%0CBsmrGpnAXR`Vy=w8h=$pxE6wr-fZZ)cDz`7UBI{3A2%dk+ zll^4g3U8r&#=T(_gKn1_%j5ULO~%Jv#+v4lrEKJ4*kE%1-RjY)oRB{U=|K~c6a(t$ ze^QWCh`?m6GV7+&>i~U#%drz~vDPz*G*hF{;lN(V^Ov}$sG;xQeI19G%%q$-Vie&}r-Oy#Ry zV86Ej=zE=ch3W+?tyiOhHFhUDk2^`>)UVM<<||Du{}@q#@QY_KT`(rE)oO+zoMf{O z&~9LrYE`B!*4fg^j(d+iyc`yn(|?So+a%a50H_=B=fxUjc|)3I<3Rh~S>VWG{(R%x z+pG7Z$2HwzwHxbixr~6+dJA!26DFymFNVzc!ysQ%yPygHIHSUd>|erit@5n822v?p zEN+jrujdSW|A8R>No;UwWKfZu9lgneK>zS*GEW}sx45g%KfR!%EXglELm_ws{ah=6W&(8Jc{}-c4j2^58fL1o z#K+M-tDB8wC}B_t#d4LL9uiHWS|kCYA)#(38i-!ArsIYHpj7>sOi7hMr>&+>!S56V zuu){m1YG0yVi)J~l}IcfuMZ{>0JoYFh4<%l;BCJ%oDn7Utp^OI2Q<7M1^2CYs|A3n zlVK0DoDTLfT+is5cewnAzi z-CuU5ERO>Qr%+D~05Tx17n_f<4P0ZbqnrtZoLeW4bMm*6tZJ@sM#fT<%k0G`?DLH^ z(nKA?mQ&;vpL^DsLHrmI#!G=a-<(#0(<%FAyYb7vcIw&F<)4}*kPdA1Tb{c(PQLgE zOEO>4W@VF0KfH-)?)?u+cZSdRDy>M7H3qsv2UhN~!{Su2YVDr&j*H{cc3G zmtS7{A}8Ukp_dOIYNr}}?N}&Wkg$$-R_}5!v2-mQxt`f_%WJAk8u*x?V#Acv#MC6m z|Dz|bN7ha~zCX_5ICNmY{WoIJ9c`I#d;?-@X3(a?Ye~)ixozhrxf+PVG+H4OUs29c z=~aX5ujGrSLH3Xv`NW%3n~W{L3Z+&83E;6ZJ8l-|rFd4*`sAz5Q<>)&?ba;15xklf zqyEun{qM^&%4d2>Qh^>*@=E?#mK7fGM^RWOd#BtEM(!sp*|rjIZ}!zRVP|!-W2(BhgbeZx6Mj0q+Nss$ z>D$~Iw5UWm^%X4Y{w2fL%?gBI5fVo^|NZbFm7ew5gzK4}g?+WqiBhw*?EU@c6on4` zpXn!7!E%MyGto;qq4P+dfN#FVDH4~61Ce$LtXPu@#Iy`9+jXBsY;7FXEwgO3mq71G z+H_sR@txAM(A(%Tj{7=z z)3|;<)S<@O*{(yX>OwzDe3A-k;&YSREguSjQNnBExU{;$l4^P z{j)m{X{Pl`uA3lke}J4I&Z*!k2PnW=Vu7ubnHqUxoeHo&lLXtt8K7=Uk?Px(mKr5p zm9_>*Ep&hsMJ3)5h83>achVyK_G$oALlCQ!%Y zrSdt#pzX+WF8?E#D*fWY0;0NpsxE#z00G5*QYLn{3MFdDRDp8j6YvLxUxx7G@1wdu zm)Yx{EEKIK=mb0G;k!r1G za|GSaJ{3fhb+cakGisEG@!BuHJN_o20~5(eE76qcvlyYT(obQjKdrbSP55Cii*dO9 zzG4xP6qR0?dRL2axUvxCPVb?q0Gz~Jm+kNZ>vYH6PYwRMy;9Bw#J0Ly&3JX&2DS_8MTr?b+bXCnxW?XT&1w+Bj@gS+Ad-8TS7!06qSfJI zQrd7ctJDqID6gR>w-<4LXK(123jX)7;w$rXI>#T~Rav3LpUL!}0aryjvZH}a3t*c{ z%8QFuqo}ZcQ}*uBecP{2VEkeda;Sa!HbZX)NxpV${T_6I7{rzJT5EcRU(^|S1C(M& zI8b)3mYc09fEq;+z_sLXEgSeZ8xhj|A~PL~j}tKH#HOLFXYVFuJ@o~YUxor-p0bEJ z3Hl~FgHgI8J8OAacY%aY$rMi0#7fVhMCQ#?4TH^&YYcB#W0w9utbY6+0ZY`$U{BYx ze83FKG)x{(5OnR#_LC^DmwmbU#=D{UMxo)?z{nY(^x6?b3_&JbsQ4Yg(O9e0z-_mj z{Ez$9P5=pVH0~poZ;EmWp{20PVl=p!n~E2mVXWditlP#O*?uDwWWo_+t)-43}= zzF9kCqsbF1(yF2yz1?Du=#3QKCW)LHbDuDkwcSnME2l(KH)&ri=K5}(wSk6Wwm*~P z&C9c+FaW_d1NlurTk-F;F!f)Z8dD8w$S|qN5}NU-1ocWXngRNcH@_iYwMqC>j}S5f85sNqt>r{>8?ik* zA?)zbS?4ize*KodC?aV>?zdl#(Q2GDIonI+*vlL~Zv;IMV)!cCG?UINV$W@8oM!sr z_$jL-z8{mR9o(#G46Zi4pQDeiT~c`Wg?kYo%#3>A53-tenF}8N=ppL4DSL#OPn#pm zc5IkVsQfbi%VvwXij;uY`MX1oglIaZ8CEj-7tWrIx?4FLiEYyFkPn=>C3d%SboPT< zEy;iBY{@U^o;&!8ehO!>K_cL5k!X*X|INkef6RmV5fR`gVI-*;%Eu>M#VnEv=RgWV z;s8zHA9AM?4_cqnlOs=MZ$pojW)%=p+-{F1sAqU+>Mwghn>Q4bWW-03oH_l`bTXAk z^cWL7>U{#1PD6tF`|fqNSNQ{iwVR_TjE-AmG9LOB;I@A}5lF?qmgC-C3g=D=0bvHY zfsbXw#c6Gju1bTI_DrmT`G8!l^ zmw2c-Rt5z&6boG_=L^xG=hYfNxq4{K>$W;cuL2;No1>*U^>RBs3WW18tDv%_;i*;P_!rws24d}X!L{2zh-#- z*<%5W6D?r{<`_@6M(;?!1-fb%eiHXkd#GltS8tXT<191qT9sZ@{dApib2R4}LBRSU zhN_lzdcn{B3FWnaD9a!A9}PxU`lcK2WRt7j7yL5R9ljY|_uGMO?JKOxFP@R9235(e z+QUp>N9BiGOKifepUCd4IRq47=LgT30h!xhvrrg@a*UGw{nvg?gobJJ@UdsFmve9- ztK$t~p4TPAyR)FH(R_P0tvP%X^C+%&vB|DQoG$2Vmgj!~qUTLrUa;U42+QmlErR7}c3~vO{&?bftyG(UZ zu=UdCHHE}&_8$^U>Nh65vqa>!c0P-w`|^)b^_eN@Q|JPle?(tO_NeS#Hs>6AwN*;# z&4=}c2<%@@4w?_ELPgfjJi3jL&O@J06|>*muMlxR zXv0D{!M*UqePvj-EW?>bI~+q2tZxf#GByk9j`HRHkjZ|CI40+|Fwu8{b4E>UIS>RI z+MOT*I$sSSFoD4PGrFw;kQ!)MXkE|7%~;l|@2}RyCPSfaf??@D4!~I@4x*afcyn+V zBY;J6Z`%%ZaX6mdVO?KYkkASndz1u12Y5eIDrerFlH-~?9s-_b)eQ;w_eI_%m+dGN ziTZR#Qc>xW$Jotr3%)Y9kt+&?^l3tl5~xq6BR{k!JJ5wTLkFSy(`fO06Nk08dBg+Y z0?<&w0XZ^J47cyf&POX#DD_t=)oB-2`p}o6$(DME7-(Z<=ydYf6ar8yOVz_Z6R;=X z6%k2C;Qw~s8zqw89^Jw_>qVJ<47j$Lf^DR_!61;wLCJ(mKW zujBb#TR;l0_E{G!#$FQinjHN;NDNb{k8@gK`4OU*`pHxca93M}Bg(JgRl)VVv;5qXh7bY>Os=40Jc-GLE%@_88UvA0BhdvQt zmewmwfp9yOpr?|No@bH?Ckb?fphb8q)N7MR|oolyv7v;a&$%t}m1H`htHC1-l{mxiQ&#r$#QU^>s+R zUW_9}DE!X596wx1j!;!ZmPs+5zq$(Lx`~S28@drv-%=8KL{42%zCUx5nkG7r=Egx~ zxQccQ{oG3TV;2t#rO&x+yAss=Bjy{pWsj|`KNE|o3IO1F<76;k545cHmHm7laYjw zNsI{(X-s?8i`gwbgF=pytrZW`>#{0(6$e;)UOZWg@=uMQ;A+vg;jPdR16`-4DsT}G z8MN2BHf_=N6tMC*hd(cW4q+lq@}MPg%xoqiB?uzB5$8y(YfwgN6M1*|{?n14oao{4 ziny$_+BQfbOzS`e2&?`WSftrtOz<*4(-(rCz9=`QW?!)wDLZMy{?sC;r?rK#-jYb} z{Nq!7kFN;*4}@I-=ZL5F-%p==^OOTzcTKFJ4lysZieMQK%p^$NGeuNUx47TYC6^m+ z#|QqPl~zKV44Ry*C5?ynuq{SWma3^0#x$Z;`! z&rZS+aG4Y|?1g#Ujq1ZuwHB{vhoWlnaKa0f&KK8WqhGm4A!vylgG1Ux$%WZ`GOH5# zwE|c>h0ddYT^xdr;2G5(`T}qtI=b;9VK{+JqA~ZNHb#rRvK8F)p5J&tIF&Zj(b-b7 zN-Op1Ljt@VkV^n@oBh?^-iPAFgpkbSL;b zHe&1iR-em9i=5QwdZT_-ygGAN@_PK;BbKiB^+5A>Zpy8qn_Yq^u&s#xXI1xZq{Ajlmw3;a8Y;}Od)}VKWlfw2w2>z zwCu(!vXPBEgT1ks_;~FXK00po;;Gtxjqz!#xs|;+o;5%I0cv^Fk|JVY0;>fO!Pg?k z>a7KiisC=-)DAK>aHecQNDnT^)#QxBB8;!{mAHJC`Tlt=0pM>$Um8}8 zW0%Yh)BTzm36B+I^{+ieeRUtIaKR%7b;UB@P4F+F)mrhzgztxZZT zi`7b$+Y<6l4)Q;I!cOJ~!M9I8*I+HEkBlV^Jh7JEfsvqhnC9*) z$?Hj4{H*+`=UE+Sss&q8yChh3Ra=tdq*)Dwx4y>{R8>r6$t`HKJBw({flTt-Z&lVb zMxAQS5RJBJcnxwzm;Oo;X@AK*X+g1Z+hBLbjg(^g{AHO$dF3}YlUiAZHjKa8Uwoy_ z-W*Ig66k(b5DyjD0OkUWb&Szr23(a#j5OGTDwC~0q`S171EenfAie;8gFZyj8c!W~ zBpum~77$z3fVtWoOggY!zCG%6@Yj*y)UelDVTzh3Z&!`=2&E`E5}ratNj;w_tXXnG z?rlTCphMcq>DL|G<$*GrJYcc36e<3}WpV@0=KEThqz3=fx_l=o=)v)ir@%)*x4P1! zsO%_-XTJ5Pk3{3sgoDv@yM7m1odWb%LbE3#AX(01^Cfe*0fznq;b+X@ybM)V*LnUM zVLaK2%jCx(C-VgY7ZR#+d_HOua+iDnf#Oeq>c8CRJY?T8zP)vCfGrCqQ+wzFON`Rwl)u6-=N7SOcX zKkJmExeibj;q81!4uKfkd`8>LPoh`XXz41X{1z}*`jt`e4p@2T&J=4jO7GN@d^iIf z20W2$2{dbx6bG5;&{sq`a3-Wi){EVtG)lj$Ogor}jdwj!&1P|M_M0dasaxeUQN_Fo*s>EP!Aednn_9#F1bB z5}HKP-3^oS`R!a{T%YGAXgaThSlUP)1VY+hQ3*w3KlnpSU7IpS?Nkzab1HcS^^6UFTE~cq4Ws z8R%!jYz#{X?lJn7C)+p(_9yHDexOH3bTD@@a@aJ&VOMl)QmOfAIF;1?VAm+jCex4I zFNTC(10itsBKNY#Y^X+EDH}?$%HoZN=NJc__yJXapaOl}W8ituxp5$Z5=Ms8iPmbj z9>W#>hQp8i6!s;_FTc(@r2IC9BWzHzaTQu9l^Fd8ek5OA5i5YQl$Vdmle=cud4R1{ zVWhx1SV_pP0Q=LIUTSSy2|{AF$HwsA5`zU%fQfrv$`4vej_tVux>t4!?q@e!-|y4( z3g<&lhO{L-Mds~}KWL4?-Wql>+HzwIJ#2Z->(6W7);nn=ejGB8e> z$>B>21NuFzI7gOjOomYqD*m)Tys|2kcsH>|yP*wcknxp6Kma$oBkE(4AM+gnVmPN{GUcD|`2{DB9_Jbu`ctI$HQjhN9!x+g;4>%s?2a z+pANC$9B(u-AkcbKe-(;Ha~EYNY5L-K1Z^m2FAIsH7SuKHhCDdBu{-Zbm;MH<{I&t z7VeEV6G9h@G6lfBY99*RS9&q=D9Qk$Kfakm#`3B(YqFa8d{`beQxFw(J6k2we*0YpMv+Eb7GaE7k(Wz@()IB~VDIxYClHmuq_wc} z*rxWAZBKHOTb^59BHvfp$I%E40wakB+mJQtPw^}WG;yM{^t={Y1-$`5A!O%XS?GC* zQQwYtw(j6AI(8^cLu*3vZ3Y5cW@F)f6Uw;3w!cM<|y?pXw1^J2(eUWS>% zmWGD3;PDT)gQd~b2P{!je9uoIf&LXO^2C+rG2b2&Jp%<;8t5XGjzwrNiXd7{U3^9* ztQh0{Me=|6NjPh;ld;)g!r)n5TL~_){3tzys?V z;{j^R@LGda645kcjWS^&a@jW;hx|htJ|2dgzu!PkKl5n-(+u>o=<^6;C87(ckiSqs z)p0$dDecCQp-6ZKQuv%j=GAqhowd)%Rc-gtPSYH<7e|?i=*rLu=`>M z<)*M}I~Z}p66+n!r_hghPzPW{H1{m8+3;F^iu2HCL(Qp(z=g~ka!1%e0Q~bc9b#_q zOqij>Yv%z7@4tAm7gs0$K)NYaZ|0Q^tIAa#&N&|x&bx&_x-3K?Jvxw~qevDrq>ArR z-sxpgt{2ID?s7$R^)3Ef%0OF}^`bqH~sl zsHcY|>RKjQWU#X~#}0>$Oc*%q5%MV4?0RzlE&z?18ET2nYFO&IZ8~W%bY-TD6)e;N zvz!)<9O+~%q}I1rba!|-dzX-T-jL%naXP~AA#ASHR$^oW|IWHu#GH3FJJT5TJPCY2 zj*@fFG-~@H>~V`wD6C0TCEzp6ZEfS}UC;J{&%#6DIOY4ZhlcuupkNvCx1Ia1@*|7@P}BrQhj zVESFOxs7qAT5kT3tP($?gFyO*^n~PU+exp?dz|)|p{{!dudBRz(ftDK9ZFfX3u*Vj&1lNNT!tX=cDtPPuOU%h8jeQtD?{{De#ZIL91m_J z(mKC--I${XdJ6W+TRdxZtuHXEyiQlIyfVdO8c)-3Lv#EhlU3a&_i;%QJ$Ov|7Tled?A z)3MmP{!v1UwkmR})JCJXnp@w1y(Z-9ZsDMLZ)3JQ>90gmJEGfY(qF7++{S+TtY_EL5hK2;R=Df_m_g2X3qG~ z@xebK){a=jjN_fesyh6_PtZX5!pfWg!cS^0xEqiG5`>!;(lLISwEVA}p!$s!dLk%g zf(*EvbFoj*+~qvAi8tm->(Ro4-ZSG|HHUtttxqEPYWFU)ZvZve|4W)%`EeBr)~Fy; zXE7>|_-7{|;@wsM&G{_rjL)IHo-1ffhE=Z#qAHTc8|_>>l_yU_9ofKRF)w$$yn&SL z{VJ`Azs6`7G{H;k{{{mye?ZJ`)Q}eKheX`%E_$^5UIKT-c1~2nnP%6nFno z?R3joH=ckGmB5#g2LaQM*ag}lk5ypOB0Ev3I^Dv*!axNK0rzA_l>3s z%St8FDm_Mhzd06%N5MAp$54;$02@O1H*bEb+_k^Qpkv#o+aYv+mN#EGf6#y;Vf_yNMnR!!8{g$K z2JY8n7&}ioPndFcbdjQX*Ggom4Jv3j-}~T12i#dqp5$9Vk7HViMpo+&ix5UtX>7Ce z!toWiPgNL@QR5EvQuyj-I>Du@MoB*cYc31!uOffDn$!52o2bqXCAZN9oN#Crv!Y0N z!}bl+n{K-O@V_~mSH!mueqltjK42>`eXsRFztW38bWM&|Ta#2He5mTi1Cwc~z*ON@ z(Df9vczNf+qUMhAv%@sOGQe+_BU8*234D)U6zSq3XR3viw+=98ChhmkmyWl7w7H%YO^4{J6+fWP8pMzt5f8-@{8_Px9?;`N_}0-l$QOcK z1Pvx!S9E6*IGp{XS=Rh zr5mou<^l-a0o2r58&BU2_iZv%*xnK0_vUMWgo zwB*bbMDw=g^dDfifA!)oe)1CYBPD^ezOrwZapURCVr;e53Bk4bmh72h+eArS^#8)^{!glg zFUG%-(ck+6^i^f8fMQlJw@Ytwd^_E7pG@TKy6Z>NU^Je637idAa2E#O6c$ z54*nT^!=mqzd0Ggp77Q9XfrTu*kWt~LC$A)K%OWdI!bhVxFU#UeBH={`vk@MDq3b> zkcS(APp^1$^cFJ~VE=J%ER(>ERMb3QkBQ#U^uxM)+3U;GgqIoJI@1HdEu1P{ig`~s zd=L;0{Rbqd1H=rpWB{SABad5dO@r7N0Hi1zP*%xl4;x0{UvSXH6NfG+{ohdD|GCAX zD6t@u58FmaK`ykXjw9}cvw2tXqF)pbn+PNA=M_JFAUY{Oi3mC=ahYe=s`?h5W>Mij zU{s`^8&YZQ8*KX_8A-PP%T9IK4EtBWpvD#L2?T-#xGTj{wviU_1xAtCnbL=pw;f9R z&%qp^h~PnU0ch;O&O?NVVeq!vT{(Pl8haf5Z2`1;*<^VnH=2<7IMQg9+44a#SV!KA~-T-U(+5 zEHDc1gT9UY8njNH_|v|72PD4zlor50y!VfTdP2}-G03(oL5JFHA1302P*#-tt#}vG zDP{&V7cHGlQuvSV&}p7~tMPUG5Ia0vPuk1p?N=#!(<* zDf_~PbAzKGD)+#wS`VJkyJm8x*x%`vExIJosz;;Fbe%Pw&oSUVW}P}<)GpLGS?n!$ z{F!ewwt-LLI{m-0Rt+%2Vt*j@-=E$5M8Pra8t@diLc9F|`ly!ekg8dza1r#G&4tNe zklCln;PM1ll!W<+rrAqgqK^GjiKVbb+$TJao>7+ z#;K0!Y^J&};4I5`mlVY$?4^|rJlS<5pn8v*dx_*U3v47v>!d95}F z96&F#xYN*e?(Tn6gI7>vhR1LPo%-ctV)|7|$uYF|Zvt`>dY~5-?JE#~={XWP2+5C5LMsdwzb!yJl+EUzVJ|vCqHC{Ps~_b(S-OGoDfn=6k}M7_AU3 zooQbDw`J!vWl!ZPAQ1_jk2Zqk)zul1jx3IP@;7~}+j%a*0cF^vcpd>BE*36Ue6*ih zeAzclXv;~@vn)_R*flj}=gRx1kvB4&TZtcx8N{cnO9oZ8X0E%U)jKn)b=L87!wU4% zMzqsteAyY=Q6=AI1%_ON%*b-{tf0-5YoASCqEypALA;YAf{Bp(!2hJX$MRyZ2J9rZYfv888nTlL&G?fPC{B0i}>1XO-LQ z@Diz9lYzXmJIOiQQlf^v^zx?WDbWrij`DcaIAtupqSGMWiH-)cnYBdWt-EM4?^|C} z4a%$;lH3SekeQHL{ihM7FcOi;Q1{^ zqglh*H=c7yx*f(8Mx|ya%q6I^7KT`1J$Z5ampKyKR_m1=o;@C? z<||{^fDGF*TitqG8RRCzl`L$taM@n$$((1jGPI)JJJ6k+V=mu{8cHwKV(L_XxXE?% zjbIYWusC7~tdPEB=_hjI)l-^jye*`Y4n9fYAH?#Fx-8ornQd=(U!N??tXWJo6-Z=B zSmrX6>;5~EmmC%jlT%#oe*!!2c`+TdS&j~33rfAH9!h4jOG~+^ESY+SF2)+{&%YNt z7rTtQjH)SSb9eD~9g;0B9pW!WjqM-}7{71LoF1h3v6gz2X3dRa+uLUyI$Iar9Q}1h zviR$+_mmaxV!zIbt}XL7mhGbrVrGf24mfU&uG%PRC``H-rWmLs{Y%1;d`OOv_l^TySFQz`<9 z5VoBAnvBsV+a-?wDOj=`^BR0W(Nex)OrQ-vWYHnfmjEhAQ& zaVnB#Pt`~t7g(<2m8%2JP+~7v? z=&NrbyfMm4_?5Oql~$vKllGspf;xRvkGPmxB-^fgH?)&M@4TVT$CHYB57ce+0b6g} zTdX--wfT1_Plb$!kjwAEx0^mNy@l1-`R6X|EEDFG)3snZ@wN|>xhLLTk2(vIRbO`` z2DP8`o=U%3L6Zk|A~*^xGwx4O8A_HYQl&Kb5T2C>xApF+%0ked+gyEY^&Isoc?5Z{ z_+(brkUfVONYoO2oAj*Hte5Zbdl`D&-YQ=4>)6R>1?RqArC&YxbP`(NEe;Co3s`KB z>ulO|XO}i0ICKh6bJY9}e%@yV&r;O{HjfgL?CI?>Lx><$RR4*Y z_U}W4u2ghKg%eSe{;wmO*f1+yO;cK$_a!{HuHr`+rAI_ZsKVw#vg5knX)J75bqM}s zsm6XlP|Cy3ey>$sJo3m%l%nO_HniA-57UHdabm!3kZrHGR>h-1aaSwDPaCLG#nV<^ z&C2Y?9OFQien!(LtGkwOsB}a1eZoC%_Un-cMe1?4j8Q=1;?FGR&{;j4nk#QoZ>?g% z3GO&I0I?~NuA}JUsoDLd`%8=S*kg1_gllKKJy2-q*v_?pm(0G3TjHVOd;#)} z$U0#5Q$hv9vPudaPHCNnIynu7_z(v1E@^M7hehiV(Tzo-HNM`L$PZfa@w|gLiy^NJ zhVfwAC!`}dT1)G?9S%c1aG&&EeYv6kh3R-wygu`nuA(XgQa%G!4Ju0TuSq%i9*EI( ziH?I3B;{Gg=W*~Rp_Oj+wfzE`!rqK$>wT`A}%typ4{rBsKk`xOJx8;-%2leN{f7 z4V#-*b8zadHME7RF1(q1Xb5XpT>IJ1)@ceu*cUWOXh}D$#sU~8BoO1b22j5f1S=jL8b6F9c5tmm>d$!VB z;D~Fftul?>4dc$mTO|3Tt_<73iHCbb*7+XGLl**L##~3Df1E=<*u87$*ur0u`0sRD z{}?|I4$R+}ypaDo&`ku#Lht*qY1m^4F-D!iC_byz!-F8#bS-Wq$loR!%ATXE<$}+1vm1!m3S+fR61@}1h3tY!&qRpaa%!v;pcZ0%^AFv;#-rIkkoaR2N>QOSWq(UX$ChVT2 zYasCC^K7UFLrl4=WE3#BPBQ3?a1Eg|o7d^=wmF<8!q**866nn0O#b_J-q>L{es%dS zLpyo==QZQNur(v#Y$*w*r>Z%R3&Q=n%C|*S9=C~cf>5(DrG5-e%J4{>V-*DJ6b3xDXa5yZv}P~xC^~)I zpmk*Rcn~a#juJ3YHgO$&MRvGzY%1ClP@Gwsx$yX|6G>EX^^`~pxhIH$7|-~J(&c{# zaX*KG?%%2&F&IB2;lsf}1CJ%l6V$#;^5H(r6I}2hes%EaoQn8}aEREPtWuv-S%5ib zl%h6T=DYwgFo^CYEEkFajGM(Eg9lSx!u`aDjz9(z{1Iq0|3oYmtjTTzrFt{96$URz zNb`X*)1e`)_!{>{5$&=1nka`eJ;$9rheGoMhTH3f5AzwPsmhiTQ{!}VbUZNzgf*Y^ zIzDYCPV+dDiRTUJCp8j2Ge#GqKSMw3Y?v?>9YywK{NZv2_|u-1{%_#KhO*i>mwue4 z7^xSza)G=0tz}?}UxIDC+eSiNPkrGp1?sAuHLvxM0h>NJ8!>t3j_gdGx>gKxa%CZ1 z#Kmh+{DIAzrsgm_s{7ltOS~Qu<+9eUPOmuH9{h;$92#2@YYMBXb2UH38Q67Q3!!id zfm?64BukrXnm=B|#pff4I(b}94u0mcK$l0E z$MoDp(v|T`%SB5nDF>N#nISrcuX}uW+rq|Thd5kij9;V`0wO-wajy4u`~~hEO$ikk z?S~rkRzR;KW_#DHVf0UbI56Rc0)_$#oF1GjU(Bl>c1_T#TiaLwJ{(rsZmNuR;4C(w zGuzErsK}VDI6t_8vuHG7x5LYV1_o zo(jJOGmF+UY*aH-n*eKKgj)U?Ws=I`-6MPlZ8Kl<_>|Rx`AP1M_|P8>EoN8i_Qn<& zeI3%8F+le*WatrtGb#s6yj`-_U$h+Bm14=8jiZ^+||V1r;lmh zQ(BjeSKf2w08+~NNRtnd*0lLPyM!olH zWA_T&-xT6v`T^DdsQvgihgzjsV}o|u$TGX9n47HI?SzK zqa|Bdn#;_&Qi!t1H^u)`1obg?$_O7?i_=6C#UTg`{SvNC*5>LxB7vZ#{S9=~eo8YG zkfd5UZZtff%K~;^!}y*#J^i!9LsQ)ZI{-G|LiS~kZ||JYkB$CUTogkpUIMvDa<5jh63>+Xb0k^yqT$?*BV}+g*M#MfIawC59 zAkdE0Ax8kuoWq)C0O%{X+yabY#>V}4+Px7k$Q?4F2tZ;o0`*JDpstFH3H{_@t1rW^aI6k328RbYuTfttUiv#>8bri! zkV7yReb`RNhh4vYGdc3Np5?|zUDpARv(-{7c10#jYmq>{BBZBhevEc2MyEKoK$c@^T^M@xS_5Gwgr6=$F6PXM%Y;w%DnPcL+*bfa zj8n{q;voc)j-T$aUpjb?PI;V)UO#-F`;I@HMWKqZ9&`cfOzsG{^`mV0Xq{)e0UJaY zh8Ez0D2v#OBtaDqy#a*}h7R}yy@g~sMkh}22>p_}(m%R);+t_7M4t4RA=Zeg)s76+ z$pXpbv=VRbxZlcv62Z){AV3B2Q>F#7LE~ek`i&vXu+l?tblQLue%xqit(3mw5J1Jd%R-~)FymEEk*E1k2>GIneGYi0#}p%XJP}>P<95jpHlou z|F40Rt62Y&p^ljhl7s4PKPLE-@SlrdLnrUo zJJhY$S&o$0(Q!Q-tC!Za`YTqxmlGqAj>T*iW)29N@8PVP1kT)E1UpMzA#$E4Aw$)K z=_L+_l+oVb_Fw0Lj{dg!$Vb@!)RwZKFg7Z3mpZO5|216Rh@siA&dU)x z&Q_F@SF$3sgN-rgV}|O0D+|4XDBBRs5XGOPBFuU~XcB3`1(F$N{t`hrRW$#7%j5sf zmenlFKnv;?h2u$k{rUgU^_D?#bnW&x0|N}f26su21c%^0K!D&HTm}dZ!QGvpNs!liPh2}1og^`%j0*iOt2 zc@~!M(bHlEdIfFAAgF|ie|jruq=5kr#OEatWc<$Z^hH2X^>llVXo|9_p%u_y*Ms_< zO0N!I_=jI*fbq6Dtw=VAB@>3EgE&3&zxn_bvU@WWHYPc=d7QT=S8O`tnR`kS9TiI+ zhxE@Cf*=M&!`h$WDe7U+JRk*ol39=X_(Uo7W&U$H17Yni{2A_n5`rq**EITj^9o}r zfr7nacx@6|rTxun7!yu8ognZ<$1BwS2vJEtoF$G?1U^v2Du2u{Q}P@=F$gyKpYy+l z1S`dm!!PulSJ`yjS2I%7=U=?W*fkVpz|?l>)gQb?#v4CD?L+}QX$J8<)n@+veV_=0 z%~B=v+?>c6NjJqNje#rg^Uw3_}>Z@P6Pdvh=%Hiop+~5wB)AUjAaAK zbA9@PK8RkU^G9DHhZhr!je4wrgSoJN^Yy3xT5}+#gkK@~^_=f^)!cHGkD$-p!553! ztNWW3i^cj;$geI!F$?xzM)3&=KVTA-i9dFCaZr5y`)1`aa`e56g$+p!|H+*{=F@p{%bD*!Z_I8fWeDw**OiOTSd5B_c|

    kGztWjQ$pj9}6$l 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

  • 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 literal 0 HcmV?d00001 diff --git a/docs/tutorials/microsoft365/img/final-permissions-m365.png b/docs/tutorials/microsoft365/img/final-permissions-m365.png index c26d80ef66e076ca2ac69442674c076b86a0befc..4d094ee0826d6f63a0cc8f2728b93ba906a12b86 100644 GIT binary patch literal 64148 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