Aplicaciones Android vulnerables a Man-In-The-Middle

Se han identificado recientemente multitud de aplicaciones Android vulnerables a ataques del tipo Man-In-The-Middle (MITM) bajo SSL, permitiendo a un atacante obtener la información transmitida entre el dispositivo móvil y el servidor.

En Fireeye han analizado 1.000 aplicaciones disponibles en Google Play y de ellas el 68% fueron identificadas como vulnerables. En el análisis se detectaron las siguientes tres casuísticas, que provocan un error en el manejo de las sesiones SSL/TLS conllevando a que un atacante puede realizar un ataque MITM.

  • El gestor de confianza no verifica la cadena de certificados del servidor remoto, al no comprobarse si los certificados se encuentran firmados por una Autoridad de Certificación (CA).
  • Se permite reemplazar el servidor remoto, dado que no se verifica el nombre del servidor, verificándose únicamente si el servidor dispone de un certificado, independientemenete de si es autofirmado o generado por una CA.
  • Se ignoran errores en la negociación de las sesiones SSL al emplear Webkit.

Al revisar las estadísticas de Fireeye podemos observar:

  • El 73% de las 664 aplicaciones no revisan los certificados de los servidores.
  • El 8% de las 50 aplicaciones no verifica el nombre de los servidores.
  • Y un 77% de aplicaciones de las 285 analizadas ignora los errores SSL generados al emplear Webkit.


Ahora bien, ¿qué impacto o consecuencias pueden suponer estas vulnerabilidades en nuestro dispositivo móvil?

Tras los análisis llevados a cabo, dependiendo de la aplicación que tengamos instalada podemos sufrir las siguientes consecuencias:

  • Extracción de fotos almacenadas.
  • Extracción de las credenciales de acceso de la aplicación.
  • Extracción de credenciales de acceso de redes sociales (Facebook, Twitter…)
  • Asimismo, hay aplicaciones que pueden llegar a permitir a un ataque inyectar imágenes o aplicaciones maliciosas, así como Denegación de Servicio (DoS).

Pero no únicamente se han detectado aplicaciones vulnerables a MITM, también existen librerías que permitirían obtener información sensible, como puede ser la ubicación o el código IMEI.

Estas detecciones nos hacen plantearnos las siguientes preguntas, ¿cuál es nuestro nivel de seguridad hoy en día en nuestros dispositivos móviles? ¿Podemos confiar ciegamente en las aplicaciones de Google Play?

Este descubrimiento pone en peligro la seguridad de nuestros dispositivos móviles, en especial los dispositivos de Android, y por consiguiente la confidencialidad de la información que manejamos en ellos (correo electrónico personal y/o profesional, credenciales a redes sociales, datos bancarios etc.).

Los desarrolladores ya están informados de las vulnerabilidades y esperamos que se apliquen las medidas correctivas cuanto antes. Aún así, como usuarios, nosotros también debemos aplicar medidas preventivas, especialmente en las redes wifi, dado que es en ellas donde podríamos sufrir este tipo de incidentes de seguridad. Hay que recordar que nunca sabemos quién puede estar detrás analizando el tráfico que enviamos en este tipo de redes.

Por otro lado, estas detecciones recientes ponen en entredicho la seguridad de las aplicaciones de Google Play, y por consiguiente el sistema Android. Este tipo de incidentes puede incluso llegar a hacer que nos decantemos por uno u otro dispositivo. Esto está siendo aprovechado hoy por hoy por Apple en su sistemas iOS, queriendo dar la sensación de mayor seguridad, al ser aplicaciones que han pasado un control más exhaustivo por miembros de Apple.

Shodan Reports

Tal y como recientemente anunció John Matherly (@achillean), fundador de Shodan, se han incorporado mejoras significativas en dicho buscador como, entre otras funcionalidades, una mejor integración con Shodan Exploits / Maps, resultados más rápidos, posibilidad de exportar en CSV o JSON o la posibilidad de representar gráficamente una instantánea de los resultados obtenidos tras hacer una determinada búsqueda, a modo de informes para tener una visión general de dichos resultados, de forma que, podamos tener una serie de gráficas desglosadas según ubicación, sistema operativo, producto, nombre del host, etc.

