Este documento no Framework da arquitetura do Google Cloud fornece práticas recomendadas para implantar aplicativos com segurança.
Para implantar aplicativos seguros, você precisa ter um ciclo de vida de desenvolvimento de software bem definido, com verificações de segurança apropriadas durante as etapas de design, desenvolvimento, teste e implantação. Ao projetar um aplicativo, recomendamos uma arquitetura de sistema em camadas que use frameworks padronizados para identidade, autorização e controle de acesso.
Automatizar versões seguras
Sem ferramentas automatizadas, pode ser difícil implantar, atualizar e corrigir ambientes de aplicativos complexos para atender a requisitos de segurança consistentes. Por isso, recomendamos que você crie um pipeline de CI/CD para essas tarefas, o que pode resolver muitos desses problemas. Os pipelines automatizados removem erros manuais, fornecem loops padronizados de feedback de desenvolvimento e permitem iterações rápidas do produto. Por exemplo, os pools particulares do Cloud Build permitem implantar um pipeline de CI/CD gerenciado e altamente seguro para setores altamente regulamentados, incluindo finanças e saúde.
Use a automação para verificar vulnerabilidades de segurança quando os artefatos forem criados. Também é possível definir políticas para diferentes ambientes (desenvolvimento, teste, produção etc.) para que apenas artefatos verificados sejam implantados.
Verificar se as implantações do aplicativo seguem os processos aprovados
Se um invasor comprometer seu pipeline de CI/CD, toda a pilha 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ê planeja usar o Google Kubernetes Engine (GKE) ou o GKE Enterprise, estabeleça essas verificações e equilíbrios 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. Na implantação, a autorização binária usa esses atestados para determinar que um processo foi concluído anteriormente. Por exemplo, use a autorização binária para:
- Verificar se um sistema de compilação específico ou um pipeline de integração contínua (CI, na sigla em inglês) 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.
Verificar vulnerabilidades conhecidas antes da implantação
Recomendamos o uso de ferramentas automatizadas que possam realizar continuamente verificações de vulnerabilidade em imagens de contêiner antes que os contêineres sejam implantados na produção.
Use o Artifact Analysis para verificar automaticamente vulnerabilidades em contêineres armazenados no Artifact Registry e no Container Registry. Esse processo inclui duas tarefas: verificação e análise contínua.
Para começar, o Artifact Analysis verifica novas imagens quando são enviadas ao Artifact Registry ou ao Container Registry. A verificação extrai informações sobre os pacotes do sistema no contêiner.
Em seguida, o Artifact Analysis procura vulnerabilidades quando você faz upload da imagem. Após a verificação inicial, o Artifact Analysis monitora continuamente os metadados de imagens verificadas no Artifact Registry e no Container 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
É uma prática recomendada usar ferramentas automatizadas que possam monitorar constantemente o código do aplicativo para detectar vulnerabilidades conhecidas, como o OWASP Top 10. Para uma descrição dos produtos e recursos do Google Cloud compatíveis com as 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 Google Kubernetes Engine. Ele rastreia seu aplicativo, seguindo 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 em vários locais (XSS), injeção Flash, conteúdo misto (HTTP em HTTPS) e bibliotecas desatualizadas ou não seguras. O Web Security Scanner oferece identificação antecipada desses tipos de vulnerabilidades com baixas taxas de falso positivo.
Controlar a movimentação de dados entre perímetros
Para controlar a movimentação de dados em um perímetro, configure perímetros de segurança em torno dos recursos dos serviços gerenciados pelo Google. Use o VPC Service Controls para colocar todos os componentes e serviços no seu pipeline de CI/CD (por exemplo, Container Registry, Artifact Registry, Artifact Analysis e autorização binária) dentro de um perímetro de segurança.
Os VPC Service Controls melhoram sua capacidade de reduzir o risco de cópia ou transferência não autorizada de dados (exfiltração de dados) de serviços gerenciados pelo Google. Com VPC Service Controls, é possível configurar os perímetros de segurança em torno dos recursos dos serviços gerenciados pelo Google para controlar a movimentação de dados por todo o limite do perímetro. Quando um perímetro de serviço é aplicado, as solicitações que violam a política do perímetro são negadas, como as feitas para serviços protegidos de fora de um perímetro. Quando um serviço é protegido por um perímetro aplicado, o VPC Service Controls garante o seguinte:
- Um serviço não pode transmitir dados para fora do perímetro. Os serviços protegidos funcionam normalmente dentro do perímetro, mas não podem enviar recursos e dados para fora dele. Essa restrição ajuda a impedir que pessoas mal-intencionadas com informações privilegiadas tenham acesso a projetos no perímetro exfiltrem dados.
- As solicitações provenientes de fora do perímetro para o serviço protegido são atendidas somente se respeitarem os critérios dos níveis de acesso atribuídos ao perímetro.
- Esse serviço pode ser disponibilizado para projetos em outros perímetros usando pontes do perímetro.
Criptografar as imagens do contêiner
No Google Cloud, é possível criptografar as imagens de contêiner usando chaves de criptografia gerenciadas pelo cliente (CMEK). As chaves de CMEK são gerenciadas no Cloud Key Management Service (Cloud KMS). Ao usar o CMEK, você pode desativar temporariamente ou permanentemente o acesso a uma imagem de contêiner criptografada desativando ou destruindo a chave.
A seguir
Saiba mais sobre como proteger a cadeia de suprimentos e a segurança dos aplicativos com os seguintes recursos:
- Gerenciar obrigações de conformidade (próximo documento desta série)
- Excelência operacional
- Autorização binária
- Artifact Analysis
- Artifact Registry