ataques à Supply chain em alta. As deteções de malware de código aberto aumentaram 73% em 2025. No último ano, os pacotes «debug» e «chalk» foram alvo de backdoors, a ação «tj-actions» no GitHub foi comprometida e introduziu código malicioso em milhares de pipelines, e a conta do mantenedor do «axios» foi sequestrada e utilizada para distribuir um RAT. Lançamentos maliciosos afetaram também o Zapier, os domínios ENS, o PostHog e a CLI do Bitwarden.
Cada um destes ataques poderia ter sido evitado com os controlos que já estavam disponíveis na altura. As técnicas dos atacantes funcionaram porque a maioria das equipas não estava a utilizar as defesas adequadas na camada de instalação, nos seus pipelines ou nos computadores dos programadores.
Esta lista de verificação explica como funcionam essas defesas. Para as equipas de engenharia que pretendem antecipar-se aos ataques à Supply chain, isto é para vocês.
TL;DR
A lista de verificação de segurança da cadeia de abastecimento é um conjunto prático e hierarquizado de tarefas destinadas a reforçar a segurança da sua pilha contra a atual geração de ataques à Supply chain, classificados como críticos, elevados ou médios, para que saiba onde se deve concentrar em primeiro lugar. Abrange a gestão de dependências, os controlos de acesso e identidade, o reforço de container de CI/CD, container , o bloqueio do ambiente de desenvolvimento, a sua cadeia de ferramentas baseada em agentes, bem como a monitorização e a resposta.
O que contém
A lista de verificação segue as mesmas superfícies de ataque que os incidentes acima exploraram. Cada item identifica o tipo de ataque contra o qual se defende, aponta para uma alteração de configuração ou ferramenta concreta e mantém-se fiel ao que um engenheiro em funções tem efetivamente autoridade para alterar. Embora se destine a equipas de engenharia, os responsáveis pela segurança, os engenheiros de plataforma e qualquer pessoa responsável por uma parte do SDLC encontrarão secções diretamente relevantes para o que lançam.
Destacamos alguns itens abaixo para lhe dar uma ideia do que está dentro.
Aplicar uma política relativa à idade dos pacotes antes de qualquer instalação
O padrão comum a muitos dos grandes ataques recentes, como o Axios, o Chalk, o Debug e o Mastra, é que as versões maliciosas de pacotes de confiança começaram a ser executadas poucas horas após a sua publicação. São os controlos durante a instalação que proporcionam à vossa equipa o tempo necessário para detetar o problema.

Associar as dependências do pipeline aos SHA dos commits
As ações de terceiros são código em que o seu pipeline confia por predefinição. Quando as refere por meio de uma etiqueta, essa confiança estende-se a quem quer que controle a etiqueta, e as etiquetas podem ser movidas.

Tratar os servidores MCP como dependências de terceiros
As ferramentas de agente estão na vanguarda das experiências dos atacantes. Os servidores MCP ocupam um ponto de confiança particularmente elevado na pilha, com amplas permissões e acesso direto aos dados que os agentes tratam em seu nome.

Prevenir a injeção imediata em pipelines baseados em IA
A adição de um agente de IA a um pipeline de CI alarga o âmbito do que é considerado uma entrada de risco. Conteúdo que antes circulava sem problemas por um fluxo de trabalho, como o título de um issue ou a descrição de um PR, torna-se uma instrução executável no momento em que o agente o introduz num prompt. Trata-se de uma área de risco mais vasta do que a que a maioria das equipas teve em conta nos seus modelos.

Registar os registos de auditoria relativos às atualizações do registo, às execuções de CI e à utilização de tokens
Várias violações de segurança ocorridas este ano nem sequer apareceram nos registos de autenticação normais. Os atacantes atuaram a partir de sessões ativas com credenciais válidas, e o único indício significativo provém dos registos de auditoria que registam as ações efetivamente realizadas nessas sessões.

Descarregue a ataques à Supply chain
São cinco itens de um total de trinta. A lista de verificação completa aborda a fixação e a aplicação de ficheiros de bloqueio, tokens com âmbito definido e autenticação multifator (MFA) resistente ao phishing, reforço container , controlos de extensões de IDE e plug-ins de navegador, definição do âmbito das permissões dos agentes e manuais de resposta a incidentes para quando algo conseguir passar.

Preencha o breve formulário abaixo para descarregar a ataques à Supply chain e comece a analisá-la antes que o próximo pacote apareça no seu gráfico de dependências.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "TechArticle",
"@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist#article",
"headline": "The practical checklist for defending against supply chain attacks",
"description": "A practical checklist for engineering teams to defend against maintainer takeovers, poisoned actions, and malicious releases. Thirty prioritized practices graded by criticality.",
"url": "https://www.aikido.dev/blog/supply-chain-attacks-checklist",
"datePublished": "2026-07-14",
"dateModified": "2026-07-14",
"inLanguage": "en-US",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist"
},
"author": {
"@id": "https://www.aikido.dev/authors/nicholas-thomson#person"
},
"publisher": {
"@id": "https://www.aikido.dev#organization"
},
"image": {
"@type": "ImageObject",
"url": "https://www.aikido.dev/blog/supply-chain-attacks-checklist/og-image.png",
"width": 1200,
"height": 630
},
"keywords": [
"supply chain attacks",
"software supply chain security",
"npm supply chain attack",
"maintainer account takeover",
"package age policy",
"commit SHA pinning",
"GitHub Actions security",
"CI/CD security",
"MCP server security",
"prompt injection",
"phishing-resistant MFA",
"FIDO2",
"audit logging",
"malicious npm packages",
"postinstall hooks",
"dependency confusion",
"typosquatting",
"Aikido Intel",
"Aikido Safe Chain",
"developer machine security"
],
"about": [
{"@type": "Thing", "name": "Software Supply Chain Security"},
{"@type": "Thing", "name": "Open Source Security"},
{"@type": "Thing", "name": "CI/CD Pipeline Security"},
{"@type": "Thing", "name": "npm Security"},
{"@type": "Thing", "name": "Agentic AI Security"}
],
"mentions": [
{"@type": "SoftwareApplication", "name": "axios", "applicationCategory": "npm package"},
{"@type": "SoftwareApplication", "name": "chalk", "applicationCategory": "npm package"},
{"@type": "SoftwareApplication", "name": "debug", "applicationCategory": "npm package"},
{"@type": "SoftwareApplication", "name": "tj-actions/changed-files", "applicationCategory": "GitHub Action"},
{"@type": "SoftwareApplication", "name": "Mastra", "applicationCategory": "npm package"},
{"@type": "SoftwareApplication", "name": "postmark-mcp", "applicationCategory": "MCP server"},
{"@type": "SoftwareApplication", "name": "Bitwarden CLI", "applicationCategory": "CLI tool"},
{"@type": "SoftwareApplication", "name": "Aikido Intel", "url": "https://intel.aikido.dev/"},
{"@type": "SoftwareApplication", "name": "Aikido Safe Chain", "url": "https://www.aikido.dev/protect/safe-chain"},
{"@type": "SoftwareApplication", "name": "Aikido Device Protection", "url": "https://www.aikido.dev/protect/device-protection"},
{"@type": "SoftwareApplication", "name": "Aikido Libraries", "url": "https://help.aikido.dev/autofix-and-remediation/aikido-libraries-overview"},
{"@type": "SoftwareApplication", "name": "Aikido Images", "url": "https://www.aikido.dev/cloud/hardened-images"},
{"@type": "Thing", "name": "Shai-Hulud campaign"},
{"@type": "Thing", "name": "PromptPwnd"},
{"@type": "Thing", "name": "Model Context Protocol (MCP)"},
{"@type": "Thing", "name": "FIDO2"},
{"@type": "Thing", "name": "Passkeys"},
{"@type": "Thing", "name": "OIDC"},
{"@type": "Thing", "name": "SBOM"},
{"@type": "Thing", "name": "CVE-2025-30066"}
],
"articleSection": [
"Dependency management",
"Access and identity controls",
"CI/CD hardening",
"Container security",
"Developer environments",
"Agentic toolchain",
"Monitoring and response"
],
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": ["h1", "h2", ".tldr"]
},
"timeRequired": "PT8M",
"isAccessibleForFree": true,
"citation": [
{
"@type": "CreativeWork",
"name": "ReversingLabs Software Supply Chain Security Report 2026",
"url": "https://www.reversinglabs.com/blog/sscs-report-2026-guidance-timeline"
},
{
"@type": "CreativeWork",
"name": "npm debug and chalk packages compromised",
"url": "https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised"
},
{
"@type": "CreativeWork",
"name": "tj-actions/changed-files supply chain attack",
"url": "https://www.aikido.dev/blog/get-the-tl-dr-tj-actions-changed-files-supply-chain-attack"
},
{
"@type": "CreativeWork",
"name": "axios npm compromised: maintainer hijacked with RAT",
"url": "https://www.aikido.dev/blog/axios-npm-compromised-maintainer-hijacked-rat"
},
{
"@type": "CreativeWork",
"name": "Shai-Hulud strikes again: hitting Zapier, ENS Domains, PostHog",
"url": "https://www.aikido.dev/blog/shai-hulud-strikes-again-hitting-zapier-ensdomains"
},
{
"@type": "CreativeWork",
"name": "Shai-Hulud npm Bitwarden CLI compromise",
"url": "https://www.aikido.dev/blog/shai-hulud-npm-bitwarden-cli-compromise"
}
]
},
{
"@type": "WebPage",
"@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist",
"url": "https://www.aikido.dev/blog/supply-chain-attacks-checklist",
"name": "The practical checklist for defending against supply chain attacks",
"description": "A practical checklist for engineering teams to defend against maintainer takeovers, poisoned actions, and malicious releases.",
"inLanguage": "en-US",
"isPartOf": {
"@id": "https://www.aikido.dev#website"
},
"primaryImageOfPage": {
"@type": "ImageObject",
"url": "https://www.aikido.dev/blog/supply-chain-attacks-checklist/og-image.png"
},
"breadcrumb": {
"@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist#breadcrumb"
},
"about": {"@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist#article"}
},
{
"@type": "BreadcrumbList",
"@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://www.aikido.dev"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://www.aikido.dev/blog"
},
{
"@type": "ListItem",
"position": 3,
"name": "Guides & Best Practices",
"item": "https://www.aikido.dev/category/guides-best-practices"
},
{
"@type": "ListItem",
"position": 4,
"name": "The practical checklist for defending against supply chain attacks",
"item": "https://www.aikido.dev/blog/supply-chain-attacks-checklist"
}
]
},
{
"@type": "ItemList",
"@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist#itemlist",
"name": "Featured checklist items",
"itemListOrder": "https://schema.org/ItemListOrderAscending",
"numberOfItems": 5,
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Enforce a package age policy before anything installs",
"description": "A 48-hour minimum age policy blocks same-day typosquatting and fast-moving malware campaigns before they reach your developers."
},
{
"@type": "ListItem",
"position": 2,
"name": "Pin pipeline dependencies to commit SHAs",
"description": "Third-party actions are code your pipeline trusts by default. Pin every action to an immutable commit SHA rather than a mutable tag."
},
{
"@type": "ListItem",
"position": 3,
"name": "Treat MCP servers as third-party dependencies",
"description": "MCP servers carry the same supply chain risks as any other dependency. Pin them, verify the publisher, and scope their permissions."
},
{
"@type": "ListItem",
"position": 4,
"name": "Guard against prompt injection in AI-powered pipelines",
"description": "As AI agents gain elevated access to CI pipelines, prompt injection becomes a live attack surface for anyone who can open a PR."
},
{
"@type": "ListItem",
"position": 5,
"name": "Capture audit logs for registry pushes, CI runs, and token usage",
"description": "Audit logs give you the timeline to reconstruct what happened, confirm the blast radius, and decide what to rotate."
}
]
},
{
"@type": "Person",
"@id": "https://www.aikido.dev/authors/nicholas-thomson#person",
"name": "Nicholas Thomson",
"jobTitle": "Senior SEO & Growth Lead",
"url": "https://www.aikido.dev/authors/nicholas-thomson",
"worksFor": {
"@id": "https://www.aikido.dev#organization"
},
"sameAs": [
"https://www.linkedin.com/",
"https://x.com/"
]
},
{
"@type": "Organization",
"@id": "https://www.aikido.dev#organization",
"name": "Aikido Security",
"url": "https://www.aikido.dev",
"logo": {
"@type": "ImageObject",
"url": "https://www.aikido.dev/logo.png"
},
"sameAs": [
"https://www.linkedin.com/company/aikido-security/",
"https://x.com/AikidoSecurity",
"https://www.youtube.com/@aikidosecurity"
]
},
{
"@type": "WebSite",
"@id": "https://www.aikido.dev#website",
"url": "https://www.aikido.dev",
"name": "Aikido Security",
"publisher": {
"@id": "https://www.aikido.dev#organization"
},
"inLanguage": "en-US"
}
]
}
</script>