Los informes pretenden, por un lado, mostrar una imagen visual de los resultados, mucho más atractivos y accesibles si son presentados a modo de gráficas o mapas, de forma que con solo mirar el informe te hagas una idea de cuáles son los resultados obtenidos y puedas identificar tendencias. Por otro lado, puesto que los informes son instantáneas de los resultados de la búsqueda tal y como la ve Shodan en ese momento, es posible programar por ejemplo reportes periódicos cada X meses para detectar cambios en las redes que auditamos como nuevos elementos incorporados. Aunque esto también sería posible hacerlo añadiendo por ejemplo a nuestra petición las etiquetas “after” y/o “before” y, de los resultados obtenidos, obtener un informe. Un ejemplo de petición para obtener resultados, por ejemplo, recogidos en los últimos 8 meses de las WebCams indexadas por Shodan sería:

Server: SQ-WEBCAM | after:01/01/2014 | before:01/09/2014

Se pueden consultar todas las opciones para personalizar las búsquedas echando un vistazo a la documentación de la API y en la ayuda de los filtros de Shodan.

Para generar un informe, solo hay que pinchar en “Create Report” tras realizar la petición de búsqueda, darle un título identificativo y esperar a que te llegue vía email el enlace que te lleva al informe que has generado.

Una ejemplo de informe sería el siguiente. Queremos ver de forma genérica estadísticas de Raspberry Pi online indexadas por Shodan. Como es algo muy genérico en la consulta simplemente buscaré por Raspbian:

Tras la obtención de resultados solicitamos el informe a través de “Create Report” y en unos pocos minutos nos llegará a nuestro correo el enlace al informe solicitado que, en este caso podéis ver completo en este enlace, y a continuación algunas capturas:

Otro ejemplo de informe podría ser con la siguiente consulta, servidores Apache detectados en el último mes en España:

apache country:ES after:01/08/2014 before:01/09/2014

El informe de salida tendría este aspecto:


(Me pregunto que pasará en Orihuela …)

Parece muy interesante esta nueva funcionalidad de Shodan, ¿se os ocurren más utilidades para obtener los informes?

Un Python mareado

Durante el transcurso del análisis forense de una máquina que sospechamos que está contaminada con malware, hemos encontrado el siguiente fichero: cosa.pyc.

¿Alguno de nuestros lectores nos podría echar una mano para saber qué hace? ;-)

Peritos informáticos forenses: Legislación, verdades y mentiras

Los delitos informáticos están de moda (y lo que les queda). Fraudes, robo de datos personales y bancarios, amenazas, pornografía infantil, blanqueo de capitales… la lista es larga, y solo limitada por la imaginación, la naturaleza humana y la legislación vigente.

Entre el aumento de los delitos, la mejora de la legislación (que hasta hace relativamente pocos años no equiparaba delitos informáticos con sus equivalentes físicos) y el excelente trabajo de las FCSE, cada día llegan a los juzgados más casos relacionados con las TIC.

Y dado que los jueces no son omniscientes, en ocasiones es necesario que recurran a terceras personas. Según la RAE, un perito se define como “persona que, poseyendo determinados conocimientos científicos, artísticos, técnicos o prácticos, informa, bajo juramento, al juzgador sobre puntos litigiosos en cuanto se relacionan con su especial saber o experiencia”.

[Read more…]

Corredores o Robocops

Los que peinamos canas en esto de las carreritas nos asombramos al contemplar a los compañeros más jóvenes corriendo con iPhones, GPS, pulseras inteligentes, etc. (en adelante los denomino “trastitos”). Más parecen Robocops que Runners.

Qué tiempos aquellos en los que salías a correr solo por el placer de correr y te importaba un pito el ritmo, la distancia, las calorías, la monitorización, etc., y además después (tras una buena cervecita) dormías como un lirón sin preocuparte de comparar lo que habías hecho ese día con los ejercicios o los entrenamientos de otros días.

Pero los tiempos han cambiado y ahora parece que vayamos desnudos si no sabemos a) dónde estamos, b) calorías eliminadas, c) a cuántos km/h vamos y otras tantas variables.

Uno se pregunta: ¿para qué? A mi francamente lo único que me importa son las pulsaciones; si me mantengo en un maratón en torno a las 135 ppm. voy bien, si paso de 160 ppm. en el Gran Fondo de Siete Aguas, pues comienzo a andar y no corro. Está claro que esta es mi opción y cada uno ha de hacer lo que crea conveniente.

Para acabar de arreglarlo nos conectamos a aplicaciones (casi todas gratuitas) que nos dan información de la ruta, desniveles, temperatura, previsión meteorológica, etc. Los “antiguos” antes de salir miramos al cielo, sacamos la mano por la ventana y si se moja cogemos el chubasquero, si se quema cogemos el gorrito, …

Si además tenemos en cuenta que los parámetros que utilizan todos esos “trastitos” y las aplicaciones a las que nos conectamos son, sencillamente, “parámetros”, nos podemos encontrar con que para un mismo peso, un mismo entrenamiento, una misma distancia, etc., para dos personas distintas nos dan distintos ritmos cardíacos o distintos consumos de calorías. Tenemos pues un problema si nos fiamos de esos “parámetros” y no los criticamos (cuestionamos).

Claro que si también tenemos en cuenta que esas aplicaciones permiten conectarse con redes sociales y proclamar (a los cuatro vientos) que estamos corriendo en Madrid o en Sebastopol, podemos tener otro problema si alguien tiene la (mala) intención de entrar en nuestra casa mientras hacemos running.

Y si en alguna de esas aplicaciones (¿por qué serán gratuitas? ¿por qué pedirán tantos permisos a priori innecesarios?) hay algún “malo”, puede ocurrir que acceda (sin permiso) a nuestro dispositivo donde están los contactos, las claves, nuestro correo, agenda, etc. ¡Caray!, tenemos otro problema.

Y otra (¿casualidad?) que podemos destacar es que tras haber indicado mi peso, talla, objetivo, etc., resulta que uno comienza a recibir anuncios “personalizados” en el que te indican dónde comprar, qué ofertas personalizadas tengo, que libros me interesan, etc.

Lo curioso es que no veo que entre los usuarios de estas aplicaciones se hable mucho del tema. ¿Será que estoy equivocado? ¿Seré yo, que soy un paranoico?

OSSEC: LOCALFILES y MySQL

La mayoría de vosotros ya sabréis que OSSEC es un sistema de detección de intrusos basado en host (HIDS). Si aun no lo conocéis, os recomiendo echarle un vistazo a la entrada “OSSEC como herramienta de Incident Handling”.

En esta entrada vamos a comentar la capacidad de monitorizar en tiempo real las salidas de comandos personalizados en un sistema Linux. Esta utilidad se configura en el fichero “ossec.conf”, entre etiquetas “<localfile>” y “<command>”. Si miráis este fichero, podéis ver como ya existen algunos preestablecidos, como df, netstat o last. Nosotros podemos añadir los que queramos y sean de utilidad para nuestro entorno. Por ejemplo, un comando netstat más personalizado o un listado de los módulos cargados en el kernel de Linux con lsmod. En nuestro ejemplo, proponemos el siguiente comando personalizado de netstat:

netstat -antupd |sort |awk 'BEGIN{printf "%-8s %-20s %-20s %-20s %-10s\n","PROTO", 
   "IP/PUERTO LOCAL","IP/PUERTO REMOTO", "ESTADO CONEXION", "PROCESO 
   LOCAL"}/ESTABLISHED/{printf "%-8s %-20s %-20s %-20s %-10s\n",$1,$4,$5,$6,$7}'|uniq

[Read more…]

¿Qué es un “Exchange” y para qué sirve?

Seguramente hayamos oído hablar mucho acerca del “e-Money” últimamente, sobre todo tras la llegada del famoso Bitcoin. Actualmente podemos encontrarnos infinidad de monedas digitales, tales como: Bitcoin, Litecoin, Namecoin.

La moneda digital es un tipo de moneda alternativa que no depende de un banco central o entidades específicas, por lo tanto no está regulada por ningún gobierno, al menos de momento. Dichas monedas utilizan algoritmos criptográficos para regular la creación y la transacción. ¿Y para qué podemos usar este tipo de moneda? La respuesta puede ser todo lo amplia que queramos, pero sobre todo, lo que podemos comprar con este tipo de moneda son servicios. ¿Qué tipo de servicios? Pues depende de qué queramos, pero desde el punto de vista de un delincuente, se puede adquirir desde la contraseña de una cuenta de correo, hasta una red botnet adecuada a nuestras necesidades. Pues bien, entre estos servicios y el dinero real, existe una cosa llamada “Exchange”.

El propósito de un “Exchange”, cuyo funcionamiento se muestra en la siguiente imagen, es sencilla: cambiar de divisa. Imaginemos que un delincuente obtiene los datos de las tarjetas de crédito de una tienda online mediante un ataque, datos que no quiere utilizar para no delatarse. Para ello, recurre a un “Exchange”, por donde pasará el dinero hasta encontrar la forma de que se pierda la traza del mismo.

