Пользователь
0,0
рейтинг
1 декабря 2014 в 11:51

Большой Uber следит за тобой из песочницы

Эта статья полна лучей зла. Недавно я скачал себе Uber, и приложение понравилось мне всем, кроме того набора разрешений, которое попросило себе дать.

Список разрешений, которые нужны для работы приложения, можно узнать из файла «AndroidManifest.xml» внутри APK. Вначале мы видим только мусор:



Однако на помощь нам приходит утилита xml-apk-parser.



Теперь мы можем видеть список разрешений в явном виде:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION">
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">
</uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE">
</uses-permission>
<uses-permission android:name="android.permission.CAMERA">
</uses-permission>
<uses-permission android:name="android.permission.GET_ACCOUNTS">
</uses-permission>
<uses-permission android:name="android.permission.INTERNET">
</uses-permission>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS">
</uses-permission>
<uses-permission android:name="android.permission.READ_CONTACTS">
</uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE">
</uses-permission>
<uses-permission android:name="android.permission.USE_CREDENTIALS">
</uses-permission>
<uses-permission android:name="android.permission.VIBRATE">
</uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS">
</uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES">
</uses-permission>
<permission android:name="com.ubercab.permission.C2D_MESSAGE" android:protectionLevel="0x00000002">
</permission>
<permission android:name="com.ubercab.permission.NOTIFY_ACTION" android:protectionLevel="0x00000002">
</permission>
<uses-permission android:name="com.ubercab.permission.C2D_MESSAGE">
</uses-permission>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE">
</uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK">
</uses-permission>

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

public void run()
      {
        Looper.prepare();
        InAuthManager.getInstance().updateLogConfig(this.val$URL, this.val$acctGUID);
        InAuthManager.getInstance().sendAccountsLog(this.val$transID);
        InAuthManager.getInstance().sendAppActivityLog(this.val$transID);
        InAuthManager.getInstance().sendAppDataUsageLog(this.val$transID);
        InAuthManager.getInstance().sendAppInstallLog(this.val$transID);
        InAuthManager.getInstance().sendBatteryLog(this.val$transID);
        InAuthManager.getInstance().sendDeviceInfoLog(this.val$transID, true);
        InAuthManager.getInstance().sendGPSLog(this.val$transID, true);
        InAuthManager.getInstance().sendMMSLog(this.val$transID);
        InAuthManager.getInstance().sendNetDataLog(this.val$transID);
        InAuthManager.getInstance().sendPhoneCallLog(this.val$transID);
        InAuthManager.getInstance().sendSMSLog(this.val$transID);
        InAuthManager.getInstance().sendTelephonyInfoLog(this.val$transID, true);
        InAuthManager.getInstance().sendWifiConnectionLog(this.val$transID);
        InAuthManager.getInstance().sendWifiNeighborsLog(this.val$transID);
      }
    });

Куда все это отсылается? Зачем? Что-то я не припомню, чтобы давал кому-то в Uber разрешение читать мои SMS сообщения.

Кому интересно, может посмотреть код здесь. Особенно мне понравился метод hasHeartbleedVulnerability(). Зачем им это знать?

Идем дальше.



Видите? Stericson.RootTools

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

Я не делаю однозначных выводов. Возможно, я просто параноик. Будьте осторожны.

Via geronsec.com
@sain
карма
19,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (24)

  • +8
    Это проблема многих приложений подобных. Если взглянуть банковские приложения, к примеру, то там, порой, столько разрешений указывается, что диву даёшься. И с одной стороны есть необходимость в их использовании, а с другой — негодование. Хорошо, если бы было можно при установке выбрать разрешения, которые ты оставляешь. Или же по факту, чтоб приложение запрашивала от вас подтверждение во время выполнения.
    • +3
      XPrivacy позволяет по факту для каждого приложения указать, что ему можно делать, а что нет. Побочный эффект — становится лень ставить приложения, потому что для каждого настраивать свою пачку разрешений довольно утомительно.
      • –10
        Главный побочный эффект в том, что тормозной Android начинает тормозить еще сильнее(
        • +1
          Тормозит не Android, а слабые процы в дешёвых телефонах.
          • 0
            Ну да, на мощных процах во флагманах тормозит пореже, да.
    • +3
      На смартфонах Xiaomi такая возможность из коробки есть.
      Еще я слышал есть какая то прога от Касперского которая делает то же самое.
      • 0
        А как это будет выглядеть? Насколько я могу судить, подобные приложения вообще не проверяют, доступно ли это разрешение или нет (мол, если есть в Manifest'е, то можно). То есть, если мы заблокируем такому приложению доступ к какому-то пермишену, то при попытке использования компонентов, которым они необходимы, приложение просто закрашится =/
        • +10
          Ну, можно сделать так, чтобы приложению отдавались какие-то левые данные. Пустой список контактов, координаты станции «Восток» в качестве геолокации и т.д.
        • –1
          Если такое приложение «просто закрашится» — то просто его удаляем. Если не лениво — делаем отзыва разработчику. Делов то.
          • –5
            А если приложению действительно нужен этот пермишен?

            А вы своими руками сделали так, что оно стало крашиться, а затем оставляете негативный отзыв в Google Play? Не надо так.
            • +13
              Качественное приложение отловит исключение и внятно сообщит пользователю. После чего пользователь-«гик» «вспомнит»: о! я ж недавно блокировщик «пермишнов» ставил, сейчас «поднастрою».

              Некачественному ПО — дорога в /dev/null
      • 0
        В CyanogenMod такая фича тоже идёт в комплекте. Никакие программы от неё у меня пока не падали.
    • 0
      Как разработчик электронного кошелька могу смело сказать почему так происходит, причем одним словом — фрод.
      • +1
        Я правильно понимаю, что пользуясь информаций из контактов, закладок, камеры, микрофона, истории перемещений, списка установленных приложений и т.п., банк составляет досье и принимает решение о пользователе. Но тогда при установке приложения на чистый телефон, программы не должны разрешать делать операции, пока телефон не обрастёт правдоподобной историей, верно?
        • 0
          От части. Скорее-всего они собирают все, сами не используют, но так чувствую себя безопаснее.

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

          Плохо, что они это не используют. Еще хуже что просят доступ и не используют. Но использовать однозначно нужно, в том числе на благо безопасности самого пользователя. И хранить их лучше обезличенно, чтобы не было вопросов утечек данных.
  • 0
    Так это приложение для работы в такси или для клиентов и только для заказа такси?
    • +1
      Это для клиентов, таксисты используют другую версию.
  • +6
    То что у убера есть столько пермишеннов, кстати, ни о чем не говорит.

    У Убер есть возможность добавления карточки с помощью фото, для этого и нужен permission для доступа к камере. Доступ к телефонным звонкам нужен для того, что-бы по нажатию кнопки «Связаться с водителем» сразу начать набор номера (Спорное решение, конечно).
    Доступ к локации нужен для работы с картой. Доступ к аккаунтам нужен из-за интеграции с Google+ в приложении. Доступ к Wi-Fi оборудованию нужен скорее из-за трекинга устройства — такое обычно нужно для предотвращения регистрации кучи виртуалов с одного устройства.
    Доступ к контактам нужен для приглашения друзей из контактной книги.
    Это Вам не iOS. Вы либо устанавливаете приложение и даете все пермишены либо не устанавливаете приложение. Простой пользователь скорее всего воспользуется мантрой next-next-next, а продвинутый юзер будет использовать всякие тулзы, вроде того же XPrivacy.

    • +18
      Прекрасная мысль. "- А зачем вам доступ к всем моим контактам, камере, SMS и истории заонков? — А мы можем вставлять в юзерпики смешных котиков — А, ну ОК."
  • +7
    Год назад была же статья:
    к тебе приходят ребята в пиджаках — и ты либо вставляешь «стучалки» в код, либо закрываешь бизнес.
    • +1
      А что мешает вставить стучалку, которая отдает не реальные, а сгенерированные на лету синтетические данные?
      • +10
        Ребята в пиджаках не такие идиоты, как вам кажется.
      • 0
        Есть ли смысл заморачиваться с этим и ставить свою контору под удар? Не думаю.
  • 0
    У меня гибридное приложение Android/WebView не стартовало, пока я поочерёдно не указал кучу прав, которые этому приложению в действительности не нужны. В запале нашли аналогичную проблему, описанную на SO, там ответом тоже предлагалось дать приложению кучу прав. Быстро пофиксили, и забыли. А вообще надо разобраться, прилага совершенно локальная и куча прав ей абсолютно не нужна.

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