авария

Windows-компьютеры по всему миру уходят в так называемый синий экран смерти — то есть перестают работать вообще. Нарушена работа магазинов, банков, авиакомпаний по всему миру.

Проблема в обновлении популярного корпоративного антивируса CrowdStrike, который используют 20% компаний из списка Forbes 500. Ошибка в обычной программе ломает только её саму, но это — антивирус, он имеет специальный уровень доступа к ядру и поэтому ломает систему до основания.

Производитель антивируса уже придумал, как вылечить заболевшие машины, но для этого требуется физическое присутствие технаря рядом с компьютером. Представьте, инженерам нужно прямо сейчас обойти ногами десятки, если не сотни тысяч компьютеров. А компьютеры сотрудников, которые работают из дома? Ад!

Можно своими глазами увидеть: 1) какие известные компании НЕ используют CrowdStrike (таких немного) 2) как это прокатывается волной по всему глобусу — технарь из Австралии пишет, что «у нас в магазинах всё только за наличку», а американец отвечает «у нас все пока спят, кроме тех, кого разбудили, чтобы это починить».

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

ФБ рассказал, почему они упали в понедельник.

Началось все с человеческой ошибки. В ходе обычной работы, кто-то дал системе команду, которая отключила все дата-центры Фейсбука от ее скоростной внутренней сети, которая связывает дата-центры Фейсбук друг-с-другом и со внешним интернетом.

Вообще-то, у них есть программа, которая проверяет команды и отменяет потенциально опасные — вроде той, которую написали в понедельник. Из-за ошибки в этой программе защиты, команда прошла автоматический контроль.

В этот момент все сервера Фейсбука пропали с радаров интернета, Фейсбук для внешнего мира сломался.

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

DNS — адресная книга интернета. Эта система переводит человеческий адрес Facebook.com в машинный айпи-адрес 157.240.224.35. Формально, интернет может работать и без DNS, в реальности на работе DNS завязано почти ВСЁ. Например, внутренние сервисы — инструменты, которыми пользуются инженеры фейсбука для решения проблем. Да что там сервисы, сотрудники фб в офисы не могли попасть, потому что автоматической системе контроля дверей тоже нужна DNS.

Дополнительная вишенка на торте — сломалась не только основная сеть фейсбука, но и запасная, которая построена специально для доступа к управлению сетевым железом в случае аварии основной сети. В общем, инженерам пришлось ножками топать в дата-центр и подключаться к сетевому оборудованию напрямую, буквально проводочком. Это непросто, потому что современные дата-центры — это крепости, попасть в них кому-то сверх обычного персонала — то ещё приключение. А теперь попробуйте это сделать, когда все корпоративные IT-системы недоступны. Подозреваю, что высшему руководству буквально по телефону приходилось подтверждать личность инженеров. Да и современное железо в ДЦ построено так, чтобы даже наличие физического доступа не дает контроля над ним — придется доказать, что ты не верблюд.

В общем, горячие были 6 часов у инженеров. Респект фб, что так быстро описали суть произошедшего и жаль, что подробный отчет, по которому, безусловно, можно снять боевик — мы вряд ли увидим.

Конкретно от этой проблемы фб вряд ли пострадает во второй раз — программу проверки команд теперь будут тестировать на порядок лучше, да и DNS в будущем, вряд ли будет отключаться так легко. При этом, мы говорим об очень сложных системах и в них рано или поздно что-то пойдет не так. Такие крупные аварии, «идеальные штормы» происходят каждые несколько лет. Этот — не последний.

Нам же, простым смертным, это очередное напоминание, что стоит подстелить соломки и сделать так, чтобы наши сервисы, наши бизнесы продолжали работать, не теряли клиентов, даже если сломался такой гранд, как вацап или фейсбук. Когда все твои конкуренты вне доступа из-за крупной аварии — это шанс получить много новых клиентов, если ты продолжаешь работать. Хоть и баян, но: кризис — время возможностей.

Интересно, это сообщение пришло всем миллионам клиентов МТС или только какой-то небольшой группе? В любом случае: 8 вечера по Москве - не лучшее время для тестов на продакшене. Привет, МТС!

Доброе утро! А вот у южнокорейских государственных айтишников — не очень доброе, потому что они не делали бэкапы до сих пор восстанавливают инфраструктуру после пожара в серверной.

У большинства систем были бэкапы, но удаленное хранилище файлов, которым пользовались 17% всех госслужащих страны — не имело бэкапов. Безвозвратно потеряны терабайты документов. Делайте бэкапы!

Кстати, у этой истории есть ещё и шпионское измерение: в июне 2025го двое хакеров взломали северокорейского (китайского?) хакера, который взломал LG и кучу южнокорейских государственных систем. Дали об этом знать южнокорейским правоохранителям, которые в августе перестали выходить на связь. А дальше уже совсем мистика: кто-то пишет им с одноразового номера в сигнале «Proton небезопасен», после чего Proton блокирует почтовый ящик, с которого они вели коммуникацию только с южнокорейскими властями, но разблокирует после публикации.

24 сентября южнокорейский парламент начинает расследование взлома, 25го анонсирует физический аудит дата-центра, 26го — пожар. Подробности и ссылки на дампы с компьютера хакера — в легендарном журнале phrack.

Подъехал пост-мортем от Амазона.

С одной стороны, хочется поржать над DNS Enactor, DropletWorkflow Manager (DWFM), Network Manager и прочими — это Galactic от Krazam, только в реальном мире и на очень серьезных щщах.

Если без шуток, то цепочка такая:

1. сначала сломался доступ к dynamodb из-за рейс-кондишена системы управления DNS — два таска начали писать в DNS одновременно, первый старую версию записей, второй — более новую новую, в результате часть записей в DNS оказалась новая, часть старая, второй процесс запустил cleanup, который удалил все старые записи и из такого разломанного состояния система сама восстановиться не могла. Сломалось в полночью, за 50 минут поняли в чем дело и ещё за 40 минут починили руками.

2. из-за сломанного dynamodb, система управления железом не могла обновить статус физических серверов и начала отмечать их как «недоступные», поэтому не могла запустить новые виртуальные машины; после восстановления dynamodb, по-идее всё должно было встать само, но из-за большого объема железа, стоящего в очереди, обновление статуса занимало дольше, чем таймаут — и очередь не разгребалась, а только росла. Коллапс. Стандартной процедуры восстановления для такого случая прописано не было, через 2 часа попыток что-то разрулить, инженеры ограничили число входящих запросов и начали перезапускать тачки с системой управления; это помогло, теперь можно было создать новые виртуальные машины;

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

4. из-за этой задержки появления сети на машинах, моргали статусы серверов в лоад-балансерах, отмечая живые инстансы как мертвые и триггерились дополнительные переключения нагрузки (привет, DNS!) и перегрузилась система проверки здоровья серверов,
пришлось её на время выключить.

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

Раздел «что мы поменяем» удивительно короткий и очень технический: починят рейс кодишен в DNS, ограничат объем серверов, который может выключить лоад-балансер и т. д. Ну и заканчивают «извините, в будущем будем более лучше стараться».

Интересно, что они не делают никаких философских выводов из ситуации. Видимо, считают, что идейно всё верно. Я сам такими огромными системами (и командами) не управлял и поэтому осторожно предположу, что, наверное, технически, можно сделать систему проще, но учитывая, что над ней работают десятки независимых команд — это, наверное, минимальный доступный объем сложности и допустимый объем ошибок. Было бы интересно услышать мнение «настоящих сварщиков».

—

Коллеги советуют замечательную статью на тему безопасности сложных систем. Она не дает ответов, но предостерегает от попытки найти «root cause», «причину аварии» и предлагает посмотреть на безопасность систем по-новому, через другие линзы, чем я привык. Очень рекомендую.

Помните «проблему 2000»? Оказывается, есть и «проблема 2022». В почтовых серверах MS Exchange (один из крупнейших движков для корпораций) сегодня перестала ходить почта из-за «ошибки 2022 года» или Y2K22.

