All articles

    Threat intelligence

    Software Supply Chain Attacks and How to Defend Against Them

    Written by Khalid NamraPublished: 14 August 2026Updated: 16 September 20268 min read
    Software Supply Chain Attacks and How to Defend Against Them

    In three lines

    • A modern application is mostly other people's code.
    • A software bill of materials is the foundation.
    • Typosquatting publishes a package one keystroke away from a popular one.

    A modern application is mostly other people's code. Between package registries, container base images, CI plugins and build agents, an attacker has many doors that do not require touching your own repository at all.

    Know what you actually ship

    A software bill of materials is the foundation. Without a generated, stored inventory of every direct and transitive dependency in each release, the question "are we affected by this new vulnerability?" takes days to answer — and by then the exploit is public.

    • Generate an SBOM on every build, not on request
    • Store it alongside the artefact it describes
    • Pin dependencies to exact versions and hashes

    The attack patterns worth planning for

    Typosquatting publishes a package one keystroke away from a popular one. Dependency confusion abuses resolvers that prefer a public package over your private one with the same name. Maintainer compromise takes over a legitimate account and pushes a malicious minor release. Build-system compromise is the most damaging: the source stays clean while the artefact is modified in transit.

    Harden the pipeline itself

    Treat your CI system as production infrastructure, because it holds credentials to everything. Build agents should be ephemeral, secrets should be short-lived tokens rather than static keys, and third-party CI actions should be pinned to a commit hash rather than a mutable tag.

    Signing artefacts and verifying those signatures at deployment closes the last gap: even if something is modified after the build, it will not deploy.

    Review updates like you review code

    Automatic dependency updates are good for patch velocity and bad for supply chain safety when merged unread. A reasonable compromise is automated updates with a mandatory human review of the diff for anything that touches install scripts, network calls or credentials.

    The practical takeaway

    Generate an SBOM on every build, pin and sign everything, treat CI as production, and never merge a dependency update nobody has read.

    Related RASED services

    Official references

    Written by Khalid Namra

    Founder & CEO, RASED Solutions — engineering lead of RASED Solutions

    Khalid Namra building software since 2015 and leads the engineering and security teams behind RASED Solutions in Riyadh.