kai.kzLab

Сбой Ericsson 6 декабря 2018 года: как истёкший сертификат оставил без мобильного интернета O2, SoftBank и операторов 11 стран

Команда KAI Lab · · 8 мин чтения

6 декабря 2018 года миллионы абонентов O2 в Великобритании и SoftBank в Японии остались без мобильного интернета из-за истёкшего сертификата в программном обеспечении Ericsson. Сертификат был в двух версиях ПО узлов ядра сети SGSN-MME, и когда срок вышел, узлы у операторов в 11 странах отказали почти одновременно.

Сеть никто не взламывал и не перегружал. Ericsson в тот же день признала вину, пообещала вывести проблемное ПО из эксплуатации и извинилась не только перед операторами, но и перед их абонентами. SoftBank лежала около четырёх с половиной часов, а O2 объявила о полном восстановлении только ночью 7 декабря.

Главное о сбое в одной таблице

ВопросОтвет
Когда6 декабря 2018
Причинаистёкший сертификат в двух версиях ПО SGSN-MME от Ericsson
Гдеоператоры в 11 странах, почти в одно время
ВеликобританияO2 — около 25 млн клиентов, а также абоненты giffgaff, Tesco Mobile, Sky Mobile на её сети. Не работала передача данных
ЯпонияSoftBank и Y!mobile — 4G LTE, домашний телефон «Оути-но дэнва», местами SoftBank Air, с 13:39 до 18:04 по токийскому времени
Кибератака?Нет. Ericsson назвала причиной истёкший сертификат
Реакция Ericssonпроблемное ПО выводят из эксплуатации, извинения операторам и их клиентам
КомпенсацииO2: клиентам с контрактом — два дня абонентской платы, до конца января

Хронология сбоя

ВремяЧто произошло
6 декабря, 13:39 по Токио (04:39 UTC)У SoftBank и Y!mobile перестают работать 4G LTE, домашний телефон и местами SoftBank Air
6 декабряУ O2 и операторов на её сети пропадает мобильный интернет
6 декабряEricsson сообщает: причина — истёкший сертификат в двух версиях ПО SGSN-MME. К концу дня у большинства операторов сервисы восстановлены
6 декабря, 18:04 по Токио (09:04 UTC)SoftBank восстанавливает связь
7 декабря, около 03:30 по ЛондонуO2 сообщает, что передача данных работает
7 декабряO2 объявляет компенсации клиентам

Что такое SGSN-MME и почему сертификат его остановил

SGSN-MME — узел пакетного ядра мобильной сети. Он регистрирует телефоны в сети, следит за их перемещением и поднимает сессии передачи данных: SGSN — для 2G и 3G, MME — для 4G. Если он не работает, телефон видит антенну, но интернета нет. Сервисы, которые целиком живут на LTE, отказывают полностью. Поэтому у SoftBank вместе с мобильным интернетом лёг и домашний телефон, который работает через мобильную сеть.

Ericsson в заявлении от 6 декабря пишет: проблема в узлах ядра сети у ограниченного числа клиентов в нескольких странах, которые используют две конкретные версии ПО SGSN-MME. Первичный анализ показал, что главная причина — истёкший сертификат в этих версиях. SoftBank в своём извинении формулирует так: в ПО коммутационного оборудования Ericsson неправильно обрабатывался срок действия цифрового сертификата.

Почему сразу в 11 странах

У всех установок одной версии ПО был один и тот же сертификат с одной датой окончания. Поэтому не было «первого пострадавшего», который мог бы предупредить остальных: узлы отказали у разных операторов почти в одну минуту. SoftBank прямо пишет, что похожие проблемы почти в то же время начались у операторов в 11 странах.

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

Как восстанавливались

Ericsson вместе с операторами заменяла проблемное ПО. Глава компании Бёрье Экхольм сказал, что неисправное ПО выводят из эксплуатации, и извинился не только перед клиентами Ericsson, но и перед их клиентами. По данным Ericsson, в течение 6 декабря у большинства затронутых операторов сервисы восстановили.

SoftBank поднялась за четыре с половиной часа. O2 восстанавливалась дольше и объявила, что всё работает, только около 03:30 7 декабря. Клиенты O2 с контрактом получили компенсацию — два дня абонентской платы.

Уроки для DevOps

1. Всё, что истекает, должно быть в инвентаре

Сертификаты, токены, лицензии, ключи, домены — у каждого должен быть владелец, дата и алерт за недели до срока. Проверить сертификат можно одной командой:

# когда истекает сертификат сервиса
echo | openssl s_client -connect api.example.com:443 -servername api.example.com 2>/dev/null \
  | openssl x509 -noout -enddate

# истечёт ли файл-сертификат в ближайшие 30 дней (2 592 000 секунд)
openssl x509 -checkend 2592000 -noout -in /etc/ssl/certs/app.pem

Первая команда печатает строку notAfter= с датой окончания. Вторая отвечает Certificate will expire или Certificate will not expire и возвращает ненулевой код, если срок истекает, — её удобно ставить в мониторинг. Подробно про сертификаты сайтов — в статье истёк SSL-сертификат.

2. Сертификаты внутри чужого ПО — тоже ваши

Операторы не выпускали этот сертификат и, скорее всего, не знали о нём. Но отказ ударил по ним и по их абонентам. Спрашивайте у поставщиков, какие сроки зашиты в их продукты: сертификаты, лицензии, пробные периоды. Вносите эти даты в свой инвентарь, даже если продлевать не вам.

3. Проверяйте будущее: стенд с переведёнными часами

Встроенный срок действия находит простой тест: запустить систему на стенде с часами, переведёнными на год вперёд. Утилита faketime из libfaketime подменяет время для одного процесса без смены системных часов:

faketime '2027-12-31 23:59:00' ./run-integration-tests.sh

Такой прогон перед обновлением ловит сертификаты, лицензии и ошибки в датах. Как дата сломала облако Microsoft, мы разбирали в статье сбой Azure 2012.

4. Одна версия везде — одна дата отказа

Поэтапная выкатка защищает от багов, которые проявляются сразу. От бомбы с таймером она не защищает: все установки взорвутся в одну минуту. Против этого работают только инвентарь сроков и тест с переведёнными часами.

5. Готовьте откат к предыдущей версии

Ericsson решала проблему заменой ПО. Чем быстрее вы можете вернуть прошлую рабочую версию на всех узлах, тем короче такой простой. Держите старые артефакты и отрепетированную процедуру отката.

6. Говорите прямо, чья это ошибка

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

Что проверить у себя завтра:

  • есть ли список всего, что у вас истекает, с датами и владельцами;
  • какие сроки зашиты в ПО и оборудование поставщиков;
  • проходили ли ваши системы тест с часами, переведёнными на год вперёд.

Реши сам

Два вопроса по этому сбою. Ответы — под спойлером.

Вопрос 1. Почему сбой начался у операторов в разных странах почти одновременно?

  1. Хакерская атака на Ericsson
  2. Во всех установках одной версии ПО был один и тот же сертификат с одной датой окончания
  3. Сбой спутниковой связи
  4. Операторы одновременно обновили сети
Показать ответ

Верный ответ — 2. Срок действия — часовая бомба с общей датой: все установки одной версии ломаются в одну и ту же минуту, как бы постепенно их ни выкатывали.

Вопрос 2. Какая проверка поймала бы проблему заранее?

  1. Перезагрузка оборудования раз в месяц
  2. Инвентарь всего, что истекает, с алертом за недели до срока и тест на стенде с переведёнными вперёд часами
  3. Покупка оборудования у разных поставщиков
  4. Отключение проверки сертификатов
Показать ответ

Верный ответ — 2. Перезагрузка не продлевает сертификат, а отключение проверок создаёт дыру в безопасности. Нужно знать сроки заранее и проверять, как система ведёт себя после них.

Частые вопросы

Что случилось 6 декабря 2018 года у O2 и SoftBank? В двух версиях ПО узлов SGSN-MME от Ericsson истёк сертификат. Узлы ядра сети отказали, и абоненты O2 в Великобритании, SoftBank в Японии и операторов ещё в нескольких странах остались без мобильного интернета.

Сколько стран затронул сбой Ericsson? По данным SoftBank, похожие проблемы почти одновременно возникли у операторов в 11 странах. Сама Ericsson говорила об ограниченном числе клиентов в нескольких странах.

Сколько длился сбой? У SoftBank — с 13:39 до 18:04 по токийскому времени 6 декабря. O2 объявила о полном восстановлении около 03:30 7 декабря.

Была ли это кибератака? Нет. Ericsson назвала причиной истёкший сертификат в своём ПО и извинилась перед операторами и их абонентами.

Пройти похожий сбой самому

В симуляторе DevOps KAI Lab разбор сбоя Ericsson — в первом месяце. Там же тикет «Мобильное приложение пишет „Небезопасное соединение“», а на первом дежурстве среди алертов есть сертификат платёжного сервиса, который истекает через три дня. Похожая по духу история с временем — високосная секунда 2012 года, а все разборы собраны в подборке 18 сбоев, которые должен знать DevOps-инженер.

Начать можно бесплатно: тест навыков и первые задания первого месяца.

Источники

Читать дальше