Что стало причиной великого краха CrowdStrike-Windows в 2024 году? У истории есть ответ
Когда надежный поставщик программного обеспечения предоставляет обновление, из-за которого компьютеры по всему миру немедленно перестают работать, наступает хаос. Инцидент, произошедший на прошлой неделе, был не первым подобным событием. Вот как сделать так, чтобы это не повторилось.
[Обновлено 24 июля с подробностями предварительного обзора CrowdStrike после инцидента]
Microsoft Windows используется на более чем миллиарде ПК и миллионах серверов по всему миру, многие из которых играют ключевую роль в объектах, напрямую обслуживающих клиентов. Итак, что происходит, когда надежный поставщик программного обеспечения предоставляет обновление, из-за которого эти компьютеры немедленно перестают работать?
По состоянию на 19 июля 2024 года мы знаем ответ на этот вопрос: наступает хаос.
В данном случае доверенным разработчиком программного обеспечения является фирма CrowdStrike Holdings, чья предыдущая известность была связана с охранной фирмой, проанализировавшей в 2016 году взлом серверов, принадлежащих Национальному комитету Демократической партии. Сейчас это всего лишь странное воспоминание, поскольку фирма навсегда останется известна как компания, вызвавшая крупнейший в истории сбой в сфере ИТ. Он приземлил самолеты, отрезал доступ к некоторым банковским системам, нарушил работу основных сетей здравоохранения и отключил по крайней мере одну новостную сеть.
По оценкам Microsoft, обновление CrowdStrike затронуло 8,5 миллионов устройств Windows. Это крошечный процент от установленной во всем мире базы, но, как отмечает Дэвид Уэстон, вице-президент Microsoft по корпоративной безопасности и безопасности ОС, «широкие экономические и социальные последствия отражают использование CrowdStrike предприятиями, которые используют множество критически важных сервисов». Согласно отчету Reuters, «более половины компаний из списка Fortune 500 и многие правительственные органы, такие как само ведущее агентство кибербезопасности США, Агентство кибербезопасности и безопасности инфраструктуры, используют программное обеспечение компании».
Что случилось?
Компания CrowdStrike, которая продает программное обеспечение безопасности, предназначенное для защиты систем от внешних атак, распространила ошибочное «обновление конфигурации датчиков» на миллионы компьютеров по всему миру, на которых установлено программное обеспечение Falcon Sensor. По данным CrowdStrike, это обновление представляло собой «файл канала», функция которого заключалась в выявлении вновь наблюдаемой вредоносной активности кибератак.
Хотя файл обновления имел расширение .sys, сам по себе он не был драйвером ядра. Он взаимодействует с другими компонентами датчика Falcon, которые работают в том же пространстве, что и ядро Windows, самый привилегированный уровень на ПК с Windows, где они напрямую взаимодействуют с памятью и оборудованием. CrowdStrike сообщает, что «логическая ошибка» в этом коде привела к сбою ПК и серверов Windows через несколько секунд после загрузки, отображая STOP-ошибку, более известную как «синий экран смерти» (BSOD).
В предварительном обзоре инцидента, опубликованном на своем веб-сайте 24 июля, CrowdStrike подтвердила некоторые подробности инцидента, о которых сообщалось ранее, и добавила еще несколько. Неудавшийся код был частью датчика Falcon, который работает в пространстве ядра Windows. Версия 7.11 датчика была выпущена 28 февраля 2024 года. По данным CrowdStrike, в этом выпуске представлен «новый тип шаблона [InterProcess Communication (IPC)] для обнаружения новых методов атак, злоупотребляющих именованными каналами. В этом выпуске были соблюдены все процедуры тестирования содержимого датчика. ..."
Три дополнительных экземпляра типа шаблона IPC были развернуты в период с 8 по 24 апреля без происшествий. 19 июля, по словам компании, «были развернуты два дополнительных экземпляра шаблона IPC. Из-за ошибки в средстве проверки контента один из двух экземпляров шаблона прошел проверку, несмотря на то, что содержал проблемные данные контента». Эти экземпляры были развернуты в производство. «При получении датчиком и загрузке в интерпретатор контента, — продолжает отчет, — проблемное содержимое в файле канала 291 привело к чтению за пределами памяти, что вызвало исключение. Это неожиданное исключение не удалось корректно обработать, что привело к сбой операционной системы Windows (BSOD)».
Устранение ущерба от такой ошибки — крайне утомительный процесс, требующий ручной перезагрузки каждого затронутого компьютера в среду восстановления Windows, а затем удаления дефектного файла с компьютера с помощью интерфейса командной строки старой школы. Если системный диск рассматриваемого ПК защищен программным обеспечением шифрования Microsoft BitLocker, как это делается практически на всех бизнес-компьютерах, для исправления требуется один дополнительный шаг: ввод уникального 48-значного ключа восстановления BitLocker, чтобы получить доступ к диску и разрешить удаление неисправный драйвер CrowdStrike.
Если вы знаете кого-нибудь, чья работа связана с администрированием компьютеров под управлением Windows в корпоративной сети, использующей код CrowdStrike, вы можете быть уверены, что они очень заняты сейчас и будут работать еще несколько дней.
Мы уже видели этот фильм
Когда я впервые услышал об этой катастрофе (и я не злоупотребляю этим словом, уверяю вас), мне показалось это знакомым. В сабреддите Reddit для системного администратора пользователь u/externedguy напомнил мне, почему. Возможно, вы помните эту историю 14-летней давности:
«Неисправное обновление McAfee приводит к сбою компьютеров XP во всем мире».
Упс, они сделали это снова.
Сегодня в 6 утра компания McAfee выпустила обновление определений своего антивируса для корпоративных клиентов, у которых возникли небольшие проблемы. Под «незначительной проблемой» я имею в виду такую проблему, которая делает компьютер бесполезным до тех пор, пока не прибудет техническая поддержка и не устранит повреждение вручную. Как я прокомментировал сегодня в Твиттере, я не уверен, что какой-либо автор вирусов когда-либо разработал вредоносное ПО, которое отключало бы столько компьютеров так быстро, как это сделал сегодня McAfee.
В этом случае McAfee доставила ошибочный файл описания вируса (DAT) на компьютеры под управлением Windows XP. Этот файл ошибочно определил важный системный файл Windows, Svchost.exe, как вирус и удалил его. В результате, согласно современному отчету, «пострадавшие системы войдут в цикл перезагрузки и [потеряют] весь доступ к сети».
Параллели между этим инцидентом 2010 года и отключением CrowdStrike в этом году поразительны. По сути, это было дефектное обновление, которое было установлено на миллионы компьютеров под управлением мощного программного агента, из-за чего затронутые устройства переставали работать. Восстановление потребовало ручного вмешательства на каждом отдельном устройстве. Кроме того, ошибочный код был вытеснен компанией общественной безопасности, отчаянно пытавшейся расти в условиях жесткой конкуренции на рынке.
Время было особенно неудачным для McAfee. Intel объявила о своем намерении приобрести McAfee за 7,68 миллиарда долларов 19 апреля 2010 года. Дефектный DAT-файл был опубликован через два дня, 21 апреля.
Ошибка McAfee в 2010 году стала большим событием, она ударила по коленям компаниям из списка Fortune 500 (включая Intel!), а также университетам и правительственным/военным учреждениям по всему миру. Это вывело из строя 10% кассовых аппаратов крупнейшей продуктовой сети Австралии, что привело к закрытию от 14 до 18 магазинов.
В отделе «Вы не можете это придумать…» Основатель и генеральный директор CrowdStrike Джордж Курц был техническим директором McAfee во время того инцидента 2010 года.
Что делает продолжение 2024 года намного хуже, так это то, что оно также затронуло серверы на базе Windows, работающие в облаке, в Microsoft Azure и на AWS. Как и многие ноутбуки и настольные ПК, которые вышли из строя из-за этого ошибочного обновления, для восстановления облачных серверов требуется трудоемкое ручное вмешательство.
Проверка качества CrowdStrike не удалась
Удивительно, но это не первое неисправное обновление сенсора Falcon от CrowdStrike в этом году.
Менее чем за месяц до этого, согласно отчету The Stack, CrowdStrike выпустила обновление логики обнаружения для датчика Falcon, которое выявило ошибку в функции сканирования памяти датчика. «Результатом ошибки, — написала CrowdStrike в сообщении для клиентов, — является логическая ошибка в CsFalconService, которая может привести к тому, что датчик Falcon для Windows будет потреблять 100% ресурсов одного ядра ЦП». Компания откатила обновление, и клиенты смогли возобновить нормальную работу после перезагрузки.
В то время эксперт по компьютерной безопасности Уилл Томас отметил в X/Twitter: «[T]это просто показывает, насколько важно загружать новые обновления на одну машину, чтобы сначала протестировать их, прежде чем распространять на весь парк!»
В том инциденте 2010 года основной причиной оказался полный сбой в процессе контроля качества. Кажется самоочевидным, что здесь имеет место аналогичная ошибка в обеспечении качества. Неужели эти два обновления CrowdStrike не тестировались перед тем, как их распространили на миллионы устройств?
Частично проблема может заключаться в корпоративной культуре, в которой давно ведутся жесткие разговоры. В последнем сообщении о прибылях и убытках CrowdStrike генеральный директор Джордж Курц похвалился способностью компании «быстро выпускать продукты, меняющие правила игры», уделив особое внимание Microsoft:
А совсем недавно, после еще одного крупного нарушения Microsoft выводов Совета по кибербезопасности СНГ, мы получили поток запросов с рынка о помощи. Мы решили, что хватит: существует широко распространенный кризис доверия среди специалистов по безопасности и ИТ-специалистов в клиентской базе Microsoft по обеспечению безопасности.
Отзывы были исключительно положительными. Теперь у CISA есть возможность снизить риск монокультуры, используя только продукты и облачные сервисы Microsoft. Наши инновации продолжаются с головокружительной скоростью, умножая причины для консолидации рынка на Falcon. Тысячи организаций объединяются на платформе Falcon.
Учитывая недавние события, некоторые из этих клиентов могут задаться вопросом, является ли этот «головокружительный темп» частью проблемы.
В рамках своего первоначального ответа CrowdStrike заявляет, что планирует принять дополнительные меры для повышения «устойчивости и тестирования программного обеспечения». Что еще более важно, компания планирует реализовать «стратегию поэтапного развертывания… при которой обновления постепенно развертываются на больших участках сенсорной базы, начиная с канареечного развертывания». Компания также обязалась предоставить клиентам «более высокий контроль над доставкой обновлений Rapid Response Content, позволяя детально выбирать, когда и где эти обновления будут развертываться».
Тем временем Комитет внутренней безопасности Палаты представителей США планирует вызвать генерального директора CrowdStrike для слушаний о том, что пошло не так, а директор службы безопасности CrowdStrike Шон Генри опубликовал в LinkedIn извинения, признав: «В пятницу мы вас подвели… . Уверенность, которую мы создавали с помощью капельниц на протяжении многих лет, была потеряна за считанные часы, и это был настоящий удар».
Какую вину должна взять на себя Microsoft?
Невозможно полностью отпустить Microsoft от ответственности. В конце концов, проблемы с датчиком Falcon были уникальными для ПК с Windows, как поспешили напомнить нам администраторы магазинов, ориентированных на Linux и Mac.
Частично это архитектурная проблема. Разработчики приложений системного уровня для Windows, включая программное обеспечение безопасности, исторически реализуют свои функции с помощью расширений ядра и драйверов. Как показывает этот пример, ошибочный код, выполняющийся в пространстве ядра, может привести к неустранимым сбоям, тогда как код, выполняющийся в пространстве пользователя, не может.
Раньше так было и с MacOS, но в 2020 году, выпустив MacOS 11, Apple изменила архитектуру своей флагманской ОС, чтобы категорически препятствовать использованию расширений ядра. Вместо этого разработчикам рекомендуется писать системные расширения, которые работают в пространстве пользователя, а не на уровне ядра. В MacOS CrowdStrike использует Endpoint Security Framework от Apple и заявляет, что, используя эту конструкцию, «Falcon достигает тех же уровней видимости, обнаружения и защиты исключительно с помощью датчика пользовательского пространства».
Может ли Microsoft внести такие же изменения в Windows? Возможно, но это наверняка вызовет гнев антимонопольных органов, особенно в Европе. Проблема особенно остра, поскольку у Microsoft есть прибыльный бизнес в области корпоративной безопасности, и любое архитектурное изменение, которое усложняет жизнь таким конкурентам, как CrowdStrike, будет справедливо рассматриваться как антиконкурентное.
Действительно, представитель Microsoft заявил Wall Street Journal, что компания не может следовать примеру Apple из-за проблем с антимонопольным законодательством. Согласно отчету WSJ, «в 2009 году Microsoft согласилась предоставить производителям программного обеспечения безопасности тот же уровень доступа к Windows, что и Microsoft». Это беспокойство может быть открытым для обсуждения, но, учитывая историю сотрудничества Microsoft с регулирующими органами ЕС, понятно, почему компания не хотела ввязываться в этот спор.
В настоящее время Microsoft предлагает API-интерфейсы для Microsoft Defender for Endpoint, но конкуренты вряд ли будут их использовать. Они скорее будут утверждать, что их программное обеспечение лучше, а использование «неполноценного» предложения Microsoft будет сложно объяснить клиентам.
Тем не менее, этот инцидент, причинивший ущерб на многие миллиарды долларов, должен стать тревожным сигналом для всего ИТ-сообщества. Как минимум, CrowdStrike необходимо активизировать свою игру в тестировании, а клиентам следует быть более осторожными в разрешении развертывания такого рода кода в своих сетях без его самостоятельного тестирования.