Networking DOCA SDK Documentation

DOCA Argus Service Guide

This page provides installation, configuration, and usage instructions for the DOCA Argus Service.

Introduction

DOCA Argus is a service that runs on a supported NVIDIA® BlueField® DPU and provides real-time visibility into the attached Linux compute node. It uses hardware-level live machine introspection and NVIDIA DOCA DMA to read selected structures in volatile host memory and derive information about the host and its workloads. Because the service runs on the DPU in a trust domain separate from the host, it does not require a host-resident agent.

DOCA Argus evaluates collected activity with a policy engine and produces events and alerts for security and observability workflows. Its primary use cases include runtime workload threat detection, AI workload discovery, infrastructure mapping, and runtime observability across bare-metal, virtualized, and containerized environments. A single BlueField DPU running DOCA Argus can monitor the compute node to which it is attached.

Operation

DOCA Argus identifies the Linux kernel version running on the monitored host and applies a matching kernel-specific memory map to locate the structures it must inspect. The service supports hosts with x86 and Arm64 CPUs. Using DOCA DMA, it reads selected regions of host memory and decodes the raw data into logical information about processes, threads, execution states, and other system activity.

A policy engine filters the decoded activity and evaluates it against policy rules. Activity that matches one or more rules becomes meaningful activity that the service can report as an event or alert. DOCA Argus reports information about its own operational state as system activity messages.

Monitored Activity and Relationships

DOCA Argus can report the following workload and infrastructure information:

  • Processes and threads, including execution state

  • Executed binaries and loaded libraries, including SHA-256 hashes

  • Execution paths and command-line arguments

  • Process-level file access

  • Process-level inbound and outbound network connections

  • Exposed network services

  • Workload type and deployment context, including bare-metal, virtual machine, and container environments

  • Relationships among containers, Pods, virtual machines, the host operating system, processes, compute nodes, and GPUs

  • Physical GPU attributes, including make, model, and serial number

  • Mappings between workloads and physical or virtual GPUs

  • Process-to-GPU utilization metrics and other GPU observability data

This information provides the common data foundation for the security, discovery, and observability use cases described below.

Events and Alerts

When raw activity matches one or more policy rules, DOCA Argus treats it as meaningful activity and includes it in one of the following message types:

  • Event – One or more meaningful activities that describe the recorded operational state and provide situational awareness.

  • Alert – One or more meaningful activities that indicate a threat or operational impact that requires investigation or response.

  • System activity – Information about the operational state of the DOCA Argus service.

For details about message formats, local logging, telemetry delivery, and output fields, see the Log Types and Output sections.

Use Cases

DOCA Argus uses the monitored activity and relationships described above to support the following use cases.

Runtime Workload Threat Detection

Containerized AI applications are commonly instantiated from immutable images. Instances created from the same image should therefore exhibit consistent and predictable runtime behavior. DOCA Argus can compare observed activity with established behavioral profiles to identify deviations that may indicate compromise or malicious activity.

Relevant signals include executed binaries and loaded libraries, their associated hashes, execution paths, command-line arguments, process-level file access, and network connections. These signals can help detect integrity violations and suspicious behavior, including unexpected process execution, executed Bash commands, reverse shell activity, and unauthorized process execution.

External security platforms can combine DOCA Argus telemetry, events, and alerts with their own analytics, correlation logic, and threat intelligence.

AI Workload Discovery

DOCA Argus identifies how workloads are deployed and maps their relationships across the monitored compute node. It distinguishes workloads running on bare metal, in virtual machines, or in containers and can report relationships such as container-to-Pod, container-to-virtual-machine, and container-to-operating-system mappings.

DOCA Argus also reports container image hashes. External systems can correlate these hashes with public and private software repositories to help identify deployed AI software, AI models, large language models, and AI agents. DOCA Argus supplies the runtime and image-hash data used for this identification; repository correlation occurs outside the service.

Together with process, compute-node, and GPU relationship data, this information supports a current inventory and map of AI workloads and the infrastructure on which they run.

Runtime Observability

DOCA Argus provides operational visibility into how workloads execute and interact with memory, threads, the network, the file system, CPUs, and GPUs. It reports process-level network connections, file activity, exposed network services, and other runtime context.

For GPU observability, the service reports physical GPU attributes, maps workloads to physical or virtual GPUs, and provides process-to-GPU utilization metrics and related operational data. This information connects workload behavior to the compute and GPU resources used by each workload.

Requirements

  • Operates only on BlueField-3 or later configured in DPU mode (see BlueField Modes of Operation).

  • Requires firmware version 24.35.0388 or later.

  • Supported BlueField image versions: 4.11.0 or later.

  • The DOCA Argus service container must run in privileged mode to enable full-system DMA reads.

Limitations

  • Tested against KVM-based hypervisors only.

  • Supports Linux-based OSs (bare-metal, virtualization, containers).

  • Kata Containers are supported only if NVIDIA-DPU support is enabled.

Prerequisites

  1. Configure BlueField firmware. On BlueField, configure the PF BAR register:

    dpu> mlxconfig -d /dev/mst/<mst_device> s PF_BAR2_SIZE=2 PF_BAR2_ENABLE=1
    

    Replace <mst_device> with mt41692_pciconf0 for BlueField-3.

  2. Enable IOMMU passthrough only if it is not already enabled.

    1. Edit the GRUB configuration:

      host> sudo vim /etc/default/grub
      
    2. Add the following value to GRUB_CMDLINE_LINUX_DEFAULT:

      iommu=pt <intel/amd>_iommu=on
      
    3. Apply the changes:

      • Ubuntu:

        sudo update-grub
        
      • CentOS or RHEL:

        sudo grub2-mkconfig -o /boot/grub2/grub.cfg
        
    4. Reboot the host.

  3. Prepare the target system. DOCA Argus automatically generates the required symbol and memory-region configuration at runtime. Complete the remaining steps only if automatic generation fails.

  4. For manual profile generation, install the required debug packages on the target:

    • Ubuntu:

      sudo tee /etc/apt/sources.list.d/ddebs.list << EOF
      deb http://ddebs.ubuntu.com/ $(lsb_release -cs) main restricted universe multiverse
      deb http://ddebs.ubuntu.com/ $(lsb_release -cs)-updates main restricted universe multiverse
      deb http://ddebs.ubuntu.com/ $(lsb_release -cs)-proposed main restricted universe multiverse
      EOF
      sudo apt install ubuntu-dbgsym-keyring
      sudo apt-get update
      sudo apt-get install linux-image-$(uname -r)-dbgsym
      
    • CentOS or RHEL:

      sudo yum install --enablerepo=base-debuginfo \
        kernel-devel-$(uname -r) \
        kernel-debuginfo-$(uname -r) \
        kernel-debuginfo-common-$(uname -m)-$(uname -r)
      
  5. Make doca_apsh_config.py available on the target using one of the following methods:

    • If DOCA is installed on the target, use /opt/mellanox/doca/tools/doca_apsh_config.py and continue to the next step.

    • Otherwise, copy the script from BlueField:

      scp <bf-user>@<bf-ip>:/opt/mellanox/doca/tools/doca_apsh_config.py /tmp/
      
  6. Download a dwarf2json release binary from volatilityfoundation/dwarf2json.

  7. Create the JSON files:

    cd /opt/mellanox/doca/tools/
    pip3 install psutil pdbparse
    python3 doca_apsh_config.py --files memregions symbols --os <windows/linux> --path <path-to-dwarf2json>
    cp /opt/mellanox/doca/tools/*.* <shared-folder>
    dpu> scp <shared-folder>/* <path-to-app-shield-binary>
    

Service Deployment

Service Configuration

Argus configuration is managed through SERVICE_CONFIG_FILE in the container YAML.

Service

  • Immediate shutdown – Terminates immediately on SIGINT or SIGTERM and skips graceful shutdown.

  • Service log level – Sets DOCA logging verbosity. The default is 50 (INFO). Supported values are 10 (DISABLE), 20 (CRITICAL), 30 (ERROR), 40 (WARNING), 50 (INFO), 60 (DEBUG), and 70 (TRACE).

  • System scanner sleep time – Sets the delay between scans. Supported units are s, m, and ms.

DOCA Argus Configuration

  • Auto Scan – Scans all available systems unless the systems section is defined.

  • Profile generation – Automatically generates the required kernel data at runtime when no prebuilt data is available. Initialization can take longer when profile generation is required.

  • Default – Defines configuration values that apply unless overridden under systems.

  • Systems – Defines the monitored systems and their overrides.

Per-system Configurations

  • Representor ID – Specifies the VU ID of the VF or PF to track.

    • PF:

      host> lspci -vv -s <PF_pci_address> | grep VU | cut -d " " -f 4
      
    • VF – Append VF<x> to the PF VU ID. For example: MT2333XZ06YAMLNXS0D0F0VF1.

  • Memory regions path – Specifies a JSON file path, or auto, for the host OS memory map.

  • OS symbol path – Specifies a JSON file path or directory, or auto.

  • OS type – Specifies Linux or Windows.

  • DMA device name – Matches the representor ID. List devices with:

    dpu> ibv_devinfo | grep 'hca_id' | awk '{print $2}'
    
  • Service log level – Overrides the service logging verbosity.

  • SDK log level – Sets SDK logging verbosity.

  • Limits – Sets maximum values for string length, processes, file descriptors, threads, virtual memory areas, and kernel modules.

  • Events

    • Container filter – Includes or excludes containerized processes.

    • Container enrichment – Enriches messages from containerized processes with container and Kubernetes Pod metadata. Enabled by default.

    • SBOM – Lists SHA signatures of approved executables and libraries.

Collection

  • Events – Enables or disables each event type.

Output

  • Log events to stdout – Enables logging to standard output.

  • Log folder path – Specifies the directory for file logs.

  • Log threshold size – Rotates logs when they reach this size.

  • Log max files count – Sets the maximum number of rotated log files.

  • Telemetry address – Specifies the aggregator address.

  • Telemetry tag – Specifies the tag used by Fluent Bit.

  • Telemetry format – Specifies JSON or syslog.

  • Telemetry user data – Specifies custom metadata to include in telemetry records.

Log Types

Standard Output

Displays important service messages, including version information, successful startups, and startup failures.

Debug Log Output

Provides complete debug output, including partial event data, trace logs, and collection failures. These logs are stored in /var/log/doca_argus/.

Event Log Output

Stores the complete event log in JSON format in the configured log folder. For local storage, Linux logrotate manages log rotation. You can override the default configuration in /etc/cron.d/logrotate and /etc/logrotate.d/argus.

Telemetry Output

DOCA Argus can produce telemetry records in JSON or syslog format.

Telemetry is disabled by default. To enable it, set telemetry_address in the service configuration and ensure that telemetry_tag matches the tag in the telemetry pipeline configuration.

Fluent Bit

The DOCA Argus container page provides YAML configuration examples for Fluent Bit and Vector. Use the applicable YAML file as the starting point for your telemetry deployment.

Fluent Bit runs independently from the DOCA Argus service. To run Fluent Bit locally on the DPU, use an input configuration similar to the following:

[INPUT]
    Name                  tcp
    Tag                   <your_preferred_tag>
    Listen                0.0.0.0
    Port                  24224
    Format                json

For Splunk, add the following encapsulation filter:

[FILTER]
    Name                  nest
    Match                 *
    Operation             nest
    Wildcard              *
    Nest_under            event

The following example forwards telemetry to Elasticsearch:

[INPUT]
    Name                  tcp
    Tag                   elastic_forward_input
    Listen                0.0.0.0
    Port                  24224
    Format                json

[SERVICE]
    Log_Level             info

[OUTPUT]
    Name                  es
    Match                 *
    Host                  <elasticsearch_ip>
    Port                  <elasticsearch_port>
    Index                 argus
    Suppress_Type_Name    On
    Log_Level             info

Run Fluent Bit with the configuration:

docker run --rm --net=host -v <path_to_fluentbit_conf_file>:/fluent-bit/etc/fluent-bit.conf --name fluent_bit -it fluent/fluent-bit

For additional output plugins, see the Fluent Bit manual.

Vector

Vector is an observability data pipeline that can receive DOCA Argus telemetry over TCP, decode JSON records, and forward them to supported destinations such as Elasticsearch. Vector can run independently from the DOCA Argus service or as a sidecar container in the same Kubernetes Pod.

Set telemetry_address to the Vector listener address, such as 127.0.0.1:24224, and set telemetry_format to json. The following configuration receives JSON telemetry and forwards it to Elasticsearch:

YAML
data_dir: /vector-data-dir

sources:
  tcp_json_in:
    type: socket
    mode: tcp
    address: "127.0.0.1:24224"
    decoding:
      codec: json

sinks:
  elasticsearch_out:
    type: elasticsearch
    inputs: ["tcp_json_in"]
    endpoints:
      - "http://<elasticsearch_ip>:<elasticsearch_port>"
    bulk:
      index: "argus"

Start Vector with the configuration file:

vector --config /etc/vector/vector.yaml

For Kubernetes deployments, Vector can run alongside the DOCA Argus container and share a configuration volume. DOCA Argus sends telemetry to 127.0.0.1:24224, and Vector listens on the same Pod network and forwards records to the configured sink.

YAML
containers:
  - name: vector
    image: timberio/vector:0.43.1-alpine
    imagePullPolicy: IfNotPresent
    args: ["--config", "/etc/vector/vector.yaml"]
    volumeMounts:
      - mountPath: /etc/vector
        name: conf-vector-config

Ensure that the Vector configuration volume is populated before the Vector container starts. For additional source, transform, and sink options, see the Vector documentation.

Reported Activities

Naming Conventions

The message schema uses the following naming conventions:

  • Parameter names use lowercase letters.

  • Names are explicit.

  • Underscores (_) separate words.

  • Parameter names for measurements include the unit, such as average_packet_size_bytes.

  • Enum values use uppercase letters and begin with a letter.

  • Path values use Linux forward slashes (/) to avoid escaping. For example: /Users/askywalker.

  • Timestamps use ISO 8601 format: YYYY-MM-DDTHH:MM:SS.nnnnnnnnn.

  • Empty fields use null.

Message Type

Raw activities are collected from host memory and used to describe the operational state of a workload. The policy engine filters irrelevant raw activity and reports meaningful data. A raw activity that matches one or more policy rules can be reported as an event or alert.

  • Event – One or more meaningful activities that describe the recorded state and provide situational awareness.

  • Alert – One or more meaningful activities that indicate a threat or impact requiring investigation or response.

  • System activity – Information about the operational state of the DOCA Argus service.

Message Structure

Every reported activity includes common message metadata, BlueField system information, workload information, and activity-specific data.

Schema

Parameter

Type

Parent Object

Description

message_header

object

Root object containing the message metadata.

vendor_name

enum

message_header

Vendor name. Value: NVIDIA.

product_name

enum

message_header

Product name. Value: DOCA_ARGUS.

product_version

string

message_header

Product version.

message_type

enum

message_header

One of EVENT, ALERT, or SYSTEM_ACTIVITY.

severity

enum

message_header

One of INFO, ERROR, WARNING, MEDIUM, HIGH, or CRITICAL.

schema_version

string

message_header

Message schema version.

message_id

string

message_header

Unique message identifier.

occurred_message_time_iso_8601_ns

string

message_header

Timestamp when the message occurred.

message_timezone

string

message_header

Time zone of the message origin.

user_data

string

message_header

Configured user data included in every message.

bluefield_system_information

object

message_header

Information about the BlueField system.

bluefield_networking_interfaces

array

bluefield_system_information

Configured BlueField interfaces, including names, IP addresses, and MAC addresses.

bluefield_network_interface_name

string

bluefield_networking_interfaces

Interface name.

bluefield_network_interface_mac_address

string

bluefield_networking_interfaces

Interface MAC address.

bluefield_network_interface_ipv4_address

string or array

bluefield_networking_interfaces

IPv4 addresses associated with the interface.

bluefield_network_interface_ipv6_address

string or array

bluefield_networking_interfaces

IPv6 addresses associated with the interface.

workload_information

object

message_header

Information about the monitored workload.

unique_identifier

string

workload_information

Workload identifier. This value is the configured system name or the VUID for automatically scanned systems.

os_version

string

workload_information

Workload OS version.

boot_uuid

string

workload_information

Unique identifier for the current kernel boot.

hostname

string

workload_information

Workload hostname. This value is not refreshed until DOCA Argus restarts.

workload_networking_interfaces

array

workload_information

Workload interfaces, including names, IP addresses, and MAC addresses.

workload_network_interface_name

string

workload_networking_interfaces

Interface name.

workload_network_interface_mac_address

string

workload_networking_interfaces

Interface MAC address.

workload_network_interface_ipv4_address

string or array

workload_networking_interfaces

IPv4 addresses associated with the interface.

workload_network_interface_ipv6_address

string or array

workload_networking_interfaces

IPv6 addresses associated with the interface.

container_context

object

workload_information

Container and Kubernetes context when container enrichment is available.

container_id

string

container_context

Unique container identifier.

container_name

string

container_context

Container name.

image_name

string

container_context

Container image name.

image_digest

string

container_context

SHA-256 digest that identifies the container image build.

image_manifest_digest

string

container_context

SHA-256 digest of the container image manifest.

pod_name

string

container_context

Name of the Kubernetes Pod containing the container.

pod_uid

string

container_context

Unique identifier of the Kubernetes Pod.

pod_ip_address

string

container_context

IP address of the Kubernetes Pod.

enrichment_status

enum

container_context

complete or partial; indicates whether context collection completed.

activity_data

object

message_header

Activity-specific information.

name

string

activity_data

Name of the event, alert, or system activity.

<details>

object

activity_data

Fields specific to the reported activity.

Example JSON Message

The following example illustrates the common message structure. Activity-specific fields vary by activity name.

JSON
{
  "vendor_name": "NVIDIA",
  "product_name": "DOCA_ARGUS",
  "product_version": "<version>",
  "message_type": "<EVENT | ALERT | SYSTEM_ACTIVITY>",
  "severity": "<INFO | ERROR | WARNING | MEDIUM | HIGH | CRITICAL>",
  "schema_version": "1.0",
  "message_id": "<unique_message_id>",
  "occurred_message_time_iso_8601_ns": "2024-10-31T17:20:10.123456789+02:00",
  "message_timezone": "UTC",
  "user_data": "<string>",
  "bluefield_system_information": {
    "bluefield_networking_interfaces": []
  },
  "workload_information": {
    "unique_identifier": "<identifier>",
    "os_version": "Linux kernel <version>",
    "boot_uuid": "<uuid>",
    "hostname": "<hostname>",
    "workload_networking_interfaces": [],
    "container_context": {
      "container_id": "<container_id>",
      "container_name": "<container_name>",
      "image_name": "<image_name>",
      "image_digest": "sha256:<digest>",
      "image_manifest_digest": "sha256:<digest>",
      "pod_name": "<pod_name>",
      "pod_uid": "<pod_uid>",
      "pod_ip_address": "<pod_ip_address>",
      "enrichment_status": "<complete | partial>"
    }
  },
  "activity_data": {
    "name": "<activity_name>",
    "<activity_details>": {}
  }
}

Alerts, Events, and System Activity Messages

This section is the reference for the messages that DOCA Argus can generate. The activity name is the literal value reported in activity_data.name. For definitions of the data objects included with each message, see Activity Data Reference.

Events and Alerts

Bash Shell

Message type

Severity

Activity name

Activity data

Description

EVENT

INFO

Shell Command Executed

Process; Bash shell command

Reports one or more Bash commands that were executed.

ALERT

HIGH

Shell History Cleared

Process; Bash shell command

Reports that the Bash shell history was cleared.

ALERT

HIGH

Shell History Disabled

Process; Bash shell command

Reports that Bash shell history was disabled.

Only the bash shell is supported.

Containers

Message type

Severity

Activity name

Activity data

Description

EVENT

INFO

Container Started

Process

Reports that a container instance started.

EVENT

INFO

Container Terminated

Process

Reports that a container instance terminated.

When container enrichment is enabled, container and Kubernetes metadata is reported in workload_information.container_context. See Message Structure.

File Descriptors

Message type

Severity

Activity name

Activity data

Description

EVENT

INFO

File Descriptor Open

Process; File descriptor

Reports that a file descriptor was opened.

EVENT

INFO

File Descriptor Close

Process; File descriptor

Reports that a file descriptor was closed.

ALERT

MEDIUM

File Descriptor File Content Change

Process; File descriptor

Reports that a regular-file descriptor opened with write permissions was closed and the file content might have changed.

GPU Telemetry

Message type

Severity

Activity name

Activity data

Description

EVENT

INFO

GPU Identity

GPU telemetry

Reports the make and model of each GPU on the AI node. By default, DOCA Argus generates one event per GPU every minute.

EVENT

INFO

GPU Metrics

GPU telemetry

Reports operational telemetry for each GPU. By default, DOCA Argus generates one event per GPU every second.

EVENT

INFO

GPU Topology

GPU telemetry

Reports how GPUs and other devices are connected. By default, DOCA Argus generates one event every minute.

Kernel Modules

Message type

Severity

Activity name

Activity data

Description

EVENT

INFO

Kernel Module Changed

Kernel module

Reports a change to the parameters of a loaded kernel module.

EVENT

INFO

Kernel Module Loaded

Kernel module

Reports loaded kernel modules during initialization and each newly loaded kernel module.

EVENT

INFO

Kernel Module Unloaded

Kernel module

Reports that a kernel module was unloaded.

Network Connections

Message type

Severity

Activity name

Activity data

Description

EVENT

INFO

Network Connection Created

Process; Network connection; File descriptor; Thread

Reports that a TCP connection was created.

EVENT

INFO

Network Connection Terminated

Process; Network connection; File descriptor; Thread

Reports that a TCP connection terminated.

ALERT

LOW

TCP Connection Excessive Data

Process; Network connection; File descriptor; Thread

Reports that incoming or outgoing data on a TCP connection exceeded its configured threshold. Incoming and outgoing thresholds are configured separately.

ALERT

LOW

TCP Long Lasting Connection

Process; Network connection; File descriptor; Thread

Reports that the duration of a TCP connection exceeded its configured threshold.

EVENT

INFO

TCP Network Connection State Change

Process; Network connection; File descriptor; Thread

Reports a TCP state change, such as SYN_SENT or SYN_RECEIVED.

EVENT

INFO

TCP Network Connections Status

Process; Network connection; File descriptor; Thread

Periodically reports open TCP connections for each process, including packet and byte counts. Disabled by default.

ALERT

HIGH

Reverse Shell Detected

Process; Network connection; File descriptor; Thread

Reports a process whose standard input is redirected to a remotely connected socket.

Process Memory

Message type

Severity

Activity name

Activity data

Description

EVENT

INFO

Process Memory Created

Process; Process memory

Reports that a virtual memory area, such as a heap, stack, or executable area, was created. Disabled by default.

EVENT

INFO

Process Memory Terminated

Process; Process memory

Reports that a virtual memory area is no longer present. Disabled by default.

EVENT

WARNING

New Executable Anonymous Memory Mapped

Process; Process memory

Reports that an executable anonymous memory area was mapped.

ALERT

MEDIUM

Executable Permissions Added

Process; Process memory

Reports that executable permissions were added to a memory area.

ALERT

MEDIUM

Executable Permissions Removed

Process; Process memory

Reports that executable permissions were removed from a memory area.

EVENT

INFO

New File Mapped

Process; Process memory; Runtime manifest

Reports that a file was mapped into process memory.

EVENT

INFO

File Unmapped

Process; Process memory

Reports that a memory-mapped file was unmapped.

Processes

Message type

Severity

Activity name

Activity data

Description

EVENT

INFO

Process Created

Process

Reports that a process was created.

EVENT

INFO

Process Terminated

Process

Reports that a process terminated.

EVENT

WARNING

Process Zombie

Process

Reports a process in the zombie state.

ALERT

HIGH

Process Hidden

Process

Reports a process in a hidden state.

Runtime Manifest

Message type

Severity

Activity name

Activity data

Description

ALERT

HIGH

Foreign Binary Executed

Process; Process memory; Runtime manifest

Reports execution of a binary that was not included in the original container image or that differs from the original binary.

ALERT

HIGH

Binary Executed Not as Intended

Process; Process memory; Runtime manifest; Expected behavior

Reports execution of an original-image binary with command-line arguments or from a path that does not match its expected behavior.

ALERT

HIGH

Foreign Binary Executed File Size Mismatch

Process; Process memory; Runtime manifest; Expected behavior

Reports that an executed binary differs in size from the corresponding binary in the original container image.

ALERT

HIGH

Foreign Library Loaded

Process; Process memory; Runtime manifest

Reports loading of a library that was not included in the original container image or that differs from the original library.

ALERT

HIGH

Foreign Library Loaded File Size Mismatch

Process; Process memory; Runtime manifest; Expected behavior

Reports that a loaded library differs in size from the corresponding library in the original container image.

Threads

Message type

Severity

Activity name

Activity data

Description

EVENT

INFO

Thread Created

Process; Thread

Reports that a thread was created.

EVENT

INFO

Thread Terminated

Process; Thread

Reports that a thread terminated.

System Activity Messages

The following messages use the SYSTEM_ACTIVITY message type and report the operational state of the DOCA Argus service.

Service Lifecycle

Severity

Activity name

Description

INFO

Service Initialization Started

The DOCA Argus initialization stage started.

INFO

Service Initialization Successful

The DOCA Argus initialization stage completed successfully.

ERROR

Service Initialization Failed

DOCA Argus initialization failed.

ERROR

Service Runtime Failure

A critical internal service error occurred, and DOCA Argus is offline.

INFO

Service Gracefully Shutdown

DOCA Argus shut down gracefully after a user request.

Host Initialization and OS Discovery

Severity

Activity name

Description

INFO

Host Initialization Started

Workload detection started.

INFO

Host Initialization Successful

Workload detection completed successfully.

ERROR

Host Initialization Failed

Workload detection failed.

INFO

OS Identifier Discovery Extended

Workload OS discovery is taking longer than expected.

INFO

OS Identifier Found

DOCA Argus detected the workload OS.

ERROR

Unable to Determine Target OS

DOCA Argus could not detect the workload OS.

OS Profile Processing

Severity

Activity name

Description

INFO

Load Memory Regions Failed

DOCA Argus failed to load memory-region information.

INFO

Load Memory Regions Successful

DOCA Argus loaded memory-region information.

INFO

Loading Profile Candidate

DOCA Argus identified an OS profile candidate.

ERROR

No Matching Profile Found

No matching OS profile was found.

ERROR

Profile Parsing Failed

DOCA Argus could not parse an OS profile.

INFO

Profile Verification Successful

DOCA Argus initialized successfully with the selected OS profile.

ERROR

Profile Verification Failed

Verification of an OS profile failed. DOCA Argus continues with subsequent profile candidates.

Resource Limits

Severity

Activity name

Description

MEDIUM

File Descriptor Limit Reached

The configured file descriptor limit was reached.

MEDIUM

Kernel Module Limit Reached

The configured kernel module limit was reached.

MEDIUM

Process Limit Reached

The configured process limit was reached.

MEDIUM

Process Memory Limit Reached

The configured virtual memory area limit was reached.

MEDIUM

Threads Limit Reached

The configured thread limit was reached.

Configuration and Data Collection

Severity

Activity name

Description

ERROR

Details Gathering Failed

DOCA Argus failed to collect required information.

ERROR

Invalid SBOM Configuration File

The SBOM configuration file is invalid.

ERROR

Invalid SBOM Configuration Folder

The configured SBOM folder is invalid.

Activity Data Reference

The activity_data object contains information specific to the reported event, alert, or system activity. The fields included in a message depend on its activity name. See Alerts, Events, and System Activity Messages for the data objects associated with each message.

Bash Shell Command Data

Object: shell_command_details

Attribute

Description

shell_command_execution_history

JSON array of command records. Each record contains command_execution_time_iso_8601_ns and command_line.

command_execution_time_iso_8601_ns

Time when the command was executed, in ISO 8601 format with nanosecond precision.

command_line

Executed command line.

Container Context

Container and Kubernetes metadata is reported in workload_information.container_context, not in a separate activity-data object. See Message Structure.

File Descriptor Data

Object: file_descriptor_details

Attribute

Description

file_descriptor_index

File descriptor identifier.

file_descriptor_name

File descriptor name.

file_descriptor_file_type

File type, such as a socket, regular file, or pipe.

file_descriptor_file_mode

Access mode and status flags, such as READ_WRITE or NON_BLOCKING.

file_descriptor_inode_number

Identifier of the inode associated with the file descriptor.

file_descriptor_inode_device_identifier

Major and minor device numbers identifying the file system that contains the inode.

file_descriptor_inode_permissions

File permissions.

file_descriptor_inode_uid

User ID of the file owner.

file_descriptor_inode_gid

Group ID of the file owner.

file_descriptor_inode_size_bytes

File size, in bytes.

file_descriptor_inode_deleted

Indicates whether the file was deleted.

file_descriptor_inode_hash_sha1

SHA-1 hash of the file. Calculated only for File Descriptor File Content Change alerts.

file_descriptor_inode_hash_sha256

SHA-256 hash of the file. Calculated only for File Descriptor File Content Change alerts.

file_descriptor_inode_hash_md5

MD5 hash of the file. Calculated only for File Descriptor File Content Change alerts.

file_descriptor_thread_id_array

Identifiers of threads that use the file descriptor.

file_descriptor_inode_change_time_iso_8601_ns

Time when the inode metadata last changed, in ISO 8601 format with nanosecond precision.

file_descriptor_inode_modify_time_iso_8601_ns

Time when the file content last changed, in ISO 8601 format with nanosecond precision.

file_descriptor_inode_access_time_iso_8601_ns

Time when the file content was last accessed, in ISO 8601 format with nanosecond precision.

GPU Telemetry Data

Field-level definitions for GPU telemetry messages are not currently documented in this section.

Kernel Module Data

Object: kernel_module_details

Attribute

Description

kernel_module_name

Name registered with the Linux kernel.

kernel_module_size

Size of the loaded module in memory, in bytes.

kernel_module_state

Operational state, such as loaded, live, or unloading.

kernel_module_address

Kernel virtual memory address at which the module is loaded.

kernel_module_parameters

Module parameters and their current values.

kernel_module_used_by

Modules or kernel subsystems that depend on or reference the module, including the reference count when available.

kernel_module_taints

Linux kernel taint flags associated with the module.

kernel_module_source

Origin of the module, such as its file path, package, or provider.

Network Connection Data

Object: network_connection_details

Attribute

Description

file_descriptor_id

Identifier of the file descriptor associated with the socket.

connection_state

TCP connection state.

protocol

Network protocol.

address_family

Address family that defines how the kernel interprets the network address.

local_address

IP address of the local endpoint.

local_port

Port of the local endpoint.

peer_address

IP address of the remote endpoint.

peer_port

Port of the remote endpoint.

tcp_bytes_in

Number of data bytes received.

tcp_bytes_out

Number of data bytes sent.

tcp_segments_in

Number of TCP segments received.

tcp_segments_out

Number of TCP segments sent.

workload_network_interface_name

Workload interface name.

workload_network_interface_mac_address

Workload interface MAC address.

workload_network_interface_ipv4_address

IPv4 addresses associated with the workload interface.

workload_network_interface_ipv6_address

IPv6 addresses associated with the workload interface.

tcp_connection_creation_time_iso_8601_ns

Time when the connection was first observed, in ISO 8601 format with nanosecond precision.

tcp_connection_overall_duration_ns

Total connection duration, in nanoseconds.

tcp_average_bytes_in

Average number of bytes received per packet.

tcp_average_bytes_out

Average number of bytes sent per packet.

Process Data

Object: process_details

Attribute

Description

process_id

Unique process identifier.

process_executable_path

Full path of the executable file.

process_name

Name of the executable file.

process_self_exec_id

Thread-group change indicator that increments on exec calls.

process_parent_process_id

Identifier of the parent process.

process_cpu_clock_cycles

Number of CPU clock cycles consumed by the process.

process_real_group_id

Real group ID of the process owner.

process_real_user_id

Real user ID of the process owner.

process_effective_group_id

Effective group ID of the process owner.

process_effective_user_id

Effective user ID of the process owner.

process_command_line_arguments

Command-line arguments used to start the process.

process_creation_time_iso_8601_ns

Process creation time, in ISO 8601 format with nanosecond precision.

process_state

Current process state.

process_pid_namespace

Process ID namespace.

process_mount_points_namespace

Mount namespace.

process_network_namespace

Network namespace.

process_hash_sha256

SHA-256 hash of the executable file.

process_hash_sha1

SHA-1 hash of the executable file.

process_hash_md5

MD5 hash of the executable file.

process_file_size_bytes

Executable file size, in bytes.

process_current_working_directory

Working directory from which the process was started.

process_container_id

Container identifier when the process belongs to a container.

Process Memory Data

Object: process_memory_details

Attribute

Description

process_id

Identifier of the associated process.

virtual_memory_area_start_address

Start address of the virtual memory area.

virtual_memory_area_end_address

End address of the virtual memory area.

memory_permissions

Permissions assigned to the virtual memory area.

is_main_process_executable

Indicates whether the virtual memory area belongs to the process executable.

file_path

Full path of the file associated with the virtual memory area.

file_name

Name of the file associated with the virtual memory area.

Runtime Manifest Data

Object: process_attestation_details

Attribute

Description

elf_file_inode_number

Inode number of the ELF file.

elf_file_name

Name of the ELF file.

elf_file_folder_path

Directory containing the ELF file.

elf_file_hash_sha256

SHA-256 hash of the ELF file.

elf_file_hash_sha1

SHA-1 hash of the ELF file.

elf_file_size_bytes

ELF file size, in bytes.

is_main_process_executable

Indicates whether the file is the main executable for the process.

elf_file_type

ELF file type.

elf_file_hash_md5

MD5 hash of the ELF file.

Expected Behavior Data

Object: expected_behavior

The following fields are included with Binary Executed Not as Intended, Foreign Binary Executed File Size Mismatch, and Foreign Library Loaded File Size Mismatch alerts.

Attribute

Description

process_hash_sha256

Expected SHA-256 hash of the executable or library.

process_command_line_arguments

Expected command-line arguments.

process_folder_path

Expected directory of the executable or library.

process_name

Expected name of the executable or library.

process_file_size_bytes

Expected file size, in bytes.

Thread Data

Object: thread_details

Attribute

Description

thread_id

Unique thread identifier.

thread_self_exec_id

Thread-group change indicator that increments on exec calls.

thread_exit_state

Thread exit state.

Last updated: