Image analysis sandbox
Table of Contents
Expand all | Collapse all
-
- Getting started
- System Requirements
- Cluster Context
-
- Prisma Cloud Container Images
- Kubernetes
- Deploy the Prisma Cloud Console on Amazon ECS
- Console on Fargate
- Onebox
- Alibaba Cloud Container Service for Kubernetes (ACK)
- Azure Container Service (ACS) with Kubernetes
- Azure Kubernetes Service (AKS)
- Amazon Elastic Kubernetes Service (EKS)
- IBM Kubernetes Service (IKS)
- OpenShift v4
-
- Defender Types
- Manage your Defenders
- Redeploy Defenders
- Uninstall Defenders
-
- Deploy Orchestrator Defenders on Amazon ECS
- Automatically Install Container Defender in a Cluster
- Deploy Prisma Cloud Defender from the GCP Marketplace
- Deploy Defenders as DaemonSets
- VMware Tanzu Application Service (TAS) Defender
- Deploy Defender on Google Kubernetes Engine (GKE)
- Google Kubernetes Engine (GKE) Autopilot
- Deploy Defender on OpenShift v4
-
- Agentless Scanning Modes
-
- Onboard AWS Accounts for Agentless Scanning
- Onboard Azure Accounts for Agentless Scanning
- Configure Agentless Scanning for Azure
- Onboard GCP Accounts for Agentless Scanning
- Configure Agentless Scanning for GCP
- Onboard Oracle Cloud Infrastructure (OCI) Accounts for Agentless Scanning
- Configure Agentless Scanning for Oracle Cloud Infrastructure (OCI)
- Agentless Scanning Results
-
- Rule ordering and pattern matching
- Backup and Restore
- Custom feeds
- Configuring Prisma Cloud proxy settings
- Prisma Cloud Compute certificates
- 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
-
- Prisma Cloud Vulnerability Feed
- Scanning Procedure
- Vulnerability Management Policies
- Vulnerability Scan Reports
- Scan Images for Custom Vulnerabilities
- Base images
- Vulnerability Explorer
- CVSS scoring
- CVE Viewer
-
- Configure Registry Scans
- Scan Images in Alibaba Cloud Container Registry
- Scan Images in Amazon Elastic Container Registry (ECR)
- Scan images in Azure Container Registry (ACR)
- Scan Images in Docker Registry v2 (including Docker Hub)
- Scan Images in GitLab Container Registry
- 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 JFrog Artifactory Docker Registry
- Scan Images in Sonatype Nexus Registry
- Scan images in OpenShift integrated Docker registry
- Scan Images in CoreOS Quay Registry
- Trigger Registry Scans with Webhooks
- Configure VM image scanning
- Configure code repository scanning
- Malware scanning
- Windows container image scanning
- Serverless Functions 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
- OSS license management
-
- Alert Mechanism
- AWS Security Hub
- Cortex XDR alerts
- Cortex XSOAR alerts
- Email alerts
- Google Cloud Pub/Sub
- Google Cloud Security Command Center
- IBM Cloud Security Advisor
- JIRA Alerts
- PagerDuty alerts
- ServiceNow alerts for Security Incident Response
- ServiceNow alerts for Vulnerability Response
- Slack Alerts
- Splunk Alerts
- Webhook alerts
- API
Image analysis sandbox
The image analysis sandbox lets you dynamically analyze the runtime behavior of images before running them in your development and production environments.
The analysis mechanism collects and displays container behaviors by safely exercising the image in a sandbox machine. It also exposes risks and identifies suspicious dependencies buried deep in your software supply chain that would otherwise be missed by static analysis for vulnerabilities and compliance issues.
Running the analysis is supported for Linux images on Docker container runtime.
Setup the sandbox machine
In order to run a sandbox analysis for an image, you first need to set up a dedicated sandbox virtual machine.
Prerequisites
:- Install twistcli tool on your machine.
- The sandbox machine should have connectivity to Prisma Cloud Compute Console.
- The machine must be a Linux VM.
- Install Docker on the machine.
When setting up the VM, follow the guidelines below to make sure potential malware doesn’t exploit your sandbox:
- Make sure that the kernel is up to date.
- Make sure that Docker and Runc are up to date.
- Make sure all the software components on the machine are up to date (to make sure there is no other vulnerable component on the machine).
- The VM should be as isolated as possible. Run the VM in a dedicated network, separate from production. If other services run alongside the sandbox VM in the same local network, set up firewall rules to ensure the sandbox VM cannot reach them.
- If the VM runs in the cloud, it shouldn’t run with any service account.
It is recommended to avoid running a Defender on the same machine used as the sandbox VM. Running a Defender on this machine might cause the image that is being analyzed in the sandbox to also be presented under
Monitor > Vulnerabilities/Compliance > Images > Deployed images
as an image running in the environment.Setup the sandbox user
Create a dedicated, least-privileged user for running the image analysis sandbox.
Running the sandbox with a privileged role (Admin, Operator) is a risk in case a malware escapes (by using a zero-day, one-day, exploit misconfiguration, etc.), and can potentially use this role to take over Prisma.
- Create a custom role underManage > Authentication > Roleswith Write permissions for Container Runtime Results and Read permissions for CI Results. For roles created via the API, also add write permission for the user.
- Create a sandbox user and assign it with the new custom role you created.
- When triggering the sandbox analysis via twistcli, use the sandbox user credentials. It is recommended to use a short-lived token (available underManage > System > Utilities) rather than a username and password.
Running the sandbox command
Description
Triggering a sandbox analysis is done by executing the twistcli sandbox command on an image. After the command is triggered, Prisma Cloud’s sandbox mechanism runs the container, and starts tracing its behavior. The events occurring on the running container are collected and are later analyzed to discover suspicious behaviors.
Synopsis
The usage of the twistcli sandbox command is very similar to running a container image using docker:
$ sudo twistcli sandbox [OPTIONS] IMAGE [COMMAND] [ARG...]
For example:
$ sudo twistcli sandbox --address https://<console-address>:8083 --token 'your-api-token' --analysis-duration 2m -v "$PWD":/app python:3 python3 /app/server.py
The entrypoint and arguments should be specified after the image. If an entrypoint isn’t specified, the default entrypoint of the image will be used.
Options
- Complete URL for Console, including the protocol and port. Only the HTTPS protocol is supported. By default, Console listens to HTTPS on port 8083, although your administrator can configure Console to listen on a different port. Defaults to https://127.0.0.1:8083.Example: --address https://console.example.com:8083
- Username to access Console. If not provided, the TWISTLOCK_USER environment variable will be used if defined, or "admin" is used as the default.
- --Password for the user specified with -u, --user. If not specified on the command-line, the TWISTLOCK_PASSWORD environment variable will be used if defined, or otherwise will prompt for the user’s password before the scan runs.
- Interface with a specific supervisor Console to publish the results.Example: --project "Tenant Console"
- Write the results of the analysis to a file in JSON format.Example: --output-file analysis-results.json
- The duration of the analysis in a Go duration string format. The default duration is 1 minute.Adjust the duration according to your image. A longer duration may allow detection of more behaviors. An analysis duration that is too short might cause missing some of the suspicious findings that could have been detected on the container.Example: --analysis-duration 2m30sThe analysis duration can be shorter than the duration you specified, if the container exits before the analysis time ends.When WildFire integration is enabled, the analysis duration can be longer than specified, since the communication with WildFire may take longer than the analysis duration. When the specified duration is met, Prisma Cloud stops the container, so no more events are collected, but is waiting for WildFire verdict to publish the results.
- --A key=value pair to define an environment variable in the running container. Repeat flag for each environment variable.
- A src:dst pair to mount a volume to the running container. Repeat flag for each mount.Any volume that is shared with the sandbox will be accessible to potential malware that exists on the container. Therefore, carefully consider the usage of volumes.
- A host_port:container_port[/tcp|udp] pair to bind a host port the running container’s port. Repeat for each port. Port ranges are not supported.Example: --port "80:123/tcp"
- Specify the third-party script/binary and its arguments
- Specify the required time to wait from the container start time (to ensure initialization completion) before executing the third-party command (Optional) (default: "0")Example: --third-party-delay 5s
- Specify the third party script/binary output path
- --Path to Prisma Cloud CA certificate file. If no CA certificate is specified, the connection to Console is insecure.
- Token to use for Prisma Cloud Console authentication. Tokens can be retrieved from the API endpoint api/v1/authenticate or from theManage > System > Utilitiespage in Console.
- Immediately exit the analysis if an error is encountered.
Return value
The exit code is 0 if the sandbox analysis verdict is "Passed". If the verdict is "Failed", the exit code is 1.
The criteria for passing or failing the sandbox analysis is determined by the severity of the suspicious findings detected during the analysis. The analysis verdict is "Failed" when there is at least one finding with Critical or High severity. Otherwise, the verdict is "Passed".
Another reason why twistcli sandbox might return an exit code of 1 is if the analysis failed due to an error.
Sandbox analysis results
- Exits with a return value.
- Outputs a summary of the results, including a verdict.
- Outputs a link to the results report in the Console UI.
The results report in the Console UI includes the analysis summary and verdict, a list of suspicious detections found on the image, and the entire container behavior events that occurred during container runtime.



Analysis summary
The analysis summary contains the following main parts:
- Verdict - whether the image passed or failed the analysis.The criteria for passing or failing the sandbox analysis is determined by the severity of the suspicious findings detected during the analysis. The analysis verdict is "Failed" when there is at least one finding with Critical or High severity. Otherwise, the verdict is "Passed".
- Highest severity - the severity of the most severe suspicious finding.
- Suspicious findings count - the number of suspicious findings detected.
- Analysis metadata - analysis time, duration, and the container entrypoint.
- Image details - the details of the analyzed image.The image details also include an indication of an additional scan that may have been performed on the image. If the image was scanned for vulnerabilities and compliance as a part of the CI process, registry scanning, or as a deployed image, it will be displayed in theAdditional scanfield. You will also be able to click on its value to see the scan results. Only the furthest stage is reported in the following order: CI → Registry → Deployed.
Suspicious findings
The sandbox analysis mechanism detects the following suspicious behaviors:
Detection | Description | Severity |
---|---|---|
Malware | Malware detected by WildFire. Detecting malware using WildFire requires the WildFire integration to be enabled. Go to Manage > System > WildFire and turn on the "Enable runtime protection" toggle. You can also choose to upload files with unknown verdicts to WildFire using the matching toggle. | Critical |
Crypto miners | Crypto miner was detected. | Critical |
Suspicious ELF headers | ELF file with a suspicious header was detected. The binary is either incompatible with the system architecture or the ELF header was manipulated to hinder analysis. For ELF header tampering, Prisma Cloud identifies overlapping headers, deleted headers, and improperly specified section sizes as suspicious. | High |
Vertical port scanning | Vertical port scanner was detected. | High |
Kernel module modification | Kernel module was being loaded or unloaded. | High |
Dropper | A binary that wasn’t included in the original image (dropped on disk) was executed. | High |
Modified binary | A process modified a binary. | High |
Modified binary execution | Execution of a binary that was included in the original image but has been modified. | High |
Fileless Execution | Execution from a memory file descriptor was detected. | High |
Fileless executable creation | An executable was written into a memory file descriptor. | High |
Executable creation | A new executable file created on the disk. | Medium |
Container behavior
The sandbox analysis mechanism collects Processes, Networking, and Filesystem events that occurred while the container was running in the sandbox. The events are displayed in the Console UI analysis report, in order to provide you with an overview of the container behavior at runtime.
There are two display modes for viewing the container behavior events:
- By Type - the events are aggregated by the main event properties, to give you an overview of which process run on the container, what were the network destinations it was trying to reach, what are its listening ports, etc. For example, if a process was running three times, only a single row will appear for this process, with the common properties only (MD5), and without the properties that are changing between events (command, parent process, etc).
- By Time - all the events are presented ordered by the time they occurred. For example, if a process was running three times, three rows with the same process will appear, with different time, and with all the event details for each one of them (command, parent process, etc).
Filesystem events
For container filesystem, Prisma Cloud collects Open, Create, and Modify file events.
Network events
There are three event types collected for container networking:
- Listening port
- Outbound connection
- DNS query
All three types are presented together under the
Networking
tab, but each has its own properties.Outbound connection events are also displayed on a world map according to the country matching their IP. Clicking on a connection event will mark it on the map. Hovering a country on the map will show you how many connections were detected for this country.

View sandbox results on image details
When reviewing image details, you can look at its latest sandbox analysis results in a dedicated section. The
Anaysis sandbox
section contains an analysis summary, including the verdict and the suspicious findings counts by type. Click on the link at the top to move to the full report page.
Actions
Add to trust group
After reviewing the analysis results of an image, you can decide whether you trust this image to run in your development and production environments. Optionally, you can add the image repository to a single or multiple trust groups using the
Add to trust group
action.
This way it is possible for you to get notified or block images that are not trusted. See Trusted Images to learn more.Export to JSON file
To export the analysis results, use the
Export to JSON
action at the top of the page. This action will download a file in a JSON format with the analysis results for the image.