When the supply chain hits a sour note

Kennedy Toomey (Application Security Researcher and Advocate · Data Dog)

BSidesSF 2026 · Day 1 · AMC Theatre 10

Overview

In this insightful talk, "When the supply chain hits a sour note," Kennedy Toomey, an Application Security Researcher and Advocate at DataDog, delves into the escalating threat of software supply chain attacks. Toomey leverages a unique and engaging karaoke-themed presentation style to highlight the critical challenges organizations face when their trusted dependencies become compromised. The talk provides a stark look at recent high-profile incidents, emphasizing their frequency, sophistication, and the widespread impact they can have across the software ecosystem.

Watch on YouTube

Key moments

  1. 0:30 Introduction: The blindly trusted npm package
  2. 1:50 Overview of recent real-world supply chain attacks
  3. 4:00 Challenges of responding to supply chain attacks
  4. 5:30 Assigning clear responsibilities during incidents: Bystander effect
  5. 6:45 Fostering team collaboration and leadership support
  6. 8:10 Reducing attack surface with security practices

When the supply chain hits a sour note

Speakers: Kennedy Toomey, Application Security Researcher and Advocate, DataDog

Conference: BSides SF

YouTube: https://www.youtube.com/watch?v=lSMc8cMgvqY

Overview

In this insightful talk, "When the supply chain hits a sour note," Kennedy Toomey, an Application Security Researcher and Advocate at DataDog, delves into the escalating threat of software supply chain attacks. Toomey leverages a unique and engaging karaoke-themed presentation style to highlight the critical challenges organizations face when their trusted dependencies become compromised. The talk provides a stark look at recent high-profile incidents, emphasizing their frequency, sophistication, and the widespread impact they can have across the software ecosystem.

Toomey underscores that these incidents are no longer rare occurrences but a persistent and evolving threat, demanding robust preparation and rapid response capabilities. She dissects the anatomy of several notable attacks, revealing how seemingly innocuous package updates or workflow injections can lead to credential harvesting, crypto theft, and widespread system compromise. Beyond the technical details, Toomey emphasizes the human element of incident response, advocating for clear communication, defined roles, and a supportive team environment to navigate the high-pressure demands of a security breach.

The talk is crucial for anyone involved in software development, DevOps, or security, as it outlines not just the nature of the threat but also actionable strategies for both proactive defense and effective incident management. Toomey's presentation serves as a call to action for organizations to move beyond reactive measures, fostering a culture of preparedness, continuous improvement, and cross-functional collaboration to mitigate the "sour notes" that supply chain attacks can introduce into their operations.

Background

▶ Watch: Introduction: The blindly trusted npm package (0:30)

The landscape of software development has been profoundly shaped by the reliance on third-party libraries and open-source components. While this modular approach accelerates innovation and efficiency, it simultaneously introduces a significant attack surface: the software supply chain. As Kennedy Toomey highlights, the latter half of 2022 witnessed a dramatic surge in these attacks, with new incidents emerging every few days or weeks, underscoring a critical vulnerability in modern software ecosystems. This heightened activity necessitated a re-evaluation of how organizations perceive and defend against threats originating from upstream dependencies.

Toomey specifically references several prominent incidents that illustrate the diverse tactics and widespread impact of these attacks:

  1. Singularity (Late August 2022): This attack involved the injection of a malicious script into a vulnerable GitHub Actions workflow. The script was designed for credential harvesting, ultimately leading to the exposure of thousands of secrets. This incident highlighted the often-overlooked attack vector of CI/CD pipelines and the sensitive information they handle.
  2. npm Maintainer Phishing (A week and a half after Singularity): Threat actors directly targeted an npm package maintainer through a phishing email. Once access was gained, malicious code was injected into a widely used npm package, turning it into a crypto stealer. Despite being downloaded over 2.5 million times, the actual financial impact was fortunately minimal, with only about $500 stolen, largely due to rapid detection and remediation efforts. This incident showcased the human element as a critical vulnerability in the supply chain, where social engineering can compromise trusted sources.
  3. Shy Halude (Following Singularity): This sophisticated attack demonstrated the concept of chained attacks. The perpetrators leveraged unrotated tokens exfiltrated during the initial Singularity incident. They then deployed a self-replicating worm that backdoored nearly 800 unique npm packages and affected over 500 GitHub users. The consequences were severe, including the exfiltration of secrets and the exposure of private repositories. Shy Halude served as a stark reminder that a single breach can have cascading effects, enabling subsequent, more widespread compromises if initial indicators are not fully addressed.

These incidents collectively underscore the complex nature of supply chain vulnerabilities. They can manifest through transitive dependencies, where a seemingly benign package relies on another, which in turn relies on a malicious one, creating a hidden chain of compromise. Furthermore, chained attacks, as seen with Singularity leading to Shy Halude, demonstrate how initial breaches can be leveraged to mount subsequent, more damaging operations. The expanding attack surface, coupled with the difficulty of tracking every dependency, creates a challenging environment for defenders. Toomey also points out the unfortunate timing of these attacks, often occurring at inconvenient hours, exacerbating the stress and urgency of incident response. This "manic Monday" scenario emphasizes the critical need for pre-established plans, up-to-date Software Bill of Materials (SBOMs), and clear communication channels to effectively determine impact and coordinate remediation.

Key Findings

▶ Watch: Challenges of responding to supply chain attacks (4:00)

Kennedy Toomey’s presentation distills several critical findings regarding the nature of software supply chain attacks and the imperatives for organizational defense:

  1. Ubiquitous and Evolving Threat: Supply chain attacks are no longer theoretical or infrequent. The rapid succession of incidents like Singularity, the npm maintainer phishing, and Shy Halude demonstrates their increasing frequency, sophistication, and adaptability. Attackers are exploiting diverse vectors, from CI/CD pipelines and package registries to human vulnerabilities like phishing.
  2. Chained and Transitive Exploitation: The concept of chained attacks (e.g., Singularity tokens enabling Shy Halude) and transitive dependencies significantly amplifies the risk. A single compromised component or credential can lead to a cascade of breaches across an organization's entire software estate, making the attack surface incredibly difficult to map and secure comprehensively.
  3. Proactive Defenses are Paramount: Reactive measures alone are insufficient. Toomey emphasizes the necessity of proactive security practices such as least privilege, defense-in-depth, and the use of Multi-Factor Authentication (MFA). The adoption of fine-grain access tokens over broader Personal Access Tokens (PATs) is highlighted as a critical step to limit the blast radius of compromised credentials.
  4. Emerging Technical Mitigations: The security community is developing new mechanisms to counter these threats. The concept of minimum package age (or "cool down" periods) in package managers like yarn, pnpm, and Dependabot, allows a grace period (e.g., 7 days) before automatic upgrades. This provides a crucial window for security researchers and automated tools to detect and flag malicious versions before widespread adoption.
  5. Organizational Preparedness is Non-Negotiable: Effective incident response is not just a technical challenge but an organizational one. Key findings include:
  • Clear Responsibilities: The "bystander effect" can cripple response efforts; explicit assignment of tasks is vital.
  • Cross-Functional Collaboration: Security, developers, and DevOps engineers must function as a unified team, with prior discussions and training to ensure everyone understands their roles.
  • Leadership Buy-in: Leadership must recognize the priority of incident response, enabling teams to pause regular work and dedicate resources to mitigate the attack.
  • Structured Post-Incident Processes: Retrospectives (post-mortems), comprehensive documentation (what, who, how, result), templated communications for various stakeholders (leadership, engineers, customers), and the creation of Standard Operating Procedures (SOPs) are essential for continuous improvement and future readiness.
  1. Focus on Team Well-being: Incidents are high-stress, exhausting events. Toomey stresses the importance of checking in on team members, acknowledging their efforts, and providing opportunities for decompression and appreciation. This includes offering flexible time off, team social events, and even practical support like food delivery, recognizing the significant personal toll such events can take.

These findings collectively paint a picture of a security landscape where technical defenses must be coupled with robust organizational processes and a strong emphasis on team resilience to effectively combat the relentless wave of supply chain attacks.

Technical Deep Dive

▶ Watch: Assigning clear responsibilities during incidents: Bystander effect (5:30)

Kennedy Toomey's talk provides a technical overview of recent supply chain attacks and the defensive mechanisms being developed to counter them. The incidents discussed reveal common attack vectors and the increasing sophistication of threat actors.

The Singularity attack exploited GitHub Actions workflows. GitHub Actions are a powerful CI/CD tool, allowing automation of software development workflows. In this case, attackers injected a malicious script into a vulnerable workflow. The script's objective was credential harvesting, specifically targeting secrets and tokens used within the CI/CD environment. The compromise of these credentials can grant attackers access to sensitive repositories, cloud resources, and other integrated systems, as evidenced by the thousands of leaked secrets. This highlights the critical need to secure CI/CD pipelines, validate all inputs, and rigorously review third-party actions and scripts.

The npm maintainer phishing incident targeted the human element. By compromising the account of a legitimate npm package maintainer through a phishing email, attackers gained control over a widely used package. They then injected malicious code—specifically a crypto stealer—into new versions of the package. When developers unknowingly updated to the compromised versions, the malicious payload was executed, attempting to exfiltrate cryptocurrency. This attack vector underscores the importance of strong account security for maintainers, including Multi-Factor Authentication (MFA), and the need for consumers to verify the integrity of packages, even from trusted sources.

The Shy Halude attack demonstrated a more advanced, chained attack methodology. It leveraged the unrotated tokens obtained from the earlier Singularity incident. These tokens, if not invalidated promptly after a breach, provide persistent access for attackers. Shy Halude then deployed a self-replicating worm that spread across the npm ecosystem, backdooring nearly 800 unique npm packages and affecting over 500 GitHub users. This worm's capabilities included exfiltrating secrets and exposing private repositories, showcasing the potential for a single initial compromise to escalate into widespread systemic damage through automated propagation. The self-replicating nature signifies a shift towards highly automated and scalable supply chain attacks.

To counter these threats, Toomey discusses several proactive defenses:

  1. Least Privilege and Defense-in-Depth: These foundational security principles are crucial. Least privilege ensures that users, systems, and processes only have the minimum necessary permissions to perform their functions, thereby limiting the damage if compromised. Defense-in-depth involves layering multiple security controls to provide redundancy and resilience against various attack vectors.
  2. Fine-Grain Access Tokens vs. Personal Access Tokens (PATs): Traditional Personal Access Tokens (PATs) often grant broad permissions, making them high-value targets. Fine-grain access tokens, in contrast, allow for highly specific permissions to be assigned, limiting their scope to only what is absolutely necessary. For instance, a token might only be able to read specific repositories or trigger specific workflows, significantly reducing the impact if it were to be compromised. DataDog's own experience with detecting and preventing malicious pull requests (PRs) against an open-source repository through org-wide configurations illustrates the effectiveness of pre-defined security policies and automated checks in preventing malicious code from being merged.
  3. Multi-Factor Authentication (MFA): As a fundamental security control, MFA adds an extra layer of verification beyond a password, making it significantly harder for attackers to gain unauthorized access even if they steal credentials. Toomey reiterates that MFA "will never stop being a trend" due to its effectiveness.
  4. Minimum Package Age / Cool Down: This is a relatively new and significant mitigation strategy that emerged in response to the rapid deployment of malicious package versions. Tools like yarn and pnpm (alternatives to npm in the JavaScript ecosystem), as well as GitHub's Dependabot, have implemented this feature. It allows users to set a minimum age (e.g., 7 days) that a package must reach before it is automatically upgraded or adopted. The rationale is that this "cool down" period provides a critical window for security researchers, automated scanners, or the community to detect and report malicious activity associated with a newly released package version before it becomes widely integrated into production systems. This passive detection mechanism acts as a crucial buffer against zero-day supply chain compromises.

