Do caos à clareza: navegando pelo mecanismo de políticas para conformidade

Todas as mensagens

Bem-vindo de volta à segunda parte da nossa série de blogs, onde nos aprofundamos nas poderosas capacidades do Valint. Neste artigo, focaremos no mecanismo de políticas da Valint e em seu papel fundamental na garantia da conformidade em toda a sua cadeia de suprimentos.
Em nossa postagem anterior do blog, fornecemos uma visão geral de Princípios de design da Valint.

Como funciona o mecanismo de política

O mecanismo de políticas da Valint opera com base em um conjunto de regras organizadas em políticas verificadas com base em evidências coletadas na cadeia de abastecimento. Vamos analisar seus principais componentes:

evidência: objetos imutáveis ​​que devem ser consumidos automaticamente pelas políticas. Esses objetos contêm metadados necessários para permitir a aplicação de políticas e atender aos requisitos de conformidade. O conteúdo de evidências inclui metadados sobre artefatos, eventos e configurações, mas também pode coletar relatórios, configurações ou verificações reais. As evidências podem vir em formato assinado ou não. Sugerimos seguir o Intoto especificação de atestado utilizando o assinado atestado e formatos não assinados, respectivamente.

  • Atestados (também conhecidos como evidências assinadas verificáveis): Evidência verificável ligada a um determinado contexto ambiental, transmitindo confiança usando alguma forma de assinatura PKI.

Políticas: Eles definem os requisitos que sua cadeia de suprimentos deve atender, abrangendo vários aspectos, como validação, detalhes de conformidade e o veredicto final com base nas evidências. Por exemplo, a organização poderia ter uma “política de imagem de contêiner”

Regras da política: As políticas consistem em regras, cada uma representando uma verificação de conformidade específica. Os exemplos incluem a verificação de assinaturas e identidades, verificação de componentes SBOM, verificação de ausência de vulnerabilidades críticas. Seguindo o exemplo anterior, a “política de imagem de contêiner” poderia consistir nas seguintes regras:

  • Aplicar assinatura de imagem.
  • Avise na imagem e não na reclamação com rótulos específicos.

Pacotes: Coleções de políticas e regras que podem ser convenientemente referenciadas como um todo. Os pacotes fornecem uma maneira modular e organizada de gerenciar e aplicar conjuntos de políticas como código. O pacote de políticas padrão do Scribe é publicado em https://github.com/scribe-public/sample-policies, sinta-se à vontade para consultá-lo.

Usando políticas com Valint

Valint capacita os usuários a consumir políticas como código de repositórios públicos ou privados, oferecendo flexibilidade e opções de personalização. Para começar, basta instalar o Valint e definir suas políticas de acordo com suas necessidades de conformidade.

Instalação: Comece instalando o Valint usando o script fornecido. Execute o seguinte comando em seu terminal:

curl -sSfL https://get.scribesecurity.com/install.sh | sh -s — -t valint

Definição de Política: A seguir, defina suas políticas de acordo com os requisitos de conformidade da sua organização. Crie um arquivo YAML, como my_policy.yamle estruture-o para encapsular as regras desejadas. Aqui está um exemplo da aparência do seu arquivo de política:

nome: my_image_policy padrões: evidência: assinado: verdadeiro regras: - usa: images/fresh-image@v1 com: max_days: 100 - usa: images/verify-labels-exist@v1 nível: aviso com: rótulos: # imagem necessária para ser rotulado (comando Dockerfile LABEL) - mantenedor # Requer um rótulo de mantenedor. - org.opencontainers.image.source # Exige que as imagens sejam rotuladas com suas fontes

Neste exemplo, definimos uma política chamada my_image_policy, que determina que os artefatos de evidência devem ser assinados e que as imagens devem ser criadas nos últimos 100 dias. Além disso, emite um aviso caso as imagens não tenham rótulos específicos.

Sinta-se à vontade para verificar outras regras nós apoiamos fora da caixa.

Criação de evidências: Antes de avaliar suas políticas, você precisa gerar as evidências necessárias. Use Valint para criar evidências para sua imagem alvo:

valint bom nginx:latest -o attest

Este comando gera evidências para o nginx:latest imagem, garantindo que ela inclua metadados como identidade da imagem e horário de criação. Por padrão, Valint utiliza o Loja de assinaturas serviço como signatário para geração de evidências, que vincula uma identidade OIDC a um certificado. No entanto, Valint também suporta o uso de seus próprios x509 Chaves PKI e cadeias de CA para assinatura.

Login da Sigstore

Basta selecionar o identificador OIDC de sua preferência para assinar.

Finalmente, você pode analisar o sucesso do processo de geração de evidências juntamente com sua identidade para garantir sua integridade e confiabilidade.

[2024-03-26 12:41:55] INFO atesta: [CONFIÁVEL] sucesso de sinal, CA: fulcio-signer, CN: sigstore-intermediate, Emails: [your_identity@gmail.com], URIs: [] ... [2024-03-26 12:41:55] INFO atesta: evidência gerada com sucesso

Avaliação de políticas: Com sua política definida e evidências geradas, é hora de avaliá-la em relação aos componentes de sua cadeia de suprimentos. Utilize o valint verify comando seguido pela imagem de destino e seu arquivo de política:

valint verify nginx:latest --policy my_policy.yaml

Resumo da avaliação:

Assim que a avaliação for concluída, revise a tabela de resumo fornecida pelos logs do Valint.

mesa

Neste caso particular, a análise Valint ilustra que o nginx:latest a imagem atende com sucesso ao requisito de frescor, mas não atende aos critérios de rotulagem, conforme previsto. A tabela fornecida descreve concisamente o status da avaliação de cada regra, observando se as evidências foram devidamente assinadas.

Resultados formatados em SARIF:

Além disso, você pode explorar os resultados formatados em SARIF produzidos por Valint como mais uma peça de evidência para detalhar a avaliação, violações, níveis e referências de evidências.

Plataformas de gerenciamento suportadas:

Este formato padronizado conta com suporte de vários sistemas de gerenciamento de segurança, como GitHub, Azure e Scribe SAAS. As plataformas Scribe não apenas lidam com resultados de políticas, mas também facilitam o gerenciamento de evidências e oferecem recursos abrangentes para gerenciamento de vulnerabilidades, rastreamento de métricas e muito mais.

Visualização de informações:

Para dar uma ideia da informação disponível nos resultados da política:

Screenshot

{ "versão": "2.1.0", "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json", "runs": [ { "ferramenta": { "driver": { "informationUri": "https://scribesecurity.com", "nome": "valint", "rules": [ { "id": "fresco -image", "name": "Fresh Image", "shortDescription": { "text": "Uma regra para verificar se a imagem não é mais antiga que um limite" }, }, { "id": "labels", "name": "Labels", "shortDescription": { "text": "Uma regra para verificar se a imagem possui todos os rótulos necessários" }, }, "results": [ { "ruleId": "fresh-image" , "ruleIndex": 0, "kind": "pass", }, { "ruleId": "labels", "ruleIndex": 1, "kind": "fail", "level": "warning", "política .violation": { "type": "Rótulos ausentes", "details": [ { "label": "not_found" }, { "label": "org.opencontainers.image.source" } }, ... ] }

Pacotes de políticas

Um pacote no Valint é um pacote de política como código, essencialmente um Repositório Git hospedando um conjunto de políticas e regras. Os usuários podem configurar seu próprio pacote bifurcando o repositório de amostras fornecido pela Valint e personalizando-o de acordo com suas necessidades.

Garfo e personalize: Comece bifurcando Valint's repositório de amostra. Personalize políticas e regras para alinhá-las às necessidades da sua organização.

Provisão para Valint: Forneça seu pacote personalizado para Valint:

valint verificar --bundle https://github.com/my_org/my_bundle.git \ --policy my_policy.yaml

Regras personalizadas

Ao personalizar regras, a responsabilidade fundamental é analisar a carga de evidências e relatar violações com base nos critérios de conformidade definidos. Esteja você modificando regras existentes ou criando novas.

Definição de critérios de conformidade: Defina os critérios de conformidade com base em políticas organizacionais, padrões de segurança ou regulamentos.

Definindo os Critérios de Evidência: Defina as evidências que devem transmitir conformidade.

Avaliação de conformidade e denúncia de violações: Use a carga útil de evidências para avaliar a conformidade em relação aos critérios definidos. Relate violações se o componente não atender aos requisitos.
Valint garante que os requisitos de origem de assinatura e evidência estejam prontamente disponíveis para qualquer regra personalizada.

Embora Valint atualmente empregue OPA Rego para a formulação de regras, um horizonte emocionante o aguarda, já que as regras do Python estão programadas para integração em um futuro próximo.

Qual é o próximo?

A integração com o Gatekeeper agora está acessível! Consulte nosso documentação para detalhes. Fique ligado em uma próxima postagem no blog, onde nos aprofundaremos nesse desenvolvimento emocionante.

Fique atento às futuras postagens do blog onde exploraremos iniciativas políticas, incluindo políticas de alto nível que implementarão estruturas de segurança como SLSA e SSDF.

Notícias emocionantes para os entusiastas do Python! Nossa atualização mais recente inclui amplo suporte a Python, proporcionando um aumento significativo de compatibilidade. Isso permite que os redatores de políticas personalizem regras usando Python e aproveitem sua vasta gama de bibliotecas.

Conclusão

Em resumo, o mecanismo de políticas da Valint oferece uma solução robusta para garantir a conformidade em sua cadeia de suprimentos. Ao aproveitar seus componentes, como evidências, políticas e pacotes, as organizações podem simplificar os esforços de conformidade e mitigar os riscos de forma eficaz.

Este conteúdo é oferecido a você pela Scribe Security, um fornecedor líder de soluções de segurança de cadeia de suprimentos de software ponta a ponta – fornecendo segurança de última geração para artefatos de código e processos de desenvolvimento e entrega de código em todas as cadeias de suprimentos de software. Saiba mais.