• 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
  • Deepfactor Platform
  • Knowledge Base

Language Specific Agents (LSA)

Deepfactor is added to your application in a language agnostic manner. It collects telemetry from your running application and generates security insights. In order to enhance insights, we also provide programming language specific agents which can be injected when you run your application with Deepfactor.

The LSA provides the following additional capabilities:

Language specific stack trace frame information #

Deepfactor by default shows the native stack trace frames. LSA is used to collect interpreted language stack trace frames.

This capability is enabled by default. If you want to disable this functionality, you can perform the following steps.

  1. dfctl run
    If you are running your application using Deepfactor command line utility (dfctl), then you can pass the option –disable-stack-traces (optional).
  2. docker build
    If you are building Deepfactor enabled container images (to be used in container orchestration platforms), then you need to pass the following additional build arg
    –build-arg “DF_STACK_TRACES=disable”
  3. Kubernetes admission webhook
    If you are using the K8s admission webhook, then you can edit the cluster configuration from the portal UI. Click on Kubernetes Clusters on the left sidebar. Then locate and click on the name cluster in you would like to disable stack trace collection. Then click on Cluster configuration tab followed by Edit Config button. On the Edit Cluster Configuration dialog, select Runtime Security and open Advanced options accordion. Turn off ‘Collect stack traces’ option.

    Disable stack trace

Usage tracking #

Deepfactor can keep track usage of application dependencies at runtime. This usage information will help you understand the extent of usage of your dependencies and help you prioritize which vulnerable dependencies to update/replace. For java applications, Deepfactor injects a jvmti agent which intercepts every class load event. This can add a non-trivial amount of overhead, particularly at startup depending upon the complexity of your application. For interpreted language (Node.js, python, Ruby and PHP) dependencies, usage tracking is enabled always and does not add any additional overhead.

To disable usage tracking for java applications, please follow the below instructions

  1. dfctl run
    If you are running your application using the Deepfactor command line utility (dfctl), then you can pass the option –disable-usage-tracking.
  2. docker build
    If you are building Deepfactor enabled container images (to be used in container orchestration platforms), then you need to pass the following additional build arg
    –build-arg “DF_USAGE_TRACKING=enable”
  3. Kubernetes admission webhook
    You can turn off this functionality by disabling Collect dependency usage option under Kubernetes Cluster -> Cluster config.

Disable dependency usage

 

LSA Internals #

Deepfactor automatically detects the programming language per process and injects the appropriate language specific agent. As of today, Deepfactor provides LSA modules for applications written in either Java or Python.

  • Java Language Specific Agents
  • Python Language Specific Agents

 

Java Language Specific Agents

Deepfactor provides the following two java language specific agents

1. Java Virtual Machine Tools (JVM TI) Library: This is a lightweight JVM TI library that is used to collect java stack traces. This stack trace information is shown for the alerts raised by Deepfactor. Stack traces can be helpful for developers to pinpoint where the issue is within their code.

JVMTI agent is automatically injected by default since stack traces are enabled by default.

Ex.

dfctl run -a “my application” -c “my component” –version “111” -v  –cmd /usr/bin/java -jar mycomponent.jar

 

2. Java Agent: This is a java agent which uses the Java Instrumentation API to gather runtime usage of dependencies. This information is shown under the usage section of the dependency. This information will help you understand the extent of usage of your dependencies and help you prioritize which vulnerable dependencies to update/replace.

At this time, the Deepfactor java-agent does not support a Java application that includes:
– non-JDK, or custom, ClassLoader(s) that do not use the default system ClassLoader ClassPool
– bytecode transformation/instrumentation
– operation with other java-agents

This agent is automatically injected when usage tracking is enabled.

Python Language Specific Agents #

Deepfactor provides a Python language specific agent that can be used to provide stack trace information for many alerts displayed in the Deepfactor management portal.

This agent is automatically injected when you enable stack traces.

Eg:

dfctl run -a “my application” -c “my component” –version “111” -v –cmd python3 myapp.py

The Python language specific agent works with Python versions 3.6 through 3.10, inclusive. It does not work with Python 2.x applications nor does it work with Python versions before 3.6. If stack traces are enabled for unsupported versions of Python, the language specific agent will not be loaded.

Note: The Python language specific agent generates stack traces for Deepfactor alerts by querying the Python interpreter to gather the trace. Depending on the Python modules installed and in use in the application at the time of the alert, you may or may not see Python stack traces for a given alert, for a given application. Further, Python will frequently report stack trace frames for internal modules that have been optimized out by the interpreter (these frames will typically be displayed as “bootstrap” frames in the Deepfactor portal). These limitations apply primarily to modules compiled from C code (CPython) or interpreter built-in code. Stack frames corresponding to user application files should be reported correctly in most cases.

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

How can we help?

Updated on December 15, 2023
How the Deepfactor Management Portal Communicates With The Outside World

Powered by BetterDocs

Table of Contents
  • Language specific stack trace frame information
  • Usage tracking
  • LSA Internals
  • Python Language Specific Agents
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