Este es un pequeño artículo temporal, que luego será seguido por un análisis completo e información completa sobre lo que sucedió hoy.
Hoy, durante aproximadamente 30 minutos, los visitantes de los sitios de Cloudflare pudieron ver el error 502 causado por un brusco salto en la carga de la CPU de nuestra red. Esto se debió a una falla en la implementación del software. Revertimos los cambios, y ahora el servicio funciona como de costumbre, como antes, y todos los dominios que usan Cloudflare han vuelto a los niveles normales de tráfico.
Le aseguramos que no hubo ataque, y le ofrecemos nuestras más sinceras disculpas por lo sucedido. Nuestros desarrolladores ya están llevando a cabo un análisis detallado de los errores y están tratando de descubrir qué se debe hacer para evitar tales incidentes en el futuro.
Publicado a las 20:09 UTC:
Hoy a las 13:42 UTC se detectó una falla en nuestra red, como resultado de lo cual los visitantes de los dominios de Cloudflare vieron el error 502 ("Bad Gateway"). La razón de esta falla fue el despliegue de una regla mal configurada en el Servidor de seguridad de aplicaciones web de Cloudflare (WAF) durante el proceso estándar de implementación de nuevas reglas administradas de Cloudflare WAF.
Las nuevas reglas fueron diseñadas para mejorar el mecanismo de bloqueo de JavaScript incrustado utilizado en ataques de hackers. Estas reglas se implementaron en modo de simulación, en el que los errores generalmente se detectan y registran sin bloquear el tráfico de usuarios, lo que nos permite medir la cantidad de falsos positivos y asegurarnos de que las nuevas reglas funcionen correctamente cuando se implementen en el marco de este proyecto.
Desafortunadamente, una de estas reglas contenía una expresión regular, lo que condujo a un salto en la carga de la CPU de hasta el 100% en nuestras computadoras en todas partes. Debido a este salto, los usuarios de nuestro servicio presenciaron un error 502 y el tráfico cayó al 82%.
El siguiente gráfico muestra el salto de carga de la CPU en uno de nuestros PoP:

Por primera vez nos enfrentamos con el problema del agotamiento total de los recursos de la CPU, lo cual fue extremadamente inesperado para nosotros.
Estamos constantemente implementando software en nuestra red y ya hemos desarrollado sistemas automatizados para ejecutar pruebas y un procedimiento de implementación por fases para evitar situaciones desagradables. Desafortunadamente, el despliegue global de las reglas WAF fue un proceso único, que causó el fracaso de hoy.
A las 14:02 UTC, nos dimos cuenta de lo que había sucedido y decidimos deshabilitar completamente los conjuntos de reglas WAF, que inmediatamente normalizaron la carga de la CPU y restablecieron el tráfico. Lo hicimos a las 14:09 UTC.
Después de eso, analizamos la solicitud de extracción problemática, revertimos los cambios en las reglas relevantes, probamos nuestras acciones para estar 100% seguros de que el error se encontró correctamente, y luego restauramos los conjuntos de reglas WAF a las 14:52.
Somos conscientes de cuánto daño causan estos incidentes a nuestros usuarios. En este caso, nuestro mecanismo de prueba no hizo frente a la tarea, y ya estamos trabajando para mejorarla y optimizar el proceso de implementación para evitar errores similares en el futuro.