Обнаружены расхождения между сравниваемыми версиями приложения
Описание
При сравнении контрольной APK и загруженной на сканирование APK инструмент обнаружил отличия, не попадающие в список допустимых (динамически генерируемые идентификаторы аналитики, timestamp-ресурсы и т. п.). Расхождения могут затрагивать DEX-файлы, Smali-код и/или часть ресурсов, что указывает либо на недетерминируемую сборку, либо на подмену артефактов.
Потенциальные последствия
- Подмена или внедрение вредоносного кода на пути «CI → Store», т. е. компрометация цепочки поставки. (SLSA)
- Несоответствие проверенной версии требованиям ИБ: ревью безопасности проверяло одну сборку, а пользователи получают другую.
- Блокировка/отклонение релиза в Google Play при обнаружении новых разрешений или сигнатур.
- Утрата юридической и пользовательской доверенности — особенно критично для финансовых и гос-приложений.
Дополнительные рекомендации
- Внедрите политику «two-person rule» на публикацию: релиз-проверка ИБ + release-manager.
- Внедрите регламент «что может отличаться», обновляемый в код-ревью.
- Рассмотрите SafetyNet/PlayIntegrity (на старых API) как резервный канал верификации целостности. (Stack Overflow)
Ссылки
- Reproducible Builds и их польза для безопасности Android (Consagous Technologies)
- Play Integrity API — обзор (Android Developers)
- SLSA — Supply-chain Levels for Software Artifacts (SLSA)
- ApkRash — инструмент сравнения APK/Manifest/Smali (GitHub)
- Stack Overflow: Tamper-detection & SafetyNet (Stack Overflow)