Mejoras de seguridad en Android 4.3

Cada versión de Android incluye docenas de mejoras de seguridad para proteger a los usuarios. Las siguientes son algunas de las mejoras de seguridad disponibles en Android 4.3:

  • Sandbox de Android reforzado con SELinux. Esta versión fortalece el sandbox de Android utilizando el sistema de control de acceso obligatorio (MAC) de SELinux en el kernel de Linux. El refuerzo de SELinux es invisible para los usuarios y desarrolladores, y agrega robustez al modelo de seguridad de Android existente mientras mantiene la compatibilidad con las aplicaciones existentes. Para garantizar la compatibilidad continua, esta versión permite el uso de SELinux en un modo permisivo. Este modo registra cualquier infracción de política, pero no interrumpirá las aplicaciones ni afectará el comportamiento del sistema.
  • Sin programas setuid/setgid. Se agregó soporte para las capacidades del sistema de archivos a los archivos del sistema Android y se eliminaron todos los programas setuid/setguid. Esto reduce la superficie de ataque raíz y la probabilidad de posibles vulnerabilidades de seguridad.
  • Autenticación ADB. Desde Android 4.2.2, las conexiones a ADB se autentican con un par de claves RSA. Esto evita el uso no autorizado de ADB donde el atacante tiene acceso físico a un dispositivo.
  • Restrinja Setuid de las aplicaciones de Android. La partición /system ahora está montada como nosuid para los procesos generados por cigotos, lo que impide que las aplicaciones de Android ejecuten programas setuid. Esto reduce la superficie de ataque raíz y la probabilidad de posibles vulnerabilidades de seguridad.
  • Límite de capacidad. Android zygote y ADB ahora usan prctl(PR_CAPBSET_DROP) para descartar capacidades innecesarias antes de ejecutar aplicaciones. Esto evita que las aplicaciones de Android y las aplicaciones lanzadas desde el shell adquieran capacidades privilegiadas.
  • Proveedor de AndroidKeyStore. Android ahora tiene un proveedor de almacén de claves que permite que las aplicaciones creen claves de uso exclusivo. Esto proporciona a las aplicaciones una API para crear o almacenar claves privadas que otras aplicaciones no pueden utilizar.
  • KeyChain es un algoritmo de clave enlazada. La API de llavero ahora proporciona un método (isBoundKeyType) que permite que las aplicaciones confirmen que las claves de todo el sistema están vinculadas a una raíz de confianza de hardware para el dispositivo. Esto proporciona un lugar para crear o almacenar claves privadas que no se pueden exportar fuera del dispositivo, incluso en el caso de un compromiso de raíz.
  • NO_NUEVOS_PRIVS. Android zygote ahora usa prctl(PR_SET_NO_NEW_PRIVS) para bloquear la adición de nuevos privilegios antes de ejecutar el código de la aplicación. Esto evita que las aplicaciones de Android realicen operaciones que pueden elevar los privilegios a través de execve. (Esto requiere la versión 3.5 o superior del kernel de Linux).
  • Mejoras de FORTIFY_SOURCE. Se habilitó FORTIFY_SOURCE en Android x86 y MIPS y se fortalecieron las llamadas strchr(), strrchr(), strlen() y umask(). Esto puede detectar posibles vulnerabilidades de corrupción de memoria o constantes de cadena no terminadas.
  • Protecciones de reubicación. Habilitó reubicaciones de solo lectura (relro) para ejecutables vinculados estáticamente y eliminó todas las reubicaciones de texto en el código de Android. Esto proporciona una defensa en profundidad contra posibles vulnerabilidades de corrupción de la memoria.
  • EntropyMixer mejorado. EntropyMixer ahora escribe entropía al apagar/reiniciar, además de la mezcla periódica. Esto permite la retención de toda la entropía generada mientras los dispositivos están encendidos y es especialmente útil para los dispositivos que se reinician inmediatamente después del aprovisionamiento.
  • Correcciones de seguridad. Android 4.3 también incluye correcciones para vulnerabilidades específicas de Android. Se ha proporcionado información sobre estas vulnerabilidades a los miembros de Open Handset Alliance y las soluciones están disponibles en Android Open Source Project. Para mejorar la seguridad, algunos dispositivos con versiones anteriores de Android también pueden incluir estas correcciones.