Браузеры как любая программа обладают уязвимостями

История браузеров – программ для просмотра веб-сайтов и работы с ними – насчитывает уже примерно 20 лет. В 1990 году, Тим-Бернерс Ли, которого многие считают «отцом Интернета», создал WorldWideWeb. А вот первым распространенным браузером с графическим интерфейсом стал браузер NCSA Mosaic, созданный в 1993 году. Затем появился и на долгое время стал очень популярным браузер Netscape, поддержку которого окончательно прекратили всего несколько лет назад.

В 1995 году, вышел знакомый едва ли не каждому пользователю компьютера Internet Explorer (входящий в комплект операционных систем Windows корпорации Microsoft). Начиная с 1999 года, этот браузер является самым популярным и используемым, а в 2002-2003 гг. его популярность достигла пика с отметкой 95%. Сейчас этот показатель несколько снизился, так как в компанию к IE пришли другие браузеры: Mozilla Firefox, Opera, Safari (для Mac OS и Windows), выпущенный совсем недавно, но стремительно набирающий обороты Google Chrome и другие, менее популярные.

Функция безопасности браузера Google, о которой вы не знаете

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

Это вполне нормальная история. Большинство людей, у которых есть мобильные телефоны, даже самые современные, не используют все функции своих устройств (вроде фотокамеры, видео, плеера, Bluetooth, будильника и т.д.) – им достаточно, чтобы трубка могла звонить, отвечать на входящие звонки, и чтобы с помощью неё можно было отправить или получить/прочитать текстовое сообщение. Так же и с браузерами: если на компьютере установлена программа, включив которую, можно выйти в Интернет, читать новости, писать письма в веб-почте, общаться с друзьями в социальных сетях и делать записи в блог – то что ещё нужно? Теоретически, можно даже не запоминать название программы, которой пользуешься (некоторые так и делают).

Интернет как источник опасности

Нельзя забывать о том, что Сеть со всем её удобством, информативностью и незаменимостью в наши дни – это источник опасности. В данном материале мы не будем напоминать о том, что информация в Интернете может быть как интересной и полезной, так и негативной и даже опасной, что в Сети можно легко наткнуться на грубость, хамство, быть обманутым мошенниками, стать жертвой киберпреследователей. Существуют программно-технические угрозы: Интернет является одним из самых распространенных «путей» заражения компьютеров вирусами (наряду с, например, портативными накопителями данных, например, usb-флешками).

Как правило, вирусы загружаются на компьютер пользователей из-за неосторожности и доверчивости. Человек может открыть ссылку, которую ему прислали (по электронной почте, в мессенджерах, социальных сетях) и загрузить вредоносный код, может нажать на понравившийся баннер, скачать опасную программу под видом безобидного файла – таких историй масса. И, даже более того, часто загружаются даже без непосредственного участия пользователя, если он просто переходит на вредоносную страницу (этого можно даже не заметить).

ПОЛЕЗНЫЕ расширения для БРАУЗЕРОВ, ОБЛЕГЧАЮЩИЕ ЖИЗНЬ

Уязвимости браузеров

Зачастую атаки злоумышленников производятся с помощью уязвимостей в самих браузерах – так называемых «дыр», особенностей и дефектов программ-браузеров, с помощью которых можно получить контроль над компьютером пользователя, нанести ему вред, украсть информацию (в том числе и конфиденциальную) или, например, использовать зараженную машину в качестве составной части ботнета.

Ботнет – это компьютерная сеть, состоящая из определенного количества хостов, которая позволяет злоумышленникам выполнять те или иные действия с использованием сил зараженных компьютеров. Как правило, с помощью ботнетов осуществляются спам-рассылки, совершаются DDoS-атаки и другие противозаконные, требующие большой технической мощности процессы. По оценкам ряда экспертов, в ботнеты могут входить около четверти всех подключенных к Интернету компьютеров (только представьте себе масштабы бедствия!).

К сожалению, ни про один из существующих интернет-браузеров нельзя с уверенностью сказать, что он полностью безопасен и защищен. В прессе и на информационных сайтах экспертов по безопасности и производителей антивирусного ПО то и дело появляются сообщения о новых найденных уязвимостях браузеров. Их, как правило, быстро «чинят», а потом появляются новые – и так до бесконечности.

Данные в цифрах

По данным ежегодного отчета IBM X-Force за 2009 год, число уязвимостей в последнее время снизилось. В прошлом году была выявлена 6601 уязвимость, и это на 11% меньше, чем годом ранее, в 2008. Значительно снизилось количество опасных и критических уязвимостей, которые так просто не залатать. Сильно выросло количество вредоносных ссылок и страниц – на 345% за год.

