Инцидент с CrowdStrike: 78 минут, в течение которых вышли из строя миллионы компьютеров Windows

2024-07-25 3258 комментарии
В пятницу, 19 июля 2024 года, инцидент с ошибочным обновлением CrowdStrike привел к выходу из строя миллионов компьютеров с Windows с «Синим экраном смерти», нарушив работу аэропортов, банков и медучреждений по всему миру. Ошибка в драйвере Falcon, работающем на уровне ядра Windows, привела к технокатастрофе

В пятницу, 19 июля 2024, сразу после полуночи в Нью-Йорке, мир начал сталкиваться с катастрофой. В Австралии покупатели столкнулись с сообщениями о «Синем экране смерти» (BSOD) на кассах самообслуживания. В Великобритании телеканалу Sky News пришлось прервать вещание после того, как серверы и ПК начали выходить из строя. В Гонконге и Индии стойки регистрации в аэропортах перестали работать. К утру в Нью-Йорке миллионы компьютеров с Windows были выведены из строя, стало ясно, что началась глобальная технокатастрофа.

В первые часы сбоя никто не понимал, что на самом деле происходит. Как так получилось, что так много компьютеров с Windows внезапно начали показывать синий экран? «Сейчас происходит что-то очень странное» — написал австралийский эксперт по кибербезопасности Трой Хант (Troy Hunt) в соцсети X. На Reddit IT-администраторы подняли тревогу в ветке под названием «Ошибка BSOD в последнем обновлении CrowdStrike», которая собрала более 20 000 комментариев.

Проблемы привели к тому, что крупные авиакомпании в США были вынуждены оставить свои воздушные суда на земле, а сотрудники банков, больниц и других крупных учреждений в Европе не могли войти в свои системы. И вскоре стало ясно, что все это произошло из-за одного небольшого файла.

В 00:09 по восточному времени (ET) 19 июля компания по кибербезопасности CrowdStrike выпустила ошибочное обновление для своего ПО Falcon, которое используется для защиты от вредоносных программ, программ-вымогателей и других киберугроз. Данное ПО широко используется бизнесами для защиты важных систем Windows, поэтому влияние ошибочного обновления было таким немедленным и масштабным.

Обновление CrowdStrike должно было быть обычным тихим обновлением, автоматически предоставляющим последнюю защиту клиентам в маленьком файле (всего 40 КБ), распространяемом через Интернет. CrowdStrike регулярно выпускает такие обновления без инцидентов, и они являются довольно обычным делом для программ безопасности. Но на этот раз все было по другому. Проблемное обновление выявило огромный недостаток в продукте кибербезопасности компании. Катастрофа была вызвана всего лишь одним неправильным обновлением и ее можно было легко избежать.

Как это могло случиться?

Защитное ПО Falcon от CrowdStrike работает на уровне ядра Windows, центральной части ОС, которая имеет неограниченный доступ к памяти и оборудованию системы. Большинство других приложений работают на уровне пользовательского режима и не нуждаются в особом доступе к ядру. ПО Falcon использует специальный драйвер, который позволяет ему работать на более низком уровне, чем большинство приложений, чтобы обнаруживать угрозы по всей системе Windows.

Работа на уровне ядра делает ПО CrowdStrike гораздо более эффективным в качестве линии защиты — но также гораздо более способным вызывать проблемы.

Патрик Уордл (Patrick Wardle), CEO компании DoubleYou и основатель фонда Objective-See отмечает:

Это может быть очень проблематично, потому что когда выходит обновление, которое не отформатировано правильно или имеет какие-то деформации, драйвер может принять его и слепо доверять этим данным.

Доступ к ядру позволяет драйверу создавать проблему с повреждением памяти, что и произошло в пятницу утром.

Уордл пояснил:

Сбой происходил в инструкции, в которой программа пыталась получить доступ к недопустимой памяти. Если вы работаете в ядре и пытаетесь получить доступ к недопустимой области памяти, то это вызовет сбой системы.

