Menú principal

Mostrando entradas con la etiqueta SSL. Mostrar todas las entradas
Mostrando entradas con la etiqueta SSL. Mostrar todas las entradas

miércoles, 18 de octubre de 2017

Cómo afecta KRACK y la vulnerabilidad WPA2 a los dispositivos Apple

Apple indica que la vulnerabilidad KRACK está solucionada en iOS, macOS, watchOS y tvOS, en sus versiones beta. KRACK es una grave vulnerabilidad que afecta a la confidencialidad e integridad del estándar WPA2, el cual protege la mayoría de redes WiFi modernas. El investigador de seguridad Mathy Vanhoef ha publicado una prueba de concepto del ataque KRACK. La vulnerabilidad sobre WPA2 afecta a millones de routers, dispositivos móviles, equipos y otros dispositivos, incluidos los Mac, los iPhone y los iPad

Lo que se consigue explotando esta vulnerabilidad en el protocolo WPA2 es descifrar el tráfico de la red, es decir, afecta a la confidencialidad del tráfico, pudiendo llevar a cabo otro tipo de ataques en ese instante como, por ejemplo, SSL Strip o SSL Strip 2. Con ciertas configuraciones de red, los atacantes también pueden inyectar datos en la red, modificar ciertos paquetes, incluso pudiendo "colar" malware. Debido a que estas vulnerabilidades afectan a todos los dispositivos que usan WPA2, es un problema que los fabricantes deben abordar rápidamente. Apple soluciona este tipo de problemas, generalmente, rápido, por lo que no nos sorprende que los de Cupertino hayan abordado el problema.



Los dispositivos iOS de Apple no son tan vulnerables como los Mac o dispositivos que ejecutan Linux o Android porque la vulnerabilidad se basa en el reenvío de una clave de cifrado que se supone de un sólo uso, pudiéndose reutilizar más de una vez. iOS no permite esta acción, pero aún así existe vulnerabilidad parcial, por lo que hay que actualizar en cuanto sea posible. Los parches han comenzado a publicarse, por lo que debemos estar atentos. Una vez parcheados los dispositivos no se podrá utilizar KRACK para explotar este fallo. Se recomienda evitar el uso de la red WiFi hasta estar seguro de que se parchea el fallo.

lunes, 31 de julio de 2017

Wallet-Snatch Hack: Apple Pay vulnerable a dos ataques en BlackHat USA

La Black Hat USA y la Defcon de este año ya han pasado. Siempre hay noticias relacionadas con el mundo Apple y, en esta ocasión, tenemos que hablar del Apple Pay. El mecanismo para los pagos de Apple sigue estando en el punto de mira de muchos investigadores. En esta ocasión, han presentado dos ataques distintos contra el Apple Pay, destacando lo que se afirma como debilidades en el método de pago móvil. Uno de los ataques requiere del Jailbreak en el dispositivo, mientras que el otro ataque no.

En el primer ataque, los investigadores de Positive Technologies, se debería tener un dispositivo con Jailbreak e infectado con malware. Habiendo logrado esto, se podría interceptar el tráfico que se dirige al servidor de Apple, en este caso, con los datos de pago que se agregan a la cuenta del dispositivo. Es el escenario más sencillo, desde el punto de vista técnico. El segundo ataque se puede realizar contra cualquier dispositivo dónde se intercepta y manipula el tráfico de transacciones SSL sin emplear ningún equipo sofisticado, según indican los investigadores. El ataque consiste en reproducir o manipular los datos de la transacción, cambiando la cantidad o la moneda que se está pagando o cambiando los detalles de entrega de las mercancías que se están comprando. 

Figura 1: Apple Pay

El primer paso del segundo ataque consiste en que el atacante robe el token de pago del dispositivo de la víctima. Para ello, utilizarán una WiFi pública u ofrecerán su propio hotspot WiFi falso. Ahora, se solicitará a los usuarios que creen un perfil. Desde este instante se puede extraer el criptograma de Apple Pay, la clave para cifrar los datos. Apple indica que el criptograma sólo debe utilizarse una vez. Sin embargo, los comerciantes y las pasarelas de pago se establecen para permitir que los criptogramas puedan ser utilizados más de una vez. Dado que la información de entrega se envía en texto claro, sin comprobar su integridad, el atacante puede utilizar un criptograma interceptado para realizar pagos posteriores en el mismo sitio web, cargando a la víctima dichas transacciones. Según los investigadores: "Los atacantes pueden registrar los datos de la tarjeta robada en su propia cuenta de iPhone o pueden interceptar el tráfico SSL entre el dispositivo y el servidor de Apple para realizar pagos fraudulentos directamente desde el teléfono de la víctima"

La recomendacion de Positive Technology y de sus investigadores es que los usuarios estén atentos cuando utilicen Apple Pay para comprar artículos en línea, en particular monitorizando el uso de HTTPs y evitar realizar transacciones en entornos WiFi públicos dónde el tráfico pueda ser fácilmente detectado y manipulado.

martes, 22 de diciembre de 2015

Las apps bancarias en iOS siguen teniendo debilidades respecto a 2013

La seguridad de las aplicaciones de banca móvil ha mejorado mucho en los últimos años, aunque todavía existe un margen de mejora que se debe cumplir. Se ha publicar por parte de IOActive un reporte en el que se hace una comparativa con el año 2013. En este reporte se pretende observar las mejoras o no mejoras que se han llevado a cabo.

La conclusión que podemos sacar del informe es que la seguridad en las apps móviles ha mejorado en los dos últimos años, aunque las apps siguen siendo vulnerables. La investigación se llevó a cabo sobre 40 aplicaciones de banca para iOS de todo el mundo. La investigación se limito a buscar debilidades de seguridad del lado del cliente, no incluyendo ninguna prueba del lado del servidor. La metodología de pruebas se explica con detalle en el artículo publicado por IOActive

Figura 1: Resumen debilidades apps bancarias 2015

Hay 5 de las 40 aplicaciones auditadas que no validaban la autenticidad de los certificados SSL presentados, por lo que son susceptibles a ataques Man in the Middle. Más de un tercio de las aplicaciones contenían enlaces no seguros en toda la aplicación. Esta diferencia permitiría a un atacante interceptar tráfico e inyectar código arbitrario Javascript o HTML en un intento de crear un indicador o entrada falsa para estafas. 

