Postępowanie w przypadku, gdy w aplikacjach pojawiają się alerty modułu obsługi błędów WebView SSL

Ten artykuł jest przeznaczony dla deweloperów, których aplikacje używają potencjalnie niebezpiecznej implementacji modułu obsługi WebViewClient.onReceivedSslError.

O co chodzi?

Co najmniej jedna z Twoich aplikacji zawiera potencjalnie niebezpieczną implementację modułu obsługi onReceivedSslError, przez co jest ona podatna na ataki typu „man-in-the-middle”. Osoba atakująca może zmienić treść podatnego na takie zagrożenia komponentu WebView, odczytać przesyłane dane (np. dane logowania) i uruchomić kod w aplikacji przy użyciu języka JavaScript. Zapoznaj się z powiadomieniem w Konsoli PlayPo przekroczeniu terminów wskazanych w Konsoli Play wszystkie aplikacje z lukami w zabezpieczeniach mogą zostać usunięte z Google Play.

Wymagane działania​

  1. Zaloguj się w Konsoli Play i przejdź do sekcji Alerty, by sprawdzić, których aplikacji dotyczy problem i jaki jest termin jego rozwiązania.
  2. Zaktualizuj te aplikacje i usuń lukę w zabezpieczeniach.
  3. Prześlij zaktualizowane wersje tych aplikacji.

Po ponownym przesłaniu aplikacja zostanie jeszcze raz sprawdzona. Ten proces może potrwać kilka godzin. Jeśli aplikacja pomyślnie przejdzie weryfikację i zostanie opublikowana, nie musisz już nic robić. Jeśli wynik weryfikacji nie będzie pomyślny, nowa wersja aplikacji nie zostanie opublikowana, a Ty otrzymasz powiadomienie e-mailem.

Dodatkowe szczegóły

  1. Aby rozwiązać ten problem, zmień kod aplikacji w taki sposób, by wywoływał metodę SslErrorHandler.proceed(), gdy certyfikat przedstawiony przez serwer jest zgodny z oczekiwaniami, a metodę SslErrorHandler.cancel(), gdy taki nie jest. Podczas sprawdzania poprawności certyfikatu weź pod uwagę te kwestie:
    1. Aplikacja może zostać oznaczona, jeśli nie zawiera odpowiednich mechanizmów sprawdzania poprawności certyfikatu. Na przykład samo sprawdzenie wartości zwracanej przez metodę getPrimaryError nie wystarcza do określenia poprawności certyfikatu.

    2. Ignorowanie większości błędów SSL zwracanych przez metodę SslError.getPrimaryError nie jest bezpieczne. Pamiętaj, że metoda getPrimaryError zwraca najpoważniejszy błąd w zestawie błędów, więc jeśli getPrimaryError() != SSL_UNTRUSTED ma wartość Prawda, zestaw błędów połączenia nadal może zawierać błąd SSL_UNTRUSTED.

  2. Jeśli używasz biblioteki zewnętrznej, która odpowiada za to działanie, powiadom jej twórców i rozwiąż ten problem razem z nimi.

Więcej informacji o module obsługi błędów SSL znajdziesz w dokumentacji w Centrum pomocy dla deweloperów aplikacji na Androida. Jeśli masz inne pytania techniczne, możesz je opublikować na https://www.stackoverflow.com/questions, używając tagów „android-security” i „SslErrorHandler”.

Te problemy nie muszą pojawić się w każdej aplikacji używającej WebView SSL, ale najlepiej jest na bieżąco wprowadzać wszelkie poprawki zabezpieczeń. Aplikacje z lukami, które narażają użytkowników na zagrożenia, możemy uznać za produkty niebezpieczne z powodu naruszenia naszej Polityki treści oraz punktu 4.4 Umowy dystrybucyjnej dla deweloperów.

Chętnie Ci pomożemy

Jeśli masz pytania techniczne związane z tą luką, możesz je opublikować na stronie Stack Overflow, używając tagu „android-security”. Jeśli potrzebujesz wyjaśnienia czynności niezbędnych do rozwiązania tego problemu, skontaktuj się z naszym zespołem pomocy dla deweloperów.

Czy to było pomocne?

Jak możemy ją poprawić?
false
Menu główne
2254735869290382608
true
Wyszukaj w Centrum pomocy
true
true
true
true
true
5016068
false
false