Cómo proteger un dispositivo Android

Android incorpora funciones de seguridad líderes en la industria y trabaja con desarrolladores y quienes implementan dispositivos para mantener seguros la plataforma y el ecosistema de Android. Un modelo de seguridad sólido es fundamental para habilitar un ecosistema vigoroso de apps y dispositivos creados en la plataforma de Android y a su alrededor, y respaldados por servicios en la nube. Como resultado, durante todo su ciclo de vida de desarrollo, Android se sometió a un riguroso programa de seguridad.

Android está diseñado para ser abierto. Las apps para Android usan hardware y software avanzados, así como datos locales y publicados, que se exponen a través de la plataforma para brindar innovación y valor a los consumidores. Para concretar ese valor, la plataforma ofrece un entorno de apps que protege la confidencialidad, la integridad y la disponibilidad de los usuarios, los datos, las apps, el dispositivo y la red.

Proteger una plataforma abierta requiere una arquitectura de seguridad sólida y programas de seguridad rigurosos. Android se diseñó con seguridad de varias capas que es lo suficientemente flexible como para admitir una plataforma abierta y, al mismo tiempo, proteger a todos los usuarios de la plataforma. Para obtener información sobre cómo informar problemas de seguridad y el proceso de actualización, consulta Actualizaciones y recursos de seguridad.

Android está diseñado para desarrolladores. Los controles de seguridad se diseñaron para alivianar la carga de los desarrolladores. Los desarrolladores con destrezas en seguridad pueden trabajar y contar fácilmente con controles flexibles relacionados con ese tema. Los desarrolladores menos familiarizados con la seguridad están protegidos por valores predeterminados seguros.

Además de proporcionar una plataforma estable sobre la cual desarrollar, Android brinda asistencia adicional a los desarrolladores de varias maneras. El equipo de seguridad de Android busca posibles vulnerabilidades en las apps y sugiere formas de solucionar esos problemas. En el caso de los dispositivos con Google Play, los Servicios de Play proporcionan actualizaciones de seguridad para bibliotecas de software críticas, como OpenSSL, que se usa para proteger las comunicaciones de las apps. La seguridad de Android lanzó una herramienta para probar SSL (nogotofail) que ayuda a los desarrolladores a encontrar posibles problemas de seguridad en cualquier plataforma en la que desarrollen.

Android también aprovecha la compatibilidad de hardware subyacente para la seguridad. Por ejemplo, la tecnología ARM TrustZone se usa para proporcionar almacenamiento seguro para las claves criptográficas y las certificaciones de integridad del inicio. DICE se usa para medir el firmware que se carga antes de iniciar Android. Esto permite la verificación remota de que el firmware no se ve afectado por vulnerabilidades críticas conocidas que podrían explotarse para perjudicar a los desarrolladores y los usuarios.

Los desarrolladores de apps para Android pueden encontrar más información en developer.android.com.

Android está diseñado para los usuarios. Los usuarios tienen visibilidad de los permisos que solicita cada app y control sobre ellos. Este diseño incluye la expectativa de que los atacantes intenten realizar ataques comunes, como ataques de ingeniería social para convencer a los usuarios de dispositivos de que instalen software malicioso, y ataques a apps de terceros en Android. Android se diseñó para reducir la probabilidad de estos ataques y limitar en gran medida su impacto en caso de que tengan éxito. La seguridad de Android sigue mejorando después de que el dispositivo llega a manos del usuario. Android trabaja con socios y el público para proporcionar parches para cualquier dispositivo Android que siga recibiendo actualizaciones de seguridad.

Los usuarios finales pueden encontrar más información en el Centro de ayuda de Nexus, el Centro de ayuda de Pixel o el centro de ayuda del fabricante del dispositivo.

En esta página, se describen los objetivos del programa de seguridad de Android, los conceptos básicos de la arquitectura de seguridad de Android y se responden las preguntas más pertinentes para los arquitectos de sistemas y los analistas de seguridad. Se centra en las funciones de seguridad de la plataforma principal de Android y no analiza los problemas de seguridad que son exclusivos de apps específicas, como los relacionados con el navegador o la app de SMS.

