...

Программа социального мониторинга что это

Мониторим мониторинг. Что внутри у приложения для изоляции на дому

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

Итак, последняя версия приложения — 1.4.1. Разработчик приложения — Департамент информационных технологий города Москвы. Существуют версии для Android и iOS. По данным из Google Play, на текущий момент приложение установлено более чем у 50 тысяч пользователей. Обещано, что если ваш телефон не поддерживает его, то в теории вам должен быть предоставлен аппарат с уже установленным приложением. На практике, конечно, такое случается далеко не всегда и не сразу.

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

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

Итак, поехали. Сразу скажу — я не гуру реверса, так что мог чего-то не заметить. Если обнаружишь что-то новое, обязательно поделись находкой в комментариях.

Смотрим трафик

Первым делом я решил проверить трафик с помощью приложения Fiddler, однако тут меня ждало разочарование. «Социальный мониторинг» устанавливает шифрованное соединение (HTTPS) с сервером mos.ru, а что там происходит дальше — так просто не понять, нужно или рутовать телефон, или пересобирать приложение. Но на рутованном аппарате приложение не работает, а пересобирать его я не рискнул, слишком высока цена ошибки — 4000 рублей за каждый пропущенный запрос на фотографию. А вдруг этот запрос придет как раз в тот момент, когда я буду с трафиком разбираться.

С помощью Fiddler и logcat удалось выяснить только то, что приложение раз в пять минут что-то отправляет на mos.ru. Что ж, придется декомпилировать и ковыряться в коде.

Декомпилируем приложение

Для декомпиляции я использовал программу JEB версии 3.17.1 производства PNF Software. На мой взгляд, это одно из лучших приложений для исследования APK, единственный его недостаток — высокая стоимость.

Приложение подписано сертификатом, сгенерированным 17 апреля 2020 года, и почему-то указан город Самара. Интересно, при чем тут Самара?

Первым делом смотрим, что в манифесте.

Версия программы — 1.4.1, имя пакета — ru.mos.socmon.

Приложение запрашивает следующие разрешения: доступ к координатам, в том числе и фоновый, доступ к камере, к интернету, состоянию сети, состоянию и изменению Wi-Fi, возможность запускать неубиваемые сервисы и добавление в список исключений оптимизации батареи (чтобы ОС не заставляла приложение экономить энергию), а также чтение и запись данных на карте памяти. Ну что же, уже неплохо — намеков на недекларированные функции пока не видно. Контакты, журнал звонков, SMS и прочее вроде не просят. Будем смотреть дальше.

Дальше видим, что приложение весьма обфусцировано. Конечно, это осложняет анализ, но попробуем.

Обычно при анализе всякой обфусцированной вирусни я поступаю так: сначала переименовываю все объявленные переменные в соответствии с их типом, то есть вместо a , b , c , d пишу intIn , intOut , int1 , str1 и так далее. Затем заново смотрю на код, уже становится видно, что некоторые переменные можно переименовать в counter , i , k , resString . Ну и третьим проходом после беглого анализа алгоритма переименовываю во всякие там name , password , hashMD5 и так далее.

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

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

  • libconscrypt_jni.so — гугловская библиотека Conscrypt, поставщик безопасности Java (JSP), который реализует расширения криптографии Java (JCE) и расширения безопасных сокетов Java (JSSE). Он использует BoringSSL для предоставления криптографических примитивов и безопасности транспортного уровня (TLS) для приложений Java на Android и OpenJDK;
  • libface_detector_v2_jni.so — опенсорсная библиотека libfacedetection для распознавания лиц на фото;
  • libtool_checker_jni.so — библиотека из состава опенсорсного пакета rootbeer, предназначенного для проверки наличия прав root на устройстве. Чуть подробнее расскажу о ней дальше.

Беглый анализ показал, что, помимо обфусцированного кода и почти стандартных OkHttp 3, Retrofit 2 и Crashlytics, приложение использует компоненты com.redmadrobot.inputmask.helper и com.scottyab.rootbeer.

Первый компонент особого интереса не представляет, он используется для проверки ввода телефонного номера при регистрации приложения. Rootbeer же как раз проверяет «рутованность» используемого устройства: ищет определенные приложения, бинарный файл su или компоненты BusyBox.

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

При запуске приложение достает из настроек адрес сервера для отправки данных, интервал для отправки координат и интервал для сбора и отправки телеметрии (отметим, что эти значения можно изменить по команде с сервера). Затем проверяет наличие необходимых для работы разрешений и, если нужно, запрашивает их, а также выводит запрос на добавление в «белый список» энергосбережения, чтобы ОС не мешала работать в фоновом режиме.

if(!((activity)this).j())

Также проверяется (с помощью акселерометра), держит ли пользователь устройство в руках.

В приложении есть три основных сервиса:

  • LocationService — периодически собирает координаты;
  • MessagingService — отслеживает сообщения с сервера, в сообщениях могут быть новые настройки или запрос на фото пользователя;
  • PeriodicJobService — собирает и отправляет телеметрию.

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

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

Посмотрим подробнее, какие именно данные приложение отправляет на сервер.

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Компьютерная программа Социальный мониторинг — отзывы

Angelochekneta аватар

Положительный результат ПЦР теста на коронавирус (Covid-19) добавил массу проблем, в числе которых была и программа для смартфона и планшета «Социальный мониторинг», которая действует на территории Москвы и Новой Москвы.

DarkHorse0705 аватар

С этой программой мне пришлось познакомится, когда мне пришел положительный тест на коронавирус. В этот же день пришла врач, дала таблеток, сфоткала моё потрепанное личико, дала постановление на подпись и сказала установить «Социальный мониторинг».

Just look аватар

После моей истории с положительными результатами анализа крови по данным Роспотребнадзора на момент сдачи анализа (на данный момент эти цифры у них уже считаются отрицательным результатом), но при этом отрицательными анализами ПЦР на коронавирус (мазок) , я подписалась на домашнее заключение, в…

Московские власти выпустили приложение для слежки за жителями на карантине

Власти Москвы выпустили приложение «Социальный мониторинг» для сбора информации о гражданах во время карантина из-за COVID-19. На это обратил внимание Telegram-канал «Нецифровая экономика».

«Это позволит обеспечить безопасность окружающих и избежать дальнейшего распространения коронавируса», — рассказал ТАСС руководитель департамента информационных технологий Эдуард Лысенко. По его словам, программу не будут обязательно использовать для всех жителей Москвы, а только для тех, у кого «подтверждена новая коронавирусная инфекция, и которые проходят лечение на дому». Москвичам, у которых смартфонов нет, раздадут их бесплатно на время карантина. Лысенко заверил, что персональные данные граждан третьим лицам передаваться не будут.

Приложение появилось только в магазине Google Play для устройств на операционной системе Android. В App Store сервис пока отсутствует. Разработчиком указана ГКУ «Информационный город», которая подчиняется столичной мэрии. В описании программы указано, что она нужна для «социального мониторинга граждан и вызова помощи в экстренной ситуации». Для авторизации нужно сделать фотографию и указать номер телефона. Внутри есть раздел «Последние новости» с сайтом московского мэра и кнопка для вызова экстренных служб.

Что не так

Приложение запрашивает доступ к большинству персональных данных пользователя: фото и видео, звонкам, местоположению, пульсометру, данным на устройстве, настройкам Bluetooth и Wi-Fi, активным сервисам и сетевым подключениям. В то же время журналистам TJ и Би-би-си не удалось даже зарегистрироваться в сервисе, потому что приложение постоянно зависало.

Автор Telegram-канала «IT и Сорм» Владислав Здольников изучил код приложения и заявил, что «Социальный мониторинг» передаёт данные москвичей на сайт московской мэрии в открытом виде без шифрования. Более того — приложение задействует эстонский сервис identix. one, передавая фотографии пользователей на адрес, принадлежащий немецкой хостинговой компании. «То есть у условного ЦРУ есть вообще все рычаги для сбора массива данных о жителях Москвы. И всё это богатство подарили западным спецслужбам ДИТ и Собянин», — пояснил Здольников.

За несколько часов пользователи снизили оценку приложения до минимальной, после чего оно пропало из открытого доступа в Google Play. Как обратила внимание Би-би-си, в контактных данных приложения «Социальный мониторинг» прописана электронная почта, связанная с сервисом для отслеживания детей Wokka Lokka. Обе программы сделала «Гаскар Интеграция» — у компании заключены контракты с департаментом информационных технологий: судя по всему, за приложение ей заплатили 180 миллионов рублей. «Это полнейший провал и позорище. ДИТ Москвы должен быть разогнан палками за такое», — подытожил Здольников.

Меры контроля

Москвичам, которые в целях предотвращения распространения коронавируса находятся на самоизоляции, нужно будет получать на сайте мэрии mos.ru одноразовые QR-коды (так называемые разрешения) на каждый свой выход из дома, включая поход за продуктами или вынос мусора. В случае отсутствия « разрешения » на выход из дома сотрудники правоохранительных органов будут выписывать штрафы от 500 до 1000 рублей по ст. 19.3 КоАП (неповиновение распоряжениям органов власти), однако при помощи видеоаналитики их планируют сделать и автоматическими.

При подготовке материала использовались источники:
https://xakep.ru/2020/05/28/socmon-eye/
https://irecommend.ru/content/kompyuternaya-programma-sotsialnyi-monitoring
https://openmedia.io/news/n1/moskovskie-vlasti-vypustili-prilozhenie-dlya-slezhki-za-zhitelyami-na-karantine/

Оцените статью