Disable automatic learning
Table of Contents
Self.Hosted 22.06 (EoL)
Expand all | Collapse all
-
- Getting started
- System Requirements
- Prisma Cloud container images
- Onebox
- Kubernetes
- OpenShift v4
- Console on Fargate
- Amazon ECS
- Alibaba Cloud Container Service for Kubernetes (ACK)
- Azure Kubernetes Service (AKS)
- Amazon Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
- Google Kubernetes Engine (GKE) Autopilot
- IBM Kubernetes Service (IKS)
- Windows
- Defender types
- Cluster Context
-
- Install a single Container Defender
- Automatically Install Container Defender in a Cluster
- App-Embedded Defender
- App-Embedded Defender for Fargate
- Default setting for App-Embedded Defender file system protection
- VMware Tanzu Application Service (TAS) Defender
- Serverless Defender
- Serverless Defender as a Lambda layer
- Auto-defend serverless functions
- Install a single Host Defender
- Auto-defend hosts
- Deploy Prisma Cloud Defender from the GCP Marketplace
- Decommission Defenders
- Redeploy Defenders
- Uninstall Defenders
-
- Rule ordering and pattern matching
- Backup and restore
- Custom feeds
- Configuring Prisma Cloud proxy settings
- Prisma Cloud Compute certificates
- Configure Agentless Scanning
- Agentless Scanning Modes
- Configure scanning
- User certificate validity period
- Enable HTTP access to Console
- Set different paths for Defender and Console (with DaemonSets)
- Authenticate to Console with certificates
- Configure custom certs from a predefined directory
- Customize terminal output
- Collections
- Tags
- Logon settings
- Reconfigure Prisma Cloud
- Subject Alternative Names
- WildFire Settings
- Log Scrubbing
- Clustered-DB
- Permissions by feature
-
- Logging into Prisma Cloud
- Integrating with an IdP
- Integrate with Active Directory
- Integrate with OpenLDAP
- Integrate Prisma Cloud with Open ID Connect
- Integrate with Okta via SAML 2.0 federation
- Integrate Google G Suite via SAML 2.0 federation
- Integrate with Azure Active Directory via SAML 2.0 federation
- Integrate with PingFederate via SAML 2.0 federation
- Integrate with Windows Server 2016 & 2012r2 Active Directory Federation Services (ADFS) via SAML 2.0 federation
- Integrate Prisma Cloud with GitHub
- Integrate Prisma Cloud with OpenShift
- Non-default UPN suffixes
- Compute user roles
- Assign roles
- Credentials store
- Cloud accounts
-
- Prisma Cloud vulnerability feed
- Vulnerability Explorer
- Vulnerability management rules
- Search CVEs
- Scan reports
- Scanning procedure
- Customize image scanning
- Configure Registry Scans
-
- Scan Images in Sonatype Nexus Registry
- Scan images in Alibaba Cloud Container Registry
- Scan images in Amazon EC2 Container Registry (ECR)
- Scan images in Azure Container Registry (ACR)
- Scan images in Docker Registry v2 (including Docker Hub)
- Scan images in Google Artifact Registry
- Scan images in Google Container Registry (GCR)
- Scan images in Harbor Registry
- Scan images in IBM Cloud Container Registry
- Scan images in Artifactory Docker Registry
- Scan images in OpenShift integrated Docker registry
- Trigger registry scans with Webhooks
- Base images
- Configure VM image scanning
- Configure code repository scanning
- Agentless scanning
- Malware scanning
- Vulnerability risk tree
- Vulnerabilities Detection
- CVSS scoring
- Windows container image scanning
- Serverless function scanning
- VMware Tanzu blobstore scanning
- Scan App-Embedded workloads
- Troubleshoot vulnerability detection
-
- Compliance Explorer
- Enforce compliance checks
- CIS Benchmarks
- Prisma Cloud Labs compliance checks
- Serverless functions compliance checks
- Windows compliance checks
- DISA STIG compliance checks
- Custom compliance checks
- Trusted images
- Host scanning
- VM image scanning
- App-Embedded scanning
- Detect secrets
- Cloud discovery
- OSS license management
- API
End-of-Life (EoL)
Disable automatic learning
Prisma Cloud lets you disable automatic learning to give you full control over creating, managing, and maintaining runtime rules for your apps.
Disabling automatic runtime learning is strongly discouraged.
Prisma Cloud has been architected and optimized to automatically learn known good runtime behaviors, then create models that explicitly allow those behaviors.
Disabling learning requires creating manual rules for all of these behaviors and greatly increases the likelihood of encountering false positive events.
If you have a regimented deployment process that must guarantee consistency between your test environment and your production environment, then you might want to disable automatic runtime learning, and manually create runtime rules instead.
With this approach, the full range of runtime behaviors is locked down in production, and cannot be extended without manually adding new rules.
Models and learning
When a model is created for an entity, it’s initially empty.
Empty models don’t allow any runtime behaviors.
In a default installation, Prisma Cloud uses machine learning to compose models that encapsulate all known good behaviors.
Models are sets of rules that allow process, network, and file system activity.
When learning is disabled, newly created models are empty.
Since empty models don’t allow any behaviors, you must manually create rules that explicitly allow process, network, and file system activity.
Remember that rules come from two places: models (automatically created) and runtime rules (manually created).
Manually created rules are designed to augment models when learning does not capture the full range of known good behaviors.
When automatic learning is disabled, they must fully specify the full range of known good behaviors.
Deploying Prisma Cloud
Models created before automatic learning is disabled might still contain learned content.
To guarantee all models are empty, disable automatic learning before deploying Defenders to your environment.
- Disable automatic learning.
- On the Prisma Cloud Console, selectDefend > Runtime > Containers.
- Set the toggle off forEnable automatic runtime learning.
- Deploy Defenders.
Workflow
You should have two environments: test and production.
Deploy Prisma Cloud Console to each environment.
In the test environment, enable automatic learning.
You’ll use automatic learning to assist with the creation of rules.
In the production environment, disable automatic learning.
You’ll port the rules from the test environment to the production environment.
The recommended workflow is:
- Deploy your app to the test environment, and fully exercise it.
- Validate models that were automatically created.
- Export models from the test environment as rules.
- Optionally store the rules in a source control system.
- Import the rules into your production environment, where automatic learning is disabled.
Exporting and importing rules from the Console UI
After your app has been fully exercised in the test environment, create a rule from the runtime model.
In
Monitor > Runtime > Container Models
, find your model, click Actions
, then click Copy Into Rule
.
Next, download the rule in JSON format.
Go to
Defend > Runtime > Container Policy
, find your rule, and in the Actions
menu, click Export
.
Finally, import your rule into Console in your production environment.
Go to
Defend > Runtime > Container Policy
, and click Import rule
.Exporting and importing rules programmatically
After your app has been fully exercised in the test environment, retrieve the model as a runtime rule.
Use the GET /profiles/container/{id}/rule endpoint, where {id} is the profile ID.
A list of profiles (models) can be retrieved from GET /api/v1/profiles/container.
Profile IDs can be found in the _id field.
Profile ID is simply the concatenation of the image ID and an underscore.
$ curl -k \ -u ian \ -H 'Content-Type: application/json' \ -X GET \ https://<TEST-CONSOLE>:8083/api/v1/profiles/container/{id}/rule \ | jq '.' > model_rules.json
Then push the rule to Console in your production environment.
When a rule is pushed with this endpoint, it is ordered first in the policy.
Rule order is important, so be sure you’re pushing rules in the right order.
The version of Console where the rule was exported must match the version of Console where it’s imported.
$ curl -k \ -u <USER> \ -X POST \ -H "Content-Type:application/json" \ https://<PROD-CONSOLE>:8083/api/v1/policies/runtime/container \ --data-binary "@model_rules.json"
The POST /api/v1/policies/runtime/container endpoint pushes one rule at a time.
The PUT /api/v1/policies/runtime/container endpoint pushes the entire policy (i.e. all rules) in a single shot.