- PVSM.RU - https://www.pvsm.ru -

0day в расширении Any.DO — доступ к данным на всех сайтах (обход gmail 2-steps auth). Public disclosure. Затронуто ~500 тысяч пользователей

Введение

Мы очень часто слышим об уязвимостях в плагинах браузеров, особенно Java. Security отделы в компаниях в курсе этого, отключают java/flash и другие плагины у пользователей, мониторят апдейты, читают security-рассылки. Мы слышим о них настолько часто, что уже инициативные люди создали специальные сайты с отсчетом дней, когда не было бы опубликовано 0day эсксплойтов — java-0day.com/ [1]
0day в расширении Any.DO — доступ к данным на всех сайтах (обход gmail 2 steps auth). Public disclosure. Затронуто ~500 тысяч пользователей

Расширения VS Плагины

Но есть еще и расширения, которые встраиваются в браузеры и взаимодействуют с данными. Их безопасность была поднята не так давно, и первые, довольно глубокие, исследования провел Krzysztof Kotowicz [2]. Краткий пересказ его исследований и найденная 0day уязвимость (позволяющая получить доступ к данным на всех сайтах через XSS путем отправки специального письма на gmail), которую игнорирует вендор — под катом.

Уязвимости в расширениях

Рассматриваем WebKit (Opera/Chrome).
Вкратце — расширения для браузеров пишутся на javascript с использованием API браузеров. Они взаимодействуют с контентом, видоизменяют его (например центрируют изображения), собирают дополнительную статистику, шифруют почту, вызывая дополнительные утилиты и т.д. Перед установкой спрашивают разрешения — к каким сайтам / данным они будут иметь доступ, и очень часто запрашивается доступ ко всем сайтам.
Здесь и начинаются узкие места, когда расширения некорректно обрабатывают входные для них данные. На примере расширения Cr-gpg v 0.7.4 (gpg в gmail) рассмотрим некоторые уязвимости, которые уже исправлены в новых версиях

0day в расширении Any.DO — доступ к данным на всех сайтах (обход gmail 2 steps auth). Public disclosure. Затронуто ~500 тысяч пользователей
Расшифровка письма

При расшифровке письма мы могли выполнить XSS, так как данные подставлялись «как есть»

// content_script.js, line 26
$($(messageElement).children()([0]).html(
  tempMessage);

А еще и выполнить системные команды, так как для расшифровки было обращение к NPAPI
0day в расширении Any.DO — доступ к данным на всех сайтах (обход gmail 2 steps auth). Public disclosure. Затронуто ~500 тысяч пользователей
Инъекция команды

Это все исправлено, обычно уязвимости находились в не очень популярных расширениях.

0day в Any.DO (459,692 users)

Существует довольно популярное расширение — Any.DO [3], которым я сам пользовался (до недавнего времени). Обычный TODO лист, с некоторой фишкой — парсит письма в gmail при их открытии и предлагает добавить какое-нибудь новое задание. Расширение подставляет в интерфейс gmail свой элемент
0day в расширении Any.DO — доступ к данным на всех сайтах (обход gmail 2 steps auth). Public disclosure. Затронуто ~500 тысяч пользователей
В котором была найдена XSS уязвимость. А теперь о главном — это не просто XSS, которую можно выполнить только в контексте данного домена (mail.google.com), данная XSS позволяет превратить браузер пользователя в прокси-сервер, который мы можем использовать для доступа к любому сайту с данными браузера жертвы. Почему? Потому что XSS выполняется в контексте расширения, которое имеет привилегии для доступа ко всем сайтам

0day в расширении Any.DO — доступ к данным на всех сайтах (обход gmail 2 steps auth). Public disclosure. Затронуто ~500 тысяч пользователей

Об уязвимости было сообщено разработчику, но ответа не последовало. Лог:

16/08/2013 — первое письмо об уязвимости;
26/08/2013 — твит [4], который был проигнорирован;
31/08/2013 — повторное письмо разработчику;
06/09/2013 — публичное раскрытие об уязвимости, ответа от разработчика не последовало.

Krzysztof разработал два инструмента для проведения атак через уязвимости в расширениях Google Chrome (естественно, уязвимости повторяются в Opera). Один из них — mosquito, будет продемонстрирован в следующем видео (включает в себя демонстрацию обхода 2х факторной авторизации Gmail)

Ссылки

Автор: BeLove

Источник [11]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/42751

Ссылки в тексте:

[1] java-0day.com/: http://java-0day.com/

[2] Krzysztof Kotowicz: https://twitter.com/kkotowicz

[3] Any.DO: https://chrome.google.com/webstore/detail/anydo-extension/kdadialhpiikehpdeejjeiikopddkjem

[4] твит: https://twitter.com/sergeybelove/status/372055818898001920

[5] видео: https://www.youtube.com/watch?v=ATJqa3Vvl_0

[6] слайды: http://prezi.com/1ncg6xv58pzz/im-in-your-browser-pwning-your-stuff-attacking-google-chrome-extensions/

[7] видео: https://www.its.fh-muenster.de/owasp-appseceu13/rooms/Grosser_Saal/high_quality/OWASP-AppsecEU13-KrzysztofKotowicz-Iminurbrowserpwningyourstuff-AttackingwithGoogleChromeextensions_720p.mp4

[8] слайды: http://www.slideshare.net/kkotowicz/im-in-ur-browser-pwning-your-stuff-attacking-with-google-chrome-extensions/

[9] Mosquito: https://github.com/koto/mosquito

[10] XSSChef: https://github.com/koto/xsschef

[11] Источник: http://habrahabr.ru/post/192294/