Proteger Seu Aplicativo Usando WAF

Depois que sua aplicação for roteada por meio do WAF (Web Application Firewall), proteja sua aplicação usando os diversos recursos de segurança oferecidos pelo WAF.

Você pode proteger seu aplicativo da seguinte forma:

  • Configurando regras de proteção
  • Usando o gerenciamento de Bots
  • Adicionando regras de acesso

Configurar Regras de Proteção

Você pode proteger a aplicação com regras para bloquear ataques XSS (Cross Site Scripting) e Injeção SQL (SQLi).

Para configurar regras de proteção:
  1. Acesse a console do Oracle Cloud Infrastructure.
  2. Abra o menu de navegação. Em Governança e Administração, vá para Segurança e clique em Políticas de WAF.
  3. Clique em Regras de Proteção.
    Uma tabela é exibida com regras de proteção predefinidas.
  4. Use o filtro de ID RULE e selecione as regras 941140 e 981300.
    Os detalhes da regra são exibidos à direita.
  5. Selecione cada regra e clique em Bloquear no menu suspenso Ações.
  6. Clique em Publicar Tudo.
    A publicação de alterações na política de WAF pode levar alguns minutos.

Verificar Regras de Proteção

Para verificar se as regras de proteção estão funcionando:
  1. Abra a guia Rede na página Ferramentas do Desenvolvedor do seu browser.
  2. Acesse o aplicativo de amostra de funcionário, http://employee.<example.com>/public/, no navegador.
  3. Clique em Novo Funcionário e preencha o formulário com informações de amostra.
  4. Informe a seguinte Injeção SQL no campo Nome:
    SomeUser; DROP TABLE users
  5. Com a guia Rede do navegador aberta, clique em Salvar no formulário Novo Funcionário.
    O POST para /employees é bloqueado com 403 Forbidden.
  6. Execute o seguinte comando cURL:
    curl -X POST http://${WAF_TARGET}/employees \ 
    -H 'host: employee.example.com' \ 
    -d '{"firstName":"Name; DROP TABLE users"}'
    O comando retorna um erro 403.
  7. Execute uma solicitação GET tentando Cross Site Scripting (XSS) nos parâmetros de consulta na barra de endereços do browser:
    http://employee.<example.com>/employees/?id=%3Cscript%3Ealert(%27bad%27)%3C/script%3Ein

    O browser retorna o seguinte:


    A seguir, descrição de waf-forbidden.png
    Descrição da ilustração waf-forbidden.png

As etapas anteriores acionam a ação WAF Block várias vezes. Agora, retorne aos detalhes da política de WAF na console do Oracle Cloud Infrastructure para inspecionar os logs.
  1. Abra a Política de Demonstração de Funcionários.
  2. Clique em Logs.
  3. Selecione uma faixa de data/hora que abranja o horário em que você tentou ataques SQLi e XSS.
  4. Identifique os itens com Action: Block, expanda os detalhes da linha em uma solicitação bloqueada e, em seguida, clique em Exibir JSON.
  5. Exiba as mensagens listadas como protectionRuleDetections e outros detalhes da solicitação.

Usar Gerenciamento de Bots

Outro recurso do serviço Oracle Cloud Infrastructure Web Application Firewall (WAF) é seus recursos de gerenciamento de Bot.

Em muitos casos, o tráfego não humano constitui a porcentagem maior do tráfego para um site. Embora certos Bots "bons" sejam favoráveis, outros Bots "ruins" podem tentar Content scraping, spamming, ataques de força de silêncio ou ataques DDoS de camada de aplicativos.

Por exemplo, você pode querer listar algumas Bots bem conhecidas para SEO (Search Engine Optimization) e fins de classificação de conteúdo, mas limitar a verificação de um usuário humano para determinadas interações. Esse tipo de cenário é facilmente realizado com as configurações de gerenciamento de Bot da política WAF.

Adicionar um Desafio de CAPTCHA

Um dos recursos salientes do gerenciamento de Bot é CAPTCHA. O uso do CAPTCHA oferece um meio simples de verificação de usuário que garantem a interação humana, sem exigir alterações no aplicativo subjacente.

Para adicionar um desafio de CAPTCHA:
  1. Console do Oracle Cloud Infrastructure.
  2. Abra o menu de navegação. Em Governança e Administração, vá para Segurança e clique em Políticas de WAF.
  3. Abra Política de Demonstração do Funcionário e clique em Gerenciamento de Bots.
  4. Clique na guia Desafio de CAPTCHA e, em seguida, clique em Adicionar Desafio de CAPTCHA.
  5. Insira /public/index.html como o valor no campo Caminho do URL do CAPTCHA.
  6. Deixe os padrões nos campos restantes como estão.
  7. Clique em Adicionar e, em seguida, clique em Publicar Tudo.
  8. Depois que as alterações forem publicadas e a política WAF for retomada no estado ACTIVE, carregue a página, http://employee.<example.com>/public/index.html, do browser.
    O browser exibe o seguinte desafio de CAPTCHA:

Após informar o código correto, informe o site sem nenhum desafio adicional para um período correspondente ao valor Session Duration na configuração do desafio.

Adicionar uma Regra de Controle de Acesso

O controle de acesso do WAF fornece uma camada adicional de segurança ao restringir ou bloquear o acesso aos dados e serviços disponíveis em um aplicativo.

Com o controle de acesso, você pode definir regras com base nas condições de solicitação, incluindo:
  • Cabeçalhos HTTP
  • Padrões de URL
  • Endereços IP
  • Localização Geográfica

No aplicativo de amostra Funcionário, você tem a capacidade de excluir detalhes do funcionário do banco de dados. Talvez seja necessário restringir o uso do recurso Delete para fins de segurança. Você pode criar e aplicar uma regra de acesso para bloquear as solicitações de exclusão.

Para adicionar uma regra de controle de acesso:
  1. Console do Oracle Cloud Infrastructure.
  2. Abra o menu de navegação. Em Governança e Administração, vá para Segurança e clique em Políticas de WAF.
  3. Abra Política de Demonstração de Funcionários e clique em Controle de Acesso.
  4. Clique em Adicionar Regra de Acesso.
  5. Informe um nome de regra, como Prevent Delete.
  6. Adicione as seguintes condições de regra:
    • O Método HTTP é: DELETE
    • O URL começa com: /employees
  7. Selecione a ação Regra de bloco e, em seguida, selecione 403 Proibido (opção padrão) como Definir Código de Resposta (Ação de Bloco).
  8. Clique em Adicionar Regra de Acesso para criar a regra e clique em Publicar Tudo.

Depois que as alterações forem publicadas, e a política WAF será retomada no estado ACTIVE:

  1. Abra a guia Rede na página Ferramentas do Desenvolvedor do seu browser.
  2. Acesse o aplicativo de amostra de funcionário, http://employee.<example.com>/public/, no navegador.
  3. Selecione um registro de funcionário e clique no botão Excluir.

Na guia Rede da seção Ferramentas do Desenvolvedor do broswer, você observará que o WAF interceptou essa solicitação e a bloqueou com uma resposta 403 Forbidden.

Os recursos do Oracle Cloud Infrastructure WAF discutidos neste foco de solução para proteger um aplicativo de exemplo básico. Os cenários de uso serão exclusivos para cada aplicativo e você poderá configurar o WAF adequadamente.