Cómo proteger un dispositivo Android

Android incorpora funciones de seguridad líderes en la industria y trabaja con desarrolladores y, también, con implementadores de dispositivos para mantener la plataforma y el ecosistema de Android seguros. Un modelo de seguridad sólido es esencial para habilitar un ecosistema vigoroso de apps y dispositivos compilados en la plataforma de Android y a su alrededor, y compatibles con los servicios en la nube. Como resultado, durante todo su ciclo de vida de desarrollo, Android estuvo sujeto a un programa de seguridad riguroso.

Android está diseñado para ser abierto. Las apps para Android usan hardware y software avanzados, así como datos locales y entregados, expuestos a través de la plataforma para ofrecer innovación y valor a los consumidores. Para aprovechar 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 reducir 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 se protegen con configuraciones seguras predeterminadas.

Además de proporcionar una plataforma estable para compilar, 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 fundamentales, como OpenSSL, que se usa para proteger las comunicaciones de las apps. El equipo de 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 estén desarrollando.

Android también aprovecha la compatibilidad con el hardware subyacente para la seguridad. Por ejemplo, la tecnología ARM TrustZone se usa para proporcionar almacenamiento seguro para claves criptográficas, así como 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 vea afectado por vulnerabilidades críticas conocidas que se podrían aprovechar para dañar a los desarrolladores y a los usuarios.

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

Android está diseñado para los usuarios. Los usuarios tienen visibilidad sobre 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 del dispositivo de instalar 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 el impacto del ataque en caso de que se lleve a cabo de forma exitosa. La seguridad de Android sigue mejorando después de que el dispositivo está en 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 aspectos 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 enfoca en las funciones de seguridad de la plataforma principal de Android y no analiza los problemas de seguridad exclusivos de apps específicas, como los relacionados con el navegador o la app de SMS.

Información general

Android proporciona una plataforma y un entorno de apps de código abierto 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 diversos niveles de la pila de software de Android. Cada componente asume que los componentes que se encuentran debajo están asegurados correctamente. Con la excepción de una pequeña cantidad de código del SO Android que se ejecuta como root, la zona de pruebas de aplicaciones restringe todo el código por encima del kernel de Linux.

Figura 1: Pila de software de Android

Figura 1: Pila de software de Android

Los principales componentes básicos 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, decodificadores y decodificadores de juegos de OTT. Android es independiente del procesador, pero aprovecha algunas funciones de seguridad específicas del hardware, como ARM eXecute-Never.
  • Sistema operativo Android: El sistema operativo principal se compila en el kernel de Linux. Se puede acceder a todos los recursos del dispositivo, como las funciones de la cámara, los datos del GPS, las funciones de Bluetooth, las funciones de telefonía y las conexiones de red, a través del sistema operativo.
  • Entorno de ejecución de aplicaciones para Android: Las apps para Android suelen escribirse en el lenguaje de programación Java y ejecutarse en el entorno de ejecución de Android (ART). Sin embargo, muchas apps, incluidos los servicios y las apps 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 principal de Android. Existen dos fuentes principales para las apps:

  • Apps preinstaladas: Android incluye un conjunto de apps preinstaladas, como teléfono, correo electrónico, calendario, navegador web y contactos. Estas funcionan como apps de usuario y proporcionan funciones clave del dispositivo a las que pueden acceder otras apps. Las apps preinstaladas pueden ser 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 de Google para dispositivos móviles. 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 Android.

Los principales servicios de seguridad de Google son los siguientes:

  • Google Play: Google Play es un conjunto de servicios que permiten a los usuarios descubrir, instalar y comprar apps desde su dispositivo Android o la Web. Google Play permite que los desarrolladores lleguen fácilmente a los usuarios de Android y a los clientes potenciales. Google Play también proporciona opiniones de la comunidad, verificación de licencias de apps, 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 a dispositivos Android seleccionados, incluidas las actualizaciones a través de la Web o inalámbricas (OTA).
  • Servicios de apps: Son frameworks que permiten que las apps para Android usen funciones de la nube, como la creación de copias de seguridad de datos y parámetros de configuración de la app, 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 del dispositivo para advertir sobre ellas o quitarlas.
  • SafetyNet: Es un sistema de detección de intrusiones que preserva la privacidad para ayudar a Google a realizar un seguimiento, mitigar amenazas de seguridad conocidas y, además, identificar amenazas de seguridad nuevas.
  • Certificación de SafetyNet: Es una API de terceros para determinar si el dispositivo es compatible con CTS. La certificación también puede identificar la app para Android que se comunica con el servidor de la app.
  • Administrador de dispositivo Android: Es una app web y una app para Android que permite ubicar dispositivos perdidos o robados.

Descripción general del programa de seguridad

Entre los componentes clave del programa de seguridad de Android, se incluyen los siguientes:

  • Revisión de diseño: El proceso de seguridad de Android comienza al principio del ciclo de vida de desarrollo con la creación de un modelo y un diseño de seguridad ricos y configurables. Los recursos de ingeniería y seguridad revisan cada función principal de la plataforma, con los controles de seguridad adecuados integrados 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 están sujetos a revisiones de seguridad exhaustivas. 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 las debilidades y las posibles vulnerabilidades mucho antes de los lanzamientos principales y simular los tipos de análisis que realizan los expertos en seguridad externos después del 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 proporcionen información sobre apps específicas directamente a los usuarios.
  • Respuesta ante incidentes: Incluso con estas precauciones, es posible que se produzcan problemas de seguridad después del envío, por lo que el proyecto de Android creó un proceso integral de respuesta a incidentes. Los miembros del equipo de seguridad de Android a tiempo completo supervisan la comunidad de seguridad general y específica de Android para analizar posibles vulnerabilidades y revisar los errores de seguridad que se archivan 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 de Android (actualizaciones de 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 a los dispositivos Android de Google y a todos nuestros socios de fabricación de dispositivos.

Arquitectura de seguridad de la plataforma

Android busca ser el sistema operativo más seguro y fácil de usar para plataformas móviles reutilizando los controles de seguridad tradicionales del sistema operativo para lo siguiente:

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

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

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