Además, un 30 por ciento de las aplicaciones no validan los datos entrantes dejándolos potencialmente vulnerables a inyecciones de Javascript. Los resultados son una mejora de lo que se vio en 2013, tal y como puede verse en la imagen. Esto llama la atención, ya que en 2015 no es que hayan mejorado mucho, pero como se ve es una mejora respecto al pasado.

Figura 2: Comparativa entre 2013 y 2015

La prueba también cubrió el análisis binario. En esta fase se vio que el 15 por ciento de las aplicaciones almacenan información sin cifrar, como por ejemplo acerca de los clientes, las transacciones de éstos, etcétera. Los ficheros dónde se almacena esta información son ficheros SQLite en texto plano. 

Como conclusiones, el consultor Ariel Sanchez indica que la mayoría de las aplicaciones han aumentado la seguridad de los datos mediante la validación de certificados. A pesar de que los números se han reducido en general, todavía hay un gran número de aplicaciones que almacenan datos inseguros en el sistema.

domingo, 1 de noviembre de 2015

Apple libera el código fuente de las librerías criptográficas

En un esfuerzo por hacerse más transparentes ante los ojos de los investigadores de seguridad, los ingenieros de Apple han decidido publicar bajo licencia Open Source las librerías criptográficas que utilizan tanto en los sistemas iOS como OS X. La idea es que puedan ser revisadas por los expertos en criptografía y puedan localizar cualquier fallo en ellas, además de garantizar que no tienen ninguna puerta trasera. Las librerías de Common Crypto no vienen con interfaces asociadas, por lo que no están listas para poder ser utilizas en apps de iOS o en OS X, pero sí para ser revisadas.

Recordemos que Apple sufrió un ataque público masivo con el famoso bug de Goto Fail; Goto Fail, e hizo a muchos dudar de las medidas de seguridad contra espionaje que pudiera estar utilizando Apple. Además, eso le hizo merecedor del Pwnie Award al Most Epic Fail.

Figura 1: Liberías criptográficas de Apple publicadas bajo licencia Open Source

Estas librerías forman parte del Security Framework de Apple que también está liberado como Open Source, lo que garantiza que a los expertos en seguridad, a los estudiosos de las técnicas criptográficas y a los interesados en la tecnología en general, Apple les ha dado cosas que leer para un buen rato. Veremos qué se descubre en un tiempo.

lunes, 27 de julio de 2015

Pobres medidas de seguridad en los SmartWatches según un informe de HP

HP ha publicado algunos informes que han generado mucha expectación, como su ya famoso informe sobre seguridad en dispositivos móviles, dónde nos sorprendían con datos como que el 90% de las apps eran vulnerables. Hoy HP nos sorprende con un informe dónde se cuentan las principales vulnerabilidades en 10 de las marcas mas vendidas de relojes inteligentes. El estudio revela fallos, que a priori podríamos pensar ya estaban solucionados en otro tipo de sistemas. 

El informe indica que el mercado de relojes inteligentes está creciendo rápidamente. Alrededor de unos 6,8 millones de relojes se vendieron en 2014, mercado dominado en gran parte por Samsung, aunque el lanzamiento del Apple Watch hizo cambiar todo, dominando con el 75% de las ventas, vendiendo 4 millones de relojes durante el segundo trimestre de 2015.

Algunos analistas indican que el mercado de relojes inteligentes se encuentra en la infancia en comparación con el de teléfonos inteligentes, han estimado que cerca de 350 millones de relojes entrarán en uso en todo el mundo en 2018, cifras muy optimistas. La noticia que HP mostraba al mundo a través de su informe es que estos relojes son un riesgo para la seguridad, ¿Cómo reaccionan las empresas?

Figura 1: Fallos de seguridad expuestos en el informe de HP

Como se puede ver en este extracto del informe de HP, existen diferentes fallos que ponen en riesgo la seguridad de los dispositivos, y por lo tanto del ámbito de uso de estos relojes. Si éstos son utilizados en el ámbito empresarial, puede suponer una brecha de seguridad para este entorno, por lo que debe ser tenido en cuenta por la gente de TI.

Autenticación y autorización insuficiente, malas políticas de contraseñas, enumeración de usuario, recolección de cuentas, son algunos ejemplos de los fallos encontrados en esta categoría. El 30% de los dispositivos falló en esto. Un dato curioso en el informe es el dato sobre el cifrado en la capa de transporte. El 100% de los relojes implementaban este mecanismo de seguridad, aunque el 40% eran vulnerables a poodle, permitían cifrados débiles o utilizaban todavía SSLv2. En algunas ocasiones parecen que a los diseñados les vale con que aparezca en las especificaciones el uso de SSL/TLS sin mirar más allá.

El software y firmware inseguro es algo de lo más crítico. El 70% de los relojes que evaluó HP tenían problemas para proteger la actualización de firmware, incluso llevando a cabo esto sin cifrado. Por último el tema del almacenamiento de información y la privacidad de ésta. Todos los dispositivos recolectan y almacenan información personal, como por ejemplo, direcciones, fechas de cumpleaños, peso, frecuencia cardíaca. Esta información puede quedar expuesta debido a la enumeración de cuentas y el uso de contraseñas débiles en algunos productos.

El informe de HP no es más que un reflejo del mundo en el que vivimos, la tecnología avanza con paso firme y los mercados crecen a esa velocidad, pero la seguridad no lleva el mismo ritmo, por lo que nos encontramos con situaciones como la que se refleja en el informe. 

sábado, 25 de abril de 2015

Bug en librería AFNetworking deja más de 1.500 apps vulnerables en App Store

En los últimos días existen diferentes informes dónde se han comunicado diferentes fallos de seguridad referente al mundo de Apple. Uno de los fallos del que todavía no hemos hablado en Seguridad Apple afecta aproximadamente a 1500 aplicaciones de iOS. No hay que olvidar uno de los fallos más importante de los últimos meses en el mundo OS X como es el de Rootpipe, el cual aún no ha sido solucionado por Apple. Hace poco, Apple también tuvo que enfrentarse y poner solución al famoso Freak, el cual afectaba desde un Apple TV a un iPod Touch, pasando por los Mac y otros dispositivos iOS. El fallo, que afecta cerca de 1500 aplicaciones de iPhone e iPad, podría permitir a ciertos atacantes robar contraseñas e información sensible.

