Ця інформація призначена для розробників, у чиїх додатках є вразливість, що дає змогу зламати їх через схему наміру.
У чому проблема
Принаймні один із ваших додатків містить проблему з обробкою схем намірів, що дає змогу зловмисним мережам і веб-сайтам отримувати доступ до приватних компонентів додатків.Ознайомтеся зі сповіщенням у Play Console. Після кінцевих термінів, указаних у Play Console, додатки з уразливими елементами може бути видалено з Google Play.
Що потрібно зробити
-
Увійдіть в обліковий запис Play Console і перейдіть у розділ "Сповіщення", щоб переглянути, які додатки уражено та які терміни вирішення цих проблем.
-
Оновіть уражені додатки, виконавши вказані нижче дії.
-
Надішліть оновлені версії цих додатків.
Коли ви надішлете оновлені версії, ми знову перевіримо їх. Це може тривати кілька годин. Якщо додаток пройде перевірку та його буде опубліковано, виконувати додаткові дії не потрібно. Якщо додаток не пройде перевірку, його нову версію не буде опубліковано й ви отримаєте відповідне сповіщення електронною поштою.
Додаткова інформація
Компоненти WebView, які переходять на ненадійні веб-ресурси, виконують синтаксичний аналіз посилань намірів (intent://), використовуючи атрибут Intent.parseUri, і надсилають ці наміри через startActivity, є вразливими до зламу через схеми намірів. Зловмисний веб-вміст може обманом надсилати довільні наміри в приватні компоненти додатків. Так можна зламувати додатки (наприклад, викрадати приватні дані, до яких ці компоненти мають доступ). Зверніть увагу, що ненадійним також вважається вміст із надійних доменів, який завантажується через HTTP.
Радимо усунути цю загрозу одним із перелічених нижче способів.
Варіант 1. Переконайтеся, що компоненти WebView не можуть надсилати довільні наміри
Додатки можна обмежити так, щоб вони отримувати у свої компоненти лише нецільові наміри, створені за допомогою Intent.parseUri, використовуючи фільтри намірів BROWSABLE. Ось код для цього:
// convert Intent scheme URL to Intent object
Intent intent = Intent.parseUri(url);
// forbid launching activities without BROWSABLE category
intent.addCategory("android.intent.category.BROWSABLE");
// forbid explicit call
intent.setComponent(null);
// forbid Intent with selector Intent
intent.setSelector(null);
// start the activity by the Intent
view.getContext().startActivity(intent, -1);
Варіант 2. Переконайтеся, що компоненти WebView не завантажують ненадійний веб-вміст
Якщо компоненту WebView потрібно виконувати синтаксичний аналіз URL-адрес із довільними схемами намірів
, переконайтеся, що він не завантажує ненадійний веб-вміст (зокрема, через незашифроване з’єднання). Розробники можуть указати у файлі Manifest значення false для атрибута android:usesCleartextTraffic
або налаштувати функцію Network Security Config, що забороняє трафік HTTP. Крім того, можна перевірити, чи вражені компоненти WebView не завантажують URL-адреси зі схемами HTTP через атрибут loadUrl
.
Радимо переконатися, що вражені компоненти WebView не завантажують необмежені URL-адреси, отримані з ненадійних джерел (наприклад, URL-адреси з ненадійних намірів).
Ми завжди раді допомогти
Якщо у вас є інші технічні запитання про вразливості, опублікуйте їх на сайті Stack Overflow з тегом android-security. Щоб дізнатися більше про дії для вирішення цієї проблеми, зв’яжіться зі службою підтримки розробників.