Información general

Android proporciona una plataforma de código abierto y un entorno de apps para dispositivos móviles.

En las siguientes secciones y páginas, se describen las funciones de seguridad de la plataforma de Android. En la figura 1, se ilustran los componentes de seguridad y las consideraciones de los distintos niveles de la pila de software de Android. Cada componente supone que los componentes inferiores están bien asegurados. Con la excepción de una pequeña cantidad de código del SO Android que se ejecuta como raíz, todo el código que se encuentra por encima del kernel de Linux está restringido por la zona de pruebas de aplicaciones.

Figura 1: Pila de software de Android

Figura 1: Pila de software de Android

Los principales componentes de la plataforma de Android son los siguientes:

  • Hardware del dispositivo: Android se ejecuta en una amplia variedad de configuraciones de hardware, incluidos teléfonos celulares, tablets, relojes, automóviles, smart TVs, consolas de juegos OTT y decodificadores. Android no depende de un procesador específico, pero aprovecha algunas capacidades de seguridad específicas del hardware, como ARM eXecute-Never.
  • Sistema operativo Android: El sistema operativo principal se basa en el kernel de Linux. Se accede a todos los recursos del dispositivo, como las funciones de la cámara, los datos del GPS, las funciones de Bluetooth, las funciones telefónicas y las conexiones de red, a través del sistema operativo.
  • Tiempo de ejecución de aplicaciones de Android: Las apps para Android se escriben con mayor frecuencia en el lenguaje de programación Java y se ejecutan en el tiempo de ejecución de Android (ART). Sin embargo, muchas apps, incluidas las apps y los servicios principales de Android, son nativas o incluyen bibliotecas nativas. Tanto ART como las apps nativas se ejecutan en el mismo entorno de seguridad, contenido en la zona de pruebas de la aplicación. Las apps obtienen una parte dedicada del sistema de archivos en la que pueden escribir datos privados, incluidas bases de datos y archivos sin procesar.

Las apps para Android extienden el sistema operativo Android principal. Hay dos fuentes principales de apps:

  • Apps preinstaladas: Android incluye un conjunto de apps preinstaladas, como teléfono, correo electrónico, calendario, navegador web y contactos. Funcionan como apps para el usuario y proporcionan capacidades clave del dispositivo a las que pueden acceder otras apps. Las apps preinstaladas pueden formar parte de la plataforma de código abierto de Android o pueden ser desarrolladas por un fabricante de dispositivos para un dispositivo específico.
  • Apps instaladas por el usuario: Android proporciona un entorno de desarrollo abierto que admite cualquier app de terceros. Google Play ofrece a los usuarios cientos de miles de apps.

Servicios de seguridad de Google

Google proporciona un conjunto de servicios basados en la nube que están disponibles para dispositivos Android compatibles con los Servicios móviles de Google. Si bien estos servicios no forman parte del Proyecto de código abierto de Android (AOSP), se incluyen en muchos dispositivos Android. Para obtener más información sobre algunos de estos servicios, consulta el Informe anual de revisión de seguridad de 2018 de Seguridad de Android.

Los principales servicios de seguridad de Google son los siguientes:

  • Google Play: Google Play es una colección de servicios que permiten a los usuarios descubrir, instalar y comprar apps desde sus dispositivos Android o la Web. Google Play facilita a los desarrolladores llegar a los usuarios de Android y a los clientes potenciales. Google Play también ofrece revisiones de la comunidad, verificación de licencias, análisis de seguridad de apps y otros servicios de seguridad.
  • Actualizaciones de Android: El servicio de actualización de Android ofrece nuevas funciones y actualizaciones de seguridad para dispositivos Android seleccionados, incluidas las actualizaciones a través de la Web o de forma inalámbrica (OTA).
  • Servicios de apps: Son frameworks que permiten que las apps para Android usen capacidades de la nube, como la copia de seguridad de los datos y la configuración de las apps, y la mensajería de la nube al dispositivo (C2DM) para la mensajería push.
  • Verificar apps: Advierte o bloquea automáticamente la instalación de apps dañinas y analiza continuamente las apps en el dispositivo, advirtiendo sobre las apps dañinas o quitándolas.
  • SafetyNet: Es un sistema de detección de intrusiones que preserva la privacidad para ayudar al seguimiento de Google, mitigar las amenazas de seguridad conocidas y detectar nuevas amenazas de seguridad.
  • SafetyNet Attestation: API de terceros para determinar si el dispositivo es compatible con CTS. La atestación también puede identificar la app para Android que se comunica con el servidor de la app.
  • Administrador de dispositivo Android: Una app web y una app para Android para ubicar dispositivos perdidos o robados.

Descripción general del programa de seguridad

Estos son los componentes clave del Programa de Seguridad de Android:

  • Revisión del diseño: El proceso de seguridad de Android comienza en una etapa temprana del ciclo de vida de desarrollo con la creación de un modelo y un diseño de seguridad enriquecidos y configurables. Cada función principal de la plataforma se revisa con recursos de ingeniería y seguridad, y se integran los controles de seguridad adecuados en la arquitectura del sistema.
  • Pruebas de penetración y revisión de código: Durante el desarrollo de la plataforma, los componentes de código abierto y creados por Android se someten a rigurosas revisiones de seguridad. Estas revisiones las realizan el equipo de seguridad de Android, el equipo de ingeniería de seguridad de la información de Google y consultores de seguridad independientes. El objetivo de estas revisiones es identificar debilidades y posibles vulnerabilidades mucho antes de los lanzamientos importantes, y simular los tipos de análisis que realizan los expertos externos en seguridad tras el lanzamiento.
  • Código abierto y revisión de la comunidad: El AOSP permite que cualquier parte interesada realice una revisión de seguridad amplia. Android también usa tecnologías de código abierto que se sometieron a una revisión de seguridad externa significativa, como el kernel de Linux. Google Play proporciona un foro para que los usuarios y las empresas brinden información sobre apps específicas directamente a los usuarios.
  • Respuesta ante incidentes: Incluso con estas precauciones, pueden ocurrir problemas de seguridad después del envío, por lo que el proyecto de Android creó un proceso integral de respuesta ante incidentes. Los miembros de tiempo completo del equipo de seguridad de Android supervisan la comunidad de seguridad general y específica de Android para detectar posibles vulnerabilidades y revisar los errores de seguridad registrados en la base de datos de errores de Android. Cuando se descubren problemas legítimos, el equipo de Android tiene un proceso de respuesta que permite mitigar rápidamente las vulnerabilidades para garantizar que se minimice el riesgo potencial para todos los usuarios de Android. Estas respuestas compatibles con la nube pueden incluir la actualización de la plataforma Android (actualizaciones del AOSP), la eliminación de apps de Google Play y la eliminación de apps de dispositivos en el campo.
  • Actualizaciones de seguridad mensuales: El equipo de seguridad de Android proporciona actualizaciones mensuales para los dispositivos Android de Google y todos nuestros socios fabricantes de dispositivos.

Arquitectura de seguridad de la plataforma

Android busca ser el sistema operativo más seguro y utilizable para plataformas móviles, ya que reutiliza los controles de seguridad tradicionales del sistema operativo para hacer lo siguiente:

  • Protege los datos de la app y de los usuarios
  • Proteger los recursos del sistema (incluida la red)
  • Proporcionar aislamiento de la app del sistema, otras apps y el usuario

Para lograr estos objetivos, Android proporciona estas funciones de seguridad clave:

  • Seguridad sólida a nivel del SO a través del kernel de Linux
  • Zona de pruebas obligatoria para todas las apps
  • Comunicación entre procesos segura
  • Firma de apps
  • Permisos definidos por la app y otorgados por el usuario