La vulnerabilidad fue descubierta por la empresa de seguridad denominada SourceDNA hace unas semanas. A día de hoy, quedan muchos desarrolladores que tienen que actualizar aún su aplicación por lo que siguen siendo vulnerables. Este ataque permite a un atacante descifrar datos que viajan a través del protocolo HTTPS, por lo que cualquiera podría generar un hotspot WiFi, nombrarla como gratuita, y hacer un MiTM con el que capturar el tráfico y descifrarlo a través de dicha vulnerabilidad.

Figur 1: SourceDNA para verificar si la app es vulnerable

La empresa SourceDNA escaneó y analizó la mayoría de las aplicaciones de la AppStore que tienen este fallo de seguridad, incluso crearon una aplicación para aprovecharse de este fallo. La empresa proporciona una aplicación web para verificar si sus aplicaciones son o no vulnerables. El día que el fallo de seguridad fue anunciado y mitigado, una búsqueda rápida en SourceDNA mostró cerca de 20.000 aplicaciones de iOS de las 100.000 aplicaciones que utilizan AFNetworking. Ha pasado poco tiempo, pero nos encontramos con estos resultados:
  • El 55% de las aplicaciones que tienen esta librería tienen la version 2.5.0, que es la versión antigua, pero con código seguro.
  • El 40% no estaba utilizando la parte de la biblioteca que proporciona la API de SSL.
  • El 5%, cerca de 1.000 aplicaciones tienen el defecto o fallo de seguridad pudiendo ser explotado. 
Figura 2: Resultados del Developer Microsoft

Muchos usuarios se preguntaron si las aplicaciones afectadas eran importantes, y SourceDNA indicó que algunos de los proveedores de las aplicaciones son empresas muy grandes y famosas, por ejemplo Yahoo, Microsoft, Citrix, etcétera. Por supuesto la recomendación es comprobar las aplicaciones y actualizarlas con el fin de solventar el fallo de seguridad.

viernes, 24 de abril de 2015

No iOS Zone: crashea apps y cualquier dispositivo iOS

En la última RSA Conference celebrada en San Francisco durante esta semana se ha mostrado al público un bug en el sistema operativo iOS que permite a un atacante crashear y provocar el reinicio de los dispositivos iOS solamente utilizando una conexión Wi-Fi. Eso puede ser en forma de bucle infinito si el dispositivo se encuentra dentro del rango de la red Wi-Fi maliciosa y el terminal no dejará de crashear. Los investigados que han llevado a cabo este trabajo, investigadores de Skycure, indican que no existe una forma de volver a hacer funcionar, tanto el sistema operativo como las aplicaciones que caen en este bug a no ser que nos encontremos fuera del rango de acción de la red Wi-Fi maliciosa.

¿En qué se basa el ataque? Se diseña y utiliza un certificado SSL especial y malicioso. Los investigadores comentaron: "Con nuestro hallazgo, vimos que habría que crear un script para explotar el bug sobre una interfaz de red". Además, indicaban que utilizar SSL es una buena práctica de seguridad, y que lo utilizan casi todas las apps de la App Store, por lo que la superficie de ataque es muy amplia.


Figura 1: Demo de No iOS Zone atacando apps

El temor a un DoS dirigido hacia alguna persona puede ser llevado a cabo gracias al descubrimiento de estos investigadores. Como se podía ver en el vídeo, el bug afecta a aplicaciones, pero los investigadores hicieron otro vídeo dónde se demuestra que también afecta al sistema operativo, haciendo de este bug algo que puede convertir nuestro dispositivo en pisapapeles si no salimos del radio de acción de la red Wi-Fi maliciosa.


Figura 2: Vídeo de No iOS Zone atacando al SO

Como hemos visto, por ejemplo en el caso del Rootpipe, el cual sigue sin parchearse correctamente en OS X Yosemite 10.10.3, los investigadores han avisado a Apple y han descartado dar detalles técnicos sobre cómo explotar este bug hasta que Apple no solucione el tema. Esperemos que pronto tengamos la actualización, y por supuesto sepamos cómo estos investigadores lo llevaban a cabo.

jueves, 5 de marzo de 2015

Bugs en FortiClient para iOS permiten ataques man in the middle

Esta semana se han publicado varios bugs que afectan a FortiClient. Las tres vulnerabilidades están tanto en las versiones de Android como de iOS, pudiendo permitir la suplantación de servidores y la posterior revelación de información sensible. Según el boletín FG-IR-15-004 se corrigen los tres fallos o vulnerabilidades que afectan a FortiClient. La versión 5.2.3.091 para Android es vulnerable, mientras que en el caso de iOS es la versión 5.2.028. ¿Cuáles son los bugs? Las aplicaciones no verifican la validez de los certificados por parte del servidor, por lo que un atacante puede realizar un ataque Man in the Middle entre el FortiClient y los servicios:
  • FortiGate remoto con el servicio SSL VPN que se ejecuta de forma predeterminada en el puerto 443. 
  • FortiGate remoto con EndPoint ejecutado por defecto en el puerto 8010. 
Estas vulnerabilidades tienen sus propios CVEs, los cuales pasamos a enumerar:
  • CVE-2015-1453. Esta vulnerabilidad permite obtener contraseñas y datos sensibles. Hay que tener acceso físico al dispositivo móvil para poder explotarla.
  • CVE-2015-1569. Existe un error en la implementación del protocolo Endpoint Control en el que no se valida correctamente los certificados. Este hecho facilita la suplantación de los servidores a través de un ataque MITM. En el CVE-2015-1570 ocurre exactamente lo mismo.
Figura 1: Issues resueltas y reflejadas en las Release Notes

A día de hoy - todavía - la aplicación sigue siendo vulnerable en iOS, ya que si accedemos a la AppStore para obtener la última versión nos encontramos que es la 5.2.0 la última versión. Esto no nos deja claro si la aplicación es superior a la 5.2.028 que indicábamos arriba, por lo que vemos los bug fixes y las release notes del producto. Visualizando las release notes, éstas son de Enero de 2015, por lo que la aplicación que se encuentra en la AppStore, a día de hoy, no está todavía actualizada. Aunque según se ha anunciado en breve estará lista la versión 5.2.1 para iOS que solventará estas vulnerabilidades.

martes, 3 de marzo de 2015

FREAK: Factoring RSA Export Keys afecta a Safari

Esta semana se ha publicado una investigación que revela cómo, una debilidad de seguridad introducida por el gobierno de los Estados Unidos para no permitir que países extranjeros utilizasen criptografía segura, ha generado un problema de seguridad en todo el mundo - incluyendo Estados Unidos -. Esto se debe a que, productos como OpensSSL o Apple TLS/SSL venían con algoritmos de cifrado RSA permitidos para exportación al extranjero que usaban cifrado con RSA de 512 bits de longitud, algo que para los años 90 era "decentemente seguro" pero ni mucho menos invulnerable para la NSA.

Hace décadas, estos algoritmos han dejado de ser seguros para nada. Con los años, OpenSSL y Apple TLS/SSL han seguido manteniendo soporte de estos protocolos de "cifrado para exportación", y navegadores como Android o Apple Safari permiten negociar estos algoritmos de cifrado. Esto permite que se pueda hacer un ataque, al que se ha denominado Freak - de Man In The Middle impersonando un servidor web si tanto el servidor web como el cliente permiten la negociación de estos algoritmos de cifrado inseguros. El siguiente vídeo muestra su funcionamiento.

Figura 1: Vídeo demostrativo de FREAK

Ya ha habido partes de seguridad en OpenSSL y Apple ha prometido parchear todas las versiones de Apple Safari que aún permiten negociar este tipo de algoritmos de cifrado para exportación. Curioso que Estados Unidos inyecte un fallo de seguridad criptográfico y acabe afectándole.

lunes, 12 de enero de 2015

Bypass a OpenSSL Certificate Pinning en aplicaciones iOS

Usar Certificate Pinning es una de las medidas de seguridad más empleadas para evitar los ataques de man in the middle con suplantación de certificados, tal y como hemos podido ver en el artículo del blog de Eleven Paths titulado "Certificate Pinning. El qué, el cómo y el porqué. Para tenerlo disponible existen diversas formas de implementarlo. Se puede utilizar HSTS, que es el camino optado por Google Chrome - a pesar de generar el problema de privacidad con las Super Cookies -, el sistema implementado de Certificate Pining por Mozilla Firevox, o la que utiliza EMET que es el camino utilizado en Microsoft Windows y para el que desde Eleven Paths publicamos la herramienta EMET Rules que ayuda a gestionar el Certificate Pinning en EMET.

Hoy queremos hablar de un artículo publicado por  Matasano donde se explica en detalle Cómo bypassear OpenSSL certificate pinning en aplicaciones iOS.

Certificate Pinning: Un resumen

A modo de resumen, comentar rápidamente que cuando una aplicación móvil se comunica con una API o un servicio en la web debe realizar dicha comunicación a través de TLS / SSL. El objetivo es verificar la identidad del servidor y prevenir los temidos ataques Man in The Middle. Los navegadores y sistemas operativos móviles vienen preconfigurados con una lista de entidades emisoras de certificados de confianza. Desde cualquiera de las CA de la lista se puede emitir un certificado para cualquier nombre de host o servidor. Las aplicaciones conscientes de la seguridad deben pinnear el certificado esperado en la aplicación, es decir, no aceptarán ningún certificado salvo el emitido por la CA conocida que utiliza el desarrollador de la aplicación. En el siguiente documento publicado en el Canal Slide en SlideShare de Eleven Paths se explica en detalle.


Cuando pensamos en un test de intrusión, disponer de Certificate Pinning puede ocasionar problemas para interceptar la comunicación de una aplicación en un proceso de auditoría de seguridad. Generalmente, sin pinning, la intercepción implica agregar el certificado TLS de un proxy, por ejemplo Burp o Zaproxy, al almacén de certificados del sistema operativo. Sin embargo, cuando la aplicación utiliza certificate pinning, el almacén es ignorado.

Evitar el Certificate Pinning para auditar una app en iOS

En iOS se dispone de la aplicación iOS SSL Kill Switch, la cual se puede utilizar para bypassear el pinning y forzar a que la aplicación acepte cualquier certificado presentado por un servidor o proxy. La aplicación utiliza Cydia Substrate, el cual hookea las funciones que iOS utiliza para la validación de certificados y las modifica para aceptar cualquier certificado. Este hecho es más complejo cuando se utiliza la librería OpenSSL, ya que no está afectada por este tipo de hooking. Hay más de una forma de bypassear OpenSSL based certificate pinning, lo cual puede estudiarse en un whitepaper escrito por Daniel Mayer, utilizando binary patching and in-memory hooking.

Figura 2: Bypass OpenSSL Certificate Pinning on iOS

En él se detalla un escenario en el cual se crea un mock-up de una aplicación iOS que utiliza OpenSSL y realiza pinning. La aplicación realiza una conexión a https://www.example.org y realiza una petición GET a la raíz del sitio. Existen dos tipos de ejecutables en esta prueba, ARMv7 y ARMv8, y accesibles en el Github dónde se encuentra la app. El dispositivo debe tener realizado el jailbreak para poder realizar este proceso, por supuesto.

En primer lugar redirigen el tráfico de la app al Burp. Una de las maneras sencilla que exponen es  modificar el fichero /etc/hosts introduciendo la línea 127.0.0.1 www.example.org, para que resuelva a un servidor que se encuentra en local. Una vez realizado esto, se puede realizar un SSH forwarding para reenviar tráfico desde el puerto 443 del dispositivo al puerto 8080 sobre nuestra máquina dónde esta Burp a la escucha en modo trasparente.

Figura 3: Port Forwarding

La aplicación intentará conectarse al proxy pero la conexión fallará debido al certificate pinning. En el proxy se puede leer el mensaje "The client failed to negotiate an SSL connection to www.example.org:443", tal y como se puede ver en la imagen.

Figura 4: Fallo por Certificate Pinning

Analizar el pinning es una de las primeras cosas que hay que hacer. En este caso la app utiliza como pinning una lista restringidas de CAs. La aplicación genera dinámicamente certificados con OpenSSL  y son almacenados en memoria. El listado de CAs son hardcodeadas en el código fuente de la aplicación, en formato PEM.

En general, esto es bastante común para almacenar CAs en el sistema de archivos y sería una acción natural hacerlo igual para pinear certificados en aplicaciones móviles. Una desventaja de este enfoque es que los certificados pueden ser fácilmente cambiados en un dispositivo con Jailbreak. Sin embargo, los certificado que viven en el binario son más dificiles de cambiar, ya que se tiene que modificar el binario para hacerlo.

Figura 5: Certificados hard-codeados en formato PEM

Dada esta configuración se puede intercambiar el certificado en el binario o deshabilitar la validación del certificado de otra manera. El intercambio de certificados es un reto ya que los diferentes certificados tienen diferentes longitudes y el espacio en el binario dónde se encuentran los certificados originales pueden no ser suficientes. Los grandes cambios en los binarios pueden ser poropensos a errores. La validación de certificados utiliza SSL_CTX_set_verify, por lo que se tiene que convertir su valor en SSL_VERIFY_NONE para deshabilitar la validación, con el pinning se encuentra en SSL_VERIFY_PEER. Hacer este cambio hace que la firma de la aplicación se rompa, por lo que se debe utilizar un dispositivo con Jailbreak, para no verificar las firmas.

Por último, se puede ver cómo decompilar la aplicación con herramientas como dumpdecrypted. Además se contempla como hacer el proceso para binarios compilados en ARMv7 y ARMv8.

Figura 6: Certificate Pinning bypasseado

Certificate Pinning es una técnica útil para proteger contra ataques de MiTM, o para asegurar que los proxies corporativos que interceptar tráfico TLS no pueden acceder a dicho tráfico de las aplicaciones. A través de iOS SSL Kill Switch, manual crypt hooking o binary patching como se describe en este trabajo, se podría hacer una auditoría de una app que tenga esta medida de seguridad activada.

miércoles, 22 de octubre de 2014

iOS 8.1: Apple Pay, Poodle y el bug que muestra tu clave

Se esperaba que iOS 8.1 fuera liberado esta semana y así ha sido. Diferentes CVEs han sido parcheados en esta nueva versión del sistema operativo, la cual ofrece también mayor estabilidad con la nueva familia de iPhone. En la publicación de la actualización se puede ver, al menos, 5 CVEs entre los que se encuentran el bug de publicación de contraseñas en los teclados predictivos y el ya famoso bug de Poodle en SSL que también afecta a iOS. Esta es la lista detallada de los CVE corregidos en esta versión.
  • CVE-2014-4428. Disponible desde iPhone 4S y superior. La vulnerabilidad residia en conexiones no cifradas, por lo acciones maliciosas por parte de un atacante podrían desembarcar en un spoofing.
  • CVE-2014-4448. Los archivos podían ser transferidos a un directorio de aplicación y no ser cifrados con clave generada por HW. 
  • CVE-2014-4449. Un atacante en una red de área local podía forzar a que iCloud tuviera fugas de información debido una incorrecta validación del certificado TLS.
  • CVE-2014-4450. Quicktype aprende contraseñas y podría anunciarlas en el autocompletado, por lo que, como ya hablamos en Seguridad Apple, es algo peligroso para las fugas de información.
  • CVE-2014-3566. Un atacante puede descifrar datos protegidos por SSL 3.0. Esto es un parche para el famoso Poodle.
Para actualizar a iOS 8.1 podemos realizarlo a través del software de actualización a través de los dispositivos iOS. También podemos realizarlo a través de Apple iTunes. Además, en esta versión se activa ya Apple Pay para todo el mundo, aunque solo para tarjetas emitidas en USA. El resto de tarjetas deberán esperar.

sábado, 18 de octubre de 2014

Apple parchea Poodle en OS X, incluido Yosemite

Esta vez Apple, aprovechando que tenía el evento de presentación de los nuevos productos, se ha dado prisa en actualizar Poodle, así que ha lanzado nuevas versiones y los correspondientes Security Advisories para que los clientes podamos actualizar el software y erradicar este bug de los sistemas.

Figura 1: CVE de Poodle en los Security Advisories de Apple

Esta es la lista completa de los Security Advisories que Apple ha publicado, así que toma nota y actualiza ya tu software:
- APPLE-SA-2014-10-16-5 OS X Server v2.2.5: Arregla solo el CVE-2014-3566 correspondiente a Poodle.
- APPLE-SA-2014-10-16-4 OS X Server v3.2.2: Arregla solo el CVE-2014-3566 correspondiente a Poodle.
- APPLE-SA-2014-10-16-3 OS X Server v4.0: Arregla Poodle y 17 CVEs de seguridad más.
- APPLE-SA-2014-10-16-2 Security Update 2014-005: Actualización para OS X aplicable a OS X Mountain Lion v10.8.5 y OS X Mavericks v10.9.5 que arregla única y exclusivamente Poodle.
- APPLE-SA-2014-10-16-1 OS X Yosemite v10.10: La actualización de OS X Yosemite 10.10 viene con un total de 86 bugs de seguridad resueltos, incluido, como no, Poodle.
Esta es la lista de Security Advisories que han salido afectando a Poodle. Ahora tú debes actualizar tu software, al igual que Apple debe preocuparse por los posibles bugs de Poodle que afectan a su infraestructura que también se ha visto afectada.

sábado, 9 de agosto de 2014

Más bugs en OpenSSL que Apple tendrá que parchear

A principios de Junio vimos que las actualizaciones de OpenSSL afectaban al software que Apple embebe en algunos dispositivos y al sistema operativo OSX, pero la compañía decidió no sacar ninguna actualización de seguridad crítica y aquellos bugs continúan aún en la versión de OpenSSL que viene con OS X Mavericks 10.9.4, es decir la versión de OpenSSL 0.9.8y por lo que todos son vulnerables a esos fallos aún. Si quieres comprobar la versión de OpenSSL que tienes en tu OS X, basta con que ejecutes este comando.

