
Supply chain attackers aren’t just trying to sneak malicious code into trusted software. They seek to steal access that enables trusted software. Recently, three separate campaigns attacked npm, PyPI, and Docker Hub within 48 hours, targeting three secrets from developer environments and CI/CD pipelines, including API keys, cloud credentials, SSH keys, and tokens. This is an ongoing concern and is self-propagating, as seen in attacks such as the “Mini Shy Fuld” campaign.
This pattern should change the way security teams think about the software supply chain.
Traditionally, security has focused on shared systems such as source code repositories, CI/CD platforms, artifact registries, package managers, and cloud environments. The goal was to protect production workloads and data. We still need to focus on these areas, but it’s an incomplete picture.
Delivering modern software starts before your code even hits Git. It starts at a developer workstation, where code is written, dependencies are installed, credentials are tested, AI assistants are requested, containers are built, and trusted actions are initiated.
Developer workstations are a real part of the software supply chain. Treating these as “just” regular endpoints leaves a gap between endpoint security, identity security, application security, and supply chain governance.
Supply chain attacks have become credential harvesting activities
Recent events continue to demonstrate the same operational truth. Attackers may use poisoned packages, compromised images, dependency bots, malicious workflows, or vulnerable developer tools, but the goal again and again is access.
Events such as the TeamPCP and Shai-Hulud campaigns demonstrate that supply chain attacks are increasingly centered around credential theft. In the TeamPCP campaign, attackers used compromised packages and developer tools to collect tokens, cloud credentials, SSH keys, npm configuration files, and environment variables.
Shai-Hulud took the same pattern further, turning infected developer environments into credential collection points and exposing thousands of secrets across GitHub, cloud services, package registries, and internal systems.
It’s not just software tampering. This is the collection of credentials at a point where developers and automation already have trust.
Supply chains are exposed when attackers gain access to credentials and context to modify, publish, build, deploy, or impersonate trusted software systems. Packages modified and exposed in modern supply chain attacks persist for hours, whereas automated tools merge malicious updates in minutes.
A common thread in many recent attacks is secrecy as an initial access route or collection target.
Attacker’s path now goes through developer side context
Developer workstations are valuable because they centralize context. This often includes local repositories, .env files, shell history, SSH keys, package manager credentials and configuration, build scripts, debug logs, and browser sessions. Seeing these parts together makes it even more dangerous.
A single access token can seem limiting on its own. A token next to a Git remote, deployment script, README, cloud profile, and CI configuration tells an attacker where that token fits and what it might unlock. For example, in the Shai-Hulud 2.0 campaign, GitHub credentials made up the majority of the exposed and leaked credentials, and each credential included potential administrative access to repositories and CI workflows.
Local compromise is not just a device issue. It serves as a map for source control, cloud accounts, package publishing workflows, CI/CD systems, internal APIs, and production-adjacent infrastructure.
Developer machines centralize software distribution authority
Standard employee laptops can expose corporate data. A developer workstation may expose functionality that modifies the software. This distinction is important when considering endpoint security.
Developers often require broad access to do their jobs. They clone private repositories, authenticate to cloud services, publish packages, access staging environments, and interact with multiple internal tools. Their machines become the intersection where source code, credentials, automation, and distribution privileges come into play.
Although not all developers have access to the production environment, many have sufficient access to influence the systems that ultimately produce production results. Registry tokens can affect packages. GitHub tokens can impact your repositories and workflows. Cloud profiles can expose your infrastructure. CI/CD credentials can affect build behavior.
Boards and auditors don’t care if developers have stored sensitive information locally. The real business risk is that local exposure provides an attacker with a path into systems that build, modify, release, or manipulate software.
This shift changes the questions security teams should ask.
Can you identify which credentials can be used from developer workstations? Can you limit the value and lifetime of these credentials? Can you detect sensitive data before it enters your Git history, CI logs, tickets, artifacts, or chat? If you suspect a workstation has been compromised, can you quickly revoke and rotate access? Can you see the difference between low-impact local exposure and privileged credentials like an administrator?
These questions are between AppSec, endpoints, identity, platform, and cloud security. Whichever arrangement your organization chooses, you need to understand how developer behavior relates to your delivery system.
Automate and AI to expose thinner and faster surfaces
Automation has reduced the time between breach and impact. Dependency update bot can quickly open and merge changes. CI/CD systems can automatically run trusted workflows. Package managers can run installation scripts. AI agents and coding assistants can read files, invoke tools, generate commands, inspect output, and move context between systems.
Automation is not inherently secure, but it typically inherits trust, especially when delivered in agent form. If malicious dependency updates appear to be occurring on a daily basis, automated workflows can move forward faster than human reviewers can figure out what happened.
AI in the loop
AI-assisted development adds another handoff point. Sensitive data can be visible in prompts, terminal output, tool calls, generated code, agent memory, logs, and local configurations copied into debugging sessions. This issue is broader than whether the model provider saves prompts. An even bigger problem is that local development context flows through more semi-automated systems.
Security teams should assess AI coding risks with the same lens they use for supply chain risks. The team needs to answer the question: What sources and data can this tool read? What can it do? Where does the output go? What credentials are there nearby? And, perhaps most importantly, what trusts does the workflow inherit?
Downstream management is still important, but it’s too late
Repository scanning, branch protection, CI/CD policies, artifact signing, dependency analysis, and runtime controls remain essential. Create shared enforcement points to help teams manage software at scale.
Due to the speed of modern attacks, the issue is timing. Attackers now leverage AI-powered tools to exploit any secret within seconds of discovery.
Guardrails reduce potential exposure and blast radius. You can minimize the impact by catching sensitive data while developers edit files, prepare commits, run local commands, install dependencies, or interact with AI assistants.
Mature programs distinguish between actions that should be blocked, actions that should raise a warning, and actions that simply generate telemetry for deeper investigation. The goal is not to bury developers in friction.
Treat your workstation as the boundary of your local supply chain
A modern software supply chain doesn’t start when code is pushed. It starts with the initial combination of code, credentials, automation, and trust.
It’s time to treat your developer workstation as the boundary of your local supply chain. That perimeter includes IDEs, terminals, Git clients, package managers, container tools, cloud CLIs, local build systems, how secrets are handled, AI assistants, and automation agents. This is where an individual developer’s actions become an organization’s software delivery risk.
Source link
