Considerações de segurança para o acelerador de zona de destino do Azure Spring Apps
Este artigo descreve as considerações e recomendações de segurança para uma carga de trabalho hospedada no Azure Spring Apps. Essas diretrizes ajudam você a criar uma carga de trabalho capaz de detectar, prevenir e responder a vulnerabilidades de segurança.
Um aplicativo seguro não pode garantir a segurança de toda a carga de trabalho. Como proprietário da carga de trabalho, avalie os erros humanos e avalie a superfície de ataque, como o aplicativo e os serviços de infraestrutura com os quais o aplicativo interage.
O Azure fornece controles de segurança para a rede, a identidade e os dados para dar suporte à sua estratégia de defesa em profundidade. Muitos dos controles são integrados ao Azure Spring Apps. Essas diretrizes se baseiam na linha de base de segurança do Azure para o Azure Spring Apps, que é derivada do Azure Security Benchmark versão 2.0. O parâmetro de comparação fornece recomendações sobre como proteger sua carga de trabalho executada na nuvem do Azure Spring Apps.
As equipes centralizadas fornecem controles de rede e identidade como parte da plataforma. Eles fornecem proteções para manter o controle sobre plataformas, aplicativos e recursos no Azure. A assinatura da zona de destino do aplicativo fornecida para a carga de trabalho é pré-provisionada com políticas, que são herdadas do grupo de gerenciamento.
Ao projetar a carga de trabalho, certifique-se de que os controles de segurança que você possui estejam alinhados com os controles centrais. O design está sujeito a revisões periódicas conduzidas pela equipe de segurança centralizada. Revise regularmente os controles de segurança e as políticas da plataforma com as equipes centrais para garantir que os requisitos de carga de trabalho sejam acomodados.
Para obter informações sobre o design da plataforma, consulte:
Considerações sobre o design
Tráfego interno. Restrinja ou permita que o tráfego entre recursos internos siga um princípio de segmentação corporativa que se alinhe aos riscos de negócios. Quando necessário, crie limites de isolamento por meio de redes virtuais e sub-redes. Implemente regras para restringir os fluxos de tráfego entre as redes.
Tráfego externo. Use recursos nativos do Azure para proteger seus recursos de carga de trabalho contra ataques de redes externas, incluindo:
- Ataques de DDoS (negação de serviço distribuído).
- Ataques específicos do aplicativo.
- Tráfego de Internet não solicitado e potencialmente mal-intencionado.
Gerenciamento de identidades. Use os recursos do Microsoft Entra, como identidades gerenciadas, logon único, autenticações fortes, identidades gerenciadas e acesso condicional para fornecer autenticação e autorização por meio da ID do Microsoft Entra.
Monitoramento de segurança. O sistema deve ter ferramentas de monitoramento para detectar ameaças e medir a conformidade usando as metas da organização e os controles do Azure Security Benchmark. Essas ferramentas devem ser integradas aos sistemas centrais de gerenciamento de eventos e informações de segurança (SIEM) para obter uma visão holística da postura de segurança.
Dados em trânsito. Os dados transferidos entre componentes, locais ou chamadas de API devem ser criptografados.
Dados inativos. Todos os dados persistentes, incluindo a configuração, devem ser criptografados.
Políticas de governança. Você deve detectar desvios dos padrões de conformidade definidos pela sua organização. O Azure Policy fornece definições internas que devem ser aplicadas para detectar os desvios. Quando você aplica políticas, isso não garante que você esteja totalmente em conformidade com todos os requisitos de um controle. Pode haver padrões compatíveis que não são abordados em definições internas.
Exposição de credenciais. Você pode implantar e executar código, configurações e dados persistentes com identidades ou segredos. Certifique-se de que as credenciais sejam examinadas quando você acessar os ativos.
Gerenciamento de certificado. Os certificados devem ser carregados com base no princípio Zero Trust de nunca confiar, sempre verificar e devem ser livres de credenciais. Confie apenas em certificados compartilhados verificando a identidade antes de conceder acesso aos certificados.
Implantações consistentes. Use a IaC (infraestrutura como código) para automatizar o provisionamento e a configuração de todos os recursos do Azure e fortalecer a postura de segurança.
Recomendações sobre design
Rede como perímetro
Esses controles de rede criam limites de isolamento e restringem os fluxos de entrada e saída do aplicativo.
Segmentação de rede
Crie ou use uma rede virtual existente ao implantar recursos de serviço do Azure Spring Cloud.
Crie isolamento na rede virtual por meio de sub-redes. Restrinja ou permita o tráfego entre recursos internos usando suas regras de NSG. Use o recurso de proteção de rede adaptável do Microsoft Defender para Nuvem para proteger ainda mais as configurações de NSG que limitam portas e IPs de origem. Baseie as configurações em regras de tráfego de redes externas.
Ao criar regras de segurança, use marcas de serviço do Azure para definir os controles de acesso à rede em vez de endereços IP específicos. Ao especificar o nome da etiqueta de serviço no campo de origem ou destino da regra apropriada, permita ou negue o tráfego para o serviço correspondente. A Microsoft gerencia os prefixos de endereço cobertos pela marca de serviço. Ela atualiza automaticamente a marca de serviço conforme os endereços mudam.
Use a marca de serviço em grupos de segurança de rede ou no Firewall do Azure para permitir o AzureSpringCloud
tráfego para aplicativos no Azure Spring Apps.
Para obter mais informações, consulte Responsabilidades do cliente para executar o Azure Spring Cloud em uma rede virtual.
Conexão com redes privadas
Em um ambiente colocado, use o Azure ExpressRoute ou a VPN (rede virtual privada) do Azure para criar conexões privadas entre os datacenters do Azure e a infraestrutura local. As conexões do ExpressRoute não passam pela Internet pública com confiabilidade, velocidades mais rápidas e latências mais baixas.
Para VPN ponto a site e VPN site a site, conecte dispositivos ou redes locais a uma rede virtual. Use qualquer combinação dessas opções de VPN e o Azure ExpressRoute.
Para conectar duas ou mais redes virtuais no Azure, use o emparelhamento de rede virtual. O tráfego de rede entre redes virtuais emparelhadas é particular. Esse tipo de tráfego é mantido na rede de backbone do Azure.
Ataques de redes externas
Coloque controles no tráfego de entrada e bloqueie ataques à camada de aplicativo com o Gateway de Aplicativo do Azure com WAF (firewall de aplicativo Web) integrado.
Use o Firewall do Azure para restringir o tráfego de saída do aplicativo. Você pode usar o Firewall do Azure para proteger aplicativos e serviços contra tráfego potencialmente mal-intencionado da Internet e de outros locais externos.
A filtragem baseada em inteligência contra ameaças do Firewall do Azure pode enviar um alerta ou bloquear o tráfego de e para endereços IP e domínios mal-intencionados conhecidos. Os endereços IP e os domínios são originados do feed de inteligência de ameaças da Microsoft. Quando a inspeção de conteúdo for necessária, implante um IDS/IPS (sistema de detecção de intrusão/prevenção de intrusão) de terceiros do Azure Marketplace com recursos de inspeção de conteúdo. Como alternativa, você pode usar IDS/IPS baseado em host ou uma solução de detecção e resposta de endpoint (EDR) baseada em host com, ou em vez de, IDS/IPS baseado em rede.
Para proteger os recursos de carga de trabalho contra ataques de DDoS, habilite a proteção padrão de DDoS em suas redes virtuais do Azure. Use o Microsoft Defender para Nuvem para detectar riscos de configuração incorreta em seus recursos relacionados à rede.
Proteger o DNS (Serviço de Nomes de Domínio)
Use o DNS do Azure para hospedar domínios DNS. Proteja zonas e registros DNS de agentes mal-intencionados. O RBAC do Azure (controle de acesso baseado em função) do Azure e os bloqueios de recursos são recomendados para essa finalidade. Para obter mais informações, confira Impedir entradas de DNS pendentes e evitar a tomada de subdomínios.
Identidade como o perímetro
O Azure fornece controles de identidade por meio da ID do Microsoft Entra. O aplicativo tem muitos recursos, como logon único, autenticações fortes, identidades gerenciadas e acesso condicional. Para obter informações sobre as opções de design para a arquitetura, consulte Considerações de identidade para o acelerador de zona de destino do Azure Spring Apps.
A seção a seguir descreve os aspectos de segurança dessas opções.
Integração com o sistema de identidade centralizado
As zonas de destino do Azure usam a ID do Microsoft Entra como o serviço padrão de gerenciamento de identidade e acesso. Para controlar os serviços de carga de trabalho, recomenda-se a ID centralizada do Microsoft Entra. A ID centralizada do Microsoft Entra inclui acesso aos recursos de rede da organização, ao Armazenamento do Azure, ao Key Vault e a outros serviços dos quais seu aplicativo depende.
Se você quiser conceder acesso ao plano de dados do Azure Spring Apps, use a função interna do Leitor de Dados do Azure Spring Cloud. Essa função concede permissões somente leitura.
Estes recursos do Microsoft Entra são recomendados:
Identidades de aplicativo. O aplicativo pode precisar acessar outros serviços do Azure. Por exemplo, se ele quiser recuperar segredos do Azure Key Vault.
Use identidades gerenciadas com o Azure Spring Apps para que o aplicativo possa se autenticar em outros serviços usando a ID do Microsoft Entra. Evite usar entidades de serviço para essa finalidade. O processo de autenticação de identidades gerenciadas não usa credenciais codificadas no código-fonte ou nos arquivos de configuração.
Se você precisar usar entidades de serviço com credenciais de certificado e voltar para segredos do cliente, é recomendável usar a ID do Microsoft Entra para criar uma entidade de serviço com permissões restritas no nível do recurso.
Em ambos os casos, o Key Vault pode ser usado com identidades gerenciadas pelo Azure. Um componente de runtime, como uma função do Azure, pode ser usado para recuperar os segredos do Key Vault. Para obter mais informações, consulte Autenticação no Azure Key Vault.
SSO (logon único) do Microsoft Entra. O SSO do Microsoft Entra é recomendado para autenticar o acesso ao aplicativo de outros aplicativos ou dispositivos executados na nuvem ou localmente. O SSO fornece gerenciamento de identidade para usuários internos e externos, como parceiros ou fornecedores.
Controles de autenticação fortes. O Microsoft Entra ID dá suporte a controles de autenticação fortes por meio de MFA (autenticação multifator) e métodos fortes sem senha. Para administradores e usuários privilegiados, use o nível mais alto do método de autenticação forte para reduzir o raio de explosão se houver uma violação. Em seguida, distribua a política de autenticação forte apropriada para outros usuários. Para obter mais informações, consulte Habilitar MFA no Azure e opções de autenticação sem senha para a ID do Microsoft Entra.
Acesso condicional aos recursos. O Azure Spring Apps dá suporte ao Acesso Condicional do Microsoft Entra para um controle de acesso mais granular baseado em condições definidas pelo usuário. Você pode definir condições para incluir entradas de usuário de determinados intervalos de IP que precisam entrar usando a MFA. Essas políticas de Acesso Condicional só se aplicam a contas de usuário que se autenticam na ID do Microsoft Entra para acessar e gerenciar aplicativos. Essas políticas não se aplicam a entidades de serviço, chaves ou tokens usados para se conectar aos recursos de carga de trabalho.
Acesso privilegiado. Implemente o Microsoft Entra Privileged Identity Management para garantir acesso com privilégios mínimos e relatórios detalhados em todo o ambiente do Azure. As equipes devem iniciar revisões de acesso recorrentes para garantir que as pessoas e os princípios de serviço certos tenham níveis de autorização atuais e corretos.
Controles de dados
Os controles de rede e identidade restringem o acesso ao aplicativo, mas os dados precisam ser protegidos. A criptografia garante a integridade dos dados e é um recurso de segurança fundamental que deve ser aplicado para mitigar ameaças.
Dados em trânsito
Os dados transferidos são suscetíveis a ataques fora de banda, como captura de tráfego. Use criptografia para garantir que os invasores não possam ler ou modificar facilmente esses dados. O Azure fornece criptografia para dados em trânsito entre data centers do Azure.
O Azure Spring Apps dá suporte à criptografia com TLS (Transport Layer Security) v1.2 ou superior. O TLS fornece comunicações seguras por meio de identidade e confiança e criptografa comunicações de todos os tipos. Você pode usar qualquer tipo de certificado TLS. Por exemplo, certificados emitidos por uma autoridade de certificação, certificados de validação estendida, certificados curinga com suporte para qualquer número de subdomínios ou certificados autoassinados para ambientes de desenvolvimento e teste.
A criptografia é crítica para o tráfego em redes externas e públicas. Todos os pontos de extremidade públicos devem usar HTTPS para tráfego de entrada por padrão. As chamadas de gerenciamento para configurar o serviço Azure Spring Apps por meio de chamadas à API do Azure Resource Manager devem ser por HTTPS.
Para tráfego HTTP, verifique se os clientes que se conectam aos recursos do Azure podem negociar o TLS v1.2 ou posterior. Não use versões ou protocolos obsoletos. Desative cifras fracas.
Para gerenciamento remoto, em vez de usar um protocolo não criptografado, use Secure Shell (SSH) para Linux ou Remote Desktop Protocol (RDP) e TLS para Windows.
Dados em repouso
A carga de trabalho precisa de um estado de armazenamento para origem e artefatos, configurações do servidor de configuração, configurações do aplicativo e armazenamento. Os dados inativos do lado do servidor são protegidos pela criptografia do Armazenamento do Azure. O armazenamento criptografa automaticamente o conteúdo com chaves gerenciadas pela Microsoft.
O cache do servidor de configuração, os binários de runtime criados a partir de fontes carregadas e os logs do aplicativo durante o tempo de vida do aplicativo são salvos em um disco gerenciado do Azure. Esses dados são criptografados automaticamente. As imagens de contêiner, que são criadas a partir da fonte carregada pelo usuário, são criptografadas e salvas no Registro de Contêiner do Azure.
Para cenários de suporte, quando a Microsoft precisar de acesso a dados relevantes do cliente, use o Sistema de Proteção de Dados do Cliente para Microsoft Azure porque sua equipe ou organização deve aprovar o acesso.
monitorar anomalias nas contas e fornecer alertas sobre elas
É recomendável que o Microsoft Defender para Nuvem receba alertas sobre atividades suspeitas, como um número excessivo de tentativas de autenticação com falha ou contas preteridas na assinatura.
O Azure Spring Apps é integrado à ID do Microsoft Entra, que pode acompanhar atividades de entrada, incluindo entradas arriscadas. Você pode usar logs de auditoria para detectar alterações feitas em qualquer recurso na ID do Microsoft Entra. Os dados são integrados ao Azure Monitor e podem ser exportados para o Microsoft Sentinel.
Para saber mais, veja:
- Relatórios de atividades de auditoria na ID do Microsoft Entra
- Exibir entradas arriscadas do Microsoft Entra
- Monitorar a atividade de identidade e acesso dos usuários no Microsoft Defender para Nuvem
- Alertas no módulo de proteção de inteligência contra ameaças do Microsoft Defender para Nuvem
Políticas de governança
A definição interna do Azure chamada Azure Spring Cloud deve usar injeção de rede que permite impor controles de rede.
- Detecte a implementação de limites de isolamento para o aplicativo da Internet.
- Habilite o Azure Spring Apps para se comunicar com redes privadas em data centers locais ou serviço do Azure em outras redes virtuais.
- Controle as comunicações de rede de entrada e saída para a rede virtual do Azure Spring Apps.
Gerenciamento de certificados
Um aplicativo pode precisar de certificados TLS públicos ao se comunicar com serviços de back-end ou sistemas locais. Você pode carregar os certificados no Key Vault.
Para carregar certificados com segurança do Key Vault, os aplicativos Spring Boot usam identidades gerenciadas e RBAC (controle de acesso baseado em função) do Azure. O Azure Spring Apps usa uma entidade de serviço do provedor e um controle de acesso baseado em função do Azure. Esse carregamento seguro é alimentado usando o provedor JCA (Java Cryptography Architecture) do Azure Key Vault. Para obter mais informações, consulte Biblioteca de clientes de JCA do Azure Key Vault para Java.
Se o código Spring, o código Java ou as bibliotecas de software livre, como o OpenSSL, dependerem da cadeia JCA padrão da JVM para carregar implicitamente certificados no repositório confiável da JVM, você poderá importar seus certificados TLS do Key Vault para o Azure Spring Apps. Use esses certificados no aplicativo. Para obter mais informações, consulte Usar certificados SSL/TLS do aplicativo no Azure Spring Apps.
Exame de credenciais
Implemente o Verificador de Credenciais para identificar credenciais que acessam código, configurações e dados persistentes. O Verificador de Credenciais incentiva que você mova as credenciais descobertas para locais mais seguros, como o Key Vault.
No GitHub, você pode usar o recurso de verificação de segredo nativo para identificar as credenciais ou outras formas de segredos dentro do código.
Para saber mais, veja: