Категория OWASP: MASVS-CODE: Качество кода
Обзор
Реализация HostnameVerifier
отвечает за проверку соответствия имени хоста в сертификате сервера имени хоста сервера, к которому пытается подключиться клиент.
Небезопасная реализация HostnameVerifier
в приложении Android — это реализация, которая не проверяет должным образом имя хоста сервера, с которым взаимодействует приложение. Это может позволить злоумышленнику выдать себя за законный сервер и заставить приложение отправить злоумышленнику конфиденциальные данные.
Эта уязвимость существует, поскольку класс HostnameVerifier
имеет вызовы функций, которые могут пропускать проверку имени хоста сертификата X.509 и вместо этого проверять только хэш сертификата. Распространенным заблуждением является то, что функция SSLSession#isValid
выполняет операцию, связанную с безопасностью, хотя на самом деле ее целью является только проверка того, действителен ли сеанс и доступен ли он для возобновления или присоединения; ни один из которых не подтверждает безопасность сеанса. Класс HostnameVerifier
был заменен классом NetworkSecurityConfig .
Влияние
Небезопасные реализации HostnameVerifier
могут привести к появлению уязвимостей, которые можно использовать для выполнения атак MiTM (Man-in-The-Middle) на сетевой трафик из приложения-жертвы. Результатом использования этого небезопасного кода является то, что сетевые данные пользовательского приложения могут быть скомпрометированы сетевыми злоумышленниками (удаленно или локально), если этот код сработает. Воздействие зависит от непреднамеренного раскрытия содержимого сетевого трафика (PII, личная информация, конфиденциальные значения сеанса, учетные данные службы и т. д.).
Смягчения
Используйте функциональность NetworkSecurityConfig.xml, чтобы обеспечить правильную обработку всех соединений на этапе производства, тестирования, отладки и разработки, а не использовать или внедрять собственный код проверки сертификата TLS/SSL.
Ресурсы
- Документация по настройке сетевой безопасности
- Документация разработчика для класса
HostnameVerifier