Este princípio no pilar de segurança da Google Cloud estrutura bem arquitetada fornece recomendações para incorporar funcionalidades, controlos e práticas de segurança robustos no design das suas aplicações, serviços e plataformas na nuvem. Desde a idealização às operações, a segurança é mais eficaz quando está incorporada como parte integral de todas as fases do seu processo de design.
Vista geral do princípio
Conforme explicado em Uma vista geral do compromisso da Google com a segurança por conceção, segurança por predefinição e segurança por conceção são frequentemente usadas de forma intercambiável, mas representam abordagens distintas para criar sistemas seguros. Ambas as abordagens visam minimizar as vulnerabilidades e melhorar a segurança, mas diferem no âmbito e na implementação:
- Seguro por predefinição: centra-se em garantir que as definições predefinidas de um sistema estão definidas para um modo seguro, minimizando a necessidade de os utilizadores ou os administradores tomarem medidas para proteger o sistema. Esta abordagem visa oferecer um nível base de segurança a todos os utilizadores.
- Seguro desde a conceção: enfatiza a incorporação proativa de considerações de segurança ao longo do ciclo de vida de desenvolvimento de um sistema. Esta abordagem consiste em antecipar potenciais ameaças e vulnerabilidades antecipadamente e fazer escolhas de design que mitiguem os riscos. Esta abordagem envolve a utilização de práticas de programação seguras, a realização de revisões de segurança e a incorporação da segurança ao longo do processo de conceção. A abordagem de segurança por conceção é uma filosofia abrangente que orienta o processo de desenvolvimento e ajuda a garantir que a segurança não é uma reflexão tardia, mas sim uma parte integrante da conceção de um sistema.
Recomendações
Para implementar o princípio de segurança por design para as suas cargas de trabalho na nuvem, considere as recomendações nas secções seguintes:
- Escolha componentes do sistema que ajudam a proteger as suas cargas de trabalho
- Crie uma abordagem de segurança em camadas
- Use serviços e infraestruturas reforçados e atestados
- Encripte dados em repouso e em trânsito
Escolha componentes do sistema que ajudam a proteger as suas cargas de trabalho
Esta recomendação é relevante para todas as áreas de foco.
Uma decisão fundamental para uma segurança eficaz é a seleção de componentes robustos do sistema, incluindo componentes de hardware e software, que constituem a sua plataforma, solução ou serviço. Para reduzir a superfície de ataque de segurança e limitar potenciais danos, também tem de considerar cuidadosamente os padrões de implementação destes componentes e as respetivas configurações.
No código da sua aplicação, recomendamos que use bibliotecas, abstrações e frameworks de aplicações simples, seguros e fiáveis para eliminar classes de vulnerabilidades. Para procurar vulnerabilidades em bibliotecas de software, pode usar ferramentas de terceiros. Também pode usar o software de código aberto garantido, que ajuda a reduzir os riscos para a sua cadeia de abastecimento de software através da utilização de pacotes de software de código aberto (OSS) que a Google usa e protege.
A sua infraestrutura tem de usar opções de rede, armazenamento e computação que suportem o funcionamento seguro e estejam alinhadas com os seus requisitos de segurança e níveis de aceitação de risco. A segurança da infraestrutura é importante para cargas de trabalho internas e viradas para a Internet.
Para obter informações sobre outras soluções Google que suportam esta recomendação, consulte Implemente a segurança shift-left.
Crie uma abordagem de segurança em camadas
Esta recomendação é relevante para as seguintes áreas de foco:
- Segurança de IA e ML
- Segurança das infraestruturas
- Gestão de identidade e de acesso
- Segurança dos dados
Recomendamos que implemente segurança em cada camada da sua aplicação e pilha de infraestrutura através de uma abordagem de defesa em profundidade.
Use as funcionalidades de segurança em cada componente da sua plataforma. Para limitar o acesso e identificar os limites do potencial impacto (ou seja, o raio de impacto) em caso de incidente de segurança, faça o seguinte:
- Simplifique o design do seu sistema para acomodar a flexibilidade sempre que possível.
- Documente os requisitos de segurança de cada componente.
- Incorporar um mecanismo seguro robusto para responder aos requisitos de resiliência e recuperação.
Quando criar as camadas de segurança, faça uma avaliação do risco para determinar as funcionalidades de segurança de que precisa para cumprir os requisitos de segurança internos e os requisitos regulamentares externos. Recomendamos que use uma framework de avaliação do risco norma da indústria que se aplica a ambientes em nuvem e que é relevante para os seus requisitos regulamentares. Por exemplo, a Cloud Security Alliance (CSA) fornece a Cloud Controls Matrix (CCM). A sua avaliação de risco fornece-lhe um catálogo de riscos e controlos de segurança correspondentes para os mitigar.
Quando fizer a avaliação de risco, lembre-se de que tem um acordo de responsabilidade partilhada com o seu fornecedor de nuvem. Por conseguinte, os seus riscos num ambiente de nuvem diferem dos riscos num ambiente no local. Por exemplo, num ambiente no local, tem de mitigar as vulnerabilidades da sua pilha de hardware. Por outro lado, num ambiente de nuvem, o fornecedor de nuvem assume estes riscos. Além disso, lembre-se de que os limites das responsabilidades partilhadas diferem entre os serviços IaaS, PaaS e SaaS para cada fornecedor de nuvem.
Depois de identificar os potenciais riscos, tem de conceber e criar um plano de mitigação que use controlos técnicos, administrativos e operacionais, bem como proteções contratuais e atestações de terceiros. Além disso, um método de modelagem de ameaças, como o método de modelagem de ameaças de aplicações OWASP, ajuda a identificar potenciais lacunas e sugere ações para as resolver.
Use infraestrutura e serviços fortalecidos e atestados
Esta recomendação é relevante para todas as áreas de foco.
Um programa de segurança desenvolvido mitiga novas vulnerabilidades, conforme descrito nos boletins de segurança. O programa de segurança também deve fornecer remediação para corrigir vulnerabilidades em implementações existentes e proteger as imagens de VMs e contentores. Pode usar guias de reforço específicos do SO e da aplicação das suas imagens, bem como referências, como a fornecida pelo Center of Internet Security (CIS).
Se usar imagens personalizadas para as suas VMs do Compute Engine, tem de aplicar as correções às imagens manualmente. Em alternativa, pode usar imagens do SO preparadas fornecidas pela Google, que são corrigidas regularmente. Para executar contentores em VMs do Compute Engine, use imagens do SO otimizado para contentores criadas pela Google. A Google aplica patches e atualiza regularmente estas imagens.
Se usar o GKE, recomendamos que ative as atualizações automáticas de nós para que a Google atualize os nós do cluster com os patches mais recentes. A Google gere os planos de controlo do GKE, que são atualizados e corrigidos automaticamente. Para reduzir ainda mais a superfície de ataque dos seus contentores, pode usar imagens sem distribuição. As imagens sem distribuição são ideais para aplicações sensíveis à segurança, microsserviços e situações em que minimizar o tamanho da imagem e a superfície de ataque é fundamental.
Para cargas de trabalho confidenciais, use a VM protegida, que impede o carregamento de código malicioso durante o ciclo de arranque da VM. As instâncias de VM protegida oferecem segurança de arranque, monitorizam a integridade e usam o Virtual Trusted Platform Module (vTPM).
Para ajudar a proteger o acesso SSH, o Início de sessão do SO permite que os seus funcionários estabeleçam ligação às VMs através das autorizações de gestão de identidade e acesso (IAM) como fonte de verdade, em vez de dependerem das chaves SSH. Por isso, não tem de gerir chaves SSH em toda a sua organização. O início de sessão no SO associa o acesso de um administrador ao respetivo ciclo de vida do funcionário. Assim, quando os funcionários mudam de funções ou saem da sua organização, o respetivo acesso é revogado com a conta. O SO O início de sessão também suporta a autenticação de dois fatores da Google, que adiciona uma camada adicional de segurança contra ataques de roubo de conta.
No GKE, as instâncias de aplicações são executadas em contentores do Docker. Para ativar um perfil de risco definido e impedir que os funcionários façam alterações aos contentores, certifique-se de que os seus contentores são sem estado e imutáveis. O princípio da imutabilidade significa que os seus funcionários não modificam o contentor nem acedem ao mesmo de forma interativa. Se o contentor tiver de ser alterado, crie uma nova imagem e volte a implementar essa imagem. Ativar o acesso SSH aos contentores subjacentes apenas em cenários de depuração específicos.
Para ajudar a proteger as configurações a nível global no seu ambiente, pode usar as políticas de organização para definir restrições ou limites de segurança nos recursos que afetam o comportamento dos seus recursos na nuvem. Por exemplo, pode definir as seguintes políticas de organização e aplicá-las globalmente numa Google Cloud organização ou seletivamente ao nível de uma pasta ou de um projeto:
- Desative a atribuição de endereços IP externos a VMs.
- Restringir a criação de recursos a localizações geográficas específicas.
- Desativar a criação de contas de serviço ou das respetivas chaves.
Encripte dados em repouso e em trânsito
Esta recomendação é relevante para as seguintes áreas de foco:
- Segurança das infraestruturas
- Segurança dos dados
A encriptação de dados é um controlo fundamental para proteger informações confidenciais e é uma parte essencial da gestão de dados. Uma estratégia de proteção de dados eficaz inclui controlo de acesso, segmentação de dados e residência geográfica, auditoria e implementação de encriptação baseada numa avaliação cuidadosa dos requisitos.
Por predefinição, Google Cloud encripta os dados dos clientes armazenados em repouso>, sem que seja necessária qualquer ação da sua parte. Além da encriptação predefinida, o Google CloudGoogle Cloud oferece opções para a encriptação de envelopes e a gestão de chaves de encriptação. Tem de identificar as soluções que melhor se adequam aos seus requisitos de geração, armazenamento e rotação de chaves, quer esteja a escolher as chaves para o seu armazenamento, para computação ou para cargas de trabalho de Big Data. Por exemplo, as chaves de encriptação geridas pelo cliente (CMEKs) podem ser criadas no Cloud Key Management Service (Cloud KMS). As CMEKs podem ser baseadas em software ou protegidas por HSM para cumprir os seus requisitos regulamentares ou de conformidade, como a necessidade de rodar as chaves de encriptação regularmente. A chave automática do Cloud KMS permite-lhe automatizar o aprovisionamento e a atribuição de CMEKs. Além disso, pode usar as suas próprias chaves provenientes de um sistema de gestão de chaves de terceiros através do Cloud External Key Manager (Cloud EKM).
Recomendamos vivamente que os dados sejam encriptados em trânsito. A Google encripta e autentica os dados em trânsito numa ou mais camadas de rede quando os dados se movem para fora dos limites físicos que não são controlados pela Google ou em nome da Google. Todo o tráfego de VM para VM numa rede de VPC e entre redes de VPC em intercâmbio é encriptado. Pode usar o MACsec para a encriptação do tráfego através de ligações do Cloud Interconnect. O IPsec oferece encriptação para o tráfego através de ligações do Cloud VPN. Pode proteger o tráfego de aplicação para aplicação na nuvem através da utilização de funcionalidades de segurança, como configurações de TLS e mTLS no Apigee e Cloud Service Mesh para aplicações em contentores.
Por predefinição, Google Cloud encripta os dados inativos e os dados em trânsito na rede. No entanto, os dados não são encriptados por predefinição enquanto estão a ser usados na memória. Se a sua organização processar dados confidenciais, tem de mitigar quaisquer ameaças que comprometam a confidencialidade e a integridade da aplicação ou dos dados na memória do sistema. Para mitigar estas ameaças, pode usar a computação confidencial, que fornece um ambiente de execução fiável para as suas cargas de trabalho de computação. Para mais informações, consulte a vista geral da VM confidencial.