These technical measures, from secure CI/CD practices and strong access controls to innovative package management policies, form the bedrock of a robust defense against the evolving threat landscape of software supply chain attacks.

Demo / Proof of Concept

▶ Watch: Fostering team collaboration and leadership support (6:45)

The provided transcript for "When the supply chain hits a sour note" by Kennedy Toomey does not explicitly mention or describe a live demonstration or a technical proof of concept being presented during the talk. The presentation focuses on discussing real-world incidents, outlining theoretical and practical defensive strategies, and emphasizing organizational and team-level preparedness rather than showcasing a specific tool or attack simulation.

Defensive Implications

▶ Watch: Reducing attack surface with security practices (8:10)

The insights shared by Kennedy Toomey offer a clear roadmap for organizations to bolster their defenses against the escalating threat of software supply chain attacks. The defensive implications span technical implementations, operational procedures, and cultural shifts within development and security teams.

Proactive Technical Defenses

  1. Embrace Least Privilege and Defense-in-Depth: These are not just best practices but essential architectural principles. Implement least privilege across all systems, users, and especially automated processes like CI/CD pipelines. This means ensuring that tokens, service accounts, and build systems only have the absolute minimum permissions required to perform their functions. Layer security controls (e.g., network segmentation, endpoint protection, code scanning, runtime monitoring) to create a defense-in-depth strategy that can withstand multiple points of failure.
  2. Strengthen Access Management:
  • Fine-Grain Access Tokens: Replace broad Personal Access Tokens (PATs) with fine-grain access tokens wherever possible. These tokens should be scoped to specific repositories, actions (read-only, write-only), and durations, significantly limiting the blast radius if they are compromised. Regularly review and revoke unused tokens.
  • Mandatory MFA: Enforce Multi-Factor Authentication (MFA) for all critical accounts, especially for maintainers of key open-source projects, CI/CD systems, and code repositories. This provides a crucial layer of defense against phishing and credential theft.
  1. Adopt "Minimum Package Age" Policies: Leverage features in modern package managers like yarn and pnpm, and dependency management tools like Dependabot's cool-down, to introduce a minimum package age. By configuring a waiting period (e.g., 4-7 days) before automatically incorporating new package versions, organizations create a vital window for potential malicious activity to be detected by the community or automated security tools. This acts as an early warning system against newly introduced malicious code.
  2. Secure CI/CD Pipelines: Scrutinize GitHub Actions workflows and other CI/CD configurations for vulnerabilities. Regularly audit third-party actions and scripts for integrity and ensure they adhere to security best practices. Implement rigorous input validation and ensure that secrets are handled securely, avoiding hardcoding or unnecessary exposure.
  3. Maintain Accurate SBOMs: Develop and maintain up-to-date Software Bill of Materials (SBOMs). An SBOM provides a comprehensive list of all components, libraries, and dependencies used in an application. This is critical for rapidly assessing exposure during an incident, identifying affected versions, and prioritizing remediation efforts.

Robust Incident Response and Preparedness

  1. Develop Clear Incident Response Plans (IRPs): Establish well-defined IRPs specifically tailored for supply chain incidents. These plans should outline roles, responsibilities, communication protocols, and escalation paths.
  2. Assign Clear Responsibilities and Foster Cross-Functional Teams: Counter the "bystander effect" by explicitly assigning roles and responsibilities during an incident. Promote seamless collaboration between security, development, and DevOps teams. This requires prior training and discussions to ensure everyone understands their part in the response. Leadership must also be onboard, prioritizing incident response efforts by allowing teams to temporarily pause other work.
  3. Standardize Communication: Create templates for various communication scenarios – internal updates for leadership and engineers, and external communications for customers and clients. These templates should be adaptable to convey the right level of detail to different audiences, ensuring professional and timely information dissemination during high-stress situations.
  4. Implement Post-Incident Processes:
  • Retrospectives (Post-Mortems): Conduct thorough retrospectives after every incident to identify what went well, what didn't, and what needs improvement. This feedback loop is crucial for continuous learning and strengthening future responses.
  • Comprehensive Documentation: Document every aspect of an incident: what happened, what was affected, the actions taken, the results, and who was involved. This historical record is invaluable for future analysis, compliance, and training.
  • Standard Operating Procedures (SOPs): Translate lessons learned from incidents and retrospectives into clear, actionable SOPs. These step-by-step guides for investigation, containment, and recovery ensure consistency and efficiency in future responses.
  1. Conduct Mock Incidents and Tabletop Exercises: Regularly simulate supply chain attacks through mock incidents or tabletop exercises. This allows teams to practice their IRPs, identify weaknesses in processes or communication, and train personnel in a low-stakes environment, improving muscle memory for real events.
  2. Prioritize Team Well-being: Acknowledge the immense stress and exhaustion associated with incident response. Leadership should actively check in on team members, encourage breaks, and provide opportunities for decompression and appreciation after an incident. This fosters a resilient and sustainable security culture.

By integrating these technical safeguards with robust incident response frameworks and a supportive organizational culture, defenders can significantly reduce their exposure to supply chain attacks and respond more effectively when such incidents inevitably occur.

Key Takeaways

  • Supply chain attacks are a persistent and evolving threat: Organizations must recognize the increasing frequency and sophistication of attacks like Singularity and Shy Halude, which exploit diverse vectors from CI/CD pipelines to human vulnerabilities.
  • Proactive technical controls are essential for defense-in-depth: Implementing least privilege, mandatory MFA, and especially fine-grain access tokens significantly reduces the attack surface and limits the impact of compromised credentials.
  • New mitigation strategies like "minimum package age" offer crucial detection windows: Adopting policies that introduce a delay (e.g., 7 days) before auto-upgrading packages provides time for security researchers and automated tools to identify and flag malicious versions.
  • Effective incident response hinges on clear organization and cross-functional collaboration: Establishing well-defined roles, fostering teamwork between security, development, and DevOps, and securing leadership buy-in are critical to avoid the "bystander effect" and ensure a coordinated, rapid response.
  • Post-incident processes drive continuous improvement: Thorough retrospectives, comprehensive documentation, templated communications, and the creation of Standard Operating Procedures (SOPs) are indispensable for learning from past events and strengthening future preparedness.
  • Team well-being and appreciation are vital for sustainable security: Recognizing the high-pressure and exhausting nature of incident response, leaders must prioritize checking in on team members, providing opportunities for decompression, and showing appreciation to foster resilience and prevent burnout.

About the Speaker(s)

Kennedy Toomey is an Application Security Researcher and Advocate at DataDog. Her role involves delving into security vulnerabilities and advocating for robust security practices within the software development lifecycle. Toomey brings a relatable and engaging style to her presentations, often incorporating personal anecdotes and pop culture references, such as her self-professed "terrible singing" and love for karaoke, to make complex security topics more accessible and memorable. Her expertise lies in understanding the practical implications of security threats and translating them into actionable advice for development and security teams.

Reviews

Dr. Zero (Offensive Security Researcher) — SOLID

Competent survey of 2022 supply chain incidents with decent organizational depth on incident response, but this is a BSides-level awareness talk, not research. The karaoke framing, the case study selection, and the defensive recommendations all read as solid practitioner content — nothing here will surprise anyone who's been paying attention to supply chain security.

Heather Calloway (CISO) — SOLID

A competent practitioner talk on software supply chain risk that covers the right ground — CI/CD exposure, chained attacks, token hygiene, package management controls — but stays in developer-land and never reaches institutional decision-makers. Useful reference for AppSec and DevSecOps teams; not a conversation-changer at the CISO or board level.

→ Top-rated talks at BSidesSF 2026

All talks from BSidesSF 2026