
Недавно мы сообщили о том, как несколько пиратских стриминговых приложений для iOS получили одобрение в App Store, обманув процесс проверки. Хотя мы кратко упомянули некоторые из используемых разработчиками методов, теперь 9to5Mac подробно изучил, как эти приложения разработаны, чтобы обмануть Apple.
Методы, используемые разработчиками для обхода проверки App Store
В прошлом месяце приложение под названием «Collect Cards» заняло первое место в рейтинге самых загружаемых бесплатных приложений в App Store в некоторых странах. После нашей публикации Apple удалила приложение, но позже в App Store было выпущено множество других версий того же приложения. Но как именно разработчикам удается обмануть команду проверки App Store?
В нашем первоначальном отчете мы объяснили, что эти приложения используют геолокацию, чтобы помешать кому-либо из Apple увидеть, на что на самом деле способно приложение. Но, проанализировав код этих приложений, мы теперь лучше понимаем, как это происходит.
Как мы и предполагали, эти приложения имеют одинаковую кодовую базу, даже если они распространяются через разные учетные записи разработчиков. Они созданы на React Native, кроссплатформенном фреймворке на основе JavaScript, и используют SDK CodePush от Microsoft, который позволяет разработчикам обновлять части приложения без необходимости отправлять новый билд в App Store.
Разработка приложений на React Native и использование CodePush не противоречит правилам App Store. На самом деле, существует множество популярных приложений, которые делают это. Однако злонамеренные разработчики пользуются этими технологиями для обхода проверки App Store.
Одно из приложений, проанализированных 9to5Mac, ссылается на репозиторий GitHub, который, похоже, предоставляет файлы для нескольких пиратских стриминговых приложений. Это приложение также использует специфический API для проверки местоположения устройства на основе IP-адреса. Он возвращает такие данные, как страна, регион, город и даже примерную долготу и широту.
Когда приложение открывается в первый раз, оно ждет несколько секунд, чтобы вызвать API геолокации. Таким образом, автоматизированный процесс проверки App Store не видит ничего необычного в коде приложения. Мы также проверили поведение приложения, пропустив его через прокси, чтобы имитировать наше местоположение в Сан-Хосе, Калифорния. Для этого местоположения приложение никогда не отображает свой скрытый интерфейс.

После того, как Apple одобрит приложение с его базовыми функциями, разработчики используют CodePush для обновления его всем, чем они хотят. Затем приложение отображает свой истинный интерфейс в «безопасных» местах.
Что может сделать Apple?
Конечно, Apple не застрахована от попыток приложений обмануть ее систему проверки. Однако компания могла бы улучшить ее, внедрив дополнительные тесты для проверки поведения приложений в других местах. В то же время Apple должна более активно находить и удалять мошеннические приложения из App Store.
В 2017 году Uber обвинили в разработке «геозоны» для штаб-квартиры Apple в Купертино. Когда приложение запускалось внутри этой геозоны, оно автоматически отключало коды, используемые для идентификации и отслеживания пользователя в Интернете. Тем не менее, похоже, что Apple не предприняла значительных мер для предотвращения подобных ситуаций.
В 2021 году документы показали, что в команде проверки App Store работает более 500 экспертов, которые еженедельно проверяют более 100 000 приложений. Тем не менее, подавляющее большинство приложений проходит через автоматизированные процессы проверки, чтобы убедиться, что они не нарушают правила App Store, прежде чем пройти ручную проверку.
После публикации наших статей представитель Apple сообщил 9to5Mac, что приложения были удалены из App Store, но не было предоставлено никаких подробностей о мерах компании по предотвращению одобрения подобных приложений.