Обнаружены «внутренние домены», доступные извне
Описание
Статический анализ релиз-сборки выявил URL-адреса, заданные как внутренние (например api.staging.company.internal
), но при проверке из публичной сети они резолвятся во внешний IP-адрес и отвечают на запросы. Такая ситуация означает, что тестовое или staging-окружение опубликовано без VPN / ACL и осталось в приложении после сборки. (Trend Micro)
Потенциальные последствия
- Расширенная поверхность атаки. У staging-серверов обычно ослаблены механизмы аутентификации и работают debug-эндпоинты; компрометация облегчена. (Trend Micro)
- Утечка конфиденциальных данных. Логи, тестовые учётки, бэкапы и Swagger могут быть доступны без авторизации.
- Переход на прод. Злоумышленник, получивший доступ к staging, часто проламывает production через общие базы или CI-секреты.
- Нарушение требований Google Play по защите пользовательских данных. (Справка Google)
Рекомендации
1. Развести окружения через buildTypes
/ productFlavors
Убедитесь, что релизная конфигурация не содержит dev-доменов:
android {
buildTypes {
debug {
buildConfigField "String", "BASE_URL",
"\"https://api.staging.company.internal\""
}
release {
buildConfigField "String", "BASE_URL",
"\"https://api.prod.company.com\""
debuggable false
minifyEnabled true
}
}
}
(Android Developers) (Stack Overflow)
2. Ограничить внешние подключения через Network Security Config
<!-- res/xml/network_security_config.xml -->
<network-security-config>
<domain-config cleartextTrafficPermitted="false">
<domain includeSubdomains="true">api.prod.company.com</domain>
</domain-config>
</network-security-config>
- Подключите файл в
AndroidManifest.xml
(android:networkSecurityConfig
). - В staging-ветке добавьте отдельный конфиг, доступный только из VPN. (Android Developers) (AppSec Labs)
3. Закрыть staging-окружение от Интернета
- Разрешайте доступ только через корпоративный VPN, Zero-Trust-Proxy или IP allow-list.
- Включите mTLS / Basic Auth для аварийных случаев, чтобы сканеры не индексировали сервисы.
Ссылки
- Trend Micro — Securing Application Staging & Production Environments (Trend Micro)
- Android Developers — Network Security Configuration (Android Developers)
- AppSec-Labs — Understanding
cleartextTrafficPermitted
(AppSec Labs) - Android Developers — Configure Build Variants (Android Developers)
- StackOverflow — Switching URL per BuildType (BuildConfig example) (Stack Overflow)
- Google Play Developer Policy — Compliance with Local Laws (Справка Google)