Supply Chain Security
Protecting against compromise arriving through the code and tooling a project depends on.
Supply chain security addresses the risk that comes through dependencies: a package that is malicious, one that was taken over, one whose build tooling was compromised, or a build system that can be induced to do something on an attacker's behalf.
The attack surface is larger than the dependency list. It includes transitive dependencies, install scripts that execute during installation, the continuous-integration environment, and any automation that acts on content an outsider can influence.
That last one deserves particular attention, because it is where a modern hazard sits. Automation that runs an agent over externally-authored text — a dependency update's release notes, an issue description, a pull request body — has a specific exfiltration shape: the checkout step persists a credential into the working directory by default, where an unrestricted read plus any outbound request walks it out. Closing it means not persisting the credential, scoping outbound destinations to a known list, and removing any capability that sends arbitrary text to a third party. Restricting the token's permissions is not sufficient, because a workflow's permission block bounds the platform token, not a separately-minted one the agent holds. See Prompt Injection and Least Privilege.
The ordinary defenses still matter: a Lockfile, pinned versions, reviewed updates, and minimal privileges everywhere.
See also8
Secret Management
Storing, distributing, and rotating credentials without embedding them in code or history.
Systems & Tooling33 connections
Package Manager
The tool that resolves, fetches, and installs dependencies, and pins them for reproducibility.
Systems & Tooling27 connections
Code Signing
Cryptographically attesting who produced a binary, and the operating-system checks built on it.
Systems & Tooling27 connections
Silent Failure
A failure that produces no signal, so the absence of an error reads as success.
Method73 connections
Semantic Versioning
A version-numbering convention where the number communicates the kind of change.
Version Control & Delivery22 connections
Monorepo
Several packages developed in one repository with shared tooling and atomic cross-package changes.
Systems & Tooling16 connections
Commit Signing
Cryptographically signing Git commits so a commit's author can be verified rather than merely claimed, the key types used, and what a green verified badge does and does not prove.
Version Control & Delivery10 connections
GNU Privacy Guard
A free implementation of the OpenPGP standard for encrypting and signing files, email, and software releases, descended from Phil Zimmermann's PGP and known both for its importance to software distribution and for being hard to use.
Systems & Tooling7 connections
Linked from23
- Agent SandboxAgents & Language Models
Confining an agent's commands to a limited environment, so that a mistaken or hijacked action can only damage what the sandbox allows it to reach.
- Artifact RepositoryVersion Control & Delivery
The store for the built outputs of software, such as packages, container images, and binaries, so the exact thing that was tested is the exact thing that ships.
- Automated Dependency UpdatesVersion Control & Delivery
Bots that open pull requests whenever a dependency releases a new version, how they keep upgrades small and security patches fast, and how they turn into noise or a supply-chain risk when misconfigured.
- Browser ExtensionWeb Platform
Small programs that modify the browser and the pages it shows, from bookmarklets and userscripts to ad blockers, with access broad enough to make them a standing security risk.
- Build CacheVersion Control & Delivery
Reusing the outputs of build and test steps whose inputs haven't changed, keyed by a hash of those inputs, so large codebases build in minutes instead of hours.
- Caller ID AuthenticationNetworks & Distribution
Cryptographic attestation of an originating telephone number, and why spoofed calls survive it.
- Code SigningSystems & Tooling
Cryptographically attesting who produced a binary, and the operating-system checks built on it.
- Commit SigningVersion Control & Delivery
Cryptographically signing Git commits so a commit's author can be verified rather than merely claimed, the key types used, and what a green verified badge does and does not prove.
- CopyleftVersion Control & Delivery
A licensing strategy that uses copyright to require derivative works to stay open.
- Dynamic LinkingSystems & Tooling
Loading a program's libraries at run time from shared files instead of copying them into the executable, which saves space and eases patching at the cost of fragile dependencies.
- eSIMNetworks & Distribution
A SIM soldered into the device and provisioned over the air, with profiles downloaded rather than cards swapped.
- FirmwareSystems & Tooling
The software built into hardware itself, running every keyboard, drive, and charger below the operating system, hard to inspect, risky to update, and a favorite hiding place for persistent malware.
- GNU Privacy GuardSystems & Tooling
A free implementation of the OpenPGP standard for encrypting and signing files, email, and software releases, descended from Phil Zimmermann's PGP and known both for its importance to software distribution and for being hard to use.
- Least PrivilegeSystems & Tooling
Granting only the permissions actually required, so a compromise has a small ceiling.
- LockfileVersion Control & Delivery
A generated file recording the exact dependency versions an install resolved to.
- Long-Term SupportVersion Control & Delivery
A release line that receives security and bug fixes for years instead of months, letting users who value stability skip the constant upgrade treadmill.
- MonorepoSystems & Tooling
Several packages developed in one repository with shared tooling and atomic cross-package changes.
- Package ManagerSystems & Tooling
The tool that resolves, fetches, and installs dependencies, and pins them for reproducibility.
- Permissive LicenseVersion Control & Delivery
A license family that imposes little beyond attribution and a warranty disclaimer.
- Prompt InjectionAgents & Language Models
Untrusted content that reaches a model's context and is treated as instruction.
- Prototype PollutionWeb Platform
A JavaScript vulnerability where attacker-controlled keys like "__proto__" modify the prototype every object inherits from, silently adding properties everywhere, and how merge utilities and parsers let it in.
- Secret ManagementSystems & Tooling
Storing, distributing, and rotating credentials without embedding them in code or history.
- Semantic VersioningVersion Control & Delivery
A version-numbering convention where the number communicates the kind of change.