Implementar a segurança shift-left

Last reviewed 2025-02-05 UTC

Esse princípio no pilar de segurança do Google Cloud Framework bem estruturado ajuda a identificar controles práticos que podem ser implementados no início do ciclo de vida de desenvolvimento de software para melhorar sua postura de segurança. Ele fornece recomendações que ajudam a implementar proteções de segurança preventivas e controles de segurança pós-implantação.

Visão geral do princípio

Shift-left security significa adotar práticas de segurança no início do ciclo de vida de desenvolvimento de software. Esse princípio tem os seguintes objetivos:

  • Evite defeitos de segurança antes de fazer mudanças no sistema. Implemente proteções de segurança preventivas e adote práticas como infraestrutura como código (IaC), política como código e verificações de segurança no pipeline de CI/CD. Também é possível usar outros recursos específicos da plataforma, como o serviço de política da organização e os clusters do GKE reforçados em Google Cloud.
  • Detecte e corrija bugs de segurança de forma rápida e confiável depois que as mudanças no sistema forem confirmadas. Adote práticas como revisões de código, verificação de vulnerabilidades pós-implantação e testes de segurança.

Os princípios de segurança Implementar a segurança por design e de deslocamento para a esquerda são relacionados, mas diferem no escopo. O princípio de segurança incorporada ajuda a evitar falhas de design fundamentais que exigiriam a reformulação de todo o sistema. Por exemplo, um exercício de modelagem de ameaças revela que o design atual não inclui uma política de autorização e que todos os usuários teriam o mesmo nível de acesso sem ela. A segurança shift-left ajuda a evitar defeitos de implementação (bugs e configurações incorretas) antes que as mudanças sejam aplicadas e permite correções rápidas e confiáveis após a implantação.

Recomendações

Para implementar o princípio de segurança de shift-left para suas cargas de trabalho na nuvem, considere as recomendações nas seções a seguir:

Adotar controles de segurança preventivos

Essa recomendação é relevante para as seguintes áreas de foco:

  • Gerenciamento de identidade e acesso
  • Governança, risco e compliance na nuvem

Os controles de segurança preventivos são essenciais para manter uma postura de segurança forte na nuvem. Esses controles ajudam a reduzir os riscos de maneira proativa. É possível evitar configurações incorretas e acesso não autorizado a recursos, permitir que os desenvolvedores trabalhem com eficiência e ajudar a garantir a conformidade com os padrões do setor e as políticas internas.

Os controles de segurança preventivos são mais eficazes quando implementados usando infraestrutura como código (IaC). Com a IaC, os controles de segurança preventivos podem incluir verificações mais personalizadas no código da infraestrutura antes que as mudanças sejam implantadas. Quando combinados com a automação, os controles de segurança preventivos podem ser executados como parte das verificações automáticas do pipeline de CI/CD.

Os produtos e recursos Google Cloud abaixo podem ajudar você a implementar controles preventivos no seu ambiente:

O IAM permite que você autorize quem pode atuar em recursos específicos com base nas permissões. Para mais informações, consulte Controle de acesso aos recursos da organização com o IAM.

O serviço de política da organização permite definir restrições em recursos para especificar como eles podem ser configurados. Por exemplo, é possível usar uma política da organização para fazer o seguinte:

Além de usar políticas organizacionais, é possível restringir o acesso a recursos usando os seguintes métodos:

  • Tags com IAM: atribua uma tag a um conjunto de recursos e defina a definição de acesso para a própria tag, em vez de definir as permissões de acesso em cada recurso.
  • Condições do IAM: definem o controle de acesso condicional e baseado em atributos para recursos.
  • Defesa em profundidade: use o VPC Service Controls para restringir ainda mais o acesso aos recursos.

Para mais informações sobre o gerenciamento de recursos, consulte Decidir uma hierarquia de recursos para sua Google Cloud zona de destino.

Automatizar o provisionamento e o gerenciamento de recursos de nuvem

Essa recomendação é relevante para as seguintes áreas de foco:

  • Segurança para aplicativos
  • Governança, risco e compliance na nuvem

A automação do provisionamento e gerenciamento de recursos e cargas de trabalho em nuvem é mais eficaz quando você também adota a IaC declarativa, em vez de scripts imperativos. A IaC não é uma ferramenta ou prática de segurança por si só, mas ajuda a melhorar a segurança da sua plataforma. A adoção da IaC permite criar infraestruturas repetíveis e oferece à equipe de operações um estado válido conhecido. O IaC também melhora a eficiência de rollbacks, mudanças de auditoria e solução de problemas.

Quando combinada com pipelines de CI/CD e automação, a IaC também permite adotar práticas como política como código com ferramentas como a OPA. É possível auditar as mudanças de infraestrutura ao longo do tempo e executar verificações automáticas no código da infraestrutura antes que as mudanças sejam implantadas.

Para automatizar a implantação da infraestrutura, use ferramentas como o Config Controller, o Terraform, o Jenkins e o Cloud Build. Para ajudar você a criar um ambiente de aplicativo seguro usando IaC e automação, Google Cloud fornece o blueprint de bases empresariais. Este blueprint é um design opinativo do Google que segue todas as práticas e configurações recomendadas. O blueprint fornece instruções detalhadas para configurar e implantar a topologia Google Cloud usando o Terraform e o Cloud Build.

É possível modificar os scripts do blueprint de bases empresariais para configurar um ambiente que siga as recomendações do Google e atenda aos seus requisitos de segurança. Você pode criar no blueprint com outros blueprints ou projetar sua própria automação. O Google Cloud Architecture Center fornece outros blueprints que podem ser implementados com base no blueprint de bases empresariais. Confira a seguir alguns exemplos desses modelos:

Automatizar versões seguras de aplicativos

Esta recomendação é relevante para a seguinte área de foco: segurança do aplicativo.

Sem ferramentas automatizadas, pode ser difícil implantar, atualizar e corrigir ambientes de aplicativos complexos para atender a requisitos de segurança consistentes. Recomendamos que você crie pipelines de CI/CD automatizados para o ciclo de vida de desenvolvimento de software (SDLC). Os pipelines automatizados de CI/CD ajudam a remover erros manuais, fornecem loops de feedback de desenvolvimento padronizados e permitem iterações eficientes do produto. A entrega contínua é uma das práticas recomendadas pela estrutura DORA.

A automação de lançamentos de aplicativos usando pipelines de CI/CD ajuda a melhorar sua capacidade de detectar e corrigir bugs de segurança de forma rápida e confiável. Por exemplo, é possível verificar vulnerabilidades de segurança automaticamente quando os artefatos são criados, restringir o escopo das análises de segurança e reverter para uma versão conhecida e segura. Também é possível definir políticas para diferentes ambientes (como desenvolvimento, teste ou produção) para que apenas artefatos verificados sejam implantados.

Para ajudar a automatizar os lançamentos de aplicativos e incorporar verificações de segurança no pipeline de CI/CD,o Google Cloud oferece várias ferramentas, incluindo o Cloud Build, o Cloud Deploy, o Web Security Scanner e a Autorização binária.

Para estabelecer um processo que verifique vários requisitos de segurança no SDLC, use o framework Níveis da cadeia de suprimentos para artefatos de software (SLSA) definido pelo Google. A SLSA exige verificações de segurança para o código-fonte, o processo de build e a procedência do código. Muitos desses requisitos podem ser incluídos em um pipeline de CI/CD automatizado. Para entender como o Google aplica essas práticas internamente, consulte a abordagem doGoogle Cloudem relação à mudança.

Verifique se as implantações do aplicativo seguem os processos aprovados

Esta recomendação é relevante para a seguinte área de foco: segurança do aplicativo.

Se um invasor comprometer seu pipeline de CI/CD, toda a pilha de aplicativos poderá ser afetada. Para proteger o pipeline, aplique um processo de aprovação estabelecido antes de implantar o código na produção.

Se você usa o Google Kubernetes Engine (GKE), o GKE Enterprise ou o Cloud Run, é possível estabelecer um processo de aprovação usando a autorização binária. A autorização binária anexa assinaturas configuráveis a imagens de contêiner. Essas assinaturas (também chamadas de atestados) ajudam a validar a imagem. No momento da implantação, a autorização binária usa esses atestados para determinar se um processo foi concluído. Por exemplo, você pode usar a autorização binária para:

  • Verifique se um sistema de build específico ou um pipeline de CI criou uma imagem de contêiner.
  • Confira se uma imagem de contêiner está em conformidade com uma política de assinatura de vulnerabilidades.
  • Verifique se uma imagem de contêiner transmite os critérios de promoção para o próximo ambiente de implantação, por exemplo, do desenvolvimento para o controle de qualidade.

Ao usar a autorização binária, você pode exigir que apenas o código confiável seja executado nas plataformas de destino.

Verificar vulnerabilidades conhecidas antes da implantação do aplicativo

Esta recomendação é relevante para a seguinte área de foco: segurança do aplicativo.

Recomendamos o uso de ferramentas automatizadas que possam realizar continuamente verificações de vulnerabilidade em artefatos de aplicativos antes que eles sejam implantados na produção.

Para aplicativos contêineres, use o Artifact Analysis para executar automaticamente verificações de vulnerabilidade em imagens de contêiner. O Artifact Analysis verifica as novas imagens quando elas são enviadas para o Artifact Registry. A verificação extrai informações sobre os pacotes do sistema no contêiner. Após a verificação inicial, o Artifact Analysis monitora continuamente os metadados de imagens verificadas no Artifact Registry em busca de novas vulnerabilidades. Quando o Artifact Analysis recebe informações de vulnerabilidade novas e atualizadas de origens de vulnerabilidade, ele faz o seguinte:

  • Atualiza os metadados das imagens digitalizadas para mantê-las atualizadas.
  • Cria novas ocorrências de vulnerabilidade para novas notas.
  • Exclui ocorrências de vulnerabilidade que não são mais válidas.

Monitore o código do aplicativo para buscar vulnerabilidades conhecidas

Esta recomendação é relevante para a seguinte área de foco: segurança do aplicativo.

Use ferramentas automatizadas para monitorar constantemente o código do aplicativo em busca de vulnerabilidades conhecidas, como o OWASP Top 10. Para mais informações sobre Google Cloud produtos e recursos compatíveis com as 10 principais técnicas de mitigação do OWASP, consulte As 10 principais opções de mitigação do OWASP no Google Cloud.

Use o Web Security Scanner para ajudar a identificar vulnerabilidades de segurança nos aplicativos da Web do App Engine, Compute Engine e GKE. O scanner rastreia seu aplicativo, segue todos os links no escopo dos URLs iniciais e tenta acessar o máximo possível de entradas de usuário e manipuladores de eventos. Ele verifica e detecta automaticamente vulnerabilidades comuns, incluindo scripting entre sites, injeção de código, conteúdo misto e bibliotecas desatualizadas ou não seguras. O Web Security Scanner oferece identificação precoce desses tipos de vulnerabilidades sem distrair você com falsos positivos.

Além disso, se você usa o GKE Enterprise para gerenciar frotas de clusters do Kubernetes, o painel de postura de segurança mostra recomendações opinativas e acionáveis para melhorar a postura de segurança da sua frota.