Эта методика — то, что мы применяем в собственном расследовании. Её можно повторить для любого сетевого приложения за 10–15 минут. Порядок шагов — от самых результативных к вспомогательным.
Шаг 1. Идентифицируйте оригинал до похода в магазин
Найдите официальный сайт проекта вне магазинов: поиск «<название> github», ссылки из проверенных агрегаторов (например, наш каталог), упоминания в независимых источниках. Запишите:
- домен сайта и репозиторий исходного кода;
- имя издателя, под которым проект публикуется в магазине;
- имя пакета (Android) или bundle id (iOS).
Пример из расследования. Официальный Happ: сайт happ.su / happ.info, репозитории GitHub-организации Happ-proxy, издатель iOS Flyfrog LLC, пакет Android com.happproxy. Всё, что не совпадает с этими идентификаторами, — кандидат на проверку. Например, com.happ.vpnproxy от «STL Cinema, inc» носит то же название «Happ - Proxy Utility», но не имеет к оригиналу отношения — классический name-squatting.
Шаг 2. Сверьте издателя на странице магазина
На странице Google Play имя разработчика — ссылка: нажмите её и посмотрите весь список приложений издателя. Красные флаги:
- портфель из десятков однотипных VPN/чистильщиков/фонариков — конвейер шаблонных приложений;
- издатель-«физлицо» у сервиса, обрабатывающего трафик (не приговор, но минус к отчётности);
- название компании из чужой отрасли (издатель «кинематографической» компании, публикующий сетевой софт).
В App Store откройте страницу разработчика под названием приложения и проверьте сайт продавца. Пример: продавец «Happ Plus VPN: Тест скорости» указывает сайт gethapp.site — домен, созвучный официальному happ.su, но ему не принадлежащий.
Шаг 3. Проверьте имя пакета и совпадение с официальным
Android: страница приложения в браузере → URL содержит id=... (например, id=com.happ.plushap). Сверьте с официальным com.happproxy. Совпадение названия при несовпадении пакета — главный маркер подделки: название в магазине свободный текст, имя пакета — техническая идентичность.
iOS: прямой просмотр bundle id на странице невозможен, но iTunes API (itunes.apple.com/lookup?id=<id>) возвращает bundleId, продавца, дату релиза и историю версий.
Шаг 4. Оцените возраст и динамику
Свяжите дату релиза с числом оценок и функциональностью. Тысячи оценок за первые недели при релизе месяц назад — аномалия (накрутка или перелив аудитории с закрытого приложения). Десять лет истории с регулярными обновлениями — плюс.
Шаг 5. Прочитайте заявку о данных и разрешения
Google Play: раздел «Безопасность данных» (что заявлено о сборе) и «Разрешения». Для прокси-клиента ожидаемы: VPN, сеть, уведомления. Требования к контактам, камере, файлам, точному местоположению — обоснованный отказ.
Сверьте заявление с поведением: утилита с «нет данных, не собирается ничего» и рекламным SDK в дистрибутиве лжёт как минимум наполовину.
Шаг 6. Найдите код и аудиты
- Открытый репозиторий? Смотрите коммиты, релизы, обсуждения issues.
- Аудит: формулировки «audited by <название фирмы>, отчёт по ссылке» с реальным PDF — редкость, но для Tor, WireGuard, Outline — реальность.
- Закрытый код — не приговор, но повышенные требования к репутации и годам наблюдения.
Шаг 7. Для продвинутых: подпись и хэш APK
Если ставите APK вне магазина (как случилось с Happ после исчезновения из Google Play):
# Хэш скачанного файла против опубликованного разработчиком
shasum -a 256 Happ.apk
# Сертификат подписи (apksigner из Android SDK)
apksigner verify --print-certs Happ.apk
Сверьте SHA-256 сертификата с указанным в официальном репозитории. Один и тот же разработчик подписывает все версии одним ключом — смена ключа без объяснений это повод остановиться.
Чек-лист (короткая версия)
- Официальный сайт/репозиторий найдены вне магазина
- Издатель в магазине совпадает с заявленным проектом
- Имя пакета / bundle id совпадает с официальным
- Портфель издателя не выглядит конвейером шаблонов
- Возраст и динамика оценок правдоподобны
- Разрешения соответствуют функции
- Заявление о данных не противоречит поведению
- Есть код, аудит или длинная незапятнанная история
Отрицательный ответ на первые три пункта — отказ от установки. Остальные — повод копать глубже.