Infelizmente, os ataques DDoS tornaram-se comuns e agora parecem afetar empresas de praticamente todos os setores. Não é que não acontecessem antes — claro que aconteciam —, mas, nos últimos anos, a frequência, a natureza, o significado e até mesmo a insensatez de tais ataques mudaram. Por exemplo, fomos formalmente atingidos pelo maior dos ataques recentes, mas de forma alguma o mais desagradável — uma inundação de 10 Gbps — no final de 2021. Foi filtrado pelo provedor de hospedagem; quase todos os provedores de hospedagem oferecem a opção de proteção básica contra ataques L3/L4. No entanto, geralmente há vários problemas aqui. Primeiro, esses são “vizinhos barulhentos” e uma política de uso justo, mesmo para uma conexão básica ilimitada. O canal externo geralmente é comum a todos ou pelo menos a um grupo de clientes, portanto, um ataque a um deles pode afetar os outros. E, no caso de uma ameaça realmente séria, esse cliente é simplesmente desconectado da rede. Olhando para o futuro, diremos que foi exatamente isso que aconteceu conosco.

Em segundo lugar, se você comprar proteção separadamente do hoster, o preço pode ser uma surpresa desagradável. Especialmente no caso de ataques únicos, quando você tem que pagar pela limpeza de tráfego por terabyte. Além disso, em circunstâncias realmente infelizes, eles podem cobrar um valor adicional por uma onda de tráfego. A escala dos problemas depende das taxas de hospedagem, dos recursos de ataque e da sua arquitetura. Finalmente, em terceiro lugar, a proteção básica do hoster geralmente não oferece nenhum controle especial e monitoramento normal, muitas vezes funciona de forma unidirecional e com notificação. E quase ninguém oferece qualquer tipo de proteção contra o L7, apenas como parte de um serviço separado, que provavelmente é apenas uma revenda do serviço de outra pessoa.

A solução óbvia para todos esses problemas é recorrer diretamente a um provedor de serviços especializado. Um dos serviços mais populares é o CloudFlare, que oferece proteção DDoS, CDN, WAF e diversas outras opções por um preço acessível. No entanto, existem algumas nuances aqui também. Primeiro, nem todos precisam de todos os serviços; alguns são bons de se ter, mas não são obrigatórios. Além disso, as opções realmente necessárias podem ser pagas e não ilimitadas. Segundo, o CloudFlare é conhecido por cobrar valores exorbitantes se achar que você exagerou nos serviços. E terceiro, com a proibição gradual do CloudFlare na Federação Russa, o ponto principal se perdeu. No entanto, é preciso admitir que, em geral, é confortável trabalhar com o CloudFlare. Até mesmo a configuração inicial, com a transferência da zona DNS, é muito simples.

Apesar de os ataques L7 serem os mais dolorosos, cujo número aumentou significativamente desde 2022, ninguém recusa os clássicos floods. Foi exatamente isso que tivemos que enfrentar. Se o provedor de hospedagem já havia repelido com sucesso tais ataques, neste inverno não foi forte o suficiente. Em um dia de fim de semana não muito bom, um ataque começou contra nós, que em seu pico atingiu 2996 Mbps e 307405 pps. Menos de meia hora depois, o hoster decidiu, acertadamente, que não toleraria mais isso e desconectou nossa rede. Felizmente, o ataque não era muito sofisticado, então migrar para outros endereços IP resolveu temporariamente o problema. Não foi possível determinar a duração do ataque, mas vários testes de conexão nas horas seguintes mostraram que ele continuou. Continuou no dia seguinte.


É óbvio que não há como recusar a transição para a proteção de um provedor especializado. A Curator (anteriormente conhecida como Qrator Labs) é uma das provedoras mais antigas desses serviços no mercado. E se antes parecia que eles eram necessários apenas para clientes muito grandes ou propensos a ataques, agora ficou claro que qualquer empresa pode sofrer, mesmo uma tão pequena e modesta como a nossa.


O processo de migração em si não é tão complicado. O Curator envia um e-mail bastante detalhado com instruções passo a passo simples para a configuração inicial. No nosso caso, trata-se de vários sites, ou seja, o Curator atua como um proxy reverso para nossos servidores (upstreams), então tudo se resumiu a substituir os registros A dos domínios necessários, criar certificados Let’s Encrypt no Curator com renovação automática posterior e adicionar upstreams, ou seja, conexões com nossos próprios servidores (inclusive com TLS e HTTP/2). Aqui você também pode configurar o tipo de páginas que serão retornadas ao Curator em caso de erros 502/503/504.