Figura 1: Versión de OpenSSL en OS X Mavericks 10.9.4

Ahora OpenSSL, en Agosto, ha sacado un nuevo Aviso de Seguridad con 9 bugs más que obligan a actualizar el software, por lo que el software de OpenSSL que viene paquetizado en OS X tiene nuevos fallos que solventar cuanto antes. Para ello, se han sacado también nuevas versiones de las ramas que tienen con soporte: La versión OpenSSL 1.0.1i, OpenSSL 1.0.0n y OpenSSL 0.9.8zb.

Figura 2: Advisory de Agosto con 9 bugs y las nuevas versiones publicadas

Esperemos que en la nueva versión de OS X Mavericks 10.9.5 y en OS X Yosemite, el paquete OpenSSL venga ya actualizado a la última versión - o erradicado definitivamente del sistema - como es la intención de Apple desde hace tiempo. Mientras tanto, si tu entorno es crítico, te toca hacer el trabajo manualmente a ti.

viernes, 18 de abril de 2014

Hacking de iPhone & iPad con SSLStrip sobre iOS (I de II)

La técnica SSL Strip no es algo novedoso, ya que lleva entre nosotros más de 5 años desde que Moxie Marlinspike la presentase al mundo en la conferencia de BlackHat 2009 que os dejamos a continuación. Cuando se realiza esta técnica a una víctima que tiene un dispositivo móvil encontramos curiosidades como que es muy difícil apreciar cuando estamos bajo una conexión segura y cuando no, y por eso es una técnica muy explotada en el hacking de dispositivos iPhone. Antes de ponernos manos a la obra con la prueba de concepto vamos a explicar en qué consiste la técnica SSL Strip.

 
Figura 1: 2009 BlackHat DC Presentation on SSL Stripping de Moxie Marlinspike

El atacante realiza un ataque de de Man in the Middle, por ejemplo ARP Spoofing, estando en la misma red que la víctima, en este caso supongamos un iPhone. El atacante colocará el script en Python de SSL Strip a la escucha en el puerto 10000, el cual es por defecto aunque lo podemos cambiar.

Necesitamos redirigir toda petición de la víctima que vaya al puerto 80 hacia el puerto 10000 para que sea tratada por el script en Python. Por esto cuando la víctima indique que quiere acceder a gmail.com, esto de no indicar el protocolo es un fallo grave, el navegador entiende que quiere acceder a http://gmail.com por lo que se realiza una petición que si no estuviéramos por medio el servidor de Gmail se encargaría de redirigir hacia el puerto 443.

Como nosotros nos encontramos en medio de la comunicación lo que nos llega con destino puerto 80 lo redirigimos al puerto 10000 de nuestra máquina en el que se encuentra el SSL Strip. Como se puede visualizar en la imagen cuano el servidor legítimo indica al cliente que redirija hacia el puerto 443, nosotros nos encargamos de cambiar esas referencias para que la conexión siga siendo por protocolo HTTP y de este modo se encuentre en una conexión no segura. 

Figura 2: Esquema SSL Strip

SSL Strip a dispositivos iOS

Dicho esto, nos toca realizar una pequeña prueba de concepto sobre esto. En primer lugar vamos a ver como, accediendo a la web de gmail.com desde un dispositivo móvil, los indicadores de que estamos bajo una conexión segura son pocos, y algunos son escondidos por el propio comportamiento del navegador. Esto lo hemos comentado por aquí desde el primer momento en que vimos como la gestión de HTTPs en iOS tiene muchos riesgos de seguridad.

En la imagen se puede ver que el candado nos indica que estamos bajo una conexión cifrada, y como entendemos que no hay fallo en la validación de la identidad del sitio estamos conectados a Gmail, pero ¿Dónde se encuentra el protocolo? El protocolo es tapado en la barra de direcciones para aprovechar el espacio y que aparezca el dominio o subdominios a los que estamos conectados. Este indicador hace que el SSL Strip pueda ser "colado" más fácilmente.

Figura 3: Conexión cifrada con Gmail

Como se puede ver en la imagen superior, en la ventana de la izquierda es cuando se accede al sitio de gmail y podemos ver el candado como único símbolo de seguridad. Además, al poco de cargar la web el navegador Safari para iOS, para mejorar la experiencia de usuario y aprovechar la pantalla del dispositivo, hace desaparecer la barra de direcciones con todo lo que ello conlleva en ataques con SSL Strip o los problemas de seguridad que ha tenido con ataques de Phishing en iOS 4, en iOS 5.1

La técnica de SSL Strip no hará que el certificado falle y el navegador nos de un fallo de validación de identidad del sitio que haya que subsanar - tal y como se hace en los ataques de man in the middle con fake CAs -, sino que realmente hará que la víctima vaya por protocolo HTTP constantemente, por lo que si el sitio lo acepta, tendríamos un serio problema, porque como vamos a ver diferenciar esto en un dispositivo móvil es complejo.

En la siguiente parte de esteartículo veremos cómo llevar a cabo un ataque SSLStrip contra un iPhone y veremos cuál es el comportamiento del dispositivo. La diferencia entre la pantalla vista anteriormente y la que obtendremos es que el candado desaparecerá, sin más rastro.

jueves, 10 de abril de 2014

Revisa si tu version de OpenSSL en OS X sufre Heartbleed

El caos de la seguridad en Internet con Heartbleed llegó esta semana, aunque llevaba mucho más tiempo entre nosotros, para dar mucho que hablar. La vulnerabilidad CVE-2014-0160 permite a un atacante extraer una porción de memoria del proceso de OpenSSL. ¿Esto afecta a todo el mundo? La realidad es que no, solo a ciertas versiones de la popular herramienta - que son muchas -.

Existen ciertos scripts que han sido automatizados para extraer continuamente fragmentos de memoria, consiguiendo recopilar todo lo que pasaba en ese instante por esa zona de memoria.

Y... ¿Apple? En los sistemas de Apple la vida ha seguido igual como si nada de esto hubiera pasado. Todo se resume en que la solución de Apple es distinta, y solo la instalación de una aplicación de terceros o modificación de la actual de Apple haría que empezara a ser vulnerable. Entonces se puede decir que los sistemas operativos de Apple no están directamente relacionados con la vulnerabilidad.

Apple y su política... ¿separatista?

Cuando han salido vulnerabilidades de Java, Apple a veces era vulnerable y otras no, debido a que mantienen una versión paralela a la que proporciona el propio Oracle. En el caso de OpenSSL ocurre algo de manera muy similar. Apple mantiene una versión anterior de OpenSSL, la cual no es vulnerable al fallo. Por esto los usuarios de Mac pueden estar tranquilos, al igual que los usuarios de iOS, ya que no se utiliza OpenSSL. De todas formas, por si has instalado OpenSSL en tu sistema Mac OS X para hacer SSH o similares, lo mejor es que lo pruebes de la siguiente forma.

Figura 1: Comprobación de versión de OpenSSL

Poco a poco se van solventando los graves problemas de seguridad que han aparecido con esta vulnerabilidad en Internet. La tendencia es que la vida de la vulnerabilidad, una vez conocida y debido al impacto en la sociedad de Internet que ésta ha tenido, sea corta. Esta semana las gentes de IT se han ganado el salario y nosotros ya hemos añadido la detección de esta vulnerabilidad a nuestro software de pentesting persistente Faast.

miércoles, 26 de febrero de 2014

Actualiza OSX, Safari y la TV para cerrar el bug del goto fail

Después del enorme FAIL de Apple con su goto fail duplicado la compañía ha lanzado una nueva actualización de OS X Mavericks, en este caso la versión 10.9.2. Esta nueva actualización trae en total la resolución de 29 fallos de seguridad, por lo que se hace una más que imprescindible en este caso. Además, Apple ha lanzando también el Security Update 2014-001 para actualizar los sistemas operativos Mac OS X Lion - también para la versión Lion Server - y la versión de Security Update 2014-001 para OS X Mountain Lion, con los que se resuelven algunos problemas más. 

En estas nuevas actualizaciones vienen incluidas las nuevas versiones de Apple Safari 7.0.2 y Apple Safari 6.1.2, con soluciones de bugs de seguridad. Existían vulnerabilidades graves que han sido resueltas en ellos. A continuación se muestra un listado de algunas de ellas:
  • Múltiples vulnerabilidades en Apache las cuales permitían realizar un XSS. CVE-2013-1862 y CVE-2013-1896.
  • La Sandbox disponible en OS X Mountain Lion 10.8.5 puede ser bypasseada, por lo que el peligro es considerada.
  • ATS dispone de varios fallos de seguridad los cuales se pueden enumerar por los siguientes CVEs: CVE-2014-1254, CVE-2014-1262, CVE-2013-5179, CVE-2014-1255. 
  • Vulnerabilidades en CoreText y CoreAnimation las cuales permiten la ejecución de código arbitrario tras la ejecución de un archivo malicioso. CVE-2014-1257 y CVE-2014-1258.
  • Vulnerabilidades en Safari para crear unas cookies persistentes, incluso después de resetear Safari. 
  • Múltiples vulnerabilidades en PHP, en el Finder, LaunchServices, ImageIO, File Bookmark, etcétera. 
La vulnerabilidad de SSL ha dado y dará mucho más que hablar, ya que no solo ha sido enorme, sino que ha hecho pensar que lo que dijo Jacobb Applebaum sobre el espionaje de la NSA en terminales iPhone pudiera haberse realizado mediante la introducción de esa línea de código de manera intencionada.

Figura 1: Programa de la NSA para espiar iPhone

En la lista de servicios afectados estaban muchos de los clave en Apple con iMessage, FaceTime, etcétera, lo que llevó al investigador Steffan Esser a sacar un parche de emergencia no oficial para el bug y a Apple a arreglar todo su software base, incluida también en la lista Apple TV 6.0.2 - también vulnerable al bug de SSL -.

domingo, 23 de febrero de 2014

Un "goto fail" provoca el caos SSL/TLS en iOS y OSX

A todos sorprendió la urgencia de la publicación de iOS 7.0.6 e iOS 6.1.6 cuando está tan cerca la publicación de iOS 7.1. Solo un bug en la gestión SSL es lo que aparecía descrito, pero cuando se ha sabido más, se entiende la urgencia del parche. La culpa de todo, como explica el ingeniero de Google Adam Langley la tiene un goto fail que se les ha colado de mala manera en el módulo de comprobación de los certificados digitales, ¿y cómo ha sido esto? Resulta que en el módulo que comprueba la validez de un certificado digital, una larga lista de comprobaciones verifica una a una todas las características, haciendo que si una de ellas falle se añada el código de error a la variable err y luego se salte a goto fail.

Sin embargo, un goto fail perdido - correctamente identado pero sin estar dentro de ninguna condición, hace que a mitad de las comprobaciones se salte a la zona de código fail pero sin que se haya actualizado el valor del mensaje de err, ya que no ha sido provocado ese salto al final del código por ninguna condición.

Figura 1: El "goto fail" de más que provoca el caos

Cuando se llega al final del código se comprueba si se ha llegado al final porque se han pasado todos los controles de seguridad o porque se ha producido un err, al estar el valor de err sin ningún código se da por bueno ese certificado.

Figura 2: Al final del código el err llega sin valor de fallo

Este goto en medio de la lista de comprobaciones hace que la lista de verificaciones que se hacen después de él no tengan ningún efecto, ya que con que un certificado digital pase las primeras llegará a la zona final del código sin ningún valor en el código de error, haciendo que se puedan usar certificados falsos en ataques man in the middle. Apple ha confirmado que este fallo no afecta solo a iOS sino también a OSX por lo que sacará una actualización de emergencia para este bug lo antes posible. Tú, actualiza tu iOS ya y en cuanto salga el parche de OSX también.

sábado, 22 de febrero de 2014

Apple publica iOS 7.0.6 & iOS 6.1.6 con parche para SSL

Apple ha puesto en circulación una actualización de emergencia debido a un bug en el tratamiento de las conexiones SSL que puede permitir a un atacante en medio de la conexión capturar y modificar la conexión completamente. El bug está descrito en el CVE-2014-1266 y ha sido parchado tanto en la rama iOS 7 con la versión iOS 7.0.6 como en la rama iOS 6, con la actualización iOS 6.1.6.

Figura 1: bug CVE-2014-1266 arreglado en iOS 7.0.6

Te recomendamos que actualices cuanto antes, que esta actualización de emergencia cuando queda tan poco para que salga iOS 7.1 solo se debe a que está siendo explotada la vulnerabilidad actualmente, así que si no quieres problemas, instala la nueva versión ya.

miércoles, 6 de noviembre de 2013

Apple Safari 7 se defiende de BEAST en OS X Mavericks

En el año 2011 en las conferencias Ekoparty en Buenos Aires, los investigadores en seguridad Thai Duong y Juliano Rizzo realizaron una demostración del exploit denominado BEAST, Browser Exploit Against SSL/TLS, utilizando para ello un Applet de Java. Antes de hablar de la noticia en sí, la mitigación de este ataque por parte del navegador de Apple, hablaremos de qué es BEAST y en qué afecta realmente a los usuarios. BEAST afecta a TLS 1.0 y SSL 3.0.

La mayoría de los sistemas de cifrado están basados en dos hechos fundamentales:
  • El atacante no conoce el mensaje que se envía por el canal.
  • El atacante no conoce la clave utilizada para cifrar el mensaje que circula por el canal.
En el mundo de la seguridad se conocía desde hace años que TLS/SSL era potencialmente vulnerable, fue enunciada por Phillip Rogaway en el año 2002. Por lo tanto BEAST no ha revelado ninguna cosa que no se supiera, pero ha demostrado con las acciones necesarias a llevar a cabo la explotación real de la vulnerabilidad, es más, BEAST ha conseguido realizar una prueba de concepto de algo teórico y que parezca "sencillo".

¿Cómo funciona BEAST?

En primer lugar el atacante debe insertar código en la sesión actual del navegador de la víctima, por ejemplo utilizando un iframe embebido en un sitio web. El código inyectado debe obligar al navegador de la víctima a incluir un fragmento conocido de texto sin formato. Es muy importante este hecho ya que servirá de código de estudio, a través del canal SSL.

Para llevar a cabo esta acción lo más sencillo sería utilizar, por ejemplo Javascript. El atacante debe capturar tráfico SSL de la víctima, por lo que lo más sencillo sería utilizar un ataque ARP Spoofing, en una red local IPv4, o con algún ataque en una red IPv6, por ejemplo, o algún tipo de rastreador. En este punto el atacante dispondrá de un ejemplo de texto sin formato y un fragmento cifrado con el cual se podrá llevar a cabo el criptoanálisis. El objetivo podría ser conseguir una cookie de sesión, una contraseña, etcétera.

Video 1: Ejemplo de Beast explotado con un Apple Safari 5

Recomendaciones

Las recomendaciones para mitigar el impacto de la vulnerabilidad son:
  • Debido a que el atacante necesita de tiempo para descifrar el mensaje, si la cookie de sesión se invalida antes de que el atacante consiga su objetivo, el ataque no tendrá éxito.
  • Cerrar la sesión correctamente al abandonar un sitio SSL. 
  • Evitar la visita de recursos no seguros, es decir evitar la inyección de código, evitar el uso de una red no segura, donde pudieran haber "vecinos" o equipos adyacentes no fiables.
El nuevo Apple Safari 7 en OS X Mavericks

Apple ha habilitado una nueva característica en su reciente actualización de OS X Mavericks, la cual neutraliza los ataques criptográficos BEAST. La funcionalidad para mitigar este ataque en Apple Safari 7 estaba implemente en código desde principios de 2012, en la versión OS X Mountain Lion, pero no había sido habilitada hasta la nueva versión del sistema operativo OS X Mavericks 10.9.

Por otro lado, si se quieren habilitar las mitigaciones contra BEAST en OS X Mountain Lion en el navegador de Apple Safari, se debe ejecutar la siguiente instrucción y después reiniciar el navegador:
 sudo defaults write /Library/Preferences/com.apple.security SSLWriteSplit -integer 2

martes, 15 de octubre de 2013

Protege tus conversaciones de WhatsApp con una VPN

Ya hemos hablado de que recientemente se ha publicado una debilidad en el sistema de cifrado de WhatsApp que puede permitir que las conversaciones sean descifradas. A día de hoy no hay una herramienta que no lo haga, pero cualquiera pueda grabar las conversaciones enviadas por la red y esperar a descifrarlas cuando salga una aplicación que lo haga. Hay que tener en cuenta que para la anterior versión ya se creó un plugin de Wireshark que procesaba los ficheros .pcap en busca de las conversaciones, para mostrarlas descifradas, así que es probable que también lo haga en el futuro.

Para evitar esto, lo mejor es utilizar una conexión VPN en cualquier red en la que se vaya a utilizar WhatsApp, para que en caso de que alguien esté capturando el tráfico de red para espiar Whatsapp, tenga que lidiar con dos cifrados - el de la conexión VPN y el débil de WhatsApp - o tres, si existe algún cifrado en la conexión WiFi.

Figura 1: Hide my Ass Pro para iPhone

En iOS viene por defecto un cliente de conexión VPN PPTP o L2TP/IPSEC que permiten conectarse a cualquier servidor del que se tengan credenciales. Soluciones como Hide my Ass o PureVPN ofrecen apps integradas con cuentas de servicio mensuales para tener la configuración y el servidor de conexión en diferentes países.

Figura 2: PureVPN dice soportar SSTP, pero solo tiene PPTP y L2TP en iOS

Lo que no hemos visto es que existan clientes SSTP y aunque alguna app como PureVPN dice tenerlo con soporte para iOS, lo cierto es que hemos probado la solución y sólo permiten las conexiones VPN basadas en PPTP y L2TP/IPSec, con los inconvenientes que esto puede suponer en algunos sitios.

Entrada destacada

Proteger tu cuenta de Google y de Gmail con Latch Cloud TOTP #Latch #Gmail #Google

La semana pasada se liberó la nueva versión de Latch y nuestro compañero Chema Alonso hizo un repaso de todo ello en su artículo Latch...

Otras historias relacionadas

Entradas populares