Недавно нескольким пиратским приложениям для iOS удалось получить одобрение в App Store, обманув процесс проверки. Они прикидывались легитимными приложениями, но через некоторое время начинали работать как пиратские онлайн-кинотеатры. 9to5Mac изучил, как эти приложения были созданы, чтобы обмануть Apple.
Прием, используемые разработчиками для обхода проверки App Store
В прошлом месяце приложение под названием Collect Cards достигло вершины рейтинга самых скачиваемых бесплатных приложений App Store в некоторых странах. После новости о том, что на самом деле это вовсе не приложение для сбора карточек, а пиратский кинотеатр, Apple удалила его — однако позже в App Store появилось множество других версий того же приложения. Но как именно разработчикам удается обмануть команду рецензентов App Store?
В первоначальном отчете объяснялось, что эти приложения используют геофенсинг, чтобы никто в Apple не смог увидеть, на что на самом деле способно приложение. Но, после анализа кода этих приложений теперь лучше понятно, как это происходит.
У этих приложений одна и та же кодовая база — даже если они распространяются под разными аккаунтами разработчиков. Они сделаны на React Native, кроссплатформенном фреймворке, основанном на JavaScript, и используют CodePush SDK от 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 сделала не так уж много для предотвращения других подобных ситуаций.
В 2020 году документы показали, что команда App Store Review состоит из более чем 500 экспертов-людей, которые еженедельно проверяют более 100,000 приложений. Тем не менее, подавляющее большинство приложений проходит через автоматические процессы проверки на предмет нарушения правил App Store, прежде чем попасть на ручную проверку.
После публикации статьи представитель Apple сообщил, что приложения были удалены из App Store, но никаких подробностей о мерах, принимаемых компанией для предотвращения одобрения других подобных приложений, предоставлено не было.