Разрешения приложений на андроид и как ими управлять. Небезопасные разрешения в Android-приложениях

  • 29.08.2019

Недавно состоялся официальный релиз операционной системы . Владельцы устройств линейки Nexus, а также аппаратов программы Android One уже могут . В Android 6.0 Marshmallow появилось много новых функций, включая управление привилегиями приложений. Как разобраться с ними мы решили рассказать в этой статье.

Теперь при установке новых приложений операционная система спрашивает у пользователя, какие привилегии дать программе. Помимо этого, отображаются основные запросы стороннего приложения. Например, при установке попросит такие привилегии, как использование интернета и гео-локационных данных или даже изменение системных настроек. При желании программе вообще можно не давать никаких привилегий. Это актуально, когда пользователь не уверен в добрых намерениях приложения.

Однако программы, которые уже были установлены до обновления на Android 6.0 Marhmallow, уже получили свои привилегии и запросят их только при следующем апдейте через . Чтобы просмотреть права уже установленных программ нужно следовать простой инструкции:

1. Перейти в меню настроек через верхнюю «шторку» или через меню приложений.

2. Перейти во вкладку «Приложения».

3. Тапнуть на иконку дополнительных настроек в правом верхнем углу.

4. Перейти в раздел «Разрешения приложений».

5. Перед вами список всех возможных прав, которые могут получать приложения. Если перейти в раздел какой-либо привилегии, то вам откроется список всех приложений с тумблерами справа. Включенный тумблер означает, что приложение имеет доступ, например, к , выключенный - не имеет доступа. Тумблеры можно переключать. Таким образом можно отбирать или давать права приложениям. Не хотите, чтобы какая-то программа пользовалась GPS - дерните за переключатель в соответствующем разделе.


Также управление правами приложений в Android 6.0 Marshmallow предполагает отображение программ, которые могут изменять настройки.


В разделе дополнительных настроек приложений есть раздел «Изменение системных настроек». В нем можно узнать, какие приложения имеют доступ к изменению системных параметров, например различные геолокационные сервисы могут изменять точность работы GPS. Помимо этого, доступ к системным настройкам позволяет считывать большинство данных об устройстве. Этот раздел удобен для поиска подозрительных приложений, которые имеют доступ к системным настройкам. Многое вредоносное ПО работает именно с такими привилегиями.

Permission Master - это специальный модуль для Xposed Framework, который предназначен для управления разрешениями любой установленной на вашем гаджете программы. Подробное описание этого проекта с пошаговыми инструкциями по установке Xposed и отдельных модулей для него я сделал в , поэтому не будем ещё раз повторяться, а перейдём непосредственно к работе Permission Master.

После установки модуля и перезагрузки устройства вы обнаружите в списке приложений новую иконку в виде зелёного щита с шестерёнкой. Запускаем программу и видим окно, разделённое на две вкладки. На первой содержатся названия всех имеющихся разрешений. Тап по любому названию в списке демонстрирует нам все программы, обладающие данным свойством. Ещё один тап, и название программы становится красного цвета и перечёркнутым - это значит, что соответствующее разрешение было отключено.

Примерно такой же алгоритм используется на второй вкладке, но здесь все разрешения сгруппированы по программам. Вы можете просмотреть список доступных действий для каждого приложения и одним тапом отключить ненужное. Обратите внимание, что если вы задержите палец на названии любого разрешения, то появится всплывающее окно с пояснением его свойств. Это очень пригодится тем, кто сомневается в необходимости и безопасности того или иного действия. А чтобы обезопасить себя от дополнительных проблем, не забудьте зайти в настройки Permission Master и отключить отображение системных программ.

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

  • Перевод

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

Как известно, безопасность обеспечивается системой разрешений доступа на каждом конкретном Android-устройстве. Эта система призвана защищать важные данные и предотвращать несанкционированный доступ к информации или каналам связи.

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

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