A carta de boas-vindas também recomenda mover upstreams para novos IPs, de preferência de uma sub-rede diferente, e bloquear o acesso a eles de qualquer lugar, exceto das sub-redes do próprio Curator. Especialmente quando a movimentação estiver sob ataque. A interface possui um conjunto de utilitários para verificar a disponibilidade dos seus servidores para nós do Curator (e qualquer outro IP), a rota que ele percorre e a exatidão das configurações de acesso. No nível upstream, você pode organizar o balanceamento usando Round Robin/Hash de IP com ponderação de consulta e habilitar a verificação ativa de disponibilidade upstream. Outra pequena vantagem é o redirecionamento com os códigos 301/302/307/308 diretamente no lado do proxy reverso, com a capacidade de substituir o nome do host e o caminho.


Se desejar, você pode trazer seus próprios certificados e enviar logs sobre o tráfego HTTP, para que o Curator também possa proteger contra alguns ataques de nível 7. No entanto, você também pode gerenciar a disponibilidade dos seus recursos, preenchendo a API com listas brancas e negras de endereços IP, indicando o período de validade das regras (até um dia ou para sempre) e confiando nos endereços IP reais dos usuários fornecidos pelo Curator. Também é útil habilitar notificações sobre limites especificados excedidos (em Mbit/s) para tráfego de entrada, saída e perdido, bem como o número de endereços IP bloqueados.


No entanto, os recursos não se limitam a isso. O Curator pode operar como um proxy TCP/Websocket reverso ou simplesmente cobrir uma conexão TCP “separada”. Para clientes de grande porte, são oferecidos proteção AS e acesso ao Curator via túneis IPIP ou GRE. Além disso, estão disponíveis serviços de servidor WAF e DNS seguro (com transferência de zona). Tudo isso, é claro, com análises avançadas e proteção preventiva contra ataques. A rede do Curator tem capacidade de 4 Tbps, inclui 18 centros de filtragem em todo o mundo e conexão direta com operadoras de Nível 1.

Além da proteção contra ataques DDoS, o Curator também oferece filtragem de solicitações de usuários, principalmente para proteção contra bots. Não há mágica oculta aqui; tudo é configurado pelo próprio cliente, que sabe melhor quais usuários permitir e quais não. As configurações são divididas em duas partes lógicas: como filtrar e quem filtrar.


Para responder à primeira pergunta, regras simples de IF–THEN são usadas. IF inclui um conjunto de três condições aplicadas sequencialmente: host (ou um grupo de hosts, que é especificado na mesma seção), método (GET, POST, etc.), caminho (após o host) ou URI. Você pode especificar uma correspondência parcial para cada um dos parâmetros ou até mesmo escrever uma expressão regular. THEN inclui um conjunto de três reações principais: aceitar e emitir uma verificação — na primeira solicitação, fornecer 401, remover uma impressão digital do navegador usando JS e definir um cookie, se necessário, emitindo um CAPTCHA; aceitar apenas com cookies, ou seja, eles já deveriam ter sido definidos em um estágio anterior; não fazer nada. Há uma opção separada para trabalhar com um CDN externo, que requer acesso irrestrito a todo o conteúdo. O Curador “sabe” sobre Ngenix, Akamai e G-Core, e também suporta autenticação G2O.


As regras configuradas acima são aplicadas a todo o tráfego de entrada, de acordo com o nível de distribuição de verificação especificado, com exceção de países ou regiões selecionados e endereços IP ou sub-redes específicos. O Curador recomenda testar o antibot em uma pequena porcentagem de usuários, evoluindo gradualmente para uma verificação total de todo o tráfego. Especificamente para testar a proteção contra bots, você pode especificar separadamente uma lista de IPs para os quais a verificação será sempre realizada e desabilitar quaisquer verificações para clientes com cabeçalhos HTTP predefinidos.


Além disso, especificamente para proteger solicitações que não sejam de navegadores da web (ou pelo menos WebView com JS), o Curator sugere não usar a verificação de cookies, que, por exemplo, não pode ser definida ao acessar sua API diretamente de um aplicativo, mas a verificação de hash, que é calculada com base em cabeçalhos HTTP e uma chave secreta predefinida.

CDN é um serviço relativamente novo do Curator, mas bastante útil, pois ajuda a entregar conteúdo aos usuários mais rapidamente e economizar tráfego do seu provedor de hospedagem graças ao cache do Curator, à conversão de imagens para WebP com um determinado nível de compactação (mas se a imagem resultante for maior que a original, a original é fornecida), ao suporte a compactação HTTP/2 e gzip/deflate/brotli. Para vídeo, ele suporta fluxos HLS e DASH. E, claro, o próprio CDN também é protegido contra DDoS.


Conectar-se a uma CDN também é muito simples — o Curator emite um domínio (ou melhor, um subdomínio), que pode ser vinculado ao seu próprio subdomínio (ou subdomínios) via CNAME e, como acima, um certificado Let’s Encrypt pode ser emitido para ele diretamente na interface do Curator ou, novamente, você pode trazer o seu próprio. Isso é conveniente, pois permite que você troque para outro provedor de CDN, se necessário.


Você pode gerenciar o tempo de vida dos objetos no cache da CDN usando os cabeçalhos expires e cache-control. Se eles não estiverem presentes, o tempo de vida padrão é de 6 horas. Você também pode forçar os clientes a enviar cache-control: no-cache. A CDN também pode armazenar em cache respostas com erros, tanto globalmente quanto para um cliente específico, para não puxar o upstream desnecessariamente. Além disso, você pode definir expressões regulares para proibir o acesso a URLs específicas (o código 404 será retornado) e, ao mesmo tempo, habilitar o redirecionamento com os códigos 301/302/307/308 diretamente na CDN. A propósito, você também pode fornecer o endereço IP real do cliente para o upstream em um cabeçalho separado.


Os parâmetros GET podem ser usados para cortar, dimensionar ou converter imagens no lado da CDN. O serviço suporta JPEG, PNG, TIFF, WebP e AVIF, incluindo conversão para esses formatos, mas se a operação de conversão não for explicitamente especificada, qualquer manipulação com imagens retornará JPEG por padrão ou, se esta opção estiver habilitada, WebP. No modo de teste, há uma opção para desabilitar seletivamente a conversão em massa para WebP usando um parâmetro GET, por exemplo, quando ela gera resultados muito ruins (capturas de tela, gráficos, etc.) ou não é necessária (fotos originais), mas você não quer abandoná-la completamente.

O sistema de direitos de acesso é padrão, mas prático: existem vários grupos de usuários prontos, mas você também pode criar os seus próprios, incluindo grupos aninhados, para maior comodidade. Dentro de cada grupo, são definidas regras de acesso a seções, subseções ou funções individuais. Há mais de 30 posições no total e, para algumas, são possíveis configurações mais granulares, por exemplo, acesso apenas a determinados certificados. Para cada uma das regras de acesso, você pode selecionar ler, atualizar, criar e excluir políticas (para as três últimas, a leitura é obviamente ativada automaticamente). Para aumentar a segurança, é recomendável habilitar a autenticação dupla (TOTP ou chaves de acesso) para cada conta e, ao mesmo tempo, habilitar notificações sobre eventos importantes.

Para acessar a API, são utilizados tokens, que são transmitidos (estritamente via HTTPS/TLS/SSL) em um cabeçalho HTTP separado. Para cada token, você pode criar um conjunto de políticas, se necessário, especificando o acesso apenas a uma parte dos recursos pertencentes ao cliente. No total, estão disponíveis várias dezenas de APIs diferentes, que abrangem uma parte significativa das funcionalidades disponíveis no console do Curador.

É claro que você não poderá criar seu próprio console inteiramente, já que algumas seções secundárias, como a documentação financeira, não são apresentadas na API. Além disso, o Curator não fornece acesso direto às análises, mas permite coletar gráficos para as principais métricas do console: tráfego, solicitações, latência, erros, etc. Por fim, o Curator também fornece um relatório mensal com informações mais detalhadas sobre o que aconteceu com seus recursos.


Nenhum incidente significativo ocorreu desde que me conectei ao Curator nesta primavera — e isso é o mais importante. Isso, é claro, não significa que não haverá nenhum no futuro, mas, de qualquer forma, a transição para o Curator traz uma sensação de segurança para a RuNet em tempos turbulentos, e isso é importante, especialmente para a mídia online, que deve estar sempre disponível aos leitores. Na verdade, a transição para a proteção DDoS do Curator não causou nenhuma dificuldade.

A CDN ajudou a reduzir o tráfego fornecido pelos servidores em quase uma ordem de magnitude. A mudança para a CDN em si não causou nenhuma dificuldade, mas aparentemente nos tornamos um dos primeiros usuários deste serviço, então tivemos que esclarecer e configurar algumas coisas rapidamente. Felizmente, o suporte técnico do Curator é adequado e rápido, e geralmente agradável para conversar, o que não é tão comum. Aliás, também ajudou a resolver um problema que não preocupa o Curator, mas que não teria sido identificado tão cedo sem a mudança.

A única crítica ao serviço é que a documentação não é totalmente completa (esta é apenas a externa, há também um FAQ interno e ajuda). Por um lado, fica claro o porquê disso — o serviço é constantemente atualizado, às vezes de forma sutil, às vezes de forma perceptível. Isso é visível até na conta demo, que dá uma ideia geral dos serviços, mas ainda difere da versão atual, que é mais “elegante” e conveniente. Por outro lado, fazer perguntas básicas ao suporte técnico só porque literalmente uma frase ou link está faltando na documentação também é estranho.

By admin

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *