Перейти к содержанию

Обнаружены «внутренние домены», доступные извне

Описание

Статический анализ релиз-сборки выявил 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 для аварийных случаев, чтобы сканеры не индексировали сервисы.

Ссылки

  1. Trend Micro — Securing Application Staging & Production Environments (Trend Micro)
  2. Android Developers — Network Security Configuration (Android Developers)
  3. AppSec-Labs — Understanding cleartextTrafficPermitted (AppSec Labs)
  4. Android Developers — Configure Build Variants (Android Developers)
  5. StackOverflow — Switching URL per BuildType (BuildConfig example) (Stack Overflow)
  6. Google Play Developer Policy — Compliance with Local Laws (Справка Google)
К началу