Cadeia de suprimentos
Do pacote que se instala à imagem que se publica — o que é conferido, e em que ponto.
A cadeia de suprimentos é tudo que entra no seu programa sem ter sido escrito por você: pacotes, actions do CI, a imagem base, o próprio interpretador. Um ataque a ela alcança todo mundo que confia no elo — por isso cada elo precisa de uma conferência, e não de confiança.
| Elo | A conferência | Onde |
|---|---|---|
| o pacote instalado | o sha256 do forge.lock é comparado com o que chegou | dataforge install |
| o pacote publicado | tarball reprodutível (mtime=0, uid/gid zerados) | dataforge pack |
| a extração | recusa ../ e link simbólico (Zip Slip) | dataforge add |
| as actions do CI | fixar por SHA do commit, e não por tag | o workflow |
| a imagem base | atualizada pelo Dependabot; USER sem privilégio | dataforge devops github |
| o inventário | SBOM em CycloneDX | dataforge devops sbom |
| o artefato em produção | manifesto assinado da pasta | Arcane.Integridade |
| o que o código pode fazer | o adopt fora da lista é recusado | Arcane.Capacidade |
yaml
uses: actions/checkout@v4 # a tag pode ser MOVIDA
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # o commit nao
bash
dataforge install # confere o sha256 de cada pacote contra o lock
dataforge outdated # o que tem versao nova
dataforge devops sbom # o inventario, para o scanner da empresa
dataforge seguranca . --strict # o segredo que entraria junto no pacoteContinue em Integridade e O lockfile.