Как одна строка кода обрушила интернет? Сбой Cloudflare и глобальный отказ
Может ли одна строка кода действительно привести к обрушению интернета? Обычно, когда пользователь открывает вебсайт, его браузер отправляет запрос на сервер, а сервер возвращает данные. Но все не так просто. Если сайт подвергается DDOS атаке, миллионы одновременных запросов перегружают систему и она перестает отвечать. В других случаях боты скрытно собирают данные и пытаются их украсть. Именно поэтому сайты используют такие сервисы, как Cloudflare.
Cloudflare создает защитный слой между пользователем и сайтом. Запрос анализируется, и если есть признаки атаки, он блокируется. Кроме того, Cloudflare улучшает скорость загрузки, храня популярные страницы на глобальных CDN серверах и направляя пользователя в ближайшую точку доступа. Это обеспечивает быструю загрузку сайта.
От этого инцидента пострадали такие крупные платформы, как X (Twitter), Visa и ChatGPT, а также многие другие международные сервисы. В то же время у ряда банков, государственных учреждений и частных организаций, работающих в Азербайджане, наблюдалась временная недоступность и проблемы с подключением их веб-сайтов. Причиной этого масштабного сбоя в разных сегментах интернета стала всего лишь одна строка кода.
Внутри Cloudflare работает специальная система обнаружения ботов, которая обновляется каждые 5 минут и анализирует около 60 параметров, обеспечивая непрерывное выявление новых ботов. Система разработана на языке Rust и имела верхний предел памяти. Она выделяла память максимум для 200 параметров, что уменьшало использование RAM и повышало производительность.
Основная проблема возникла из-за оператора unwrap в языке Rust. Если значение существует, unwrap возвращает его, но если нет, вызывает panic и аварийно завершает процесс. Значение считалось таким, что никогда не будет пустым. Однако после последнего обновления стало поступать более 200 параметров. Когда предел был превышен, unwrap вызвал panic, и система перестала работать. Пользователи увидели сообщение о временной ошибке сервера и предложение повторить попытку.
От сбоя пострадали такие платформы, как X (Twitter), Visa и ChatGPT. И все это произошло из-за единственной строки кода.