
В последнее время мы видим много мошеннических приложений в App Store, которые пытаются заставить пользователей покупать дорогие подписки или товары, а также приложения, которые отслеживают и передают местоположение пользователя без его согласия. Сегодня я хочу рассказать о приложении, которое использует устройства iOS для выполнения работы для других пользователей без согласия владельца устройства.
Приложение под названием «Parcels – Track Your Packages» (не путать с популярным приложением «Parcel») имеет рейтинг 4,7 звезды в App Store и распространяется российским разработчиком Павлом Тисуновым. Оно бесплатно с необязательной подпиской за 3,49 доллара в год или 0,99 доллара в месяц. То же приложение доступно и в магазине Google Play, но я его не исследовал.
При запуске приложение немедленно начинает отправлять запросы на свой сервер с просьбой отследить посылки, даже несмотря на то, что я еще не зарегистрировал ни одной посылки. Затем сервер отправляет в приложение информацию о посылках других пользователей для отслеживания. Эта информация включает номер отслеживания и сведения о том, какому курьеру отправить запрос, с техническими деталями, такими как URL API или веб-сайта курьера, заголовки запросов и т. д.
Затем приложение выполняет отслеживание, отправляя запрос на API или веб-сайт курьера, указанный в инструкции, полученной от сервера, отправляя результаты на сервер приложения, чтобы он мог отобразить их пользователю, который фактически зарегистрировал эту посылку для отслеживания.
По сути, вместо того чтобы выполнять работу по отслеживанию посылок на стороне сервера, приложение использует пропускную способность, энергию и вычислительную мощность своих пользователей для доступа к веб-сайтам курьеров, получения изменений в статусе доставки и отправки их другим пользователям. Такое поведение можно классифицировать как ботнет, поскольку каждое устройство с установленным приложением фактически становится ботом, отслеживающим посылки для других пользователей приложения, даже если пользователь текущего устройства не зарегистрировал ни одной посылки для отслеживания.

Существует множество причин, по которым разработчик мог выбрать такую тактику. Я не думаю, что стоимость обслуживания серверов является основной причиной, поскольку серверы сегодня довольно доступны, а приложению нужен сервер для управления ботнетом (задача, которая может быть даже более ресурсоемкой, чем отслеживание посылок).
Я думаю, что разработчик приложения пытается обойти ограничение скорости, которое могут применять поставщики API. Это ограничение скорости обычно ограничивает количество вызовов API, которые можно совершить к сервису курьера за определенный период времени, на основе либо ключа API, используемого для вызова, либо IP-адреса клиента, совершающего вызов. Поскольку это приложение распределяет свои вызовы API между устройствами по всему миру, невозможно ограничить их по IP-адресу.
Кроме того, многие из поддерживаемых приложением курьеров не имеют надлежащего API, поэтому оно прибегает к веб-скрейпингу – технике, которая загружает обычный веб-сайт, который пользователи используют для отслеживания своих посылок, затем читает результаты и интерпретирует их, чтобы данные отслеживания могли быть позже показаны в приложении.
Веб-скрейпинг не разрешен многими веб-сайтами, которые могут блокировать запросы с IP-адреса, который, по их мнению, выполняет постоянный скрейпинг. Опять же, IP-адреса серверов часто не меняются, но поскольку приложение использует устройства своих пользователей для выполнения скрейпинга, веб-сайтам невозможно заблокировать их по IP-адресу.
Если приложение станет очень популярным, оно может быть использовано для проведения DDoS-атак на веб-сайты, используя этот механизм, который позволяет разработчику давать указание каждому устройству с установленным приложением посещать целевой URL. Оно также может использоваться для фальшивых «кликов» по рекламе.
Механизм также может быть использован в атаке «человек посередине», поскольку приложение не использует HTTPS или какую-либо валидацию для получаемых им инструкций. Еще раз: приложение передает информацию о посылках, которые вам не принадлежат, используя ваше устройство, в открытом виде.
Все это довольно плохо, но есть еще и тот факт, что каждое устройство с установленным приложением теряет свою пропускную способность, производительность и время работы от батареи для выполнения работы для других пользователей без явного согласия пользователя, установившего приложение.
Эта практика нарушает раздел 2.4.2 Руководства по проверке приложений Apple, в котором говорится, что приложения «не могут выполнять несвязанные фоновые процессы». Хотя приложение выполняет отслеживание посылок, что является предполагаемой функциональностью, оно делает это на моем устройстве для других пользователей, что явно не связано с задачей, для которой я скачал приложение. На момент написания статьи в описании приложения или политике конфиденциальности нет упоминания об этой практике.
Говоря о конфиденциальности, эта практика также является нарушением конфиденциальности, поскольку любой пользователь, имеющий возможность запускать прокси на своем устройстве, будет иметь доступ к номерам отслеживания других пользователей приложения без их согласия. Я оставил приложение работающим на своем тестовом устройстве в течение часа, и оно выполнило 52 запроса на отслеживание посылок, которые мне не принадлежали. Но теперь у меня есть эти номера отслеживания, потому что я наблюдал, что делает приложение с прокси.
Человек, сообщивший мне об этом приложении, связался с App Store, но пока не получил никакого ответа. Мы также сообщили об этом Apple, и мы обновим эту статью, когда получим ответ.
Посетите 9to5Mac на YouTube для получения дополнительных новостей об Apple: