Kategoria OWASP: MASVS-NETWORK: Network Communication
Omówienie
Niezabezpieczone konfiguracje DNS mogą wystąpić, gdy programiści dostosują sposób działania transportu DNS aplikacji, pominą ustawienia domyślne urządzenia lub gdy użytkownik określi prywatny serwer DNS w Androidzie 9 i nowszych wersjach. Odchylenia od znanych, prawidłowych konfiguracji DNS mogą narażać użytkowników na ataki, takie jak podszywanie się pod DNS czy zatruwanie pamięci podręcznej DNS, co pozwala atakującym przekierowywać ruch użytkowników do złośliwych witryn.
Wpływ
Jeśli złośliwy atakujący w sieci jest w stanie sfałszować DNS, może dyskretnie przekierować użytkownika do kontrolowanej przez siebie witryny, nie wzbudzając jego podejrzeń. Ta złośliwa witryna może na przykład wyłudzać od użytkownika informacje umożliwiające identyfikację, powodować atak typu DoS lub przekierowywać użytkownika do innych witryn bez powiadomienia.
Ryzyko: podatność zabezpieczeń transportu DNS
Niestandardowe konfiguracje DNS mogą umożliwiać aplikacjom omijanie wbudowanego w Androida zabezpieczenia transportu DNS w Androidzie 9 i nowszym.
Środki ograniczające ryzyko
Używanie systemu Android do obsługi ruchu DNS
Zezwól systemowi Android na obsługę DNS. Od poziomu SDK 28 Android zwiększył bezpieczeństwo transportu DNS dzięki DNS over TLS, a następnie DNS over HTTP/3 na poziomie SDK 30.
Użyj SDK na poziomie ≥ 28
Zaktualizuj poziom pakietu SDK do co najmniej 28. Należy pamiętać, że to rozwiązanie wymaga komunikacji ze znanymi i bezpiecznymi publicznymi serwerami DNS, takimi jak te, które można znaleźć tutaj.
Materiały
- Rozwiązywanie zapytań DNS
- Dokumentacja języka Java dotycząca klasy DnsResolver
- Post na blogu Android Security na temat DNS-over-HTTP/3
- Omówienie bezpiecznego transportu dla DNS
- Post na blogu dla deweloperów aplikacji na Androida na temat DNS over TLS