En esta sección, se incluyen recomendaciones para garantizar la seguridad de las comunicaciones de red desde dispositivos Android.
Escucha de sockets segura
Usa los sockets de escucha con precaución. Por lo general, no debería haber sockets de escucha abiertos en los dispositivos, ya que proporcionan un vector para que un atacante remoto obtenga acceso al dispositivo.
- Los dispositivos Android deben minimizar la cantidad de sockets de escucha de Internet que exponen, especialmente durante el inicio o de forma predeterminada. No debería haber ningún socket que escuche en Internet durante el inicio de forma predeterminada.
- Los procesos raíz y los que pertenecen al identificador único (UID) del sistema no deben exponer ningún socket de escucha.
- Los sockets de escucha deben poder inhabilitarse sin una actualización inalámbrica. Esto se puede realizar mediante un cambio de configuración del servidor o del dispositivo del usuario.
- En el caso de los sockets locales que usan IPC, las apps deben usar un socket de dominio UNIX con acceso limitado a un grupo. Crea un descriptor de archivo para el IPC y haz que sea +RW para un grupo UNIX específico. Todas las apps cliente deben estar dentro de ese grupo de UNIX.
- Algunos dispositivos con varios procesadores (por ejemplo, una radio o un módem separados del procesador de la app) usan sockets de red para comunicarse entre procesadores. En esos casos, el socket de red que se usa para la comunicación entre procesadores debe usar una interfaz de red aislada para evitar el acceso de apps no autorizadas en el dispositivo (es decir, usar iptables para evitar el acceso de otras apps en el dispositivo).
- Los demonios que controlan los puertos de escucha deben ser resistentes a los datos con formato incorrecto. Debes realizar pruebas de fuzz en el puerto con un cliente no autorizado y, si es posible, con un cliente autorizado. Informa los errores para hacer un seguimiento de los bloqueos.
El Conjunto de pruebas de compatibilidad de Android (CTS) incluye pruebas que verifican la presencia de puertos de escucha abiertos.
Inhabilita adb
Android Debug Bridge (adb) es una herramienta de desarrollo y depuración valiosa, pero está diseñada para usarse en un entorno controlado y seguro, y no debe habilitarse para uso general.
- Asegúrate de que adb esté inhabilitado de forma predeterminada.
- Asegúrate de que adb requiera que el usuario lo active antes de aceptar conexiones.