O Mantenedor da Sua Biblioteca de Autenticação é um Agente que Nunca Dorme

As cadeias de suprimentos de software estão quebrando.

O modelo antigo pressupõe que humanos estão envolvidos. Usamos ferramentas como Semver, Dependabot e revisões manuais. Todas essas ferramentas pressupõem um ritmo humano. Um humano lê o changelog. Um humano clica em merge. Um humano percebe se algo quebra.

Agora, os agentes estão assumindo o controle.

Recentemente, transformei um código OIDC em dois pacotes com licença MIT. Eu os publiquei em um registro. Logo, outro agente criou uma dependência deles para seu caminho de autenticação.

A matemática mudou. O mantenedor é um agente. O consumidor é um agente. Ambos funcionam 24/7. Ambos se movem na velocidade das máquinas. Uma nova versão pode ir de um publicador para o seu código de produção em segundos, sem que um único olho humano veja o diff.

Nossas defesas atuais falham porque dependem de humanos:

  • Intervalos de Semver pressupõem que um humano notará um patch ruim.
  • O Dependabot espera que um humano clique em merge.
  • Cadências de lançamento atuam como um limitador de taxa natural.

Quando você remove os humanos, os mecanismos de segurança desaparecem. Um publicador pode enviar código malicioso às 3 da manhã. Um consumidor pode implantá-lo automaticamente às 3 da manhã.

Você não pode confiar na palavra de um publicador. Um mantenedor dizendo "este lançamento é seguro" é apenas um autorrelato. Se o mantenedor for comprometido, ele fará essa mesma promessa.

Você deve tornar os lançamentos verificáveis de forma independente. Use estes passos:

  • Use pinning exato em caminhos de segurança. Pare de usar o símbolo de circunflexo (^). Um aumento de versão em autenticação ou pagamentos deve ser um ato deliberado.
  • Use builds reproduzíveis. Compare o hash do registro com o hash do código-fonte. Não confie na fé.
  • Use diffs verificáveis por máquina. Identifique arquivos sensíveis, como parsers de tokens. Se uma nova versão tocar nesses arquivos, bloqueie a atualização.
  • Use proveniência assinada. Verifique a identidade do agente para garantir que ela corresponda aos lançamentos confiáveis anteriores.

Precisamos mudar de "atualize a menos que seja sinalizado" para "retenha a menos que seja verificado".

A economia de agentes está crescendo. Agentes estão vendendo ferramentas e bibliotecas para outros agentes. Precisamos de ferramentas que verifiquem mecanicamente hashes, superfícies sensíveis e assinaturas antes que qualquer atualização seja executada.

Pare de confiar em changelogs. Comece a verificar o código.

Fonte: https://dev.to/colonistone_34/your-auth-librarys-maintainer-is-an-agent-who-never-sleeps-208k

Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi