domingo, 18 de septiembre de 2016

Aprendizaje de máquina como arma de guerra

En numerosas películas es posible ver a robots remplazando soldados en la tareas que son comunes en los campos de batalla. Robots dotados de una increíble inteligencia que combaten contra otros robots y humanos. Aunque esto es un tema recurrente en la ciencia ficción, en los últimos años la ciencia y la tecnología nos han permitido acercarnos a dicho escenario distópico.
Los años recientes han visto un progreso significativo en el área del aprendizaje de máquina, un conjunto de herramientas matemáticas que permiten emular el funcionamiento del cerebro humano, potenciado por el poder de cálculo de los grandes centros de cómputo. El objetivo es tomar una enorme cantidad de datos y hacer que éstos sean procesados iterativamente por algoritmos que se adaptan a dichos datos, obteniendo la capacidad de hacer predicciones sobre información futura.
Este mismo principio podría en teoría ser utilizado para construir los mencionados robots "soldados". Un escenario que suena bastante inverosímil y complejo, pero que ya ha sido llevado a la práctica en la vida real. Hace algún tiempo leí acerca de un programa de la NSA llamado "Skynet" [1], no por coincidencia con un nombre tomado a la popular película "Terminator".
Skynet es un programa de defensa que consiste en la recolección de metadatos de comunicaciones electrónicas, especialmente llamadas mediante dispositivos celulares, con el fin de detectar de forma "inteligente", comunicaciones realizadas por grupos terroristas. El resultado de dicha clasificación es luego utilizada para localizar a las fuentes de las comunicaciones detectadas, y correspondientemente dirigir drones para atacar sus ubicaciones.
La existencia de este programa ha sido confirmada por una serie de diapositivas que hacen parte de las filtraciones de Snowden  [2]. Naturalmente más allá del interés tecnológico que nos pudiera despertar esta noticia, surgen además muchas interrogantes éticas e incluso de fundamento científico sobre las bases de dicho programa.
Por ejemplo, en la noticia se menciona que este programa se aplica por parte de Estados Unidos sobre un país completo, presumiblemente Pakistan, entonces ¿Esta bien vigilar a toda una población de un país, incluso si es para detectar terroristas? Evidentemente un sistema de estas características podría ser abusado por un gobierno tirano para localizar además periodistas, opositores, activistas y otros. Otra pregunta importante es ¿Esta el aprendizaje de máquina en un estado suficientemente avanzado, como para confiarle la vida o muerte de personas? Según el artículo, el sistema tiene un nivel de error que lo hace inaceptable, y evidentemente se han cometido equivocaciones, clasificando y/o asesinado miles de personas inocentes. ¿Aceptarían los ciudadanos norteamericanos que un programa como este se aplique en su propio territorio?
Como reflexión final, es tentador dejarse llevar por la necesidad de la seguridad y el aprovechamiento de la tecnología para reforzarla. Sin embargo, si no se consideran las consecuencias y límites éticos y científicos, los resultados finales pueden ser mucho peor que el mal que en principio se quería resolver.

[1] http://arstechnica.co.uk/security/2016/02/the-nsas-skynet-program-may-be-killing-thousands-of-innocent-people/

[2] https://theintercept.com/document/2015/05/08/skynet-applying-advanced-cloud-based-behavior-analytics

lunes, 1 de febrero de 2016

32C3: Juegos de guerra, como crear un jugador de CTF


Es navidad en la fría Alemania. Las familias se reúnen para compartir regalos, mientras disfrutan un tiempo de descanso.  Sin embargo, algunos entusiastas deciden que es tiempo de reunirse a compartir conocimientos. En el puerto alemán de Hamburgo, como cada año, del 27 al 30 de diciembre, se celebra el Chaos Communication Congress (32C3). En su versión 32 [1] reunió a más de 12000 participantes, para discutir en torno a la ciencia, el hacking, el arte, y la anarquía.

Como uno de los afortunados asistentes, tuve la oportunidad de estar en diversos eventos, especialmente relacionados con el área de la seguridad informática. En el 32C3 se pueden encontrar a algunos de los mejores investigadores en el mundo del hacking. El cronograma completo del evento, se puede encontrar en [2] y un listado de los conferencistas se puede ver en [3].


Aunque había en el congreso muchas charlas de enorme calidad, sin duda la que mas llamo mi atención fue una titulada "A Dozen Years of Shellphish: From DEFCON to the DARPA Cyber Grand Challenge" [4]. Ésta charla fue realizada por varios miembros del grupo "Shellphish" de la Universidad de California Santa Barbara [5]. En ella, los conferencistas describieron su participación en un evento llamado el Cyber Grand Challenge (CGC).


El CGC [6] es un reto organizado por el DARPA, entidad de Estados Unidos dedicada a la investigación tecnológica en temas de interés militar. El reto consiste en la creación de una competencia donde los participantes deben construir un sistema que automáticamente descubra y explote vulnerabilidades en sistemas rivales, y proteja los propios. El equipo ganador es aquel que pueda mantener sus servicios funcionando por el mayor tiempo posible, mientras se ataca los servicios oponentes. Finalmente, el equipo que logre construir este sistema, al que el DARPA llama "Cyber Reasoning System", o por lo menos aquel que se encuentre mas cercano de lograrlo, será merecedor de un premio de 5 millones de dolares.


Por supuesto este tipo de evento no puede ser realizado en un ambiente sin control. El CGC está organizado dentro del contexto de los juegos de guerra de captura la bandera (Capture the Flag) del famoso congreso hacker DEFON [9]. Dentro de este contexto, los miembros de Shellphish describen en su charla como sus numerosos años de experiencia participando en CTF del DEFCON les ha permitido automatizar muchas de sus técnicas en herramientas que finalmente han ido liberando como software libre. Uno de estas herramientas es un framework  [8] que permite crear ambientes diseñados para juegos de guerra similares al de DEFCON.


Pero la herramienta más importante utilizada por este equipo es ANGR [7], un framework que permite escanear programas ejecutables en busca de vulnerabilidades. Para esto utiliza una técnica de mejoramiento de fuzzing a través de ejecución simbólica selectiva. Esta herramienta, que puede ser usada por cualquier investigador de forma libre, les permitió obtener resultados significativos al registrarse como competidores del "Cyber Grand Challenge".


Al final las fases clasificatorias del CGC, 7 equipos de todo el mundo han accedido a la fase final, entre ellos el equipo Shellphish. Para esto, fueron capaces de encontrar, explotar y protegerse con 44 archivos binarios de 131 posibles totales, todo esto usando su herramienta ANGR. Además se hicieron acreedores de un premio de 750 mil dolares. El evento final del CGC se llevara a en Agosto de 2016 en DEFCON, las Vegas. El ganador recibirá los ansiados 5 millones de dolares, pero lo más importante, puede marcar un hito en el desarrollo de sistemas autónomos de cyber-ataque y cyber-defensa.

En definitiva, una charla que llamó fuertemente mi atención y me pone a pensar que aportes de la Inteligencia Artificial podrían ser útiles en este contexto. Para terminar, aqui esta el enlace donde se puede ver el video grabado de la charla! --> https://media.ccc.de/v/32c3-7218-a_dozen_years_of_shellphish <-- :)

Kurono.

[1] https://www.youtube.com/watch?v=jSdXBnsVjr0
[2] https://events.ccc.de/congress/2015/Fahrplan/
[3] https://events.ccc.de/congress/2015/Fahrplan/speakers.html
[4] https://events.ccc.de/congress/2015/Fahrplan/events/7218.html
[5] https://seclab.cs.ucsb.edu/
[6] https://cgc.darpa.mil/
[7] http://angr.io/
[8] https://github.com/ucsb-seclab/ictf-framework
[9] https://www.defcon.org/