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: Мнения, изложенные в этом дайджесте, могут не всегда совпадать с официальной позицией «Лаборатории Касперского». Дорогая редакция вообще рекомендует относиться к любым мнениям со здоровым скептицизмом.
    • +13
    • 3,8k
    • 7
    «Лаборатория Касперского»
    332,34
    Ловим вирусы, исследуем угрозы, спасаем мир
    Поделиться публикацией

    Комментарии 7

      0
      не так давно, забил настройки proxy в один плагин (переключатель proxy) в firefox.
      На следующий день через этот proxy пол мира сидело, по этому, все эти расширения в топку, а мне урок.
        0

        И в чём же урок? Не ставить аддоны из непроверенных источников? Или в понимании того, что в SOCKS пароль передаётся в открытом виде, и его вполне могли утащить без участия аддона?

          0
          сервак был создан за несколько часов до того, как я ввел его в плагине. После того, как я все поменял и снёс плагин это не повторялось. Ну да, это точно не плагин. Ставил я плагин из репозитория FireFox, но назвать это «проверенным источником» сложно…
        0
        конечно когда ломается браузер к которому привык за десяток (другой) лет — не очень приятно, зато наконец перешел на актуальную версию и узнал много нового про всякие userchrome и прочее
          0

          Possible duplicate of https://habr.com/ru/post/451220/

            +1
            Вот я тоже не понимаю зачем тут эта статья… уже не один раз обсуждали это.
            0
            Лично у меня в Firefox 66.0.5 адблок и адблок плюс так и не включились/установились. Благодаря этому осваиваю теперь оперу…
            Конечно не будем исключать того, что у меня минт и возможно он «заболел».
            А сам ФФ переодически проверяю, вдруг заработали аддоны и можно обратно будет вернуться

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое