- Cloud Native Applications
- Application Security
- Application Security
- Web Application Security
- Application Security Posture Management (ASPM)
- Microsegmentation
- Python Security
- SaaS Security
- Node.JS Security
- PHP Security
- AI in Cyber Security
- Cybersecurity for Financial Services
- The Principle of Least Privilege (PoLP)
- Identity and Access Management
- Cybersecurity in Banking
- Threat Detection and Response
- Cyber Kill Chain
- Threat Hunting
- Zero Trust Security
- Zero Trust Architecture
- Fileless Attacks
- DSPM
- Container Scanning
- Kubernetes
- Kubernetes
- Kubernetes Alternatives
- Kubernetes Namespace
- Kubernetes Architecture
- Kubernetes Cluster
- Kubernetes Nodes
- Kubernetes Pods
- Kubernetes Jobs
- Kubernetes Workloads
- Kubernetes Monitoring
- Kubernetes Security
- Kubernetes RBAC
- Secret Scanning
- Kubernetes Security Posture Management (KSPM)
- Kubernetes on AWS
- Kubernetes on VMware
- Kubernetes Vulnerability Scanning
- Managing Containers in Kubernetes
- K3s
- eBPF in Kubernetes
- Kubernetes Dashboard
- Kubernetes Operators
- Kubernetes Services
- Kubernetes Devops
- Kubernetes Networking
- Kubernetes ConfigMap
- Kubernetes Management
- Kubernetes Helm
- Kubernetes as a Service
- Kubernetes Serverless
- Kubernetes Tutorials
- Cloud Attacks
- Cloud Attacks
- Malware Attacks
- Zero Day Attack
- Top 10 Cyber Security Threats
- Arbitrary Code Execution
- Cryptojacking
- AI Attacks
- Prompt Injection
- Backdoor Attacks
- Reverse Shell Attack
- Remote Code Execution
- Defense Evasion
- Honeypots in Cybersecurity
- Malware Analysis
- AI Malware
- Lateral Movement
- Advanced Malware Protection
- CNAPP
- AI Security
- Container Platforms
- Containerized Architecture
- Containerized Architecture
- Docker Secrets
- Container Runtime Interface
- Container Images
- Image Scanning
- Container Compliance
- Docker Security Best Practices
- Container Security
- Container Security Best Practices
- Container Security Tools
- ECS Security
- Network Segmentation
- Istio security
- runC
- Service Mesh
- Image Repository
- Container Escape
- Container Runtime
- Docker Container
- OSS Container Image Scanning Tools
- What Is a Container?
- Docker Images
- Containerization 101
- VM vs. Container
- Containerization vs. Virtualization
- Containerized Applications
- Microservices and Containerization
- Registry Scanning
- Docker CVEs
- Docker Monitoring
- Securing Containers with Docker Scanning
- Docker CIS Benchmark
- Seccomp
- Docker Alpine
- Docker API
- Docker Tools
- 100 Best Docker Tutorials
- Docker Alternatives
- Docker Swarm
- Docker Containers vs. Virtual Machines (VMs)
- Docker Architecture
- Docker Networking
- Docker Registries
- Docker Orchestration
- OpenShift vs Docker
- Container Cloud Computing
- Container DevOps
- Docker in Production
- Container Monitoring
- Container Advantages
- Docker Hub
- Serverless Architecture
- Supply Chain Security
- Supply Chain Compliance
- SolarWinds Attack
- Supply Chain Security
- Secure Software Development Lifecycle
- Software Supply Chain Attacks
- Dependency Confusion Attack
- SLSA
- SSDF
- Software Composition Analysis
- Security Misconfigurations
- Repojacking
- Privilege Escalation
- CI/CD Security
- SAST Security
- GitLab Security
- GitHub Secret Scanning
- OWASP Dependency-Check
- Software Bill of Materials
- SBOM Tools
- NPM Vulnerabilities
- Log4j Vulnerability
- Text4Shell
- Secrets Management
- Jenkins Security
- Yarn vs. NPM
- Source Code Leaks
- Container Image Signing
- Open Source Licenses
- Vulnerability Management
- Vulnerability Management Tools
- Vulnerability Scanning Process
- Vulnerability Management
- Vulnerability Scanning
- Vulnerability Prioritization
- Open Source Vulnerability Scanning
- Vulnerability Remediation
- Vulnerability Scanner
- Risk-Based Vulnerability Management
- Vulnerability Exploitability eXchange (VEX)
- Malware Detection
- Fileless Malware
- Attack Vectors
- Malicious Code
- Risk Posture
- Alert Fatigue in Cybersecurity
- Cyber Security Posture
- MITRE ATT&CK
- MITRE ATT&CK Framework
- LLM Security
- Code Scanning
- Attack Surface
- Attack Surface Management
- What Are Indicators of Compromise (IoC)?
- Secure Code
- Configuration Drift
- Trivy
- DevSecOps
- DevSecOps
- DevSecOps Pipeline
- DevSecOps Best Practices
- DevSecOps vs SecDevOps
- Threat Modeling
- Mean Time to Repair (MTTR)
- eBPF Linux
- Cloud DevOps
- DevOps Tools
- GitOps vs DevOps
- Code Security
- Secure Code Review
- DevOps Security
- Infrastructure as Code (IaC) Security
- Infrastructure as Code DevOps
- Executive Order 14028 (U.S. Cybersecurity Executive Order)
- Open Source Security
- Shift-Left Security
- Shift Right Testing and Security
- What Is SecOps (Security Operations)?
- SecDevOps
- DevSecOps Tools
- Linux Security
- Rocky Linux
- Azure DevOps
- Cloud Security
- Cloud Security
- Cloud Security Challenges
- Cloud Security Tools
- Code to Cloud
- Cloud Protection
- Cloud Security Frameworks
- Cloud Security Standards
- Cloud Security Controls
- Cloud Security Posture Management (CSPM)
- AI Workloads
- Cloud Digital Forensics
- Cloud Computing Security Architecture
- What Is Enterprise Cloud Security?
- Virtualized Security
- CSPM Tools
- Vulnerabilities in Cloud Computing
- Top 7 Risks of Cloud Computing
- Cloud Security Assessment
- Cloud Visibility
- Cloud Governance
- Cloud Security Strategy
- Cloud Security Policy
- DFIR
- Cloud Workloads
- Public Cloud Security
- Private Cloud vs. Public Cloud
- Runtime Security
- Azure Cloud Security
- Azure Security Best Practices
- Azure Security vs. AWS Security
- AWS GovCloud: Basics & How It Compares to Azure & GCP
- S3 Security
- Cloud Misconfiguration
- Terraform Security
- Hybrid Cloud Security
- Multi-Cloud Strategy
- Agentless vs. Agent-Based Security & Monitoring
- Cloud Infrastructure Security
- Gartner CSPM
- Cloud Security Scanner
- AWS CIS Benchmark
- Cloud Configuration Management
- Cloud Workload Protection (CWP)
- Cloud Workload Protection Platforms (CWPP)
- Cloud Workload Security
- Cloud Vulnerabilities and Tools that Can Help
- Google Cloud Security
- Shared Responsibility Model
- AWS Shared Responsibility Model
- AWS Cloud Security
- Multi Cloud Security
- Cloud Compliance
- Kubernetes in Production
- Cloud Detection And Response
Vulnerability Exploitability eXchange (VEX) - Definition & Use Cases
Finding vulnerabilities using a vulnerability scanner is one thing. Determining whether a vulnerability you've discovered actually presents a risk for your specific application and environment is quite another. It often happens that a vulnerability is not exploitable under a particular configuration, which means the vulnerability doesn't pose a serious risk.
The Vulnerability Exploitability eXchange, or VEX, was created to help security teams understand whether a given vulnerability actually affects them. In this way, VEX provides critical context to vulnerability scanning and helps teams to zero in on critical vulnerabilities faster.
Keep reading for a dive into what VEX is, how it works and how to use it to improve scanning.
In this article:
- What is VEX?
- What are the differences between VEX and SBOM?
- How is VEX generated?
- VEX implementations
- Kubernetes security and VEX
- VEX use cases
What is VEX?
Vulnerability Exploitability eXchange (VEX), is a standardized format used to convey information about the exploitability of vulnerabilities in software products and share it with scanning tools.
VEX is important because just because a vulnerability scanner identifies a vulnerability in an application doesn’t mean the vulnerability is exploitable under a specific application configuration. For example, attackers may only be able to exploit a vulnerability if an application is hosted on a specific operating system or if a certain application feature is enabled. When securing scanners know this information, they are able to generate more actionable information about which vulnerabilities are actually relevant in a given IT environment or under a certain application configuration.
In turn, VEX gives security teams and developers an easy, automated way of identifying the conditions under which a vulnerability is exploitable. As a result, they can quickly determine whether vulnerabilities actually affect their organizations. In cases where scanners identify a high volume of vulnerabilities and teams don’t have time to fix all of them immediately, VEX makes it possible to decide which vulnerabilities to prioritize by focusing on the ones that are exploitable.
VEX was introduced in 2021 by the National Telecommunications and Information Administration, or NTIA, a U.S. government agency, to help streamline the sharing of information about vulnerabilities.
What are the differences between VEX and SBOM?
Scanners can use VEX to include information about vulnerability exploitability when they produce Software Bills of Material, or SBOMs. However, VEX is distinct from an SBOM itself.
An SBOM, which is typically formatted using a standard like SPDX or CycloneD, provides various types of information about the components within an application’s software supply chain, such as which versions they are and where they originated. Thus, the main purpose of an SBOM is to provide an easy way of tracking software supply chain components and contextual information associated with them.
In contrast, the focus of VEX is on describing vulnerabilities. VEX can be integrated into an SBOM to add information about vulnerabilities that relate to any components within a software supply chain. But unlike an SBOM, VEX only describes information about vulnerabilities, not other data about software supply chain components.
How is VEX generated?
To generate VEX as part of vulnerability scanning, first generate an SBOM. For example:
trivy image --format cyclonedx --output debian11.sbom.cdx debian:11
This command uses Trivy, an open source vulnerability and misconfiguration scanning tool, to create an SBOM for version 11 of Debian Linux.
Then, you can create a VEX by writing code in a VEX implementation of your choosing (for more on VEX implementations, see below) that describes vulnerability exploitability. For example:
{
"bomFormat": "CycloneDX",
"specVersion": "1.4",
"version": 1,
"vulnerabilities": [
{
"id": "CVE-2020-8911",
"analysis": {
"state": "not_affected",
"justification": "code_not_reachable",
"response": ["will_not_fix", "update"],
"detail": "The vulnerable function is not called"
},
"affects": [
{
"ref": "urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79/1#pkg:golang/github.com/aws/[email protected]"
}
]
}
]
}
EOF
This VEX indicates that the vulnerability described in CVE-2020-8911 is not exploitable. The ref: section includes three important values:
- A serialNumber (in this case, urn:cdx:3e671687-395b-41f5-a30f-a58921a69b79) that matches the serialNumber defined in the SBOM.
- A version (in this case, 1) that is also defined in the SBOM.
- A bom-ref (in this case, pkg:golang/github.com/aws/[email protected]) that matches the package identified by the vulnerability.
We can save this VEX as a file (we’ll call it trivy.vex.cdx), then feed it into our vulnerability scanner using the following command:
trivy sbom debian11.sbom.cdx --vex trivy.vex.cdx
This tells the vulnerability scanner to ignore vulnerability CVE-2020-8911 when reporting scanning for vulnerabilities based on the Debian 11 SBOM that we created above. As a result, Trivy won’t flag this vulnerability when it generates a list of vulnerabilities for Debian 11.
VEX implementations
As we mentioned, there are multiple implementations of VEX. The three major options at present include:
- OpenVEX
- CSAF VEX
- CycloneDX VEX
Each implementation uses different formatting and syntax to describe the exploitability of vulnerabilities. But all implementations make it possible to share the same basic information.
Kubernetes security and VEX
VEX is valuable across a variety of software ecosystems, but one place where it has gained notable momentum is the world of Kubernetes security. Given that there are millions of public container images that could be subject to container security vulnerabilities, the ability to describe and share vulnerability data in a consistent way helps organizations that use Kubernetes and other container-centric platforms to get ahead of security risks.
With VEX, you can take advantage of the flexibility of Kubernetes, while also keeping tabs on any vulnerabilities that exist in container images you use – as well as vulnerabilities that affect the components of Kubernetes itself.
VEX use cases
VEX can assist with several use cases related to vulnerability scanning:
- Allowing software vendors or packagers to share information about the conditions under which a vulnerability is exploitable.
- Reducing the “noise” generated by vulnerability scanners by filtering out non-exploitable vulnerabilities.
- Helping security teams and developers identify the conditions under which a vulnerability is exploitable so that they can avoid implementing them.
- Allowing security auditors to determine which portion of vulnerabilities inside an IT environment are actually exploitable – which is a more meaningful reflection of risk than total vulnerability count.
Getting the most from VEX with Aqua
Aqua has been a major proponent of VEX since the concept’s introduction, which is why Aqua Trivy (OSS) was one of the first scanners to support VEX. By using Trivy to generate SBOMs and filter vulnerabilities, you can quickly determine not only which components exist in your software supply chain, but also which vulnerabilities impact them. In turn, you can decide which risks to prioritize and mitigate them faster.
In addition, Aqua has built VEX Hub, a centralized repository where software vendors can share VEX attestations, and where security teams can download them and use them during scanning. This is important because although the VEX standard offers an easy way of sharing vulnerability information, there was not previously a central location for finding and downloading VEX attestations. With VEX Hub, Aqua has closed this gap, making it easy users of Trivy (and, potentially, other scanners) to find VEX attestations and use them to filter scanning results.
- Top 5 Open Source Vulnerability Management Tools
- Vulnerability Scanning Process: An In-Depth Look
- Vulnerability Management: Definition, Process, and Tools
- Vulnerability Scanning: Types, Tools, and Importance
- What Is Vulnerability Prioritization? Importance & Best Practices
- Open Source Vulnerability Scanning: Methods and Top 5 Tools
- Vulnerability Remediation - Challenges, Process & Automation
- What is a Vulnerability Scanner?
- What Is Risk-Based Vulnerability Management?
- Malware Detection in the Cloud Computing Era
- Fileless Malware: How It Works & Protecting Your Organization
- Attack Vectors
- Malicious Code: Real Life Examples and 14 Protective Measures
- What Is Risk Posture, Solutions & Best Practices for Improving It
- Alert Fatigue in Cybersecurity: What It Means and How to Solve It
- Cyber Security Posture
- MITRE ATT&CK: Basic Concepts and Best Practices
- Understanding MITRE ATT&CK Framework: Concepts and Use Cases
- LLM Security: Top 10 Threats & Best Practices
- Why Is Code Scanning Security Important?
- Attack Surface: Digital vs. Physical Attack Surfaces and How to Protect Them
- Attack Surface Management: Process, Components & Practices
- Indicators of Compromise (IoC): Examples, Lifecycle, and Security Impact
- Secure Code: 8 Ways to Build More Secure Software
- Configuration Drift: Why It’s Bad and How to Eliminate It
- Trivy
- Show more
Aqua Cloud Native Application Protection Platform (CNAPP)
Go cloud native with the experts!