Segurança da cadeia de suprimentos de software

O Google Cloud oferece um conjunto abrangente e modular de recursos e ferramentas em todos os produtos do Google Cloud que os desenvolvedores, as equipes de DevOps e de segurança podem usar para melhorar a postura de segurança da cadeia de suprimentos de software.

Cadeias de suprimentos de software

Uma cadeia de suprimentos de software consiste em todo o código, pessoas, sistemas e processos que contribuem para o desenvolvimento e a entrega do software, dentro e fora da organização. It includes:

  • O código que você cria, as dependências dele e o software interno e externo que você usa para desenvolver, criar, empacotar, instalar e executar o software.
  • Processos e políticas para acesso, teste, revisão, monitoramento e feedback do sistema, comunicação e aprovação.
  • Sistemas em que você confia para desenvolver, criar, armazenar e executar seu software e as dependências dele.

Devido ao amplo alcance e à complexidade das cadeias de suprimentos de software, há várias maneiras de introduzir mudanças não autorizadas no software que você entrega aos usuários. Esses vetores de ataque abrangem o ciclo de vida do software. Embora alguns ataques sejam direcionados, como o ataque ao sistema de build do SolarWinds, outras ameaças são indiretas ou entram na cadeia de suprimentos por meio de pontos fracos no processo ou negligência.

Por exemplo, uma avaliação da vulnerabilidade do Apache Log4j em dezembro de 2021 pela equipe de insights de código aberto do Google descobriu que havia mais de 17.000 pacotes afetados no Maven Central. A maioria desses pacotes não dependia diretamente do pacote log4j-core vulnerável, mas tinha dependências que exigiam o pacote.

Práticas e processos de desenvolvimento também afetam as cadeias de suprimentos de software. Déficits de processo, como a falta de revisão de código ou critérios de segurança para implantação na produção, podem permitir que códigos incorretos entrem involuntariamente na cadeia de suprimentos. Da mesma forma, a falta de gerenciamento de dependências aumenta o risco de vulnerabilidades de fontes externas ou pacotes de software usados para desenvolvimento, builds ou implantação.

Proteger as cadeias de suprimentos de software no Google Cloud

O Google Cloud oferece:

  • Produtos e recursos que incorporam práticas recomendadas de segurança para desenvolvimento, criação, teste, implantação e aplicação de políticas.
  • Painéis no console do Google Cloud que fornecem informações de segurança sobre fontes, builds, artefatos, implantações e ambientes de execução. Essas informações incluem vulnerabilidades em artefatos de build, procedência de build e listas de dependências de lista de materiais de software (SBOM, na sigla em inglês).
  • Informações que identificam o nível de maturidade da segurança da cadeia de suprimentos de software usando o framework Níveis da cadeia de suprimentos para artefatos de software (SLSA).

O diagrama a seguir mostra os serviços do Google Cloud que trabalham juntos para proteger a cadeia de suprimentos de software. É possível integrar alguns ou todos esses componentes à cadeia de suprimentos de software para melhorar a postura de segurança.

Componentes da cadeia de suprimentos de software do Google Cloud

Proteger o ambiente de desenvolvimento

O Cloud Workstations oferece ambientes de desenvolvimento totalmente gerenciados no Google Cloud. Os administradores de TI e de segurança podem provisionar, dimensionar, gerenciar e proteger os ambientes de desenvolvimento. Os desenvolvedores podem acessar ambientes de desenvolvimento com configurações consistentes e ferramentas personalizáveis.

O Cloud Workstations muda a segurança para a esquerda, melhorando a postura de segurança dos seus ambientes de desenvolvimento de aplicativos. Os recursos de segurança incluem VPC Service Controls, entrada ou saída particulares, atualização forçada de imagens e políticas de acesso do Identity and Access Management. Cloud Workstations oferecem outros recursos de prevenção contra perda de dados quando combinadas com o Chrome Enterprise Premium.

Proteger o fornecimento de software

Proteger o fornecimento de software, criar artefatos e dependências de aplicativos, é uma etapa fundamental para melhorar a segurança da cadeia de suprimentos de software. O uso generalizado de software de código aberto torna esse problema particularmente desafiador.

  • O Assured Open Source Software oferece pacotes de código aberto que o Google verificou e testou. Esses pacotes são criados usando os pipelines seguros do Google e são verificados, analisados e testados regularmente em busca de vulnerabilidades.

  • O Artifact Registry é um gerenciador de pacotes universal para todos os artefatos e dependências de build. Ao centralizar todos os artefatos e dependências, você tem mais visibilidade e controle sobre o código na cadeia de suprimentos de software.

    • Os repositórios remotos armazenam artefatos de origens externas predefinidas, como o Docker Hub, o Maven Central, o índice de pacotes do Python (PyPI), o Debian ou o CentOS, além de origens definidas pelo usuário para formatos compatíveis. O armazenamento em cache de artefatos em repositórios remotos reduz o tempo de download, melhora a disponibilidade do pacote e inclui verificação de vulnerabilidades, se ela estiver ativada.
    • Os repositórios virtuais consolidam repositórios do mesmo formato atrás de um único endpoint e permitem controlar a ordem de pesquisa em repositórios upstream. É possível priorizar seus pacotes particulares, o que reduz o risco de ataques de confusão de dependência.
    • Também é possível proteger artefatos configurando recursos de segurança, como controle de acesso, perímetros de serviço do VPC Service Controls, políticas organizacionais e outros recursos de segurança. Para mais detalhes, consulte a documentação do Artifact Registry.
  • A Análise de artefato detecta proativamente vulnerabilidades em artefatos no Artifact Registry.

Proteger o pipeline de CI/CD

Pessoas mal-intencionadas podem atacar cadeias de suprimentos de software comprometendo os pipelines de CI/CD. Os produtos a seguir ajudam a proteger seu pipeline de CI/CD:

  • O Cloud Build executa seus builds na infraestrutura do Google Cloud. Os recursos de segurança incluem permissões granulares do IAM, VPC Service Controls e ambientes de build isolados e temporários. Os recursos específicos da segurança da cadeia de suprimentos de software incluem:

    • Suporte a builds SLSA de nível 3 para imagens de contêiner.
    • Capacidade de gerar procedência de build autenticada e não falsificável para aplicativos conteinerizados.
    • Insights de segurança para aplicativos integrados. Isso inclui:

      • O nível de build do SLSA, que identifica o nível de maturidade do processo de build do software de acordo com a especificação do SLSA.
      • Vulnerabilidades em artefatos de build.
      • Procedência do build, que é uma coleção de metadados verificáveis sobre um build. Ele inclui detalhes como os resumos das imagens criadas, os locais da origem de entrada, o conjunto de ferramentas de build, as etapas de build e a duração do build.

    Para instruções sobre como conferir insights de segurança para aplicativos criados, consulte Criar um aplicativo e conferir insights de segurança.

  • O Cloud Deploy automatiza a entrega de aplicativos para uma série de ambientes de destino em uma sequência definida. Ele oferece suporte à entrega contínua diretamente para o Google Kubernetes Engine, o GKE Enterprise e o Cloud Run, com aprovações e rollbacks com um clique, segurança e auditoria corporativas, além de métricas de envio integradas. Além disso, ela mostra insights de segurança para aplicativos implantados.

Proteger aplicativos em produção

O Google Kubernetes Engine (GKE) e o Cloud Run ajudam a proteger a postura de segurança dos seus ambientes de execução. Ambos têm recursos de segurança para proteger seus aplicativos no momento da execução.

  • O GKE pode avaliar a postura de segurança do contêiner e dar orientações ativas sobre configurações de cluster, configuração de carga de trabalho e vulnerabilidades. O GKE inclui um painel de postura de segurança que oferece recomendações opinativas e acionáveis para melhorar sua postura de segurança. Para instruções sobre como visualizar insights de segurança no painel de postura de segurança do GKE, consulte Implantar no GKE e visualizar insights de segurança.

  • O Cloud Run inclui um painel de segurança que mostra insights de segurança da cadeia de suprimentos de software, como as informações de compliance do nível de build da SLSA, a procedência do build e as vulnerabilidades encontradas nos serviços em execução. Para instruções sobre como visualizar insights de segurança no painel de insights de segurança do Cloud Run, consulte Implantar no Cloud Run e conferir insights de segurança.

Criar uma cadeia de confiança com a política

A autorização binária ajuda a estabelecer, manter e verificar uma cadeia de confiança na cadeia de suprimentos de software coletando atestados, que são documentos digitais que certificam imagens.

Um atestado significa que a imagem associada foi criada ao executar um processo específico. Com base nesses atestados coletados, a Autorização binária ajuda a definir, verificar e aplicar políticas baseadas em confiança. Ela garante que a imagem seja implantada apenas quando os atestados atendem à política da organização. É possível configurar a Autorização binária para receber uma notificação se ela encontrar violações de política.

Por exemplo, os atestados podem indicar que uma imagem é:

É possível usar a autorização binária com o GKE e o Cloud Run.

Preços

Cada serviço do Google Cloud tem um preço próprio. Para mais detalhes, consulte a documentação de preços dos serviços que você quer usar.

A seguir