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 arquitetado ajuda a identificar controles práticos que podem ser implementados no início do ciclo de vida de desenvolvimento de software para melhorar a postura de segurança. Ele oferece 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

A segurança shift-left significa adotar práticas de segurança no início do ciclo de vida de desenvolvimento de software. Esse princípio tem as seguintes metas:

  • Evite falhas 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. Você também pode usar outros recursos específicos da plataforma, como o serviço de política da organização e os clusters do GKE reforçados no Google Cloud.
  • Detecte e corrija bugs de segurança de forma rápida, confiável e antecipada após o commit de qualquer mudança no sistema. Adote práticas como revisões de código, verificação de vulnerabilidades após a implantação e testes de segurança.

Os princípios de implementação de segurança incorporada ao design e de deslocamento à esquerda estão relacionados, mas têm escopos diferentes. O princípio de segurança incorporada ao design ajuda a evitar falhas 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 todos os usuários teriam o mesmo nível de acesso sem ela. A segurança de shift-left ajuda a evitar defeitos de implementação (bugs e problemas de configuração) 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 shift-left nas suas cargas de trabalho na nuvem, considere as recomendações nas seções a seguir:

Adotar controles de segurança preventiva

Esta 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 preventiva são cruciais para manter uma postura de segurança forte na nuvem. Esses controles ajudam você a reduzir os riscos de maneira proativa. Você pode 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 preventiva são mais eficazes quando implementados usando infraestrutura como código (IaC). Com a IaC, os controles de segurança preventiva podem incluir verificações mais personalizadas no código da infraestrutura antes da implantação das mudanças. Quando combinados com a automação, os controles de segurança preventiva podem ser executados como parte das verificações automáticas do pipeline de CI/CD.

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

Com o IAM, você autoriza quem pode agir em recursos específicos com base em permissões. Para mais informações, consulte Controle de acesso a recursos da organização com o IAM.

Com o serviço de políticas da organização, é possível definir restrições nos 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 as políticas da organização, é possível restringir o acesso a recursos usando os seguintes métodos:

  • Tags com o IAM: atribua uma tag a um conjunto de recursos e defina a definição de acesso para a tag em vez de definir as permissões de acesso em cada recurso.
  • Condições do IAM: definem o controle de acesso condicional 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 da nuvem

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

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

Automatizar o provisionamento e o gerenciamento de recursos e cargas de trabalho na 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. Ao adotar a IaC, você cria uma infraestrutura repetível e oferece à sua equipe de operações um estado válido conhecido. A 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 o OPA. É possível auditar as mudanças na infraestrutura ao longo do tempo e executar verificações automáticas no código de infraestrutura antes da implantação das mudanças.

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, oGoogle Cloud fornece o blueprint de bases empresariais. Esse blueprint é um design opinativo do Google que segue todas as nossas práticas e configurações recomendadas. O blueprint fornece instruções detalhadas para configurar e implantar sua 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 próprios requisitos de segurança. Você pode criar nesse blueprint com outros modelos ou projetar sua própria automação. A Google Cloud Central de arquitetura oferece outros blueprints que podem ser implementados com base no blueprint de bases empresariais. Confira alguns exemplos de projetos:

Automatizar lançamentos seguros de aplicativos

Essa recomendação é relevante para a seguinte área de foco: Segurança para aplicativos.

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 seu ciclo de vida de desenvolvimento de software (SDLC, na sigla em inglês). Os pipelines de CI/CD automatizados ajudam a remover erros manuais, fornecem loops de feedback de desenvolvimento padronizados e permitem iterações eficientes de produtos. A entrega contínua é uma das práticas recomendadas pelo framework da 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 com antecedência, rapidez e confiabilidade. Por exemplo, é possível verificar vulnerabilidades de segurança automaticamente quando os artefatos são criados, reduzir o escopo das revisões 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 você 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, incluindoCloud Build,Cloud Deploy,Web Security Scanner eautorização binária.

Para estabelecer um processo que verifique vários requisitos de segurança no seu SDLC, use o framework Níveis da cadeia de suprimentos para artefatos de software (SLSA), definido pelo Google. O SLSA exige verificações de segurança para código-fonte, processo de build e 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 Abordagem daGoogle Cloudem relação à mudança.

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

Essa recomendação é relevante para a seguinte área de foco: Segurança para aplicativos.

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, use a autorização binária para:

  • Verificar se um sistema de compilação 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, é possível garantir que apenas códigos confiáveis sejam executados nas plataformas de destino.

Verificar vulnerabilidades conhecidas antes da implantação do aplicativo

Essa recomendação é relevante para a seguinte área de foco: Segurança para aplicativos.

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 em contêineres, use o Artifact Analysis para executar automaticamente verificações de vulnerabilidade em imagens de contêiner. O Artifact Analysis verifica 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

Essa recomendação é relevante para a seguinte área de foco: Segurança para aplicativos.

Use ferramentas automatizadas para monitorar constantemente o código do aplicativo e detectar vulnerabilidades conhecidas, como o OWASP Top 10. Para mais informações sobre os produtos e recursos do Google Cloud que oferecem suporte às técnicas de mitigação do OWASP Top 10, consulte Opções de mitigação do OWASP Top 10 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. Ele 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 antecipada 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 úteis para ajudar a melhorar a postura de segurança da sua frota.