Por ejemplo, el delincuente puede comprar Bitcoins con los datos de las tarjetas , para posteriormente venderlos a otros usuarios, y magia, dinero 100% limpio. Otra opción que podemos observar en el diagrama anterior, sería vender esas tarjetas de crédito a otras personas, que se encargarían de realizar el mismo procedimiento.
Podemos encontrar páginas “Exchange” de todo tipo: de Paypal a Bitcoin, de tarjeta de crédito a Bitcoin, de Western Money a Payza, etc. Estos son algunos ejemplos:

¿Quién se esconde tras estos servicios de “Exchange”?

Personas que desean blanquear grandes cantidades de dinero, y que ven en servicios de “Exchange” un negocio seguro. En cuanto al funcionamiento interno de un “Exchange”, poco podemos decir; no es más que dinero que se cambia por otro dinero, un servicio bidireccional de blanqueo, entre el usuario y la empresa, TODOS GANAN.
Quizá esta sea una de las razones por las que está tan demandado el Bitcoin y las e-currency, básicamente porque es una moneda muy útil para los delincuentes.

Ciudades sociales

(Tras el siempre breve descanso vacacional retomamos la actividad de Security Art Work para darles la bienvenida a todos los que, como nosotros, se reincorporen hoy a la vida laboral y desearles felices vacaciones a los que se van ahora a disfrutar del merecido descanso. Veremos que nos depara este nuevo curso 2014-2015. Empezamos con una entrada a propósito de una empresa que se ha hecho muy popular este verano y en la que hemos tenido dudas para determinar el tiempo verbal.)

La empresa Gowex ha estado de actualidad estos meses pasados a raíz de un escándalo financiero. Aunque al parecer sus proyectos no son tan exitosos como parecían (y vamos a dejarlo ahí que no somos analistas financieros), al menos es justo reconocerle méritos en algunos de los proyectos de I+D desarrollados.

Gowex ha venido apostando por las smart cities (“ciudades inteligentes”), con acceso WIFI libre y mejor acceso a los servicios y transportes públicos. Además, Gowex es el creador de la “Social Wifi” con We2, un proyecto que se lanzó a finales del año pasado en Nueva York. We2 supone un rizar más el rizo del modelo de las redes sociales: conectarse con el entorno que nos rodea. La compañía ofrece conectarte a las redes Wifi disponibles a tu alrededor (tiendas, restaurantes, centros comerciales y otros locales) de forma automática para poder comunicarte con este entorno.

Por otro lado, anunció recientemente una colaboración estratégica con Cisco, que a su vez es el promotor de “The Internet of Everything” (o el menos atractivo “Internet de las Cosas”). Con esta unión ambos pretenden llegar a conseguir la interconexión total de las personas con las ciudades.

La contribución de este tipo de proyectos a las “Smart Cities” es claramente positiva, pues se traduce en eficiencia energética, ahorro de costes, mejora de servicios al ciudadano, más visibilidad para pequeños comerciantes, etc. Sin embargo, hay que pensar que nunca se van a realizar a “coste” cero para el ciudadano. La realidad es que este tipo de servicios tienen como objetivo final personalizar la publicidad por segmento de cliente en tiempo real. Por ejemplo, a la vez que los usuarios de We2 pueden conocer quién está tomando un té en la cafetería de la esquina, empezarán a recibir ofertas y descuentos de teterías cercanas. Y más de lo mismo cuando se registren sus movimientos, hábitos y preferencias por el resto de la ciudad.

Aristóteles ya afirmó que el hombre es un animal social, pero quizás sea conveniente replantearse establecer un límite. Si empezamos a estar conectados a todo lo que nos rodea, ¿cómo vamos a ser capaces de controlar qué información estamos entregando (y a quién)? ¿Cómo vamos a gestionar la seguridad de un sistema tan heterogéneo y con tantos actores involucrados? A mi juicio, a menudo no se acompaña el desarrollo de estas tecnologías con medidas acordes para la privacidad (y seguridad) de los usuarios, sino que es más fácil asumir que nuestro nivel de exposición debe ser cada vez mayor.

Al final y como siempre, nuestra alternativa será decidir “cuánto de social” queremos ser. Nunca estaremos totalmente “a salvo”, pero quizá nos mantengamos en los límites de lo razonable.

Vacaciones

