24 июля 2024 года CrowdStrike сообщила, что глобальный сбой с BSOD на более чем 8,5 млн ПК с Windows произошёл из-за логической ошибки в коде в файле размером 40,04 КБ с обновлением для ИБ-сенсора Falcon, которую с помощью тестового ПО внутри компании обнаружить не удалось.
Фактически текущие тестовые инструменты CrowdStrike не позволяли должным образом проверять код в обновлении контента для сенсоров, который был распространён на миллионы компьютеров по всему миру. CrowdStrike пообещала более тщательно тестировать обновления, улучшить обработку ошибок в коде и реализовать поэтапное развёртывание патчей, чтобы избежать повторения этой IT-катастрофы.
В CrowdStrike пояснили, что выпустили некорректное обновление конфигурации контента для своего программного обеспечения ИБ-сенсоров Falcon, которое должно было «собирать телеметрию о возможных новых методах угроз». Эти обновления доставляются регулярно, но именно это обновление конфигурации привело к сбою Windows.
CrowdStrike обычно выпускает обновления конфигурации Falcon двумя разными способами. Первый способ работает с помощью механизма Sensor Content, который напрямую обновляет контент для Falcon на ПК клиентов и работает на уровне ядра в Windows.
Второй способ заключается в использовании механизма Rapid Response Content, который оперативно обновляет сигнатуры для сенсора Falcon при обнаружении вредоносного ПО. Именно файл с содержимым Rapid Response Content размером 40,04 КБ стал причиной IT-коллапса.
Числа в сбое из-за ошибки в ПО CrowdStrike: 78 минут (19 июля в 12:09 AM ET старт, спустя 1 час и 18 минут разработчики убрали доступ к этому обновлению, но было поздно) в интернете с серверов CrowdStrike распространялся некорректный файл размером 40,04 КБ для ИБ-инструмента Falcon Sensor, который привёл к появлению BSOD на более чем 8,5 млн на ПК с Windows 7-11.
Стандартные обновления для сенсора Falcon поступают на ПК клиентов по расписанию, проверяются несколько раз перед развёртыванием и обычно включают модели искусственного интеллекта и машинного обучения, которые позволяют ИБ-компании улучшить свои возможности обнаружения в долгосрочной перспективе. Некоторые из этих возможностей включают в себя то, что называется Template Types («Типы шаблонов»), то есть код, который обеспечивает новое обнаружение и настраивается по типу развёртывания контента с помощью доставки обновлений Rapid Response Content, которые доставляются на ПК клиентов в оперативном процессе напрямую с серверов CrowdStrike.
В CrowdStrike есть собственная система, которая выполняет проверку кода нового контента обновлений перед его выпуском, чтобы предотвратить возникновение различных инцидентов. На прошлой неделе CrowdStrike выпустила два обновления контента Rapid Response Content. «Из-за ошибки в средстве проверки контента один из двух экземпляров шаблона Template Types прошел проверку, несмотря на то, что содержал проблемные данные контента», — сообщила CrowdStrike.
CrowdStrike проводит как автоматическое, так и ручное тестирование контента обновлений и кода Template Types, но с Rapid Response Content это работает не всегда корректно. Развёртывание новых типов шаблонов Template Types обеспечило внутри компании «доверие к проверкам, выполняемым в средстве проверки контента», поэтому CrowdStrike, похоже, предположила, что развёртывание контента Rapid Response Content не вызовет особых проблем. Это предположение привело к тому, что сенсор Falcon получил проблемный контент через механизм Rapid Response Content, загрузил его код в свой интерпретатор контента и произошла ошибка out-of-bounds memory exception (попытка доступа к областям памяти, которые находятся за пределами допустимого адресного пространства). «Это неожиданное исключение с обращением к памяти не удалось корректно обработать в тестовой среде, что привело к сбою операционной системы Windows и появлению BSOD», — объяснили в CrowdStrike.
Чтобы этого не повторилось, CrowdStrike обещала улучшить тестирование контента Rapid Response, используя способы тестирования после получения обновления на локальных ресурсах, обновлять контент поэтапно, а не сразу, внедрить возможность отката некорректного обновления, а также добавить в своё тестовое ПО дополнительные механизмы для стресс-тестирования, фаззинга и обнаружения ошибок. CrowdStrike также будет выполнять тестирование на стабильность работы ПК после получения обновлений и тестирование интерфейса контента Rapid Response Content. В CrowdStrike решили обновить свой инструмент проверки контента, чтобы лучше проверять выпуски обновлений Rapid Response. «Проводится новая проверка для предотвращения развёртывания такого типа проблемного контента в будущем», — сообщали в CrowdStrike.
Ранее глава ИБ-компании CrowdStrike Джордж Куртц (бывший технический директор McAfee и автор книги Hacking Expeded) заявил, что в компании понимают серьёзность ситуации и глубоко сожалеют о неудобствах и сбоях в IT-инфраструктуре клиентов. Курц подтвердил, что в глобальном сбое IT-систем в мире виноваты его разработчики. По его словам, хосты Mac и Linux не затронуты, а дефект в коде был в одном обновлении контента для хостов Windows. В компании признали, что совершили логическую ошибку в коде в файле обновления C-00000291-*.sys, которое в итоге ушло тысячам клиентов по всему миру на миллионы ПК.
Разработчик Патрик Уордл пояснил, что в обновлении файлов "C-00000291-...32.sys" для работы CSAgent.sys была допущена ошибка: mov r9d, [r8] (R8: unmapped address). Взятый из массива указателей (хранящихся в RAX), индекс RDX (0x14 * 0x8) содержал недопустимый адрес памяти (invalid memory address). В итоге это обновление «вызвало логическую ошибку, которая привела к сбою ОС через CSAgent.sys».
Файлы, приведшие к глобальному сбою Windows, можно скачать отсюда. Это файлы конфигурации («файлы каналов»), которые являются частью механизмов поведенческой защиты, используемой для сенсоров Falcon ПО CrowdStrike. Обновления этих файлов каналов является, согласно пояснению разработчиков, нормальной частью запрограммированного поведения сенсоров и происходят несколько раз в сутки в ответ на новые тактики, методы и процедуры, обнаруженные CrowdStrike. Это не новый процесс, такая архитектура обновлений компонентов существует с момента создания защитного сервиса Falcon.
В CrowdStrike запустили отдельный сайт "How to Fix CrowdStrike Issue?" для помощи инженерам и системным администраторам пострадавших клиентов.
Ресурсы CrowdStrike с публикацией информации по текущей ситуации по сбою:
В Microsoft настоятельно советуют системным администраторам при BSOD с ошибками 0x50 или 0x7E из-за CrowdStrike выполнить несколько операций перезапуска хостов с Windows.
Также в Microsoft выпустили пошаговые инструкции для системных администраторов по решению этой проблемы для Windows 10 и Windows 11 под названием KB5042421: CrowdStrike issue impacting Windows endpoints causing an 0x50 or 0x7E error message on a blue screen.
Директор по информационной безопасности Acronis Кевин Рид пояснил СМИ: «Недавний инцидент в работе CrowdStrike был вызван ошибкой в файле, который, к сожалению, не был тщательно протестирован. Это привело к широкомасштабным сбоям с BSOD, многие ПК были затронуты по всему миру. Дефектное обновление требует ручного вмешательства для устранения, в частности, перезагрузки системы в "безопасном режиме" и удаления неисправного файла. Этот процесс является громоздким и временно оставляет системы уязвимыми, что потенциально может привести к оппортунистическим атакам».
Системные администраторы по всему миру продолжают исправлять BSOD в парках ПК на Windows из-за ошибки в ПО CrowdStrike. Им нужно загрузить систему в Safe mode и выполнить некоторые команды или поработать с реестром. Если диск ПК защищён шифрованием BitLocker, то нужно найти и ввести ключ восстановления BitLocker в каждой системе, а затем продолжить исправление обновления CrowdStrike, пока не заработают все компьютеры в организации. В большинстве организаций этот процесс занял до трёх суток, но в больших компаниях даже при мобилизации всего персонала команд техподдержки и системных администраторов решение этой проблемы может занять до недели или более из-за сложностей физического доступа к каждому ПК и удалённых месторасположений части филиалов.
В июне 2024 года техподдержка Red Hat предупреждала разработчиков и корпоративных клиентов о проблеме, вызывающей критический сбой (Kernel Panic) в версии Red Hat Enterprise Linux 9.4 после установки обновления, которое является частью механизмов поведенческой защиты, используемой для сенсоров Falcon ПО CrowdStrike.
Ранее стало известно, что обновление ПО CrowdStrike сломало серверные сборки на Debian и Rocky Linux в апреле и мае этого года. Но этого особо никто не заметил, кроме нескольких клиентов. ИБ-разработчики неделями тянули с закрытием тикетов и писали отписки клиентам, долго выпускав нужный патч. Пользователи тогда заметили, что уровень тестирования и техподдержки в CrowdStrike оставляет желать лучшего.
Только после глобального сбоя с ПК на Windows по всему миру в CrowdStrike заявили, что предпримут шаги, чтобы предотвратить повторение подобного инцидента с ошибками в обновлениях ПО.