Solucionar problemas de segurança de rede

Concluído

Determinar por que o WAF (Firewall do Aplicativo Web) está bloqueando o tráfego desejado

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

Para ajustar os rigorosos regulamentos do OWASP (Open Web Application Security Project) 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 se preocuparão com outros sites que podem não ter os mesmos problemas.

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

Noções básicas sobre logs do WAF

Os logs do WAF funcionam como uma instrução de todas as solicitações avaliadas correspondentes ou bloqueadas. Se você observar um falso positivo, quando o WAF bloquear uma solicitação que não deveria, você poderá executar as seguintes etapas:

  1. Localize a solicitação específica.

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

  3. Corrija os falsos positivos.

Exibir logs do WAF

Para exibir os logs do WAF, conclua as seguintes etapas:

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

  2. Selecione o log de atividades.

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

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

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

Em Exportar Logs de Atividades:

  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 transmissão em Categorias. Por exemplo, selecione Segurança, Política e Alerta.

  4. Selecione o destino de streaming nos detalhes de destino. Por exemplo, selecione Enviar para o workspace do Log Analytics.

  5. Insira detalhes de destino adicionais. Por exemplo, a assinatura e o workspace do Log Analytics relevantes.

  6. Selecione Salvar.

Modo de pontuação de anomalias

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

Para obter mais informações, consulte o modo de Pontuação de Anomalias.

Corrigir falsos positivos

Para corrigir falsos positivos e evitar problemas de tráfego bloqueado, você pode usar uma lista de exclusão. Usar 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 corpo, cabeçalhos ou cookies para uma determinada condição em vez de excluir toda a solicitação. 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 do WAF.

  2. Selecione Gerenciar exclusões sob regras gerenciadas.

Uma lista de exclusão de exemplo:

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

  • Desabilitar a regra: desabilitar uma regra permite que você trate uma determinada condição como uma não ameaça que, de outra forma, seria sinalizada como mal-intencionada e bloqueada. Em um ambiente de configuração global, desabilitar uma regra para todo o WAF é um risco e pode enfraquecer sua segurança.

Para desabilitar grupos de regras ou regras específicas

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

  2. Selecione sua Política de WAF.

  3. Selecione Regras Gerenciadas.

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

  4. Pesquise as regras ou grupos de regras que você deseja desabilitar.

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

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

  7. Selecione Salvar.

Uma ferramenta de terceiros chamada Fiddler pode fornecer informações adicionais. O Fiddler ajudará você a:

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

  • Localizar nomes de cabeçalho de solicitação: exibir cabeçalhos de solicitação e resposta dentro das ferramentas de desenvolvedor do Chrome ou ver os cabeçalhos da solicitação GET.

  • Localizar nomes de cookie de solicitação: exibir cookies selecionando a guia Cookies no Fiddler.

Restringir parâmetros globais para eliminar falsos positivos

  • Desabilitar a inspeção do corpo da solicitação: determinados corpos que não são uma ameaça ao seu aplicativo podem ser impedidos de serem avaliados pelo WAF definindo Inspecionar corpo da solicitação para desativado. Dessa forma, somente o corpo da solicitação não é inspecionado. Os cabeçalhos e cookies ainda serão inspecionados, a menos que estejam na lista de exclusão.

    Captura de tela mostrando a política do WAF. A opção de inspecionar o corpo da solicitação está desativada.

  • Limites de tamanho do arquivo: a possibilidade de um ataque a servidores Web e aplicativos pode ser reduzida limitando o tamanho do arquivo para o WAF. Permitir arquivos grandes aumenta o risco de seu back-end ser esgotado. 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 aplicativo Web v1, as seguintes métricas agora estão disponíveis no portal:

  • Contagem de Solicitações Bloqueadas do Firewall do Aplicativo Web – o número de solicitações que foram bloqueadas.
  • Contagem de regras bloqueadas do Firewall de Aplicativo Web – todas as regras que corresponderam e bloquearam a solicitação.
  • Distribuição total de regras do Firewall de Aplicativo Web – todas as regras que corresponderam durante a avaliação

Para habilitar as 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á em execução

Se o cliente estiver usando uma versão do TLS (Transport Layer Security) menor que a versão mínima necessária, todas as chamadas para o Armazenamento do Azure falharão. Portanto, do ponto de vista de 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 está usando o TLS 1.1 falhará se uma conta de armazenamento exigir TLS 1.2.

O artigo Configurar a versão mínima necessária do TLS (Transport Layer Security) 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 do TLS do cliente

Para o cliente, o envio de uma solicitação com uma versão específica do TLS só será possível se o sistema operacional e o .NET Framework usados pelo cliente der 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 clientes 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 clientes 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 o 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 P2S (ponto a site) é iniciada por um único ponto de extremidade e é útil quando você deseja se conectar à VNet de um local remoto. A conexão ponto-a-site é uma opção melhor quando você tem apenas alguns usuários que precisam se conectar a uma VNet. As conexões P2S não exigem um dispositivo VPN ou uma rede pública ou endereço IP.

A VPN P2S dá suporte ao Protocolo SSTP (Secure Socket Tunneling Protocol) e ao 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 (.cer arquivo) 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 confiável do Azure para conexão por P2S com a 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 gerenciando 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 certificado do cliente.

    • Gerar certificados de cliente

      Um certificado do cliente é instalado automaticamente no computador em que é gerado a partir de um certificado raiz autoassinado. Para instalar um certificado do 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.

      É recomendável 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 de 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. Esse cmdlet retorna uma lista de certificados instalados no seu computador.
    Get-ChildItem -Path "Cert:\CurrentUser\My"
    
    
    1. Localize o nome da entidade da lista retornada e copie a impressão digital localizada ao lado dela para um arquivo de texto. Nesse 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 do qual você deseja gerar um certificado filho.

      $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
      
      
    4. Neste exemplo, um certificado de cliente chamado "P2SChildCert" é gerado. O certificado do cliente gerado é automaticamente instalado em "Certificados – Usuário Atual\Pessoal\Certificados" em 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 autenticação e o tipo de túnel.

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

  4. Instale o certificado do cliente exportado.

  5. Definir 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 VPN P2S &autenticação de certificado: portal – Gateway de VPN do Azure.

Para verificar se a conexão VPN está ativa (clientes windows), abra um prompt de comando com privilégios elevados e execute ipconfig/all.

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

  1. Localize o endereço IP privado.

  2. Verifique se você está conectado à sua VNet.

  3. Abra a Conexão de Área de Trabalho Remota digitando "RDP" ou "Conexão de Área de Trabalho Remota" na caixa de pesquisa na barra de tarefas e selecione Conexão de Área de Trabalho Remota. Você também pode abrir a Conexão de Área de Trabalho Remota usando o comando "mstsc" no PowerShell.

  4. Na Conexão de Área de Trabalho Remota, insira o endereço IP privado da VM. Selecione Mostrar Opções para ajustar as configurações adicionais e conecte-se.

Solucionar problemas de uma conexão

Se você estiver tendo problemas para se conectar a uma máquina virtual por meio de sua conexão VPN, leia o seguinte:

  • Verifique se a 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 do DNS.

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

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

  • Verifique se não há 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 de 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. Acesse a página de configuração ponto a site do seu 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 selecione Remover.

Revogar um certificado de cliente

A revogação de um certificado de cliente é diferente da remoção de um certificado raiz confiável. Remover um arquivo .cer de um certificado raiz confiável do Azure revogará 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 do cliente, adicione a impressão digital à lista de revogação.

  • Recupere a impressão digital do certificado do cliente. Veja 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.

  • Acesse a página de configuração ponto a site do gateway de rede virtual. Essa é 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 de impressão digital no campo Impressão digital.

  • A impressão digital é validada e é adicionada automaticamente à lista de revogação. Uma mensagem é exibida na tela informando que a lista está sendo atualizada.

  • Após a conclusão da atualização, o certificado não poderá mais ser usado para se conectar. Os clientes que tentam se conectar usando esse certificado recebem uma mensagem informando que o certificado não é mais válido.

Solucionar problemas de conectividade para pontos de extremidade seguros

O Ponto de Extremidade Privado do Azure é um adaptador de rede que usa um endereço IP privado de uma rede virtual e conecta você de maneira privada e segura a um serviço de link privado.

Veja a seguir os cenários de conectividade disponíveis com o Private Endpoint:

  • Rede virtual da mesma região.

  • Redes virtuais emparelhadas regionalmente.

  • Redes virtuais emparelhadas mundialmente.

  • Cliente local sobre circuitos do Azure ExpressRoute ou VPN.

Diagnosticar problemas de conectividade

As etapas a seguir orientarão você para garantir que todas as configurações necessárias estejam em vigor para resolver problemas de conectividade com a configuração do ponto de extremidade privado. Para obter etapas detalhadas, consulte Diagnosticar problemas de conectividade.

  1. Examine a configuração do ponto de extremidade privado navegando no recurso.

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

  3. Use a solução de problemas de conexão de VM do Observador de Rede do Azure.

  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 do Ponto de Extremidade Privado como InterfaceEndpoints nas rotas efetivas da NIC.

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

  7. Reduza antes de criar o tíquete de suporte.

  8. Se o ponto de extremidade privado estiver vinculado a um Serviço de Link Privado vinculado a um balanceador de carga, verifique se o pool de back-end está se comunicando íntegro. Corrigir a integridade do balanceador de carga resolverá o problema de conexão com o Endpoint Privado.

  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 de VPN

O padrão de protocolo IPsec e IKE dá suporte a uma ampla gama de algoritmos criptográficos em várias combinações. Os parâmetros IPsec/IKE do artigo explica quais parâmetros têm suporte no Azure Stack Hub para atender aos requisitos de conformidade ou segurança.

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

  • A política IPsec/IKE só funciona nos SKUs de gateway Standard e HighPerformance (baseados 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). A especificação de política parcial não é permitida.

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

As etapas a seguir mostram como criar e configurar uma política IPsec/IKE e aplicá-la a uma conexão nova ou existente. Para obter instruções detalhadas passo a passo, 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 – Criar a rede virtual, o gateway de VPN e o gateway de rede local.

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

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