O que é a Firewall de Aplicações Web do Azure?

Concluído

Aqui, você aprenderá as noções básicas do Firewall de Aplicativo Web do Azure. Esta visão geral ajudará você a avaliar se o Firewall de Aplicativo Web do Azure é uma ferramenta útil a ser adicionada à estratégia geral de segurança de rede da Contoso.

Visão geral do Firewall de Aplicativo Web do Azure

Você pode pensar que usuários mal-intencionados não se incomodarão com seus aplicativos Web. No entanto, testes indicaram que bots ou atores mal-intencionados investigam novos aplicativos Web em busca de pontos fracos em poucos minutos após a implantação. Se você colocar um aplicativo na Web, suponha que os agentes de ameaças testarão o aplicativo em busca de vulnerabilidades quase imediatamente. Você também pode presumir que essas sondas continuarão durante o tempo de vida do aplicativo.

A maioria dos testes maliciosos de aplicações Web verifica a presença de uma ou mais vulnerabilidades comuns. Se encontrado, um agente de ameaça pode usar essas vulnerabilidades para executar ataques como os seguintes exploits:

  • Injeção de SQL
  • Scripting entre sites
  • Inclusão de ficheiros locais e remotos
  • Inundações HTTP/HTTPS
  • Ataques de bots maliciosos

Uma tarefa comum no ciclo de desenvolvimento de aplicativos Web envolve escrever código para fechar as falhas de segurança mais comuns. Escrever o código de segurança requer tempo, experiência e testes.

O Firewall de Aplicativo Web do Azure é um serviço do Azure que fornece proteção centralizada de aplicativos Web hospedados no Azure. O Firewall de Aplicativo Web do Azure protege os aplicativos Web contra ameaças comuns, como injeção de SQL e scripts entre sites.

Diagram of an Azure virtual network with Azure Web Application Firewall. Bots and threats are blocked from a web app; legitimate requests are allowed.

Você pode implantar o Firewall de Aplicativo Web do Azure em minutos. As suas aplicações Web obtêm imediatamente uma proteção poderosa contra ameaças conhecidas, tudo sem escrever uma única linha de código de segurança.

Principais recursos do Firewall de Aplicativo Web do Azure

Para ajudá-lo a avaliar o Firewall de Aplicativo Web do Azure, aqui estão alguns de seus recursos importantes:

  • Regras gerenciadas: as regras que o Firewall de Aplicativo Web do Azure usa para detetar e impedir explorações comuns são criadas, mantidas e atualizadas pela equipe de segurança da Microsoft. Se uma regra for alterada ou um conjunto de regras (consulte a descrição a seguir) for modificado, a Microsoft atualizará o Firewall do Aplicativo Web do Azure de forma automática e perfeita.

    Nota

    Não é possível modificar ou excluir as regras gerenciadas oferecidas pelo Firewall de Aplicativo Web do Azure. No entanto, se uma regra específica for problemática para seu ambiente (por exemplo, ela bloqueia o tráfego legítimo para seu aplicativo Web), você pode criar exclusões ou desabilitar a regra ou o conjunto de regras. Você também pode criar regras personalizadas para substituir o comportamento padrão.

  • Regras do bot: As regras do bot identificam bots bons e protegem contra bots ruins. Os bots defeituosos são detetados com base no Microsoft Threat Intelligence.

  • Regras personalizadas: se as regras gerenciadas oferecidas pelo Firewall do Aplicativo Web do Azure não cobrirem uma ameaça específica ao seu aplicativo Web, você poderá criar uma regra personalizada.

  • Modos: o Firewall de Aplicativo Web do Azure pode operar em um de dois modos: o modo de deteção registra apenas solicitações que violam uma regra, enquanto o modo de prevenção registra e bloqueia solicitações que violam uma regra.

  • Listas de exclusão: você pode configurar o Firewall de Aplicativo Web do Azure para ignorar atributos específicos ao verificar solicitações.

  • Políticas: você pode combinar um conjunto de regras gerenciadas, regras personalizadas, exclusões e outras configurações do Firewall de Aplicativo Web do Azure em um único elemento chamado política do Firewall de Aplicativo Web do Azure. Em seguida, você pode aplicar essa política a vários aplicativos Web para facilitar o gerenciamento e a manutenção.

  • Limites de tamanho de solicitação: você pode configurar o Firewall de Aplicativo Web do Azure para sinalizar solicitações que são muito pequenas ou muito grandes.

  • Alertas: o Azure Web Application Firewall integra-se com o Azure Monitor. Essa integração fornece alertas quase em tempo real quando o WAF deteta uma ameaça.

Ataques comuns evitados pelo Azure Web Application Firewall

A tabela a seguir descreve os tipos mais comuns de ameaças maliciosas contra as quais o Firewall de Aplicativo Web do Azure ajuda a proteger.

