В своём неудержимом росте Android побила все рекорды. Из робкого эксперимента ещё семь лет назад, она превратилась в самую популярную операционную систему: более миллиарда установленных копий, свыше миллиона приложений, широкий спектр поддерживаемых устройств, охватывающий и «умные» часы и ноутбуки. А благодарить за успех следует в том числе либеральные принципы, в соответствии с которыми платформа построена. Это свободный код, доставшийся от Linux. Это сравнительно большая свобода действий для разработчиков и партнёров, которых не ограничивают условиями что писать, как писать, в какой комплектации поставлять. И, конечно, современная система обеспечения безопасности: приложения работают внутри «песочницы» и имеют доступ только к тем системным ресурсам, разрешение на доступ к которым дал лично пользователь.
Проблема в том, что те же самые принципы, которые обеспечили Android взрывную экспансию — позволив обойти Windows Mobile и iOS — становятся теперь, когда платформа выросла, головной болью. О фрагментированности Android сказано много, но за последние год-два нарисовалась болячка едва ли не более серьёзная. Те самые разрешения.
С чисто технической точки зрения, концепция разрешений проста, элегантна и эффективна. Перед установкой нового приложения, пользователь читает список прав, в которых нуждается программа, и либо отказывает ей, после чего инсталляция прерывается, либо соглашается предоставить их в полном объёме — и тогда программа успешно устанавливается на устройство. Такая схема проще, вежливей и демократичней используемой главным конкурентом (в iOS каждое приложение подвергается жёсткой предварительной проверке, граничащей с цензурой, зато пользователя ни о чём не спрашивают). Однако есть и человеческий фактор…
Всякая платформа, пересёкшая воображаемую черту признания, становится желанной целью для злоумышленников. Android в этом смысле не исключение и даже больше того — она гораздо более привлекательна для криминальных кругов, чем были в своё время MS-DOS и MS Windows: ведь она управляет мобильным устройством, которое сопровождает пользователя всегда и везде, а потому способно генерировать более ценный поток данных. Антивирусные вендоры пытаются привлечь внимание к экспоненциальному росту вредоносного софта для Android, и хоть Google оспаривает их претензии, настаивая на небеспристрастности (разработчики антивирусов, естественно, кормятся с продажи антивирусов), проблема налицо и проблема эта состоит в неспособности пользователя контролировать приложения в Android.
В самом деле, после того, как программе дано «добро» на доступ к некоторым системным ресурсам (камере, сетевому интерфейсу, GPS и пр.), пользователю остаётся лишь слепо верить, что программа не будет использовать предоставленные ей полномочия во вред. Но насколько обоснована эта вера? Современные приложения ведь не гнушаются требовать всех мыслимых разрешений, из-за чего список получается таким длинным, что его непросто даже пробежать глазами. Между тем буквально каждый пункт можно обернуть против пользователя: через камеру вести тайную съёмку, из списка контактов красть чужие адреса, рассылать SMS на платные номера и т.д. и т.п.
До последнего времени лучшим способом избежать проблем с малварью под Android был предложенный Google рецепт: избегайте «левых» апп-сторов. Однако на прошлой неделе появились данные, выставляющие ситуацию в новом свете. Касаются они, правда, лишь одного аспекта системы разрешений, а именно права на доступ к Сети, но это немало — ведь выхода в интернет, в конце концов, требует практически любое вредоносное приложение. Так вот о чём речь: группа французских исследователей, специализирующихся на информационной безопасности, поставила простой опыт. Они взяли средненький Android-смартфон, подключили его к интернету и стали наблюдать, к каким узлам он обращается в процессе установки и использования различных приложений (была проверена сотня самых новых и сотня самых популярных аппов в каждой из 25 категорий магазина Google Play). Результат, кажется, удивил даже авторов эксперимента.
Оказалось, что приложения из официального апп-стора Google ведут весьма активную «половую жизнь»: они устанавливают связи с десятками и сотнями интернет-узлов, о чём пользователь не подозревает и не уведомляется. Каждое десятое приложение коннектится более чем с 500 узлами, а многие — с ещё большим количеством, вплоть до двух тысяч. Чаще всего приложения обращаются к сайтам, связанным с рекламой (в том числе принадлежащим Google), что, в принципе, ещё можно понять и простить: фримиальная модель рулит мобильной вселенной, а рекламу нужно откуда-то получать.
Но засветились в списке и интернет-узлы, помогающие следить за пользователем: очень многие приложения (в том числе и от разработчиков, пользующихся доверием публики) не брезгуют такой активностью. Наконец, нашлись и приложения, устанавливающие соединение с адресами, ассоциированными с очевидно вредоносным контентом. Естественно, пользователь ничего обо всём этом не знает: его спросили, может ли приложение пользоваться интернетом, он ответил утвердительно. В лучшем случае он заметит некоторую медлительность смартфона и домашнего интернета, в худшем не заметит ничего вообще.
Французы, видя проблему, предлагают решение: они готовят к релизу приложение с говорящим названием «NSA», которое позволит индивидуально инспектировать сетевую активность любой Android-программы. Однако решение это не универсальное, не оригинальное и вряд ли эффективное. Google ведь тоже в курсе происходящего и давно практикует аналогичные методы. За последние годы в Android был встроен malware-сканер и функция App Ops для инспекции и поштучного включения/выключения разрешений для каждого установленного приложения. Но если сканер остался (сегодня прячется под функцией «Проверять приложения» во вкладке «Безопасность» системных настроек), то доступ к App Ops простому пользователю перекрыли — и поступили совершенно правильно, потому что у среднестатистического юзера не хватит ни знаний, ни опыта, чтобы пользоваться таким инструментом. Французское NSA проблему так же не исправит: кто-то, возможно, узнает с его помощью что-то полезное, но для большинства обладателей Android-устройств всё останется прежним.
Стоит ли надеяться, что полное решение вообще будет найдено? Нет, если вспомнить историю. Android явно превращается в третьего по счёту монарха цифрового мира — принимая правление у MS-DOS и Windows, которые страдали от той же болячки, да так и не излечились. Хуже того, задача контроля приложений в мобильной ОС ещё трудней, поскольку потребность в ресурсах часто нетривиальна и неочевидна. Нельзя просто так запретить программе обращаться к GPS, контактам, пользоваться сетью или камерой — потому что у всего этого есть и легальные применения: качать рекламу, хранить данные в «облаке», фотографировать пользователя на аватарку и пр. и пр.
Вероятно, систему разрешений можно сделать более информативной, понятной. Вероятно, можно всё-таки наделить пользователя правом по своему усмотрению выборочно ограничивать доступ приложений к ресурсам (нечто подобное уже было реализовано в Blackberry). Очевидно, стоит сделать более строгой проверку перед пропуском приложений в апп-стор. Но полное решение проблемы потребует модификации всей экосистемы Android. А до тех пор пользователю предстоит смириться и терпеть.
P.S. В статье использована иллюстрация Steve Emry.