авария

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.

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

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

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

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

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

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

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

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

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

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

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

С одной стороны, хочется поржать над 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», «причину аварии» и предлагает посмотреть на безопасность систем по-новому, через другие линзы, чем я привык. Очень рекомендую.

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

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

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

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

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

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

Упал OVH.

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

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

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

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

Все мы были в ситуации, когда тест идет совсем не так, как мы планировали.

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

Поделюсь, как я тестировал пуши в Медузе. В какой-то момент я придумал отправлять в тестовом пуше ровно то же содержимое, которое было в предыдущем продакшен пуше. Если такой тест протечет на продакшен — большинство людей подумают, что это глюк телефона (или их самих глючит), но в любом случае — такая проблема мало кого удивит. «тест» или того хуже «111 zaebalo» — гораздо хуже. Признаюсь, что порой я тестировал пуши «путин умер», но повторять такое я не рекомендую.