Ameaça Description
Scripting entre sites Um agente de ameaça usa um aplicativo da Web para enviar código mal-intencionado para o navegador da Web de outro usuário. O navegador executa o código, que dá ao script acesso aos dados de sessão do usuário, cookies e outras informações confidenciais.
Inclusão de ficheiro local Um invasor explora vulnerabilidades no processamento de instruções por include um servidor, na maioria das vezes em scripts PHP. Ao passar texto especialmente configurado para uma instrução de include script, o invasor pode incluir arquivos que estão localmente presentes no servidor. O invasor pode então ser capaz de acessar informações confidenciais e executar comandos de servidor.
Injeção de PHP O invasor insere texto especialmente configurado para enganar o servidor para executar comandos PHP. Esses comandos permitem que o invasor execute código PHP local ou remoto. O invasor pode então ser capaz de acessar dados confidenciais e executar comandos no servidor.
Ataques de protocolo Um invasor insere texto especialmente configurado em um cabeçalho de solicitação HTTP/HTTPS. Dependendo do texto específico injetado no cabeçalho, o invasor pode enganar o servidor para exibir dados confidenciais ou executar código.
Execução remota de comandos O invasor engana um servidor para executar comandos associados ao sistema operacional do servidor. Em um sistema UNIX, por exemplo, o invasor pode executar o servidor ls para obter uma listagem de diretório.
Inclusão de ficheiro remoto O mesmo que a inclusão de arquivo local, exceto que o invasor envia ao servidor texto especialmente configurado que passa um arquivo remoto, ou seja, um arquivo em um servidor remoto controlado pelo invasor, para uma instrução de include script.
Fixação de sessão Um invasor explora uma vulnerabilidade de aplicativo Web que permite que o invasor obtenha uma ID de sessão válida. O invasor engana um usuário para autenticar uma nova sessão com essa ID. Em seguida, o invasor sequestra essa sessão validada pelo usuário.
Injeção de SQL Em um campo de formulário da Web, o invasor insere (ou "injeta") texto especialmente configurado para enganar o servidor para executar comandos SQL. Esses comandos permitem que o invasor acesse dados confidenciais, insira, atualize ou exclua dados ou execute operações SQL.

Todas as explorações listadas na tabela anterior só são possíveis quando o servidor confia na entrada que recebe. Escrever código que verifique e higienize apenas essas explorações seria difícil e demorado. Apenas uma pequena fração das possíveis explorações que um aplicativo Web pode enfrentar são representadas na tabela anterior. O Azure Web Application Firewall foi projetado para evitar esses ataques e muito mais.

Entrada higienizante

As ameaças enfrentadas pelos aplicativos Web modernos são variadas e sofisticadas. No entanto, na maioria dos casos, a razão pela qual as explorações são possíveis é que o aplicativo Web confia implicitamente na entrada que recebe.

Por exemplo, considere um formulário da Web que permita que um usuário autorizado do aplicativo Web entre na conta do usuário. O formulário consiste em apenas três elementos:

  • Uma caixa de texto Nome de usuário
  • Uma caixa de texto Palavra-passe
  • Um botão Entrar

Quando um usuário autorizado preenche o formulário e seleciona Entrar, um script de aplicativo Web armazena o nome de usuário e a senha em variáveis. Suponha que essas variáveis sejam nomeadas userName e userPassword, respectivamente. O script executaria então a seguinte instrução:

sql = "SELECT * FROM users WHERE username='" + userName + "' AND password='" + userPassword + "'"

Por exemplo, se o nome de usuário é e a senha é support1234ABCD, então a sql variável tem o seguinte valor:

SELECT * FROM users WHERE username='support' AND password='1234ABCD'

O aplicativo Web executa essa instrução SQL. Se um registro for retornado da consulta, o aplicativo Web conectará o usuário.

Agora suponha que um invasor insira admin'-- o campo Nome de usuário e deixe o campo Senha em branco. Nesse caso, aqui está a instrução SQL resultante:

SELECT * FROM users WHERE username='admin'--' AND password=''

Em muitos sistemas SQL, os traços duplos (--) marcam o início de um comentário. Tudo depois -- é ignorado, então a instrução anterior é equivalente ao seguinte código:

SELECT * FROM users WHERE username='admin'

Supondo que haja um usuário chamado admin, este comando assina no invasor como o usuário administrador, uma violação grave!

Network diagram depicting two sign-in attempts, with Azure Web Application Firewall allowing the authorized sign-in and denying the unauthorized sign-in.

O exemplo anterior é uma instância de uma exploração chamada injeção de SQL. Os atacantes podem tirar proveito da injeção de SQL e de outras explorações em aplicativos Web que confiam em todas as entradas.

O Firewall de Aplicativo Web do Azure cria uma barreira de não confiança entre um aplicativo Web e sua entrada de usuário. O Firewall de Aplicativo Web do Azure assume que todas as entradas são potencialmente maliciosas, portanto, ele limpa essa entrada.

Higienizar a entrada significa coisas diferentes, dependendo do contexto. Por exemplo, limpar a entrada pode significar remover elementos de texto claramente perigosos, como indicadores de comentário SQL. Por mais que ocorra a higienização, o resultado é uma entrada que não pode causar danos ao aplicativo Web ou aos seus dados de back-end.