Início/Blog/Proveniência digital
Supply Chain de Software

Proveniência digital, SBOMs e código gerado por IA assinado

Agentes de IA já conseguem escrever código, atualizar dependências, gerar containers e mexer em arquivos de deploy em minutos. Essa velocidade só é útil se produção consegue responder uma pergunta chata e crítica: quem produziu este artefato, a partir de qual fonte, com quais dependências, em qual workflow, e ele mudou desde então?

Proveniência transforma output de IA em evidência

Código gerado não é especial só porque veio de um modelo. Ele é especial porque consegue alterar mais caminhos de código, mais rápido, com menos digitação humana. Isso torna evidência de supply chain mais importante. Um comentário no PR dizendo "o agente escreveu" não é proveniência. Uma attestation assinada ligando o artefato à fonte, commit, workflow, builder, dependências e digest é algo que um gate de deploy consegue verificar.

SLSA foca em provenance para integridade de build. Sigstore oferece assinatura e transparência para artefatos. CycloneDX cobre SBOMs e ML-BOMs para representar software, modelos, datasets e dependências. Juntos, eles dão ao código de IA uma trilha verificável.

Pipeline de verificação de código IA
Mudança do agenteCódigo, testes, prompts, dependências ou deploy são alterados.
ReviewHumano aprova comportamento, risco e impacto arquitetural.
BuildCI produz artefato a partir de fonte e identidade de workflow.
DocumentarSBOM, ML-BOM, licenças, modelos, datasets e grafo de dependências.
AssinarArtefato e attestations são assinados e registrados.
VerificarPolicy checa digest, provenance, signer e risco antes do deploy.

SBOM é a lista de ingredientes, provenance é o recibo

Um SBOM diz o que está dentro. Provenance diz como foi produzido. Uma assinatura diz se aquilo que você está implantando ainda corresponde ao que foi assinado. Entrega na era da IA precisa dos três, porque mudanças geradas costumam tocar glue code, dependências transitivas, prompts, SDKs gerados e camadas de container ao mesmo tempo.

Para sistemas de IA, o inventário aumenta. Não basta listar dependências npm ou Python. Também entram nome e versão do modelo, linhagem de dataset, modelo de embedding, versão de prompt, suite de eval, permissões de ferramentas e política de runtime.

SBOMQuais pacotes, licenças, arquivos e componentes existem?
ML-BOMQuais modelos, datasets, frameworks e metadados importam?
AttestationQuem construiu, de qual fonte, usando qual workflow?
AssinaturaProdução consegue verificar a identidade antes de rodar?

O que deve ser assinado

O erro é assinar só o container final e dizer que acabou. Uma supply chain útil para IA assina a imagem, o SBOM, o artefato de modelo, o relatório de eval, o manifesto de deploy e a declaração de provenance. A assinatura permite que um admission controller ou script de deploy rejeite artefatos desconhecidos antes da produção.

ArtefatoO que provaGate de política
Commit fonteQual revisão introduziu a mudança, incluindo arquivos do agente.Exigir branch protegida, review e identidade de workflow.
Build provenanceQual builder, workflow, inputs e digest produziram o artefato.Aceitar só builders confiáveis e paths esperados.
SBOMQuais dependências, licenças e componentes estão incluídos.Bloquear licenças proibidas, pacotes vulneráveis e registries desconhecidos.
ML-BOMQuais modelos, datasets, embeddings, frameworks e evals entram.Bloquear modelos não aprovados ou linhagem ausente.
Assinatura do containerSe o digest da imagem corresponde a uma assinatura confiável.Implantar só digests assinados, nunca tags mutáveis sozinhas.
Attestation de evalQuais testes, scans e evals passaram para este artefato exato.Exigir cobertura, scan de segurança e threshold de eval.

Agentes de IA precisam de identidade na trilha

Quando um agente faz uma mudança, a trilha de provenance não deve fingir que um humano digitou cada linha. Commit e PR devem mostrar aprovador humano, identidade do agente ou workflow, ferramentas usadas e arquivos tocados. O objetivo não é culpa; é replay. Se um upgrade de modelo ou política de agente gerar saída ruim, você precisa encontrar todo artefato construído naquele contexto.

É aqui que governança de IA encontra DevSecOps. Output de agente deve entrar na mesma malha de verificação de código humano: branch protection, testes, SBOM, provenance assinada, verificação de artefato e monitoramento em runtime.

O que eu construiria

Eu construiria um "passaporte de artefato IA" para cada serviço implantável. O passaporte juntaria commit fonte, revisor humano, identidade do agente, referência de prompt ou tarefa, SBOM, ML-BOM, SLSA provenance, assinatura cosign, resultados de eval, scan de vulnerabilidade e ambiente de deploy. Produção rejeitaria releases sem passaporte válido.

A melhor versão seria tediosa no bom sentido: um workflow reutilizável de CI emite evidências, um motor de política verifica tudo e um dashboard mostra o que é confiável, expirou ou não pode ser reproduzido.

O princípio de design

Código gerado por IA não precisa de um universo separado de confiança. Precisa de evidência mais forte dentro da supply chain que já temos. Se um sistema não prova de onde veio um artefato, o que ele contém, quem aprovou e por que produção aceitou, a velocidade passou da accountability.