> For the complete documentation index, see [llms.txt](https://docs.prismacloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.prismacloud.io/release-notes/prisma-cloud-release-information/features-introduced-in-2025/features-introduced-in-october-2025.md).

# Features Introduced in October 2025

Learn what’s new in the Prisma® Cloud October 2025 release.

* [Changes in Existing Behavior](#changes-in-existing-behavior)
* [API Ingestions](#api-ingestions)
* [New Policies](#new-policies)
* [Policy Updates](#policy-updates)
* [Policy Deletion](#policy-deletion)

## Changes in Existing Behavior

| **Feature**            | **Description**                                                                                                                                                                                                                      |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Python 3.9 Support** | Starting October 1st, Checkov will officially support Python 3.9. Newer Checkov versions will no longer be supported on Python 3.8 and below. To continue using newer Checkov versions (post 3.2.271), please upgrade to Python 3.9. |

## API Ingestions

| **Service**                | **API Details**                                                                                                                                                                                                                                                                                                   |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Azure SQL Database**     | <p><strong>azure-sql-db-list</strong></p><p>The resource JSON for this API has been updated to include following fields:</p><ul><li><code>properties.encryptionProtector</code></li><li><code>properties.encryptionProtectorAutoRotation</code></li></ul>                                                         |
| **Azure Security Center**  | <p><strong>azure-security-center-settings</strong></p><p>The <code>Microsoft.Security/autoProvisioningSettings/read</code> and <code>Microsoft.Security/autoProvisioningSettings/write</code> deprecated permissions have been removed from the CFT template to align with the latest Azure API requirements.</p> |
| **Azure Security Center**  | <p><strong>azure-security-center-settings</strong></p><p>The <code>autoProvisioningSettings\[\*]</code> field has been removed in the JSON resource for this API as it is no longer supported by the Azure API.</p>                                                                                               |
| **Google AI Applications** | <p><strong>gcloud-ai-applications-cmek-config</strong></p><p>Additional permissions required:</p><ul><li><code>discoveryengine.cmekConfigs.list</code></li></ul><p>The Viewer role includes the permission.</p>                                                                                                   |

## New Policies

<table data-header-hidden><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Policies</strong></td><td><strong>Description</strong></td></tr><tr><td><strong>Azure Network Watcher virtual network flow log is disabled</strong></td><td><p>The absence of network flow logging prevents comprehensive monitoring of network traffic within virtual networks, hindering security incident detection and forensic analysis efforts.</p><p>Network flow logs record information about IP traffic through Network Security Groups, providing details like source/destination IP, port, protocol, and traffic allowed/denied. If Virtual Network flow logs are disabled, there is no visibility into internal network communications. This lack of logging hinders the ability to detect anomalous traffic patterns indicative of a breach, such as data exfiltration attempts, command and control communications, or internal reconnaissance.</p><p>The impact of disabled network flow logs is a significant blind spot in network security. Without these logs, it is nearly impossible to reconstruct a security incident, determine the extent of a compromise, or identify the source and destination of malicious traffic within the network. This severely impedes incident response capabilities and post-mortem analysis. Maintaining enabled flow logs is a best practice for a strong security posture, providing essential telemetry for threat hunting, compliance auditing, and network performance troubleshooting.</p><p>To mitigate this misconfiguration, ensure Network Watcher flow logging is enabled for all Virtual Networks. Configure flow logs to capture all traffic that passes through Network Security Groups and direct them to a secure, immutable storage account for long-term retention. Integrate these logs with a security information and event management (SIEM) solution for real-time analysis, alerting, and correlation with other security data.</p><p><strong>Policy Severity—</strong> Informational</p><p><strong>Policy Type—</strong> Config</p><pre><code>config from cloud.resource where api.name = 'azure-network-vnet-list' AND json.rule = ['properties.provisioningState'] equal ignore case Succeeded AND flowLogs[*].id does not exist
</code></pre></td></tr><tr><td><strong>Azure SQL Server not using Entra-only authentication</strong></td><td><p>Azure SQL Server authentication relies on verifying the identity of users and applications connecting to the database. When not using Entra-only authentication, the SQL server might be using older/legacy authentication methods which are less secure.</p><p>Allowing SQL older/legacy authentication methods increases the risk of credential compromise, such as brute-force attacks, password spraying, and stolen credentials. Legacy authentication protocols often lack modern security features like multi-factor authentication (MFA) and conditional access, making them more susceptible to exploitation. This exposes the database to unauthorized access and potential data breaches.</p><p>The impact of not using Entra-only authentication includes an increased risk of unauthorized access, data breaches, and compliance violations. Security incidents may arise from compromised credentials, leading to data exfiltration or system disruptions. Enforcing Entra-only authentication helps to strengthen the security posture and reduce the attack surface.</p><p>To mitigate the risks, configure Azure SQL Server to use Entra-only authentication and disable SQL older/legacy authentication methods. Enforce MFA for all Entra accounts accessing the database. Regularly monitor authentication logs for suspicious activity and implement strong password policies to enhance security and prevent unauthorized access.</p><p><strong>Policy Severity—</strong> Medium</p><p><strong>Policy Type—</strong> Config</p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-sql-server-list' AND json.rule = ['sqlServer'].['properties.state'] equal ignore case ready and (['sqlServer'].['properties.administrators'].['azureADOnlyAuthentication'] is false or ['sqlServer'].['properties.administrators'].['azureADOnlyAuthentication'] does not exist)
</code></pre></td></tr></tbody></table>

## Policy Updates

<table data-header-hidden><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Policy Updates</strong></td><td><strong>Description</strong></td></tr><tr><td><strong>Policy Updates—RQL</strong></td><td></td></tr><tr><td><strong>Azure Microsoft Defender for Cloud disk encryption monitoring is set to disabled</strong></td><td><p><strong>Changes–</strong> The policy RQL and remediation steps are updated.</p><p><strong>Current RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-policy-assignments' AND json.rule = '((name == SecurityCenterBuiltIn and properties.parameters.diskEncryptionMonitoringEffect.value equals Disabled) or (name == SecurityCenterBuiltIn and properties.parameters[*] is empty and properties.displayName does not start with "ASC Default"))'
</code></pre><p><strong>Updated RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-policy-assignments' AND json.rule = '((name == SecurityCenterBuiltIn and (properties.parameters.gcLinuxDiskEncryptionMonitoringEffect.value equals Disabled or properties.parameters.gcWindowsDiskEncryptionMonitoringEffect.value equals Disabled)) or (name == SecurityCenterBuiltIn and properties.parameters[*] is empty and properties.displayName does not start with "ASC Default"))'
</code></pre><p><strong>Policy Type–</strong> Config</p><p><strong>Policy Severity–</strong> Informational</p><p><strong>Impact–</strong> Existing alerts will be resolved as <code>Policy Updated</code>.</p></td></tr><tr><td><strong>Azure Microsoft Defender for Cloud system updates monitoring is set to disabled</strong></td><td><p><strong>Changes–</strong> The policy RQL and remediation steps are updated.</p><p><strong>Current RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-policy-assignments' AND json.rule = '((name == SecurityCenterBuiltIn and properties.parameters.systemUpdatesMonitoringEffect.value equals Disabled) or (name == SecurityCenterBuiltIn and properties.parameters[*] is empty and properties.displayName does not start with "ASC Default"))'
</code></pre><p><strong>Updated RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-policy-assignments' AND json.rule = '((name == SecurityCenterBuiltIn and properties.parameters.systemUpdatesV2MonitoringEffect.value equals Disabled) or (name == SecurityCenterBuiltIn and properties.parameters[*] is empty and properties.displayName does not start with "ASC Default"))'
</code></pre><p><strong>Policy Type–</strong> Config</p><p><strong>Policy Severity–</strong> Informational</p><p><strong>Impact–</strong> Existing alerts will be resolved as <code>Policy Updated</code>.</p></td></tr><tr><td><strong>Azure Microsoft Defender for Cloud security contact additional email is not set</strong></td><td><p><strong>Changes–</strong> The policy RQL is updated to refine the policy logic.</p><p><strong>Current RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-security-center-settings' AND json.rule = (securityContacts is empty or securityContacts[?any(properties.email is empty)] exists) and pricings[?any(properties.pricingTier equal ignore case Standard)] exists
</code></pre><p><strong>Updated RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-security-center-settings' AND json.rule = (securityContacts is empty or securityContacts[?any(properties.emails is empty)] exists) and pricings[?any(properties.pricingTier equal ignore case Standard)] exists
</code></pre><p><strong>Policy Type–</strong> Config</p><p><strong>Policy Severity–</strong> Informational</p><p><strong>Impact–</strong> You may notice an increase in count for the number of alerts for policy violations.</p></td></tr><tr><td><strong>Azure App Service web apps with public network access</strong></td><td><p><strong>Changes–</strong> The policy RQL is updated to consider private endpoints as well to reduce false positives.</p><p><strong>Current RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-app-service' AND json.rule = 'kind starts with app and properties.state equal ignore case running and properties.publicNetworkAccess exists and properties.publicNetworkAccess equal ignore case Enabled and config.ipSecurityRestrictions[?any(action equals Allow and ipAddress equals Any)] exists'
</code></pre><p><strong>Updated RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-app-service' AND json.rule = 'kind starts with app and properties.state equal ignore case running and ((properties.publicNetworkAccess exists and properties.publicNetworkAccess equal ignore case Enabled) or (properties.publicNetworkAccess does not exist and (properties.privateLinkIdentifiers does not exist or properties.privateLinkIdentifiers is empty))) and config.ipSecurityRestrictions[?any((action equals Allow and ipAddress equals Any) or (action equals Allow and ipAddress equals 0.0.0.0/0))] exists'
</code></pre><p><strong>Policy Type–</strong> Config</p><p><strong>Policy Severity–</strong> Medium</p><p><strong>Impact–</strong> Low. Existing alerts for private link identifiers will be resolved. New alerts will be generated for application services where the IP rule allows access from 0.0.0.0/0.</p></td></tr><tr><td><strong>Azure Network Watcher Network Security Group (NSG) flow logs retention is less than 90 days</strong></td><td><p><strong>Changes–</strong> The policy RQL and remediation steps are updated to incorporate changes introduced by the CSP and to reduce false positive alerts.</p><p><strong>Current RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-network-nsg-list' AND json.rule =  ' $.flowLogsSettings does not exist or  $.flowLogsSettings.enabled is false or  ($.flowLogsSettings.retentionPolicy.days does not equal 0 and $.flowLogsSettings.retentionPolicy.days less than 90) '
</code></pre><p><strong>Updated RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-network-nsg-list' AND json.rule = (flowLogsSettings.retentionPolicy.days does not equal 0 and flowLogsSettings.retentionPolicy.days less than 90) and tags.created-by does not contain "prismacloud-agentless-scan"
</code></pre><p><strong>Policy Type–</strong> Config</p><p><strong>Policy Severity–</strong> Low</p><p><strong>Impact–</strong> Low. Existing alerts where the Flow logs did not exist for NSG will be resolved.</p></td></tr><tr><td><strong>Azure Network Watcher Network Security Group (NSG) flow logs are disabled</strong></td><td><p><strong>Changes–</strong> The policy RQL and remediation steps are updated to incorporate changes introduced by the CSP and to reduce false positive alerts.</p><p><strong>Current RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-network-nsg-list' AND json.rule = (flowLogsSettings does not exist or flowLogsSettings.enabled is false) and tags.created-by does not contain "prismacloud-agentless-scan"
</code></pre><p><strong>Updated RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-network-nsg-list' AND json.rule = (flowLogsSettings.storageId is not empty and flowLogsSettings.enabled is false) and tags.created-by does not contain "prismacloud-agentless-scan"
</code></pre><p><strong>Policy Type–</strong> Config</p><p><strong>Policy Severity–</strong> Medium</p><p><strong>Impact–</strong> Low. Existing alerts where the Flow logs did not exist for NSG will be resolved.</p></td></tr><tr><td><strong>Azure Key Vault audit logging is disabled</strong></td><td><p><strong>Changes–</strong> The policy RQL is updated to resolve a syntax issue.</p><p><strong>Current RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND  api.name = 'azure-key-vault-list' AND json.rule =  "not ( diagnosticSettings.value[*].properties.logs[*].enabled any equal true and diagnosticSettings.value[*].properties.logs[*].enabled size greater than 0 )"
</code></pre><p><strong>Updated RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'azure' AND api.name = 'azure-key-vault-list' AND json.rule = not(diagnosticSettings.value[?any(properties.logs[?any(enabled equals "true")] exists )] exists and diagnosticSettings.value[*].properties.logs[*].enabled size > 0)
</code></pre><p><strong>Policy Type–</strong> Config</p><p><strong>Policy Severity–</strong> Informational</p><p><strong>Impact–</strong> None. No impact on alerts.</p></td></tr><tr><td><strong>GCP Cloud Run function is using default service account with editor role</strong></td><td><p><strong>Changes–</strong> The policy RQL is updated to match the GCP API.</p><p><strong>Current RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'gcp' and api.name = 'gcloud-projects-get-iam-user' AND json.rule = user contains "compute@developer.gserviceaccount.com" and roles[*] contains "roles/editor" as X; config from cloud.resource where api.name = 'gcloud-cloud-function-v2' AND json.rule = status equals ACTIVE and serviceConfig.serviceAccountEmail contains "compute@developer.gserviceaccount.com" as Y; filter ' $.X.user equals $.Y.serviceConfig.serviceAccountEmail '; show Y;
</code></pre><p><strong>Updated RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'gcp' and api.name = 'gcloud-projects-get-iam-user' AND json.rule = user contains "compute@developer.gserviceaccount.com" and roles[*] contains "roles/editor" as X; config from cloud.resource where api.name = 'gcloud-cloud-function-v2' AND json.rule = state equals ACTIVE and serviceConfig.serviceAccountEmail contains "compute@developer.gserviceaccount.com" as Y; filter ' $.X.user equals $.Y.serviceConfig.serviceAccountEmail '; show Y;
</code></pre><p><strong>Policy Type–</strong> Config</p><p><strong>Policy Severity–</strong> Medium</p><p><strong>Impact–</strong> Low. New alerts will be generated for policy violations.</p></td></tr><tr><td><strong>GCP PostgreSQL instance database flag log_min_error_statement is not set to Error or higher</strong></td><td><p><strong>Changes–</strong> The policy RQL is updated to stop generating alerts for GCP PostgreSQL instances where the <code>log_min_error_statement</code> database flag is not explicitly set to its default value of 'Error'.</p><p><strong>Current RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'gcp' AND api.name = 'gcloud-sql-instances-list' AND json.rule = state equal ignore case "RUNNABLE" and databaseVersion contains POSTGRES and settings.databaseFlags[?(@.name=='log_min_error_statement')].value is not member of ( "error" , "log", "fatal", "panic")
</code></pre><p><strong>Updated RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'gcp' AND api.name = 'gcloud-sql-instances-list' AND json.rule = state equal ignore case "RUNNABLE" and databaseVersion contains POSTGRES and settings.databaseFlags[?(@.name=='log_min_error_statement')].value exists and settings.databaseFlags[?(@.name=='log_min_error_statement')].value is not member of ( "error" , "log", "fatal", "panic")
</code></pre><p><strong>Policy Type–</strong> Config</p><p><strong>Policy Severity–</strong> Low</p><p><strong>Impact–</strong> Low. Existing alerts will be resolved on GCP PostgreSQL instances where the <code>log_min_error_statement</code> database flag was not explicitly configured.</p></td></tr><tr><td><strong>GCP PostgreSQL instance database flag log_min_messages is not set to Warning or higher</strong></td><td><p><strong>Changes–</strong> The policy RQL is updated to stop generating alerts for GCP PostgreSQL instances where the <code>log_min_messages</code> database flag is not explicitly set to its default value of 'Warning'.</p><p><strong>Current RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'gcp' AND api.name = 'gcloud-sql-instances-list' AND json.rule = state equal ignore case "RUNNABLE" and databaseVersion contains POSTGRES and settings.databaseFlags[?(@.name=='log_min_messages')].value is not member of ( "warning", "error", "log", "fatal", "panic")
</code></pre><p><strong>Updated RQL–</strong></p><pre><code>config from cloud.resource where cloud.type = 'gcp' AND api.name = 'gcloud-sql-instances-list' AND json.rule = state equal ignore case "RUNNABLE" and databaseVersion contains POSTGRES and settings.databaseFlags[?(@.name=='log_min_messages')].value exists and settings.databaseFlags[?(@.name=='log_min_messages')].value is not member of ( "warning", "error", "log", "fatal", "panic")
</code></pre><p><strong>Policy Type–</strong> Config</p><p><strong>Policy Severity–</strong> Low</p><p><strong>Impact–</strong> Low. Existing alerts will be resolved on GCP PostgreSQL instances where the <code>log_min_messages</code> database flag was not explicitly configured.</p></td></tr></tbody></table>

## Policy Deletion

| **Policy Deletion** | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Azure Policies**  | <p>The following policies have been deleted because the CSP updated the Azure Microsoft Defender for Cloud service, making these policies obsolete:</p><ul><li>Azure Microsoft Defender for Cloud adaptive application controls monitoring is set to disabled</li><li>Azure Microsoft Defender for Cloud endpoint protection monitoring is set to disabled</li><li>Azure Microsoft Defender for Cloud security configurations monitoring is set to disabled</li></ul><p>Microsoft Defender for Cloud has modernized its approach by replacing individual security setting monitors with comprehensive plans such as "Defender for Servers."</p><p><strong>Impact—</strong> Low. Previously generated alerts are resolved as <code>Policy\_Deleted</code>.</p> |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.prismacloud.io/release-notes/prisma-cloud-release-information/features-introduced-in-2025/features-introduced-in-october-2025.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
