2012 год будет насыщен для компании Mozilla, именно в 2012 году компания намеревается внести кардинальные изменения в систему безопасности браузера Firefox, изменив как некоторые внутренние части браузера, так и добавить некоторые внешние источники безопасности...
В первую очередь разработка режима песочницы, похожего на используемый в Google Chrome, но в проекте Firefox есть свои подводные камни, препятствующие лёгкому и быстрому добавлению похожего функционала. В основном проблема содержится в архитектуре Firefox, без глубокого вмешательства невозможно добавить функционал песочницы, поэтому разработчики твёрдо говорят "В песочнице присутствует реальная выгода, но это не панацея" и будут искаться другие способы улучшения безопасности Firefox.
Упор будет сделан на улучшение безопасности выполнения JavaScript-кода, а точнее компиляции байт-кода в машинный код (JIT компиляция), когда возможны JIT spraying атаки, основанные на обходе защит address space layout randomization (ASLR, применяется в операционных системах для предотвращения возникновения различных типов уязвимостей) и data execution prevention (DEP, запрещает выполнение кода в области памяти, помеченной как "только для данных", тем самым предотвращает некоторые виды атак).
И наконец, остро стоит проблема в работе WebGL, особенно в связи с загрузкой междоменных текстур, когда возможна передача различных данных от пользователя на сторонний сервер, например скриншот экрана, в котором могут присутствовать личные данные пользователя. Благодаря своеобразной обёртке поверх протокола удалось закрыть несколько уязвимостей и при этом оставить возможность загрузки текстур с посторонних серверов. Несмотря на то, что спецификация WebGL утверждена, проблем в технологии остаётся ещё очень много.
Но если бы это были все проблемы, которые собирается решить компания Mozilla, то данный обзор даже не стоило бы писать. В компании намереваются копнуть глубже, ведь всем известно, что защита в первую очередь зависит от свежести программного обеспечения, ведь именно со временем выходят новые версии, в которых исправляются найденные уязвимости.
В связи с этим, в Mozilla принято решение создать 2 механизма обновления, первый - механизм корректировок и исправлений, второй - полного фонового обновления. Если со вторым уже удалось немного познакомиться немного раньше в новости "Будущие версии Firefox будут обновляться автоматически и без вмешательства пользователя". То первый остался до сегодняшнего момента без внимания.
Итак, в настоящий момент любые исправления устанавливаются только при полном обновлении, для этого закачивается полный установочный файл, после этого происходит распаковка, проверка данных, нахождение профиля, закрытие браузера для обновления, само обновление всех файлов браузера, последующая перезагрузка браузера. Всё происходит очень долго и с вмешательством пользователя, стоит только вспомнить выход версии Firefox 9.0.1, которая вышла практически сразу после финального выпуска Firefox 9.0, в Firefox 9.0.1 было исправлено всего несколько ошибок, но довольно неприятных.
Возможно было предотвратить огромное количество манипуляций по установке новой версии? Ответ - Да, механизм исправлений создаётся именно для этого, для решения незначительных проблем, исправления уязвимостей, обновления нескольких файлов и при всём этом не требуется полная переустановка браузера, часто пользователь даже не будет знать о каких-то манипуляциях по исправлению, возможны случаи когда и браузер не придётся перезагружать.
Теперь стоит поговорить про полновесное фоновое обновление, система в корне отличается от механизма обновлений, в данном случае производится загрузка установочного файла, который полностью заменит существующую версию Firefox, механизм обновления будет требоваться каждый раз при выходе новой старшей версии браузера,так как в новой версии будет присутствовать огромное количество изменений.
Кроме того, фоновое обновление можно на данный момент будет и запретить, после чего пользователь будет как обычно получать уведомления о появлении новой версии браузера Firefox.
Для чего нужно такое разделение?
В первую очередь это позволит максимально быстро вносить несложные поправки в работу браузера, например, отключить мошеннические SSL-сертификаты, внести небольшое исправление - для всего этого отлично подойдёт механизм исправлений. Для полного обновления браузера идеально подходит механизм обновления, когда требуется внести большое количество поправок, то через механизм исправлений нереально уследить за всеми вносимыми изменениями и здесь лучше всего справится механизм полного фонового обновления, который также будет проходить максимально прозрачно для пользователя.