Este princípio no pilar de segurança da Google Cloud estrutura bem arquitetada ajuda a identificar controlos práticos que pode implementar numa fase inicial do ciclo de vida de desenvolvimento de software para melhorar a sua postura de segurança. Oferece recomendações que ajudam a implementar salvaguardas de segurança preventivas e controlos de segurança pós-implementação.
Vista geral do princípio
A segurança shift-left significa adotar práticas de segurança numa fase inicial do ciclo de vida do desenvolvimento de software. Este princípio tem os seguintes objetivos:
- Evite defeitos de segurança antes de fazer alterações ao sistema. Implemente salvaguardas 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 pode usar outras capacidades específicas da plataforma, como o serviço de políticas organizacionais e os clusters do GKE reforçados no Google Cloud.
- Detete e corrija erros de segurança de forma antecipada, rápida e fiável após a confirmação de quaisquer alterações ao sistema. Adote práticas como revisões de código, análise de vulnerabilidades pós-implementação e testes de segurança.
Os princípios de implementação da segurança por predefinição e de mudança para a esquerda da segurança estão relacionados, mas diferem no âmbito. O princípio da segurança por design ajuda a evitar falhas de design fundamentais que exigiriam a reestruturaçã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 utilizadores teriam o mesmo nível de acesso sem ela. A segurança de deslocamento para a esquerda ajuda a evitar defeitos de implementação (erros e configurações incorretas) antes de as alterações serem aplicadas e permite correções rápidas e fiáveis após a implementação.
Recomendações
Para implementar o princípio de segurança shift-left para as suas cargas de trabalho na nuvem, considere as recomendações nas secções seguintes:
- Adote controlos de segurança preventivos
- Automatize o aprovisionamento e a gestão de recursos na nuvem
- Automatize lançamentos de aplicações seguros
- Garanta que as implementações de aplicações seguem processos aprovados
- Analise vulnerabilidades conhecidas antes da implementação da aplicação
- Monitorize o código da sua aplicação para encontrar vulnerabilidades conhecidas
Adote controlos de segurança preventivos
Esta recomendação é relevante para as seguintes áreas de foco:
- Gestão de identidade e de acesso
- Governança, risco e conformidade na nuvem
Os controlos de segurança preventivos são essenciais para manter uma postura de segurança forte na nuvem. Estes controlos ajudam a mitigar os riscos de forma proativa. Pode impedir configurações incorretas e o acesso não autorizado a recursos, permitir que os programadores trabalhem de forma eficiente e ajudar a garantir a conformidade com as normas da indústria e as políticas internas.
Os controlos de segurança preventivos são mais eficazes quando são implementados através da infraestrutura como código (IaC). Com a IaC, os controlos de segurança preventivos podem incluir verificações mais personalizadas no código da infraestrutura antes de as alterações serem implementadas. Quando combinados com a automatização, os controlos 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 capacidades podem ajudar a implementar controlos preventivos no seu ambiente:
- Restrições do serviço de políticas da organização: configure restrições predefinidas e personalizadas com controlo centralizado.
- VPC Service Controls: crie perímetros em torno dos seus Google Cloud serviços.
- Gestão de identidade e de acesso (IAM), gestor de acesso privilegiado, e políticas de limite de acesso principal: restringem o acesso aos recursos.
- Policy Controller e Open Policy Agent (OPA): aplique restrições de IaC no seu pipeline de CI/CD e evite configurações incorretas na nuvem.
O IAM permite-lhe autorizar quem pode agir em recursos específicos com base em autorizações. Para mais informações, consulte o artigo Controlo de acesso para recursos da organização com a IAM.
O serviço de políticas da organização permite-lhe definir restrições nos recursos para especificar como podem ser configurados. Por exemplo, pode usar uma política da organização para fazer o seguinte:
- Limite a partilha de recursos com base no domínio.
- Limite a utilização de contas de serviço.
- Restrinja a localização física dos recursos recém-criados.
Além de usar políticas organizacionais, pode restringir o acesso a recursos através dos seguintes métodos:
- Etiquetas com IAM: atribuem uma etiqueta a um conjunto de recursos e, em seguida, definem a definição de acesso para a própria etiqueta, em vez de definirem as autorizações de acesso em cada recurso.
- Condições do IAM: defina o controlo de acesso condicional baseado em atributos para recursos.
- Defesa em profundidade: use os VPC Service Controls para restringir ainda mais o acesso aos recursos.
Para mais informações sobre a gestão de recursos, consulte o artigo Decida uma hierarquia de recursos para a sua Google Cloud zona de destino.
Automatize o aprovisionamento e a gestão de recursos na nuvem
Esta recomendação é relevante para as seguintes áreas de foco:
- Segurança para aplicações
- Governança, risco e conformidade na nuvem
A automatização do aprovisionamento e da gestão de recursos e cargas de trabalho na nuvem é mais eficaz quando também adota a IaC declarativa, em vez de scripts imperativos. A IaC não é uma ferramenta nem uma prática de segurança por si só, mas ajuda a melhorar a segurança da sua plataforma. A adoção da IaC permite-lhe criar uma infraestrutura repetível e oferece à sua equipa de operações um estado conhecido e bom. A IaC também melhora a eficiência das reversões, das alterações de auditoria e da resolução de problemas.
Quando combinada com pipelines de CI/CD e automatização, a IaC também lhe dá a capacidade de adotar práticas como a política como código com ferramentas como a OPA. Pode auditar as alterações à infraestrutura ao longo do tempo e executar verificações automáticas no código de infraestrutura antes de as alterações serem implementadas.
Para automatizar a implementação da infraestrutura, pode usar ferramentas como o Config Controller, o Terraform, o Jenkins e o Cloud Build. Para ajudar a criar um ambiente de aplicação seguro com a IaC e a automatização, a Google Cloud fornece o blueprint de bases empresariais.Google Cloud Este plano é o design opinativo da Google que segue todas as nossas práticas e configurações recomendadas. O projeto fornece instruções passo a passo para configurar e implementar a sua topologia através do Terraform e do Cloud Build. Google Cloud
Pode modificar os scripts do esquema de base empresarial para configurar um ambiente que siga as recomendações da Google e cumpra os seus próprios requisitos de segurança. Pode desenvolver ainda mais o plano detalhado com planos detalhados adicionais ou criar a sua própria automatização. O Google Cloud Architecture Center oferece outros planos que podem ser implementados além do plano de bases empresariais. Seguem-se alguns exemplos destes planos:
- Implemente uma plataforma de programadores empresariais em Google Cloud
- Implemente uma arquitetura sem servidor segura através do Cloud Run
- Crie e implemente modelos de IA generativa e aprendizagem automática numa empresa
- Importe dados de Google Cloud para um armazém de dados do BigQuery seguro
Automatize lançamentos de aplicações seguros
Esta recomendação é relevante para a seguinte área de foco: Segurança da aplicação.
Sem ferramentas automatizadas, pode ser difícil implementar, atualizar e aplicar patches em ambientes de aplicações complexos para cumprir requisitos de segurança consistentes. Recomendamos que crie pipelines de CI/CD automatizados para o ciclo de vida de desenvolvimento de software (SDLC). Os pipelines de CI/CD automatizados ajudam a remover erros manuais, oferecem ciclos de feedback de desenvolvimento padronizados e permitem iterações eficientes de produtos. O fornecimento contínuo é uma das práticas recomendadas que a estrutura DORA recomenda.
A automatização dos lançamentos de aplicações através de pipelines de CI/CD ajuda a melhorar a sua capacidade de detetar e corrigir erros de segurança de forma antecipada, rápida e fiável. Por exemplo, pode procurar vulnerabilidades de segurança automaticamente quando os artefactos são criados, restringir o âmbito das revisões de segurança e reverter para uma versão conhecida e segura. Também pode definir políticas para diferentes ambientes (como ambientes de desenvolvimento, teste ou produção) para que apenas os artefactos validados sejam implementados.
Para ajudar a automatizar os lançamentos de aplicações e incorporar verificações de segurança no seu pipeline de CI/CD, Google Cloud oferece várias ferramentas, incluindo o Cloud Build, Cloud Deploy, Web Security Scanner> e Binary Authorization.
Para estabelecer um processo que valide vários requisitos de segurança no seu SDLC, use a estrutura Supply-chain Levels for Software Artifacts (SLSA), que foi definida pela Google. A SLSA requer verificações de segurança para o código fonte, o processo de compilação e a proveniência do código. Muitos destes requisitos podem ser incluídos num pipeline de CI/CD automatizado. Para compreender como a Google aplica estas práticas internamente, consulte a Google Cloudabordagem da Google à mudança.
Garanta que as implementações de aplicações seguem processos aprovados
Esta recomendação é relevante para a seguinte área de foco: Segurança da aplicação.
Se um atacante comprometer a sua pipeline de CI/CD, toda a pilha de aplicações pode ser afetada. Para ajudar a proteger o pipeline, deve aplicar um processo de aprovação estabelecido antes de implementar o código em produção.
Se usar o Google Kubernetes Engine (GKE), o GKE Enterprise ou o Cloud Run, pode estabelecer um processo de aprovação através da autorização binária. A autorização binária anexa assinaturas configuráveis a imagens de contentores. Estas assinaturas (também denominadas atestos) ajudam a validar a imagem. No momento da implementação, a Binary Authorization usa estas atestações para determinar se um processo foi concluído. Por exemplo, pode usar a autorização binária para fazer o seguinte:
- Valide se um sistema de compilação específico ou um pipeline de CI criou uma imagem de contentor.
- Valide se uma imagem de contentor está em conformidade com uma política de assinatura de vulnerabilidades.
- Verifique se uma imagem de contentor cumpre os critérios para promoção ao ambiente de implementação seguinte, como do desenvolvimento para o controlo de qualidade.
Ao usar a autorização binária, pode aplicar a execução apenas de código fidedigno nas suas plataformas de destino.
Analise a existência de vulnerabilidades conhecidas antes da implementação da aplicação
Esta recomendação é relevante para a seguinte área de foco: Segurança da aplicação.
Recomendamos que use ferramentas automáticas que possam realizar continuamente análises de vulnerabilidades em artefactos de aplicações antes de serem implementados na produção.
Para aplicações contentorizadas, use a análise de artefactos para executar automaticamente análises de vulnerabilidades para imagens de contentores. A análise de artefactos analisa novas imagens quando são carregadas para o Artifact Registry. A análise extrai informações sobre os pacotes do sistema no contentor. Após a análise inicial, a análise de artefactos monitoriza continuamente os metadados das imagens analisadas no Artifact Registry para novas vulnerabilidades. Quando a análise de artefactos recebe informações de vulnerabilidade novas e atualizadas de origens de vulnerabilidades, faz o seguinte:
- Atualiza os metadados das imagens digitalizadas para os manter atualizados.
- Cria novas ocorrências de vulnerabilidades para novas notas.
- Elimina ocorrências de vulnerabilidades que já não são válidas.
Monitorize o código da sua aplicação para encontrar vulnerabilidades conhecidas
Esta recomendação é relevante para a seguinte área de foco: Segurança da aplicação.
Use ferramentas automáticas para monitorizar constantemente o código da sua aplicação em busca de vulnerabilidades conhecidas, como as 10 principais vulnerabilidades da OWASP. Para mais informações sobre os Google Cloud produtos e as funcionalidades que suportam as técnicas de mitigação do OWASP Top 10, consulte as 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 nas suas aplicações Web do App Engine, Compute Engine e GKE. O motor de rastreio rastreia a sua aplicação, segue todos os links no âmbito dos seus URLs de início e tenta exercer o maior número possível de entradas do utilizador e controladores de eventos. Pode analisar e detetar automaticamente vulnerabilidades comuns, incluindo scripts entre sites, injeção de código, conteúdo misto> e bibliotecas desatualizadas ou não seguras. O Web Security Scanner fornece uma identificação antecipada destes tipos de vulnerabilidades sem distrair com falsos positivos.
Além disso, se usar o GKE Enterprise para gerir frotas de clusters do Kubernetes, o painel de controlo da postura de segurança mostra recomendações acionáveis e baseadas em opiniões para ajudar a melhorar a postura de segurança da sua frota.