доступ к хранилищу на андроид что это такое
Где приложения хранят свои данные
Андрей Подкин
При использовании приложений под Android иногда появляются вопросы: «А где приложение хранит созданные файлы?», «Можно ли до них достучаться?» и «Удалятся ли файлы при удалении приложения?» Давайте попробуем посмотреть, где же приложение может хранить свои данные и какие последствия это имеет для пользователя.
Внутреннее хранилище данных
Смысл следует непосредственно из названия. Внутреннее хранилище (internal storage) располагается всегда в памяти смартфона вне зависимости от того, есть ли возможность установки карты памяти (и тем более того, вставлена ли она). Эта область памяти является защищенной. Находится в системном разделе /data. По умолчанию все файлы, которые там располагаются, доступны только тому приложению, которое их создало. Разумеется, можно сделать файлы доступными для других приложений, но это надо делать специально. Если приложение не открывает файлы для доступа извне, достучаться к ним можно будет только получив root.
Назначение хранилища понятно: внутренние защищенные данные, к которым не должно быть нерегламентированного доступа. Проблемы (с точки зрения пользователя) могут быть в следующих случаях:
Пример: приложение «Лекции по истории России». В приложении хороший контент (и по содержанию, и по качеству звука). Но сохраняется он во внутреннюю память. На бюджетных устройствах, где этой памяти мало, становится затруднительным закачать заранее много лекций, а потом, отключившись от интернета, слушать их. Второй проблемой становится собственно регламент доступа к данным. Даже если ограничиться тематикой истории, у меня есть аудиофайлы, полученные из трех источников: данное приложение, подкасты и аудиоверсии роликов с youtube. Хочется взять и объединить навек в их земной юдоли под владычеством всесильным Властелина Мордора их все в единый плейлист, и слушать его одним аудиоплеером. Но на смартфоне без root это сделать невозможно.
Внешнее хранилище «личных» данных
С точки зрения разработчика, кроме внутреннего хранилища данных, для персональных целей приложения есть еще внешнее хранилище. Оно необязательно размещается на карте памяти. Это может быть и внутренняя память смартфона, но весь раздел с такими данными размещается в общем доступе. В корне раздела есть папка Android/data, а в ней — подпапки с именами пакетов приложений.
Плюсы такого подхода очевидны: данные доступны извне для целей пользователя. А если это карта памяти, то и емкость может быть ограничена только вашими финансами (в продаже уже можно найти карты памяти на 400 гигабайт). Минусы тоже понятны: в любой момент любое приложение (конечно, имеющее разрешение на доступ к «внешним» данным) может взять и стереть чужие файлы. Также файлы будут удалены системой при удалении приложения (или при очистке его данных).
Пример приложения: подкаст-менеджер BeyondPod (более-менее свежей версии, раньше файлы хранились по-другому). Пользователь имеет доступ к скачанным подкастам и может легко удалять их (например, в целях экономии места) или слушать их во внешнем плеере.
Общее внешнее хранилище
Располагается в корне «внешнего» раздела на одном уровне с папкой «Android». Предназначается для хранения данных, разделяемых между разными приложениями. Обычно в документации Google в качестве примера приводят картинки (фото с камеры — папка DCIM). Основная проблема данных файлов: они никогда не удаляются автоматически. Даже если приложение вы удалили.
Пример: мессенджер Telegram. После того, как вы удалили приложение, загруженные файлы никуда не исчезают. Они продолжают спокойно лежать на накопителе данных, занимая драгоценное место.
Как можно удалить файлы, не удаляя приложения
Здесь важно ввести еще одну классификацию файлов приложений. Она справедлива для внутреннего хранилища и для внешнего хранилища личных данных. Все данные делятся на два типа: собственно данные и кэш.
Данные (папка data) — некие файлы, которые, по логике Google, нужны для постоянной работы с ними. Если полностью их удалить, то приложение поведет себя точно так же, как если бы его переустановили (удалили и заново установили). Частичное удаление файлов может не привести ни к каким неприятным последствиям. Но важно понимать, какие конкретно данные вы удаляете (например, очевидно, что скачанные файлы подкастов можно удалять совершенно свободно — это не повлияет на работоспособность подкаст-менеджера).
Кэш — временные данные, которые сформированы в ходе работы приложения и нужны для ускорения этой работы. Например, данные, которые часто нужны в интернете, загружаются и в дальнейшем вместо загрузки открываются локально (разумеется, кэш может обновляться, чтобы не показывать устаревшие данные). Удалять кэш любого приложения можно совершенно спокойно, это штатная операция.
Очистка памяти и кэша вызывается из настроек приложения. Кнопка «Очистить кэш» очищает только кэш, а кнопка «Очистить данные» — и кэш, и данные приложения.
Удаление файлов приложения из общего внешнего хранилища выполняется только вручную. Более того, даже оценка того, от какого приложения эти файлы остались, тоже выполняется вручную.
Опасные разрешения для приложений на Android: как избежать риска
При установке и первом запуске приложения, как правило, запрашивают разрешение на доступ к самым разным функциям и данным: к SMS, списку контактов, календарю, другим компонентам устройства. Как понять, какие из них нужны программе для работы, а какие — излишни и вполне могут быть уловкой мошенников? Давайте разбираться.
Некоторые сомнительные приложения будут обнаруживаться на вашем Android-смартфоне автоматически, если вы воспользуетесь хотя бы бесплатной антивирусной программой.
Безопаснее всего приложения от крупных известных компаний, таких, например, как Google, МТС, «Яндекс» и др. — они вряд ли будут рисковать репутацией и подсовывать потребителю сомнительный продукт.
С приложениями же от небольших и неизвестных поставщиков нужно быть настороже и очень хорошо подумать, прежде чем разрешить, к примеру, игре доступ к вашим SMS. Исходя из обычной логики, для работы ей такая информация совсем не нужна и потребность в ней выглядит подозрительно.
Попробуем разобраться, какие разрешения и для чего бывают необходимы Android-приложениям.
Разрешение на отправку, приём и просмотр текстовых и мультимедийных сообщений.
Риски: Приложение сможет подписать вас на платную рассылку или услугу, отправлять спам и читать переписку, в том числе сообщения из финансовых учреждений с разовыми кодами для подтверждения входа в интернет-банк или транзакций.
Рекомендации: Доступ к сообщениям обоснованно запрашивают клиенты соцсети, мессенджеры и другие приложения, в которых требуется подтверждение права доступа через SMS. Если по логике работы программы не понятно, зачем ей нужна возможность читать сообщения, постарайтесь выяснить это в открытых источниках. Если убедительной информации на данный счет найти не удастся, от установки такого приложения лучше отказаться.
Камера
Разрешение на работу с камерой, позволяющее делать фотоснимки и записывать видео.
Риски: Приложение сможет снимать фото и записывать видеоролики без предупреждения и согласия пользователя.
Рекомендации: Подумайте, действительно ли приложению нужен доступ к фото- и видеосъёмке. Это так, если вы пытаетесь установить клиента соцсети (например, «Инстаграм»), где выкладка фото — обычное явление. Аналогично со списком покупок, в котором можно фотографировать продукты в супермаркете. Но если это игра вроде «5 в ряд», запрос на работу с камерой выглядит подозрительно.
Чтобы обезопасить себя, загружайте приложения только из проверенного источника — в Android это официальный магазин контента Google Play. Даже если окажетесь на сайте разработчика ПО, поищите ссылку именно на магазин, а не скачивайте напрямую — уже одно это существенно снизит риски.
Контакты
Разрешение на чтение адресной книги, изменение и добавление контактов.
Риски: Приложение сможет свободно читать содержимое вашей адресной книги и отправлять его на сторонние серверы. Помимо безобидных программ подобной информацией интересуются приложения, которые собирают базы данных для рассылки спама.
Рекомендации: Доступ к контактам оправдан, если программа предусматривает обмен информацией с контактами из вашего списка — например, как у клиентов соцсетей и мессенджеров. Неочевидная потребность в таком разрешении должна заставить вас сомневаться.
Календарь
Разрешение на просмотр событий календаря, редактирование и создание новых событий.
Риски: Если вы пользуетесь инструментами планирования, приложение получит доступ к прошедшим и будущим мероприятиям, в которых вы принимаете участие, а также может случайно удалить из календаря важную встречу.
Рекомендации: Внимательно присмотритесь к функциональности приложения. Если оно связано с инструментами планирования (например, приложение для составления списка желаний к праздникам или облачный сервис для управления проектами типа Trello), доступ к календарю можно разрешить. Но странно, если о таких правах просит, например, фонарик или диктофон.
Телефон
Разрешение на сканирование журнала вызова.
Риски: Некоторые вредоносные программы используют это разрешение для кражи журналов вызовов, в которых часто содержится дополнительная информация об абонентах: место работы, должность, адрес. Также приложение с таким доступом может записывать разговоры и перехватывать финансовую информацию — в некоторых банках голосовые роботы диктуют коды подтверждения для транзакций.
Рекомендации: Проанализируйте, какие сведения из телефонной книги могут на самом деле потребоваться приложению, изучите отзывы других пользователей перед установкой. Запрашивать доступ к телефону по веской причине могут мессенджеры, банковские приложения и те, в которых перед использованием необходимо проходить идентификацию.
Если не давать разрешений, которые вызывают у вас сомнения, приложение может работать некорректно или вообще отказаться это делать. В таких случаях нужно расставить приоритеты: вам важнее установить конкретную программу или обезопасить свои данные? Попытайтесь найти альтернативу в том же Google Play — возможно, другое, похожее приложение запросит меньше разрешений.
Системные инструменты
Разрешение на запуск программы при загрузке, изменение состояния подключения к сети и предотвращение перехода в режим ожидания.
Риски: Приложение может в фоновом режиме и без участия пользователя запускать вредоносный код.
Рекомендации: Изучите возможности приложения перед установкой, а также воспользуйтесь сертифицированным мобильным ПО для безопасности, которое блокирует вредоносные программы.
Память
Разрешение на изменение или удаление содержимого карты памяти.
Риски: Приложение получает право читать, записывать, перезаписывать и удалять информацию на карте, чем пользуются похитители данных.
Рекомендации: Убедитесь, что приложение связано с созданием или изменением данных и эту функцию можно логично объяснить (как, например, в случае с графическими редакторами). Проверьте, не запрашивает ли приложение другие, необязательные на первый взгляд разрешения. Если их много, это повод задуматься и изучить репутацию разработчика.
Местоположение
Разрешение на доступ к данным о геолокации устройства на основе информации о базовых станциях сотовой сети, точках доступа а также GPS и ГЛОНАСС.
Риски: Эти сведения приложения могут использовать для совершения реальных преступлений — например, физического преследования. Также разрешение позволяет отправлять пользователю спам или вредоносные программы с учётом его региона.
Рекомендации: Подумайте, насколько обоснованно приложение будет получать сведения о вашем местонахождении. Это оправданно для картографических сервисов, навигационных приложений и клиентов торговых сетей, у которых в зависимости от региона отличаются условия доставки и графики работы магазинов. Будильнику и калькулятору такая информация совсем не нужна.
Микрофон
Разрешение на запись звука с микрофона.
Риски: Приложение сможет записывать все звуки рядом с мобильным устройством, включая разговоры по телефону.
Рекомендации: Разрешайте работу с микрофоном тем программам, в которых поддерживается голосовая связь: мессенджерам и клиентам соцсетей, а также играм, где предполагается голосовое общение в чате.
Нательные датчики
Доступ к данным от датчиков состояния здоровья — чаще всего пульсометру.
Риски: Приложение сможет отслеживать изменения здоровья пользователя.
Рекомендации: Узнайте больше о разработчиках, уточните, связаны ли они с медициной. Страховые компании используют подобные приложения, чтобы оценивать стоимость страховки. Также доступ к датчикам может быть у сервисов, работающих с фитнес-браслетами.
Где посмотреть разрешения для уже установленных Android-приложений
Если вы давно пользуетесь смартфоном, но ранее не задумывались о том, на что и каким программам дали права, просмотреть разрешения и отменить их можно в любой момент. Для этого войдите в «Настройки», найдите в них «Приложения» и перейдите в «Разрешения приложений».
Вы увидите список разрешений и узнаете, для каких приложений они одобрены. Например, в пункте «Камера» перечислены все приложения, которые имеют к ней доступ.
Открывайте приложение, если хотите изменить статус его разрешений по каждому отдельному компоненту:
В любой момент разрешение можно отозвать — ровно до тех пор, пока оно не понадобится снова. В некоторых случаях программа без разрешения не запустится, в других могут перестать работать отдельные функции. Скажем, картографическое приложение без доступа к вашему местоположению сможет показать вам карту, но подсказать, где вы и как вам добраться до нужного места — нет.
Некоторые сомнительные приложения будут обнаруживаться на вашем Android-смартфоне автоматически, если вы воспользуетесь хотя бы бесплатной антивирусной программой.
Разрешения приложений в Android 6 и выше
Объясняем, что значат те или иные разрешения приложений в Android 6 и выше — и стоит ли выдавать их приложениям.
Обновлено 28.09.2018: В Android 8 (Oreo) разрешения приложений устроены иначе, в том числе добавилась отдельная группа разрешений «Специальный доступ». Подробнее об этом читайте в посте «Разрешения приложений в Android 8».
В Android есть очень хороший защитный механизм — система разрешений для приложений. По сути, это набор действий, которые система разрешает приложению выполнять. Дело в том, что по умолчанию все приложения в Android работают в изолированной среде — так называемой «песочнице». И для того чтобы сделать что-либо с чем-то, так сказать, общественным, им надо получить разрешение.
Разрешения эти разделены на несколько категорий, но нас интересуют только две из них — «Обычные» и «Опасные». В группу «Обычные» входят такие вещи, как доступ в Интернет, создание ярлыков, подключение по Bluetooth и так далее. Эти разрешения выдаются приложениям без обязательного согласия пользователя, то есть система вас ни о чем не спрашивает.
А вот для того, чтобы получить одно из «опасных» разрешений, приложение обязательно должно спросить владельца устройства, согласен ли он его выдать. Чем же опасны «опасные» разрешения и стоит ли выдавать их приложениям? Давайте разберемся.
Опасные разрешения
В категорию «Опасные» входят девять групп разрешений, которые так или иначе связаны с безопасностью данных пользователя. В свою очередь, каждая из групп содержит несколько разрешений, которые может запрашивать приложение.
Если одно из разрешений в данной группе пользователь уже одобрил, все остальные разрешения из той же группы приложение получит автоматически — без нового запроса пользователю. Например, если приложение уже успело запросить и получить разрешение на чтение SMS, то впоследствии оно автоматически получит разрешение и на отправку SMS, и на прием MMS, и на все остальные разрешения из данной группы.
Календарь
Чем опасно: Если вы активно пользуетесь электронным ежедневником, то доступ к нему позволит узнать все о том, чем вы занимались в прошлом, занимаетесь сегодня и собираетесь заниматься в будущем, — настоящая находка для шпиона. Также какое-нибудь криво написанное приложение может нечаянно стереть важные встречи из календаря.
Камера
Чем опасно: Приложение сможет в любой момент сделать фото или записать видео, не предупреждая вас об этом.
Контакты
Чем опасно: Позволяет приложению заполучить всю вашу адресную книгу — этим данным будут очень рады спамеры и мошенники. Также разрешает доступ к списку всех учетных записей, с помощью которых вы входите в приложения на данном устройстве, — Google, «Яндекс», Facebook, «ВКонтакте» и так далее.
Местоположение
Чем опасно: Позволяет приложению следить за всеми вашими перемещениями. Например, жулики могут узнать, что вы уехали в отпуск, и попробовать наведаться к вам домой.
Микрофон
Чем опасно: Приложение сможет вести аудиозапись всего, что происходит рядом со смартфоном. Всех ваших разговоров. Не только по телефону.
Телефон
Чем опасно: Выдавая приложению разрешение данной группы, вы позволяете ему совершать практически любые действия, которые касаются голосовой связи. Приложение сможет узнать, когда и кому вы звонили. Или позвонить куда угодно за ваш счет, в том числе на «очень платные» номера.
Сенсоры
Чем опасно: Разрешает приложению следить за тем, что происходит с вашим телом, используя информацию от датчиков соответствующей категории, если они у вас есть и вы ими пользуетесь (встроенные в смартфон датчики движения не входят в эту категорию).
Чем опасно: Позволяет приложению получать и читать все ваши текстовые сообщения. А также отправлять SMS (разумеется, за ваш счет) — например, чтобы подписать вас на какую-нибудь платную «услугу».
Память
Чем опасно: Предоставляет приложению возможность читать, изменять и удалять любые ваши файлы, хранящиеся в памяти смартфона.
Как настроить разрешения приложений
Стоит внимательно относиться к запрашиваемым приложением разрешениям. Если игра или приложение для обработки фотографий запрашивают доступ к вашему текущему местоположению, это, скорее всего, ненормально — таким приложениям данная информация ни к чему. А вот навигационному приложению GPS действительно нужен — но, в свою очередь, совершенно незачем давать ему доступ к контактам или SMS, например.
В случае если права, которые запрашивает приложение, выглядят слишком подозрительно, лучше такое приложение вовсе не устанавливать. Или можно просто не разрешить ему доступ к тем функциям и данным, которыми вы не хотите делиться.
В Android версии 6 и новее приложения выводят запрос пользователю в тот момент, когда им требуется то или иное из «опасных» разрешений. Если вы не согласны разрешать приложению доступ, то вы можете просто нажать кнопку «Отклонить». Правда, в том случае, если приложение действительно нуждается в том или ином разрешении, могут возникнуть ошибки в его работе.
Запрос приложением разрешений на работу со звонками на устройстве Android 6.0.1
Кроме того, список выданных разрешений можно в любой момент проверить и изменить в настройках операционной системы. Чтобы это сделать, перейдите в Настройки —> Приложения.
Дальше есть два варианта. Во-первых, можно посмотреть все разрешения, выданные конкретному приложению: для этого нажмите на название интересующего вас приложения и выберите пункт Разрешения.
Во-вторых, можно посмотреть на полный список приложений, которые запрашивали или могут запросить одно из «опасных» разрешений. Например, узнать, какие приложения были бы не прочь запросить у вас доступ к контактам и каким он уже разрешен, а также запретить это тем из них, которым вы не доверяете. Для этого нажмите на шестеренку в правом верхнем углу и выберите пункт Разрешения приложений.
Таким образом, приложению, чтобы, например, отправить SMS, необходимо будет спросить у пользователя один раз разрешение, после чего пользователь сможет в любой момент отказать приложению в этом праве, просто передвинув кружок в настройках.
Особые права
Помимо разрешений, которые входят в категорию «Опасные», в Android есть еще несколько прав приложений, о которых стоит знать. Если какое-либо приложение запрашивает такие права, это повод как следует задуматься и проверить, не попался ли вам троянец.
Специальные возможности (Accessibility)
Наличие этих прав в приложении позволяет ему упростить использование приложения или устройства для пользователей с ограничениями, такими как слабое зрение или проблемы со слухом. Но в то же время система Android устроена таким образом, что тот же набор возможностей оказывается очень удобным инструментом для вредоносных приложений.
Обладая этими правами, троянцы могут перехватывать данные из других приложений, в том числе вводимый пользователем текст. Кроме того, используя эти возможности, зловреды могут даже покупать приложения в Google Play Store.
Приложение для работы с SMS по умолчанию
Многие троянцы пытаются стать приложением для работы с SMS по умолчанию, ведь это позволяет им не только читать SMS, но и скрывать их от пользователя, даже в современных версиях Android. Например, это может понадобиться троянцам для того, чтобы перехватывать одноразовые коды для подтверждения банковских транзакций.
Права на отображение своего окна поверх других приложений
Обладая этими правами, троянцы могут показывать свои фишинговые окна поверх других приложений, например мобильных банков или социальных сетей. Вам кажется, что вы вводите свои логин и пароль в окно настоящего приложения — а на самом деле это происходит в фальшивом окне, созданном троянцем, и данные учетной записи утекают к злоумышленникам.
Права администратора устройства
Обладая этими правами, приложение может среди прочего сменить пароль, заблокировать камеру или даже удалить все данные с устройства. Многие троянцы запрашивают эти права, так как приложение, которое является администратором устройства, гораздо сложнее удалить.
Примеры запроса приложением прав администратора
Права суперпользователя
Это самые опасные права. В штатном режиме получение приложением таких прав в Android не предусмотрено, но некоторые троянцы умеют сами получать права суперпользователя, эксплуатируя уязвимости в системе. Самое неприятное, что наличие у приложения прав суперпользователя обесценивает все остальные защитные механизмы: воспользовавшись этими правами, зловред может совершить любое действие в системе, вне зависимости от того, какие ему выданы разрешения.
Стоит отметить, что даже новая система работы с разрешениями, появившаяся в Android 6, не защищает от зловредов, она лишь предоставляет пользователю возможность предотвратить потерю данных или денег. Например, троянец Gugi настойчиво запрашивает у пользователя права на перекрытие других приложений, обосновывая это необходимостью работы с окнами. Получив же эти права, троянец блокирует работу устройства своим окном до тех пор, пока не получит все остальные необходимые ему права.
Заключение
Не всем приложениям стоит разрешать делать на смартфоне все, что они хотят. А некоторые разрешения лучше вообще не давать — благо Android 6 и новее это позволяет.
Тем не менее бывают такие приложения, которым действительно нужно очень много разных прав. Например, антивирусным программам, чтобы нормально работать, иметь возможность сканировать систему и проактивно защищать от угроз, требуется не только разрешение на доступ к файлам, но и еще много чего.
Однако слепо раздавать разрешения нельзя даже тем приложениям, которым вы доверяете. Просто перед тем, как дать эти разрешения, подумайте, действительно ли они нужны данному конкретному приложению.
Эту статью стоит открыть хотя бы ради иллюстрации. Кажется, это лучшая картинка вообще из всех, что мы делали: https://t.co/MGBp2oS4kg pic.twitter.com/X0zyEYhIM9
Такая бдительность, правда, не защищает от того, что какой-нибудь зловред получит права сам через уязвимости в системе. Поэтому важно не только правильно настроить разрешения для сравнительно «мирных» приложений, охотящихся за вашими личными данными, но и иметь средство для обнаружения гораздо более опасных «буйных» зловредов — не забудьте установить на ваше Android-устройство надежный антивирус.
Обновлено 28.09.2018: В Android 8 (Oreo) разрешения приложений устроены иначе, в том числе добавилась отдельная группа разрешений «Специальный доступ». Подробнее об этом читайте в посте «Разрешения приложений в Android 8».