Разрешения Android и вредоносное ПО

Может ли вредоносное приложение для Android «скрывать» определенные важные разрешения, тем самым обманывая пользователя, чтобы он был «хорошим» (или намеревался делать только то, что было поставлено перед ним). Таким образом, может ли пользователь «поверить» в подлинность приложения и установить его? Короче говоря, приложение может подделывать свои разрешения? Я знаю, что существует AndroidManifest.xml, который каждый разработчик приложения должен настроить, чтобы получить необходимое разрешение. И, безусловно, это то, что отображается пользователю, чтобы он / она мог подтвердить, прежде чем он / она установит приложение. Теперь мой вопрос: есть ли способ, которым пользователь не «показывает» какие-либо разрешения??

Ответы (2)

Нет. По крайней мере, не без ошибок. Все разрешения, не записанные в манифесте, не будут предоставлены приложению Android. Начиная с Android 6 приложение также может запрашивать разрешения во время выполнения. Тогда их нет в манифесте, и пользователь не предоставляет их при установке, но как только приложение запрашивает эти разрешения, пользователь должен их предоставить.

Короче говоря: у вас есть контроль над разрешениями, и нет простого способа обойти эту систему.

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

как насчет родных приложений. Должен ли какой-либо собственный компонент, который выполняет несколько действий в основном приложении Android, также явно запрашивать разрешения?

Насколько мне известно: не напрямую. Но с текущей политикой разрешений со стороны Google это все еще может вас обмануть:

Обычный подход здесь заключается в том, чтобы сначала опубликовать «чистое приложение», которое запрашивает только базовые разрешения, но позаботится о том, чтобы охватить все «группы разрешений», которые ему понадобятся позже (см. Группы разрешений Android ). Таким образом, он может, например, запросить INTERNETразрешение (которое даже предоставляется автоматически и запрашивается примерно 80% всех приложений, что не вызывает подозрений), которое принадлежит группе NETWORK. Позже разработчик опубликует обновление, которое затем дополнительно запрашивает, например, разрешения на CHANGE_NETWORK_STATE, CHANGE_WIFI_STATEи DOWNLOAD_WITHOUT_NOTIFICATION-, которые также принадлежат группе NETWORK. 1 Поскольку у установленного приложения уже есть одно разрешение этой группы, пользователь НЕ будет уведомлен об этих новых разрешениях (диалоговое окно установки Google Play Storeпокажет «Это приложение не требует новых значительных разрешений»), таким образом считая приложение «безопасным». Но с этими новыми разрешениями приложение теперь может устанавливать соединения с сетями по своему выбору в любое время и загружать «материалы» без каких-либо действий пользователя.

Конечно, всегда можно проверить полный список разрешений перед каждым обновлением. Но 1) соответствующая ссылка на самом деле не очевидна (вам нужно было прокрутить страницу приложения в магазине приложений до самого конца, чтобы увидеть ее), 2) это означало бы, что вы помните, какие разрешения уже есть у установленной версии, и 3) это утомительная работа, по крайней мере, когда речь идет о 10 и более разрешениях (нередкий случай: около 25%+ всех приложений требуют 10 и более разрешений). Кроме того, 4) если в приложении Google Play Store включено «автоматическое обновление» (которое используется по умолчанию), эти обновления будут установлены без возможности предварительной проверки пользователем.

Так что это даже невозможно, но Google делает этот сценарий очень простым для использования «плохими парнями». Так было не всегда: до середины 2013 года при обновлениях каждое добавленное разрешение доводилось до сведения пользователя. Эта новая система была развернута, чтобы «улучшить взаимодействие с пользователем» и «сделать Playstore более удобным для пользователя». Несмотря на критику по соображениям безопасности, так и осталось.


1: Это всего лишь пример созвездия. Рассмотрите такжедругие группы разрешенийBLUETOOTH и их разрешения — например, иBLUETOOTH_ADMIN.

Короче говоря, можно «скрыть» разрешения во время установки, а затем указать их во время выполнения, и, если пользователь разрешит, приложению может быть предоставлено что угодно. Но вернемся к моему вопросу: по-прежнему «невозможно» иметь «незаконные» разрешения -> то есть те, о которых пользователь не знает, верно?
@user907810 user907810 Нет, приложение не может скрывать разрешения, в отличие от приложения Google Play Store. Если вы активируете неизвестные источники , загрузите .apkи запустите его установку, например, через файловый менеджер, установщик покажет вам каждое добавленное разрешение. И благодаря тому, что Playstore скрывает определенные разрешения: да, если пользователь не проверит полный список разрешений перед установкой (или через « Настройки»> «Приложения» , когда они уже установлены), может быть много разрешений, о которых он не знает (я мог бы назвать 20+ прямо). прочь).