Security Week 20: отключение расширений Firefox

Security Week 20: отключение расширений Firefox
Четвертого мая в четыре часа утра по Москве (или чуть позже, в зависимости от везения) у пользователей браузера Firefox перестали работать все установленные расширения, а установка новых дополнений стала невозможной. Проблема была на стороне браузера — истек срок действия промежуточного сертификата, которым подписываются все расширения. Данное событие к информационной безопасности имеет косвенное отношение — незадача возникла вследствие вполне логичного желания разработчиков обезопасить пользователей от вредоносных расширений (начиная с 2015 года) и из-за того, что никто не заметил, что срок действия сертификата скоро истечет.

Тем не менее, это интересная история с умеренно счастливым концом: достаточно нетривиальную проблему удалось решить в течение 12 часов. Это еще и подробно задокументированный инцидент, с массой информации как от разработчиков, так и с невероятными объемами драмы со стороны пользователей. В процессе возникла и проблема приватности, которая была вполне эффективно решена.

Первые сообщения о проблемах с расширениями появились еще до истечения срока действия сертификата, 3 мая. На Reddit есть как минимум одно такое обсуждение . У автора треда на компьютере была установлена неверная дата, благодаря чему о баге он узнал одним из первых (и «починил» его установкой правильной даты, но ненадолго). Чуть позже проблема появилась у всех пользователей, но в разное время: проверка валидности сертификатов, которыми подписываются расширения, проводится один раз в 24 часа. Дальнейшая история с разной степенью детализации описывается здесь: новость , баг-репорт , техподдержка , блогпост с техническими деталями, и рассказ об инциденте от имени CTO Firefox.

Вот так выглядит процесс подписи расширений в Firefox. Корневой сертификат на вершине цепочки находится в оффлайновом хранилище, и один раз в несколько лет с его помощью создается промежуточный сертификат, которым уже подписываются расширения. Именно срок действия промежуточного сертификата истек четвертого мая. Первым временным решением со стороны разработчиков Firefox был выпуск патча, который на время останавливает проверку валидности сертификатов расширений. Если такой патч прилетел к вам до проверки, то проблема вас миновала. Дальше у разработчиков было два пути: выпустить либо новый релиз Firefox, либо новый сертификат, который сделает валидными подписи расширений в текущей версии. Переподписать все дополнения (более 15 тысяч) было невозможно. Точнее, возможно, но это заняло бы очень много времени.

Учитывая сжатые сроки (о проблеме в Firefox узнали вечером 3 мая, конечно же, в пятницу!), было решено исследовать оба варианта. Технически возможность выпустить новый сертификат была, требовалось а) сгенерировать этот самый сертификат и б) доставить его пользователям как можно быстрее. Первая часть осложнялась тем, что корневой сертификат хранится в аппаратном модуле, до которого еще надо доехать (в лес? в банковскую ячейку?). Кроме того, когда разработчики добрались до корневого сертификата, сгенерировать новый промежуточный получилось не сразу, и это каждый раз приводило к потере часа или двух на необходимые тесты. Как доставить? Для этого использовался механизм Firefox Studies — по сути, система рассылки аддонов «от разработчика браузера», в обычных случаях предназначенная для экспериментального кода. Так выходило быстрее, чем собрать новый билд и разослать апдейт по обычным каналам.

Но тут возникла та самая проблема приватности. Firefox Studies как экспериментальная система включается только вместе с отправкой информации об использовании браузера обратно разработчикам Firefox. Это логично для бета-тестирования, но немного странно выглядит в контексте доставки патча, который нужен вообще всем пользователям. Эта проблема была решена элегантно: в Firefox решили удалить всю телеметрию, полученную с 4 по 11 мая.

Это было не идеальное решение. Тем, у кого телеметрия отключена (и Studies), нужно было вручную включить эти опции. В некоторых билдах этой опции и вовсе нет. Версия браузера для Android не поддерживает Studies. Перманентно пострадали пользователи старых версий Firefox, которые не хотят обновляться, но пользуются аддонами. Восьмого мая были выпущены версии Firefox 66.0.5 и Firefox ESR 60.6.3 , в которых проблема с сертификатом решена окончательно, и Studies с телеметрией более включать не нужно. Запланированы апдейты более старых версий браузера, начиная с Firefox 52. Проблема была решена, но для многих пользователей она не прошла бесследно — имеются случаи потери данных и настроек в расширениях.

Выводов из этой истории было сделано два. Во-первых, в Firefox пообещали наладить систему отслеживания «бомб с часовым механизмом» в инфраструктуре, чтобы не допустить подобное в будущем. Во-вторых, стало ясно, что даже более-менее современная система рассылки апдейтов, с разными способами доставки патчей пользователям, не так эффективна, как хотелось бы. По словам CTO Firefox, пользователи браузера должны иметь возможность получать обновления и хотфиксы, даже если они пожелают отключить любые другие экспериментальные фичи и/или телеметрию. Это история со счастливым концом, которая, возможно, приведет к улучшению механизма апдейтов Firefox, редкого мейнстримного браузера, не привязанного к какой-либо крупной IT-компании. Но не стоит забывать, что началась она с аллегорической стрельбы по собственным ногам.

Disclaimer: Мнения, изложенные в этом дайджесте, могут не всегда совпадать с официальной позицией «Лаборатории Касперского». Дорогая редакция вообще рекомендует относиться к любым мнениям со здоровым скептицизмом.
Alt text