49% всех уязвимостей, так или иначе, связаны с веб-приложениями, причем в конце 2009 года не были устранены 67% найденных «дыр». Согласно альтернативным данным, на веб-приложения приходится даже больший процент уязвимостей.

Читайте также:
Программа для настройки напряжения

А что же с самими браузерами? По данным отчета исследовательской компании Cenzic, опубликованного в конце прошлого года, браузер Internet Explorer 8 был признан самым безопасным и надежным – в нем обнаружили всего 15% уязвимостей. В браузере Mozilla Firefox обнаружили 44% уязвимостей (и это самый высокий показатель), в Safari – 35%.

Общее количество уникальных уязвимостей в первой половине 2009 года сократилось (в сравнении с аналогичным периодом в 2008 г.) на 28,4%, однако не стало таким, чтобы можно было вздохнуть спокойно и чувствовать себя в безопасности. Что касается России, то здесь в первой половине 2009 года индекс проникновения вредоносного ПО (количество очищенных компьютеров на 1000) составил 15,5. Этот показатель на 35% ниже по сравнению со вторым полугодием 2008 г., но, увы, превышает среднее мировое значение — 8,7.

Независимые эксперты из компании NSS Labs провели тестирование безопасности популярных браузеров на предмет их защищенности от фишинговых угроз и загрузки шпионских программа (рассылающих, например, спам в социальных сетях от имени владельца зараженного компьютера). Выяснилось, что самым безопасным браузером в этой сфере оказался все тот же Internet Explorer.

Последние версии этого браузера умеют блокировать 81% вредоносных страниц, и 83% фишинговых. Занявший второе место Mozilla Firefox (версии 3.0.11) блокирует 27% и 80% веб-страниц соответственно. В случае с Safari показатели следующие: 21% и 2%, у Chrome 2 — 7% и 26%, у Opera 10 — 1% и 54%. Как вы могли заметить, эти показатели сильно разнятся с описанными в отчете исследования, о котором мы рассказали на абзац выше (т.к. исследовались другие параметры безопасности).

В первом квартале 2010 года NSS Labs провел ещё одно тестирование. Результаты следующие: Internet Explorer 8 блокирует в среднем втрое больше прямых угроз из Интернета, чем браузеры-конкуренты: IE – 85%, Safari 4 – 29%, Firefox 3.5 и Safari – 29%. Наименее безопасным признали браузер Opera 10 – он отслеживает менее 1% угроз. В целом, безопасность Internet Explorer повысилась с февраля 2009 года по январь 2010 года на 16% (с 69%).

При этом важно отметить, что безопасность Internet Explorer, подтверждаемая вышеперечисленными исследованиями, связана с рядом факторов. Во-первых, этот браузер пока ещё остается доминирующим на рынке браузеров – доля IE в феврале 2010 года составила 61,58%). Это значит, что гораздо большее количество людей (чем, например, в случае с Opera) сталкивается с уязвимостями и сообщает о них разработчикам – а значит, недостатки устраняют. Во-вторых, хакеры зачастую эксплуатируют уязвимости IE по схеме, когда вредоносные программы загружаются на компьютер без какого-либо активного участия пользователей.

В-третьих, обратите внимание, специалисты по безопасности, как правило, тестируют последние версии (в момент проведения тестов) браузеров. Периодические обновления этих программ (о которых вам сообщают предложений скачать новую версию) проводятся не просто так, чтобы помучить пользователей лишними движениями мышки и необходимостью ждать, когда все загрузится и установится.

Новые версии дополняются новыми же функциями, зачастую полезными, но иногда и, признаемся честно, не очень нужными. Но, самое главное, в обновленных версиях браузеров появляется защита от свежих опасностей. Тогда как в устаревших версиях такой защиты может не быть. Поэтому, когда в следующий раз будет жать кнопку «отставить!» в ответ на предложение обновить браузер, помните – о вас заботятся разработчики. Не препятствуйте им.

Источник: www.saferunet.ru

А теперь обновите Google Chrome

Почему стоит обновить до самой свежей версии Google Chrome, Microsoft Edge, Opera, Яндекс.Браузер, Vivaldi, Brave и другие браузеры на основе Chromium.

Обновите Google Chrome (и другие браузеры на Chromium)

Alanna Titterington

  • 18 апреля 2023
  • Астрологи объявили неделю ретроградного Меркурия браузерных уязвимостей: количество опасных дыр в браузерах увеличилось вдвое! Только что мы написали о том, что надо оперативно установить обновления iOS и macOS из-за серьезного бага в Apple WebKit (основа браузера Safari и любых браузеров в iOS). И вот из-за похожей, так сказать, по своим эксплуатационным характеристикам проблемы пора срочно обновлять и другие браузеры. На этот раз речь идет о Google Chrome, а также о родственных ему браузерах — и не только браузерах, но не будем забегать вперед.

    Уязвимости в движке V8

    Уязвимость CVE-2023-2033 была найдена в движке V8. Этот движок используется для обработки JavaScript. Нашел ее тот же самый исследователь из команды Google Threat Analysis Group (TAG), который участвовал в обнаружении уязвимостей в iOS и macOS, описанных в нашем предыдущем посте.

    В соответствии со своей обычной политикой, Google не разглашает подробности об уязвимости, пока большинство пользователей не обновит свои браузеры, так что подробной информации о дыре пока нет. Однако известно, что эксплойт для этой уязвимости уже существует.

    Чтобы ее проэксплуатировать, атакующим необходимо создать вредоносную веб-страницу и заманить на нее жертву. После этого они получат возможность выполнения произвольного кода на атакуемом компьютере. В общем, как и найденная ранее уязвимость в Safari WebKit, данная дыра позволяет организовывать атаки zero-click, то есть заражать устройства пользователей без каких-либо активных действий с их стороны — достаточно лишь тем или иным образом заставить жертву открыть опасный сайт.

    Известно, что данная уязвимость есть как минимум в десктопных версиях всех браузеров, основанных на проекте Chromium, — то есть не только в самом Google Chrome, но еще и в Microsoft Edge, Opera, Яндекс.Браузере, Vivaldi, Brave и многих других. Также она, вероятно, затрагивает приложения, работающие на основе фреймворка Electron, — как мы уже не так давно писали, такие программы по сути представляют собой веб-страницы, открытые во встроенном в приложение браузере Chromium.

    Читайте также:
    Почему не показывают ТВ программы

    Как защититься от данной уязвимости

    Чтобы избавиться от уязвимости CVE-2023-2033 на вашем компьютере, следует как можно быстрее обновить все основанные на Chromium браузеры, которые у вас установлены. У нас есть подробный пост с описанием того, как это сделать непосредственно в Google Chrome. Ну а если совсем коротко, то:

    • Google Chrome следует обновить до версии 112.0.5615.121;

    Обновите Google Chrome до версии 112.0.5615.121

    Описанная в посте дыра устранена в Google Chrome версии 112.0.5615.121

    • уязвимость следует также закрыть и в других приложениях на базе Chromium: здесь можно найти патч, обновляющий Microsoft Edge до версии 112.0.1722.48, а на сайтах Vivaldi и Brave уже есть заплатки и для этих браузеров;
    • не забудьте перезапустить браузер после установки обновления — иначе апдейт не вступит в силу;
    • желательно также обновить и все приложения, работающие на основе фреймворка Electron, но апдейты для них появятся, скорее всего, не так быстро.

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

    Источник: www.kaspersky.ru

    Как создают 0DAY для браузеров: Поиск уязвимостей в современных браузерах с помощью фаззинга

    Эта статья — опыт использования фаззинга для поиска уязвимостей в современных браузерах. Авторы знают, о чем говорят: на прошедшей недавно конференции PHD они выиграли конкурс «Взломай и унеси». Взломали они Safari (продемонстрировав рабочий 0day для версии под Windows), а домой унесли призовой ноутбук.

    Введение в профессию

    Итак, приступим? Зафиксируем для порядка список существующих браузеров:

    • Windows Internet Explorer (6/7/8)
    • Mozilla Firefox (3*/4*)
    • Google Chrome
    • Safari
    • Opera
    • Opera Mini
    • Netscape Navigator
    • Midori
    • Skyfire
    • Dolphin
    • Konpueror
    • Dooble

    Из них только три продукта являются OpenSource-проектами: это Chrome, Firefox и Konqueror. Все браузеры спроектированы на основе некоторого базового функционала (engine-движка). Вот перечень существующих движков:

    Например, Chrome и Safari построены на OpenSource-движке WebKit, а популярный Firefox — на Gecko. Для работы JavaScript используют движки данного интерпретатора, вот, например, в Google используется V8 (хотя есть еще Rhino и SpiderMonkey). Также большинство браузеров поддерживают разные плагины, такие как flash, jre (для работы с апплетами) — это дополнительные векторы атак.

    Фаззер для браузера

    Как и во многих других ситуациях, одним из самых эффективных способов поиска уязвимостей в браузере является фаззинг. Публичных и действительно работающих инструментов здесь не так много, но одним из таковых является замечательная разработка cross_fuzz от Михаила Залевски. Миша работает в Google и с помощью своего фаззера обнаружил более ста багов во всех популярных веб-браузерах, многие из них оказались эксплуатируемы. В его блоге (bit.ly/lbgfqm) есть даже отчет о найденных уязвимостях для Internet Explorer, Firefox, Opera, а также браузеров на движке WebKit. Некоторые из найденных ошибок (даже несмотря на то, что разработчики поставлены в известность) до сих пор не устранены!
    При всей своей эффективности cross_fuzz устроен довольно просто.

    Фаззер выявляет проблемы путем создания чрезвычайно длинных закрученных последовательностей DOM-операций, которые затрагивают сразу несколько документов. Проверяя возвращаемые объекты и вновь рекурсивно используя их, удается создавать круговые зависимости узлов, с помощью которых устраивается настоящий стресс-тест для механизмов сборки мусора браузера.

    Таким образом, проверяется способность приложения к правильному и эффективному освобождению памяти для более неиспользуемых объектов. Как показывает практика, выдержать удар браузеру удается далеко не всегда :). Код cross_fuzz написан на HTML/ JavaScript (lcamtuf.coredump.cx/cross_fuzz), поэтому для фаззинга достаточно открыть нужный HTML-файл (есть разные варианты с незначительными отличиями) в браузере.

    Чтобы нивелировать сетевые задержки, лучше всего скачать исходник на локальную машину. Не забудь при этом выкачать все зависимости (папку /targets и файлы mersenne.js/logo.jpg). Для корректной работы также потребуется включить popup’ы в браузере.

    Начинаем практиковаться

    В качестве подопытных кроликов мы взяли наиболее распространенные браузеры:

    • Firefox 3.6.16;
    • Firefox 4.0.1;
    • Chrome 10;
    • Internet Explorer 8/9;
    • Safari 5.0.5.

    Открываем HTML-страницу фаззера в каждом из них — и первые результаты не заставляют себя ждать.
    Удивительно, но при запуске cross_fuzz в Safari, падение было моментальным — менее чем через 5 секунд. При тестировании Firefox 3.6.16 были падения через 15-30 минут после запуска.

    В основном это были падения по DEP. Это своеобразный маркер уязвимостей use-after-free, креши на исполнении потенциально эксплуатабельны и поэтому ценны. Если поменять некоторые условия при запуске, можно уменьшить время срабатывания до 3-5 минут. При тестировании Chrome падения были в дочернем процессе. IE же, что опять же удивительно, ничем не отличился.

    Все эти факты меня сильно удивили: я только начал исследовать браузеры, причем делал это публичным фаззером, а уже есть креши. Черт подери, сколько же там багов, если так быстро можно уронить почти любой браузер? Учитывая такие бодрые и быстрые результаты, я про себя отметил, что правильно выбрал вектор атаки.

    Cross_fuzz отлично ищет уязвимости в работе с DOM, и этим глупо не воспользоваться.

    Включаем логирование и воспроизводим креши

    Алгоритм работы фаззера подразумевает генерацию огромного количества обращений к DOM. Фаззеру приходится перебирать множество вариантов, прежде чем браузер вылетит с ошибкой. Но нам мало просто крешнуть приложение — обязательно нужно понять, почему это произошло. Чтобы разобраться, какая последовательность вызовов вызывает креш, нужно включить режим логирования.

    Читайте также:
    Самая лучшая программа для поиска троянов

    Самый простой способ сделать это — чуть подредактировать исходники cross_fuzz и убрать return из функции LOG(message). Убрав немедленный выход из функции логирования, мы добьемся того, что на странице cross_fuzz будут отображаться все вызываемые функции.

    К сожалению, cross_fuzz не умеет записывать эти данные в файл. Но для этих целей можно использовать плагины, например, Firebug для Firefox. Для логирования чего-либо в JS нужно вставить следующий код:

    try console.log(‘eval %s’,name);
    ret_value = eval(‘target.’ + name + ‘(‘ + par_str + ‘)’);
    > catch (e)

    Я немного пропатчил Firebug, чтобы тот мог писать свой лог в файл (исправленный вариант ищи на нашем диске). В результате все действия фаззера (в том числе те, которые приводят к крешу) пишутся в лог в C:Documents and SettingsusernameApplication DataMozillaFirefox ProfilesXXXXXX.defaultjs. Тот же самый трюк можно провернуть и в других браузерах, воспользовавшись соответствующими аддонами:

    • для Chrome: Firebug Lite for Google Chrome (есть еще встроенный в Chrome);
    • для Opera: Opera Dragonfly;
    • для Safari: WebKitDeveloperExtras.

    После этого мы можем изучить все, что происходило в cross_fuzz, а, значит, и попытаться воспроизвести креши.

    Как анализировать креши?

    Уронить программу (пусть даже понимая, как) мало. Нам необходимо проанализировать креши и определить, эксплуатируемые они или нет.

    Эта тема настолько многогранна, что она явно выходит за рамки этого материала. Наша задача на сегодня — определить ошибки в программе, которые теоретически можно эксплуатировать. А о том, как пишутся сплоиты, обходятся песочницы и защитные механизмы вроде DEP/ ASLR в журнале было немало статей (хотя одних только материалов журнала ][ тут, по правде говоря, недостаточно).

    Могу лишь дать пару полезных советов. Когда разбираешь креши в таких немаленьких программах как браузеры, немало нервов и времени спасают так называемые отладочные символы. Эта информация позволяет человеку использовать «символические» (отладочные) данные о двоичном файле, такие как имена переменных, процедур и функция из исходного кода. Эта информация может быть крайне полезной во время поиска ошибок в исходном коде, отладке программы и разного рода отказах.

    Чтобы не включать ее в бинарный файл, разработчики выкладывают отладочную информацию в виде отдельных файлов или на специальном сервере отладочной информации. В случае браузеров ее, увы, не так много:

    • для Internet Explorer (mzl.la/mC8XP5);
    • для Firefox (bit.ly/jiHbQA).

    При проверке отладочных символов для Safari (bit.ly/jiHbQA) выяснилось, что для ключевых модулей (Webkit.dll, JavaScriptCore.dll) отладочная информация на сервере отсутствует. Поэтому, чтобы получить ее, придется собирать WebKit самому. Исходники всегда доступны здесь — svn.webkit.org/repository/webkit, а инструкция для сборки здесь — trac.webkit.org/wiki/BuildingOnWindows. Еще один совет касается отладки Chrome. По умолчанию этот браузер создает для каждой вкладки отдельный процесс, что для нас не подходит.

    Поэтому его лучше запускать с ключом «—single-process»: в этом режиме все вкладки будут запущены в единственном процессе. Что касается анализа крешей в Safari, для которого мы и написали 0dayсплоит, то тут есть еще один нюанс — подробнее о нем ты можешь прочитать во врезке.

    Результаты фаззинга

    Что получилось в результате нашего исследования?

    Firefox третьей ветки:

    Есть креши, но их не получилось воспроизвести, даже зная весь лог во время падения. Уязвимость сильно связана с состоянием динамической памяти (heap).

    Firefox, ветка четыре:

    Крешей не было зафиксировано.

    Chrome:

    Есть креши, но их не получилось воспроизвести — такая же история, как и с Firefox третьей ветки.

    Safari:

    Креши были, воспроизвести можно. Сплоит написан :). Браузеры — это очень сложное ПО. Поэтому нет ничего удивительного, что в них есть уязвимости. Всем известно: безопасность обратно пропорциональна объему и сложности кода. У браузера очень много векторов атаки: чего стоит один только SVG, про который в этой статье не упоминалось.

    Большая часть крешей, вызванных фаззером, не являются гарантией успеха и завязаны на большом числе факторов состояния кучи и многих других параметров. Из этого можно сделать вывод, что для реализации на 100% надежного сплоита нужно потратить очень много сил, времени и нервов. Тем не менее, используя данную методику, вполне можно найти уязвимости в браузере, что мы доказали, обнаружив уязвимость нулевого дня в Safari на Positive Hack Days.

    Особенности анализа крешей Safari

    Важный момент. Если Safari падает с исключением типа «User mode write access violations that are not near NULL are exploitable», нужно посмотреть дизасм по eip.

    and dword ptr ds:0BBADBEEFh, 0
    xor eax, eax
    call eax

    Если ты видишь что-то подобное, к сожалению, это Webkit’овский макрос CRASH(). Такие падения символизируют какую-то экстренную ситуацию, которая не должна была произойти. Но так как макрос CRASH просто так не вызывается, значит где-то произошла какая-то экстренная ситуация, которую обнаружили и поэтому прибили процесс.

    • Про функционал JS (DOM) в браузерах: www.webdevout.net/browser-supportecmascript.
    • Про векторы атак: heideri.ch/jso.
    • Про тестирование браузеров, списки компонентов, браузеры под мобильные устройства и т.д.: www.quirksmode.org.
    • Про то, как устроен Sandbox в гугловском Chrome: dev.chromium.org/developers/design-documents/sandbox.

    Источник: xakep.ru

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru