Каждый день в мобильных устройствах выявляют уязвимости, которые могут быть проэксплуатированы злоумышленниками. Они могут отправить СМС на платный номер, могут собрать большую базу данных контактов и продать ее, а могут и скомпрометировать конкретного человека. Удачная эксплуатация уязвимости обычно предполагает соблюдение целого ряда условий.
Но ведь можно пойти и другим путем! Дать пользователю вполне нужное приложение (игрушку с птичками), у которого в манифесте будет записан список интересной нам информации на устройстве. В данной статье мы рассмотрим способы получения и сохранения важной информации с Android-устройства.
Архитектура ОС Android построена таким образом, что позволяет обмениваться разного рода информацией между приложениями. Приложению, работающему с картами, нужно местоположение, диктофону — доступ к микрофону. Таким образом, с виду все ясно и прозрачно.
Мы открыто прописываем в манифесте приложения требуемые данные или возможности и получаем их при установке. Никто никого не обманывает, все добровольно. Но проблема состоит в том, что пользователи ужасно неграмотны в информационных технологиях. Мало кто задумывается, для чего тому же диктофону требуется твое местоположение или доступ к СМС. Приложение открыто заявляет о своих намерениях в манифесте, и странно было бы ожидать от него другого поведения.
Запрос App Permissions в Android у пользователя
Задолго до всем известного разоблачения я понимал, что игрушка со злыми птичками на твоем устройстве — это стукач, так как оно, помимо всего прочего, хочет читать идентификатор устройства и данные о вызовах. Простой вопрос «Тебе эти данные зачем?» обнажает истинные намерения ее создателей.
Пользователь при установке приложения ставится в положение «или разрешай все, что оно хочет, или останешься без программы». Только единицы пойдут в магазине искать приложение со сходной функциональностью, но с меньшими запросами (аналогов может вовсе не быть), поэтому у пользователей быстро входит в привычку жать «да-да-да» на все вопросы. Согласись, легко привыкать, когда за долгие годы офлайн-жизни у пользователей вырабатывался рефлекс автоматически подписывать многостраничные договоры, по принципу «ну, все же подписывают, наверное, тут ничего плохого, да и выход всего один — либо я подписываю тут, либо не получаю того, за чем пришел».
После установки шпионское приложение не надо даже запускать, так как в нем может быть прописан механизм приема широковещательных сообщений (BroadcastReceiver) , который при получении сообщения от системы запустит сервис сбора информации.
Если мы отберем все разрешения у приложения, ОС во избежание падения программы может просто отдать ему пустые значения. Можно обмануть приложение, подсунув ему заведомо ложные данные (местоположение Северного полюса) или просто нули. Например, приложение может спросить список контактов на устройстве, и разработчик предполагает в своей архитектуре, что он может быть пустым (совсем новое устройство). Тут даже и заподозрить нечего — и данные спасены, и приложение не сломалось.
зачем нужен app permission?
На такие ухищрения приходилось идти вплоть до версии Android 6.0 Marshmallow. В ней появился новый механизм работы с разрешениями.
Он позволяет давать и забирать разрешения во время работы самого приложения. Для обратной совместимости старых аппликух (то есть у которых значение targetSdkVersion меньше 23) работает старый механизм запроса разрешений при установке. Обновленные приложения должны запрашивать разрешения в процессе работы. В настройках приложения мы можем посмотреть, к чему у приложения есть доступ, и при желании отозвать этот самый акцесс.
Рассмотрим работу данного механизма на устройстве с версией Android 6.0.
Давай установим птичек, но перед первым запуском отберем у них все права. При запросе прав при установке из гуглплея мы видим, что targetSdkVersion у приложения меньше 23. Экран настроек говорит нам о несколько завышенных интересах создателей приложения.
Другие статьи в выпуске:
Хакер #204. Шифровальщик для Android
- Содержание выпуска
- Подписка на «Хакер» -60%
Как насчет того, чтобы немного их укоротить?
![]() |
![]() |
После отзыва разрешений я запустил игру, и оказалось, что нормальной работе это ничуть не помешало. Видимо, фоновый сервис сбора данных никак не влияет на основной игровой интерфейс.
Теперь давай рассмотрим работу с обновленным приложением Skype. Вот перед нами часть манифеста «похожего» приложения. Список разрешений и требований из манифеста приложения вдохновляет:
Если бы только пользователи это видели.
Раз мы хотим сохранить хотя бы малую долю частной жизни, остается уповать только на операционную систему. Рассмотрим процесс установки приложения. При установке из маркета никаких диалоговых окон не показывается — все разрешения приложение будет спрашивать потом. Проверим в настройках.
![]() |
![]() |
Запустим приложение. Последовательно идут семь запросов.
Последовательно отклоняем все запросы, и скайп превращается в интернет-чат :).
Постой, я сказал «в интернет-чат»? А почему он не спросил разрешения на доступ в интернет? А все потому, что разрешения делятся на две группы: обычные и опасные. Доступ теперь должны запрашивать только последние. Список обычных разрешений можно посмотреть тут.
А вот — опасные разрешения (и их группы). Для создания запросов на разрешения есть подробные материалы: шаблоны использования запросов на доступ к разрешениям, рекомендации для доступа к разрешениям, а вот и полный список разрешений.
С теорией мы более-менее разобрались, теперь перейдем к практике.
Проникаем в список контактов (по-хорошему)
Обогащенные этим новым знанием, давай напишем небольшое приложение, в котором будем читать данные о контактах пользователя через запросы в интерфейсе и в сервисе. Как недавно выяснилось, некоторые приложения очень часто любят читать эти данные (оно и неудивительно — вдруг там что-то изменилось, а создатели «хороших» приложений и не знают).
WWW
Исходный код проекта доступен по ссылке.
Нажатием на кнопку мы проверяем версию ОС и, если она 23 и выше, делаем запрос на получение прав:
public void setRequestReadContacts(View view) < // Проверка на уже данные разрешения if (hasSelfPermission(this, Manifest.permission.READ_CONTACTS)) < // Разрешение есть, показываем контакты showContacts(); >else < // Разрешения нет, посылаем запрос if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) < requestPermissions(new String[], REQUEST_READ_CONTACTS); > > >
После диалога в методе onRequestPermissionsResult нужно обработать ответ:
Читаем контакты в одну строчку с переходами на новую строку:
private String readContacts() < Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); String names = «»; while (phones.moveToNext()) < names = names + phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)) + «n»; >phones.close(); return names; >
Показываем контакты в окне, при клике по окну оно скроется:
А вот результат работы чтения контактов:
Проникаем в список контактов (по-плохому)
Теперь проделаем то же самое, но в сервисе, как и положено плохому приложению. Сервис никаких запросов слать не будет, а будет пытаться просто в лоб читать контакты.
Запуск сервиса сделаем по событию подключения к Wi-Fi .
Код сервиса:
Если у приложения есть права, то сервис покажет Toast сообщение со списком контактов, если прав нет — вызовет ошибку с сообщением. Теперь исследуем поведение приложения, если выставить ему targetSdkVersion ниже 23.
По умолчанию приложению были выданы права, и все работает штатно без запросов. После отключения прав в настройках приложения список контактов стал приходить пустым. Никаких ошибок мы не получили, но и контактов тоже. Значит, без нашего ведома приложения будут получать неактуальную информацию.
Заключение
Новая версия Android включает в себя более надежные и гибкие настройки прав для приложений. Можно сказать, что в новой версии наши данные защищены более эффективно, но это не значит, что теперь тебе можно вслепую соглашаться со всеми предложениями, поступающими из всплывающих окошек. Будь бдителен!
Источник: xakep.ru
Permission Control — что это за программа на Андроиде? Как её удалить?
Это обычная вирусная программа каких сейчас очень много в Андроид, лучше конечно удалять подобные проги или хотя бы заморозить их работу, ведь они только места занимают, не говоря уже о том что могут быть вирусными и полностью испортить вам гаджет.
комментировать
в избранное ссылка отблагодарить
Источник: www.bolshoyvopros.ru
Permission Manager App Ops
Permission Manager App Ops — Управляйте разрешениями для ваших приложений на мобильном устройстве, не получая прав суперпользователя. Это может помочь вам обеспечить безопасность вашего Android устройства и защитить Вашу частную жизнь.
Скачать программу для управления разрешениями приложений — Permission Manager App Ops на Андроид бесплатно вы можете по ссылке ниже.
Разработчик: Qixingchen
Платформа: Android 5.0 и выше
Язык интерфейса: Русский (RUS)
Состояние: Full (Полная версия) [Unlocked]
Root: Не нужен
- EasyTether PRO- (Опубликовано: 2019-04-22 10:50:24)
- Cooler Master- (Опубликовано: 2019-02-01 18:46:00)
- Purify- (Опубликовано: 2017-12-25 10:42:00)
- Edge Gestures- (Опубликовано: 2021-12-21 22:36:00)
- Spare Parts- (Опубликовано: 2014-02-03 19:55:53)
- Shortcutter Quick Settings- (Опубликовано: 2020-03-01 13:05:00)
- Busybox On Rails- (Опубликовано: 2016-03-24 19:57:37)
- Disable Service- (Опубликовано: 2015-11-16 15:41:00)
- Hibernate- (Опубликовано: 2015-11-10 19:42:00)
- Internet Speed Master- (Опубликовано: 2019-04-20 16:51:42)
App Ops Permission manager — Pro — v2.8.0 (full) | [Размер файла — 3,11 Mb] |
App Ops — Permission manager | [google play] |
Источник: 4pda.biz
Revo App Permission Manager
Revo App Permission Manager — инструмент для получения более полного контроля над своим гаджетом. Проект представляет собой диспетчер разрешений. Пользователь сможет самостоятельно указывать что, кто, к чему, в каком объёме, ключе и так далее имеет право на то или другое. Отключайте особо наглым программам доступ к личной информации, блокируйте нерегламентированные действия и так далее.
Всё это обеспечивает не только более функциональную работу, но и существенно повышает уровень безопасности. Ну удобное управление и наглядное исполнение так же понравится всем заинтересованным.
Источник: 5mod.ru