Pular para o conteúdo
Skillpedia
Segurança35 mil · #5965

implementing-supply-chain-security-with-in-toto

Ajuda seu agente a verificar a segurança da cadeia de suprimentos de software. Ele garante que os programas foram construídos de forma confiável. É útil para ter certeza de que o software que você usa não foi alterado indevidamente.

O que ela faz

Esta ferramenta ajuda a garantir que o código do seu software seja construído e distribuído de forma segura. Ela cria um registro confiável de todas as etapas do desenvolvimento, provando que tudo aconteceu como planejado e que nada foi alterado indevidamente.

Quando usar

  • ✓Ao configurar a segurança da sua cadeia de suprimentos de software.
  • ✓Ao precisar provar que uma imagem de software seguiu o processo de construção correto.
  • ✓Ao implementar controles de segurança para cumprir requisitos.

Exemplo do que pedir para a IA

“Como posso garantir que minha imagem de container foi construída de forma segura e não foi alterada?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-supply-chain-security-with-in-toto/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-supply-chain-security-with-in-toto/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela funciona definindo as etapas esperadas para construir seu software, quem pode realizá-las e quais arquivos devem ser criados ou modificados. Cada etapa gera uma assinatura digital que prova sua execução e os resultados.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-supply-chain-security-with-in-toto

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-supply-chain-security-with-in-toto/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Implementando Segurança da Cadeia de Suprimentos com in-toto

Visão Geral

in-toto é um projeto graduado da CNCF que garante a integridade das cadeias de suprimentos de software, desde a iniciação até a instalação pelo usuário final. Ele cria um registro verificável de todo o ciclo de vida de desenvolvimento de software, gerando atestações criptograficamente assinadas (chamadas "metadados de link") em cada etapa, provando o que aconteceu, quem o realizou e quais artefatos foram produzidos. Para ambientes de contêineres, in-toto verifica se as imagens implantadas no Kubernetes seguiram processos de build aprovados e não foram adulteradas.

Quando Usar

  • Ao implantar ou configurar a implementação de segurança da cadeia de suprimentos com capacidades in-toto em seu ambiente
  • Ao estabelecer controles de segurança alinhados aos requisitos de conformidade
  • Ao construir ou melhorar a arquitetura de segurança para este domínio
  • Ao conduzir avaliações de segurança que exigem esta implementação

Pré-requisitos

  • Runtime Python 3.8+ ou Go para bibliotecas cliente in-toto
  • Chaves GPG ou Ed25519 para assinar atestações
  • Pipeline de build de contêineres (Docker, Buildah ou Kaniko)
  • Registro de contêineres (Docker Hub, ECR, GCR ou Harbor)
  • Cluster Kubernetes para verificação de implantação

Conceitos Principais

Layout da Cadeia de Suprimentos

O layout é o documento central de política que define:

  • Etapas: Operações ordenadas na cadeia de suprimentos (clone, build, test, package, push)
  • Funcionários: Entidades autorizadas (pessoas ou sistemas de CI) que realizam cada etapa
  • Inspeções: Verificações de cliente realizadas no momento da verificação
  • Artefatos esperados: Relações de entrada/saída entre as etapas
from in_toto.models.layout import Layout, Step, Inspection
from securesystemslib.interface import import_ed25519_privatekey_from_file

# Create the supply chain layout
layout = Layout()
layout.set_relative_expiration(months=3)

# Define the code clone step
step_clone = Step(name="clone")
step_clone.expected_materials = []
step_clone.expected_products = [["CREATE", "src/*"]]
step_clone.pubkeys = [clone_functionary_keyid]
step_clone.expected_command = ["git", "clone"]
step_clone.threshold = 1

# Define the build step
step_build = Step(name="build")
step_build.expected_materials = [["MATCH", "src/*", "WITH", "PRODUCTS", "FROM", "clone"]]
step_build.expected_products = [["CREATE", "image.tar"]]
step_build.pubkeys = [build_functionary_keyid]
step_build.expected_command = ["docker", "build"]
step_build.threshold = 1

# Define the scan step
step_scan = Step(name="scan")
step_scan.expected_materials = [["MATCH", "image.tar", "WITH", "PRODUCTS", "FROM", "build"]]
step_scan.expected_products = [["CREATE", "scan-report.json"]]
step_scan.pubkeys = [scan_functionary_keyid]
step_scan.threshold = 1

layout.steps = [step_clone, step_build, step_scan]

Metadados de Link

Cada execução de etapa gera um arquivo de link contendo:

  • Materiais consumidos (artefatos de entrada com hashes)
  • Produtos criados (artefatos de saída com hashes)
  • Comando executado
  • Assinatura criptográfica do funcionário

Processo de Verificação

No momento da implantação, o verificador verifica:

  1. Todas as etapas necessárias foram realizadas
  2. Cada etapa foi assinada por um funcionário autorizado
  3. Os hashes dos artefatos se encadeiam corretamente entre as etapas
  4. Nenhuma modificação não autorizada ocorreu entre as etapas

Implementação

Etapa 1: Gerar Chaves de Assinatura

# Generate Ed25519 key pairs for each functionary
mkdir -p keys

# Project owner key (signs the layout)
in-toto-keygen --type ed25519 keys/owner

# CI builder key
in-toto-keygen --type ed25519 keys/builder

# Security scanner key
in-toto-keygen --type ed25519 keys/scanner

Etapa 2: Criar o Layout da Cadeia de Suprimentos

#!/usr/bin/env python3
"""Gera o layout da cadeia de suprimentos in-toto para builds de contêineres."""

from in_toto.models.layout import Layout, Step, Inspection
from in_toto.models.metadata import Envelope
from securesystemslib.signer import CryptoSigner
from securesystemslib.interface import import_ed25519_publickey_from_file

def create_container_build_layout():
    layout = Layout()
    layout.set_relative_expiration(months=6)

    # Carregar chaves públicas dos funcionários
    builder_key = import_ed25519_publickey_from_file("keys/builder.pub")
    scanner_key = import_ed25519_publickey_from_file("keys/scanner.pub")

    layout.keys = {
        builder_key["keyid"]: builder_key,
        scanner_key["keyid"]: scanner_key,
    }

    # Etapa 1: Checkout do código-fonte
    checkout = Step(name="checkout")

…
Perguntas frequentes

O que é uma 'cadeia de suprimentos de software'?

É todo o processo de criação e entrega de software, desde a escrita do código até a instalação final pelo usuário.

O que são 'metadados de link'?

São registros digitais assinados que detalham o que aconteceu em cada etapa do desenvolvimento, quem a realizou e quais arquivos foram usados ou produzidos.

Como isso se aplica a containers e Kubernetes?

Garante que as imagens de container implantadas no Kubernetes seguiram o processo de construção aprovado e não foram modificadas após a construção.

Detalhes

Descrição original do autor

Implements supply chain integrity verification for container builds with the in-toto framework: generating signing keys, defining a supply chain layout, recording pipeline steps as signed link metadata, verifying before deployment, enforcing at Kubernetes admission, and integrating with SLSA. Use when attesting CI/CD pipeline steps, proving an image followed the approved build process, or enforcin

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5965
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas