O problema: os primeiros momentos após a publicação são os mais arriscados
Quem trabalha com desenvolvimento em Amazon Linux e utiliza pacotes do npm ou do PyPI precisa estar atento a um risco específico: o período logo após a publicação de um pacote é, de longe, o mais perigoso do ponto de vista de segurança na cadeia de suprimentos.
Diferente dos pacotes oficiais do Amazon Linux — que passam por revisão dos mantenedores antes do lançamento —, os registros npm e PyPI têm publicação aberta. Qualquer pessoa pode enviar um pacote sem passar por revisão humana obrigatória. Isso abre espaço para que pacotes maliciosos sejam publicados por meio de credenciais roubadas ou ataques de impersonação.
O padrão observado nesses incidentes é sempre parecido: um autor publica um pacote ou versão inesperada e aguarda que sistemas automatizados e usuários o instalem. Pesquisadores de segurança e scanners automatizados geralmente detectam e removem esses pacotes em questão de horas — mas, nesse intervalo, muitos ambientes já foram expostos.
O relatório State of DevSecOps 2026 da Datadog revelou que 54% das aplicações JavaScript instalam ao menos uma dependência dentro de um dia após seu lançamento. Esse é exatamente o janela de maior risco. Veja alguns exemplos reais de eventos recentes e seus tempos de exposição:
- Nx s1ngularity (ago/2025): 4–5 horas
- axios (mar/2026): 2–3 horas
- Bitwarden CLI (abr/2026): 93 minutos
- TanStack (mai/2026): 30 minutos
- node-ipc (mai/2026): menos de 24 horas
Um detalhe importante: vários desses eventos geraram atestados de proveniência válidos e passaram em verificações de build. Ou seja, os mecanismos de autorização tradicionais não foram suficientes para bloqueá-los.
A tensão entre dois tipos de risco
Existe uma tensão natural entre dois riscos que puxam em direções opostas. Por um lado, manter pacotes desatualizados significa acumular vulnerabilidades conhecidas que nunca foram corrigidas. Por outro, instalar versões recém-publicadas significa correr o risco de incluir código malicioso que ainda não foi detectado.

A melhor abordagem, portanto, é se manter atualizado sem adotar versões imediatamente após o lançamento, aplicando correções de segurança recomendadas conforme necessário. É exatamente esse equilíbrio que a solução de cooldown de dependência busca oferecer.
A solução: cooldown de dependência com uma linha de configuração
A AWS apresentou uma solução direta: configurar um cooldown de dependência nos gerenciadores de pacotes npm e pip. Essa configuração instrui o gerenciador a ignorar versões publicadas há menos de 24 horas. Se um pacote não existia no registro pelo tempo configurado, ele simplesmente não será instalado — dando à comunidade de segurança tempo suficiente para identificar e remover versões problemáticas.
Um cooldown de 1 dia teria bloqueado todos os eventos listados na tabela acima. E, ao contrário dos mecanismos de autorização, o cooldown funciona de forma independente: ele bloqueia por idade, não por confiança.
Tanto o npm (versão 11.10.0 ou superior) quanto o pip (versão 26.1 ou superior) já suportam essa funcionalidade. O Amazon Linux 2023 inclui esses pacotes a partir do NodeJS 24 e Python 3.14, disponíveis desde a versão 2023.11.20260608.
Observação importante: se você utiliza instalações baseadas em lockfile — como npm ci ou pip install -r requirements.txt com versões fixadas — o cooldown não se aplica. Esses comandos instalam exatamente o que o lockfile especifica, independentemente da idade do pacote. O cooldown afeta apenas a resolução de pacotes novos ou atualizados.
Pré-requisitos
- Node.js 24 com npm 11.10.0 ou superior (em
nodejs24-24.14.1-1.amzn2023.0.1ou posterior) - Python 3.14 com pip 26.1 (em
python3.14-pip-26.1.1-1.amzn2023.0.1ou posterior) pip-audit(ferramenta para escanear pacotes Python com defeitos conhecidos). Instale com:python3.14 -m pip install pip-audit
Como configurar o cooldown no npm
Crie o diretório de configuração global conforme a versão do NodeJS:
sudo mkdir -p /usr/lib/nodejs24/etc
Adicione a configuração de cooldown:
sudo npm-24 config set min-release-age 1 --location=global
Verifique se o cooldown está ativo:
npm-24 config list
A saída mostrará before = "<timestamp de 24 horas atrás>", confirmando que o npm converteu o cooldown de 1 dia em um filtro de data. Consulte a documentação do npm min-release-age para mais detalhes.
Como configurar o cooldown no pip
Crie o arquivo de configuração global do pip com o cooldown:
sudo python3.14 -m pip config set --global global.uploaded-prior-to P1D
Verifique a configuração:
python3.14 -m pip config list
A saída mostrará global.uploaded-prior-to='P1D'. Essa configuração pode ser aplicada imediatamente com segurança, pois versões mais antigas do pip (25.x) simplesmente ignoram o parâmetro sem causar erros.
Sobrescrevendo o cooldown para aplicar correções de segurança urgentes
O cooldown não precisa ser desativado completamente para aplicar correções de segurança. A recomendação da AWS é identificar os pacotes com vulnerabilidades conhecidas por meio das ferramentas de auditoria e sobrescrever o cooldown apenas para esses pacotes específicos.
Para identificar pacotes que precisam de atualização urgente, execute:
npm auditor
python3.14 -m pip_audit
Para pacotes npm
Instale um pacote específico ignorando o cooldown:
npm-24 install <package-name> --min-release-age=0
Para atualizar automaticamente todos os pacotes npm com vulnerabilidades conhecidas:
npm audit --json | python3 -c "
import json, sys, subprocess
data = json.load(sys.stdin)
for pkg in data.get('vulnerabilities', {}):
subprocess.run(['npm-24', 'install', f'{pkg}@latest', '--min-release-age=0'])
"
Para pacotes pip
Instale um pacote específico ignorando o cooldown:
python3.14 -m pip install <package-name> --uploaded-prior-to="P0D"
Para atualizar automaticamente todos os pacotes pip com vulnerabilidades conhecidas:
python3.14 -m pip_audit --format=json | python3 -c "
import json, sys, subprocess
data = json.load(sys.stdin)
for vuln in data:
pkg = vuln['name']
fix = vuln.get('fix_versions', ['latest'])[0]
subprocess.run(['python3.14', '-m', 'pip', 'install', f'{pkg}=={fix}', '--uploaded-prior-to=\"P0D\"'])
"
Importante: os scripts acima demonstram o conceito. Para uso em produção, adicione tratamento de erros, logging e testes adequados. Revise os pacotes antes de atualizá-los em pipelines automatizados.
Adoção da indústria: cooldowns já são tendência
A estratégia de cooldown de dependência já está sendo adotada por ferramentas e empresas relevantes do ecossistema. A partir de maio de 2026, diversas ferramentas populares passaram a incluir esse recurso:
- pnpm 11: já vem com
minimumReleaseAgehabilitado por padrão — um dos primeiros gerenciadores de pacotes a tornar o cooldown opt-out em vez de opt-in. - Renovate: o preset
config best-practicesinclui um cooldown de 3 dias para npm desde 2025, amplamente adotado em empresas. - StepSecurity Secure Registry: oferece período de cooldown configurável para clientes corporativos, com recomendação padrão de 10 dias.
Como a AWS contribui para a segurança da cadeia de suprimentos open source
A AWS também atua de forma proativa no monitoramento dos registros de pacotes. O Amazon Inspector, serviço de gerenciamento de segurança que escaneia continuamente cargas de trabalho em busca de vulnerabilidades e exposições de rede, utiliza regras de detecção assistidas por Inteligência Artificial (IA) para monitorar registros upstream de pacotes.
Em 2025, pesquisadores do Amazon Inspector identificaram mais de 150.000 pacotes npm inesperados vinculados a uma campanha de mineração de tokens. A equipe de segurança da AWS também publicou orientações detalhadas de resposta ao worm Shai-Hulud e ao evento do axios.
Além disso, a AWS contribui com a Open Source Security Foundation (OpenSSF) por meio de um grant de US$ 12,5 milhões para segurança open source, financiando infraestrutura de escaneamento proativo que beneficia todo o ecossistema.
Pacotes inesperados normalmente são detectados em poucas horas após a publicação. Um cooldown de 1 dia garante que você não os instale durante essa janela de detecção.
Recomendações práticas
Para proteger seu ambiente Amazon Linux 2023, a AWS recomenda:
- Configure um cooldown de 1 dia para npm e pip conforme os passos descritos acima. Registros externos não têm revisão humana — dê tempo aos defensores para identificar problemas.
- Sobrescreva o cooldown quando necessário para aplicar correções de segurança urgentes, usando as flags por comando.
- Execute
npm auditoupip_auditregularmente para identificar pacotes que precisam de atenção imediata.
Recursos adicionais
- Boas práticas de segurança do NodeJS
- Documentação do npm min-release-age
- Documentação de instalações seguras do pip
- Documentação do pip uploaded-prior-to
- Boas práticas da OpenSSF
- Documentação do Amazon Linux 2023
Fonte
Secure your npm and pip package updates in Amazon Linux (https://aws.amazon.com/blogs/security/secure-your-npm-and-pip-package-updates-in-amazon-linux/)
Leave a Reply