Рубрика:
Безопасность /
Сравнение
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ИГОРЬ ШТОМПЕЛЬ, инженер, системный администратор. Сфера профессиональных интересов – свободное программное обеспечение
Свободные браузеры от Mozilla Foundation и производные
Браузеры Mozilla давно и прочно поселились на рабочих станциях пользователей. Сегодня поддерживаются пять версий данных интернет-обозревателей. Выясним, какая из них безопаснее?
Mozilla Foundation – это разработчик самого популярного свободного браузера Mozilla Firefox (далее слово Mozilla будем опускать в целях сокращения). Он стал стандартом программного обеспечения для просмотра интернет-страниц де-факто, для многих версий операционных систем GNU/Linux. Но только Firefox перечень свободных браузеров Mozilla Foundation не ограничивается – есть еще SeaMonkey. Вот и сравним их на предмет безопасности, выяснив, какой же из них менее уязвим. Да, мы будем вести речь только о поддерживаемых сейчас браузерах Mozilla Foundation – Firefox 3.0/3.5/3.6, а также SeaMonkey – 1.1/2.0, которые представлены в таблице 1.
Таблица 1. Браузеры Mozillа и их производные
Итак, для начала нам необходимо выявить уровни опасности уязвимостей. Mozilla Foundation, как показано на рис 1, определяет четыре уровня [1]:
- критический (Critical) – определяет уязвимости, эксплуатация которой позволяет устанавливать программное обеспечение или запустить код злоумышленника, а пользователю при этом достаточно лишь просматривать интернет-страницы;
- высокий (High) – определяет уязвимости, которые могут быть использованы для сбора конфиденциальной информации с сайтов, а также атаки путем ввода данных или кода на эти сайты, пользователю при этом достаточно лишь просматривать интернет-страницы;
- средний (Moderate) – определяет уязвимости, которые могли бы быть критического/высокого уровня, но работают лишь в конфигурациях не по умолчанию или требуют от пользователя сложных, трудноосуществимых действий.
- низкий (Low) – характеризуется возможностью атак на отказ в обслуживании (Denial of Service, DoS), незначительных утечек данных и спуфингом (но без возможности кражи персональных данных).
Рисунок 1. Уровни опасности уязвимостей Mozilla
Кроме определения уровней опасности уязвимостей нам еще необходим метод сравнения браузеров. Поскольку мы предпримем попытку выяснить, какой из браузеров Mozilla Foundation сегодня является наиболее безопасным, кажется, вроде бы достаточно выявить количество уязвимостей, ранжировать их по уровню опасности и сопоставить статистику для разных браузеров. Но, к сожалению, это не так. Ведь необходимо учитывать еще и период времени, в течении которого осуществляется поддержка программного обеспечения (он колеблется от пяти месяцев до двух лет).
Поступим следующим образом: вначале выясним количество уязвимостей разного уровня (критического, высокого, среднего и низкого). Затем разделим его на количество дней, в течение которых осуществляется поддержка. И получим среднемесячное количество уязвимостей для каждого уровня опасности.
Далее присвоим каждому уровню опасности свой балл: 8 (критический), 6 (высокий), 3 (средний) и 1 (низкий) – и умножим данные баллы на соответствующее количество среднемесячных уязвимостей (например, количество последних для критического уровня опасности – 2, значит, 8 х 2). Таким образом, мы выведем баллы по каждому уровню опасности, затем сложим их и получим рейтинг безопасности браузера.
Перейдем к более подробному рассмотрению.
Mozilla Firefox 3.0
Первый релиз Firefox 3.0 с кодовым именем Gran Paradiso состоялся 17 июня 2008 года и сразу установил мировой рекорд Гиннесса для программы с наибольшим количеством загрузок за 24 часа – 8 002 530. День загрузки начался в 21:00 по московскому времени 17 июня, а завершился в 22:16 18 июня при участии представителей Книги рекордов Гиннесса. Время продлили из-за того, что уже в 21:05, после начала дня загрузки, практически ни один из серверов не отвечал (пользователи начали скачивать по 240 копий в секунду, что привело к генерации трафика – 15 Гб/сек.).
«Мы столкнулись с невероятным числом пользователей, вынуждены признать, что наши системы оказались перегружены», – заявил тогда Майк Шропфер, глава отдела разработки Mozilla Corp. Решили, что учет количества скачиваний начнется после восстановления работы основного сервера. Это произошло в 22:16. К 2:00 18 июня все серверы были восстановлены и стали работать в обычном режиме [2].
Firefox 3.0 основан на движке Gecko 1.9 и создавался около трех лет (34 месяца). Разработчики осуществили 15 000 изменений [3]. Версия принесла поддержку встроенного хранилища на базе SQLite и анимированного PNG. Для пользователей GNU/Linux стало возможно осуществлять работу через прокси-сервер на базе системных настроек (переменная среды $http_proxy) [4]. Плагин DOM Inspector перестал поставляться вместе с браузером [5]. Изменила вид и консоль конфигурации – в нем появилось шуточное предупреждение «Будьте осторожны, а то лишитесь гарантии!».
За почти два года поддержки (17 июня 2008 г. – май 2010 г.) Firefox 3.0 (3.0-3.0.19) в нем было обнаружено: 45 критических уязвимостей, 13 – высокого уровня, и по 19 – как среднего, так и низкого уровней [6]. Сразу оговоримся, что в ситуации, когда браузер поддерживается около трети месяца, мы будем приравнивать это к месяцу поддержки. Применим наш метод, чтобы получить рейтинг его безопасности.
Итак, 45 критических уязвимостей разделим на 24 месяца поддержки – 1,8. Поступим так же и с другими уровнями опасности уязвимостей. В итоге получим среднемесячное количество уязвимостей высокого, среднего и низкого уровня соответственно: 0,5/0,8/0,8. Далее умножаем получившиеся цифры на «балл опасности»: 1,8 х 8 + 0,5 х 6 + 0,8 х 3 + 0,8 х 1 = 20,6. Мы получили рейтинг безопасности Firefox 3.0.
Mozilla Firefox 3.5
Firefox 3.5 увидел свет 30 июня 2009 года под кодовым названием Shiretoko. В данный выпуск был добавлен режим приватного просмотра. Он позволяет просматривать интернет-страницы без сохранения истории. Задействовать этот режим, как показано на рис. 2, можно через меню «Инструменты» [7]. Также обновление ветки Firefox принесло включение нового JavaScript-движка – TraceMonkey для повышения производительности. Кроме того, браузер «заговорил» более чем на 70 языках и получил поддержку двух тегов HTML 5 (<audio>, <video>, <canvas>), аудиокодека Vorbis. Разработчики встроили и поддержку видеокодека Ogg Theora [8]. Браузер получил значительную поддержку нового числа веб-технологий (медиазапросы CSS, новые трансформации и свойства, локальное хранилище HTML5, ICC-профили, SVG-трансформеры, хранилище оффлайновых приложений, загружаемые шрифты, селекторы запроса JavaScript) [9]. Думаю, именно этим в том числе и объясняется достаточно низкий рейтинг безопасности, который мы покажем ниже.
Рисунок 2. Переход в режим приватного просмотра в Firefox 3.5
Firefox 3.5 поддерживается около 11 месяцев (30 июня – май 2010 г.), и за это время в нем было обнаружено: 33 критические уязвимости, 4 – высокого уровня, 8 – среднего и 9 – низкого [10]. Среднемесячное количество уязвимостей для Firefox 3.5 выглядит следующим образом (от критического до низкого): 3/0,4/0,7/0,8. Рассчитаем рейтинг: 3 х 8 + 0,4 х 6 + 0,7 х 3 + 0,8 х 1 = 29,3. Итак, Firefox 3.5 оказался гораздо менее безопасным, чем его предшественник – Firefox 3.0.
Mozilla Firefox 3.6
21 января 2010 года был представлен браузер Firefox 3.6, получивший кодовое имя Namoroka. Браузер основан на использовании движка Gecko версии 1.9.2. Разработчики озаботились улучшением безопасности и реализовали защиту от устаревших плагинов, усовершенствовали возможности интеграции стороннего программного обеспечения с браузером (некорректное использование которых могло приводить к падению Firefox) [11], поддержку обновленных спецификаций DOM, HTML5, включая Drag&Drop API и File API.
Кстати, все последующие релизы Firefox 3.6 (3.6.2, 3.6.3), как правило, были направлены на устранение уязвимостей в системе безопасности. Так, например, выпуск 3.6.2 закрывал уязвимость, эксплуатация которой могла приводить к удаленному выполнению кода (bug 552216) [12], так же как и 3.6.3, закрывавший ошибку bug 555109 [13].
За время поддержки Firefox 3.6 (январь – май 2010 г.) было обнаружено: 20 критических уязвимостей, 2 – высокого уровня, 4 – среднего и 5- низкого [14]. Среднемесячное количество уязвимостей для Firefox 3.6 представляется следующим образом (от критического до низкого): 2/0,4/0,8/1. Теперь произведем расчет рейтинга: 2 х 8 + 0,4 х 6 + 0,8 х 3 + 1 х 1 = 21,8. Как видно, Firefox 3.6 занял промежуточное положение между своими предшественниками. Он со своим рейтингом лучше Firefox 3.5, но уступил Firefox 3.0. Таким образом, из браузеров Firefox самым безопасным оказался Firefox 3.0, а самым «уязвимым» – Firefox 3.5. Перейдем к рассмотрению браузеров SeaMonkey 1.1 и 2.0.
SeaMonkey 1.1
SeaMonkey – это набор ПО для работы в Интернете, основанный на коде Mozilla Application Suite. Сегодня его разработку курирует SeaMonkey Council [15]. Набор включает браузер «Навигатор» (Navigator), почтовый клиент, «Компоновщик» (Composer) для создания веб-страниц и ChatZilla для общения на IRC-каналах. Читатель может справедливо задать вопрос: ведь SeaMonkey – это не только браузер, насколько корректно его сравнение с браузерами Firefox? Да, абсолютно верно, SeaMonkey – это не только браузер, но так же верно и то, что уязвимость в любом из его компонентов делает работу всего набора программ небезопасной. К тому же наш метод определения рейтинга безопасности не претендует на универсальность, а является средством рассмотрения безопасности браузеров от Mozilla Foundation и ее производных под конкретным, обозначенным нами углом. Учитывая все вышесказанное, думаю, такой взгляд на сравнение безопасности браузеров имеет право на существование.
SeaMonkey 1.1 был представлен 18 января 2007 г., а первые исправления безопасности были выпущены 28 февраля 2007 г. – 1.1.1. Так, например, была закрыта ошибка, приводящая к переполнению буфера Network Security Services (NSS) при работе с протоколом SSLv2 [16], или ошибка JavaScript в обработке URI в тегах IMG, даже если поддержка скриптов JavaScript была отключена в глобальных настройках [17]. Затем было выпущено еще 17 обновлений безопасности.
Что касается общего количества уязвимостей, то они распределились следующим образом: за весь период поддержки SeaMonkey 1.1 было выявлено: 49 критических уязвимостей, 24 – высокого уровня, 19 – среднего и 22 – низкого [18]. Применив наш метод, мы получим следующее количество среднемесячных уязвимостей (от критического до низкого): 1,7/0,8/0,7/0,8. Далее нам необходимо рассчитать рейтинг безопасности: 1,7 х 8 + 0,8 х 6 + 0,7 х 3 + 0,8 х1 = 21,3. Таким образом, SeaMonkey 1.1 становится вторым в нашем рейтинге, уступив лишь Firefox 3.0 и опередив, соответственно, Firefox 3.6 и 3.5. Нам остается определить рейтинг безопасности SeaMonkey 2.0.
SeaMonkey 2.0
SeaMonkey 2.0 был выпущен 27 октября 2009 года. Данный выпуск стал использовать ту же программную платформу, что и Firefox 3.5.4, а также движок Gecko 1.9.1.4. Среди новшеств можно отметить восстановление сессии после падения; усовершенствование менеджеров – паролей, куки, форм и полную переработку менеджера загрузок. Усовершенствованный движок Gecko позволил использовать улучшенную поддержку шрифтов, CSS, JavaScript и DOM. И так же, как и в Firefox 3.5, стали доступны многие новинки по поддержке HTML5 и новых веб-технологий.
За время поддержки SeaMonkey 2.0 общее количество обнаруженных уязвимостей выглядит следующим образом: 12 критических уязвимостей, 3 – высокого уровня, 4 – среднего и 5 – низкого [19]. Среднемесячное количество уязвимостей (от критического до низкого) распределилось так: 1,7/0,4/0,6/0,7. Далее нам необходимо рассчитать рейтинг безопасности: 1,7 х 8 + 0,4 х 6 + 0,6 х 3 + 0,7 х 1 = 18,5. Таким образом, SeaMonkey 2.0 становится победителем, набрав самый высокий рейтинг безопасности – 18,5, отодвинув на второе место Firefox 3.0. Для удобства мы представили результаты в таблице 2.
Таблица 2. Рейтинг безопасности браузеров
Название |
Среднемесячное количество уязвимостей по уровням (критический, высокий, средний, низкий) |
Рейтинг |
Начало поддержки (после выхода первого стабильного релиза) |
SeaMonkey 2.0 |
1,7/0,4/0,6/0,7 |
18,5 |
с 27 октября 2009 г. |
Firefox 3.0 |
1,8/0,5/0,8/0,8 |
20,6 |
с 17 июня 2008 г. |
SeaMonkey 1.1 |
1,7/0,8/0,7/0,8 |
21,3 |
с 18 января 2007 г. |
Firefox 3.6 |
2/0,4/0,8/1 |
21,8 |
с 21 января 2010 г. |
Firefox 3.5 |
3/0,4/0,7/0,8 |
29,3 |
с 30 июня 2009 г. |
***
Таким образом, по результатам расчетов наименее уязвимым браузером на момент написания статьи был SeaMonkey 2.0. Если у браузеров Firefox более поздние версии уступили Firefox 3.0, то у SeaMonkey ситуация обратная: безопаснее вторая версия. Это вдвойне примечательно, если учесть, что SeaMonkey 2.0 основан на Firefox 3.5.4. А браузер Firefox ветки 3.5 показал наихудший результат.
В то же время наш метод характеризует ситуацию, сложившуюся на момент написания статьи. Необходимо учитывать, что если уязвимость не обнаружена, это не значит, что ее нет. Расстановка сил может измениться. Поэтому мы предприняли попытку оценить только текущую ситуацию в области безопасности браузеров Mozilla Foundation и их производных.
- http://www.mozilla.org/security/known-vulnerabilities/firefox30.html.
- http://www.spreadfirefox.com/ru/worldrecord; http://ru.wikinews.org/wiki/Вышел_Firefox_3_—_Настал_День_Загрузки!.
- http://www.mozilla-europe.org/ru/firefox/3.0/releasenotes.
- https://bugzilla.mozilla.org/show_bug.cgi?id=66057.
- https://bugzilla.mozilla.org/show_bug.cgi?id=339229.
- http://www.mozilla.org/security/known-vulnerabilities/firefox30.html.
- http://support.mozilla.com/en-US/kb/Private+Browsing.
- http://hacks.mozilla.org/2009/06/update-on-open-video-quality.
- http://www.mozilla-europe.org/ru/firefox/3.5/releasenotes.
- http://www.mozilla.org/security/known-vulnerabilities/firefox35.html.
- https://developer.mozilla.org/devnews/index.php/2009/11/16/component-directory-lockdown-new-in-firefox-3-6.
- http://www.mozilla.org/security/announce/2010/mfsa2010-08.html.
- http://www.mozilla.org/security/announce/2010/mfsa2010-25.html.
- http://www.mozilla.org/security/known-vulnerabilities/firefox36.html.
- http://www.seamonkey-project.org/about.
- http://www.mozilla.org/security/announce/2007/mfsa2007-06.html.
- http://www.mozilla.org/security/announce/2007/mfsa2007-09.html.
- http://www.mozilla.org/security/known-vulnerabilities/seamonkey11.html.
- http://www.mozilla.org/security/known-vulnerabilities/seamonkey20.html.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|