Este é um pequeno artigo temporário, que será seguido posteriormente por uma análise completa e informações exaustivas sobre o que aconteceu hoje.
Hoje, por cerca de 30 minutos, os visitantes dos sites Cloudflare podem ver o erro 502 causado por um salto acentuado na carga de CPU da nossa rede. Isso ocorreu devido a uma falha na implantação do software. Revertemos as alterações e agora o serviço está funcionando normalmente, como antes, e todos os domínios que usam o Cloudflare retornaram aos níveis normais de tráfego.
Garantimos que não houve ataque e oferecemos nossas mais profundas desculpas pelo que aconteceu. Nossos desenvolvedores já estão realizando uma análise detalhada dos erros e tentando descobrir o que precisa ser feito para evitar esses incidentes no futuro.
Publicado às 20:09 UTC:
Hoje, às 13:42 UTC, foi detectada uma falha em nossa rede, como resultado dos visitantes dos domínios do Cloudflare que viram o erro 502 ("Bad Gateway"). O motivo desta falha foi a implantação de uma regra mal configurada no Cloudflare Web Application Firewall (WAF) durante o processo padrão de implantação de novas regras gerenciadas do Cloudflare WAF.
As novas regras foram projetadas para melhorar o mecanismo de bloqueio do JavaScript incorporado usado em ataques de hackers. Essas regras foram implantadas no modo de simulação, no qual os erros geralmente são detectados e registrados sem bloquear o tráfego do usuário, o que nos permite medir o número de falsos positivos e garantir que as novas regras funcionem corretamente quando implantadas na estrutura deste projeto.
Infelizmente, uma dessas regras continha uma expressão regular, o que levou a um aumento na carga da CPU de até 100% em nossos computadores em todos os lugares. É por esse salto que os usuários do nosso serviço testemunharam um erro 502 e o tráfego caiu para 82%.
O gráfico abaixo mostra o salto de carga da CPU em um de nossos PoPs:

Pela primeira vez, fomos confrontados com o problema de exaustão completa dos recursos da CPU, o que foi extremamente inesperado para nós.
Estamos constantemente implantando software em nossa rede e já desenvolvemos sistemas automatizados para execução de testes e um procedimento de implantação em fases, a fim de evitar situações desagradáveis. Infelizmente, a implantação global das regras WAF foi um processo único, que causou a falha de hoje.
Às 14:02 UTC, percebemos o que havia acontecido e decidimos desativar completamente os conjuntos de regras WAF, que normalizaram imediatamente a carga da CPU e restauraram o tráfego. Fizemos às 14:09 UTC.
Depois disso, analisamos a solicitação de solicitação problemática, revertemos as alterações nas regras relevantes, testamos nossas ações para ter 100% de certeza de que o erro foi encontrado corretamente e restauramos os conjuntos de regras do WAF às 14:52.
Estamos cientes de quanto dano esses incidentes causam aos nossos usuários. Nesse caso, nosso mecanismo de teste não lidou com a tarefa e já estamos trabalhando para aprimorá-la e otimizar o processo de implantação, a fim de evitar erros semelhantes no futuro.