Худший день с 2019-го. Cloudflare извинилась за «боль, причиненную интернету» из-за одного бага

Худший день с 2019-го. Cloudflare извинилась за «боль, причиненную интернету» из-за одного бага

Обычный" конфиг, который сломал интернет.

image

Cloudflare объяснила причину глобального сбоя, который 18 ноября на несколько часов превратил значительную часть интернета в страницу с ошибкой 500. Проблему вызвал не хакерский взлом и не масштабная DDoS-атака, а сбой в автоматическом конфигурационном файле системы защиты от ботов, который неожиданно разросся и "сломал" ключевой компонент сети компании.

Сбой начался около 11:20 по времени UTC. Пользователи, пытавшиеся зайти на сайты, защищенные и ускоряемые Cloudflare, видели фирменную страницу с сообщением об ошибке внутри сети провайдера. Под удар попали соцсеть X, ChatGPT, Spotify, Canva, крупные интернет-магазины, сервисы государственных структур и множество других ресурсов, завязанных на инфраструктуру компании. В пиковый момент мониторинговые сервисы фиксировали тысячи жалоб на недоступность популярных сайтов.

Cloudflare в своем разборе инцидента подчеркнула, что причина была полностью внутренняя. Изменение прав доступа в одной из баз данных привело к тому, что запрос, генерирующий так называемый "feature file" для системы Bot Management, начал возвращать дублирующиеся записи. В результате конфигурационный файл с признаками для машинного обучения, по которым система отличает людей от ботов, внезапно увеличился более чем вдвое и перестал помещаться в заранее отведенную область памяти. Код модуля не был готов к такому сценарию, возникла ошибка, и критический компонент прокси-сервера начал падать, возвращая пользователям HTTP 5xx.

Особенность этой части инфраструктуры Cloudflare в том, что файлы конфигурации для защиты от ботов обновляются каждые несколько минут и очень быстро распространяются по всей глобальной сети компании, чтобы оперативно реагировать на новые виды автоматизированного трафика. Именно эта быстрота на этот раз сыграла против провайдера: "плохой" файл почти мгновенно оказался на тысячах серверов по всему миру, и проблема стала глобальной.

Изначально инженеры Cloudflare подозревали масштабную атаку, тем более что одновременно возникли проблемы и со статус-страницей, которая размещается вне инфраструктуры компании и в теории должна продолжать работать даже при внутренних сбоях. Лишь после дополнительного анализа стало ясно, что источник проблемы - модуль Bot Management и связанный с ним конфигурационный файл. Руководство компании отдельно отметило, что никакой злонамеренной активности за инцидентом не стояло, это был "латентный баг", проявившийся после рутинного изменения конфигурации.

Путь к восстановлению тоже шел через конфигурацию. Команда остановила генерацию и распространение новых версий файла для системы борьбы с ботами, вручную подставила последнюю "хорошую" версию и перезапустила ключевые прокси-сервисы. Основное влияние на трафик было снято примерно к 14:30 по UTC, а к 17:06 все сервисы Cloudflare, по данным компании, вернулись к нормальной работе. Тем не менее некоторым сайтам и приложениям потребовалось время, чтобы догнать накопившийся трафик и устранить вторичные эффекты сбоя.

Инцидент стал напоминанием о масштабе зависимости интернета от нескольких крупных инфраструктурных игроков. По оценкам, через облако и CDN Cloudflare проходит трафик более 20 процентов всех сайтов, поэтому любой крупный сбой в ее сети моментально ощущается пользователями по всему миру. Всего за последние месяцы рынок уже пережил несколько громких инцидентов с участием других крупных провайдеров, включая AWS и Microsoft Azure, а теперь к этому списку добавился еще и Cloudflare.

В своем постмортеме Cloudflare пообещала пересмотреть подход к обработке внутренних конфигурационных файлов, добавить больше "красных кнопок" для быстрого отключения проблемных модулей, а также улучшить защиту от ситуаций, когда отладочные и аналитические системы сами начинают перегружать инфраструктуру в момент аварии. Компания назвала этот день худшим с 2019 года и извинилась за "боль, которую мы сегодня причинили интернету". Для клиентов и обычных пользователей вывод очевиден: даже небольшой на вид конфигурационный баг в огромной распределенной системе может неожиданно вырубить значительную часть привычных онлайн-сервисов