PDF de programación - iOS Regreso al Futuro2 CCN CERT RaulSiles DinoSec v1.0

Imágen de pdf iOS Regreso al Futuro2 CCN CERT RaulSiles DinoSec v1.0

iOS Regreso al Futuro2 CCN CERT RaulSiles DinoSec v1.0gráfica de visualizaciones

Publicado el 27 de Julio del 2018
430 visualizaciones desde el 27 de Julio del 2018
1,4 MB
27 paginas
Creado hace 9a (07/12/2014)
La defensa del patrimonio tecnológico
frente a los ciberataques

10 y 11 de diciembre de 2014

i S

© 2014 Centro Criptológico Nacional

C/Argentona 20, 28023 MADRID

www.ccn-cert.cni.es

VIII JORNADAS STIC CCN-CERT

Raúl Siles

DinoSec

Fundador & Analista de Seguridad
[email protected]
www.dinosec.com
@dinosec

www.ccn-cert.cni.es

2

VIII JORNADAS STIC CCN-CERT

En episodios anteriores…

VIII JORNADAS STIC CCN-CERT

Índice

1 Vulnerabilidades de seguridad en la actualidad

2 iOS: Actualizaciones de software OTA

3 Detalles de la vulnerabilidad

4 iOS: Regreso al futuro

5 iOS: Regreso al futuro II

6 Conclusiones y recomendaciones

www.ccn-cert.cni.es

4

VIII JORNADAS STIC CCN-CERT

Vulnerabilidades de seguridad en la actualidad

• ¿Cuántas vulnerabilidades en productos o soluciones

ampliamente utilizadas hoy en día existen?

• No conocidas públicamente… sólo por algunos…

• ¿Quiénes?

• ¿Cuántos investigadores pueden encontrar la misma

vulnerabilidad de manera independiente?

• ¿Cuánto tiempo puede permanecer sin ser publicada?

• ¿Cómo de probable es que ésta prevalezca a lo largo del

tiempo y de distintas versiones del mismo producto?

• ¿Qué deberíamos hacer cuando el fabricante anuncia

una versión que soluciona la vulnerabilidad?



VIII JORNADAS STIC CCN-CERT

iOS: Actualizaciones de software OTA

• Servidor de actualizaciones de iOS de Apple

• http://mesu.apple.com

• Protocolo

• HTTP

• Ficheros de actualizaciones de iOS

• Plist (property list) con las últimas versiones de iOS (XML)

• http://mesu.apple.com/assets/

com_apple_MobileAsset_SoftwareUpdate/
com_apple_MobileAsset_SoftwareUpdate.xml

• http://mesu.apple.com/assets/

com_apple_MobileAsset_SoftwareUpdateDocumentation/
com_apple_MobileAsset_SoftwareUpdateDocumentation.xml



VIII JORNADAS STIC CCN-CERT

Regreso al futuro
Last-Modified: <fecha>

VIII JORNADAS STIC CCN-CERT

Detalles de la vulnerabilidad (iOS BttF)

• iOS 5.x & 6.x

• Peticiones HEAD & GET (comprobación vs. obtención)

• iOS 7.x

• Peticiones GET (y respuestas 304)

• Incluyen “If-Modified-Since”

• Modificación de la cabecera “Last-Modified”

• Respuestas del servidor de actualizaciones
• Comprobación: ¿Hay una versión nueva de iOS?

• Ataque “Star Wars”

• Obtención: ¿Hasta cuando es válida esta versión?

• Ataque “Matrix”

• Proporcionar un fichero de actualizaciones de iOS válido



Star Wars

VIII JORNADAS STIC CCN-CERT

Matrix

VIII JORNADAS STIC CCN-CERT

VIII JORNADAS STIC CCN-CERT

Historia de la vulnerabilidad

• 2012 (febrero): Vulnerabilidad descubierta
• iOS 5.x (iOS OTA software updates – 5.0.1)

• Durante +2 años permaneció en privado

• 2014 (6 febrero): Vulnerabilidad notificada a Apple

• Regla del “mes y un día” antes de ser publicada

• 2014 (1 marzo): Cambios en los servidores de Apple

• iOS 7.x: Comprobación de fechas futuras (If-Modified-Since)

• 2014 (8 marzo): Vulnerabilidad presentada en RootedCON (ES)

• 2014 (3 junio): Vulnerabilidad presentada en Area41 (EN)

• (4 junio) iCamasu: http://blog.dinosec.com/2014/06/icamasu.html

• 2014 (24 junio): Vulnerabilidad publicada en el blog de DinoSec

• http://blog.dinosec.com/2014/06/ios-back-to-future.html

• 2014 (17 septiembre): iOS 8 (CVE-2014-4383)

• iOS 8: Comprobación de fechas futuras (Last-Modified)
• Versiones afectadas de iOS: 5, 6 y 7

VIII JORNADAS STIC CCN-CERT

Cambios en los servidores de Apple

• http://mesu.apple.com (1 de marzo de 2014)


...
/* Procesar la petición GET (iOS 7.x) */
if ( header(‘If-Modified-Since’) ausente ) ||
( header(‘If-Modified-Since’) > date(now) ) {

/* Enviar una respuesta de tipo 200 incluyendo el fichero
con las últimas actualizaciones de iOS, evitando
referencias a fechas futuras por parte del cliente. */

} else {
/* Comprobar la fecha de ‘If-Modified-Since’ y la fecha
de la última actualización para responder con un
mensaje de tipo 304 o 200. */
...


VIII JORNADAS STIC CCN-CERT

iOS 8 (CVE-2014-4383)



VIII JORNADAS STIC CCN-CERT

Cambios en iOS 8 (cliente)

• http://support.apple.com/en-us/HT201395 (17 sep 2014)

...
/* Procesar la respuesta a la petición GET (iOS 8.x) */
If ( header(‘Last-Modified’) > date(now) ) {

/* Eliminar referencias previas de fechas, borrando el
valor de ‘If-Modified-Since’ (desde cero), evitando
referencias a fechas futuras por parte del servidor.*/

} else {
/* Si la respuesta es de tipo 304, continuar... */
/* Si la respuesta es de tipo 200, almacenar la fecha de
la cabecera ‘Last-Modified’ como la fecha asociada a
la última actualización disponible: se empleará como
futuro valor de la cabecera ‘If-Modified-Since’. */
...

Regreso al futuro II

VIII JORNADAS STIC CCN-CERT

Regreso al futuro II: “Viajando en el tiempo”

VIII JORNADAS STIC CCN-CERT

Fecha de la última
actualización de iOS



date_of_
last_update



Momento
actual



Futuro (próxima
actualización)



date(now)

> date(now)

Fecha del ataque para
evitar la actualización
de la versión actual de iOS
(válido hasta la próxima actualización)

VIII JORNADAS STIC CCN-CERT

Sugerencias para los servidores de Apple e iOS 8.x (cliente)

/* Obtener la fecha oficial de la última actualización. */
date_of_last_update = getDateForLastiOSUpdate_Server();

/* Procesar la petición GET (iOS 7.x) */
if ( header(‘If-Modified-Since’) ausente ) ||
( header(‘If-Modified-Since’) > date_of_last_update ) {

/* Enviar una respuesta de tipo 200 incluyendo el fichero
con las últimas actualizaciones de iOS, evitando
referencias a fechas futuras por parte del cliente. */
...

Servidor

/* Obtener la fecha oficial de la última actualización: ¿Cómo? */
date_of_last_update = getDateForLastiOSUpdate_Client();

/* Procesar la respuesta de la petición GET (iOS 8.x) */
If ( header(‘Last-Modified’) > date_of_last_update ) {

/* Eliminar referencias previas de fechas, borrando el
valor de ‘If-Modified-Since’ (desde cero), evitando
referencias a fechas futuras por parte del servidor.*/
...

Cliente

¿Cómo obtener la fecha oficial de la última actualización
de iOS en el cliente?

VIII JORNADAS STIC CCN-CERT



siles
siles
si

Además, ¿qué ocurre sino con los ataques StarWars…?

VIII JORNADAS STIC CCN-CERT

Nueva historia de la vulnerabilidad

• 2012 (febrero): Vulnerabilidad descubierta

• iOS 5.x (iOS OTA software updates – 5.0.1)

• Durante +2 años permaneció en privado

• 2014 (6 febrero): Vulnerabilidad notificada a Apple

• Regla del “mes y un día” antes de ser publicada

• 2014 (1 marzo): Cambios en los servidores de Apple

• iOS 7.x: Comprobación de fechas futuras (If-Modified-Since)

• 2014 (8 marzo): Vulnerabilidad presentada en RootedCON (ES)

• 2014 (3 junio): Vulnerabilidad presentada en Area41 (EN)

• (4 junio) iCamasu: http://blog.dinosec.com/2014/06/icamasu.html

• 2014 (24 junio): Vulnerabilidad publicada en el blog de DinoSec

• http://blog.dinosec.com/2014/06/ios-back-to-future.html

• 2014 (17 septiembre): iOS 8 (CVE-2014-4383)

• iOS 8: Comprobación de fechas futuras (Last-Modified)
• Versiones afectadas de iOS: 5, 6 y 7

• 2014 (20 noviembre): Vulnerabilidad re-notificada a Apple
• 2014 (11 diciembre): iOS 8 vulnerable (= que el 1 marzo)

¿Habrá un…?

VIII JORNADAS STIC CCN-CERT

VIII JORNADAS STIC CCN-CERT

Conclusiones y recomendaciones (1/3)

• Ataques dirigidos o masivos (millones de usuarios…)

• Ataques silenciosos (a lo largo del tiempo y versiones)

• Forzar a la víctima a permanecer en la versión actual

vulnerable (hasta la próxima versión de iOS)

• Esperando al siguiente jailbreak… (evasi0n, Pangu, TAIG, …)

• ¿Vulnerabilidades en iOS?

• 197 vulnerabilidades solucionadas en iOS 6.0 (+ iOS 6.x)

• 80 vulnerabilidades solucionadas en iOS 7.0 (+ iOS 7.x)

• 56 vulnerabilidades solucionadas en iOS 8.0 (+ iOS 8.x)

• Posibilidad de revertir el ataque silenciosamente



VIII JORNADAS STIC CCN-CERT

Conclusiones y recomendaciones (2/3)

• “Si algo no se puede actualizar, es inseguro”

• ¿Cuánto tiempo puede prevalecer una

vulnerabilidad activa?

• ¿Incluso conocida públicamente… y “solucionada”?

• ¿Cómo sabemos que realmente ha sido solucionada? (CVE-…)

• ¿Aprendemos de los errores en esta industria?

• HTTPS (TLS)

• Si es que es realmente seguro…

• Verificando realmente todos los detalles del certificado

• Certificate pinning



VIII JORNADAS STIC CCN-CERT

Conclusiones y recomendaciones (3/3)

• Si eres un fabricante (u organización)…

• ¿Dispones de un progama público de vulnerabilidades?

• ¿Has entendido realmente la vulnerabilidad?

• ¿Estás seguro?

• Colabora con los investigadores de seguridad y hackers



• Comunicación fluida y verificación final (¿recompensada?)

• Si eres una compañía u organización…

• Verifica la versión de iOS a través de tu solución MDM

• ¿Qué vas a hacer con el resto de vulnerabilidades

“solucionadas” por los fabricantes?

VIII JORNADAS STIC CCN-CERT

El refranero español

“Cuando las tecnologías

de tu vecino veas

peligrar…

pon las tuyas a

actualizar”

VIII JORNADAS STIC CCN-CERT

Referencias

• DinoSec Blog

http://blog.dinosec.com

http://blog.dinosec.com/2014/06/ios-back-to-future.html

• DinoSec Lab

http://www.dinosec.com/es/lab.html

“iOS - Back to the Future“

“iCamasu”



¡Muchas gracias!



VIII JORNADAS STIC CCN-CERT

Raúl Siles

Fundador & Analista de Seguridad

[email protected]



www.dinosec.com

@dinosec



E-Mails

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

Websites

www.cc
  • Links de descarga
http://lwp-l.com/pdf12738

Comentarios de: iOS Regreso al Futuro2 CCN CERT RaulSiles DinoSec v1.0 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad