• Product

      Product

      Application Security Platform

      Use Cases

      Shift Left & DevSecOps Supply Chain Security Software Bill of Materials (SBOM) Container Runtime Security & Compliance Cloud Native Application Security
      What is Deepfactor and How Does It Work?
      4-Minute Video
      What is Deepfactor and How Does It Work? >
  • Pricing
    • Pricing Plans
  • Resources

      Resources

      All Resources Next-Gen AppSec Series Case Studies Demos Videos Glossary Webinars Whitepapers Workshops Latest Blogs Documentation
      Implement Effective Next-Gen Container Runtime Security in Kubernetes and Cloud Native Apps
      Whitepaper
      Implement Effective Next-Gen Container Runtime Security in Kubernetes and Cloud Native Apps >
  • Company
    • About
    • Leadership
    • Partners
    • News and Events
    • Careers
    • Contact Us
  • LOGIN
Cisco Logo Deepfactor is now part of Cisco | Learn more
Learn more
Deepfactor Logo
  • Product

      Product

      Use Cases

      Application Security Platform

      Use Cases

      Shift Left & DevSecOps Supply Chain Security Software Bill of Materials (SBOM) Container Runtime Security & Compliance Cloud Native Application Security
      What is Deepfactor and How Does It Work?
      4-Minute Video
      What is Deepfactor and How Does It Work? >
  • Pricing
    • Pricing Plans
  • Resources

      Resources

      All Resources Next-Gen AppSec Series Case Studies Demos Videos Glossary
      Webinars Whitepapers Workshops Latest Blogs Documentation
      Next-Gen AppSec Series—Deepfactor SCA: 80% Less Noise, 50% Lower Cost
      Next-Gen AppSec Series
      Next-Gen AppSec Series—Deepfactor SCA: 80% Less Noise, 50% Lower Cost >
  • Company
    • About
    • Leadership
    • Partners
    • News and Events
    • Careers
    • Contact Us
LOGIN
Deepfactor's Application Security Platform will no longer be offered for sale or renewal effective September 20, 2024.

Getting Started

  • QuickStart Guide
  • Install Deepfactor CLI
  • Deepfactor Support Matrix

Tutorials

  • SBOM & SCA
    • Artifact Releases
    • Deepfactor Scanner
    • Integrate Deepfactor scanner in your CI/CD pipelines
    • Scanning container images from private registries using Deepfactor CLI
    • Scan container images in K8s cluster
      • Scanning images from private registries in K8s cluster using Deepfactor
      • Scanning container images from private registries with basic authentication support in K8s
      • Scanning container images from private AWS Elastic Container Registry (ECR) in EKS on AWS Fargate
      • Scanning container images from private AWS Elastic Container Registry (ECR) in EKS on AWS EC2
  • Runtime Security
    • Introduction to Deepfactor Runtime Security
    • Deepfactor CLI Reference
    • Kubernetes workload
      • Run your Kubernetes workload with Deepfactor
      • Install Deepfactor Mutating Webhook
      • Configure Deepfactor Kubernetes admission webhook
      • Install Deepfactor K8s webhook on EKS Fargate
      • Selecting the pods you want to run with Deepfactor
      • Configuring application name, component name and component version in K8s webhook
      • Install Deepfactor mutating admission webhook using Argo CD
      • Install Deepfactor portal & webhook using Argo CD and vault
      • Use image pull secret for Runtime images
    • Containers/Other orchestration platforms
      • Run your Container Images with Deepfactor
      • Run containers in ECS with Deepfactor
    • Non-containerized workloads
      • Running non-containerized applications with Deepfactor

Deepfactor Platform

  • Introduction to Deepfactor
  • Alert Policies
  • Alert States and Triaging Flows
  • Deepfactor’s Correlation Capabilities
  • Organization and Teams
  • Role Based Access Control
  • Insights Knowledge Base
    • Privilege Separation and Privilege Dropping
    • Buffer Overflow Alerts
  • Knowledge Base
    • Deepfactor scan errors
    • K8s Webhook & Runtime Troubleshooting Guide
    • Tools for viewing CycloneDX and SPDX SBOMs
    • Graceful handling of pod restarts
    • Deepfactor telemetry events
    • Deepfactor Instrumentation Warning Messages
    • Best Practices for running your applications with Deepfactor in production environments
    • Golang Specific Notes
    • How to access Deepfactor Portal in different AWS subnet types
    • How the Deepfactor Management Portal Communicates With The Outside World
    • Language Specific Agents (LSA)
    • Mixed libc environments
    • Sensitive Information and Secrets in Process Environment Remediation
    • Running HAProxy with Deepfactor
    • Augmenting Alert Evidence with Runtime Stack Traces
  • FAQs
    • General FAQs
    • Open Source Disclosure

Integrations

  • Single Sign On (SSO) for authentication to Deepfactor
  • Integrate Jira with Deepfactor
  • Integrate Slack with Deepfactor
  • Okta
  • Deepfactor HTTPS webhook

Self managed Deepfactor portal

  • Deepfactor Portal architecture & deployment options
  • Install Self managed Deepfactor portal
    • Kubernetes Cluster
      • Prerequisites for deploying Deepfactor portal in Kubernetes Cluster
      • Deploying Deepfactor Portal in your Kubernetes Cluster
      • Install Deepfactor portal using Helm
      • Customizing Deepfactor portal deployment
        • Customizing your Deepfactor Portal Deployment in K8s
        • Deploy Deepfactor Portal With Resource Limits
        • Deploying Deepfactor Portal using external IP
        • Deepfactor Portal Installation with Existing Ingress Controller
    • AWS EC2
      • Prerequisites for installing Deepfactor Portal in AWS Cloud
      • Deploying Deepfactor on AWS using CFT
      • Install AWS Certificate Manager(ACM) certificate on Deepfactor portal EC2 instance
    • VMWare vSphere
      • Deepfactor Portal Proxy Configuration for OVA deployments
      • Prerequisites for deploying Deepfactor portal in VWware vSphere
      • Deploying Deepfactor on VMware vSphere
  • Manage Deepfactor Portal
    • Using Deepfactor APIs
    • Managing Users
    • Updating your Deepfactor Portal
    • Updating Deepfactor portal certificate
  • Deepfactor Portal Certificate
    • Generate certificate using cert-manager for Deepfactor portal
    • Create self-signed certificate for Deepfactor Portal on your K8s cluster
    • Create AWS Private CA Certificate for Deepfactor Portal on your K8s cluster
    • Create Let’s Encrypt certificate for Deepfactor Portal on your K8s cluster

Release Notes

  • Deepfactor Release Notes
  • Home
  • Docs
  • Tutorials
  • SBOM & SCA

Deepfactor Scanner

Deepfactor can scan software artifacts such as container images and source code to generate software bill of materials (SBOM) and find SCA vulnerabilities. In order to allow scanning at different stages of the SDLC, Deepfactor provides the following different ways of scanning artifacts

  1. Deepfactor CLI (dfctl): Developers can scan their code/container images in the terminal using dfctl. Refer to the following article to understand how to scan artifacts using Deepfactor CLI
    Scanning your artifacts with dfctl
  2. Deepfactor CLI container image: Deepfactor also packages the CLI, dfctl in a container image which can be used in CI/CD pipelines to run scans against your images or file sytems. Refer to the following article to understand how you can use this container image in your CI/CD pipelines
    Integrate Deepfactor scanner in your CI/CD pipelines
  3. Deepfactor K8s scan pod: Deepfactor can deploy one or more scan pods in your K8s cluster which will automatically scan container images used by pods launched in your K8s cluster.

In order for Deepfactor to access and scan container images from private registries, you will need to specify registry credentials. Refer to the following article to understand how to pass registry credentials to Deepfactor scanner.
Scanning images from private registries using Deepfactor

 

Deepfactor Scanner data sources #

Deepfactor regularly pulls vulnerability feeds from the following data sources.

Data sources for OS package vulnerabilities #

OS Source
Arch Linux Vulnerable Issues
Alpine Linux secdb
Wolfi Linux secdb
Chainguard secdb
Amazon Linux Amazon Linux Security Center
Debian Security Bug Tracker
OVAL
Ubuntu Ubuntu CVE Tracker
RHEL/CentOS OVAL
Security Data
AlmaLinux AlmaLinux Product Errata
Rocky Linux Rocky Linux UpdateInfo
Oracle Linux OVAL
CBL-Mariner OVAL
OpenSUSE/SLES CVRF
Photon OS Photon Security Advisory

Data sources for Language specific dependency vulnerabilities #

Language Source

PHP

PHP Security Advisories Database

GitHub Advisory Database (Composer)

Python

GitHub Advisory Database (pip)

Open Source Vulnerabilities (PyPI)

Ruby

Ruby Advisory Database

GitHub Advisory Database (RubyGems)

Node.js

Ecosystem Security Working Group

GitHub Advisory Database (npm)

Java

GitLab Advisories Community

GitHub Advisory Database (Maven)

Go

GitLab Advisories Community

The Go Vulnerability Database

Rust

Open Source Vulnerabilities (crates.io)

.NET

GitHub Advisory Database (NuGet)

C/C++

GitLab Advisories Community

Dart

GitHub Advisory Database (Pub)

Elixir

GitHub Advisory Database (Erlang)

 

Deepfactor Scanner results #

Deepfactor scanner supports the following output formats

  1. CycloneDX compliant SBOM
  2. SPDX compliant SBOM as key value and/or json
  3. Deepfactor json format
  4. Table

You can view the results in above formats in the following ways

  1. On the terminal output if you are using dfctl
  2. As a file stored on disk where the scan is performed
  3. As a CI/CD pipeline output artifact
  4. On the Deepfactor portal UI

The Deepfactor portal UI shows the results of each scan performed and also the history of scans for older versions of the artifacts. This allows you to compare the results across versions of your artifacts.

 

Offline scans #

Under some special circumstances, you may notice an offline tag next to a scan on the Deepfactor portal UI. This implies that Deepfactor had to re-run the scan in an offline mode. During the scan, Deepfactor scanner parses the layers of your image. The scanner looks up a local database to get GAV (groupId, artifactId, version) when it encounters java dependencies whose GAV cannot be found in pom.xml. GAV is required to query vulnerabilities for java packages. If there is an error in parsing or looking up GAV, Deepfactor scanner automatically restarts the scan in offline mode. In this mode, Deepfactor scanner does not lookup the local db for GAV and hence cannot query vulnerabilities for such java packages. Thus, in this mode, although the scanner provides the full SBOM, it will not be able to pull vulnerability information for the set of java packages whose GAV is not found in pom.xml. You will also be able to see the error on the UI when you click the offline tag. Refer to the following article which describes the reason and possible remediation for common error scenarios you may encounter during scans.

Deepfactor scan errors
Note: As mentioned above, Deepfactor automatically detects certain types of errors and restarts the scans in offline mode. This can result in higher scan times and some scans may timeout. In such cases, please increase the scan timeout using the -u option as described in the following article

Scanning your artifacts with dfctl

#

Base image layer detection #

Deepfactor can automatically detect layers that belong to the base image without the need for the user to pass the Dockerfile to the dfctl scan command. Deepfactor uses the following logic to detect base image layers

  1. Get image history to get the full list of layers
  2. Traverse the layers to identify the occurrence of a CMD/ENTRYPOINT instruction after the first encountered non empty layer.
  3. Mark all layers post the encountered CMD/ENTRYPOINT (inclusive) instruction as base image layers

Example:

docker history tomcat

The above command will provide the following output

e46faef801b7 5 days ago /bin/sh -c #(nop) CMD ["catalina.sh" "run"] 0B
<missing> 5 days ago /bin/sh -c #(nop) EXPOSE 8080 0B
<missing> 5 days ago /bin/sh -c set -eux; nativeLines="$(catalin… 0B
<missing> 5 days ago /bin/sh -c set -eux; savedAptMark="$(apt-m… 21.8MB
<missing> 5 days ago /bin/sh -c #(nop) ENV TOMCAT_SHA512=ad754aa… 0B
<missing> 5 days ago /bin/sh -c #(nop) ENV TOMCAT_VERSION=10.1.11 0B
<missing> 5 days ago /bin/sh -c #(nop) ENV TOMCAT_MAJOR=10 0B
<missing> 5 days ago /bin/sh -c #(nop) ENV GPG_KEYS=5C3C5F3E314C… 0B
<missing> 5 days ago /bin/sh -c #(nop) ENV LD_LIBRARY_PATH=/usr/… 0B
<missing> 5 days ago /bin/sh -c #(nop) ENV TOMCAT_NATIVE_LIBDIR=… 0B
<missing> 5 days ago /bin/sh -c #(nop) WORKDIR /usr/local/tomcat 0B
<missing> 5 days ago /bin/sh -c mkdir -p "$CATALINA_HOME" 0B
<missing> 5 days ago /bin/sh -c #(nop) ENV PATH=/usr/local/tomca… 0B
<missing> 5 days ago /bin/sh -c #(nop) ENV CATALINA_HOME=/usr/lo… 0B
<missing> 5 days ago /bin/sh -c #(nop) CMD ["jshell"] 0B
<missing> 5 days ago /bin/sh -c #(nop) ENTRYPOINT ["/entrypoint.… 0B
<missing> 5 days ago /bin/sh -c #(nop) COPY file:0673fe0a4a716089… 1.08kB
<missing> 5 days ago /bin/sh -c echo Verifying install ... &&… 0B
<missing> 5 days ago /bin/sh -c set -eux; ARCH="$(dpkg --prin… 279MB
<missing> 5 days ago /bin/sh -c #(nop) ENV JAVA_VERSION=jdk-17.0… 0B
<missing> 11 days ago /bin/sh -c apt-get update && DEBIAN_FRON… 50MB
<missing> 5 weeks ago /bin/sh -c #(nop) ENV LANG=en_US.UTF-8 LANG… 0B
<missing> 5 weeks ago /bin/sh -c #(nop) ENV PATH=/opt/java/openjd… 0B
<missing> 5 weeks ago /bin/sh -c #(nop) ENV JAVA_HOME=/opt/java/o… 0B
<missing> 6 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 6 weeks ago /bin/sh -c #(nop) ADD file:140fb5108b4a2861b… 77.8MB
<missing> 6 weeks ago /bin/sh -c #(nop) LABEL org.opencontainers.… 0B
<missing> 6 weeks ago /bin/sh -c #(nop) LABEL org.opencontainers.… 0B
<missing> 6 weeks ago /bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH 0B

In the above list,

  1. Row 4 is the first non empty layer
  2. Row 15 is the first encountered CMD/ENTRYPOINT instruction. Hence, rows 15 to 29 are marked as base image layers

The following approach assumes that

  1. Each base image’s Dockerfile will have at least a CMD or Entrypoint instruction. This is true for most commonly used base images.
  2. The container image is built on top of one or more base images (using FROM instruction) Dockerfile reference , Multi-stage builds

#

Artifact Releases #

Deepfactor allows you to tag scans to a particular release of your software artifact. Software teams generally generate several builds per day in their CI/CD pipeline. Once integrated in the CI/CD pipeline or K8s cluster, Deepfactor will scan every build. However, it becomes a tedious task to go through the scan results of all of these builds and teams generally care about the latest state of their release build and want to answer the following questions:

  1. What is the security posture of the artifact build that is currently running in production?
  2. What is the security posture of the latest build of the upcoming release which is under development?
  3. What is the trend of vulnerabilities within a release? Are my developers reducing the vulnerability count on a per release basis?
  4. What is the trend of vulnerabilities across releases? Over a period of time, has the security posture for an artifact improved or has it gotten worse?

In order to help teams answer the above questions, Deepfactor has introduced the capability for users to tag a certain scan as belonging to a certain release. Once the user specifies the release for scans, Deepfactor shows the trend of vulnerabilities across builds within a single release and across the releases over a period of time. You can read more about artifact releases here.

Deepfactor’s correlation capabilities #

Deepfactor can scan your artifacts (container images / file system directories) to generate SBOM and find SCA vulnerabilities. Deepfactor can also observe running containers / non-containerized applications to detect runtime risks. The unique capability Deepfactor provides is that it can correlate the results of the scan and runtime observation so you get

  1. An unified view of your application’s security posture
  2. Additional information so you can priortize which vulnerabilities to fix earlier than others.

You can read more about Deepfactor’s correlation capabilities here.

Deepfactor artifacts UI #

The following section describes the UI pages shown on the portal for artifact results.

Artifacts Dashboard #

You can see the artifacts dashboard by navigating to Artifacts from the left sidebar.

Artifacts List

 

Artifacts page shows the list of artifacts (images and filesystems) scanned along with results of the last successful scan.

Artifact Name

Deepfactor uses a unique name for each artifact and stores the results of all subsequent scans of the same or different versions of the artifact under that artifact name.

In the case of container images, the artifact name is the image path without the tag.

Example:

For the image, deepfactor.repo:8442/myservice:version1

Artifact name: deepfactor.repo:8442/myservice

Version: version1

Subsequently, if you scan deepfactor.repo:8442/myservice:version2, version2 will be considered another version of the same artifact, deepfactor.repo:8442/myservice:version1

In the case of file system scans, you will need to provide the following details:

  • application name
  • component name
  • component version

Deepfactor use the concatenation of application name and component name as artifact name and the component version as the version of the artifact.

Example:

If you used the following command to scan

dfctl scan -s fs -a “myapp” -c “mycomp” -V “1.0” mydir/service

Artifact name: myapp:mycomp

Artifact version: 1.0

If you would like to see the results of older releases of your artifacts, you can click on the All Releases button

Artifact list expanded

 

Artifact Scan Results #

The results of the scan are shown under multiple tabs on the UI. The following section describes the information shown in the different tabs

Overview

The overview tab gives a summary of the scan results such as policy violations, general information about the artifact and vulnerabilities.

Artifact results overview

 

Layers

Deepfactor detects the different layers found in your container images and also ties the vulnerabilities to the layer it is found in. This will help your developers identify if the vulnerability is present in the base image or due to a command in the Dockerfile used to generate the image.

Artifact results layers

 

Vulnerabilities

This tab lists the full list of vulnerabilities found in the container image. Each vulnerability is tied to a resource, resource version and target. If your container image has multiple applications such as a java application, a go binary, a python project etc, Deepfactor will detect them and also tag each vulnerability to the application target within the container.

Artifact results vulnerabilities

 

Artifact Information

This tab provides basic information about the scanned artifact including environment variables. Sometimes sensitive information is passed as environment variables which is a bad security practice. Please ensure you remove any sensitive information from environment variables.

Artifact results information

 

Alerts

While scanning the artifact, you can specify the policy. This tab lists all violations of policy rules.

Artifact results alerts

 

Workloads

This tab lists all of the running components that use the same artifact. This gives you visibility in the usage of a particular artifact (container image/source) in your deployed applications.

Artifact results workloads

SBOM

This tab lists all resources (OS packages and dependencies) detected in your artifact along with any vulnerabilities and alerts associated with them.

Artifact results SBOM

Scan History

This tab shows a list of scans performed for this particular artifact.

Artifact results history

Was this article helpful?
Still stuck? How can we help?

How can we help?

Updated on December 19, 2023
Artifact ReleasesIntegrate Deepfactor scanner in your CI/CD pipelines

Powered by BetterDocs

Table of Contents
  • Deepfactor Scanner data sources
    • Data sources for OS package vulnerabilities
    • Data sources for Language specific dependency vulnerabilities
  • Deepfactor Scanner results
  • Offline scans
  • Base image layer detection
  • Artifact Releases
  • Deepfactor's correlation capabilities
  • Deepfactor artifacts UI
    • Artifacts Dashboard
    • Artifact Scan Results
Deepfactor Icon

Deepfactor is a next-gen application security platform, using static container scan data + runtime analysis to prioritize vulnerabilities to those representing true risk to a business—based on reachability, runtime usage, deployment context, and exploit maturity.

Product Pricing Resources Company Documentation Login

SUBSCRIBE TO OUR NEWSLETTER!

Sign Up
LinkedIn Icon YouTube Icon GitHub Icon Twitter Icon

© 2025 Deepfactor, Inc. All Rights Reserved.

Privacy Statement | Terms of Service | Open Source Disclosure