Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Innovación disruptiva en tecnologías de seguridad

566 views

Published on

Curso de Verano 'Innovación en ciberseguridad aplicada a la protección de la identidad digital #CIGTR2015'.
http://es.cigtr.info/2015/06/curso-de-verano-innovacion-en-seguridad.html (ES)

Cursos Universidad de Verano URJC
'Innovación disruptiva en tecnologías de seguridad (dinnoTSec14)'
http://es.cigtr.info/2014/06/innovacion-disruptiva-en-tecnologias-de.html (ES)

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Innovación disruptiva en tecnologías de seguridad

  1. 1. Libro BBVA maqueta-ESP 1.indd 1Libro BBVA maqueta-ESP 1.indd 1 22/05/2015 14:07:1322/05/2015 14:07:13
  2. 2. d innoTSec14 Innovación disruptiva en tecnologías de seguridad Cursos de Verano 2014 Universidad Rey Juan Carlos Campus de Vicálvaro Madrid, del 30 junio al 2 de julio de 2014 Libro BBVA maqueta-ESP 1.indd 01Libro BBVA maqueta-ESP 1.indd 01 22/05/2015 14:07:1722/05/2015 14:07:17
  3. 3. EDICIÓN PRODUCCIÓN DISEÑO Y MAQUETACIÓN Miguel Salgueiro / MSGráfica IMPRESIÓN Y ENCUADERNACIÓN Gráficas Monterreina Depósito Legal: M-18110-2015 Libro BBVA maqueta-ESP 1.indd 02Libro BBVA maqueta-ESP 1.indd 02 22/05/2015 14:07:1722/05/2015 14:07:17
  4. 4. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 3 ÍNDICE PRÓLOGO ...................................................................................................................................................................................................... 5 Santiago Moral CUMPLIENDO CON EL CONTROL DE ACCESO BASADO EN LA LOCALIZACIÓN Y EL TIEMPO DE DATOS ALMACENADOS EN LA NUBE ........................................................................................................................................................... 7 Claudio Soriente INTELIGENCIA ARTIFICIAL Y MACHINE LEARNING EN LA INVESTIGACIÓN DE CAMPAÑAS APT ......... 23 Vicente Díaz CYBERPROBE: TOWARDS INTERNET-SCALE ACTIVE DETECTION OF MALICIOUS SERVER ................... 37 Juan Caballero PANDORA FMS: CÓMO COMPETIR CON LOS GRANDES FABRICANTES DE SOFTWARE SIN MORIR EN EL INTENTO ............................................................................................................................................................... 53 Sancho Lerena ESPECIALIZACIÓN E INNOVACIÓN PARA COMPETIR EN SEGURIDAD .................................................................... 65 Andrés Tarascó Acuña PROTEGIENDO LA INFORMACIÓN EN LA NUBE. TECNOLOGÍAS DE CIFRADO .................................................. 73 Isaac Agudo Libro BBVA maqueta-ESP 1.indd 03Libro BBVA maqueta-ESP 1.indd 03 22/05/2015 14:07:1822/05/2015 14:07:18
  5. 5. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR4 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 INNOVACIÓN DISRUPTIVA EN TÉCNICAS DE CIBERCRIMEN ........................................................................................ 91 Etay Maor INNOVACIÓN EN IDENTIDAD ............................................................................................................................................................ 103 Luis Saiz ENIGMEDIA. INNOVACIÓN EN COMUNICACIONES CIFRADAS .................................................................................... 121 Gerard Vidal MESA REDONDA: INFORMACIÓN PERSONAL (PII), DERECHOS DE LOS CIUDADANOS Y REGULACIÓN INTERNACIONAL .................................................................................................................................................. 129 Intervinientes: Luis Saiz, Isaac Agudo, Juan López-Rubio Fernández, Esther González Hernández y Pablo García Mexía Moderador: Miguel Ángel Cano Gómez DETECCIÓN DE ANOMALÍAS CON APACHE SPARK ............................................................................................................ 151 Sean Owen PERCEPCIÓN DEL CRIMEN A TRAVÉS DE LAS REDES SOCIALES ............................................................................... 163 Luke Sloan UN MODELO DE COLABORACIÓN UNIVERSIDAD-EMPRESA: LA RELACIÓN ENTRE EL GRUPO BBVA Y LA URJC .............................................................................................................. 177 Regino Criado / Santiago Moral Rubio ÁLBUM FOTOGRÁFICO ........................................................................................................................................................................ 193 Los contenidos de las ponencias están disponibles en la página oficial de CIGTR www.cigtr.info. Se pueden consultar las transparencias y los vídeos en los canales oficiales de CIGTR en YouTube y SlideShare. Libro BBVA maqueta-ESP 1.indd 04Libro BBVA maqueta-ESP 1.indd 04 22/05/2015 14:07:1822/05/2015 14:07:18
  6. 6. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 5 P or cuarto año consecutivo ponemos a tu alcance esta publicación que recoge las ponencias presentadas durante el Curso de Verano que impulsa el CIGTR de la mano de la Universidad Rey Juan Carlos. En este curso de 2014 hemos tratado cómo las nuevas tecnologías, a la par de proporcionar oportunidades de conectar cada vez más nuestras vidas, también nos obligan a adoptar nuevas medidas para mantenerlas seguras. Estar preparado tanto para esas oportunidades como las amenazas que les acompañan requiere aproximaciones y formas de pensar diferentes. Al mismo tiempo, en las organizaciones crece rápidamente la preocupación respecto a la dirección a seguir dentro de sus planes estratégicos, en vista que esta evolución tecnológica está sucediendo a una velocidad mayor de la que se sienten cómodas para gestionar. El ecosistema en el que estamos inmersos, más allá de invitarnos a innovar, nos reta a ser disruptivos en nuestras ideas y soluciones. La innovación disruptiva se produce cuando incorporamos al mercado un producto, servicio, sistema, proceso o método organizacional que supone una ruptura con lo ya establecido, no siendo una evolución natural de lo ya existente. De esta forma, nacen tecnologías revolucionarias que representan puntos de inflexión en las prácticas establecidas, produciéndose cambios de alcance global. Este tipo de innovación, por lo general, es menos eficiente durante su incursión en los mercados que ya son maduros en la PRÓLOGO Santiago Moral Rubio Director de IT Risk, Fraud & Security. Grupo BBVA Libro BBVA maqueta-ESP 1.indd 05Libro BBVA maqueta-ESP 1.indd 05 22/05/2015 14:07:1822/05/2015 14:07:18
  7. 7. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR6 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 práctica anterior, pero es muy competitiva en aquellos que están abiertos a una nueva oferta de menor costo, aunque presenten algunas deficiencias iniciales. En este sentido las startups juegan un papel fundamental. Son éstas las que consiguen mostrar una mayor agilidad para adaptarse a las necesidades del mercado en comparación con las grandes corporaciones. Además, tienen mejores motivaciones para abordar nichos que en principio son pequeños y con poco margen de ganancia. Si esto a su vez se conjuga con una colaboración estrecha y estable con universidades u otros entes de investigación científica, es posible obtener ventajas competitivas reales y diferenciadoras, a la par que se promueve un avance en el conocimiento. Esta es la apuesta que hacemos desde el Grupo BBVA para encontrar esas soluciones que van a permitirnos afrontar los retos que se nos presentan en el ámbito de la ciberseguridad y, en esa línea, el contenido seleccionado para este curso acompaña a esta estrategia. Libro BBVA maqueta-ESP 1.indd 06Libro BBVA maqueta-ESP 1.indd 06 22/05/2015 14:07:1822/05/2015 14:07:18
  8. 8. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 7 E l trabajo que os voy a presentar trata sobre el control de acceso que también tiene en cuenta el tiempo y el lugar. Quizá estéis familiarizados con los Servicios Basados en Localización. Si miráis hacia las tecnologías disruptivas, los Servicios Basados en Localización son una de ellas. Esta charla trata sobre cómo asegurar este tipo de sistemas. Voy a comenzar con una transparencia acerca del control de accesos (AC). Aquí está Alice, que es la propietaria de algunos recursos, como unos ficheros, y quiere aplicar unas políticas de control de acceso para esos ficheros. Ella no está siempre conectada, por lo que recurre al cloud, llamaremos a este servidor como el punto de aplicación de políticas (PEP, Policy Enforcement Point). Lo que hace Alice es especificar un archivo y una política de acceso basada en la identidad de los usuarios, quienes se supone que van a acceder a dicho fichero. Por ejemplo, esa política de acceso debe permitir acceder a Bob o Charlie. Como hemos dicho, ya que Alice no siempre está conectada, transfiere el archivo y dicha política de seguridad al punto de aplicación de políticas, que es exactamente lo que el nombre sugiere, para hacer cumplir la política de seguridad en nombre de Alice. Para hacerlo, el PEP debe ser la puerta al archivo y debe de identificar a los usuarios. Esto significa que cuando Bob quiera acceder al Claudio Soriente Investigador senior en el Grupo de Seguridad de Sistemas (D-INFK) en el Instituto Federal Suizo de Tecnología (ETH) de Zúrich El contenido de esta ponencia (diapositivas y contenidos audiovisuales) está disponible en la página oficial de CIGTR www.cigtr.info CUMPLIENDO CON EL CONTROL DE ACCESO BASADO EN LA LOCALIZACIÓN Y EL TIEMPO DE DATOS ALMACENADOS EN LA NUBE Libro BBVA maqueta-ESP 1.indd 07Libro BBVA maqueta-ESP 1.indd 07 22/05/2015 14:07:1822/05/2015 14:07:18
  9. 9. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR8 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 archivo, su identidad se compara con la política de seguridad establecida y debido a que concuerda con ella, se le da una copia del archivo. De igual manera, si David quiere acceder al archivo, ya que su identidad no concuerda con la establecida en la política de seguridad, le será denegado el acceso a dicho archivo. Esto es lo que sería un control de acceso estándar basado en la identidad del usuario o, también, lo que sería basado en roles según una jerarquía organizacional. Y, ¿por qué añadir localización al control de acceso? Hay algunas compañías que ya lo hacen a través de unos servicios llamados Recompensas Basadas en la Localización (Location-Based Rewards). La idea es que los clientes puedan conseguir cupones o descuentos por visitar unas localizaciones clasificadas como premium. Por ejemplo, Starbucks podría enviar una política que diga que si visitas uno de sus locales puedes llevarte un café gratis. Otra de las razones por la que se añade la localización al control de accesos es el llamado Geo-fencing. Un geo-fence es el perímetro virtual de un área geográfica donde puedes activar eventos cuando el usuario se mueve dentro o fuera de esa área. Por ejemplo, hay compañías que mandan datos sensibles a sus clientes a los que solo pueden acceder dentro de las instalaciones de la empresa. Por ejemplo, un banco puede establecer que solo se pueda acceder a ciertos datos dentro de las instalaciones del banco. Esto estaría dentro de lo que es el cumplimiento de la regulación, pero también conlleva implicaciones respecto a su seguridad. Symantec empezó un proyecto llamado ‘Smartphone Honey Stick Project’ cuya idea era dejar dispositivos en diferentes sitios de las ciudades de Nueva York y Chicago, como si estuvieran perdidos. Estos dispositivos contenían archivos que claramente se habían marcado como confidenciales y lo que hizo Symantec fue monitorizar la forma en la que la gente que se encontraba estos dispositivos miraban esos archivos. El resultado del experimento fue que, incluso la gente que estaba dispuesta a devolver el dispositivo a su propietario, vio lo que contenían esos archivos. En este caso, si hubiera habido un geo-fence implementado en esos archivos, seguramente no hubieran podido acceder a aquellos datos sensibles a no ser que el dispositivo fuera devuelto a la zona establecida como geo-fence. Además, cuando estableces una localización en tus políticas de control de acceso también tienes que mirar al tiempo. Para las Recompensas Basadas en Localización, el tiempo es importante porque quieres que los clientes se lleven dicha recompensa en localizaciones específicas en un momento en concreto, como la hora de apertura de ese local. Para el geo-fence tú quieres que los datos solo sean accedidos dentro de las instalaciones de tu compañía pero solo en las horas de trabajo. Desde esto sistemas puedes especificar ese tipo de políticas de seguridad que pueden llevarte a poner que tanto Bob como Charlie, pueden acceder al fichero si están en este lugar a esa hora. Además, puedes establecer dicha política de seguridad tan compleja como quieras por lo que quizá, estas dos personas, para acceder al fichero, deberían de estar en esta localización a esta hora, o en esta otra localización a esta otra hora. Todo eso lo transfieres al PEP, que debe almacenar los archivos, identificar a los usuarios y Libro BBVA maqueta-ESP 1.indd 08Libro BBVA maqueta-ESP 1.indd 08 22/05/2015 14:07:1822/05/2015 14:07:18
  10. 10. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 9 debe tener capacidades de localización, es decir, debe localizar a los usuarios. Y, teniendo todo esto, puede resultar el principal problema aquí. Si echas un vistazo a los diseños de las soluciones que existen por un lado tenemos trabajos de investigación sobre políticas de seguridad, por otro lado tenemos soluciones de criptografía y en tercer lugar tenemos los sistemas desplegados, es decir, los sistemas que tenemos funcionando a día de hoy. Vamos a empezar con las políticas de seguridad que suelen ser una extensión de los marcos de control de acceso basados en roles. Existe un estándar que define las políticas de control de acceso y que extiende su marco para expresar también los accesos basados en tiempo y localización. Por un lado, son claramente expresivos, puedes definir arbitrariamente una combinación de roles, localizaciones e intervalos de tiempo. Pero el problema es que ellos lo dejan en manos de una identidad que haga todo. Una identidad que almacena los ficheros, que cumple con las políticas de seguridad y que localiza a los usuarios. El problema es que esa identidad, el PEP, la consideramos de plena confianza. Confiamos en ella para acceder a los datos con textos claros y confiamos en ella para que aplique las políticas de seguridad correctamente. No hay forma para que Alice diga si esta persona de aquí está llevando a cado la política de seguridad de Alice de la manera correcta o no. Echemos ahora un vistazo a los sistemas desplegados. Los sistemas desplegados están basados en el check-in, es decir, en estar en las localizaciones premium. La idea aquí es que el usuario instala una aplicación en su smartphone con la que puede visitar dichas localizaciones premium, hacer check-in en esas localizaciones. Esos check-in se convierten en puntos y esos puntos dan derecho a premios, es decir, si tú consigues suficientes puntos podrías ganar un café gratis. Esto es lo que Bob va a hacer. Va a visitar un local de Starbucks, va a hacer check- in, el GPS de su teléfono está coordinado con el servidor de cupones basado en cloud, luego visita otro local, hace chek-in también, el localizador de GPS se pone en contacto con el servidor y, una vez que ha visitado un número determinado de localizaciones, el servidor de cupones le envía un cupón que a lo mejor permite a Bob conseguir un café gratis. Una de las principales ventajas es que estos sistemas no necesitan una infraestructura de localización. No necesitan el PEP para localizar usuarios porque todo está basado en las coordenadas del GPS del teléfono del usuario. El hacer check-in es una acción voluntaria del usuario que dice al servidor que está en una localización en particular. Pero la localización del GPS puede ser falsa, el usuario puede ser malicioso y, en este caso, podría abusar del sistema. Es decir, podría enviar al servidor de cupones que él está en un local de Starbucks, mientras que realmente está sentado en su sofá. Además, tenemos el mismo problema que teníamos antes, que es que el PEP es de plena confianza para acceder a los datos y para cumplir con las políticas de seguridad correctamente por lo que no tenemos manera de decir si esta política de seguridad ha sido correctamente aplicada o no. Libro BBVA maqueta-ESP 1.indd 09Libro BBVA maqueta-ESP 1.indd 09 22/05/2015 14:07:1822/05/2015 14:07:18
  11. 11. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR10 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 Para resolver el problema ante la aparición de usuarios maliciosos que proveen falsas coordenadas de GPS al servidor, hay algunas soluciones criptográficas. Una de ellas fue presentada en 2009 y está basada en pruebas de localización. La idea básica es que el PEP es ahora una identidad diferente de la infraestructura de localización. De hecho, aquí, la infraestructura de localización es ad-hoc en el sentido en el que está formada por puntos de acceso. Es decir, si una tienda quiere participar en este tipo de sistemas puede comprar uno de estos puntos de acceso y situarlo en la tienda. Estos puntos de acceso son pruebas de localización. Una prueba de localización es un estamento digital (a digital statement) que dice que un usuario estuvo allí en un momento determinado. Aquí, la idea es que Bob visita una localización y obtiene esta prueba de localización que tiene la identidad de Bob, el lugar y la hora, y esta línea de aquí que lo rodea significa que está inscrito en este punto de acceso. Bob también puede ir y conectarse a diferentes puntos de acceso para recoger varias pruebas de localización. La idea es que cuando ha recogido suficientes pruebas de localización, puede volver al PEP y el PEP puede comparar las pruebas de localización recogidas por Bob con la política de seguridad establecida para decidir si puede conceder o denegar el acceso al archivo a Bob. Esto significa que, aparte de hacer check-in de las pruebas de localización con la política de seguridad, el PEP también debe comprobar la validez de la política de seguridad. Las pruebas de localización son un sistema muy pragmático porque no necesitas el PEP para localizar usuarios, está separado. Y el usuario no puede falsificar la prueba porque la única manera que tiene de recolectar una prueba de localización es ir y conectarse con la infraestructura de localización, es decir, ir y ‘hablar’ con uno de esos puntos de acceso que pueden emitir esas pruebas de localización. No está basado en las coordenadas del GPS del teléfono del usuario. Por otro lado, el PEP debe confiar en la infraestructura de localización por lo que antes de que el sistema pueda operar debe haber una relación de confianza entre estas dos identidades. Por eso, uno debe verificar la firma que es emitida por el otro. Además, volvemos otra vez al hecho de que confiamos plenamente en el PEP. Se confía en que puede acceder al archivo, que puede aplicar la política de seguridad definida por el propietario de un modo correcto. Si miramos al espacio de diseño, si quieres desplegar un sistema así debería tener al menos tres componentes: la aplicación de políticas (alguien que verifique las credenciales de los usuarios que quieran acceder a los archivos), el almacenamiento para almacenar esos archivos y la localización (la manera de localizar usuarios). Hay una solución que es solo el PEP, es decir, un estamento que hace todo lo anterior. Este es un ejemplo de sistemas desplegados donde no se aplica la localización en el PEP y confía en las coordenadas del GPS del usuario. Así es como, a día de hoy, funcionan los sistemas. También, hay soluciones que separan el PEP de la infraestructura de localización. El PEP almacena los archivos y cumple con las políticas de seguridad mientras que la infraestructura de Libro BBVA maqueta-ESP 1.indd 010Libro BBVA maqueta-ESP 1.indd 010 22/05/2015 14:07:1822/05/2015 14:07:18
  12. 12. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 11 localización, como su nombre indica, localiza los usuarios. Pero estas dos identidades tienen que confiar una en la otra, es decir, es necesario conseguir una relación de confianza para que los sistemas puedan funcionar. Además, existen casos en los que todos los sistemas confían en el PEP para acceder a los datos y para cumplir con las políticas de seguridad. De nuevo, si estas personas son maliciosas el sistema se rompe. Este es el punto de inicio del sistema que hemos construido, el LoTAC (Location and Time-based Access Control). Lo primero que debemos tener en cuenta es que no queríamos ningún PEP de confianza, es decir, no queríamos confiar en nadie para aplicar las políticas de seguridad instaladas por los usuarios. La idea era que nadie, aparte de los usuarios autorizados que están en una localización determinada a una hora específica, debería de ser capaz de acceder a los archivos. Lo que queríamos era aplicar las políticas de seguridad a través del cifrado. La propietaria de los datos, Alice, que es quien establece la política de seguridad, cifra el archivo con lo que nos aseguramos que solamente los usuarios autorizados, en el lugar correcto y a la hora adecuada, serán capaces de acceder al archivo cifrado. Ahora, si dejamos a un lado la aplicación de las políticas de seguridad, nos queda el almacenamiento y la localización. Para el primero recurrimos a los servicios de almacenamiento en la nube como Dropbox. Lo único que necesitamos es un almacenamiento de los datos y acceso ubicuos. Como sabéis, este tipo de sistemas no tiene capacidades de localización por lo que no saben dónde están los usuarios. Ellos pueden aplicar el control de acceso basado en la identidad del usuario por lo que puedes decir “quiero que mi amigo pueda acceder a este archivo”. Pero también queríamos dejar de lado esta opción. Una vez que tienes el almacenamiento, necesitas localización. La única infraestructura de localización que puede localizar usuarios a gran escala a día de hoy es el Cellular Network Operator (el operador de red móvil). No hay otra cosa que puedas utilizar si quieres desplegar un sistema que cubra un área geográfica determinada. Ellos no ofrecen servicios de almacenamiento, pero tenemos Dropbox para eso. Ellos sí pueden identificar y localizar usuarios, en este caso, en todo el territorio nacional. Una vez que tenemos esos dos componentes del sistema, no queremos que confíen uno del otro. Si esperamos a que un servidor cloud como Dropbox hable con un operador de red como Movistar, puede que esto no ocurra nunca. Por lo que queremos un sistema que integre perfectamente estos dos. Además, Movistar está bien para España pero si Dropbox quiere hacer negocio en otro país entonces tenemos que hablar con otro operador de red móvil y, quizá, en ese otro país haya más de un operador de red. Por lo que está relación de confianza entre ambos. no es fácil. Tú quieres un sistema que funcione a día de hoy y que integre perfectamente estas dos entidades. Veamos algunos de los diseños que hemos escogido. Tenemos el operador de red móvil que puede identificar y localizar usuarios. Esto Libro BBVA maqueta-ESP 1.indd 011Libro BBVA maqueta-ESP 1.indd 011 22/05/2015 14:07:1822/05/2015 14:07:18
  13. 13. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR12 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 es lo que pasa hoy cuando Movistar sabe dónde está y quién es su usuario o, al menos, cuál es la identidad asociada a su número de teléfono. El área está dividida en celdas dentro de la red 3G. Las llamamos localizaciones y para referirnos a ellas las presentamos con una letra “e”. Cada celda de localización está cubierta por un servidor de localización (a estos podéis verlos como una estación base de antenas que están repartidas por el territorio nacional). Un solo servidor de localización es el único responsable de localizar a los usuarios que están en su localización, que son los que están dentro de la celda 3G. Los servidores de localización tienen key pairs; hay una clave pública asignada a esa localización y hay una clave secreta. Por lo que para el resto de la charla quedaros con que localización es igual a servidores de localización que es igual a la clave pública (e1 = LS1 = pke1) de estas localizaciones. Es decir, tú puedes decir: esta es la celda número uno, la localización 1 (hay un servidor de localización que corresponde a la localización 1), tiene una clave pública que está expuesta y se mantiene secreta la correspondiente clave secreta. Así, puedes pensar en el área geográfica donde el sistema ha sido dividido en estas localizaciones como la unidad granular de nuestro sistema. Acerca del servidor de almacenamiento (Dropbox puede valer pero podéis coger otro), provee un almacenamiento y acceso a los datos ubicuos, y no hace cumplir el control de acceso, por lo que Alice cifrará los datos, los subirá a Dropbox y Dropbox permitirá a cualquiera descargarse esos datos. Pero como están cifrados no nos importan las capacidades de control de acceso de Dropbox. Y, finalmente, tenemos a los usuarios. Los usuarios acceden a los datos en movilidad, tienen dispositivos móviles. Ellos exponen una clave pública (Bob es pkb) y la clave secreta está almacenada de forma segura en sus teléfonos (esto sk). Tú puedes pensar fácilmente que estos pk, estas identidades digitales, están ligados a la tarjeta SIM de Bob. Hasta hoy Movistar ya tiene un delimitador entre la identidad del usuario y algunas claves que están embebidas en la tarjeta SIM, por lo que es fácil ampliar esto para incluir también estas identidades digitales. Ahora, ¿cómo te gustaría que funcionase el sistema? La idea es que aquí tenemos a la propietaria del archivo, Alice, que empezó con él. Ellos encuentran que hay una política de seguridad que está basada en la identidad de los usuarios que deberían de acceder a ese archivo. También está basada en la localización y en las ventanas de tiempo donde esos usuarios deberían estar antes de intentar acceder al archivo. Por un momento, dentro de esta charla vamos a llamar a este grupo de usuarios el set de acceso, estará el conjunto de localizaciones y el tiempo, que enmarcan la política de seguridad contextual. Ahora, todo el set de acceso y la política de seguridad contextual están dadas como un input en la rutina de cifrado de todo el archivo y esto asegura los bits del archivo, por lo que aquí nuestros archivos están cifrados y son enviados al servidor de almacenamiento. Ahora, nadie puede descargarse ese archivo. Eventualmente, uno de los usuarios del set de acceso descargará el archivo y lo moverá cerca de estos servidores de localización que están definidos aquí, en la política de seguridad contextual. Lo que el servidor de Libro BBVA maqueta-ESP 1.indd 012Libro BBVA maqueta-ESP 1.indd 012 22/05/2015 14:07:1822/05/2015 14:07:18
  14. 14. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 13 localización hará será aceptar el archivo cifrado de Bob y lo reproducirá de vuelta con el proceso de cifrado de texto. Este proceso está únicamente basado en la identidad del usuario quien ha iniciado el protocolo, la localización cubierta por este servidor de localización en el tiempo actual. En este punto, el servidor de localización no es consciente de que el fichero ha sido aceptado o cómo de compleja es la política de seguridad. Es un sistema que solo acepta inputs y que procesa esos inputs basados en estos atributos: la localización actual, la hora actual y la identidad de la persona que inició el protocolo. Una vez que Bob ha establecido una conversación con un número de servidores de localización suficiente, que cubren todas las localizaciones de la política de acceso, puede utilizar la clave secreta de su teléfono para descifrar el texto y acceder al archivo original. Así es como queremos que trabaje el sistema. Para que esto funcione utilizamos algunas herramientas con las que algunos a lo mejor estáis familiarizados y otros no. Nuestra contribución al esquema de cifrado en dispositivos integra todas estas herramientas juntas que os voy a enseñar, que no son primitivas, pero no hay un esquema de cifrado que abarque a todas ellas, por lo que lo dividiremos para ello. La primera herramienta de la que voy a hablar es el cifrado basado en tags. Este es un diagrama del esquema de cifrado público, donde empezamos con un fichero. Lo cifras bajo una clave pública, éste es tu texto seguro (el círculo amarillo de la transparencia indica que es un texto seguro), el contenido está a salvo. Luego lo descifras utilizando la correspondiente clave secreta y vuelves a fichero. El esquema de cifrado basado en tags es especial en el sentido en el que el cifrado utiliza una información pública denominada tag. Esta etiqueta se trata de una cadena arbitraria: cuando tú cifras un fichero en la parte pública tú puedes especificar un tag que puede ser cualquier cadena que puedas imaginar, incluso una cadena vacía, si quieres. Lo que pasa es que para descifrarlo no solo necesitas la clave secreta correspondiente a esta clave pública, también necesitas el tag original, de manera que si utilizas ambos puedes volver al fichero original. La seguridad en el cifrado basado en tags es este nombre que está aquí en la transparencia pero para descifrar el fichero original solo necesitas: uno, la clave secreta correspondiente a la clave pública, y dos, exactamente el mismo tag. Incluso si tienes la clave secreta correcta pero modificas un solo bit del tag (con lo cual este tag ya es diferente al anterior), lo que obtienes es algo diferente. Incluso, si eres el legítimo poseedor de la clave secreta correspondiente a esta clave de cifrado: tags diferentes pueden arruinar tu proceso de cifrado. Ésta es la primera herramienta que utilizaríamos. Otra herramienta que utilizaríamos es Onion Encryption (cifrado por capas). Estaréis familiarizados con el cifrado Onion si conocéis Tor, la infraestructura de buscador caracterizada por el anonimato. La idea con el cifrado Onion es añadir capas consecutivas en el cifrado como una cebolla, lo que serían rutinas de cifrado en cascada. Si tenemos varias claves públicas; empiezas con tu archivo de texto, lo cifras bajo una clave pública y lo que obtienes es una capa de cifrado. Entonces, usas otra clave pública en ese texto ya cifrado, lo Libro BBVA maqueta-ESP 1.indd 013Libro BBVA maqueta-ESP 1.indd 013 22/05/2015 14:07:1822/05/2015 14:07:18
  15. 15. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR14 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 cifras y obtienes dos capas de cifrado y así puedes seguir tanto como quieras. Aquí ya paramos a las tres capas. Para descifrar lo que necesitamos es eliminar estas capas, una a una. Si tienes la clave secreta correspondiente a estas claves de cifrado, empiezas con tu texto a salvo bajo esas tres capas, eliminas una con una clave secreta, obtienes la segunda capa de texto cifrado, eliminas otra con otra clave secreta y nos queda una capa de texto cifrado, y por último, eliminas la capa interna para obtener el fichero original. Estas son las dos primeras herramientas que usamos en LoTAC. Y, ¿cómo las utilizamos? Bueno, lo primero que vamos a utilizar es la Onion Encryption. De nuevo, tú quieres que el usuario defina un set de acceso dentro de una política de seguridad contextual, hacer un input de esto en un contexto de cifrado con un archivo y, por arte de magia, tienes el texto a salvo fuera. Así que, para los usuarios del set de acceso, añades una capa de cifrado con la herramienta Onion Encryption, con la clave pública dentro del set de acceso. Así, si Bob está en el set de acceso, añade una capa de cifrado a este archivo con la clave pública ‘Bob’, de forma que solo él será capaz de descifrarlo. Para acomodarlo a la política de seguridad contextual necesitas hacer algo similar. Una capa más externa de cifrado será añadida a la clave pública del servidor de localización especificado en la política de seguridad contextual. Por lo que si quieres que Bob esté en la localización 1, tienes que añadir una capa de cifrado con la clave pública en la localización 1. Esto significa que solo el servidor de localización 1 puede ser descifrado con la clave secreta. Y puedes hacer tantas capas como quieras. Si nos preocupamos de las identidades y la localización, también tenemos que preocuparnos por el tiempo. Para ello, utilizamos cifrados basados en tags donde estas etiquetas, estas cadenas arbitrarias que son utilizadas durante el cifrado, codifican el tiempo. Y un tag puede ser algo como esto [señala la transparencia], y puede ser tan complejo como quieras, por lo que eres libre de especificar intervalos de tiempo. La idea es que ahora, aparte de tener la clave secreta correcta aquí, cuando lo descifras también necesitarás el tag original. Este tag de aquí definido por Alice en la política de seguridad contextual no puede ser modificado, no puedes alterar esa etiqueta. [Transparencia] Éste es un ejemplo donde tenemos a Alice con su archivo y ésta es la política de seguridad contextual. Alice quiere dar acceso a Bob. Aquí está en la localización 1, en alguno de estos días, y aquí está en la localización 2, en este día concreto, con unos intervalos de tiempo. Ahora, por un lado, tenemos los servidores de localización que exponen sus claves públicas, y en el otro lado, tenemos a los usuarios que exponen también sus claves públicas. Y, de nuevo, este es el set de acceso de usuarios autorizados y ésta es la política de seguridad contextual. Empezamos el cifrado en el set de acceso comenzando por el fichero cifrándolo con El-Gamal bajo la clave pública ‘Bob’: ya tenemos una capa de cifrado. Ahora tienes que acomodarlo en la política de seguridad contextual. Como la política de seguridad contextual dice que el primero tiene que estar en la localización 1 en este intervalo de tiempo, cogemos la clave pública del servidor Libro BBVA maqueta-ESP 1.indd 014Libro BBVA maqueta-ESP 1.indd 014 22/05/2015 14:07:1822/05/2015 14:07:18
  16. 16. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 15 de localización 1 y añadimos una capa de cifrado utilizando el tag El-Gamal y aquí tenemos que especificar un tag. El tag es exactamente este tiempo. Como tenemos otra pista en la política contextual, hacemos el mismo proceso: coger la clave pública del servidor de localización 2 y utilizar esta cadena como tag. El tag basado en El-Gamal, la clave pública del servidor y esta cadena como segundo tag. Una vez que has terminado con el cifrado solo falta subir todo al servidor de almacenamiento, es decir, este blob [acrónimo de Binary Large Object] cifrado lo subimos a Dropbox. Una vez que esto está hecho también, cualquiera puede descargarse este blob cifrado pero solo los usuarios autorizados serán capaces de dar sentido al archivo que está escondido detrás del texto cifrado. Y, ¿cómo funciona una vez que Bob se ha descargado el texto cifrado? Bueno, el descifrado de este blob requiere la clave secreta del servidor de localización 2 con el tag que especificamos en su momento y eliminar la capa de cifrado. Una vez que esto está hecho, Bob tiene que ‘hablar’ con el servidor de localización que cubre la localización 1, por lo que necesitas la clave secreta de este servidor de localización además del tag original con el que se hizo el cifrado y, una vez que Bob ‘ha hablado’ con todos los servidores de localización de la política de seguridad contextual, puede eliminar la capa interior del cifrado usando su clave secreta. Y, ¿cómo funciona la interacción entre Bob y cada uno de los dos servidores de localización? La idea es que en algún momento, Bob se moverá dentro del área que cubre uno de los servidores de localización. Lo que los servidores de localización harán es, en primer lugar, identificar a Bob donde él tiene que asegurarse de que es el usuario legítimo de esa clave pública. Una vez que esto está hecho, Bob manda al servidor de localización el blob cifrado y el tag usado cuando hemos realizado la capa de cifrado con la clave pública de este servidor de localización. La única cosa que queremos que el servidor de localización haga es comprobar el tag con el momento actual. Si el tiempo actual coincide con el tag (y recordar que para la seguridad del cifrado basada en tags Bob no puede cambiar esa etiqueta), puede borrar una capa de cifrado del blob utilizando la clave secreta. Ahora, Bob ha pasado de un blob de tres capas de cifrado a dos capas. Claramente, aún necesita conectarse con el servidor que permite eliminar la siguiente capa de cifrado y algo similar a lo anterior pasa ahora. Bob va y ‘habla’ con el servidor de localización 1, que está localizado dentro del servidor de localización base. Entonces el servidor de localización coge el texto cifrado emitido por Bob, el tag provisto por Bob, comprueba el momento actual con este tag y si los dos coinciden es posible eliminar una capa de cifrado utilizando la clave secreta. Una vez que Bob ha eliminado todas las capas de cifrado relacionadas con la política de seguridad contextual, será capaz de usar la clave secreta de su teléfono para acceder al archivo original. Esto no es todo porque aún tenemos que tener cuidado con los usuarios maliciosos cuando colaboran para llegar al derecho de acceso. Este es un ejemplo de ataque si utilizáis el sistema que os he mostrado hasta ahora. Fue un problema complejo de resolver. La idea es que Libro BBVA maqueta-ESP 1.indd 015Libro BBVA maqueta-ESP 1.indd 015 22/05/2015 14:07:1822/05/2015 14:07:18
  17. 17. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR16 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 Bob, para acceder a este fichero, tiene que estar en esta localización a una hora determinada pero Bob es perezoso por lo que solo está en la localización 1, es decir, solo está al lado del servidor 1, y no puede ‘hablar’ directamente con el servidor 2, así que lo que hace es pedir ayuda a un amigo. La idea era que, David, que está dentro del área del servidor de localización 2 provee el texto cifrado y el tag correcto. El servidor comprueba que el tag coincide con el momento, admite el texto cifrado de David y elimina una capa de cifrado. Lo que David puede hacer es pasarle el texto cifrado a Bob, por lo que Bob puede ‘hablar’ con el servidor de localización 1 en el momento adecuado, provee el tag correcto y elimina otra capa de cifrado, y Bob puede acceder al fichero escalado en el derecho de acceso. Nosotros queríamos que Bob fuera a las dos localizaciones, en dos ventanas de tiempo concretas, pero no fue así porque Bob consiguió la clave gracias a David. ¿Cómo resolvemos esto? Aquí tenemos otra herramienta llamada Re-randomization. De nuevo, os presento un estándar de lo que sería el diagrama de un proceso de cifrado donde tenemos un texto con una clave pública, su paso a texto cifrado y cómo, con una clave secreta, vuelve al texto original. Lo que podemos hacer es ‘re-aleatorizar’ el texto cifrado debajo de otra clave. Es decir, que si tú coges la clave pública que has utilizado para el primer cifrado tú puedes ‘re- aleatorizar’ el texto cifrado. Coges el texto cifrado, aplicas la clave pública original y lo que obtienes es su ‘re-aleatorización’. Mirad, esto es un círculo y esto es un hexágono, y esto te dice que estos dos textos cifrados no están vinculados. Si miras a estos dos textos cifrados no puedes decir que éste es la versión ‘re-aleatorizada’ de este otro. La consecuencia de que tengan esta propiedad de no vinculación es que la ‘re-aleatorización’ ha sido utilizada hasta ahora para proveer de privacidad en redes mixtas o en otro tipo de tecnologías privadas. Lo usamos por seguridad. Veamos, una vez que has ‘re-aleatorizado’ estos dos textos cifrados se verán distintos pero utilizando la clave correcta serás capaz de descifrarlos. Es justo la manera de desvincular este texto cifrado de este otro, pero la confidencialidad mantiene las mismas propiedades, por lo que necesitas las mismas claves secretas. La idea es que si tú ‘re- aleatorizas’ el texto cifrado por el pk1 con otra clave pública obtienes este tipo de blob. Este de aquí que vemos que es la mitad amarilla y la otra mitad roja, y que muestra que dos claves públicas han sido utilizadas. Lo que pasa es que una vez que has ‘re-aleatorizado’ con una clave pública que no es la original que utilizaste para el cifrado, este texto cifrado no puede ser descifrado con la clave secreta correspondiente a la clave utilizada para la ‘re-aleatorización’, ni puede ser descifrada con la clave secreta correspondiente a la clave pública utilizada para hacer el cifrado original. Esto solo pasa en algunos grupos de texto cifrados por lo que tienes que tener en cuenta aquí las operaciones matemáticas para hacer que funcione. Para asegurarnos que este sistema tiene estas propiedades, una vez que has realizado el cifrado bajo una clave si tú lo ‘re-aleatorizas’ bajo la misma clave todo está correcto, pero si lo ‘re-aleatorizas’ bajo una clave diferente nadie va a ser capaz de descifrar el texto. Estas son las características que queremos. Libro BBVA maqueta-ESP 1.indd 016Libro BBVA maqueta-ESP 1.indd 016 22/05/2015 14:07:1822/05/2015 14:07:18
  18. 18. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 17 ¿Cómo utilizamos esto dentro de LoTAC? La interacción entre el usuario y el servidor de localización es exactamente la misma pero recordad que el primer paso es que el servidor de aplicaciones identifica a Bob lo que significa que comprueba que Bob es efectivamente el propietario de la clave pública. Una vez que esto se ha hecho, este texto cifrado que es devuelto desde el servidor de localización es ‘re-aleatorizado’ bajo de la clave pública de Bob. Veamos cómo funciona esto en caso de un ataque de colusión. Éste sería el gráfico que representaría a un ataque de colusión: David envía el texto cifrado y a continuación se devuelve el texto cifrado con una capa menos, pasa ese texto cifrado a Bob, Bob ‘habla’ con el otro servidor para eliminar la otra capa de cifrado y finalmente puede eliminar la capa interna con la clave secreta. Ahora, lo que pasa es que si este texto cifrado es ‘re-aleatorizado’ con una clave pública de David porque, de nuevo, aquí tenemos otro protocolo de identificación que se asegura que quien está hablando con el servidor de localización es David, y si este texto cifrado es ‘re-aleatorizado’ con la clave pública de Bob, observas que obtienes el mismo texto cifrado porque, eventualmente, la capa más interna es el mismo texto cifrado que re ‘re-aleatorizado’ con dos claves públicas diferentes. Con ello, Bob no será capaz de acceder al texto cifrado. Este truco garantiza que Bob debe ser el único que vaya a cada una de las dos localizaciones en las que están los servidores de localización en la política de seguridad contextual antes de ser capaz de acceder al archivo. Bob no puede solicitar ayuda de otros usuarios para no vulnerar sus derechos de acceso. Este es el último truco que os voy a mostrar. También miramos a las macro-localizaciones. La idea es que tenemos servidores de localización que cubren las celdas 3G de las redes y tú puedes especificar políticas que definan una o más de estas localizaciones. Por lo que quiero que este usuario esté aquí, aquí y aquí antes de ser capaz de acceder al archivo. Pero, ¿qué pasa si quiero definir una macro-localización? Quiero algo como esto [en la transparencia]. Éste es nuestro campus, el cual, quizá está cubierto por varias localizaciones por lo que habría seis servidores cubriéndolo. ¿Qué pasa si Alice, quien ha definido la política de seguridad, quiere dar acceso a Bob que está en Vicálvaro en esta fecha? Esto significa que, a menos que Bob esté en alguna de esas localizaciones debería de ser capaz de acceder al archivo porque está dentro de la política de seguridad. Ahora, ¿cómo nos encargamos de esto? Aquí tenemos otra herramienta que se llama Re-cifrado (re-encryption), la cual, funciona de la siguiente manera. De nuevo, empezaremos con un gráfico que va desde el mensaje al texto cifrado con la clave pública al texto original con su correspondiente clave secreta. Ahora, quiero algo que coja este texto cifrado, que es amarillo (por lo que puede ser descifrado con la clave secreta amarilla), y sea rojo, con lo cual, puede ser descifrado con la clave secreta roja. Lo que quiero es cambiar la clave pública, bajo la cual está el texto cifrado, sin tener que descifrar y re-cifrar, y para ello tenemos un algoritmo que hace eso por sí mismo. La idea es calcular la clave de re-cifrado, para lo que tenemos un algoritmo de abstracción clave que coge la clave secreta que corresponde a esta clave publica que fue utilizada originalmente Libro BBVA maqueta-ESP 1.indd 017Libro BBVA maqueta-ESP 1.indd 017 22/05/2015 14:07:1822/05/2015 14:07:18
  19. 19. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR18 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 para calcular el texto cifrado, y la clave pública bajo la cual quiero cambiar mi texto cifrado y obtengo mi clave de re-cifrado, por lo que esto es mitad rojo y mitad amarillo otra vez. Y esta clave de re-cifrado va desde 1 a 2, lo que significa que puedo transformar un texto cifrado que fue cifrado bajo la clave pública 1 a un texto cifrado bajo la clave pública 2. Una vez que cojo estas dos claves de re-cifrado hay un input al algoritmo de re–cifrado y transforma ese texto cifrado amarillo (por lo que puede ser descifrado utilizando la clave secreta amarilla), al mismo texto cifrado que puede ser descifrado con esta clave secreta roja. ¿Cómo utilizamos esto en el LoTAC? La idea es tener una jerarquía de ubicaciones dentro de la infraestructura de localización. Pensemos que tenemos algo como esto: Madrid que está formado por barrios y tenemos Vicálvaro (no sé si Vicálvaro es un barrio pero en este ejemplo asumámoslo así). Ahora, Serrano está cubierto por dos servidores de localización, Chamberí está cubierto por tres servidores de localización y Vicálvaro tiene tres servidores de localización también. Si creas una política de seguridad que diga que los usuarios deben estar en Vicálvaro, estos usuarios deberían de ser capaces de hablar con cada uno de estos servidores de localización [señala pantalla]. Los servidores de localización están debajo de nuestra jerarquía. La idea es que empecemos con el nivel más alto de nuestra jerarquía. He empezado con Vicálvaro, pero puedes empezar con España si quieres. La infraestructura de localización, Movistar, publica una clave pública para Vicálvaro y la clave de cifrado que permite a cualquiera cambiar un texto que estaba cifrado bajo la clave pública de Vicálvaro a un texto cifrado bajo la clave pública de alguno de estos servidores. Por lo que la clave pública que está cifrada bajo esta persona puede ser transformada en una clave pública que podría ser descifrada por esta otra persona. Y algo similar ocurre aquí. Empezamos en Madrid, cogemos la clave pública de Serrano o Chamberí y publicas la clave de re-cifrado. Todas estas claves son públicas para aquellos usuarios que se especifican en la política de seguridad. Una vez que tienes la clave pública de Serrano y Chamberí la utilizas para publicar la clave de cifrado para los servidores que cubren cada uno de estos dos barrios. Una vez que todos son públicos, veamos cómo pueden ser utilizados. Asumiendo que ésta es la política de acceso, Alice quiere dar acceso a Bob si él está en Vicálvaro en esta fecha en concreto. Esto significa que el texto cifrado tendrá una apariencia como ésta porque la clave pública de Vicálvaro es azul, tú tendrás la capa más interna que es roja, para la clave pública de Bob, y la otra capa que es azul porque hemos utilizado la clave pública de Vicálvaro para crear una nueva capa de cifrado. Bob, a menos que hable con algunos de esos servidores, debería de estar bien, debería de ser aceptado por las políticas de seguridad porque cada uno de estos servidores es un servidor de Vicálvaro. ¿Cómo funciona? Asumiendo que Bob está en realidad hablando con el servidor de localización 8, por lo que está en esta ubicación, él coge este texto cifrado, coge la clave de re-cifrado publicada que cambia el texto cifrado de Vicálvaro a la localización 8, re-cifra el texto cifrado que cambia esta capa exterior de azul a morado y Libro BBVA maqueta-ESP 1.indd 018Libro BBVA maqueta-ESP 1.indd 018 22/05/2015 14:07:1922/05/2015 14:07:19
  20. 20. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 19 ahora, debido a que esta capa es morada, puede ser procesada por este servidor de localización. Así que el protocolo funciona como siempre: Bob es identificado, envía el texto cifrado y el tag, esta persona verifica que el tag concuerda con el momento actual y elimina una capa de cifrado. Una vez que esto está hecho, Bob puede eliminar una capa más interna de cifrado y recuperar el texto original. Todos estos son los trucos que utilizamos en este tipo de sistemas y de nuevo, nuestra contribución descansa en un esquema de cifrado que puede aunar todos estos trucos juntos. Ahora queremos evaluar cómo funcionan estos sistemas en la práctica. Hemos creado una implementación prototipo donde tenemos un servidor, clientes y la red cliente GMS. Estos [en la pantalla] son algunos de los resultados acerca de cuánto se tarda en cifrar el archivo, es decir, cuánto tiempo tarda Alice en crear un texto cifrado empezando por un archivo y una política de seguridad. Aquí vemos que está establecido en orden de segundos. También vemos que las habilidades del sistema son mejores en número de localizaciones que en número de usuarios, pero puedes emplear algunos trucos como la jerarquía de las localizaciones para hacer lo mismo con la identidad de los usuarios, por lo que ese aspecto puede ser mejorado sin problema. No obstante, en una versión no mejorada, la cifrado bajo 20 localizaciones y 75 usuarios no tarda más de un segundo por lo que el sistema es bastante rápido. Ahora, lo que realmente tenemos que saber es cuánto tarda el proceso de los textos cifrados para los usuarios de smartphones, es decir, cuánto tarda el hecho de que el smartphone establezca una conversación con el servidor de localización para procesar el texto cifrado. Este es el tiempo que tarda cuando el smartphone del usuario está envuelto en este proceso donde, como podéis ver, todo lo que está dominado por la comunicación tarda unos tres segundos en descargarse el archivo cifrado, esto incluye un archivo simple de 20k. La comunicación entre el usuario y el servidor de localización tarda unos dos segundos y este cálculo se hizo en el servidor de localización y es el del descifrado final del usuario por lo que es bastante rápido también. Esto nos da la seguridad de que el sistema puede ser utilizado en los smartphones que nos encontramos a día de hoy. Con esto he concluido. Para terminar me gustaría decir que la localización y el tiempo son definitivamente la forma de abrir tu modelo de negocio al desarrollo de nuevas aplicaciones a medida que se confía en el control de acceso. Aunque, a menos que encaucemos los problemas de seguridad, las aplicaciones de seguridad crítica no podrán aprovechar esta nueva tecnología. Y, como hemos desarrollado un sistema como este, a menos que nos preocupemos de especificar cuál es la infraestructura de localización correcta, en este caso, es el operador de red móvil porque es la única infraestructura construida que tenemos a día de hoy. Tienes otros sistemas que no son seguros, como aquellos que confían en las coordenadas de los GPS de los usuarios. Cuando se habla de localización muchos usuarios tienen miedo de dejar al descubierto su privacidad por lo que la localización privada es también un campo de estudio muy activo. Libro BBVA maqueta-ESP 1.indd 019Libro BBVA maqueta-ESP 1.indd 019 22/05/2015 14:07:1922/05/2015 14:07:19
  21. 21. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR20 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 Aquí os dejo algunas de las investigaciones a las que he recurrido para hacer esta presentación y este es nuestro estudio que presentaremos en tres días aquí, en Madrid. Turno de preguntas Tengo dos preguntas. Una es: en este sistema de tags que has establecido y montado sobre un control de acceso basado en roles, ¿cuáles son las diferencias, si es que las hay, frente a las tecnologías publicadas que usan cifrado basado en atributos fundamentado en el emparejamiento bilineal? Y la segunda cuestión trata sobre el concepto de capas que has introducido y la posibilidad de la conmutatividad entre las capas, el hecho de que el orden sea importante o no, que es una cosa que puede resolver un cifrado basado en atributos y que no veo en el esquema que has contado. Gracias. Son dos preguntas excelentes. De hecho, tengo dos transparencias que explican por qué el cifrado basado en atributos no funciona pero las quité por problema de tiempo. El principal problema con el cifrado basado en atributos es que es muy difícil definir intervalos. Así que, ¿cuál es la granularidad del atributo? ¿Es un segundo, un minuto, una hora, un día…? En el cifrado basado en atributos lo que tienes es, dependiendo del número de atributos que tienes, tu árbol de la política de seguridad que se basará en un logaritmo así de alto. Si el tiempo establecido de tu política es un día pero tienes un minuto de granularidad, necesitas muchos atributos debajo de ese árbol que has construido para definir el acceso. Éste es un problema con el cifrado basado en atributos. No es muy expresivo cuando queremos establecer intervalos. Podría resultar para ajustar localizaciones pero los intervalos de tiempo no van a ser tan expresivos. En segundo lugar, el cifrado basado en atributos es mucho más caro que el cifrado basado en El-Gamal, por lo que necesitará más batería en tu smartphone. Y, tercero, no queríamos confiar en ninguna de las partes del sistema y en el cifrado basado en atributos tienes este problema inherente. Debe haber una autoridad que tenga la clave secreta que está relacionada con esos atributos y esta autoridad es en realidad una persona que puede acceder a todos los archivos que se han subido. Por lo que hay un problema de seguridad inherente ahí. Por estas tres razones no hemos querido apostar por el cifrado basado en atributos. Pero cuando estaba preparando esta charla era una cuestión que apareció. Lo consideramos, pero no funcionó. La otra cuestión relacionada con la conmutatividad de las capas. Déjame que vuelva atrás. En nuestro ejemplo, os mostraba que el servidor de localización 2 eliminaba la capa más externa y el servidor de localización 1 eliminaba la capa interna. Tú puedes hacerlo fuera de servicio y cómo te aseguras… Incluso, si lo haces fuera de servicio la política se cumple. La idea es usar las tags. Así que, incluso si Bob habla con el servidor de localización 1 en primer lugar, está bien siempre y cuando Bob lo haga en este periodo de tiempo. Puede que el 14 de julio hable con el servidor de localizaciones 1 porque está en la ventana de tiempo correcta, por lo que el servidor de localización eliminará Libro BBVA maqueta-ESP 1.indd 020Libro BBVA maqueta-ESP 1.indd 020 22/05/2015 14:07:1922/05/2015 14:07:19
  22. 22. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 21 esta capa. El 16 de julio él hablará con el servidor de aplicaciones 2, el cual, eliminará esta capa. Él puede hacerlo en cualquier orden y son las tags las que hacen que las políticas de seguridad se respeten. Espero que esto tenga sentido… Esta es la versión hashed de El-Gamal en el que el grupo del texto cifrado es el grupo de residuos cuadráticos positivos que te da tus opciones de tags, la posibilidad de eliminar capas de cifrado en el orden que quieras, debido a que el grupo en el que estamos te da la ‘re-aleatorización’ que probablemente te permita prevenir que un texto cifrado sea descifrado si está ‘re-aletorizado’ con dos claves públicas, diferentes claves públicas, y esto te permite tener esta jerarquía de localizaciones que está permitida por esas claves de localización. Todo esto está en este esquema de cifrado. Aparte de la infraestructura de la red de móviles, de confiar en esa parte de la infraestructura, implícitamente también estás confiando en la autenticación entre el móvil y esa infraestructura, ¿no? ¿No serviría un tipo de infraestructura que hiciese de proxy de esa infraestructura de comunicaciones? O sea, que tuviese una sincronización con la red de móviles pero que tú te conectases vía wi-fi o vía bluetooth. Eso no se podría hacer porque necesitas que esté autenticando el móvil, ¿no? La idea es que sea la tarjeta SIM la que esté autenticada... ¿Pero tienes que utilizar ese canal explícito? ¿No sirve que te comuniques con un servidor web que tenga la red de móviles? No. Por esta razón utilizamos el operador de red móvil porque es la única infraestructura de localización ubicua hasta ahora y te da la propiedad de añadir la identificación de usuarios en un lugar. No pagamos un coste por dicha identificación. Si el operador de red móvil, con su estación base habla con los teléfonos, están ya autenticados…. Pero no solo eso, sino que, ¿no te puede hacer alguien un relay? Porque esa autenticación que estás haciendo del móvil… para que alguien no te ponga un móvil que haga de relay y que te autentique el posicionamiento en cualquier momento y te hagan un ataque… Sí. Eso sería posible. Nosotros somos tan seguros como segura es la localización y la identificación de la infraestructura de red móvil. No proponemos nuevos esquemas de localización por lo que estamos tan seguros como eso y no hay otra opción si quieres desarrollar un sistema como este a día de hoy. Si la infraestructura de red móvil es segura frente a los posibles relays, nuestro sistema también lo será. Encuentro muy interesante la manera en la que tienes que lidiar con la colusión de usuarios, pero la pregunta es, ¿cómo evitas que Bob envíe su clave privada a David? Si esta clave pública está embebida en la tarjeta SIM del usuario, y a día de hoy tienes tarjetas SIM que tienen claves públicas dentro. Podríamos utilizar la criptografía asimétrica que está desarrollada dentro para asegurarnos de que eso no pasa. Si se tiene en cuenta una tarjeta SIM como asistente dispositivo antisabotaje, la clave Libro BBVA maqueta-ESP 1.indd 021Libro BBVA maqueta-ESP 1.indd 021 22/05/2015 14:07:1922/05/2015 14:07:19
  23. 23. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR22 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 de seguridad se almacena de forma segura dentro de la tarjeta SIM de Bob. Uno de los problemas que tenemos en otras latitudes es lo referente a la suplantación de identidades en las operadoras. ¿Cómo podríamos restringir o controlar esa posibilidad de que me suplantes en la operadora y de que obtengan mi tarjeta SIM sin ser yo? Es una gran pregunta, pero ahora mismo no tengo la respuesta en mi cabeza. Esto es más dentro de un nivel más físico ¿no? Con alguien que quiere robar tu identidad debe proveer alguna forma de identificación. Creo que esto es lo que pasa ahora y no sé una manera mejor de sobrellevarlo pero en nuestro sistema damos por sentado muchas cosas como la identificación y la localización y esto es porque utilizamos una infraestructura de red móvil. ¿Cómo hacer frente al robo de identidades? Es un problema complicado. ¿Cómo hacer frente al robo de identidades cuando la autoridad de autenticación, en este caso, infraestructura de red móvil, se vuelve maliciosa? Es muy complicado, no tengo la respuesta en mi cabeza. Libro BBVA maqueta-ESP 1.indd 022Libro BBVA maqueta-ESP 1.indd 022 22/05/2015 14:07:1922/05/2015 14:07:19
  24. 24. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 23 L a idea de esta charla es ver qué técnicas de Inteligencia Artificial se pueden utilizar en la investigación de campañas APT. De hecho, en mi compañía nos dedicamos a diario a investigar este tipo de nuevas amenazas, campañas de ciberespionaje, etc. Un tema que, a día de hoy, es bastante candente. El objetivo de esta charla es explicar cómo se hacen este tipo de investigaciones y qué técnicas podemos utilizar: qué tipo de técnicas especialmente relacionadas con la Inteligencia Artificial tienen sentido de aplicar en este tipo de campañas. La idea es hacer un enfoque más práctico que teórico. Para ello, he intentado realizar una aproximación con aplicaciones reales, con herramientas que podemos utilizar todos. Lo primero sería definir qué es una campaña APT, ya que es una de las principales cuestiones que vamos a tratar en esta charla. APT son las siglas en inglés de Advanced Persistent Threat, que significa que es una amenaza persistente y avanzada. Se trata de un término que se acuñó entre el 2010 y 2011, durante el caso ‘Aurora’, que fue un ataque, en este caso contra Google, haciendo públicos algunos de sus detalles. A través de un zero-day, los atacantes tuvieron acceso a sus servidores y habían conseguido filtrar datos que aparentemente tenían destino Vicente Díaz Analista Senior de Malware. Kaspersky Lab. Global Research & Analist Team (GREAT) El contenido de esta ponencia (diapositivas y contenidos audiovisuales) está disponible en la página oficial de CIGTR www.cigtr.info INTELIGENCIA ARTIFICIAL Y MACHINE LEARNING EN LA INVESTIGACIÓN DE CAMPAÑAS APT Libro BBVA maqueta-ESP 1.indd 023Libro BBVA maqueta-ESP 1.indd 023 22/05/2015 14:07:1922/05/2015 14:07:19
  25. 25. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR24 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 en servidores chinos. En aquel momento, cuando se hicieron públicos los detalles, otro tipo de empresas del mismo sector habían tenido ataques similares. Tras su relación, se confirmó que todos habían sido víctima de los mismos ataques. Por este motivo, se les calificó como Advanced Persistent Threat: Advanced porque se realizaban a través de un zero-day; Persistent, porque estaba infectados durante varias semanas o meses; y Threat, porque se trataba de una amenaza. A partir de entonces, ese término se empezó a utilizar masivamente aplicándose casi a cualquier tipo de amenaza y, hoy en día, todo el mundo habla de campañas APT cuando en la mayoría de casos el término ‘Avanzado’ es muy relativo. Y es que, muchas veces, a lo mejor pasa que una entidad bancaria muy importante está infectada y resulta que realmente está infectada porque les han enviado un enlace que dice “haz doble clic aquí” para instalarte un archivo y ya está. Recuerdo que hubo un caso en el que se enviaron unos correos con un ejecutable, alguien ejecutó ese archivo, se infectó y trató de solucionarlo borrando el correo electrónico, creyendo que ya se habían librado del ataque. Por eso, muchas veces se hace uso del término Advanced cuando realmente no lo es. Lo que sí es cierto es que son persistentes, ya que, en la mayoría de los casos, cuando hacemos investigaciones de este tipo de campañas, las víctimas llevan años siendo objeto de robo datos y no lo saben. Una de las campañas que a nivel nacional ha tenido más eco ha sido la de ‘Careto’. La verdad es que el nombre es muy particular. Es curioso porque, cuando me preguntan cómo nombramos las campañas, la verdad es que nos basamos en algo que vemos dentro de la campaña y la identificamos así. Luego, a lo mejor, no va a ningún sitio, pero cuando llega a los medios, se hace una gran difusión de la misma y tienes que explicar el origen. La mayoría de las veces no tienen mucha gracia. En el caso de Careto, cuando nuestros compañeros nos preguntaban el por qué del nombre, no sabía cómo explicárselo. Careto es cuando te levantas por la mañana y te miras en el espejo, puede que ésta sea la mejor definición. Pero el caso es que dentro de la campaña de ciberespionaje que estuvimos investigando y que tiene su origen en 2007, lo que detectamos fue que algunos binarios tenían esta cadena de caracteres, ‘careto’, lo cuál era bastante particular. Pero, además, había una segunda cadena de caracteres que era una contraseña que se utilizaba para cifrar el tráfico que era ‘me cago en la mar’. Al final, no decidimos bautizar a la campaña con este segundo nombre, pero me costó mucho más explicar qué quería decir eso. En cualquier caso, se trataba de una campaña de ciberespionaje cuyo código utilizado para espiar a las víctimas era muy avanzado porque se ocultaba muy bien en el sistema, tenía muchas técnicas, tenía muchos módulos… Realmente, era un código malicioso muy destacable por su complejidad. Todo empezó porque explotaba una vulnerabilidad en Kaspersky para intentar hacerse invisible en el sistema. Una vulnerabilidad antigua que ya estaba solucionada pero que, curiosamente, la explotaba. En cualquier caso, nosotros tenemos firmas para este tipo de cosas y, a partir de ahí, empezamos la investigación en Libro BBVA maqueta-ESP 1.indd 024Libro BBVA maqueta-ESP 1.indd 024 22/05/2015 14:07:1922/05/2015 14:07:19
  26. 26. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 25 la que nos sorprendió la complejidad y lo grande que era esta campaña. Uno de los aspectos más interesantes era que también tenía módulos para sistemas operativos, como puedan ser Linux. Vimos trazas en algunas víctimas que podían indicar que también tenían algún módulo para iPad y para OSX, aunque no encontramos nunca el código malicioso. De lo que sí nos dimos cuenta fue de la existencia de trazas muy características de Android. Haciendo una radiografía de la campaña, el periodo en el que se concentró la mayor parte de su actividad fue entre los años 2012 y 2013, por lo que era bastante reciente en el momento en el que la estuvimos investigando. Encontramos más de 380 víctimas con más de 1.000 IPs de distintos países. Entre las víctimas se encontraban instituciones gubernamentales, embajadas, empresas de energía, empresas de investigación, etc. Marruecos fue el país con mayor número de IPs. El problema es que la mayor parte de las víctimas que había en Marruecos, por lo que creemos, eran parte del módulo para Android; y un teléfono con sistema operativo Android cambia con mucha más frecuencia que un dispositivo que esté fijo. Simplemente quería utilizar este ejemplo para explicar qué entendemos nosotros por APTs, campañas de ciber-espionaje en donde, hoy en día, existen más actores para hacer este tipo de ataques. La segunda definición que entra en la materia de la que vamos a hablar es la Inteligencia Artificial. En general, el problema de la Inteligencia Artificial, como me dijo una vez un profesor, son las expectativas. Y es que Inteligencia es una palabra muy pretenciosa con la que nos imaginamos a una entidad que es totalmente independiente y que es capaz de pensar por sí misma. Quizá sí que es este el destino final de la Inteligencia Artificial, pero lo que quiero decir es que, hoy en día, lo que aplicamos aquí no es sino una serie de técnicas, una serie de algoritmos, una serie de herramientas que nos permiten hacer cosas muy interesantes. Y, este es el enfoque de esta conferencia: ver qué tipo de técnicas de Inteligencia Artificial nos ayudan a la detección de este tipo de campañas. Una de las cosas que hice para llegar a una definición es mirar lo que incluye el curso de Inteligencia Artificial de Berkeley, entre los que tenemos temas de solución de problemas, temas de machine learning, clustering y análisis semántico, que es un área totalmente distinta. Una gran cantidad de temas, pero solo algunos de ellos son los que nos interesan para investigar las campañas APT. Pero antes, quisiera comentar que la Inteligencia Artificial es un área muy amplia, que toca muchos palos y que algunos de ellos nos pueden ayudar a investigar todo este tipo de campañas y otros no. También, quisiera mencionar uno de los motivos por los que estoy aquí, que es quizá la conferencia que pronuncié el año pasado, en la cual hablaba sobre cómo detectar perfiles maliciosos en Twitter utilizando técnicas de machine learning. No quiero repetir esto, pero si alguien tiene interés podemos ver alguna cosa porque está ahí publicada y es que, es otra aplicación de esas técnicas, en Libro BBVA maqueta-ESP 1.indd 025Libro BBVA maqueta-ESP 1.indd 025 22/05/2015 14:07:1922/05/2015 14:07:19
  27. 27. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR26 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 este caso, a un contexto distinto, como es el de detectar perfiles maliciosos en redes sociales. ¿Qué vamos a utilizar de la Inteligencia Artificial en el tema de las campañas APTs? Desde mi punto de vista, los aspectos más interesantes son los relacionados con data mining, clustering, temas de machine learning y, quizá, también, lo que toca a los sistemas expertos. Todo esto es muy complejo de por sí, pero creo que todos disponen de técnicas que nos pueden servir para ayudarnos en la investigación de este tipo de campañas. De forma colateral, os enseñaré algunas herramientas que ya utilizan todo este tipo de herramientas y que nosotros mismos no tenemos por qué implementarlas. En mi opinión, los mejores analistas son los que saben lo que hay detrás de las cosas, aunque no necesariamente tienen que ser expertos y ser capaces de desarrollarlas desde cero. Es decir, tenemos que saber cuáles son las herramientas con las que trabajamos, cómo nos ayudan, las limitaciones que tienen y qué es lo que hay por detrás, ya que, a veces, las utilizamos a ciegas, solo sabemos que no nos da ningún positivo y ya está. Pero si no sabemos lo que hay detrás, no sabemos por qué nos puede estar fallando y puede ser que no nos esté dando toda la información. Hoy en día, la investigación de APTs es una mezcla de este conocimiento, quizá muy técnico, y de un conocimiento más mundano sobre cómo hacer este tipo de investigaciones. Vamos a ver cómo se investiga una campaña APT y, en cada punto, haré una referencia sobre qué tipo de herramientas y qué tipo de técnicas de Inteligencia Artificial podemos utilizar. Lo primero que hay que saber es cómo empieza una campaña. Imaginaos las películas de detectives, cuando hay un asesinato y todo empieza con un cuerpo y un grito en medio de la noche. En este caso, el cuerpo puede ser un binario que ha estado filtrando datos y el grito en medio de la noche puede ser una alerta del sistema de detección de intrusos… no lo sabemos. Pero tenemos alguna pista inicial que nos hace pensar que hay algo interesante para empezar una investigación de este tipo. Por ejemplo, como he comentado antes sobre Careto, la primera pista fue encontrar que había unos binarios que estaban explotando una vulnerabilidad de un producto de Kaspersky. Aquí de lo que se trata es de intentar encontrar la mayor cantidad de pistas posibles, de recolectar la mayor cantidad de artefactos que luego nos permitan desarrollar nuestra investigación. Entonces aquí empieza el primer problema, que es encontrar qué hay relacionado con esta campaña. Los binarios, en este caso, todos los artefactos que podamos encontrar, que estén utilizados en una campaña, para explotarla, para infectar el sistema, para filtrar datos, para cualquier cosa, son nuestra fuente de información primaria. Es lo más interesante en este punto. Entonces, la primera reflexión es saber qué es un binario y qué podemos hacer con él. Lo primero que nos gustaría, una vez detectado un binario que parece que es de una campaña que parece muy interesante y del que queremos más información, es cómo encontrar otros binarios que puedan estar relacionados con esta misma campaña, con este grupo que hay detrás y que nos puedan aportar más información porque, al Libro BBVA maqueta-ESP 1.indd 026Libro BBVA maqueta-ESP 1.indd 026 22/05/2015 14:07:1922/05/2015 14:07:19
  28. 28. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 27 final, lo que queremos tener es una imagen, una visión global lo más amplia posible en la cual podamos incorporar cuantos más elementos, mejor. Para encontrar binarios relacionados, una de las cosas que nos podía venir a la mente es utilizar funciones de distancia. Una función de distancia está relacionada con el clustering, se trata de encontrar qué atributos tiene un binario con los cuales poder construir una representación numérica, que nos de una cifra, un scoring, y que lo podamos comparar con otro binario. Así podemos establecer la distancia que hay entre estos dos binarios. Una vez que tenemos esta función definida, podemos hacer un clustering que, simplemente, consista en agrupar los binarios que sean similares. Una vez que tenemos esto, todo es más fácil. El aprendizaje automático, el machine learning, lo podemos utilizar también para hacer este tipo de aprendizaje, es decir, para aprender qué binarios están relacionados unos con otros. De hecho, el clustering tiene una desventaja y es que no sabemos si funciona o no. Imaginaos que tenemos ahora mismo una función de distancia que creemos que es buena, la tiramos contra un terabyte de binarios, ya que disponemos de unos cuantos cientos de miles o millones, y nos da una serie de grupos, ¿cómo sabemos que, realmente, este clustering es bueno, que estos binarios realmente se parecen o no? No es sencillo. En cambio, cuando utilizamos el machine learning la aproximación es algo distinta. El algoritmo de machine learning lo que necesita es aprendizaje supervisado, lo que significa que le vamos a dar una serie de binarios y vamos a decir “éstos son de este grupo, éstos son de este otro y éstos son de un tercer grupo”. A partir de aquí, el algoritmo aprenderá cuáles de las características de los binarios son interesantes haciendo que este grupo se distinga del segundo. De este modo, cuando demos con un grupo que no conocemos, nos lo clasificará automáticamente. Entonces, como se aprecia, aquí no hace falta tanto la función de distancia sino la selección de los atributos adecuados. Es decir, ¿el tamaño de un binario es relevante para hacer una agrupación? Seguramente, no. ¿El nombre del binario? Quizá. ¿La tabla de importación? Seguramente, sí. Y es que hay una serie de características que nos permitirán saber si estos binarios realmente se parecen o no. Una vez establecida la distinción entre machine learning y clustering, dependiendo de lo que queramos hacer podremos utilizar una aproximación u otra. Antes de hablar de funciones de distancia, cabe preguntarse si realmente son necesarias. Quizá podamos hacerlo todo un poco más sencillo. No siempre va a ser necesario que utilicemos una función de distancia y, muchas veces, podemos buscar un patrón dentro del código que haga que este binario tenga algo relevante, algo único que nos lo identifique del resto. Antes comentaba que, dentro de los binarios de Careto, encontramos esta cadena de caracteres. Es bastante único. Si buscáramos esta cadena de caracteres que nos daba Careto entre todos los binarios que tenemos y nos diera otros positivos, valdría la pena echarle un ojo. Entonces, podemos buscar secuencias de bytes que sean únicas dentro de Libro BBVA maqueta-ESP 1.indd 027Libro BBVA maqueta-ESP 1.indd 027 22/05/2015 14:07:1922/05/2015 14:07:19
  29. 29. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR28 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 toda nuestra colección de binarios. Por ejemplo, esto es lo que utiliza el ‘Comando File’ de Linux, que lo que hace es decirnos de un fichero qué tipo de fichero es. El ‘Comando File’, por ejemplo, utiliza lo que hay en File Magic, donde lo que tiene es una base de datos que incluye la secuencia de bytes que identifican cada tipo de archivo. Lo que está haciendo el ‘Comando File’ -un comando que funciona muy bien- es simplemente tirar de una base de datos donde le está diciendo que estas secuencias de bytes hacen que este fichero sea único y nos permite identificarlo de forma unívoca. Podemos utilizar esta misma aproximación nosotros cuando hagamos búsquedas. De hecho, no sé si conocéis ‘Yara’, un metalenguaje que permite crear reglas para la búsqueda de secuencias de bytes dentro de binarios. Yara, aparte, nos permite definir cierta lógica para decirnos si este binario es interesante o no. Es una herramienta que se utiliza muchísimo para el análisis de binarios y para campañas maliciosas. Otra cosa que podemos utilizar también son los metadatos de los binarios. Los metadatos nos proporcionan información muy interesante y que no tiene que ver necesariamente con la estructura del binario en sí, sino que son datos relacionados con este binario. Por ejemplo, hay una utilidad que se llama ‘P Frame’ que si la utilizamos con el archivo ‘Hot Brasilian XXX’ que hemos encontrado, podemos ver la fecha de compilación, el packer que tiene, si tiene URLs, los archivos de la API y otras cosas interesantes como el nombre interno que, en este caso, lo han llamado Power para que si lo pones encima del icono de Windows te diga que es un archivo de Power. Y el nombre original es ‘ThisReclamo.exe’. Lo que quiere decir es que quien ha creado este binario, internamente está haciendo un reclamo si se llama ‘Hot Brasilian XXX’, haciéndose pasar por un fichero Power Point. Os podéis imaginar que, efectivamente, es un reclamo para una campaña maliciosa. Entonces, gracias a estos metadatos vemos el nombre interno y podríamos utilizar estos metadatos para buscar más reclamos .exe porque esta es la ruta interna que ha utilizado la persona que lo ha creado y, si encontramos una ruta similar, seguramente tendrá un origen común con esta campaña. Los metadatos son una fuente injustamente olvidada, en mi opinión. Un ejemplo de Yara que os quería mostrar es esta secuencia de bytes que es la firma que hice para buscar un ransomware que se hace pasar por la policía y que afecta al sistema de Android. Aquí, simplemente lo que hice es que la condición era que se cumpliera la firma. Así de sencillo. No tiene más, pero podemos poner varias condiciones y que se cumpla una u otra, que si no se cumplen dos, una tercera dé positivo, etc. Es un ejemplo de lo más sencillo sobre Yara. En este caso, esta firma es una secuencia de bytes, por lo que simplemente buscamos esta secuencia de bytes entre todos los APKs maliciosos, permitiéndonos detectar si hay algún otro dentro de esta campaña. Nos permite detectar patrones, en este caso simplemente buscando una secuencia de bytes, por lo que tenemos una forma sencilla de identificar si hay otros binarios relacionados. De hecho, entre hacer una función de distancia versus buscar un patrón, por ejemplo, en este Libro BBVA maqueta-ESP 1.indd 028Libro BBVA maqueta-ESP 1.indd 028 22/05/2015 14:07:1922/05/2015 14:07:19
  30. 30. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 29 caso la página web Virus Total, tiene una función de similitud, de distancia a través de la función ‘similar to’ y en este caso, no hay ningún resultado buscando binarios similares al APK que os he comentado antes. Sin embargo, si lo que hago es utilizar la regla de Yara que he comentado, me da un montón. Simplemente a través de la búsqueda de un patrón, que en mi caso era la firma pública de este APK, entre todos los APK que tienes en Virus Total. Por eso a veces no hace falta complicarse la vida, no hace falta hacer algo muy complicado con una función de distancia, porque simplemente el uso de una búsqueda de patrones nos va a dar un resultado igual o mejor. Vuelvo a la comparación de binarios. El binario más sencillo que podemos imaginar, en este caso sería un ‘Hello World’, el cual, simplemente es una línea de código y un ’include’; si lo compilamos con un flag diferente vemos que el hash resultante es totalmente distinto. Los hashes no sirven para hacer comparaciones. Lo que quiero decir aquí es que el compilador tiene mucho peso a la hora de determinar la forma final de un binario. Un mismo código fuente compilado con distintas propiedades hace que el resultado final sea totalmente distinto. El compilador siempre tiene un peso muy importante; sin embargo, hay algunas aproximaciones que nos pueden servir. Si seguimos pensando que un binario es simplemente, una secuencia de bytes, hay algunas aproximaciones interesantes, como pueda ser lo que se conoce como ‘n-grams’, que es utilizar ‘n’ secuencias de ‘n’ bytes, es decir, en lugar de utilizar el binario como una secuencia de bytes enorme, cogemos secuencias de bytes de cinco en cinco, de siete en siete, etc, dependiendo de la granularidad, lo que nos permite hacer comparaciones parciales que nos pueden dar información. Al final las secuencias de bytes son las operaciones a un alto nivel, por lo que tiene más sentido utilizarlas. De hecho, hay una secuencia de operaciones como usar histogramas de los distintos tipos de bytes. Es decir, podemos utilizar un histograma de todos los bytes que tenemos dentro de un binario y, según esta distribución, podemos llegar a averiguar el tipo de fichero. Lo bueno que tiene esta aproximación es que funciona también con una muestra parcial. Es decir, si lo estamos haciendo, por ejemplo, en la red y estamos cogiendo un número de bytes de un binario que nos está llegando, esto no puede llevar a identificar el tipo de binario que es. En esta presentación he puesto varias referencias a papers de este tipo de estudios porque, como veis, explicar esto es un poco farragoso y no quiero entrar en detalles muy técnicos ya que, de hecho, son muy complicados y tendría que aprendérmelos antes todos. Pero os explico esto para que tengáis la visión de que las cosas se pueden hacer y que tengáis la referencia y las herramientas que se pueden utilizar. Una herramienta muy interesante es SSdeep que, básicamente, lo que hace es coger secuencia de bytes idénticos dentro de un binario y hacer un hash. Esto lo que nos permite es tener un valor de un binario y compararlo con otro binario con hashes parciales de secuencias de bytes que tenemos dentro. Esto nos ayuda a saber si dos binarios coinciden o no. Por ejemplo, tengo dos binarios, los dos son el ‘Hello World’ que he comentado antes, y SSdeep lo que hace es Libro BBVA maqueta-ESP 1.indd 029Libro BBVA maqueta-ESP 1.indd 029 22/05/2015 14:07:1922/05/2015 14:07:19
  31. 31. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR30 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 generar un archivo .txt que tiene la firma de estos hashes parciales internos del binario y nos hace una comparación. En este caso la herramienta dice que tienen algo en común. Viéndolo desde fuera parece que son lo mismo, pero esta utilidad te dice si realmente coinciden o no. Recordad que los MD5 de ambos son totalmente distintos. Entonces, aunque no nos sirven los hashes como comparación directa, sí que hay aproximaciones como estos hashes parciales de secuencias de bytes dentro de los binarios que sí nos permiten hacer estas comparaciones. En cualquier caso, como decía antes, no hace falta conocer toda la teoría, pero es importante saber que existe esta aproximación y cómo funciona. Yo recomiendo, por ejemplo, utilizar SSdeep porque es una herramienta muy buena para este tipo de búsquedas. Recordad que todavía estamos buscando los binarios que puedan estar relacionados con una campaña y estamos viendo desde el más bajo nivel qué hay de interesante en un binario que podemos utilizar para esta búsqueda. A un nivel superior de abstracción, si ya nos olvidamos de los bytes que, como decíamos, representan el código en el ensamblador de las instrucciones que está ejecutando un binario. Este código es un nivel más alto de abstracción y nos interesa mucho más a la hora de comparar dos binarios. El tema es que los métodos de ‘parseo’ para encontrar código en alto nivel no son triviales. Todos utilizamos herramientas como ‘Aida Pro’, pero hay que saber que pueden fallar. Es decir, la representación que hace del código en un alto nivel puede tener errores. De hecho, este tipo de compiladores utilizan premisas muy fuertes a la hora de interpretar un código pero tienen muchos errores si esas premisas no se cumplen, por ejemplo, con un compilador extraño y cosas así. Entonces, puede ser que el código que obtengamos con Aida no tenga nada que ver con la realidad. Para la comparación de estos binarios hay aproximaciones mixtas, como por ejemplo, hacer comparación de grafos para ver si coinciden o no. Esta aproximación, la comparación de grafos o la búsqueda de un subgrafo dentro de un grafo, son problemas que se conocen como NP Completos, que significa que el tiempo de computación no se puede hacer de forma polinómica, pues entonces tarda mucho. BinDiff es una herramienta que utiliza este tipo de comparación de una forma muy visual con el control flow de lo que sería el binario y, en este caso, encuentras diferencias en los bloques de código, comparando lo que sería la matriz de adyacencia de un grafo (que es una forma muy rápida de hacer esta comparación). También tiene sus limitaciones. Pero saber cómo funcionan a nivel interno este tipo de herramientas y que lo que tengáis con Aida Pro, por ejemplo, no significa que tengáis la representación real de este código binario, ni significa que la comparación entre control flows sea perfecta, siempre hay que tener esto en cuenta. Una información interesante de estos binarios con una representación a más alto nivel son, sobre todo, las importaciones. En este caso vemos todos los archivos que están importando funciones que utiliza este binario. Pensad que muchas de estas funciones las puede utilizar el propio packer. Es decir, un archivo está empaquetado, este empaquetador utiliza ciertas funciones de la API de Windows para luego desempaquetarse Libro BBVA maqueta-ESP 1.indd 030Libro BBVA maqueta-ESP 1.indd 030 22/05/2015 14:07:1922/05/2015 14:07:19
  32. 32. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 31 y ejecutarse; entonces, tampoco confiéis ciegamente en esta IAT, en esta tabla de importación, porque a veces puede ser que el propio packer esté utilizando funciones que luego el binario no usa para nada. Aparte de ver las DLLs que utiliza, también, en este caso, a través de Aida, podemos ver las distintas funciones dentro de cada DLL que está empleando. Esto nos puede dar pistas muy buenas sobre qué tipo de actividad va a hacer el binario en el sistema. Otra herramienta interesante respecto a esta tabla de importaciones es ImpHash, un paper que hizo público Mandiant aunque, realmente, es una técnica que parece ser que se utilizaba antes. En este caso, y como decía, las importaciones que hace un binario nos dan muchas pistas sobre qué está haciendo nuestro sistema: si está utilizando una DLL para comunicarse por Internet, en algún caso podemos sospechar si lo hace, si abre un fichero, etc. En este sentido, ImpHash lo que hace es hacernos un hash de la tabla de importaciones que hace este binario para compararla con el resto. La clave de esta aproximación se concreta en dos puntos: primero, que es muy rápido, porque al hacernos un hash nos proporciona una firma única de las importaciones y lo podemos comparar de forma muy rápida con unos cuantos millones de binarios. Y segundo, algo muy interesante: que la tabla de importaciones que crea el compilador depende del orden en el cual se encuentren las llamadas funciones en el código fuente del binario. Esto significa que si todos nosotros nos ponemos a crear un código binario y utilizamos, por ejemplo, dos DLLs, puede que tengamos firmas distintas para todos nosotros en función de cuándo las llamemos dentro del código. Es decir, no solo que llamemos a esas funciones sino también, cuándo las llamemos. Al hacer que esto cambie el compilador, buscar el hash de esta tabla de importaciones hace que sea distinta en función de este orden, por lo cual es muy interesante a la hora de buscar códigos que sean muy similares. Como os digo, no es una aproximación perfecta para hacer la similitud entre dos binarios pero sí interesante. ImpHash cada vez se utiliza más y es otra de las herramientas que podéis aplicar todos. Pero bueno, lo que más nos interesa quizá de los binarios es cuándo podemos hacer un análisis dinámico. Un análisis dinámico significa que cogemos un binario lo ejecutamos en una sandbox y observamos qué es lo que hace. Aquí encontramos todas las características, todo el comportamiento del binario. Es la aproximación más sencilla. ¿El problema? Esto no siempre es posible, por ejemplo, por técnicas de anti- emulación, porque solo se ejecuta cuando el usuario ha hecho una serie de cosas en el sistema, etc. Pero si llegamos a obtener esta información es la más valiosa, ya que seguramente nos va a dar más pistas de qué es lo que está haciendo el binario y si realmente es el mismo que otro que estamos analizando. Aquí no estamos comparando ya las características estructurales del binario, sino que estamos comparando temas relacionados con los datos que tiene. Por ejemplo, si se conecta contra una URL, contra un dominio, si accede a un archivo, etc.; esto puede cambiar para dos binarios exactos, en función de los datos que tenga, evidentemente. Pero, realmente, tales datos seguro que son los más importantes. Si los podemos obtener son los más efectivos. El Libro BBVA maqueta-ESP 1.indd 031Libro BBVA maqueta-ESP 1.indd 031 22/05/2015 14:07:1922/05/2015 14:07:19
  33. 33. Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR32 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Curso de Verano 2014 problema es que son los más difíciles de computar porque son muchos. Muchos de ellos no son atómicos (por lo que para hacer una función los datos cualitativos seguramente no son muy buenos), y también, son caros, en el sentido en el que necesitamos muchas máquinas para poder ejecutar todos estos binarios y recoger toda la actividad que están haciendo. En definitiva, si queremos hacer una buena función de distancia tenemos que tener en cuenta, lo primero, que necesitamos un conocimiento experto ya que todas estas características de las que hemos estado hablando están muy bien, pero hay que saber cuáles son las buenas. Un ejemplo es lo que hemos comentado antes de ImpHash, de cómo el orden a las llamadas a las funciones altera la reacción de la IAT de los binarios. Si no sabemos esto, nunca se nos ocurriría hacer, por ejemplo, una feature del ImpHash. El tema de la maldición de la dimensionalidad significa que el tener muchas características en los binarios va a hacer que el tratamiento de las funciones de distancia sea casi imposible, por lo que tenemos que seleccionar solo cuáles son las buenas. Y luego, el over citing significa que si utilizamos unos cuantos binarios que no son genéricos va a hacer que nuestras funciones de reconocimiento posteriormente sean demasiado específicas para este grupo de binarios, es decir, que el grupo de entrenamiento que utilizamos tiene que ser bueno, esto es, que tenemos que utilizar algo que realmente luego nos funcione. Tengo aquí una entrada de un blog en el que un hombre dice que le gustaría hacer un clustering de distintos malware relacionados con distintas APTs que, básicamente, es de lo que estamos hablando en esta charla. Si nos fijamos en las características que tenemos para cada binario, el nombre del fichero, la extensión, el tamaño, el tipo, el compilador, el packer, la detección, dinámicos, etc., al final el hombre no consiguió solucionarlo, pero en lo que me quiero centrar es en la gran cantidad de datos que tenemos y la dificultad de seleccionar los que realmente son relevantes. Ninguna técnica de Inteligencia Artificial nos va a servir aquí si no tenemos un conocimiento experto detrás. No obstante, es importante no dejar que los árboles nos impidan ver el bosque. En esta primera parte, hemos hablado solo de binarios y en una campaña APT hay muchísimas más cosas. En esta segunda parte de la presentación vamos a hablar de qué otras cosas tenemos. Para empezar, de las limitaciones en el mundo real. Los binarios pueden ser todos distintos, pueden ser todos iguales o puede que no tengan ninguna relevancia. ¿Por qué? Porque hoy en día lo que se utiliza es malware genérico para que no haya forma de relacionar este código malicioso con un grupo en concreto. Es decir, utilizamos herramientas que podemos obtener en el mercado. Utilizamos herramientas de acceso remoto para poder obtener información de nuestras víctimas pero que no se puedan relacionar con un grupo. Hoy en día, lo que se utiliza más es lo que se conoce como TTPs (techniques, tactiques and procedures) que son las técnicas, las tácticas y los procedimientos de los grupos que hay detrás de los ataques. Es decir, analizo una máquina que ha afectado a la Universidad Rey Juan Carlos y encuentro Libro BBVA maqueta-ESP 1.indd 032Libro BBVA maqueta-ESP 1.indd 032 22/05/2015 14:07:1922/05/2015 14:07:19
  34. 34. Curso de Verano 2014 d innoTSec14 – Innovación disruptiva en tecnologías de seguridad Centro de Investigación para la Gestión Tecnológica del Riesgo CIGTR 33 un malware genérico; en principio, a lo mejor pensamos que se ha infectado porque estaban navegando por cualquier sitio y bueno, es una infección normal. Pero resulta que este malware, si se ha infectado a través de esta página, esta página la utiliza tal grupo y suele utilizar este malware para infectar como primer paso a la primera víctima para poner un pie dentro de la empresa y luego utiliza una herramienta de movimiento lateral para hacer otra infección del dominio, etc. Estas tácticas, estos procedimientos, conforman el comportamiento que nos permite identificar al adversario, lo que hoy en día se conoce como attribution, la ‘atribución’, y es por lo que pagan las empresas. Es la razón por la que todas las empresas lo ponen dentro de su portafolio. ¿Qué elementos se pueden tener en cuenta para identificar el grupo que hay detrás. ¿No sé si conocéis el reportaje de APT1 de Mandiant? Mandiant es una empresa que se dedica al análisis forense de investigación de este tipo de campañas. Se maneja codo con codo con el gobierno americano y el año pasado realizó este reportaje en el cual se comentaban distintos APTs que tenían origen en China contra los Estados Unidos. En este reportaje hay una parte interesante que es cuando habla de atribución, hablando sobre cómo lo utilizan. Ellos lo describen así: considerando la analogía con el mundo físico, imaginad un ladrón que deja trazos de su delito en distintas escenas del crimen. En cada robo individual podemos ver cómo el ladrón entró en el sistema, las herramientas que utilizó para abrir la caja fuerte, si eligió un ítem particular para robar o lo cogió todo para posteriormente ver qué era lo interesante. Se trata de una analogía que está bien para ver cómo, hoy en día, se investigan este tipo de cosas en función de cómo actúa este grupo, lo que nos ayuda a identificar quién puede estar detrás. Por supuesto, un grupo perfecto es el que no actúa dos veces de la misma forma. Además, hoy en día, en muy común dejar pistas falsas. Ese es el problema de la atribución en el mundo digital, que es muy difícil de conocer. Y este tipo de iniciativas, este tipo de información, es lo que intentamos que nos sirva para identificar a esos grupos. Pero fijaos que esta información es muy difícil de analizar de forma automática, por lo que la primera parte de la charla sí que tratábamos de herramientas de machine learning que sí que podíamos utilizar para desarrollar una primera fase, pero para una segunda fase de la investigación estamos hablando de analistas que sean capaces de dar sentido a esa información. ¿Qué más tenemos? Pues el terreno de comunicación, sobre todo. Los servidores a los que se están enviando datos, los dominios que utiliza, la información de estos dominios… es decir, todo lo que utiliza de infraestructura de red cualquier campaña es muy interesante y, seguramente, es una información después de los binarios de lo más valioso que podemos obtener. Se utilizan sobre todo métodos no-estándar para la comunicación, se utiliza un tipo de cifrado muy característico y esto es interesante porque nos permitirá identificar más elementos, pero sobre todo los dominios. Por ejemplo, lo que os comentada antes de la campaña de malware para Android. Cuando lo estuvimos investigando resulta que se distribuía a través de varios sitios porno. Unos sitios que después de analizarlos con Libro BBVA maqueta-ESP 1.indd 033Libro BBVA maqueta-ESP 1.indd 033 22/05/2015 14:07:1922/05/2015 14:07:19

×