Best Practices

Tracking Vendor-Supplied Binaries In Your Runtime

Vendor binaries run as root and ship without SBOMs. Continuous discovery brings them under the same governance as your own code.

Shadab Khan
Security Engineer
7 min read

Inside almost every production environment there is a quiet population of binaries that nobody on the engineering side wrote. EDR agents, observability collectors, configuration management daemons, license servers, hardware accelerated math libraries, vendor specific tooling for backup or replication, niche performance tracers. These binaries are installed by procurement decisions, deployed by platform automation, and run with broad system privileges. They are also the assets least likely to appear in any SBOM, and the most likely to be invisible to vulnerability scanning until a public incident forces a reckoning.

The 3CX, Kaseya, and SolarWinds incidents already taught the industry one version of this lesson. The version that is still under appreciated is that even uncompromised vendor binaries deserve the same inventory and governance treatment as code your engineers write. The risk is not always a deliberate compromise. Sometimes it is just an unpatched library inside a binary that nobody scans.

Why vendor binaries are uniquely hard to track

Several properties of vendor binaries make them resist traditional inventory approaches.

They arrive as opaque artifacts. Most vendor binaries ship as a single executable or a small bundle. The components inside, the third party libraries, the embedded models, the bundled scripts, are not enumerated. There is no manifest the way a npm or pip install produces.

They install via vendor installers. Vendor binaries often install themselves through their own installer logic, which sidesteps the package manager that the platform team monitors. The installer may drop files in nonstandard locations, register systemd units, and modify boot paths. The platform's normal asset signals miss the artifact.

They run with high privilege. EDR, antivirus, and container runtime agents run as root or with ring 0 access. Their failure modes affect the host's integrity. A vulnerability in such a binary is not a typical service vulnerability. It is closer to a kernel issue.

They update on vendor schedules. The cadence is not under engineering control. The vendor pushes a new version when they decide. The platform either accepts the update or holds it, and either choice creates inventory drift.

They are negotiated, not declared. The vendor relationship is owned by procurement or by a specific business owner, not by engineering. The binary's existence is documented in a contract somewhere, not in a repository. The handoff from contract to operations is where the inventory most often breaks.

Categories worth distinguishing

Not every vendor binary carries the same risk. A useful inventory distinguishes a few categories.

Privileged agents. EDR, antivirus, container runtime sidecars, host based intrusion prevention. These run with broad host privilege and have the highest blast radius if compromised.

Observability collectors. Metrics, traces, logs, profilers. Privilege varies, but they often have read access to a wide range of process state and may exfiltrate data through their normal egress.

Performance and acceleration libraries. CUDA toolkit components, hardware specific math libraries, FPGA drivers. Often privileged, often unscanned, often shipped with embedded third party code.

Application platform agents. Database replication agents, license servers, configuration management daemons. Privilege varies, but they often have privileged access to the systems they manage.

Niche developer tools. Debuggers, profilers, language specific runtime hooks. Lower privilege in production but often present on developer workstations and CI runners.

Each category has different risk and different governance requirements. The inventory should make the category visible so policy can apply differently.

Building the inventory in practice

Inventorying vendor binaries requires combining signals that are individually weak.

Filesystem fingerprinting. Walk the filesystem of representative hosts and identify executables that are not part of the base image and not produced by the company's pipelines. Hash them. Compare against a known good catalog of expected vendor artifacts. Anything new is a candidate.

Process telemetry. Observe the processes that run on hosts and pods. Cross reference them against the artifacts they were spawned from. Long lived processes that do not correspond to the company's own services are usually vendor binaries.

Package and installer logs. Where vendor binaries install via OS package managers, the logs reveal them. Where vendor binaries install via their own installers, the installer often leaves a registration record that can be queried.

Build and image inspection. Container images can be analyzed at build time to identify binaries that were added by Dockerfile RUN steps invoking vendor installers. The diff between the base image and the final image is a reliable source of vendor binary identification.

Vendor provided manifests. Some vendors now ship SBOMs with their binaries. Where available, these SBOMs are the highest quality signal. Where not, the asset record should mark the absence as a known gap and assign it to the vendor management track.

The output of this work is an inventory of vendor binaries in scope, with hash, install location, vendor, version, contract owner, and known SBOM availability per artifact.

Governance the inventory enables

Once the vendor binary inventory exists, several governance loops become feasible.

Provenance verification. Each binary's hash can be checked against the vendor's published manifests and signatures. Drift between expected and observed indicates either an update the platform missed or, in worst case, a tampering event.

Vulnerability watch. Even without an SBOM, vendor binaries can be associated with the vendor's own CVE feed, mailing list, or security bulletin. The inventory makes it possible to map a vendor advisory to the specific hosts and pods running the affected version.

Update lifecycle tracking. Updates can be tracked as transitions between known versions in the inventory. The window between a vendor publishing a fixed version and the platform deploying it is the exposure window for that asset.

Procurement accountability. Vendors that ship binaries without SBOMs, without signatures, or without timely security communication can be identified and pressured at contract renewal time. The inventory turns abstract complaints into concrete data.

Decommissioning. Vendor binaries from contracts that are no longer active should not still be running. The inventory surfaces orphaned vendor binaries that the platform team can remove.

What this looks like maturity wise

Mature programs treat vendor binaries as part of the same asset graph as everything else, rather than as a separate vendor management problem. The binary's record carries the same fields as a package or model, with the contract owner attached as an additional dimension. Findings on vendor binaries flow into the same review and remediation workflow as findings on any other component, and vendor unresponsiveness is itself a tracked metric.

Less mature programs maintain a vendor binary list as a side spreadsheet, separate from the main inventory, that is updated quarterly during vendor reviews. This works for compliance optics but does not help when an incident hits.

How Safeguard Helps

Safeguard's continuous asset discovery treats vendor binaries as first class assets in the unified graph. Hashes, install locations, vendor identity, and contract ownership are reconciled across host telemetry, image inspection, and package logs, so vendor binaries surface in the same inventory as your own code. When vendor SBOMs are available, they are ingested and linked. When they are missing, the gap is recorded as a known issue with the responsible contract owner.

Vulnerability matching extends to vendor advisories, not just public CVE feeds, so an affected vendor binary triggers a finding the moment its vendor publishes a security note. The AI-BOM does the same for vendor supplied AI components, including embedded models inside vendor agents. The MCP registry tracks vendor supplied MCP servers with the same level of detail. Continuous discovery turns vendor binaries from an invisible privileged surface into a governed, queryable, and auditable asset class.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.