Google is committed to advancing racial equity for Black communities. See how.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Seguridad del sistema y del kernel

A nivel del sistema operativo, la plataforma Android proporciona la seguridad del kernel de Linux, así como una función de comunicación entre procesos (IPC) segura para permitir la comunicación segura entre aplicaciones que se ejecutan en diferentes procesos. Estas características de seguridad a nivel de sistema operativo garantizan que incluso el código nativo esté restringido por el entorno de pruebas de la aplicación. Ya sea que ese código sea el resultado del comportamiento de una aplicación incluida o una explotación de la vulnerabilidad de una aplicación, el sistema está diseñado para evitar que la aplicación maliciosa dañe otras aplicaciones, el sistema Android o el dispositivo mismo. Consulte Configuración del kernel para conocer las medidas que puede tomar para fortalecer el kernel en sus dispositivos. Consulte el Documento de definición de compatibilidad de Android (CDD) para conocer las configuraciones necesarias.

Seguridad Linux

La base de la plataforma Android es el kernel de Linux. El kernel de Linux se ha utilizado ampliamente durante años y se utiliza en millones de entornos sensibles a la seguridad. A través de su historia de ser constantemente investigado, atacado y arreglado por miles de desarrolladores, Linux se ha convertido en un kernel estable y seguro en el que confían muchas corporaciones y profesionales de la seguridad.

Como base para un entorno informático móvil, el kernel de Linux proporciona a Android varias funciones de seguridad clave, que incluyen:

  • Un modelo de permisos basado en el usuario
  • Aislamiento de procesos
  • Mecanismo extensible para IPC seguro
  • La capacidad de eliminar partes innecesarias y potencialmente inseguras del kernel.

Como sistema operativo multiusuario, un objetivo de seguridad fundamental del kernel de Linux es aislar los recursos de los usuarios entre sí. La filosofía de seguridad de Linux es proteger los recursos de los usuarios entre sí. Por tanto, Linux:

  • Evita que el usuario A lea los archivos del usuario B
  • Garantiza que el usuario A no agote la memoria del usuario B
  • Garantiza que el usuario A no agote los recursos de CPU del usuario B
  • Garantiza que el usuario A no agote los dispositivos del usuario B (por ejemplo, telefonía, GPS y Bluetooth)

La zona de pruebas de la aplicación

La seguridad de las aplicaciones de Android es reforzada por la zona de pruebas de aplicaciones, que aísla las aplicaciones entre sí y protege las aplicaciones y el sistema de aplicaciones maliciosas. Para obtener más detalles, consulte Application Sandbox .

Partición del sistema y modo seguro

La partición del sistema contiene el kernel de Android, así como las bibliotecas del sistema operativo, el tiempo de ejecución de la aplicación, el marco de la aplicación y las aplicaciones. Esta partición está configurada como de solo lectura. Cuando un usuario inicia el dispositivo en modo seguro, el propietario del dispositivo puede iniciar manualmente aplicaciones de terceros, pero no se inician de forma predeterminada.

Permisos del sistema de archivos

En un entorno de estilo UNIX, los permisos del sistema de archivos aseguran que un usuario no pueda alterar o leer los archivos de otro usuario. En el caso de Android, cada aplicación se ejecuta como su propio usuario. A menos que el desarrollador comparta archivos explícitamente con otras aplicaciones, los archivos creados por una aplicación no pueden ser leídos ni alterados por otra aplicación.

Linux con seguridad mejorada

Android usa Security-Enhanced Linux (SELinux) para aplicar políticas de control de acceso y establecer un control de acceso obligatorio (mac) en los procesos. Consulte Linux con seguridad mejorada en Android para obtener más detalles.

Arranque verificado

Android 6.0 y versiones posteriores admiten arranque verificado y mapeo de dispositivos. El arranque verificado garantiza la integridad del software del dispositivo desde una raíz de hardware de confianza hasta la partición del sistema. Durante el arranque, cada etapa verifica criptográficamente la integridad y autenticidad de la siguiente etapa antes de ejecutarla.

Android 7.0 y versiones posteriores admiten un arranque verificado estrictamente aplicado, lo que significa que los dispositivos comprometidos no pueden arrancar.

Consulte Arranque verificado para obtener más detalles.

Criptografía

Android proporciona un conjunto de API criptográficas para que las utilicen las aplicaciones. Estos incluyen implementaciones de primitivas criptográficas estándar y de uso común, como AES, RSA, DSA y SHA. Además, se proporcionan API para protocolos de nivel superior como SSL y HTTPS.

Android 4.0 introdujo la clase KeyChain para permitir que las aplicaciones usen el almacenamiento de credenciales del sistema para claves privadas y cadenas de certificados.

Enraizamiento de dispositivos

De forma predeterminada, en Android solo el kernel y un pequeño subconjunto de las aplicaciones principales se ejecutan con permisos de root. Android no impide que un usuario o una aplicación con permisos de root modifique el sistema operativo, el kernel o cualquier otra aplicación. En general, root tiene acceso completo a todas las aplicaciones y todos los datos de las aplicaciones. Los usuarios que cambian los permisos en un dispositivo Android para otorgar acceso de root a las aplicaciones aumentan la exposición de seguridad a aplicaciones maliciosas y posibles fallas de aplicaciones.

La capacidad de modificar un dispositivo Android que poseen es importante para los desarrolladores que trabajan con la plataforma Android. En muchos dispositivos Android, los usuarios tienen la capacidad de desbloquear el cargador de arranque para permitir la instalación de un sistema operativo alternativo. Estos sistemas operativos alternativos pueden permitir que un propietario obtenga acceso de root para depurar aplicaciones y componentes del sistema o para acceder a funciones que las API de Android no presentan a las aplicaciones.

En algunos dispositivos, una persona con control físico de un dispositivo y un cable USB puede instalar un nuevo sistema operativo que proporciona privilegios de root al usuario. Para proteger cualquier dato de usuario existente del peligro, el mecanismo de desbloqueo del cargador de arranque requiere que el cargador de arranque borre cualquier dato de usuario existente como parte del paso de desbloqueo. El acceso de root obtenido mediante la explotación de un error del kernel o un agujero de seguridad puede eludir esta protección.

El cifrado de datos con una clave almacenada en el dispositivo no protege los datos de la aplicación de los usuarios raíz. Las aplicaciones pueden agregar una capa de protección de datos mediante cifrado con una clave almacenada fuera del dispositivo, como en un servidor o una contraseña de usuario. Este enfoque puede proporcionar protección temporal mientras la clave no está presente, pero en algún momento se debe proporcionar la clave a la aplicación y luego se vuelve accesible para los usuarios root.

Un enfoque más sólido para proteger los datos de los usuarios raíz es mediante el uso de soluciones de hardware. Los OEM pueden optar por implementar soluciones de hardware que limitan el acceso a tipos específicos de contenido, como DRM para reproducción de video, o el almacenamiento confiable relacionado con NFC para Google Wallet.

En el caso de un dispositivo perdido o robado, el cifrado completo del sistema de archivos en los dispositivos Android utiliza la contraseña del dispositivo para proteger la clave de cifrado, por lo que modificar el cargador de arranque o el sistema operativo no es suficiente para acceder a los datos del usuario sin la contraseña del dispositivo del usuario.

Funciones de seguridad del usuario

Cifrado del sistema de archivos

Android 3.0 y versiones posteriores proporcionan cifrado completo del sistema de archivos, por lo que todos los datos del usuario se pueden cifrar en el kernel.

Android 5.0 y versiones posteriores admiten el cifrado de disco completo . El cifrado de disco completo utiliza una única clave, protegida con la contraseña del dispositivo del usuario, para proteger toda la partición de datos de usuario de un dispositivo. Al arrancar, los usuarios deben proporcionar sus credenciales antes de que se pueda acceder a cualquier parte del disco.

Android 7.0 y versiones posteriores admiten el cifrado basado en archivos . El cifrado basado en archivos permite cifrar diferentes archivos con diferentes claves que se pueden desbloquear de forma independiente.

Más detalles sobre la implementación del cifrado del sistema de archivos están disponibles en la sección Cifrado .

Protección de contraseña

Android se puede configurar para verificar una contraseña proporcionada por el usuario antes de proporcionar acceso a un dispositivo. Además de evitar el uso no autorizado del dispositivo, esta contraseña protege la clave criptográfica para el cifrado completo del sistema de archivos.

El administrador del dispositivo puede exigir el uso de una contraseña y / o reglas de complejidad de contraseña.

Administración de dispositivos

Android 2.2 y versiones posteriores proporcionan la API de administración de dispositivos Android, que proporciona funciones de administración de dispositivos a nivel del sistema. Por ejemplo, la aplicación de correo electrónico de Android integrada utiliza las API para mejorar la compatibilidad con Exchange. A través de la aplicación de correo electrónico, los administradores de Exchange pueden hacer cumplir las políticas de contraseñas, incluidas las contraseñas alfanuméricas o PIN numéricos, en todos los dispositivos. Los administradores también pueden borrar de forma remota (es decir, restaurar los valores predeterminados de fábrica) teléfonos perdidos o robados.

Además de su uso en aplicaciones incluidas con el sistema Android, estas API están disponibles para proveedores externos de soluciones de administración de dispositivos. Los detalles sobre la API se proporcionan en Administración de dispositivos .