Уязвимости в смартфонах на Android позволяли похищать деньги и пароли

Уязвимости в смартфонах на Android позволяли похищать деньги и пароли

Эксперт Исследовательского центра Positive Research Артем Чайкин обнаружил две критические уязвимости в браузере Chrome для платформы Google Android. Они могут поставить под угрозу безопасность большинства новейших смартфонов и планшетов, поскольку, начиная с Android 4.1 Jelly Bean, Chrome является основным браузером системы.

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

Вторая уязвимость позволяла выполнять произвольный JavaScript-код в контексте безопасности любого сайта. Речь идет об универсальной атаке типа «Межсайтовое выполнение сценариев» (Universal XSS), осуществив которую, киберпреступник мог скомпрометировать, например, банковские счета пользователя мобильного интернет-банка и произвести хищение денежных средств.

Благодаря профессиональной работе компании Google уязвимости в браузере Chrome для платформы Android были ликвидированы в кратчайшие сроки. Чтобы устранить ошибки в системе защиты браузера, пользователю необходимо загрузить и установить новую версию Chrome.

Сотрудничество компаний Positive Technologies (подразделением которой является Исследовательский центр Positive Research) и Google продолжается уже несколько лет. В 2010 году имена нескольких экспертов Positive Technologies были внесены в виртуальный «Зал славы» Google. Весной 2012 года эксперт Positive Technologies Дмитрий Серебрянников обнаружил критическую уязвимость на сайте корпорации, за что был награжден премией в рамках Vulnerability Reward Program.

«Наши специалисты обладают большим опытом выявления и устранения уязвимостей в различных мобильных приложениях — клиентах интернет-банков, браузерах, антивирусах, почтовых клиентах, — рассказал Дмитрий Евтеев, руководитель отдела анализа защищенности Positive Technologies. — Более того, в конце июля 2012 года мы запустили специальную услугу по анализу защищенности критических приложений на мобильных платформах (Apple iOS, Google Android, Windows Phone и др.). Мы полагаем, что в свете принятия закона "О национальной платежной системе" банкам и платежным системам потребуется более высокий уровень безопасности мобильных платформ, все чаще выступающих терминалами для проведения финансовых операций».

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

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

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

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

В Google подтвердили возможность подобной атаки по стороннему каналу, но заявили, что решить проблему нереально.

RSS: Новости на портале Anti-Malware.ru