Tento článek je určen vývojářům aplikací, kteří používají nezabezpečenou implementaci obslužného nástroje WebViewClient.onReceivedSslError.
K čemu dochází
U jedné nebo více vašich aplikací se vyskytuje nezabezpečená implementace obslužného nástroje onReceivedSslError, kvůli které je aplikace náchylná k útokům typu man-in-the-middle. Útočník by mohl změnit obsah příslušného webového zobrazení, přečíst si odesílaná data (jako jsou přihlašovací údaje) a spustit kód v aplikaci pomocí JavaScriptu. Další informace najdete v oznámení ve službě Play Console. Po termínech uvedených v Play Console mohou být aplikace s neopravenými chybami zabezpečení z Google Play odstraněny.
Vyžadovaná akce
- Přihlaste se do Play Console a přejděte do sekce Upozornění, kde zjistíte, kterých aplikací se tento problém týká a do kdy je potřeba jej vyřešit.
- Aktualizujte dotčené aplikace a chybu zabezpečení opravte.
- Odešlete aktualizované verze dotčených aplikací.
Po odeslání bude aplikace znovu zkontrolována. Tento proces může trvat několik hodin. Pokud aplikace při kontrole projde a bude úspěšně publikována, není potřeba podnikat žádné další kroky. Jestliže aplikace při kontrole neprojde, nová verze aplikace nebude publikována a obdržíte e‑mailem oznámení.
Další podrobnosti
- Problém vyřešíte takto: kód svých aplikací změňte tak, aby pokaždé, když certifikát poskytnutý serverem splňuje vaše očekávání, volal metodu SslErrorHandler.proceed() a v ostatních případech volal metodu SslErrorHandler.cancel(). Při kontrole platnosti certifikátu zohledněte následující skutečnosti:
-
Aplikace může být nahlášena, pokud nebude obsahovat dostatečné kontroly platnosti certifikátu – ke stanovení platnosti certifikátu například nestačí jen zkontrolovat hodnotu vrácenou metodou getPrimayError.
-
Není bezpečné ignorovat většinu chyb certifikátu vrácených metodou SslError.getPrimaryError. Upozorňujeme, že metoda getPrimaryError vrací většinu závažných chyb v sadě, což znamená, že pokud má metoda
getPrimaryError() != SSL_UNTRUSTED
hodnotu true, připojení může v sadě chyb přesto obsahovat chybu SSL_UNTRUSTED.
-
-
Pokud používáte knihovnu třetí strany, která je za toto odpovědná, informujte příslušnou třetí stranu a společně s ní problém vyřešte.
Další informace o obslužném nástroji chyb SSL naleznete v dokumentaci v centru nápovědy pro vývojáře Android. Máte-li jiné technické otázky, publikuje příspěvek na adrese https://www.stackoverflow.com/questions. Použijte štítky „android-security“ a „SslErrorHandler“.
Ačkoli tyto konkrétní problémy nemusejí mít dopad na každou aplikaci, která používá nástroj WebView SSL, doporučujeme instalovat všechny opravy zabezpečení. Aplikace s chybami zabezpečení, které uživatele vystavují riziku zneužití, mohou být považovány za nebezpečné produkty, jež porušují obsahové zásady a odstavec 4.4 distribuční smlouvy pro vývojáře.
Rádi vám poradíme
Máte-li ohledně této zranitelnosti technické dotazy, publikuje příspěvek na webu Stack Overflow. Použijte štítek „android-security“. Pokud potřebujete poradit s jednotlivými kroky k řešení tohoto problému, obraťte se na náš tým podpory pro vývojáře.