Предупреждение Google Play: уязвимость обработчика ошибок SSL имеет ложное срабатывание для WebViewClient.onReceivedSslErrorHandler SSL

Я участвую в совместном проекте библиотеки, который только что получил notice один из наших клиентов получил это предупреждение из магазина Google Play,

Уважаемый разработчик Google Play! В июле приложения, указанные в конце этого письма, были отклонены из-за небезопасной реализации WebViewClient.onReceivedSslErrorHandler. Эта реализация игнорирует все ошибки проверки сертификатов SSL, что делает ваше приложение уязвимым для атак типа «злоумышленник в середине». Злоумышленник может изменить содержимое затронутого WebView, прочитать переданные данные (например, учетные данные для входа) и выполнить код внутри приложения с помощью JavaScript.

При просмотре нашего AuthorizationWebViewClient, который расширяет WebViewClient, мы не реализуем onReceivedSslErrorHandler, что означает, что мы подпадаем под реализацию по умолчанию, оставляя эту библиотеку в открытом виде.

Можем ли мы получить подтверждение, если это ложное срабатывание или необходимо внести изменения в эту библиотеку?

ОБНОВЛЕНИЕ: это произошло из-за того, что используемая версия SDK была намного старше, когда эта уязвимость присутствовала, текущая кодовая база не имеет этой проблемы, следовательно, отключение.


person Peter Nied    schedule 22.09.2016    source источник
comment
Наша реализация переопределяет _ 1_, но я ожидаю, что это не связано с этим предупреждением.   -  person Peter Nied    schedule 22.09.2016


Ответы (1)


Я не уверен, о каком конкретном приложении идет речь, но есть приложения с уязвимым com.microsoft.services.msa.AuthorizationRequest $ OAuthDialog $ AuthorizationWebViewClient.

Например, дизассемблирование кода одного приложения показывает, что оно действительно имеет реализацию onReceivedSslErrorHandler.

.method public onReceivedSslError(Landroid/webkit/WebView;Landroid/webkit/SslErrorHandler;Landroid/net/http/SslError;)V
    .registers 4
    .param p1, "view"    # Landroid/webkit/WebView;
    .param p2, "handler"    # Landroid/webkit/SslErrorHandler;
    .param p3, "error"    # Landroid/net/http/SslError;

    .prologue
    .line 143
    invoke-virtual {p2}, Landroid/webkit/SslErrorHandler;->proceed()V

    .line 144
    return-void
.end method
person Antimony    schedule 04.10.2016
comment
Спасибо, это было исправлено в выпуске более года назад, и похоже, что этот продукт не обновил свою версию. Потребовалось много времени, чтобы разобраться, что это было проблемой в прошлом. Можно ли отправить разработчикам все версии модулей, перечисленные в предупреждающем сообщении, для ускорения обнаружения и разрешения проблем? - person Peter Nied; 06.10.2016
comment
Проблема в том, что нет общего способа узнать, почему данный код был включен в приложение (является ли он частью SDK, и если да, то какой версии). Кроме того, у каждого SDK есть собственная схема управления версиями, а некоторые приложения обфусцированы. - person Antimony; 07.10.2016
comment
Вы можете преодолеть эти технические проблемы, чтобы сделать страшный опыт более доступным. Я верю в вас, ребята! - person Peter Nied; 08.10.2016