Pues eso, el título -un año más- lo dice todo: nos vamos de vacaciones. Sí, y ponemos la foto de la palmera, la de siempre. Pero para no escribir lo mismo todos los años, en esta ocasión no haremos los listados con lo que ha ido apareciendo por Security Art Work durante este ejercicio, con los consejos pre-vacacionales, con todo aquello de pasarlo bien -con seguridad- y demás. Al contrario: os proponemos unos ejercicios para ayudaros a disfrutar de las vacaciones; veréis que rápido se pasan estos días que llevamos todo el año esperando: cuando queramos darnos cuenta, estaremos de nuevo en el trabajo, disfrutando de informes, ofertas, APT y similares…. Aprovechadlos, ¡son gratis!

  • Calculad cada mañana los días que os quedan hasta volver a la oficina.
  • Todos los días, mientras desayunáis, pensad en el trabajo que tendréis acumulado a la vuelta: nadie lo está haciendo por vosotros.
  • Cuando estéis tomando una caña, pensad que los malos no descansan y quizás, en esos momentos, estén robando vuestra información corporativa.
  • Si está difícil encontrar sitio en la playa, recuerda que toda esa gente volverá a tu misma ciudad el mismo día que tú, causando un enorme atasco.
  • Cuando los niños se pongan pesados, imagínate lo tranquilo que estarías en la oficina haciendo tus informes.
  • Al pedirte un dineral por una sangría y un plato de paella recalentado, recuerda el menú del día en el bar donde comes habitualmente.

Y con estos mensajes optimistas, nos despedimos hasta septiembre :) Ahí va, por fin, la palmera:

¿Renovar nuestro viejo terminal? Sí, pero con cuidado

Recientemente, el Centro de Seguridad TIC de la Comunidad Valenciana (CSIRT-cv), ha publicado un “estudio desarrollado por AVAST”. Dicho estudio ha demostrado que fue posible recuperar datos de dispositivos de Android después de que estos hubiesen sido eliminados, incluso empleando la opción de “Restablecer datos de fábrica”.

En este post, veremos que medidas de seguridad debemos adoptar si tenemos pensado renovar nuestro terminal y vender el viejo. Estas son algunas de las medidas más significativas:

1º) No incluir nuestra vieja SD en la venta del terminal. Esto nos ahorrará muchos quebraderos de cabeza, ya que como todos sabemos a estas alturas, el contenido de una tarjeta SD o micro SD es recuperable.

2º) Mover el software instalado desde Google Play a nuestra tarjeta SD. De esta forma, todos los datos se guardarán siempre en nuestra tarjeta SD o micro SD.

3º) Encender nuestro terminal en modo recovery y formatear el terminal desde ahí. Este proceso, aunque puede parecer complicado, no lo es tanto. Hay varios métodos para poner nuestro terminal en modo recovery:

    a) Lo primero será apagar nuestro terminal. Una vez apagado, mantendremos pulsados simultáneamente el botón “encendido” y el botón “bajar volumen” durante unos segundos. Tengamos en cuenta que la combinación puede variar, y si esta no funciona probad con encendido + volumen arriba o encendido + las dos teclas de volumen. Hay variaciones dependiendo del dispositivo. A continuación nos debería aparecer una lista con opciones y entre ellas escogeremos la opción recovery.

      Debería salir algo parecido a la ilustración 1, más tarde debemos buscar la opción wipe data factory reset, y debería aparecer algo como lo siguiente :

      Una vez acabe el proceso, ya tendremos nuestro terminal formateado.
    b) Si con el método anterior, no somos capaces de acceder al modo recovery, tenemos otra opción más simple de acceso. Si nuestro terminal está rooteado, simplemente tenemos que descargarnos la siguiente app:

    Una vez reiniciado, simplemente tenemos que seguir el 2º paso.

    c) Por último, si no podemos acceder al modo recovery con los métodos anteriormente descritos, tenemos otra opción, un poco más complicada pero infalible.
    En primer lugar, necesitaremos acceso a un PC. Tenemos que descargar el Android SDK, e instalaremos el siguiente software, Android Debug Bridge:

    Dentro del ADB entraremos en la carpeta Platform Tools, y mientras pulsamos el botón “Mayus” clicaremos con el botón derecho de nuestro ratón. Escogeremos la opción “Abrir ventana de comandos Aquí“. En la ventana que aparecerá escribiremos lo siguiente:

    >>adb reboot recovery

    Una vez se haya reiniciado nuestro terminal, simplemente debemos de seguir el 2º paso.

    Ahora que sabemos cómo proteger nuestra información sensible, ya no hay excusa para no hacerlo.