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
Mensagem pronta para colar
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-totoOu 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.mdConteú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:
- Todas as etapas necessárias foram realizadas
- Cada etapa foi assinada por um funcionário autorizado
- Os hashes dos artefatos se encadeiam corretamente entre as etapas
- 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
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5965
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC