Ta sekcja zawiera zalecenia dotyczące zapewniania bezpieczeństwa komunikacji sieciowej na urządzeniach z Androidem.
Bezpieczne gniazda nasłuchujące
Stosuj gniazda nasłuchujące z ostrożnością. Na urządzeniach nie powinno być żadnych otwartych gniazd nasłuchujących, ponieważ stanowią one wektor umożliwiający atakującemu zdalne uzyskanie dostępu do urządzenia.
- Urządzenia z Androidem powinny minimalizować liczbę udostępnianych gniazd nasłuchujących na potrzeby Internetu, zwłaszcza podczas uruchamiania lub domyślnie. Domyślnie żaden gniazdo nie powinien nasłuchiwać w internecie podczas uruchamiania.
- Procesy root i procesy należące do identyfikatora unikalnego systemu (UID) nie powinny ujawniać żadnych gniazd nasłuchujących.
- Gniazdka nasłuchujące muszą być wyłączane bez aktualizacji OTA. Można to zrobić, zmieniając konfigurację serwera lub urządzenia użytkownika.
- W przypadku gniazd używających lokalnego interfejsu IPC aplikacje muszą używać gniazd domeny UNIX z dostępem ograniczonym do grupy. Utwórz deskryptor pliku dla interfejsu IPC i nadaj mu uprawnienia +RW dla określonej grupy UNIX. Wszystkie aplikacje klienckie muszą znajdować się w tej grupie UNIX.
- Niektóre urządzenia z kilkoma procesorami (np. radio/modem oddzielone od procesora aplikacji) używają gniazd sieciowych do komunikacji między procesorami. W takich przypadkach gniazdo sieciowe używane do komunikacji między procesorami musi korzystać z odseparowanego interfejsu sieciowego, aby uniemożliwić dostęp nieautoryzowanym aplikacjom na urządzeniu (np. użyć iptables, aby uniemożliwić dostęp innym aplikacjom na urządzeniu).
- Demony, które obsługują porty nasłuchujące, muszą być odporne na źle sformatowane dane. Należy przeprowadzić testy fuzzing na porcie za pomocą nieautoryzowanego klienta i w miarę możliwości autoryzowanego klienta. Zgłaszaj błędy, aby śledzić informacje o awariach.
Pakiet testów zgodności Androida (CTS) zawiera testy, które sprawdzają obecność otwartych portów nasłuchujących.
Wyłączanie adb
Android Debug Bridge (adb) to przydatne narzędzie do tworzenia i debugowania, ale jest ono przeznaczone do użytku w kontrolowanym, bezpiecznym środowisku i nie powinno być włączone do ogólnego użytku.
- Upewnij się, że adb jest domyślnie wyłączone.
- Upewnij się, że adb wymaga od użytkownika włączenia przed akceptacją połączeń.