Android incorpora características de seguridad líderes en la industria y trabaja con desarrolladores e 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 aplicaciones y dispositivos creados en la plataforma Android y en torno a ella, y respaldados por servicios en la nube. Como resultado, durante todo su ciclo de vida de desarrollo, Android ha estado sujeto a un riguroso programa de seguridad.
Android está diseñado para ser abierto. Las aplicaciones de Android utilizan hardware y software avanzados, así como datos locales y servidos, expuestos a través de la plataforma para brindar innovación y valor a los consumidores. Para materializar ese valor, la plataforma ofrece un entorno de aplicaciones que protege la confidencialidad, la integridad y la disponibilidad de los usuarios, los datos, las aplicaciones, el dispositivo y la red.
Asegurar una plataforma abierta requiere una arquitectura de seguridad sólida y programas de seguridad rigurosos. Android fue diseñado con seguridad de varias capas que es lo suficientemente flexible 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, consulte 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 expertos en seguridad pueden trabajar fácilmente y confiar en controles de seguridad flexibles. Los desarrolladores menos familiarizados con la seguridad están protegidos por valores predeterminados seguros.
Además de proporcionar una plataforma estable sobre la que construir, Android brinda soporte adicional a los desarrolladores de varias maneras. El equipo de seguridad de Android busca posibles vulnerabilidades en las aplicaciones y sugiere formas de solucionar esos problemas. Para dispositivos con Google Play, Play Services ofrece actualizaciones de seguridad para bibliotecas de software críticas, como OpenSSL, que se utiliza para proteger las comunicaciones de las aplicaciones. 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 que estén desarrollando.
Puede encontrar más información para los desarrolladores de aplicaciones de Android en developer.android.com .
Android está diseñado para los usuarios. Los usuarios tienen visibilidad de los permisos solicitados por cada aplicación y control sobre esos permisos. 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 malware y ataques a aplicaciones de terceros en Android. Android fue diseñado para reducir la probabilidad de estos ataques y limitar en gran medida el impacto del ataque en caso de que tuviera éxito. La seguridad de Android sigue progresando una vez que el dispositivo está en manos del usuario. Android trabaja con socios y el público para proporcionar parches para cualquier dispositivo Android que continúe recibiendo actualizaciones de seguridad.
Puede encontrar más información para los usuarios finales en el centro de ayuda de Nexus, el centro de ayuda de Pixel o el centro de ayuda del fabricante de su dispositivo.
Esta página describe los objetivos del programa de seguridad de Android, describe los fundamentos de la arquitectura de seguridad de Android y responde 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 aplicaciones específicas, como las relacionadas con el navegador o la aplicación de SMS.
Fondo
Android proporciona una plataforma de código abierto y un entorno de aplicaciones para dispositivos móviles.
Las secciones y páginas a continuación describen las funciones de seguridad de la plataforma Android. La figura 1 ilustra los componentes de seguridad y las consideraciones de los distintos niveles de la pila de software de Android. Cada componente asume que los componentes a continuación están debidamente asegurados. Con la excepción de una pequeña cantidad de código del sistema operativo Android que se ejecuta como root, todo el código por encima del kernel de Linux está restringido por Application Sandbox.
Los principales bloques de construcción de la plataforma Android son:
- Hardware del dispositivo: Android se ejecuta en una amplia gama de configuraciones de hardware, incluidos teléfonos móviles, tabletas, relojes, automóviles, televisores inteligentes, cajas de juegos OTT y decodificadores. Android es independiente del procesador, pero aprovecha algunas capacidades de seguridad específicas del hardware, como ARM eXecute-Never.
- Sistema operativo Android: el sistema operativo central se basa en el kernel de Linux. Se accede a todos los recursos del dispositivo, como funciones de cámara, datos de GPS, funciones de Bluetooth, funciones de telefonía y conexiones de red a través del sistema operativo.
- Tiempo de ejecución de aplicaciones de Android: las aplicaciones de 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 aplicaciones, incluidos los servicios y aplicaciones principales de Android, son aplicaciones nativas o incluyen bibliotecas nativas. Tanto las aplicaciones ART como las nativas se ejecutan en el mismo entorno de seguridad, incluido en el Sandbox de la aplicación. Las aplicaciones obtienen una parte dedicada del sistema de archivos en la que pueden escribir datos privados, incluidas bases de datos y archivos sin procesar.
Las aplicaciones de Android amplían el sistema operativo central de Android. Hay dos fuentes principales para las aplicaciones:
- Aplicaciones preinstaladas: Android incluye un conjunto de aplicaciones preinstaladas que incluyen teléfono, correo electrónico, calendario, navegador web y contactos. Estos funcionan como aplicaciones de usuario y brindan capacidades clave del dispositivo a las que pueden acceder otras aplicaciones. Las aplicaciones preinstaladas pueden ser parte de la plataforma Android de código abierto o pueden ser desarrolladas por un fabricante de dispositivos para un dispositivo específico.
- Aplicaciones instaladas por el usuario: Android proporciona un entorno de desarrollo abierto que admite cualquier aplicación de terceros. Google Play ofrece a los usuarios cientos de miles de aplicaciones.
Servicios de seguridad de Google
Google proporciona un conjunto de servicios basados en la nube que están disponibles para dispositivos Android compatibles con Google Mobile Services . Si bien estos servicios no forman parte del Proyecto de código abierto de Android (AOSP), están incluidos en muchos dispositivos Android. Para obtener más información sobre algunos de estos servicios, consulte Resumen del año 2018 de Android Security.
Los principales servicios de seguridad de Google son:
- Google Play: Google Play es una colección de servicios que permite a los usuarios descubrir, instalar y comprar aplicaciones desde su dispositivo Android o la web. Google Play facilita a los desarrolladores llegar a usuarios de Android y clientes potenciales. Google Play también proporciona revisión de la comunidad, verificación de licencias de aplicaciones, análisis de seguridad de aplicaciones y otros servicios de seguridad.
- Actualizaciones de Android: el servicio de actualización de Android ofrece nuevas capacidades y actualizaciones de seguridad para dispositivos Android seleccionados, incluidas actualizaciones a través de la web o por aire (OTA).
- Servicios de aplicaciones: marcos que permiten que las aplicaciones de Android usen capacidades en la nube, como ( copia de seguridad ) datos y configuraciones de aplicaciones y mensajería de la nube al dispositivo ( C2DM ) para mensajes de inserción.
- Verificar aplicaciones: advierta o bloquee automáticamente la instalación de aplicaciones dañinas y analice continuamente las aplicaciones en el dispositivo, advirtiendo o eliminando aplicaciones dañinas .
- SafetyNet: un sistema de detección de intrusos que preserva la privacidad para ayudar al seguimiento de Google, mitigar las amenazas de seguridad conocidas e identificar nuevas amenazas de seguridad.
- Certificación de SafetyNet: API de terceros para determinar si el dispositivo es compatible con CTS. La atestación también puede identificar la aplicación de Android que se comunica con el servidor de aplicaciones.
- Administrador de dispositivos Android: una aplicación web y una aplicación de Android para localizar dispositivos perdidos o robados.
Descripción general del programa de seguridad
Los componentes clave del programa de seguridad de Android incluyen:
- Revisión del diseño: el proceso de seguridad de Android comienza temprano en el ciclo de vida del desarrollo con la creación de un modelo y un diseño de seguridad completos y configurables. Cada característica principal de la plataforma es revisada por recursos de ingeniería y seguridad, con controles de seguridad apropiados 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 rigurosas revisiones de seguridad. Estas revisiones son realizadas por 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 principales, y simular los tipos de análisis que realizan los expertos en seguridad externos al momento del lanzamiento.
- Revisión de código abierto y comunidad: AOSP permite una amplia revisión de seguridad por parte de cualquier parte interesada. Android también utiliza tecnologías de código abierto que se han sometido a importantes revisiones de seguridad externas, como el kernel de Linux. Google Play proporciona un foro para que los usuarios y las empresas brinden información sobre aplicaciones específicas directamente a los usuarios.
- Respuesta a incidentes: Incluso con estas precauciones, pueden ocurrir problemas de seguridad después del envío, razón por la cual el proyecto Android ha creado un proceso integral de respuesta de seguridad. 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 archivados en la base de datos de errores de Android. Tras el descubrimiento de problemas legítimos, el equipo de Android tiene un proceso de respuesta que permite la mitigación rápida de 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 de AOSP), la eliminación de aplicaciones de Google Play y la eliminación de aplicaciones de los dispositivos en el campo.
- Actualizaciones de seguridad mensuales: el equipo de seguridad de Android brinda actualizaciones mensuales a los dispositivos Android de Google y a 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 mediante la reutilización de los controles de seguridad del sistema operativo tradicional para:
- Proteja la aplicación y los datos del usuario
- Proteger los recursos del sistema (incluida la red)
- Proporcionar aislamiento de aplicaciones del sistema, otras aplicaciones y del usuario
Para lograr estos objetivos, Android proporciona estas funciones de seguridad clave:
- Seguridad robusta a nivel de SO a través del kernel de Linux
- Zona de pruebas de aplicación obligatoria para todas las aplicaciones
- Comunicación segura entre procesos
- firma de aplicaciones
- Permisos definidos por la aplicación y otorgados por el usuario