Seguridad en Sistemas Operativos
Prof. Wilmer Efrén Pereira González
Smartphones y
Seguridad en Android y iOS
Celulares inteligente
Computadores portátiles, altamente versátiles, que además de telefonía incluyen:
navegador Web, GPS, radio, reproductor MP3, juegos, clientes de correo, cámara,
redes sociales y muchos servicios contratados: Uber, streaming, alertas de sismo, …
Además de WiFi y Bluetooth, muchos celulares incluyen NFC (Near Field
Communication) para usos en comercio electrónico, pago en autopistas, turismo,
etc. Sin embargo, tiene muchos detractores por las posibles violaciones a la
privacidad, robo de dinero en billeteras electrónicas, … por ello se puede usar en
conjunción con etiquetas QR para evitar la lectura de información, aún a cierta
distancia, con antenas de alta ganancia. Sin embargo, el usar QR elimina la ventaja
de NFC …
Usan procesadores ARM (Advanced RISC Machine) ya que con un set reducido de
instrucciones y un procesamiento de una instrucción por ciclo, se logra un menor
consumo de energía. Claramente son más económicos (ARM32) aunque más lentos
A pesar de la gran cantidad de SOP’s para celulares: Window 10 mobile, KaiOS,
Tizen, Ubuntu Touch, Firefox OS, … sólo estudiaremos iOS y Android pues tienen
el 99% del mercado (cifras de julio del 2020) …
2
Android
Está presente, no sólo en celulares, sino también en tablets, relojes inteligentes,
SmartTV, interfaz de vehículos, … Está compuesto de 12 millones de líneas de
código en XML, C y Java. Fue adquirido por Google a Android Inc en el 2005.
Inicialmente se ejecutaba en una máquina virtual Dalvik, con su propio bytecode
pero pasando por Java Sin embargo, evolucionó hacia ART (Android Runtime) a
partir de Lollipop (5ta versión) porque ofrece mejor rendimiento (recolector de
basura), usa poca memoria y permite aumentar la duración de la batería.
Desde el 2016 apareció Kotlin (lenguaje desarrollado por Jetbrain, Rusia) que se
puede ejecutar sobre JVM y el interprete de Javascript. Ahora está respaldado
por Google y es uno de los lenguajes de desarrollo de aplicaciones en Android
Studio, junto con Java y C++. Tiene licencia Apache 2 …
Puede trabajar en 5G y tiene buena sincronización con Google Drive para
conservar la información de utilidad para el usuario y el propio celular: fotos,
videos, contactos, … La versión mas reciente de Android en versión beta es
Android 14 (octubre 2023)
Arquitectura Android
De las herramientas de Applications Framework, se resalta: Activity Manager
(gestiona el ciclo de vida de las aplicaciones), Notification Manager (manejo de
eventos), XMMP Service (protocolo de intercambio XML), …
ART tiene la misión de interpretar las instrucciones en un entorno de ejecución en
tiempo real, utiliza OpenGL ES 3D (celulares, PDA y cónsolas de video juegos) y el
kernel contiene todos los drivers necesarios para la ejecución de todas las aplicaciones.
4
Seguridad en Android
Exceptuando el kernel, todo se ejecuta en sandbox (entorno aislado de ejecución de
procesos) con un sistema granulado de definición de permisos. Esto favorece la
seguridad por aislamiento ya que impide la comunicación entre aplicaciones.
Las actualizaciones dependen del fabricante del celular y la frecuencia es relativa-
mente baja salvo si es explicita por el usuario. Google Play Store es el sitio oficial
más conocido aunque no el único.
El boletín de seguridad de Android (2021), informar sobre las vulnerabilidades más
recientes y los parches de seguridad para solucionarlas.
5
Cifrado en el celular
A partir de Android Q (2019) el cifrado deja de ser opcional y pasa a ser obligato-
rio para todo dispositivo Android. En principio, los celulares utilizan procesadores
ARM, basados en arquitecturas RISC, que son de menor costo y disipan menos
calor … pero …
Sólo los ARMv8 (64 bits) de celulares de alta gama pueden usar los aceleradores
AES para cifrado y descifrado automático. INTEL ofrece aceleradores con la dupla
AES-GCM. Este último, es una variante de AES, que se usa para verificación de
integridad en lugar de usar independientemente algoritmos de hash
.
Para celulares de baja gama (ARM 32 bits) se debe usar otro algoritmo propuesto
por Google (Adiantum). Se basa en el algoritmo chacha20 y se usa junto con
Poly1305 como función de hash. Es más rápido que AES-GCM
… pero …
Tiene menos estudios de criptoanálisis
6
Gestión empresarial
Se puede administrar desde un portal Web definiendo las políticas con Google Apps
Device Policy y teniendo una cuenta Google Apps Work (gratis 30 días). Esto permite:
Borrado remoto del dispositivo
Bloqueo remoto del celular
Uso de contraseña/PIN para acceder a las políticas
Gestión de PIN y contraseña
El bloqueo es por PIN (hasta 8 dígitos) con máximo número de intentos. Superado
ese límite sólo se puede desbloquear con el PUK que es de hardware y se notifica al
usuario junto con el empaque de compra de la SIM.
Para el desbloqueo es necesario o bien el PIN o una contraseña alfanumérica o un
patrón de trazado (se considera el más inseguro…)
7
Permisos por aplicación (granulados)
Cada aplicación (que debe estar firmada en el sitio de descarga) tiene definido sus per-
misos en [Link]. La etiqueta más importante es users-permission.
Por ejemplo, para dar permiso de acceso a internet y de escritura a SD en una aplicación:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="[Link]
package="[Link]" >
<application […]>
[…]
</application>
<uses-permission android:name="[Link]"/>
<uses-permission android:name="[Link].WRITE_EXTERNAL_STORAGE"/>
</manifest>
La gestión de permisos requiere la aplicación App Ops que se debe descargar desde
Google Play Store y requiere ser administrador del teléfono (root). El rooteo (pasar a
administrador) es necesario además para, por ejemplo, desinstalar aplicaciones de la
compañía de teléfono, instalar un mejor kernel, …
8
Deficiencias genéricas de Android
En general tiene ciertos aspectos cuestionables, no necesariamente de seguridad:
Por ser multiplataforma no siempre se puede implementar, en todo hardware,
todo lo que ofrece Android.
Google pay está disponible en Perú, Colombia, Argentina, Brasil, Ecuador y
Chile. De hecho, está presente en casi los mismos países que Apple Pay.
El cifrado por hardware ralentiza el funcionamiento en dispositivos de gama
media y baja. Adiantum es una solución para dispositivos de baja gama, aunque
el cifrado no es de la misma calidad.
No todas las aplicaciones que están Google Play son exhautívamente probadas
9
iOS
Está presente en todos los dispositivos móviles Apple: iPhone, iPad y iPod. La
última versión es iOS 15.3 (enero 2022). Lo importante para Apple es la novedad.
Por ello ofrece el uso de animojis, video llamadas con FaceTime, Touch ID, …
La ejecución, de cualquier aplicación, se
realiza a través de cuatro capas para asegurar
que funcionen en todos los dispositivos que
usan iOS. Por ello no permite la instalación de
iOS en hardware de terceros
Cocoa está formado por un conjunto de librerías disponible en Xcode (IDE para el
desarrollo de aplicaciones en iOS, macOS, tvOS y watchOS). Es multilenguaje
(Python, Java, C++, Ruby, …) aunque Apple ofrece su propio lenguaje: Swift
Swift permite interoperar con Objective-C que es otro de los lenguajes preferido de
los desarrolladores Apple. Swift es código abierto con licencia Apache2.0.
Además Swift está montado sobre LLVM (licencia BSD) que es una infraestructura para
desarrollar compiladores ampliamente usada (Python, Ruby, bytecode de Java, …)
10
Seguridad en iOS: actualizaciones y
sandbox
Debe cubrir al menos cuatro aspectos:
Datos almacenados
Seguridad integral y perfectamente
Datos que circulan por la red
acoplada con el hardware
Resguardo de las aplicaciones
Seguridad del propio dispositivo
Las actualizaciones se hacen a través de iTunes y se verifica que toda aplicación esté
firmada con la clave privada de Apple.
El proceso de arranque protege también contra hardware no autorizado. Para ello contiene
un certificado con la clave pública de Apple, ante de pasar el control al kernel.
Todas las aplicaciones no desarrolladas por Apple se ejecutan en un sandbox (App
XNU Sandbox). Los permisos se fijan en los perfiles de cada aplicación (permi-
sos granulados).
Los archivos del sistema se mantienen en una partición de sólo lectura …
11
Seguridad con Secure Enclave
iOS ofrece un coprocesador (Secure Enclave), independiente del AP (Application
Processor). Es parte integral del procesador A7 de Apple (ARM64).
Este coprocesador se encarga de:
Cifrar los datos con AES.
Generar números aleatorios para producir claves de cifrado
Protección de las claves
Tiene un ID de usuario generado en la fábrica y desconocido para los programadores
de aplicaciones iOS. También trae su propio sistema de arranque y firmware de
actualización. En el arranque genera una clave mezclada con el ID de hardware para
cifrar la memoria del dispositivo (AES 256).
También procesa los datos biométricos que se pueden utilizar para desbloquear el
dispositivo (huella dactilar y reconocimiento facial)
Se recomienda que se use junto con Data Protection para añadir seguridad sobre
todos los datos sensibles.
12
Seguridad con Data Protection
Esta aplicación necesita un passcode que usa junto con el ID del teléfono para cifrado
y descifrado. El passcode también se usa para la pantalla de desbloqueo. Pueden ser
numérico tipo PIN (4 cifras) o alfanuméricos.
Si después de 10 intentos no acierta el passcode se puede configurar para que se
borre toda la memoria del teléfono ☺ …
Por cada archivo cifrado se genera una clave AES256 que se guarda en los metadatos
del propio archivo que a su vez están cifrados
Se sabe que Apple mantiene en secreto un mecanismo de acceso a todos los datos
del teléfono que pueden obtenerse mediante un procedimiento judicial. Finalmente,
para el borrado de los datos, lo que se elimina son las claves y no los propios datos.
13
Gestión empresarial
Al igual que con Android, es posible configurar los dispositivos iOS de manera
colectiva usando archivos xml. Se usa Apple Configurator (conectado al puerto USB)
o de manera inalámbrica con Over the-Air Enrollment.
Esos perfiles permiten los siguientes ajustes:
Políticas para los passcode.
Restricciones para el uso de recursos
Ajustes de conexión: WiFi y VPN
Sincronización parametrizada con iCloud
Restringir el uso de ciertas aplicaciones
Ajuste de LDAP y CalDAV (planificador de actividad sobre servidor remoto)
También es posible realizar ajustes colectivos con MDM (Mobile Device Management)
como:
Gestión de aplicaciones en el dispositivo
Eliminar o bloquear, de manera remota, el móvil o los datos.
Administrar remotamente la configuración
Gestión de perfiles
14
Protección física
También se puede (como en Android) bloquear la tarjeta SIM con el PIN aunque iOS
también permite hacerlo con la huella dactilar y passcode. También, al igual que
Android, está el bloqueo con patrón pero con aplicaciones no directamente desarro-
lladas por Apple.
El sistema de protección con huella dactilar (Touch ID) se puede usar en conjunción
con los passcodes para tener un sistema de autentificación multifactorial. La huella
dactilar se debe almacenar, por supuesto, de antemano y se envía a la memoria de
Secure Enclave
La huella dactilar está en el hardware y nunca deja el dispositivo
Tienen por defecto una protección del puerto o cable de transferencia lightning. Esta
característica bloquea el acceso del celular en la última hora mientras no se desbloque
mediante el passcode.
A pesar de todas estas medidas, el día del lanzamiento del iPhone5, un grupo alemán
consiguió acceder al celular sin utilizar la huella dactilar, aún cuando estaba configu-
rada como medio de autentificación.
15
Seguridad en las aplicaciones y rooteo
Como se mencionó antes, todas las aplicaciones deben estar firmadas con la clave
privada de Apple (no necesariamente las desarrolladas por la comunidad de
colaboradores). Para que un desarrollador tenga derecho a firmar, debe estar
registrado en el iOS Developer Program. A partir de allí, después de ser verificada
por Apple, puede subir su aplicación a App Store.
A nivel empresarial también se pueden subir aplicaciones no de App Store. Estas,
por supuesto, deben ejecutarse en un sandbox.
El proceso de eliminar restricciones de Apple o rooteo de denomina JailBreak. Existen
dos tipos:
Tethered: Requiere conectar el dispositivo a una computadora mientras arranca
Untethered: Se altera iOS para que no compruebe la firma de las aplicaciones
Es entera responsabilidad del usuario el evitar los malwares
16
Deficiencia genéricas de iOS
En general tiene ciertos aspectos cuestionables, no necesariamente de seguridad:
Su capacidad de innovación ha disminuido considerablemente
Ralentización deliberada de las actualizaciones para forzar la compra de nuevos
dispositivos (según Apple por envejecimiento de las baterías)
Muy alto costo comparado con un Android equivalente incluyendo los gadgets
Apple no comunica problemas de seguridad hasta que ya tienen el parche. Por
supuesto, han ocurrido varios incidentes y en el 2021 se reportaron 381 vulnerabi-
lidades.
.
17
[Link]@[Link]
[Link]