Esse princípio no pilar de segurança do Google Cloud Well-Architected Framework 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 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
Segurança de deslocamento para a esquerda 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:
- Evitar defeitos de segurança antes que as mudanças do sistema sejam feitas. Implementar proteções de segurança preventivas e adotar 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 clusters do GKE reforçados em Google Cloud.
- Detectar e corrigir bugs de segurança de forma rápida, confiável e no início do processo após a confirmação de mudanças no sistema. Adotar 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 implementação de segurança por design e segurança de deslocamento para a esquerda estão relacionados, mas diferem no escopo. O princípio de segurança por design ajuda a evitar falhas de design fundamentais que exigem a rearquitetura 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 deslocamento para a esquerda 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 deslocamento para a esquerda nas cargas de trabalho na nuvem, considere as recomendações nas seções a seguir:
- Adotar controles de segurança preventivos
- Automatizar o provisionamento e o gerenciamento de recursos da nuvem
- Automatizar versões de aplicativos seguros
- Verificar se as implantações do aplicativo seguem os processos aprovados
- Verificar vulnerabilidades conhecidas antes da implantação do aplicativo
- Monitorar o código do aplicativo contra vulnerabilidades conhecidas
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 forma 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 a infraestrutura como código (IaC). Com a IaC, os controles de segurança preventivos podem incluir verificações mais personalizadas no código de 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 seguintes produtos e Google Cloud recursos podem ajudar a implementar controles preventivos no seu ambiente:
- Restrições do serviço de política da organização: configure restrições predefinidas e personalizadas com controle centralizado.
- VPC Service Controls: crie perímetros em torno dos seus Google Cloud serviços.
- Identity and Access Management (IAM), Privileged Access Manager, e políticas de limite de acesso principal: restrinja o acesso a recursos.
- Controlador de Políticas e Open Policy Agent (OPA): aplique restrições de IaC no pipeline de CI/CD e evite configurações incorretas na nuvem.
O IAM permite autorizar quem pode agir em recursos específicos com base nas permissões. Para mais informações, consulte Controle de acesso para recursos da organização com o IAM.
O serviço de política da organização permite 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:
- Limite o compartilhamento de recursos com base no domínio.
- Limitar o uso de contas de serviço.
- Restrinja a localização física dos recursos recém-criados.
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 si, em vez de definir as permissões de acesso em cada recurso.
- Condições do IAM: defina 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 a zona de destino do Google Cloud .
Automatizar o provisionamento e o gerenciamento de recursos da 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 do 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. A adoção da IaC permite criar uma infraestrutura repetível e fornece à equipe de operações um estado bom 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 oferece a capacidade de adotar práticas como política como código com ferramentas como o OPA. É possível auditar as mudanças de infraestrutura ao longo do tempo e executar verificações automáticas no código de 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 a criar um ambiente de aplicativo seguro usando a IaC e a automação, Google Cloud oferece o blueprint de bases empresariais. Esse blueprint é o 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 Google Cloud topologia 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 o blueprint com outros modelos ou projetar sua própria automação. O Google Cloud Centro de arquitetura oferece outros blueprints que podem ser implementados com base no blueprint de bases empresariais. Confira alguns exemplos desses blueprints:
- Implantar uma plataforma de desenvolvimento empresarial no Google Cloud
- Implantar uma arquitetura sem servidor segura usando o Cloud Run
- Criar e implantar modelos de IA generativa e de machine learning em uma empresa
- Importar dados do Google Cloud para um data warehouse seguro do BigQuery
Automatizar versões de aplicativos seguros
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 o 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 padronizados de feedback de desenvolvimento e permitem iterações eficientes do produto. A entrega contínua é uma das práticas recomendadas pelo framework DORA.
A automação de versões de aplicativos usando pipelines de CI/CD ajuda a melhorar sua capacidade de detectar e corrigir bugs de segurança de forma rápida, confiável e no início do processo. Por exemplo, é possível verificar vulnerabilidades de segurança automaticamente quando os artefatos são criados, restringir 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 ambientes de desenvolvimento, teste ou produção) para que apenas artefatos verificados sejam implantados.
Para ajudar a automatizar versões de aplicativos e incorporar verificações de segurança no seu pipeline de CI/CD, Google Cloud o oferece várias ferramentas, incluindo o Cloud Build, o Cloud Deploy, o Web Security Scanner, o e a autorização binária.
Para estabelecer um processo que verifique vários requisitos de segurança no SDLC, use o framework de níveis da cadeia de suprimentos para artefatos de software (SLSA), que foi 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 a Google Cloudabordagem do para mudanças.
Verificar 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) 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 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 atende aos 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 aplicar 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 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 ao 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.
Monitorar o código do aplicativo contra 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 em busca de vulnerabilidades conhecidas , como o OWASP Top 10. Para mais informações sobre Google Cloud produtos e recursos 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 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 as vulnerabilidades comuns, incluindo scripting em vários sites, injeção de código, conteúdo misto, e bibliotecas desatualizadas ou desprotegidas. 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 para gerenciar frotas de clusters do Kubernetes, o painel de postura de segurança mostra recomendações opinativas e acionáveis para ajudar a melhorar a postura de segurança da sua frota.