- На всех смартфонах и планшетах Samsung обнаружилось шпионское ПО
- Слежка в пользу Китая
- Реакция Samsung
- Способ решения проблемы
- Samsung и слежка за пользователями
- Шпионят все
- IpsGeofence: что это за приложение на Андроиде от Samsung?
- Особенности геофенсинга
- Работа с геозонами (geofences) в Android
- Что такое Location APIs?
- Задача
- Алгоритм
- К делу!
- На этом всё!
На всех смартфонах и планшетах Samsung обнаружилось шпионское ПО
Samsung встраивает в новые мобильные устройства китайское программное обеспечение, которое невозможно удалить. Оно может отсылать пользовательские данные на китайские серверы, а китайские власти могут получить доступ к этой информации в любой момент.
Слежка в пользу Китая
На всех современных смартфонах и планшетах компании Samsung было обнаружено шпионское программное обеспечение, имеющее связь с Китаем. Фирменный софт Samsung регулярно связывается с расположенными на территории КНР серверами и, возможно, отправляет на них пользовательские данные. Факт отправки данных в КНР на момент публикации материала подтвержден не был.
«Брешь» в прошивках гаджетов Samsung обнаружил пользователь ресурса Reddit под псевдонимом Kchaxcer. Его тема, описывающая возникшую угрозу безопасности пользовательской информации, всего за сутки с момента создания набрала около 3000 комментариев.
Kchaxcer сообщает, что в прошивках Samsung есть программное обеспечение китайской компании Qihoo 360, встроенное в Device Care – фирменную утилиту Samsung, встроенную в оболочку One UI, которую Samsung устанавливает на свои современные смартфоны. Приложение включает функции оптимизации устройства, удаления временных и мусорных файлов, а также сканирования на вирусы и другое вредоносное ПО.
Компания Qihoo 360 занимается вопросами информационной безопасности, однако она неоднократно вовлекалась в скандалы вокруг приватности и конфиденциальности. Помимо прочего, Qihoo 360 обвиняли в скрытом (несанкционированном) сборе информации с устройств пользователей, на которых установлен ее софт.
Реакция Samsung
Samsung практически моментально отреагировала на публикацию в Reddit. Ее представители подтвердили факт наличия программного обеспечения Qihoo 360 в составе Device Care.
В то же время Samsung никак не прокомментировала тот факт, что по причине наличия кода, принадлежащего Qihoo 360, в Device Care, приложение регулярно связывается с китайскими серверами.
На момент публикации материала не было известно, кому именно софт Qihoo 360 может отправлять информацию с пользовательских устройств. Тем не менее, в 2014 г. топ-менеджер компании заявлял, что Qihoo 360 будет передавать любые данные правительству Китая по первому же запросу. В 2017 г. компания объявила о своих планах о еще более тесном сотрудничестве с властями КНР в плане отправки ему накопленной информации.
Способ решения проблемы
Kchaxcer отметил, что удалить Device Care из смартфона или планшета Samsung базовыми средствами не получится – приложение системное и является частью прошивки. Он также предупредил, что открывать этому ПО доступ ко всем файлам на устройстве очень рискованно.
Защитить личную информацию от потенциального копирования на китайские серверы, тем не менее, можно. Для этого необходимо лишить Device Care доступа к интернету путем установки брандмауэра, работающего без получения root-прав. Подобные приложения, доказавшие свою эффективность, есть в свободном доступе в каталоге Google Play – они позволяют закрывать установленным на устройство программам, в том числе и системным, доступа в Сеть как через Wi-Fi, так и через сотовые сети.
Samsung и слежка за пользователями
Шпионское ПО достаточно давно входит в состав прошивок гаджетов южно-корейского вендора. К примеру, в марте 2017 г. антивирусная компания Check Point обнаружила почти в четырех десятках смартфонов различных производителей, среди которых была и Samsung. вредоносные компоненты, установленные еще до продажи. В них были выявлены приложенич, демонстрирующие нежелательную рекламу, и минимум в одном случае – мобильный шифровальщик. Все проанализированные устройства использовались сотрудниками двух крупных ИТ-корпораций. В числе 38 таинственно зараженных устройств есть два смартфона ASUS, 10 смартфонов Samsung, два Lenovo, LG, два Oppo, две модели Xiaomi, Vivo и ZTE.
Многие смартфоны с интегрированным шпионским софтом продаются и на территории России. Как сообщал CNews в ноябре 2019 г., в смартфонах 26 крупных и не очень производителей, в том числе российских BQ и Dexp, было выявлено 146 различных уязвимостей. В списке присутствовала и продукция Samsung – мобильники J5, J6, J7, J7 Neo, J7 Duo и J7 Pro.
Во всех случаях, как и с софтом Qihoo 360, вредоносы были встроены непосредственно в прошивку устройств. Самостоятельное их удаление пользователем не представляется возможным.
Шпионят все
Стоит отметить, что производители не всегда ответственны за присутствие шпионского ПО в составе своих устройств. Так, в июле 2019 г. стало известно, что китайские пограничники устанавливают на смартфоны туристов приложения для слежки с целью проверки устройств на наличие опасных, с точки зрения властей Китая, материалов. Оно также дает властям доступ к электронной почте, текстовым сообщениям и контактам на смартфоне.
ПО для слежки можно обнаружить и в составе обычных компьютеров, но даже тут не обошлось без Китая. В начале 2015 г. выяснилось, что все новые на тот момент компьютеры китайской компании Lenovo, предназначенные для потребительского рынка, были заражены разновидностью вредоносной программы под названием Superfish. Приложение внедряет рекламные объявления в результаты поиска Google без согласия пользователя. Причем объявления выглядят так, как будто их туда поместила сама Google. Вся серьезность ситуации заключается в том, что хакеры могут легко взломать Superfish и использовать это приложение для перехвата пользовательских данных – от логинов и паролей до номеров банковских карт, указываемых пользователем в веб-формах.
Опасность, таящаяся в некоторых ПК Lenovo, тем не менее, не помешала Министерству обороны США закупить в 2018 г. свыше 1500 таких компьютеров на $2,168 млрд. Вместе с ними американские военные закупили принтеры Lexmark, ПО которых содержало более чем 20 уязвимостей, эксплуатация которых позволяла злоумышленникам удаленно осуществлять DoS-атаки в сети ведомства или шпионить за его сотрудниками.
Помимо «шпионских» принтеров и компьютеров Пентагон для нужд сухопутных войск и ВВС приобрел 117 видеокамер Gopro, которые также были признаны непригодными для использования по соображениям безопасности.
Источник
IpsGeofence: что это за приложение на Андроиде от Samsung?
30.06.2020 3,626 Просмотры
Технология геофенсинга была создана не так давно. Суть этого сервиса сводится к автоматическому обнаружению мобильных устройств на какой-то конкретной территории и выполнению определенного алгоритма действий в автоматическом режиме.
Самый простой пример — рекламные SMS-рассылки. Как только смартфон с приложением Geofencing (оно устанавливается на заводе-изготовителе) появляется на заранее определенной территории или поблизости от нее, то на него сразу же начинают приходить сообщения. Такие места бывают в торговых центрах, ресторанах, заправочных станциях и т.п. Целью является привлечение потенциальных клиентов, которые могут приобрести товар или услугу.
Особенности геофенсинга
- Привлечение внимания потенциального клиента
Многие организации отправляют информацию о проведении акций, промокоды, купоны со скидками на смартфоны, оказывающиеся на территории их обслуживания или близко к ней. Для этого нужно всего лишь определить координаты устройства с помощью GPS и наличие на нем приложения. В наше время большинство компаний не ориентируются на доступный им список клиентов и рассылают сообщения всем подряд.
- Максимальная локализация рекламных предложений
Зачастую реклама привязывается к какому-либо событию. Если это международный праздник, то соответствующие сообщения будут отправляться на телефоны проходящих мимо людей. А если мест, предоставляющих одинаковые услуги, несколько, то оповещений может быть достаточно много.
- Сбор и анализ ситуационных данных о пользователях смартфонов
В организациях постепенно накапливается база данных об индивидуальных действиях каждого человека.
- Локализация мобильных устройств
Многие продавцы заранее оповещают потенциального клиента о том, что он сможет получить какой-либо промокод, подарочный сертификат или купон со скидкой только тогда, когда будет находиться на определенной территории. Такой прием может использоваться совместно несколькими компаниями, расположенными рядом — первые отправляют ко вторым и наоборот.
Если доступны поведенческие данные потенциальных клиентов, то организация может делать персональные предложения о поощрительных презентах, появлении нужного товара или интересующей услуги.
В целом технология геофенсинга постоянно шлифуется и выявляются все новые способы ее применения.
Источник
Работа с геозонами (geofences) в Android
Что такое Location APIs?
Location APIs являются частью Google Play сервисов, которая предназначена для создания приложений работающих с местоположением устройства. В отличие от подобных функций в LocationManager, данные API отличаются улучшенным энергосбережением. В данный момент доступна следующая функциональность: определение местоположения устройства, работа с геозонами и распознавание активности пользователя. Определение местоположения позволяет балансировать между точностью определения и потреблением энергии, а также предоставляет доступ к наиболее частым местоположениям. Распознавание активности позволяет узнать, что делает пользователь устройства: едет на машине, едет на велосипеде, идет пешком или находится на одном месте. Ну и, собственно, работа с геозонами позволяет посылать сообщения, когда пользователь устройства входит в конкретную зону, покидает её либо находится в зоне определенный период времени.
На мой взгляд официальный пример довольно сложный и запутанный. Это связано с тем, что в нём:
- попытались показать все возможности Location APIs
- множество комментариев и обработок исключений, которые в примере можно было бы и упустить
- все действия выполняются из активити
Исходя из этого в данной статье я сфокусируюсь только на геозонах и опущу некоторые обработки исключений.
Примечание: Google Play сервисы могут быть отключены на устройстве. Это может нарушить работу многих приложений и система честно предупреждает пользователя об этом перед их отключением. Но всё же хорошим тоном будет проверять это в своем приложении с помощью GooglePlayServicesUtil.isGooglePlayServicesAvailable и как-то предупреждать пользователя.
Задача
Итак, для примера напишем приложение, в котором можно явно указать координаты и радиус геозоны. При входе/выходе из неё в статус бар будет добавляться уведомление с id геозоны и типом перемещения. После выхода из геозоны мы её удалим.
Алгоритм
В общем процесс выглядит следующим образом:
- Из активити создаем сервис, в который передаем данные о геозоне.
- Сервис инициализирует LocationClient.
- Когда LocationClient инициализировался, добавляем в него геозоны (Geofence) и соответствующие им PendingIntent.
- Когда геозоны добавлены, отключаемся от LocationClient и останавливаем сервис.
- Далее вся надежда на PendingIntent, который запустит IntentService при входе в зону или выходе из зоны. Сервис добавляет уведомления в статус бар и создает сервис для удаления отработанных геозон.
- Созданный сервис снова инициализирует LocationClient.
- Когда LocationClient инициализировался, удаляем отработанные геозоны.
- Когда геозоны удалены, отключаемся от LocationClient и останавливаем сервис.
- Profit!
Как мы видим, главным действующим лицом является LocationClient. Он отвечает за доступ к API для определения местоположения и работы с геозонами.
К делу!
Для начала необходимо подключить Google Play сервисы. Как это сделать описано здесь.
Далее в активити инициализируем элементы отображения. Из этой области нас интересует вызов сервиса при обработке нажатия на кнопку:
Тут мы создаем Intent для нашего сервиса (GeofencingService) и передаем в него необходимые данные. Так как GeofencingService отвечает за добавление и удаление геозон (в примере я решил не разделять эти действия на разные сервисы), то нам надо передать тип операции, которая должна быть выполнена сервисом. В данном случае это добавление (GeofencingService.Action.ADD). Также сервису нужны данные о геозоне. Их мы передаем в виде объекта класса MyGeofence, который по сути является оберткой над Geofence.Builder (о нём мы поговорим позже).
Итак, мы передаем координаты центра и радиус зоны, а также тип перемещения. Последний может быть трех видов: GEOFENCE_TRANSITION_ENTER, GEOFENCE_TRANSITION_EXIT и GEOFENCE_TRANSITION_DWELL. Если с первыми двумя все понятно, то к третьему необходимы разъяснения. GEOFENCE_TRANSITION_DWELL указывает на то, что пользователь вошел в зону и пробыл в ней некоторое время. Чтобы использовать этот сигнал, вы должны установить setLoiteringDelay при построении геозоны. В данном примере GEOFENCE_TRANSITION_DWELL не используется.
Перейдем к сервису. Сервис имплементирует GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener, LocationClient.OnAddGeofencesResultListener, LocationClient.OnRemoveGeofencesResultListener интерфейсы. Это позволяет ему полностью отвечать за работу с LocationClient.
В onStartCommand мы получаем тип операции (ADD или REMOVE) и вытягиваем необходимые для выполнения этого действия данные. После этого инициализируем и запускаем LocationClient:
Прежде чем добавить геозону mGeofenceListsToAdd, мы вызвали метод toGeofence() объекта класса MyGeofence. Я уже говорил, что MyGeofence является обёрткой над Geofence.Builder:
Geofence.Builder — это служебный класс для создания Geofence. Мы задаем необходимые параметры, а потом вызываем метод build() для создания объекта. Выше указан необходимый минимум параметров. Тут стоит обратить внимание на setExpirationDuration. Дело в том, что зарегистрированные геозоны могут быть удалены только в двух случаях: по истечении заданного времени или при явном удалении. Поэтому, если вы передаете в качестве параметра NEVER_EXPIRE, то вы обязаны позаботиться об удалении объекта самостоятельно. Для Location APIs есть ограничение: максимум 100 геозон на одно приложение одновременно.
После того как LocationClient подключится, сработает onConnected колбэк интерфейса GooglePlayServicesClient.ConnectionCallbacks. В нем мы выполняем добавление либо удаление в зависимости от текущего типа действия:
Как мы видим, addGeofences одним из параметров требует PendingIntent, который сработает при перемещении. В нашем случае PendingIntent будет запускать IntentService:
После выполнения действия у нас срабатывают OnAddGeofencesResultListener или onRemoveGeofencesByRequestIdsResult , в которых мы отключаемся от LocationClient и останавливаем сервис:
Последняя часть приложения – это IntentService, который запускается при пересечении границы геозоны пользователем устройства. Все действия выполняются в onHandleIntent:
Здесь у нас фигурируют в основном статические методы LocationClient. Сначала мы делаем проверку на наличие ошибок с помощью hasError. Затем получаем тип перемещения и список сработавших геозон с помощью getGeofenceTransition и getTriggeringGeofences соответственно. Вызываем обработку каждой геозоны и сохраняем её id. Ну и напоследок, удаляем геозоны в случае, если данное перемещение было выходом из геозоны.
Для удаления геозон мы опять создаём сервис, в который передаём тип операции (REMOVE) и список id на удаление:
На этом всё!
Надеюсь пример получился понятным и интересным. Желаю всем хороших приложений!
UPDATE:
Статья и код сильно устарели за 2 года.
Спасибо Vilkaman за обновления кода в репозитории.
Подробнее о работе с обновленным Location API можно прочитать в его статье
Источник