Rate-Limiting incrementa a plataforma de segurança da GoCache

Não existe quarentena para ataques na Web. Por isso, a GoCache não pode parar. Com 100% de nossa equipe trabalhando remotamente para ajudar a conter o avanço do novo vírus, não diminuímos nossa produtividade e temos orgulho em anunciar que acabamos de lançar uma nova funcionalidade para trazer mais segurança à sua infraestrutura: o Rate-Limiting.

Para quem não conhece, o Rate-Limiting é uma ferramenta usada para proteger infraestruturas contra ataques de negação de serviço (DDoS) à camada de aplicação, tentativas de quebra de senha por Brute Force, Bad Bots que varrem aplicações em busca de vulnerabilidades ou para cometer fraudes, mau uso de APIs entre outras ameaças. O que essas ameaças têm em comum é que todas elas apresentam uma taxa de requisições acima do padrão da taxa para visitantes legítimos.

Comportamento de usuários legítimos frente aos maliciosos

Como o Rate-Limiting da GoCache funciona?

O Rate-Limiting contabiliza a taxa de requisições encaminhadas para o servidor de origem, e, caso o limite estabelecido pelo usuário seja atingido, a ação definida por ele, que pode ser de bloqueio, desafio ou simulação, é tomada. Desde o início do desenvolvimento, nossa postura foi a de dar aos usuários a maior flexibilidade possível, assim como nós fazemos com outras features de nosso portfólio, pois casos de uso novos podem emergir.

Ao definir o threshold, o usuário escolhe a quantidade de requisições que poderá passar dentro de uma janela de tempo. A quantidade escolhida varia de 2 a 10000, enquanto a janela de tempo varia de 10s a 1 dia. Por exemplo, caso o usuário defina 100 requisições por 10 minutos, uma contagem dinâmica dos últimos 10 minutos é feita, e, caso a quantidade de requisições ultrapasse 100, a ação definida é tomada. O período de duração dessa ação será igual a escolhido pelo usuário, que pode ser de 10s a 1 dia, ou até o momento em que a taxa cair a valores abaixo do limite, caso ainda não tenha ocorrido.

Painel de configuração

Em termos de refinamento, até 12 critérios com suporte a expressões regulares podem ser usados para restringir a aplicação de uma regra, como por exemplo, padrão de URL, User-Agent ou nome de cookie. Como casos uso práticos, você pode, por exemplo, ter uma regra com um limite mais aberto para todo o site, utilizando a URI “/*”, com o objetivo de mitigar ataques DDoS e outra regra limitada a URI “/login” e método POST, com uma taxa bem mais restrita, de modo a evitar Brute Force no login.

Critérios para criação de regras

Em alguns casos, pode ser necessário aplicar whitelists. Um dos casos são para bots legítimos, como os de mecanismos de busca ou healthcheck, que podem apresentar uma taxa muito alta de requisições, mas que obviamente, você não deseja bloqueá-los. Em outro caso, recursos estáticos fora do cache podem diminuir a efetividade de uma regra, pois te obrigam a adotar um limite maior para evitar falsos positivos. Dessa forma, um hacker esperto pode concentrar as requisições em seções dinâmicas de sua aplicação, pois consomem muito mais recursos computacionais da infraestrutura. Por isso, existe a opção de desconsiderar estes dois casos na lógica de contagem. Você também pode criar seus próprios whitelists usando os mesmos critérios usando para fazer regras, como padrão de URL, IP ou cookie, via Smartrules.

Whitelists gerais

Whitelist via Smartrules

Por fim, você pode analisar em tempo real a atuação do Rate-Limiting por meio dos analytics e da página/API de eventos. Nos analytics você tem uma visão estatística, com informações como quantas requisições foram contabilizadas, quantas bloqueadas ou quantas foram desafiadas. Já na página ou na API de eventos você tem uma visão de cada requisição interceptada, sabendo o horário e qual regra foi responsável pela interceptação.

Analytics de Rate-limiting

Se você se interessou, temos uma notícia boa para você! Disponibilizaremos o Rate-Limiting gratuitamente até o dia 31/06/2020, para clientes GoCache. Caso você ainda não seja cliente, poderá testar nossa plataforma gratuitamente por 7 dias com ele incluso.

O que você achou deste novo recurso? Gostaríamos de saber! Entre em contato conosco, principalmente se não temos um requisito necessário para sua operação. Ajude-nos a construir a solução que você até hoje não encontrou no mercado!