Как стать автором
Поиск
Написать публикацию
Обновить

Не слишком ли много мы разрешаем нашим приложениям?

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров5.9K
Всего голосов 10: ↑10 и ↓0+10
Комментарии51

Комментарии 51

Вопрос, как остановить эту вакханалию, при том, что Гугл, похоже, не очень заинтересован менять статус кво.

Гугл очень заинтересован в сохранении своей монополии на данные пользователей.
Для этого он ввёл систему разрешений, запрашиваемых прямо перед использованием функции (например, можно не давать доступ к камере, пока пользователь сам не захочет сделать фото) и банит приложения в маркете, которые эту систему абузят (нампример, не пускают в приложение, пока пользователь не выдаст определённое разрешение, прямо сейчас не нужное). Также Андроид отзывает выданные разрешения у приложений, которыми давно не пользовались.

Если Гугл заинтересован, то где разрешения вида "дать доступ вот к этому файлу", а не ко всей файловой системе? Или, например, где возможность посмотреть, какие аппы открывали такой-то файл в прошлом?

Первое, что вы описали, в 14 андроиде работает.

Давно не давал такого разрешения, но как я помню там к каталогу можно дать разрешение, на отдельный файл это по моему не работает.

"дать доступ вот к этому файлу"

Да, сделали файл-селектор, который работает под системой. Приложению отдаётся только тот файл, который пользователь выбрал сам. А шариться по всем файлам уже не выйдет.

Отлично! И пятнадцати лет не прошло, как сделали ))

лучше использовать только приложения из надёжных источников

Согласен, например с 4pda или F-Droid.

Основная проблема в том, что приложение знает, какие разрешения ему выдали, а какие нет. И это открывает простор для шантажа: выдай мне все, иначе я не запущусь.
Думаю, хорошим решением было бы со стороны ОС скрывать факт запрещения - например, подсовывая какие-нибудь данные из песочницы вместо реального доступа. Тогда получится управлять разрешениями без шантажа - вот прямо сейчас нужно отправить фотку, прямо сейчас разрешил, а потом отобрал. И даже больше: делать это приложение должно через запрос к стандартным компонентам ОС, которые вернут только выбранные файлы без возможности "я тут прочитаю все ваши медиа файлы, раз уж вы мне доступ дали".

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

Вроде же сейчас так и работает. По крайней мере, в воцапе при нажатии скрепки возникает окно, куда нужно подобрать файлы по одному, остальные он не видит

Да, касаемо файлов. Но очень много разрешений слишком широкие, работают по принципу "все или ничего" и не позволяют никак пользователю ограничить это разумными (по его мнению, а не мнению приложения) рамками - например, доступ к журналу звонков.
Думаю, логичной, была бы пользовательская настройка фильтров - "разрешить доступ к журналу за последний час". Или "доступ к журналу звонков за месяц, но исключая контакты из группы Х". Так хотя бы новоустановленное приложение получит доступ к относительно небольшой части персональной информации.

Не могу придумать сценарий, когда приложению нужен журнал звонков за последний час.
Либо это приложение аналитики/бекапа, и можно дать полный доступ, либо это скам/кража персональных данных, и тогда никакого доступа давать не надо.

Например, разновидность верификации номера - мы вам звоним, а вы вводите в приложение 4 последних цифры номера. Для автоматизации этого вполне хватит доступа к журналу звонков за последний час.

Для этого нужен не "журнал звонков", а "read phone state". То есть, в реалтайме видеть, чем сейчас занят телефон. История вызовов - излишнее.

Хорошим решением было бы выпинывать такие приложения из Маркета, причем без возможности возврата. Но нет, это же деньги.

Думаю, хорошим решением было бы со стороны ОС скрывать факт запрещения - например, подсовывая какие-нибудь данные из песочницы вместо реального доступа

Будет игра в кошки-мышки. Приложение будет шантажировать "вы мне открыли песочницу, я не верю, что у вас в списке контактов только 2 записи". Верное решение - на уровне гугл-плей модерировать эти выкрутасы.

Основная проблема в том, что мы наверняка не знаем и знать не можем влияет ли на что-то вообще та галочка в настройках)

Почему не можете? Берите Android SDK, пишите своё приложение и проверяйте, теряет ли оно доступ к данным при включении/выключении галочки.

Извиняюсь.. но в современных реальностях это полный пенетрейшен смартфона приложениями.

Among Us, многопользовательская игра, которая не потребовала никаких опасных разрешений

Было бы слишком забавно, если она возглавляла список.

В игре - нации предателя, главным бы оказалась сама игра @)

Почти все проанализированные приложения (47) запрашивают у пользователей разрешение на отправку уведомлений.

А что делать, если приложение должно работать в фоне, но без постоянно висящего уведомления система его периодически прибивает? Андроид уже предлагает какую-то альтернативу?

Уведомления проходят через посредника — своего рода «цифровое почтовое отделение». Для телефонов Android это Firebase Cloud Messaging от Google.

Даже если это уведомление, скажем, от полностью оффлайнового будильника? Что-то мне подсказывает, что это не так.

Самое главное не написано в статье: с помощью каких приложений можно проверить, какие программы какие права используют и прилодения, с помощью которых можно заблокировать права (с рутом и без):

  1. Permission Manager - Приложение, которое позволяет просматривать и управлять разрешениями для каждого установленного приложения.

  2. App Permissions - Простое приложение, которое показывает все разрешения, запрашиваемые приложениями, и позволяет управлять ими.

  3. Bouncer - Это приложение позволяет временно предоставлять разрешения приложениям, которые автоматически отзываются после закрытия приложения.

  4. Privacy Dashboard - Приложение, которое предоставляет информацию о том, какие разрешения использовались приложениями за последние 24 часа.

  5. GlassWire - Хотя это приложение в первую очередь предназначено для мониторинга сетевой активности, оно также предоставляет информацию о разрешениях, запрашиваемых приложениями.

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

  7. MyPermissions - Приложение, которое помогает управлять разрешениями не только на устройстве, но и в онлайн-сервисах, таких как Facebook, Google и других.

  8. App Ops - Приложение, которое позволяет управлять разрешениями на уровне системы, но может требовать root-доступа для полной функциональности.

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

Ещё AppManager умеет правами управлять (не уверен что всеми, но это только олна из многих его возможностей). Рут необходим.
https://4pda.to/forum/index.php?showtopic=998293

Также лаки патчер такое может (насколько я понял с пересборкой установленного apk).

Не говоря о том что система сама позволяет предоставлять или отзывать права.

Глянул Privacy Dashboard.
Описание: «Панель конфиденциальности с Android 12 для Android 7~11».
Последнее обновление: 2 сент. 2021 г.

Есть в списке App Ops, который год не обновлялся.
Зато отсутствует более функциональный Permission Manager X, который 2 недели назад обновился.

Это копипаста с какого-то сайта?

Не у всех устройства с Android 14. Вон в соседней статье куча TV/приставок на Android были заражены, там версия не последняя. Если нет возможности/необходимости обновить ОС до актуальной версии, то что, их броситьна произвол судьбы? :)

Это не копипаст, просто у меня есть набор софта, некоторый не обновляется (apk просто лежат). Например для Sony Xperia Z1 с Android 10, который используется сейчас не как стандартный смартфон.

Попробуй AppManager: отличная штука (при наличии рута, естественно)
Работает как на А13, так и на А8.

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

Пригодилось когда у меня в черновиках смс появились сообщения всем моим контактам. Смог вычислить вредонос за пару минут. Почему сообщения не отправились, загадка.

Видно использование разрешений с указанием времени
У меня на А13 в Poco что-то такое тоже имеется. Так что, возможно, это просто фишка самого ведроида.
Заходишь в инфу о любом приложении и в блоке «Разрешения» имеется пункт «Действия» (прямо перед пунктами «Автозапуск в фоне» и «Разрешения»).

Самое главное свинство со стороны Гугла, который так заботится о нашей безопасности - невозможность отозвать доступ в инет для приложения. Пусть оно имеет доступ к чему угодно, если у него нет доступа в инет, оно ничего не может сделать.

невозможность отозвать доступ в инет для приложения

Это в какой версии ведроида такое?

Android 13 например

У меня на Poco F5 с рутом можно отзывать эти разрешения (хз как без рута, не пользовался) в А13.

ну с рутом что угодно можно делать. 95%? юзеров без рута. Ну и банковское приложение не заработает с рутом с большой вероятностью.

Работают же.
Для магиска есть модули которые фиксят эту проблему.

на Poco F5 с рутом можно отзывать эти разрешения

Какая-то самодеятельность вендора прошивки? Потому что гугл считает права на интернет необходимыми, как воздух. И не даёт ими управлять. Под рутом можно запустить Android Firewall - приложения не понимают, что у них отобрали интернет, они просто видят, что пакеты не проходят. Без рута тоже есть вариант - приложение, притворяющееся VPN-сервисом, в которое заворачивается весь трафик, и оно может не пропускать определённые приложения.

банковское приложение не заработает с рутом с большой вероятностью

Сбер работает.

Я как раз AFWall+ использую главным образом, а не системные настройки.

Тогда это технически некорректно

с рутом можно отзывать эти разрешения

AFWall+ не отзывает разрешения.

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

Странно. Я стандартным менеджером приложений в настройках могу отозвать разрешения к микрофону, камере, контактам и т.п., но не могу отозвать разрешение на интернет.

Что за версия ведроида и что за производитель?
У меня на сяоми (сяоми, редми, поко - это всё сяоми) вроде везде это было возможно (как на А8, так и на А13).
Как было на лыже не скажу уже, но там А4.4 стоял и пользовался я им последний раз лет так 8 назад.

Вот типичные экраны управления разрешениями, тут нет пункта "интернет"

https://www.youtube.com/watch?v=KWqJqK-XMDM

https://www.youtube.com/watch?v=dHbbOe_BpQc

upd.
А, есть такое. Но в Data Usage, а не в Permissions

https://www.youtube.com/watch?v=o0kUPFsqeUE
Это фича конкретной прошивки, а не системы разрешений.
Об этом и говорит автор видео, что если вендор не даёт опцию блокировки интернета, нужно ставить отдельное приложение - firewall.

Я как правило захожу в эти настройки как показано во втором видео (можно и как в третьем, но так обычно делаешь, если иконку приложения в лаунчере не видно).

У меня банковское приложение проверяет список установленных на телефоне приложений. Разрешений оно не запрашивало, просто делает. Как узнал? Установил rustdesk на телефон. При входе в банк мне написало: вы были заблокированы. Чуть позже перезвонили из банка, сказали, что заблокировали именно из-за rustdesk - мол им пользуются мошенники.

Паранойя разыгралась....

Из-за чего паранойя? Получить список приложений QUERY_ALL_PACKAGES это такое неотзываемое разрешение, как доступ в интернет. Вы его не видите, а оно есть в манифесте. Почти в каждом приложении, в которое встроено любое рекламное SDK, для профилирования и фингерпринтинга. Не говоря уже о банковских, где запрашивается под 60 разрешений - всё, до чего можно дотянуться.

Паранойя от того, что об этом ни сном ни духом 100500 пользователей этих приложений. И если я еще хотя бы отдалено представляю как оно работает, то неIT просто на авось тыкают эти кнопки. А там может быть куча всего, как в статье и написано. И люди "добровольно и осознанно" жмут кнопку "установить". Тем более, что некоторые банки без приложения отказываются активировать карты. То есть его придется поставить. Так и живем.

Понятно, это удивление "оно ещё и так может..." и последующие за ним страхи "а что оно ещё такое может, о чём я не знаю..."

Сдается мне, тут как раз тот случай, когда можно посмотреть в сторону яблока:

1) Доступ через системные сервисы. К примеру, понадобилась приложению фотка для аватара - открывается системная галерея, выбирается фотка и только одна эта фотка отдается приложению. Доступа к другим фото, а уж тем более ко всему стораджу, у приложения нет.

Аналогично можно сделать с контактами, файлами, да вообще со всем.

2) Более гибкое разграничение доступа. К примеру, приложению таки нужен доступ именно ко всем фото (например, чтобы найти похожие и сделать коллаж). Ок, просим у пользователя пермишн и получаем доступ только к фото. В музыку, фильмы и прочие документы доступа нет.

3) Ограничение доступа по времени. Например, однократный, только когда приложение активно, перманентный. Вроде как такое есть уже в новых андроидах

У ведроида это всё вроде точно так же реализовано.
Разве что может в разных версиях могут быть отличия сколько приложению позволено.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий