Декомпилируем цифровой ошейник для Covid-19

Декомпилируем цифровой ошейник для Covid-19

Тёмная Паутина ©

Смотрим что внутри приложения "Социальный мониторинг".

Тёмная Паутина

Привет, юзернейм! Для тех, кто был рождён в России, было разработано мобильное приложение Департаментом информационных технологий города Москвы. Принцип его работы состоит в том, что пользователю приходит уведомление и он подтверждает своё местонахождение с помощью геолокации смартфона и селфи.

Начнём с СМС-ки

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

SMS от DIT_EMP

Если проигнорить сообщение, и не установить приложение, то поместят в больницу. Если удалить приложение, то будут присылать штрафы.

В кое-какой момент, мне пришла в голову мысль: "А почему бы не проверить, приложение выполняет только заявленные функции или там есть что-то ещё?". В общем, давайте смотреть.

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

Благодаря logcat и Fiddler, мне удалость понять, что приложение раз в несколько минут что-то отправляет на mos.ru, и что происходит дальше - я не знаю. Пересобирать приложение - не решился, а на рутованном аппарате приложение не работает. Поэтому я принял решение посмотреть на сам код, а значит это всё дело декомпилировал.

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

Чтобы это сделать, я использовал JEB (PNF Software). И сразу же вижу один интересный прикол.

Город - Самара. И при чём он тут?).

В манифесте я увидел следующую картину.

Манифест

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

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

Копаясь дальше, я понял, что приложение обфусцировано. Когда анализирую всякую обфусцированную вирусню, я сначала меняю имя всем объявленным переменнам в соответствии с их типом. То есть, вместо a, b, c, d пишу IntIn, IntOut, Int1, Str1 и т.д. После чего смотрю на код и уже становится понятно, что большинство перемен можно переименовать в counter, i, k, resString.

Ну и потом уже после анализа алгоритма, меняю переменные, например на password, name, hashMD5 и т.д.

Анализ показал, что, кроме обфусцированного кода, приложение использует компоненты com.redmadrobot.inputmask.helper и com.scottyab.rootbeer. Первый компонент нужен для проверки ввода номера телефона при регистрации приложения. Второй проверяет телефон на руттованность.

Смотрим код

Когда мы запускаем приложение, оно достаёт из настроек адрес сервера для отправки данные, интервал для отправки координат и интервал для сбора и отправки телеметрии После чего, проверяет необходимые для работы разрешения, и если надо, запрашивает. Также выводит запрос на добавление в "WHITE-LIST" энергосбережения, чтобы система не мешала приложению работать в фон. режиме.

Часть кода

Приложуха раз в пять минут получает координаты, телеметрию, и всё это отправляет на сервак, после чего ждет запрос на селфи.

А ещё приложение автоматически ищет лицо, поэтому пока лицо не найдётся, отправить селфи не получится. Посмотрим подробнее, какие именно данные приложение отправляет на сервер

Так.. В классе Location можно увидеть интересную инфу. Там записан уровень заряда батареи, версия вашей системы, номер телефона, дату и время установки приложухи и даже то, находится ли устройство у вас в руках, когда собираются данные. И там записанно много чего остального!

А здесь мы можем наблюдать, что приложение отслеживает информацию об сетях WI-FI, которые окружают ваш телефон, и ещё подключенные BLUETOOTH-устройства.

Мои выводы

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

Уверен, статья вам понравилась, ожидаю хоть какой-то фидбэк. Завтра выйдет ещё две статьи, где мы разберём достаточно интересные темы. До новых встреч!


Report Page