Обнаружены «внутренние домены», доступные извне
Описание
При статическом анализе распакованного IPA-файла были обнаружены URL-строки, совпадающие с паттернами внутренних доменов (например, api.staging.company.internal
). Проверка из публичной сети показала, что эти хосты резолвятся во внешний IP-адрес и отвечают на запросы. Это означает, что тестовое или staging-окружение опубликовано без VPN / ACL и при этом осталось в релизной сборке приложения. (Trend Micro)
Потенциальные последствия
- Расширенная поверхность атаки. В staging-средах часто включены debug-эндпоинты и ослаблена аутентификация, поэтому их взлом значительно проще. (Trend Micro)
- Утечка данных. Открытые логи, тестовые базы и Swagger-доки могут быть доступны без авторизации.
- Переход на продакшн. Завладев staging-сервером, злоумышленник может использовать общие ключи, CI-секреты или туннели для атаки на production.
- Несоответствие требованиям App Store и отраслевых стандартов (OWASP MASVS). (OWASP Mobile Security)
Рекомендации
-
Разнести окружения через
.xcconfig
и схемы XcodeСоздайте отдельные конфигурационные файлы и подключайте в нужной схеме; в релизе должен подставляться только продакшн-хост.
Подробно о добавлении
.xcconfig
— см. официальную документацию. (Apple Developer) -
Включить allow-list через App Transport Security (ATS)
- Запретите
NSAllowsArbitraryLoads
. - Добавьте только продакшн-хосты в
NSExceptionDomains
; для staging-доменов не должно быть исключений.
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><false/> <key>NSExceptionDomains</key> <dict> <key>api.prod.company.com</key> <dict> <key>NSIncludesSubdomains</key><true/> </dict> </dict> </dict>
Документация ATS/
NSExceptionDomains
. (Apple Developer) - Запретите
-
Закрыть staging-окружение от Интернета
- Разрешайте доступ только через корпоративный VPN, Zero-Trust Access Proxy или IP allow-list. (Microsoft Learn)
- Включайте mTLS или Basic Auth для аварийного доступа, чтобы поисковые сканеры не индексировали сервисы.
-
Использовать приватные TLD и split-DNS
Назначайте dev-зонам суффиксы
.internal
,.corp
,.test
, которые не резолвятся глобальными DNS-серверами.
Ссылки
- Trend Micro — Securing Application Staging & Production Environments (Trend Micro)
- Adding a build configuration file to your project (.xcconfig) (Apple Developer)
- NSAppTransportSecurity > NSExceptionDomains — Apple Developer Documentation (Apple Developer)
- OWASP MASVS — Testing Code Quality & Build Settings (OWASP Mobile Security)
- Microsoft Learn — Secure applications with Zero Trust (Microsoft Learn)