Дело в том, что для обозначения версий антиспам-списков в этом почтовом сервере разработчики использовали формат 220101002. 22 — это 22-ой год, 0101 — день и месяц, 002 — внутренняя версия обновления в этот день. Проблема в том, что они хранили это длинное обозначение в формате «число», которое вмещает в себя числа не больше 2^31, то есть не больше 2 147 483 648. 21-й год в такой формат влезает, 22-й — уже нет.

Выросло поколение программистов, которое не знает, что такое «проблема 2000», Y2K, когда в конце 1999 люди закупались продовольствием и оружием в ожидании компьютерного апокалипсиса, а решением этой (компьютерной) проблемы на полном серьезе несколько лет занимались правительства всего мира. Вот душевные статьи на русской (там и про Россию есть) и английской википедиях.

На фото президент США Билл Клинтон объясняет сложные технические штуки простым человеческим языком.

С новым 2022 годом!

Помните, на прошлой неделе Cloudflare упал и уронил половину интернета?

Они пишут одни из лучших post-mortem’ов в индустрии. Последний — не исключение.

Круто, что они опубликовали его прямо в день падения. Обычно, одни согласования с юристами занимают дни.

Но самое впечатляющее для меня в этой истории — вот этот комментарий пользователя eastdakota на форуме hacker news.

Это Мэтью Принс, основатель и генеральный директор компании, которая обслуживает 20% всего интернет-трафика, рассказывает, как он сначала сидел на созвоне по починке аварии, а потом пригласил к себе домой бывшего техдира (тот захватил сына, показать, какая у папы работа) и главного юриста компании и они на троих сообразили текст в гугл-доке. Задали в нем вопросы технарям компании. Заказали еды. Включили ответы на вопросы в текст. Дали вычитать технарям. И опубликовали. И получился пост-мортем. ❤️

Фейсбук удалил все посты, опубликованные с помощью сервиса Amplifr. Сервис позволяет делать отложенные посты, смотреть аналитику и управлять многими соцсетями из единой админки.

Этим инструментом для управления своими соцсетями пользовалась Ведомости, Коммерсант, да добрая половина русских медиа. Все эти медиа потеряли и посты, и комментарии под ними! Вот показательный пост Мити Алешковского, создателя «Таких дел».

Сделал это фейсбук в рамках борьбы с ботами и «фейк-ньюз». Не удивлюсь, если какая-то фабрика троллей на самом деле пользовалась Amplifr. Да и сервис русский, подозрительно это всё (его делает одна из лучших аутсорс-студий россии, злые марсиане).

Судя по всему, русские медиа в глазах фейсбука — папуасы, с которым можно вообще не считаться. Было бы дело в америке — журналисты бы уже строчили статьи о том, что фейбсук нужно зарегулировать и вообще сделать чем-то типа муниципального водопровода. А скорее сами сотрудники фб осознали бы, что творят фигню и разобрались бы в ситуации детальнее.

А нашим медиа предлагаю присмотреться к западному buffer — делает то же самое, что и amplifr, только им пользуются крупные западные медиа, так что именно такой фигни я бы не опасался.

P.S. В комментариях у Мити пишут, что посты скрыты до окончания проверки и после американских рождественских каникул они скорее всего будут восстановлены. Странно, что нормальные вроде ребята нигде про это не пишут публично.

Упал OVH.

Легли две независимые 20kV линии питания и одновременно легла оптика до основных площадок обмена трафиком в Европе.

Недоступны Ведомости, Росбалт, Знак.ком.

Лучи поддержки коллегам.

Статус-страница ovh тоже лежит, но за развитием событий можно следить в твиттере основателя https://twitter.com/olesovhcom

ФБ начал возвращаться в строй. Сетевая связность восстановлена, заработал DNS. Приложения, скорее всего, тоже скоро очухаются.

Вот хороший обзор ситуации и объяснение механизма падения от Cloudflare https://blog.cloudflare.com/october-2021-facebook-outage/

Теперь ждём технического пост-мортема от фб.

Пойду спать, спокойной ночи, друзья.