Компания CrowdStrike быстро обнаружила проблему, но ущерб уже был нанесен. Компания выпустила исправление через 78 минут после выхода оригинального обновления. Администраторы пытались перезагружать машины снова и снова и смогли вернуть некоторые из них в онлайн, если сеть получала обновление до того, как драйвер CrowdStrike повреждал сервер или ПК, но для многих сотрудников службы поддержки исправление включало обращение к затронутым устройствам вручную и удаление проблемного обновления CrowdStrike.

В то время как расследования инцидента CrowdStrike продолжаются, основная версия заключается в том, что в драйвере был баг, который долгое время оставался неактивным. Возможно, он неправильно проверял данные, которые читал из файлов обновления контента, но это никогда не было проблемой до выхода обновления в пятницу.

Уордл пояснил

Драйвер должен быть обновлен для дополнительной проверки ошибок, чтобы убедиться, что даже если в будущем будет выпущена проблемная конфигурация, драйвер будет иметь защиты для проверки и обнаружения... вместо слепого действия и сбоя. Я буду удивлен, если мы не увидим новую версию драйвера с дополнительными проверками на корректность и ошибки.

CrowdStrike должна была обнаружить эту проблему раньше. Стандартная практика заключается в постепенном развертывании обновлений, позволяя разработчикам тестировать на наличие серьезных проблем, прежде чем обновление дойдет до всей пользовательской базы. Если бы CrowdStrike правильно тестировала свои обновления контента на небольшой группе пользователей, то пятница стала бы сигналом для исправления основной проблемы драйвера, а не глобальной технокатастрофой.

Microsoft напрямую не связана с катастрофой в пятницу, но способ работы Windows позволил всей ОС выйти из строя. Повсеместные сообщения о «Синем экране смерти» напоминают ошибки Windows с 90-х годов. Многие заголовки изначально звучали как «Сбой Microsoft», прежде чем стало ясно, что виновата CrowdStrike. Теперь неизбежно возникают вопросы о том, как предотвратить подобную ситуацию с CrowdStrike в будущем, и ответ на них может дать только Microsoft.

Как предотвратить подобные инциденты в будущем?

Несмотря на то, что Microsoft не была непосредственно вовлечена в инцидент, компания все же контролирует работу Windows, и существует много возможностей для улучшения обработки подобных проблем в Windows.

В самом простом случае, Windows могла бы отключать ошибочные драйверы. Если Windows определяет, что драйвер вызывает сбой системы при загрузке и переводит ее в режим восстановления, Microsoft могла бы внедрить более умную логику, которая позволяла бы системе загружаться без неисправного драйвера после нескольких неудачных попыток загрузки.

Но более значительное изменение заключалось бы в ограничении доступа к ядру Windows, чтобы предотвратить аварийные завершения работы ПК сторонними драйверами. Ирония состоит в том, что Microsoft уже пыталась сделать это в Windows Vista, но столкнулась с сопротивлением со стороны поставщиков антивирусного ПО и регуляторов ЕС.

Microsoft пыталась внедрить функцию PatchGuard в Windows Vista в 2006 году, ограничив доступ сторонних приложений к ядру. McAfee и Symantec, две крупнейшие антивирусные компании того времени, выступили против изменений Microsoft, и Symantec даже пожаловалась в Европейскую комиссию. В итоге Microsoft уступила и вновь разрешила поставщикам безопасности доступ к ядру для мониторинга.

Apple в конечном итоге пошла по тому же пути, ограничив доступ к ядру своей ОС macOS в 2020 году, чтобы разработчики больше не могли получать доступ к ядру.

Уордл поясняет:

Это определенно было правильным решением со стороны Apple отказаться от сторонних расширений ядра. Но путь к достижению этого был полон проблем.

У Apple были некоторые баги в ядре, когда инструменты безопасности, работающие в пользовательском режиме, все равно могли вызвать сбой (kernel panic), и, по словам Уордла, Apple «также ввела некоторые уязвимости повышения привилегий, и некоторые другие баги, которые могут позволить инструментам безопасности на Mac быть выгруженными вредоносным ПО».

Издание The Wall Street Journal сообщило, что «представитель Microsoft сказал, что компания не может юридически изолировать свою ОС так, как это делает Apple, из-за соглашения с Европейской комиссией после жалобы». Журнал пересказывает слова анонимного представителя и упоминает соглашение 2009 года, согласно которому поставщикам безопасности предоставляется такой же уровень доступа к Windows, как и Microsoft.

В 2009 году Microsoft заключила соглашение с Европейской комиссией о взаимодействии, которое было «публичным обязательством» предоставить разработчикам доступ к технической документации для создания приложений на базе Windows. Соглашение было частью сделки, включающей реализацию экрана выбора браузера в Windows и предложение специальных версий Windows без встроенного Internet Explorer.

Соглашение, обязывающее Microsoft предлагать выбор браузера, прекратило действие в 2014 году, и Microsoft также прекратила выпускать специальные версии Windows для Европы. В настоящее время Редмонд без проблем включает свой браузер Edge в Windows 11, не сталкиваясь с возражениями европейских регуляторов.

Неясно, как долго действовало соглашение о взаимодействии, но Европейская комиссия, по-видимому, не считает, что оно мешает Microsoft переработать систему безопасности Windows.

Представитель Европейской комиссии Лиа Зубер (Lea Zuber) заявила:

Microsoft свободна в выборе своей бизнес-модели и в адаптации своей системы безопасности для противодействия угрозам, при условии соблюдения законодательства ЕС о конкуренции. Microsoft никогда не поднимала вопросы безопасности перед Комиссией, ни до недавнего инцидента, ни после.

Ужесточение безопасности Windows

Microsoft могла бы попытаться пойти по тому же пути, что и Apple, но сопротивление со стороны поставщиков безопасности, таких как CrowdStrike, будет сильным. В отличие от Apple, Microsoft также конкурирует с CrowdStrike и другими поставщиками безопасности, которые зарабатывают на защите Windows. Microsoft предлагает собственную платную услугу Defender for Endpoint, которая предоставляет аналогичную защиту для компьютеров с Windows.

Генеральный директор CrowdStrike Джордж Курц (George Kurtz) регулярно критикует Microsoft и ее систему безопасности, хвастаясь тем, что уводит клиентов от собственного ПО безопасности Microsoft. В последние годы Microsoft столкнулась с рядом проблем безопасности, поэтому конкурентам легко и эффективно использовать это для продажи своих альтернатив.

Каждый раз, когда Microsoft пытается ужесточить безопасность Windows, она сталкивается с обратной реакцией. Специальный режим в Windows 10, ограничивавший использование приложений из магазина Microsoft Store, чтобы избежать вредоносное ПО, вызвал путаницу и оказался непопулярным. Microsoft также оставила миллионы ПК позади с запуском Windows 11 и ее аппаратными требованиями, которые были разработаны для улучшения безопасности компьютеров с Windows.

Генеральный директор Cloudflare Мэтью Принс (Matthew Prince) уже предупреждает о последствиях дальнейшего ужесточения безопасности Windows, предполагая, что в таком случае Microsoft будет отдавать предпочтение своим собственным защитным решениям. Все эти возражения означают, что Microsoft предстоит сложный путь, если она хочет избежать ситуации, подобной инциденту с CrowdStrike.

Microsoft оказалась в затруднительном положении, испытывая давление с обеих сторон. Наверняка можно найти компромисс с поставщиками безопасности, чтобы согласовать лучшую систему, которая предотвратит повторение глобальных сбоев и появление экранов BSOD.

© . По материалам The Verge
Комментарии и отзывы

Нашли ошибку?

Новое на сайте