Небезопасное имя хостаVerifier

Категория OWASP: MASVS-CODE: Качество кода

Обзор

Реализация HostnameVerifier отвечает за проверку соответствия имени хоста в сертификате сервера имени хоста сервера, к которому пытается подключиться клиент.

Небезопасная реализация HostnameVerifier в приложении Android — это реализация, которая не проверяет должным образом имя хоста сервера, с которым взаимодействует приложение. Это может позволить злоумышленнику выдать себя за законный сервер и заставить приложение отправить злоумышленнику конфиденциальные данные.

Эта уязвимость существует, поскольку класс HostnameVerifier имеет вызовы функций, которые могут пропускать проверку имени хоста сертификата X.509 и вместо этого проверять только хэш сертификата. Распространенным заблуждением является то, что функция SSLSession#isValid выполняет операцию, связанную с безопасностью, хотя на самом деле ее целью является только проверка того, действителен ли сеанс и доступен ли он для возобновления или присоединения; ни один из которых не подтверждает безопасность сеанса. Класс HostnameVerifier был заменен классом NetworkSecurityConfig .

Влияние

Небезопасные реализации HostnameVerifier могут привести к появлению уязвимостей, которые можно использовать для выполнения атак MiTM (Man-in-The-Middle) на сетевой трафик из приложения-жертвы. Результатом использования этого небезопасного кода является то, что сетевые данные пользовательского приложения могут быть скомпрометированы сетевыми злоумышленниками (удаленно или локально), если этот код сработает. Воздействие зависит от непреднамеренного раскрытия содержимого сетевого трафика (PII, личная информация, конфиденциальные значения сеанса, учетные данные службы и т. д.).

Смягчения

Используйте функциональность NetworkSecurityConfig.xml, чтобы обеспечить правильную обработку всех соединений на этапе производства, тестирования, отладки и разработки, а не использовать или внедрять собственный код проверки сертификата TLS/SSL.

Ресурсы