40% приложений для отслеживания COVID-19 не защищают личные данные

40% приложений для отслеживания COVID-19 не защищают личные данные

40% приложений для отслеживания COVID-19 не защищают личные данные

Анализ 95 мобильных приложений, отслеживающих контакты зараженных COVID-19, показал, что 60% из них используют официальный API для уведомлений о риске. Остальные 40% не имеют даже базовых средств защиты конфиденциальной информации.

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

Поскольку сведения, собираемые приложениями COVID-19, носят конфиденциальный характер, защита таких программ от взлома имеет особенно большое значение. Исследование, проведенное в ИБ-компании Guardsquare в минувшем июне, позволило произвести оценку защищенности подобных разработок, а также риска нарушения приватности.

В контрольную выборку вошли 52 специальных приложения для Android и 43 — для iOS. Эти разработки используются по всему миру, а также в 13 американских штатах и двух территориях, контролируемых США. Оценка защищенности программного кода и пользовательских данных производилась по шести различным критериям.

Исследование показало, что защищенные API, созданные Google и Apple для уведомления пользователей о возможном заражении, используют 62% Android-приложений и 58% iOS-программ COVID-19. Остальные приложения либо вообще беззащитны, либо имеют минимальный набор средств обеспечения безопасности.

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

«Приложения, особенно те, которые при загрузке на мобильное устройство требуют доступ к персональным данным или информации о местоположении, должны всегда иметь надлежащие средства обеспечения сохранности кода и конфиденциальности собираемых данных, — заявил руководитель исследовательских работ в Guardsquare Грант Гудес (Grant Goodes). — Чтобы эффективно ограничить распространение COVID-19, разработчики, органы здравоохранения и правительства должны уделять должное внимание безопасности приложений, предназначенных для отслеживания контактов с зараженными лицами».

Расширения 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