Здесь мы рассмотрим существующую систему манифестов и разрешений в Android. Файл манифеста содержит информацию о пакете приложения, включая разрешения, поставщиков контента, сервисы, активности и широковещательных приёмников (broadcast receivers).

Пример общей структуры файла манифеста. Цветом выделены запросы на получение разрешений:

Самые опасные разрешения

Чтобы решить, к каким данным можно дать доступ, пользователь должен помнить о предназначении этого приложения. Например, «Зачем игре понадобился доступ к моей адресной книге или разрешение отправлять SMS?» Очевидно, что игры не предполагают отправки SMS. Подобные несоответствия функционала запросам доступа должны настораживать в первую очередь.

Разрешения, которые в будущем вы возможно захотите пересмотреть

Запрос разрешения на чтение и запись личных данных. Если вы хотите, чтобы пользователи не переживали за свои личные данные, то не используйте в манифесте подобные запросы:






Разрешения, связанные с финансовыми расходами. Некоторые разрешения, бездумно предоставленные пользователями, могут стоить им денег. Чаще всего это отправка SMS/MMS и совершение голосовых вызовов. Причём происходить это может в фоновом режиме, без вызова стандартного телефонного приложения.
Запрос на отправку сообщений:

Запрос на совершение звонков:

Простой пример отправки SMS:

String message = "Hello Android fans! "; String number = "xxxxxxxxxxxx"; //it is preferable to use a complete international number SmsManager.getDefault().sendTextMessage(number, null, message, null, null);
Обратите внимание, что данный код будет работать только в том случае, если соответствующий запрос содержится в файле манифеста:

Доступ к данным геолокации. Если пользователь разрешит, то приложение в любое время сможет получать информацию о:

  • примерном местоположении пользователя согласно данным базовых станций и точек Wi-Fi;
  • точном местоположении пользователя согласно данным GPS, базовых станций и Wi-Fi.
Запрос доступа к данным о примерном местоположении:

Запрос доступа к данным о точном местоположении:

Вот как осуществляется получение данных о точном местоположении:

Public class MainActivity extends Activity implements LocationListener { private LocationManager locationManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 10, this); } @Override public void onLocationChanged(Location location) { String myLocation ="Location changed...\n\nYou are located at: " + "\nLatitude: " + location.getLatitude() + "\nLongitude: " + location.getLongitude(); Toast.makeText(getApplicationContext(), myLocation, Toast.LENGTH_LONG).show(); } @Override public void onProviderDisabled(String provider) { Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(intent); Toast.makeText(getApplicationContext(), "Gps is turned off... ", Toast.LENGTH_SHORT).show(); } @Override public void onProviderEnabled(String provider) { Toast.makeText(getApplicationContext(), "Gps is turned on... ", Toast.LENGTH_SHORT).show(); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } }
Не забывайте, что работоспособность данного кода зависит от наличия соответствующего запроса в файле манифеста.

Java-класс MainActivity внедряет LocationListener для получения нужных данных от устройства. Запрос текущего местоположения осуществляется вызовом requestLocationUpdates() в методе onCreate() . Когда местоположение изменяется, то для получения новых данных вызывается onLocationChanged() . Если GPS-данные недоступны, то вызывается метод onProviderDisabled(), передающий приложению информацию о местоположении.

Доступ к аудио- и видео. Если пользователь даёт такие разрешения, то он рискует тем, что его будут прослушивать или использовать камеру смартфона для слежки. Запросы доступа в файле манифеста:




Установка пакетов. Если дать такое разрешение, то приложение сможет устанавливать дополнительные пакеты без ведома пользователя.

Остановка фоновых процессов. Данное разрешение позволяет приложению вызывать killBackgroundProcesses(String), с чьей помощью оно может останавливать любые выполняющиеся в фоновом режиме процессы.

Android Marshmallow

В шестой версии Android, анонсированной в мае 2015 года, реализован новый механизм разрешений. Теперь они будут запрашиваться не во время установки приложения, а при первой попытке использования какой-либо функции. Будем надеяться, что это существенно облегчит жизнь как разработчикам, так и пользователям.

Попытка сохранить новую информацию на микро cd закончится неудачей, если на нем стоит защита от записи. Причины появления сообщения об отказе доступа могут быть разные. Снять защиту с microSD можно несколькими методами – программными и физическими. Рассмотрим самые актуальные.

Разблокирование microSD

Расположите карту памяти на плоской поверхности или на ладони так, чтобы этикетка была сверху. Слевой стороны корпуса карты вверху найдите маленький рычажок переключения блокировки – кнопка Lock. «Локер» служит для защиты информации от случайного стирания. Рычажок может быть плоским и лишь слегка выступать из корпуса, быть белого или серебристого цвета. Такой переключатель отсутствует непосредственно на microSD. Вставьте карту в адаптер и найдите переключатель Lock на самом адаптере. Передвиньте его до упора в противоположном направлении.

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

Избежать автоматической блокировки записи на microSD можно удалив ее контакт с кнопкой Lock на корпусе адаптера. На левом боку микро-флешки найдите небольшую выемку, запаяйте ее пластмассой или заклейте скотчем. Выполнять пайку надо очень аккуратно. Вариант со скотчем проще, но он может цепляться при вводе карты в адаптер.

Изменение свойств диска

Если защита карты памяти не позволяет скопировать информацию на другой диск, а сохранить ее необходимо, то попробуйте снять защиту следующим образом. Присоедините микро cd к компьютеру, найдите его имя в списке устройств и кликните по нему правой кнопкой мыши. В меню выберите строку «Свойства», затем вкладку «Доступ». В следующем окне есть «Расширенная настройка», откройте ее и поставьте галочку в строке «Открыть общий доступ», подтвердите настройки – «Ок».

Форматирование карты памяти microSD

Иногда для снятия защиты с карты памяти рекомендуется ее форматирование, если «локер» отсутствует или не помог. Важную информацию сохраните на другой диск, т.к. она будет полностью удалена. Программным способом можно снять блокировку от записи на карту при помощи Windows.

Установите карту памяти microSD на персональный компьютер через специальный адаптер напрямую или через картридер. На современных ноутбуках такой разъем уже предусмотрен, он обычно обозначен значком «карта» и выглядит как узкая щель. Операционная система распознает диск, и его имя отобразится в списке устройств компьютера.

Кликните правой кнопкой мыши на значке диска CD и в развернутом меню выберите строку «Форматировать …». Файловую систему поставьте ту, которую поддерживает ваше устройство, обычно – NTFS. Нажмите «Начать». Вся информация с диска теперь удалена, и статус защиты снят.


Изменение файловой системы

При записи на карту памяти файла объемом более 4 Гб окошко с уведомлением об ошибке может возникнуть из-за ограничений файловой системы. Если карта памяти отформатирована с системой FAT32, то размер файла входит в число ее ограничений для записи данных. Следует изменить файловую систему на NTFS, так как описано в 3 пункте.


Программные средства для microSD

Сбросить защиту от записи на диске можно программными средствами, не удаляя информацию. Для этого существуют различные скрипты и утилиты, например – reset.zip. Скачивая программное обеспечение из сети, следует быть осторожными – оно может содержать вирусы. Лучше воспользоваться для снятия защиты проверенными приложениями. Низкоуровневое форматирование диска утилитой Hard Disk Low Level Format Tool стирает все данные, но поможет восстановить даже безнадежные флешки, которые не прошли форматирование внутренними средствами Windows.

Снятие защиты microSD через мобильное устройство

Современные мобильные девайсы: плееры, КПК, телефоны, фотоаппараты обладают функцией форматирования microSD. Попробуйте через настройки найти эту опцию и отформатировать флешку прямо на данном устройстве. Защита памяти могла быть программно установлена в аппарате для обеспечения конфиденциальности данных. Снять защиту можно также в настройках. Все разновидности электронных устройств имеют свои особенности, поэтому в случае затруднений ознакомьтесь с инструкцией гаджета или получите разъяснение в сервисном центре у специалиста.

Используйте с картой microSD только «родной» адаптер. С другим адаптером, даже если удалось провести форматирование на телефоне, записать информацию на диск, скорее всего не получится.

В Android есть очень хороший защитный механизм - система разрешений для приложений. По сути, это набор действий, которые система разрешает приложению выполнять. Дело в том, что по умолчанию все приложения в Android работают в изолированной среде - так называемой «песочнице». И для того чтобы сделать что-либо с чем-то, так сказать, общественным, им надо получить разрешение.

Разрешения эти разделены на несколько категорий, но нас интересуют только две из них - «Обычные» и «Опасные». В группу «Обычные» входят такие вещи, как доступ в Интернет, создание ярлыков, подключение по Bluetooth и так далее. Эти разрешения выдаются приложениям без обязательного согласия пользователя, то есть система вас ни о чем не спрашивает.

А вот для того, чтобы получить одно из «опасных» разрешений, приложение обязательно должно спросить владельца устройства, согласен ли он его выдать. Чем же опасны «опасные» разрешения и стоит ли выдавать их приложениям? Давайте разберемся.

Опасные разрешения

В категорию «Опасные» входят девять групп разрешений, которые так или иначе связаны с безопасностью данных пользователя. В свою очередь, каждая из групп содержит несколько разрешений, которые может запрашивать приложение.

Если одно из разрешений в данной группе пользователь уже одобрил, все остальные разрешения из той же группы приложение получит автоматически - без нового запроса пользователю. Например, если приложение уже успело запросить и получить разрешение на чтение SMS, то впоследствии оно автоматически получит разрешение и на отправку SMS, и на прием MMS, и на все остальные разрешения из данной группы.

Календарь

  • Просмотр событий в календаре (READ_CALENDAR).
  • Изменение уже имеющихся в календаре событий и добавление новых (WRITE_CALENDAR).

Чем опасно: Если вы активно пользуетесь электронным ежедневником, то доступ к нему позволит узнать все о том, чем вы занимались в прошлом, занимаетесь сегодня и собираетесь заниматься в будущем, - настоящая находка для шпиона. Также какое-нибудь криво написанное приложение может нечаянно стереть важные встречи из календаря.

Камера

Чем опасно: Позволяет приложению следить за всеми вашими перемещениями. Например, жулики могут узнать, что вы уехали в отпуск, и попробовать наведаться к вам домой.

Микрофон

  • Запись звука с микрофона (RECORD_AUDIO).

Чем опасно: Приложение сможет вести аудиозапись всего, что происходит рядом со смартфоном. Всех ваших разговоров. Не только по телефону.

Телефон

  • Чтение состояния телефона (READ_PHONE_STATE), в том числе вашего телефонного номера, данных сотовой сети, статуса исходящих звонков и так далее.
  • Совершение звонков (CALL_PHONE).
  • Чтение списка вызовов (READ_CALL_LOG).
  • Изменение списка вызовов (WRITE_CALL_LOG).
  • Добавление голосовой почты (ADD_VOICEMAIL).
  • Использование IP-телефонии (USE_SIP).
  • Управление исходящими звонками (PROCESS_OUTGOING_CALLS), в том числе просмотр номера, на который вы в данный момент звоните, возможность завершить звонок или переадресовать его на другой номер.

Чем опасно: Выдавая приложению разрешение данной группы, вы позволяете ему совершать практически любые действия, которые касаются голосовой связи. Приложение сможет узнать, когда и кому вы звонили. Или позвонить куда угодно за ваш счет, в том числе на «очень платные» номера.

Сенсоры

  • Доступ к данным от датчиков состояния здоровья (BODY_SENSORS), таким как пульсомер.

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

SMS

  • Отправка SMS (SEND_SMS).
  • Просмотр SMS в памяти смартфона (READ_SMS).
  • Прием SMS (RECEIVE_SMS).
  • Прием WAP push-сообщений (RECEIVE_WAP_PUSH).
  • Прием входящих MMS (RECEIVE_MMS).

Чем опасно: Позволяет приложению получать и читать все ваши текстовые сообщения. А также отправлять SMS (разумеется, за ваш счет) - например, чтобы подписать вас на какую-нибудь платную «услугу».

Память

  • Чтение из памяти или карты памяти (READ_EXTERNAL_STORAGE).
  • Запись в память или на карту памяти (WRITE_EXTERNAL_STORAGE).

Чем опасно: Предоставляет приложению возможность читать, изменять и удалять любые ваши файлы, хранящиеся в памяти смартфона.

Как настроить разрешения приложений

Стоит внимательно относиться к запрашиваемым приложением разрешениям. Если игра или приложение для обработки фотографий запрашивают доступ к вашему текущему местоположению, это, скорее всего, ненормально - таким приложениям данная информация ни к чему. А вот навигационному приложению GPS действительно нужен - но, в свою очередь, совершенно незачем давать ему доступ к контактам или SMS, например.

Если права, которые запрашивает приложение, выглядят слишком подозрительно, лучше такое приложение вовсе не устанавливать

В случае если права, которые запрашивает приложение, выглядят слишком подозрительно, лучше такое приложение вовсе не устанавливать. Или можно просто не разрешить ему доступ к тем функциям и данным, которыми вы не хотите делиться.

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

Кроме того, список выданных разрешений можно в любой момент проверить и изменить в настройках операционной системы. Чтобы это сделать, перейдите в Настройки -> Приложения .

Во-вторых, можно посмотреть на полный список приложений, которые запрашивали или могут запросить одно из «опасных» разрешений. Например, узнать, какие приложения были бы не прочь запросить у вас доступ к контактам и каким он уже разрешен, а также запретить это тем из них, которым вы не доверяете. Для этого нажмите на шестеренку в правом верхнем углу и выберите пункт Разрешения приложений .

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

Особые права

Помимо разрешений, которые входят в категорию «Опасные», в Android есть еще несколько прав приложений, о которых стоит знать. Если какое-либо приложение запрашивает такие права, это повод как следует задуматься и проверить, не попался ли вам троянец.

Специальные возможности (Accessibility)

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

Обладая этими правами, троянцы могут перехватывать данные из других приложений, в том числе вводимый пользователем текст. Кроме того, используя эти возможности, зловреды могут даже покупать приложения в Google Play Store.

Приложение для работы с SMS по умолчанию

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

Права на отображение своего окна поверх других приложений

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

Права администратора устройства

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

Права суперпользователя

Это самые опасные права. В штатном режиме получение приложением таких прав в Android не предусмотрено, но некоторые троянцы умеют сами получать права суперпользователя, эксплуатируя уязвимости в системе. Самое неприятное, что наличие у приложения прав суперпользователя обесценивает все остальные защитные механизмы: воспользовавшись этими правами, зловред может совершить любое действие в системе, вне зависимости от того, какие ему выданы разрешения.

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

Заключение

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

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

Однако слепо раздавать разрешения нельзя даже тем приложениям, которым вы доверяете. Просто перед тем, как дать эти разрешения, подумайте, действительно ли они нужны данному конкретному приложению.

Такая бдительность, правда, не защищает от того, что какой-нибудь зловред получит права сам через уязвимости в системе. Поэтому важно не только правильно настроить разрешения для сравнительно «мирных» приложений, охотящихся за вашими личными данными, но и иметь средство для обнаружения гораздо более опасных «буйных» зловредов - не забудьте установить на ваше Android-устройство надежный антивирус.