Google+ Followers

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/

martes, 2 de junio de 2015

Registro de SIM en Colombia: en contravía con los derechos a la privacidad y anonimato en la era digital



Recientemente se publicó un estudio titulado "Report on encryption, anonymity, and the human rights framework" [1], un documento de la Naciones Unidades escrito por David Kaye, que describe la situación global actual de los derechos fundamentales de libertad de expresión, la privacidad y anonimato en la era digital. Este documento concluye que el uso de herramientas de comunicación segura utilizando método de cifrado, así como la posibilidad de cualquier individuo de comunicarse de forma anónima, son mecanismo necesarios de protección de estos derechos humanos fundamentales. Para llegar a esta conclusión, se utilizan ejemplos de normas y mecanismos tecnológicos usados por algunos gobiernos para ejercer un control sobre las medios digitales dentro y fuera de sus territorios. 

Aunque en el caso colombiano hay muchas situaciones dignas de mencionar [2], [3], [4], el documento de las Naciones Unidas describe una en particular relacionado con el registro obligatorio de la tarjeta SIM, utilizada para la operación de los teléfonos móviles. Textualmente:

" ... Likewise, Governments often require SIM card registration; for instance, nearly 50 countries in Africa require or are in the process of requiring the registration of personally identifiable data when activating a SIM card. Colombia has had a mandatory mobile registration policy since 2011, and Peru has associated all SIM cards with a national identification number since 2010. Other countries are considering such policies. Such policies directly undermine anonymity, particularly for those who access the Internet only through mobile technology. Compulsory SIM card registration may provide Governments with the capacity to monitor individuals and journalists well beyond any legitimate government interest.
1 Kevin P. Donovan and Aaron K. Martin, “The Rise of African SIM Registration”, 3 February 2014.
2 See Colombia, Decree 1630 of 2011; Perú 21, Los celulares de prepago en la mira, 27 May 2010."

El texto describe la obligatoriedad del registro de tarjetas SIM en algunos países de África, Colombia y Perú.  Se menciona que dicha políticas atacan directamente el derecho al anonimato, especialmente para aquellos que solo acceden a internet a través del celular.  Además, proveen a los gobiernos de una herramienta eficaz de monitoreo sobre individuos, incluidos periodistas. 

Propuesto como una solución al robo de teléfonos móviles en Colombia, el decreto 1630 de 2011 [5], que obliga a las operadores de telefonía móvil a mantener registros que asocian tarjetas SIM con la verdadera identidad del propietario, ha dado muestras de ser ineficaz en este sentido [6]. Sin embargo éstas bases de datos, como menciona el informe de las Naciones Unidas, son una herramienta invaluable para el control sobre los ciudadanos, incluso aquellos que no son blanco de organismos de inteligencia o judiciales.

Concluyo con una cita del mismo informe:
" ... but emergency situations do not relieve States of the obligation to ensure respect for international human rights law."


[1] http://www.ohchr.org/EN/Issues/FreedomOpinion/Pages/CallForSubmission.aspx
[2] https://www.youtube.com/watch?v=VsClj8w4Liw
[3] http://www.semana.com/opinion/articulo/la-corte-constitucional-prefiere-la-censura-opinion-emmanuel-vargas-penagos/428983-3
[4] http://www.elcolombiano.com/relevan-a-20-militares-y-retiran-a-cinco-por-casos-andromeda-y-hacker-andres-sepulveda-MX1154169
[5] http://www.mintic.gov.co/portal/604/w3-article-3558.html
[6] http://www.elcolombiano.com/en_2013_subio_el_robo_de_celulares-HAEC_277022

sábado, 1 de noviembre de 2014

Vulnerabilidades en I2P que afectan a Tails

Tails [1] es un sistema operativo que se ha construido con el propósito de brindar un nivel de privacidad y seguridad alto, incluso contra organizaciones con una importante cantidad de recursos para tareas de espionaje. Sin embargo, como es bien sabido, es extremadamente difícil construir un sistema de cómputo libre de errores, los cuales que llevan a problemas de seguridad, especialmente cuando se incluyen librerías y aplicaciones de terceros.

Recientemente fueron descubiertas varias vulnerabilidades [2], [3], en una aplicación suministrada como parte de Tails, llamada I2P [4]. Esta aplicación ofrece un servicio similar al de Tor project para anonimizar el tráfico de red que circula desde y hacia el cliente. Las vulnerabilidades permiten la ejecución remota de código y por lo tanto la extracción de información para identificar al usuario.

En primer lugar fueron encontradas varias fallas [2] en la versión 0.9.13 I2P, parte de Tails 1.1 y anteriores, entre las que se mencionan XSS e inyección de valores de configuración que pueden a llevar a la inclusión de plugins maliciosos con la consecuente ejecución remota de código. En [4] se mencionan las correcciones realizadas por los desarrolladores de la aplicación:

Security fixes:

* Fix several XSS issues.
* Disable change news feed URL from UI.
* Disable plugin install.
* Disable setting unsigned update URL from UI.
* Disable clients.config editing form the UI.
* Add content-security-policy and X-XSS-protection headers.
* Disable unused ExecNamingService.

Estas vulnerabilidades animaron a otros investigadores a analizar con mayor profundidad la seguridad de I2P. En [3] se describe una nueva vulnerabilidad, que consiste en la inyección de una opción de configuración a través de la URL. I2P incluye un servidor WEB ligero que permite administrar la configuración del aplicativo desde el navegador. Un error en la validacón de uno de los parámetros, permite la inclusión arbitraria de opciones de configuración, entre las que se incluye una que permite ejecutar un script arbitrario. De esta manera se puede ejecutar código en la máquina del cliente y por lo tanto descubrir su identidad. En [5] se describen las correcciones realizadas por los desarrolladores.

Se recomienda actualizar a la la última versión disponible de I2P (0.9.15) o utilizar la última versión disponible de Tails (1.2). Debido a éstos últimos problemas de seguridad, los desarrolladores de Tails han decidido desactivar I2P por defecto, solo siendo activado si el usuario lo desea utilizar. Se pone de manifiesto con esto que se requiere una mayor auditoría de seguridad en las herramientas que buscan proteger la privacidad de los usuarios, y la implementación de medidas de contención, como por ejemplo los sandbox [6].

[1] https://tails.boum.org/
[2] http://blog.exodusintel.com/2014/07/23/silverbullets_and_fairytails/
[3] http://www.phenoelit.org/blog/archives/2014/10/11/tldr_just_another_way_to_get_rce_in_i2p_version_0_9_13/index.html
[4] https://geti2p.net/es/blog/post/2014/07/26/0.9.14-Release
[5] https://geti2p.net/es/blog/post/2014/09/20/0.9.15-Release
[6] https://www.mail-archive.com/tails-dev@boum.org/msg06414.html

miércoles, 20 de agosto de 2014

Vulnerabilidad encontrada en Tor

Tor y Tails son dos herramientas desarrolladas para mantener un nivel alto de privacidad mientras se utiliza Internet.  Fueron incluso utilizadas por Snowden para su propia protección, según lo informó el mismo [1]. Se les puede considerar el estado del arte en cuanto a tecnologías anti rastreo. Sin embargo, como todo sistema de cómputo, estas herramientas pensadas para un altísimo estándar de seguridad, tienen también sus propios agujeros. Recientemente se encontraron varias fallas de seguridad importantes, que fueron corregidas por los desarrolladores de los proyectos.

Tal como se describe en la pagina web del proyecto Tor [2], el 4 de julio de 2014 fueron detectados varios relays tratando de descubrir la identidad oculta de los usuarios que enviaban información a través de su red. Los objetivos del ataque eran especialmente los operadores de los hidden services, páginas web que se encuentran protegidas por la red Tor.

La técnica que fue usada por estos relays es conocida como ataque de confirmación de tráfico. Cuando un atacante tiene control sobre el inicio y el fin de un circuito dentro de la red (al fin y al cabo relays administrados por voluntarios) es posible para ellos medir diferentes características del tráfico que circula y obtener estadísticas valiosas a pesar que todo se encuentra cifrado. De esta manera pueden determinar si dos relays están en el mismo circuito. Si el primer relay en el circuito conoce la IP real del usuario y el último relay conoce la destinación de los recursos pedido por el usuario (como la página web a la que quiere acceder), entonces un atacante podría determinar con cierta probabilidad la fuente del tráfico (el usuario real). Este es un problema abierto sin solución efectiva hasta el momento. Sin embargo, si se asume que la mayoría de los relays en la red son benignos la probabilidad de que este ataque tenga éxito para una gran cantidad de usuarios es muy baja.

El tipo de ataque particular que se usó para vulnerar la red Tor utilizó lo explicado anteriormente, con la diferencia que se logró inyectar señales en los paquetes, siendo más efectivo para descubrir la IP real de los usuarios (porque se elimina el factor probabilístico). La idea es que un relay dentro de un circuito inyecte datos en las cabeceras del protocolo de Tor. El relay del otro lado del circuito busca estos datos y así se puede determinar fácilmente si los dos relays hacen parte del mismo circuito. De esta manera los atacantes inyectaban esta señal cuando el relay es usado como directorio de hidden services y buscaban las señal cuando el relay era un punto de entrada. Así se podía encontrar la identidad real de los usuarios que buscaban o publicaban información  sobre los hidden services. Cuando un cliente de Tor se conectaba a uno de estos relays atacantes, para acceder o publicar información sobre los hidden services, el relay inyectaba el nombre del hidden service codificado como un conjunto de paquetes del tipo relay y realy early. Otros relays podía leer esta información y determinar qué usuarios buscaban dichos hidden services y quienes publicaban información sobre ellos. Los Tor relays no deberían permitir el uso arbitrario de estos tipos de paquetes para la codificación de señales que revelan la verdadera identidad de un usuario o un servicio. Adicionalmente los atacantes usaron una técnica conocida como "Sybil attack", por media de la cual se utiliza una gran cantidad de recursos computacionales para suplantar un buen porcentaje de los relays en la red (cerca al 6% en este caso). Así se logra ampliar el impacto del ataque. Un problema adicional es que estas señales podían ser detectados por otras organizaciones como agencias estatales de inteligencia, lo que podría comprometer la privacidad de muchos de los usuarios.

Aun no es completamente claro el origen de este ataque y quién esta detrás del hallazgo de la vulnerabilidad. Sin embargo, es sabido que dos investigadores de Carnegie Mellon [3], quienes se disponían a realizar una presentación al respecto en el congreso de Black Hat 2014 titulada "You don't have to be the NSA to break Tor: de-anonymising users on a budget", podrían ser las personas detrás de los relays. La charla fue cancelada aparentemente por problemas legales [4]. Finalmente los investigadores compartieron parte de la información con los desarrolladores del proyecto Tor, lo que les permitió corregir el bug. Los relays deben actualizarse a la versión 0.2.4.23 ó 0.2.5.6-alpha en las que la vulnerabilidad se encuentra ya corregida, asumiendo que todo los detalles del bug fueron efectivamente informados.

Referencias:

[1] http://www.huffingtonpost.com/2013/07/18/tor-snowden_n_3610370.html

[2] https://blog.torproject.org/blog/tor-security-advisory-relay-early-traffic-confirmation-attack

[3] https://img.4plebs.org/boards/pol/image/1404/73/1404736805983.png

[4]  http://www.theguardian.com/technology/2014/jul/22/is-tor-truly-anonymising-conference-cancelled

jueves, 22 de mayo de 2014

Surveillance States: Colombian Chapter

Hace poco participe en el DragonJAR Security Conference 2014, un evento de seguridad "made in Colombia", donde tuve la oportunidad de conocer grandes personas y disfrutar de charlas tremendamente interesantes. Aquí un poco mas de información sobre el evento:

Asi fue el dragonjar security conference 2014 dia i

Asi fue el dragonjar security conference 2014 dia ii

Precisamente en el segundo día fue el turno de mi charla "Surveillance States: Colombian Chapter", de la cual hago una pequeña referencia:

La revelaciones realizadas por Edward Snowden en 2013 terminaron por confirmar el estado de vigilancia en el que se encuentran las comunicaciones a nivel global. Aunque ya era bien conocido el papel que juegan estados como Rusia y China en este tipo de interceptaciones, los alcances revelados de la NSA Estadounidense son alarmantes, llevando casi al rechazo total del derecho fundamental a la privacidad. Colombia no se encuentra aislada de este problema, en los últimos años se han observado numerosos escándalos relacionados con interceptaciones ilegales que al fin y al cabo no son más que violaciones de los derechos humanos. Si añadimos a esto las legislaciones en materia de “inteligencia” que se han ido redactando en los últimos años, el escenario colombiano se presenta bastante complejo.
En esta charla se analiza el estado actual de la vigilancia electrónica en Colombia desde el punto de vista legislativo hasta los detalles técnicos generales. Se describe como estos elementos podrían ser abusados con facilidad. Además se muestra cómo en este emergente escenario de comunicaciones inseguras por legislación es necesario para desarrolladores y expertos en seguridad adoptar las herramientas criptográficas como elementos de uso diario. Finalmente se exponen algunas herramientas que pueden ayudar a preservar la privacidad aun en escenarios altamente vigilados, como por ejemplo la distribución de Linux Tails.

A continuación adjunto la dispositiva completa de mi presentación:

http://www.slideshare.net/kuronosec/djcon-surveillance

Y adicionalmente todo el material de referencia que utilice, entre ellos los contratos publicos que describen los sistemas de vigilancia usados en Colombia, que tambien se pueden encontrar en https://www.contratos.gov.co/ :

Material de referencia

sábado, 26 de abril de 2014

Divx plugin suite heap-based buffer overflow

DirectShowDemuxFilter as part of Divx plugin suite is vulnerable to heap-based buffer overflow, which can be exploited by malicious people to compromise a user's system. The vulnerability is caused due to a signedness error in the processing of "STRF" (Stream Format) chunks. This can be exploited to cause a heap-based buffer overflow via a specially crafted AVI file. Successful exploitation may allow execution of arbitrary code by tricking a user into visiting a malicious website.

DirectShowDemuxFilter is used by DivX Web Player, Divx Player and any application ussing Divx plugins like Windows Media Player (When Divx is installed). I have attached two avi files that trigger the vulnerability, the bug is caused when the offset 0x1159 ("STRF" Stream Format chunk) is altered:

when offset(0x1159) >= 8FFF, then we have the following error report

MSVCR80!memcpy+0x5a:
7814500a f3a5            rep movs dword ptr es:[edi],dword ptr [esi]

First Chance Exception Type: STATUS_ACCESS_VIOLATION (0xC0000005) Exception Sub-Type: Write Access Violation

Stack Trace:

MSVCR80!memcpy+0x5a
DMFContainer+0x146a4
DMFContainer!DSE::FileInspectorInterface::operator=+0x65cf
ntdll!RtlFreeHeapSlowly+0x5c2
MSVCR80!free+0xcd
Instruction Address: 0x000000007814500a

when offset(0x1159) < 8FFF, then we have the following error report

MSVCR80!LeadUpVec+0x52:
7814508e f3a5            rep movs dword ptr es:[edi],dword ptr [esi]

Exception Faulting Address: 0x1899000
First Chance Exception Type: STATUS_ACCESS_VIOLATION (0xC0000005)
Exception Sub-Type: Read Access Violation

Faulting Instruction:7814508e rep movs dword ptr es:[edi],dword ptr [esi]

Stack Trace:
MSVCR80!LeadUpVec+0x52
DirectShowDemuxFilter!DllUnregisterServer+0x20568
DirectShowDemuxFilter+0x223c
DirectShowDemuxFilter!DllUnregisterServer+0x955c
Instruction Address: 0x000000007814508e

These errors indicate that when we introduce a negative sign error we can overwrite regions on heap. When the sign is positive we can still crash the application, if we introduce one value big enough. I tested this bug in Windows 7 with all the patches applied and probably affects other versions.

PoC:


@kuronosec