TGViewer
Сказки технического менеджера Сказки технического менеджера @tech_managers_tales · 447 subscribers
Post #46 608
Про сбой CrowdStrike и Windows

19 июля 2024 года случился один из самых больших технических сбоев в современной истории - больше 8 млн. компьютеров на Windows упали в BSOD (синий экран смерти) и без помощи кожаных мешков встать уже не смогли. Если помните, тогда это затронуло много всего - аэропорты, больницы, операторы связи, банки - куча рейсов было отменено, куча каскадных сбоев по всей инфраструктуре и прочее-прочее. Проблема с программами, которые виртуальные, ОЧЕНЬ сильно повлияла на мир физический в тот момент. Причиной этих сбоев стала проблема при работе антивирусной программы от компании Crowdstrike. Ее продуктами пользуются тысячи компаний по всему миру.

А почему вообще случился этот сбой?
Корневой причиной этого инцидента оказалось плохое обновление. Следите за руками:
- Часть проверок безопасности шла вместе с дистрибутивом очередной версии их продукта. Но это инфобез, а значит новые угрозы появляются чаще, чем клиенты привыкли обновляться. Поэтому Crowdstrike поставляли облачные обновления с библиотеками новых проверок.
- Применить эти обновления просто так нельзя, потому что антивирус Crowdstrike работает на уровне ядра ОС и ниже. Просто так "с улицы" Microsoft никому не дает выполнять код на уровне ядра, для этого нужно получить специальный сертификат Windows Hardware Quality Labs, где ваш код будет жестко проверен.
- Если для обновления проверок безопасности нужно каждый раз проходить такую сертификацию, то о "быстрых" обновлениях можно забыть - такие сертификации занимают дни и недели.
- Поэтому Crowdstrike написали драйвер, который помимо выполнения части проверок, мог динамически загружать и выполнять код из файлов обновлений т.е. они сделали некий "движок" проверок. Именно этот драйвер и отправился на сертификацию и когда-то успешно ее прошел. За счет этого хода получилось, что и сертификат от Microsoft новый получать каждый раз не нужно и все свежие данные для обнаружения угроз доставляются и применяются очень быстро. Успех!
- В феврале 2024 Crowdstrike зарелизили новый тип проверок. Одной из его особенностей стало то, что в файле обновления добавилось новое 21-е поле (раньше было 20).
- 19 июля Crowdstrike покатили обновление, которое впервые начало использовать проверку безопасности с этим самым 21 полем. И тут - БУМ!!! - BSOD из-за чтения за пределами массива, потому что никакого 21 поля в рантайме нет.
- СТОП. Но в файле обновления оно же есть? Да, есть. Но беда была в том, что логика, которая читала этот файл и инициировала дальнейшую работу проверок из обновления, читала ТОЛЬКО ПЕРВЫЕ 20 ПОЛЕЙ. ОНА ВСЕГДА ПЕРЕДАВАЛА ДАЛЬШЕ ТОЛЬКО 20 ПОЛЕЙ, КАРЛ!
- А тут впервые сработала логика, которая ожидала во входном массиве 21-е поле. Но поля этого не оказалось. Из-за чего эта логика упала и потащила за собой всю систему...

Тэк, а почему упала ОС, а не просто приложение?
Это случилось потому, что этот код выполнялся на уровне ядра ОС. Когда падает код на уровне приложения - падает приложение. Когда падает код на уровне ядра - падает сама ОС. Такой защитный механизм реализован во всех современных ОС - таким образом она защищается от невалидного состояния, в котором продолжать работу ЕЩЕ ОПАСНЕЕ, чем просто упасть.
Важная фишка - драйвер от Crowdstrike был зареган как boot-start драйвер. Этот тип драйверов вклинивается в процесс запуска ОС и запускается на максимально раннем этапе, что усугубило ситуацию.

Почему проблему не выявили раньше, если релиз нового типа проверок был в феврале?
Это хороший вопрос к качеству тестирования в Crowdstrike. В самом постмортеме они честно говорят, что на этапе тестирования использовали в этом 21 поле wildcard типа звездочки. Вероятно, из-за этого логика работы с конкретными значениями не запускалась.

Как можно работать с массивом и не проверять его размерность и кол-во входных параметров?!
¯\_(ツ)_/¯
В своем постмортеме ребята честно выделяют это как один из action items.

P.S. Но на самом деле все это случилось из-за деплоя в пятницу.

P.PS. В комментах добавлю полный список их action items, как я его понял, а также ссылку на оригинал постмортема.
  • 🔥 6
  • ❤ 1
More from @tech_managers_tales
  1. Sep 16, 2026Готовлюсь сейчас к выступлению на Yandex Scale с провокационной темой доклада - "Мониторин…
  2. Aug 30, 2026Про личный опыт с Hermes Когда я прогуливаюсь вечерами и не только, у меня частенько возни…
  3. Aug 10, 2026Про еще один важный запуск Ой, совсем забыл поделиться, что с месяц назад был важный для м…
  4. Jul 20, 2026Саммари доклада с Infraconf 2026. Часть 2 про практику Продолжаю саммари доклада — теперь…
  5. Jul 2, 2026Саммари доклада с Infraconf 2026 Как обещал, публикую краткое содержание своего доклада "О…
  6. Jun 22, 2026Запись доклада с Infraconf 2026 Finally, готова запись моего доклада "Особенности observab…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →