Solucionar problemas de segurança de rede

Concluído

Determine por que o Web Application Firewall (WAF) está bloqueando o tráfego desejado

Ocasionalmente, as solicitações que devem passar pelo WAF (Web Application Firewall) são bloqueadas.

Para ajustar os regulamentos rigorosos do Open Web Application Security Project (OWASP) para as necessidades de um aplicativo ou organização, o WAF ajuda você a personalizar ou desabilitar as regras, ou criar exclusões, que podem estar causando problemas ou falsos positivos. Isso é feito por site e por URI. Ou seja, as alterações nas políticas afetarão apenas sites/URIs específicos e não afetarão outros sites que possam não ter os mesmos problemas.

Os artigos a seguir ajudarão você a entender como o WAF funciona e como suas regras e logs funcionam:

Noções básicas sobre logs WAF

Os logs WAF funcionam como um registo de todas as solicitações avaliadas que correspondem ou são bloqueadas. Se você notar um falso positivo, quando o WAF bloquear uma solicitação que não deveria, você pode executar as seguintes etapas:

  1. Encontre o pedido específico.

  2. Examine os logs para localizar o URI, carimbo de data/hora ou ID de transação específico da solicitação.

  3. Corrija os falsos positivos.

Visualizando registos WAF

Para exibir logs WAF, conclua as seguintes etapas:

  1. No portal do Azure, selecione Todos os recursos e selecione a política WAF do Gateway de Aplicativo.

  2. Selecione Registro de atividades.

  3. Selecione operações individuais para obter mais informações.

  4. Você pode baixar o registro de atividades selecionando Baixar como CSV.

  5. Para transmitir os eventos do log de atividades para outro serviço, selecione Exportar logs de atividades.

Nos registos de atividade de exportação:

  1. Selecione Adicionar configuração de diagnóstico.

  2. Digite um nome de configuração de diagnóstico.

  3. Selecione as categorias de log relevantes para transmitir em Categorias. Por exemplo, selecione Segurança, Política e Alerta.

  4. Selecione o destino de streaming em Detalhes do destino. Por exemplo, selecione Enviar para o espaço de trabalho do Log Analytics.

  5. Insira detalhes adicionais do destino. Por exemplo, a Assinatura relevante e o espaço de trabalho do Log Analytics.

  6. Selecione Salvar.

Modo de pontuação de anomalias

O modo de pontuação de anomalias é usado pelo OWASP para decidir se bloqueia o tráfego. No modo de Pontuação de Anomalias, o tráfego que corresponde a qualquer regra não é bloqueado instantaneamente quando o firewall está no modo de Prevenção. As regras têm um determinado critério: Crítico, Erro, Aviso ou Notificação. Cada um deles tem um valor numérico associado a ele, chamado Pontuação de Anomalia. O valor numérico indica a gravidade de uma solicitação.

Para obter mais informações, consulte Modo de pontuação de anomalias.

Corrigir falsos positivos

Para corrigir falsos positivos e evitar os problemas de tráfego bloqueado, você pode usar uma lista de exclusão. O uso de uma lista de exclusão só é aplicável a uma parte específica de uma solicitação ou a um conjunto de regras que está sendo desabilitado. Você pode decidir excluir o corpo, os cabeçalhos ou os cookies para uma condição específica em vez de excluir a solicitação inteira. Em um ambiente de configuração global, a exclusão específica se aplica a todo o tráfego que passa pelo WAF.

Consulte a configuração do WAF para obter mais informações sobre listas de exclusão.

Para configurar listas de exclusão usando o portal do Azure

  1. Vá para o portal WAF.

  2. Selecione Gerenciar exclusões em Regras gerenciadas.

Um exemplo de lista de exclusão:

Captura de tela exibindo um exemplo de lista de exclusão.

  • Desativar a regra: desativar uma regra permite tratar uma determinada condição como uma não ameaça que, de outra forma, seria sinalizada como maliciosa e seria bloqueada. Em um ambiente de cenário global, desabilitar uma regra para todo o WAF é um risco e pode enfraquecer sua segurança.

Para desativar grupos de regras ou regras específicas

  1. Navegue até o gateway de aplicativo e selecione Firewall de aplicativo Web.

  2. Selecione sua Política WAF.

  3. Selecione Regras gerenciadas.

    Captura de tela mostrando o gateway de firewall do aplicativo Web.

  4. Procure as regras ou grupos de regras que pretende desativar.

  5. Marque as caixas de seleção das regras que você deseja desabilitar.

  6. Selecione a ação na parte superior da página (Ativar/Desativar) para as regras selecionadas.

  7. Selecione Salvar.

Uma ferramenta de terceiros chamada Fiddler pode fornecer informações adicionais. O Fiddler irá ajudá-lo a:

  • Localizar nomes de atributos de solicitação: analise solicitações individuais e determine quais campos específicos de uma página da Web são chamados. Também ajuda a excluir determinados campos da inspeção usando listas de exclusão.

  • Encontrar nomes de cabeçalhos de pedidos: veja cabeçalhos de pedidos e respostas nas ferramentas de desenvolvimento do Chrome ou veja os cabeçalhos para o pedido GET.

  • Encontrar nomes de cookies de solicitação: visualize os cookies selecionando a guia Cookies no Fiddler.

Restringir parâmetros globais para eliminar falsos positivos

  • Desativar inspeção do corpo de solicitação: Certos órgãos que não são uma ameaça ao seu aplicativo podem ser impedidos de serem avaliados pelo seu WAF definindo Inspecionar corpo de solicitação como desativado. Desta forma, apenas o órgão solicitante não é inspecionado. Os cabeçalhos e cookies ainda serão inspecionados, a menos que estejam na lista de exclusão.

    Captura de ecrã mostrando a política WAF. A opção 'Inspecionar o corpo da solicitação' está desativada.

  • Limites de tamanho de arquivo: A possibilidade de um ataque a servidores e aplicativos da Web pode ser reduzida limitando o tamanho do arquivo para o seu WAF. Permitir arquivos grandes aumenta o risco de esgotamento do back-end. Para evitar ataques, é aconselhável limitar o tamanho do arquivo a um caso típico para seu aplicativo.

Observação

Métricas de firewall (somente WAF_v1) Para firewalls de aplicativos Web v1, as seguintes métricas agora estão disponíveis no portal:

  • Web Application Firewall Blocked Request Count - o número de solicitações que foram bloqueadas.
  • Contagem de Regras Bloqueadas do Web Application Firewall - todas as regras que foram correspondidas e a solicitação foi bloqueada.
  • Distribuição Total de Regras do Web Application Firewall - todas as regras que foram correspondidas durante a avaliação

Para habilitar métricas, selecione a guia Métricas no portal e selecione uma das três métricas.

Determinar qual versão do TLS um cliente está executando

Se o cliente estiver usando uma versão do TLS (Transport Layer Security) inferior à versão mínima necessária, todas as chamadas para o Armazenamento do Azure falharão. Portanto, do ponto de vista da segurança, uma conta de Armazenamento do Azure pode exigir que os clientes usem uma versão mínima do TLS para enviar solicitações. Por exemplo, uma solicitação enviada por um cliente que esteja usando o TLS 1.1 falhará, se uma conta de armazenamento exigir o TLS 1.2.

O artigo Configurar a versão mínima necessária do Transport Layer Security (TLS) para uma conta de armazenamento explica como configurar a versão mínima do TLS para uma conta de Armazenamento do Azure que pode afetar os aplicativos cliente.

Configurar a versão TLS do cliente

Para o cliente, o envio de uma solicitação com uma versão específica do TLS só é possível se o sistema operacional e o .NET Framework usado pelo cliente oferecerem suporte a essa versão.

Para habilitar o TLS 1.2 em um cliente do PowerShell:

# Set the TLS version used by the PowerShell client to TLS 1.2.

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;

# Create a new container.

$storageAccount = Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName

$ctx = $storageAccount.Context

New-AzStorageContainer -Name "sample-container" -Context $ctx

Para habilitar o TLS 1.2 em um cliente .NET usando a versão 12 da biblioteca de cliente do Armazenamento do Azure:

public static async Task ConfigureTls12()

{

    // Enable TLS 1.2 before connecting to Azure Storage

    System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

    // Add your connection string here.

    string connectionString = "";

    // Create a new container with Shared Key authorization.

    BlobContainerClient containerClient = new BlobContainerClient(connectionString, "sample-container");

    await containerClient.CreateIfNotExistsAsync();

}

Para habilitar o TLS 1.2 em um cliente .NET usando a versão 11 da biblioteca de cliente do Armazenamento do Azure:

static void EnableTls12()

{

    // Enable TLS 1.2 before connecting to Azure Storage

    System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

    // Add your connection string here.

    string connectionString = "";

    // Connect to Azure Storage and create a new container.

    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);

    CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

    CloudBlobContainer container = blobClient.GetContainerReference("sample-container");

    container.CreateIfNotExists();

}

Para obter mais informações, consulte Suporte para TLS 1.2.

Observação

O Fiddler ou uma ferramenta semelhante pode ajudá-lo a verificar se a versão especificada do TLS foi usada pelo cliente para enviar uma solicitação.

Uma conexão VPN ponto a site (P2S) é iniciada por um único ponto de extremidade e é útil quando você deseja se conectar à sua rede virtual a partir de um local remoto. Ponto-a-Site é uma opção melhor quando tens apenas alguns clientes que precisam de se conectar a uma VNet. As conexões P2S não exigem um dispositivo VPN, uma rede pública ou um endereço IP.

P2S VPN suporta Secure Socket Tunneling Protocol (SSTP) e IKEv2. Você pode conectar com segurança diferentes clientes que executam Windows, Linux ou macOS a uma VNet do Azure por meio de conexão ponto a site.

Diagrama mostrando a conexão VPN ponto a site.

Gerar certificados

  • Gerar um certificado raiz

    Primeiro, obtenha a chave pública (arquivo .cer) para um certificado raiz. Depois de criar o certificado raiz, exporte o certificado público (não a chave privada). Em seguida, esse arquivo é carregado no Azure. O certificado raiz atua como uma fonte de confiança para o Azure para conexão através de P2S à rede virtual. Há duas maneiras de gerar um certificado raiz, um certificado corporativo ou um certificado autoassinado. Para criar um certificado raiz autoassinado, considere as seguintes etapas:

  1. Abra um console do Windows PowerShell.

  2. O exemplo a seguir cria um certificado raiz autoassinado chamado "P2SRootCert" que é instalado automaticamente em "Certificates-Current User\Personal\Certificates". Você pode exibir o certificado abrindo certmgr.msc ou Gerenciar certificados de usuário.

    Você pode modificar e executar o seguinte comando:

    $cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
    
    -Subject "CN=P2SRootCert" -KeyExportPolicy Exportable `
    
    -HashAlgorithm sha256 -KeyLength 2048 `
    
    -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign
    
    
  3. Deixe o console do PowerShell aberto e prossiga com as próximas etapas para gerar um certificado de cliente.

    • Gerar certificados de cliente

      Um certificado de cliente é instalado automaticamente no computador onde é gerado a partir de um certificado raiz autoassinado. Para instalar um certificado de cliente em outro computador cliente, você precisa exportá-lo como um arquivo .pfx, juntamente com toda a cadeia de certificados. O arquivo .pfx conterá as informações de certificado raiz necessárias para a autenticação do cliente. Há dois métodos para criar certificados de cliente, certificado corporativo ou certificado raiz autoassinado.

      Recomenda-se gerar um certificado exclusivo para cada cliente em vez de usar o mesmo certificado. Isso ocorre porque, se você quiser revogar um certificado de cliente específico, não precisará gerar e instalar um novo para cada cliente que usa o mesmo certificado. Para gerar o certificado do cliente, considere as seguintes etapas:

  4. Use o exemplo a seguir se a sessão do console do PowerShell ainda estiver aberta:

    New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
    
    -Subject "CN=P2SChildCert" -KeyExportPolicy Exportable `
    
    -HashAlgorithm sha256 -KeyLength 2048 `
    
    -CertStoreLocation "Cert:\CurrentUser\My" `
    
    -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")
    
    
  5. Se for uma nova sessão de console do PowerShell, considere as seguintes etapas:

    • Identifique o certificado raiz autoassinado instalado no computador. Este cmdlet retorna uma lista de certificados instalados no seu computador.
    Get-ChildItem -Path "Cert:\CurrentUser\My"
    
    
    1. Localize o nome do assunto na lista retornada e, em seguida, copie a impressão digital localizada ao lado dele para um arquivo de texto. Neste caso "P2SRootCert".

      Thumbprint                                Subject
      
      ----------                                -------
      
      7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655  CN=P2SRootCert
      
      
    2. Declare uma variável para o certificado raiz usando a impressão digital da etapa anterior.

      $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\<THUMBPRINT>"
      
      
    3. Substitua THUMBPRINT pela impressão digital do certificado raiz a partir do qual pretende gerar um certificado derivado.

      $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
      
      
    4. Neste exemplo, um certificado de cliente chamado "P2SChildCert" é gerado. O certificado de cliente gerado é instalado automaticamente em "Certificados - Usuário Atual\Pessoal\Certificados" no seu computador.

Você pode modificar e executar o seguinte comando para gerar um certificado de cliente:

New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `

-Subject "CN=P2SChildCert" -KeyExportPolicy Exportable `

-HashAlgorithm sha256 -KeyLength 2048 `

-CertStoreLocation "Cert:\CurrentUser\My" `

-Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")

Para saber mais sobre como exportar o certificado raiz e o certificado do cliente, consulte Gerar e exportar certificados para conexões VPN de usuário.

Para configurar uma conexão ponto a site usando o certificado do Azure, você precisa:

  1. Adicione o pool de endereços do cliente VPN.

  2. Especifique o tipo de túnel e o tipo de autenticação.

  3. Carregue informações de chave pública do certificado raiz.

  4. Instale o certificado de cliente exportado.

  5. Defina as configurações para clientes VPN.

  6. Conecte-se ao Azure.

Para obter etapas detalhadas para configurar uma conexão ponto a site usando o certificado do Azure, consulte Conectar-se a uma VNet usando P2S VPN & autenticação de certificado: portal - Gateway de VPN do Azure.

Para verificar se sua conexão VPN está ativa (clientes Windows), abra um prompt de comando elevado e execute ipconfig/all.

Para conectar-se a uma máquina virtual (clientes Windows):

  1. Localizar o endereço IP privado.

  2. Verifique se você está conectado à sua rede virtual.

  3. Abra a Ligação ao Ambiente de Trabalho Remoto escrevendo "RDP" ou "Ligação ao Ambiente de Trabalho Remoto" na caixa de pesquisa na barra de tarefas e, em seguida, selecione Ligação ao Ambiente de Trabalho Remoto. Você também pode abrir a Conexão de Área de Trabalho Remota usando o comando "mstsc" no PowerShell.

  4. Em Ligação ao Ambiente de Trabalho Remoto, introduza o endereço IP privado da VM. Selecione Mostrar opções para ajustar as configurações adicionais e, em seguida, conecte-se.

Solucionar problemas de uma conexão

Se estiver a ter problemas para ligar a uma máquina virtual através da sua ligação VPN, leia o seguinte:

  • Verifique se sua conexão VPN foi bem-sucedida.

  • Verifique se você está se conectando ao endereço IP privado da VM.

  • Se você puder se conectar à VM usando o endereço IP privado, mas não o nome do computador, verifique a configuração de DNS.

  • Para obter mais informações sobre conexões RDP, consulte Solucionar problemas de conexões da Área de Trabalho Remota com uma VM.

  • Verifique se o pacote de configuração do cliente VPN foi gerado depois de os endereços IP do servidor DNS terem sido especificados para a VNet. Se atualizou os endereços IP do servidor DNS, gere e instale um novo pacote de configuração de cliente VPN.

  • Certifique-se de que não existe espaço de endereço sobreposto. Por exemplo, se o endereço IP estiver dentro do intervalo de endereços da VNet à qual você está se conectando ou dentro do intervalo de endereços do seu VPNClientAddressPool. Use "ipconfig" para verificar o endereço IPv4 atribuído ao adaptador Ethernet no computador do qual você está se conectando.

Para adicionar um certificado raiz confiável, consulte Carregar um certificado raiz confiável.

Para remover um certificado raiz confiável:

  1. Vá para a página de configuração ponto-a-site do gateway de rede virtual.

  2. Na seção de certificado raiz da página, localize o certificado que você deseja remover.

  3. Selecione as reticências ao lado do certificado e, em seguida, selecione Remover.

Revogar um certificado de cliente

Revogar um certificado de cliente é diferente de remover um certificado raiz confiável. A remoção de um arquivo de .cer de certificado raiz confiável do Azure revoga todos os certificados de cliente gerados/autenticados pelo certificado raiz. A revogação de um certificado de cliente permite que outros certificados associados ao mesmo certificado raiz continuem funcionando.

Para revogar um certificado de cliente, adicione a impressão digital à lista de revogação.

  • Obtenha a impressão digital do certificado de cliente. Consulte Como recuperar a impressão digital de um certificado.

  • Copie as informações para um editor de texto e remova todos os espaços para que seja uma cadeia de caracteres contínua.

  • Vá para a página de configuração ponto-a-site do gateway de rede virtual. Esta é a mesma página que você usou para carregar um certificado raiz confiável.

  • Na seção Certificados revogados , insira um nome amigável para o certificado.

  • Copie e cole a cadeia de caracteres da impressão digital no campo Impressão digital .

  • A impressão digital valida e é automaticamente adicionada à lista de revogação. Aparece uma mensagem no ecrã a indicar que a lista está a ser atualizada.

  • Depois de concluída a atualização, o certificado já não pode ser utilizado para ligar. Os clientes que se tentarem ligar com este certificado irão receber uma mensagem a indicar que o certificado já não é válido.

Solucionar problemas de conectividade com pontos de extremidade seguros

O Azure Private Endpoint é uma interface de rede que utiliza um endereço IP privado de uma rede virtual e estabelece uma conexão privada e segura com um serviço de ligação privada.

A seguir estão os cenários de conectividade disponíveis com o Private Endpoint:

  • Rede virtual da mesma região.

  • Redes virtuais emparelhadas regionalmente.

  • Redes virtuais interligadas globalmente.

  • Cliente local através de circuitos VPN ou Azure ExpressRoute.

Diagnosticar problemas de conectividade

As etapas a seguir irão guiá-lo para garantir que todas as configurações necessárias estejam em vigor, para resolver problemas de conectividade com a sua configuração de endpoint privado. Para obter etapas detalhadas, consulte Diagnosticar problemas de conectividade.

  1. Revise a configuração do Ponto Final Privado navegando pelo recurso.

  2. Use o Azure Monitor para ver se os dados estão fluindo.

  3. Utilize o resolvedor de problemas de conexão de VM no Azure Network Watcher.

  4. A resolução DNS dos resultados do teste deve ter o mesmo endereço IP privado atribuído ao ponto de extremidade privado.

  5. A máquina virtual de origem deve ter a rota para o próximo salto do IP de ponto de extremidade privado como InterfaceEndpoints nas rotas efetivas da NIC.

  6. Se a conexão tiver resultados validados, o problema de conectividade pode estar relacionado a outros aspetos, como segredos, tokens e senhas na camada do aplicativo.

  7. Reduza antes de aumentar o ticket de suporte.

  8. Se o Ponto de Extremidade Privado estiver vinculado a um Serviço de Link Privado associado a um balanceador de carga, verifique se o pool de back-end está a reportar-se como saudável. Corrigir a saúde do balanceador de carga solucionará o problema de conexão ao Private Endpoint.

  9. Entre em contato com a equipe de Suporte do Azure se o problema não for resolvido e ainda existir um problema de conectividade.

Parâmetros de política IPsec e IKE para gateways VPN

O padrão de protocolo IPsec e IKE suporta uma ampla gama de algoritmos criptográficos em várias combinações. O artigo Parâmetros IPsec/IKE explica quais parâmetros são suportados no Azure Stack Hub para atender aos seus requisitos de conformidade ou segurança.

Observe as seguintes considerações importantes ao usar essas políticas:

  • A política IPsec/IKE só funciona nas SKUs de gateway Standard e HighPerformance (baseadas em rota).

  • Você só pode especificar uma combinação de política para uma determinada conexão.

  • Você deve especificar todos os algoritmos e parâmetros para IKE (Modo Principal) e IPsec (Modo Rápido). Não é permitida a especificação parcial da política.

  • Verifique com as especificações do fornecedor do seu dispositivo VPN se a política é suportada em seus dispositivos VPN locais.

As etapas a seguir mostram como criar e configurar uma diretiva IPsec/IKE e aplicá-la a uma conexão nova ou existente. Para obter instruções passo a passo detalhadas, siga as Etapas para configurar uma política IPsec/IKE para conexões VPN site a site (S2S) no Azure Stack Hub.

  1. Crie e defina a política IPsec/IKE.

  2. Crie uma nova conexão VPN site a site com a política IPsec/IKE:

    1. Etapa 1 - Crie a rede virtual, o gateway VPN e o gateway de rede local.

    2. Etapa 2 - Crie uma conexão VPN site a site com uma política IPsec/IKE.

  3. Atualize a política IPsec/IKE para uma conexão.