Your Supply Chain Has an Identity Problem

A presentation at DevOpsDays Cairo 2026 in September 2026 in Cairo, Cairo Governorate, Egypt by Daniel "phrawzty" Maher

Slide 1

Slide 1

DEVOPSDAYS CAIRO 2026 Your supply chain has an identity problem Dan Maher — Senior Technical Advocate & Researcher

Slide 2

Slide 2

Why this matters A supply-chain incident is not (just) a tooling problem The risk surface is not new; the speed is Agents act at machine speed Sustainable DevOps means safer by default 2

Slide 3

Slide 3

whoami Dan Senior Technical Advocate & Researcher Security research Global core organiser, DevOpsDays AI-powered observability and security Ask me about the Tetris easter egg! 3

Slide 4

Slide 4

Many systems turn a trusted identity into authority too easily, too broadly, and for too long. 5

Slide 5

Slide 5

Execution context People, CI jobs and agents hold identities Dependencies run inside those contexts Malicious or merely flawed, the potential for harm is real 6

Slide 6

Slide 6

SHIFT ONE Identity and access management 7

Slide 7

Slide 7

Identity and authority 01 02 03 The maintainer’s account The CI job The laptop in front of you Upstream, on a registry you do not control Publishing on behalf of the project Right now, in this room 8

Slide 8

Slide 8

OWASP top 10 #1 #3 Broken Access Control Software Supply Chain Failures 9

Slide 9

Slide 9

INCIDENT 01 — SEPTEMBER 2025 The npm maintainer compromise debug · chalk · and more 10

Slide 10

Slide 10

Adversary-in-the-middle phishing A reverse proxy on npmjs.help A plausible two-factor-reset email The maintainer signed in for real The attacker got the live session 11

Slide 11

Slide 11

Version management did the distribution 18+ packages, published from a real account Downstream, it looked like maintenance No suspicious link; no PR to approve 12

Slide 12

Slide 12

50% of organisations pull a third-party library within a day of its release *Datadog, 2026 State of DevSecOps 13

Slide 13

Slide 13

AiTM-resistant authentication FIDO2 keys and passkeys bind to a domain A passkey for npmjs.com cannot sign in to a proxy Defeats this vector of attack 14

Slide 14

Slide 14

Automated publishing A long-lived NPM_TOKEN in CI secrets The job can read it; so can an attacker Spoiler alert: there’s no reason for a long-lived token here 15

Slide 15

Slide 15

Trusted Publishing From the PyPI community, 2023 CI presents an OIDC identity token The registry mints a token for that release Nothing standing left to steal 16

Slide 16

Slide 16

INCIDENT 02 — SEPTEMBER 2025 Shai-Hulud a self-propagating npm worm 17

Slide 17

Slide 17

Shai-Hulud was fundamentally lazy Found publish tokens on infected machines Backdoored every accessible package A later variant took cloud credentials too 18

Slide 18

Slide 18

SURPRISE! The developer laptop is now part of production. 19

Slide 19

Slide 19

What the laptop is holding Registry tokens, cloud credentials, SSH keys Broader access than most production servers It can trigger a production change 20

Slide 20

Slide 20

SCOPE AND TIME Decide which actors may act, and make their authority temporary and specific. 21

Slide 21

Slide 21

SHIFT TWO Verify continuously 22

Slide 22

Slide 22

A checksum proves integrity, not legitimacy It proves the download matches the registry A poisoned release matches just as well Nobody vouched for the contents 23

Slide 23

Slide 23

Quarantine a new release, then check it against known-bad Pinning works until you want to upgrade Quarantine new versions, check osv.dev No mirror? Use scfw at the package manager Catches what the community already found 24

Slide 24

Slide 24

Pin your GitHub Actions to a commit hash, not a version tag 4% A tag can start pointing at new code A commit hash cannot move You’re probably vulnerable right now of organisations pin every public GitHub Action *Datadog, 2026 State of DevSecOps 25

Slide 25

Slide 25

Provenance: where did this actually come from? SLSA Sigstore Supply-chain Levels for Software Artifacts Signing, without a key to guard forever Checkable metadata showing which source repository and build pipeline produced an artefact. Signs the artefact with a short-lived certificate tied to the CI identity that built it. git blame , but for the finished thing you installed. Not a private key someone has to protect indefinitely. 26

Slide 26

Slide 26

A malicious release can look legitimate Checksum matches Not in a threat database (yet) Built via a legitimate pipeline You probably pulled it already 27

Slide 27

Slide 27

INCIDENT 03 SANDWORM_MODE a new target: the AI coding environment 28

Slide 28

Slide 28

The attack was a tool description Local MCP server, wired into your editor Harmless names like lint_check, scan_dependencies Prompt injection in the description Looks legit—the linter did lint! 29

Slide 29

Slide 29

Persistence and the limits of static matching Malicious Git hooks in local repositories And in Git’s global init.templateDir A dormant code-rewrite component, disabled Changing code defeats fingerprints 30

Slide 30

Slide 30

Three controls, three different questions Provenance Threat database Runtime Where did this come from? Has someone already flagged it? Is it doing the job we expected — and nothing else? 31

Slide 31

Slide 31

A tool called lint_check should not read your SSH keys. 32

Slide 32

Slide 32

INCIDENT 04 — MARCH 2026 LiteLLM two malicious releases, quarantined in ~40 minutes 33

Slide 33

Slide 33

The pipeline handed the attacker the key The attacker compromised Trivy first LiteLLM ran Trivy in CI The action took the PyPI credential No social engineering. No guessed password 2,500+ organisations potentially exposed 34

Slide 34

Slide 34

Same scenario, different machine Trusted authority, outside its intended job An immutable pin closes that entry path Runtime gives you a second chance A tool call deserves the same scrutiny 35

Slide 35

Slide 35

REPEATED FOREVER Validate what enters the system, where it came from, and whether it behaves within the limits you set. 36

Slide 36

Slide 36

SHIFT THREE Guardrails that scale 37

Slide 37

Slide 37

Guardrails enforce the safety decisions that humans have already made. 38

Slide 38

Slide 38

INCIDENT 05 — MARCH 2026 Axios 70 million weekly downloads · live for ~3 hours 39

Slide 39

Slide 39

The simplest defence: turn off post-install hooks A script npm runs automatically on install Axios used it. Shai-Hulud used it first No need to know the attacker or the payload One less thing for people to worry about 40

Slide 40

Slide 40

Give a dependency update an observation window 8/10 You do not ship everywhere at once Make the window a week by default Time for a bad release to be pulled high-profile supply-chain attacks had exploitation windows shorter than a week *2025 analysis of ten high-profile attacks 41

Slide 41

Slide 41

You have a coding agent? Put it in a sandbox Nono: a kernel-enforced micro-sandbox gh gets a phantom credential, not your token SSH keys are off the filesystem entirely The agent cannot talk past the kernel 42

Slide 42

Slide 42

Automate the routine Block the build, open the fix, quarantine Route real judgment to a person People set the boundaries and the exceptions The system enforces them every time 43

Slide 43

Slide 43

SUSTAINABLE SECURITY Humans set the boundaries. Systems enforce them. 44

Slide 44

Slide 44

Incident round-up npm maintainer Lookalike login page (AiTM) Shai-Hulud Long-lived standing credentials SANDWORM_MODE Poisoned tool descriptions LiteLLM Compromised security scanner Axios Maintainer’s laptop as launchpad 45

Slide 45

Slide 45

An actor operating with trusted authority, crossing a boundary it should not have been able to. That is not five problems. It is one problem, five times. 46

Slide 46

Slide 46

Three questions to take home 01 02 03 Authority Verification Guardrails Phishing-resistant authentication, and temporary, specific credentials. Provenance, known-bad checks, and runtime policy. Block unnecessary mechanisms, create observation windows, and sandbox agent access. 47

Slide 47

Slide 47

We are who society has implicitly agreed to trust with this We need to do a better job of earning it 48

Slide 48

Slide 48

Thank you Dan Maher — Senior Technical Advocate & Researcher