CrowdStrike, 19 июля 2024: как off-by-one в валидаторе за 78 минут уронил 8,5 млн Windows-машин
earthlyman 2 минуты назад CrowdStrike, 19 июля 2024: как off-by-one в валидаторе за 78 минут уронил 8,5 млн Windows-машин Простой 5 мин 0 Тестирование IT-систем * Тестирование веб-сервисов * Тестирование мобильных...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Вот важная новость с фронта ИИ: earthlyman 2 минуты назад CrowdStrike, 19 июля 2024: как off-by-one в валидаторе за 78 минут уронил 8,5 млн Windows-машин Простой 5 мин 0 Тестирование IT-систем * Тестирование веб-сервисов * Тестирование мобильных приложений * Кейс Из песочницы Самый дорогой software-failure в истории — ~$5,4 млрд прямого ущерба. А причина — баг из первой главы учебника по тестированию: рассинхрон «20 против 21 параметра» во внутреннем валидаторе. Разбираем timeline, root cause и — главное — три отдельных провала QA, которые это допустили, плюс уроки, которые забираются в любую команду.
19 июля 2024 года в 04:09 UTC CrowdStrike выкатил обновление контентного файла для своего антивируса Falcon Sensor. За следующие 78 минут 8,5 миллиона Windows-машин по всему миру ушли в бесконечный BSOD-loop. Встали аэропорты (>5000 отменённых рейсов только в США), больницы, банки, биржи, 911-диспетчерские.
Технические детали
Прямой ущерб корпоративных клиентов — около $5,4 млрд по оценке Parametrix; одна только Delta потеряла ~$500 млн. Самое неприятное для нас, инженеров: баг был тривиальный. Не гонка потоков на проде под нагрузкой, не хитрый UB в компиляторе — а банальный выход за границу массива, который ловится unit-тестом за пять секунд.
Ниже — как именно это произошло и почему ни один уровень защиты не сработал. Timeline: что произошло04:09 UTC, 19 июля — выкатан channel file 291 (C-00000291-*. Это не код, а конфиг с правилами детекции для kernel-mode-драйвера Falcon Sensor.
Сразу после установки — драйвер в kernel-mode читает channel file → out-of-bounds read → kernel panic → BSOD. При перезагрузке — драйвер грузится снова (он уровня ядра, стартует на boot), снова читает тот же файл → снова BSOD. 05:27 UTC — CrowdStrike откатил файл (через 78 минут).
Отраслевые последствия
Но машины, уже получившие его, новый файл скачать не могли — они в BSOD-loop, до сети дело не доходит. Восстановление — каждую машину вручную: boot в safe mode, удалить C-00000291*. Для BitLocker — ещё и ввести recovery-ключ.
Помножьте на 8,5 млн. Полная хронология — в техническом разборе CrowdStrike и на Wikipedia. Почему «контентный файл» мог уронить ядроFalcon Sensor — kernel-mode-антивирус, видит каждое действие в системе.
Чтобы быстро ловить новые угрозы, CrowdStrike доставляет channel files — файлы с правилами детекции. И вот их архитектурный статус и стал корнем проблемы:расширение . sys (что путает всех — это не драйверы, а данные для драйвера);доставляются автоматически каждые несколько часов, без согласия клиента;считались «контентом», поэтому не проходили полный QA-конвейер, который проходит сам драйвер;не подписывались Microsoft через WHQL — формально это же «не новый драйвер»;клиенты не могли отложить их или раскатывать поэтапно — файл доходил до всех сразу.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





