lunes, 20 de julio de 2020

Private Machine Learning: Aprendizaje de maquina usando datos cifrados

El mundo digital de hoy tiene un apetito insaciable por la información de las personas. Cada vez más, diferentes actividades se realizan a través de una red abierta como Internet, algo que se ha acelerado con la actual pandemia. Como ejemplo común, muchas empresas quieren conocer los gustos de los usuarios para focalizar sus campañas de marketing y obtener mayores ventas. Sin embargo, las personas tienen derecho a tener control sobre quien y por qué alguien más accede sus datos personales al usar Internet. Estos derecho son importantes en todos los aspectos, pero en adicionalmente en áreas como la medicina y finanzas, existen leyes mas estrictas para la protección de datos. Un ejemplo de marco legal que ha supuesto una revolución para protección de información personal es el proyecto europeo regulación general de protección de datos (GDPR) [1].    

Una de las tecnologías que ha estado en centro de este apetito por información de las personas es el aprendizaje de maquina o machine learning (ML). ML es un conjunto de herramientas basadas en teorías matemáticas que permiten analizar datos y extraer respuestas a preguntas relacionadas con esos datos. Por ejemplo, basados en un conjunto de frases escritas por muchas personas es posible dividir esa frases en varios conjuntos, tal como de sentimientos positivos o negativos [2]. Otro ejemplo popular, son los sistemas de recomendaciones como los usados en Youtube o Netflix [3] para mostrar a sus usuarios contenido "similar" al observado anteriormente. Ejemplos de mayor impacto pueden encontrarse en la medicina, con algoritmos capaces de producir un diagnostico médico basados en información de los pacientes, incluso en algunos avances recientes, con resultados superiores los propios médicos [4].

El último ejemplo mencionado es una demostración de que hay casos muy válidos para la recolección y uso de datos de persona para resolver sus problemas, incluyendo casos como el seguimiento de pacientes durante la actual pandemia [5]. Hay otros casos, como la captación masiva de datos para el marketing e incremento de ventas de empresas, que muestran un menor o nulo beneficio para las personas dueñas de esos datos. En cualquiera de los dos extremos, la perdida de privacidad de las personas se ha convertido en un problema apremiante en busca de soluciones.

Avances recientes en las áreas de ML, seguridad y criptografía permiten lograr un balance entre la resolución de problemas reales para las personas y la minimización de la visibilidad sobre sus datos individuales. Por ejemplo, OpenMined (https://www.openmined.org/) [6] es un proyecto que ha desarrollado un conjunto de librerías que facilitan el desarrollo y despliegue de modelos basados en frameworks como Torch y TensorFLow, pero con adiciones para procesar datos con diferentes técnicas que mejoran el tratamiento de datos de forma privada, como federated learning, differential privacy y multi-party computing.

Algunas de éstas técnicas permiten incluso que usuarios usen modelos de ML cifrados, no teniendo acceso a los parámetros. Por otro lado, también permiten que el dueño de un modelo procese datos de usuarios que están cifrados, de manera que no pueden ser vistos, pero aún así permiten extraer predicciones precisas. Básicamente magia matemática! ;-)

El objetivo principal de éstas librerías, es el de abstraer las técnicas de protección de datos basadas principalmente en criptografía, y hacerlas más accesible a los programadores y científicos de datos acostumbrados a librerías como Torch. Al final los usuarios podrían usar frameworks de ML, sin preocuparse mucho sobre la técnicas de privacidad usados internamente. En este enlace se pueden ven algunos tutoriales, con formato de Python notebooks, que enseñan conceptos y ejemplos de uso de estas librerías: https://github.com/OpenMined/PySyft/tree/master/examples/tutorials. En  próximos posts escribiré ejemplos de algoritmos de ML usados para obtener respuestas a partir de datos cifrados, usando tećnicas como secure multi-party computation.

Referencias:
[1] https://gdpr.eu/
[2] https://www.kaggle.com/drscarlat/imdb-sentiment-analysis-keras-and-tensorflow
[3] https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45530.pdf
[4] https://www.nature.com/articles/s41586-019-1799-6
[5] https://github.com/corona-warn-app
[6] https://github.com/OpenMined/PyZPK

----
Andres Gomez, github.com/kuronosec

domingo, 14 de mayo de 2017

Protegiendo tu seguridad móvil en un ambiente adversario

En una de mis entradas anteriores [1], describí cómo el gobierno colombiano decidió construir, en conjunto con las empresas de prestación de servicios de telefonía celular, una base de datos de dispositivos móviles usados en el país y sus respectivos dueños como requisito para que estos puedan funcionar en le territorio nacional. Esta base de datos contiene por tanto millones de números telefónicos, números IMEI y datos como nombre de los subscriptores y localización (dirección de residencia). Más allá de los riesgos que por parte del gobierno se pueda utilizar estos datos de forma inapropiada, por ejemplo para espiar a periodistas y opositores, también está el riesgo asociado a grupos de delincuencia organizada que se dediquen a actividades de cyber ataques con fines económicos. Como recientemente vimos con el caso del malware WannaCry [2,3], el ataque fue posible gracias al robo de datos guardados por la NSA, por parte de cyber delincuentes. Esta base de datos contenía información no publicada sobre vulnerabilidades en Windows que fueron aprovechadas para lanzar un ataque a nivel global. Esto demuestra que incluso la agencia que mas dinero gasta en seguridad en el mundo, no está libre de ser victima de robo de datos. De esta manera es pertinente preguntarnos, ¿Qué tan segura podría ser esta gran base de datos de dispositivos móviles registrados en Colombia? Hasta donde se no existen documentos públicos que certifiquen su nivel de seguridad. En cualquier caso es lógico pensar que tarde o temprano se produzcan filtraciones.

A pesar de este panorama pesimista, donde incluso los gobiernos ayudan a hacer de Internet un lugar menos seguro, es posible tomar medidas para protegerse de ataques y robos de información personal. En esta y próximas entradas voy a describir un conjunto de herramientas para dispositivos móviles que nos ayudan a conservar un cierto nivel de seguridad en un ambiente altamente adversario. Sin embargo antes de proceder, el primero consejo, muy de la mano de lo pasado con WannaCry, es actuar con sentido común. Comenzando por no abrir archivos que provengan de orígenes desconocidos. Así como uno no deja entrar a su casa a personas desconocidas, uno no debe abrir archivos en su dispositivo que provengan de personas u entidades desconocidas. Siempre teniendo presente el anterior consejo, podemos proceder a revisar una lista de herramientas que al ser usadas en dispositivos móviles, ayudan a proteger su seguridad, incluso en ambientes altamente adversarios cómo el Internet actual y las redes de telefonía. Por ahora solo nombraré las herramientas, en entradas posteriores las describiré en detalle:

Navegación anónima: 
  • Tor, Torbot, Torbrowser [4]
  • I2p [5]
Comunicación segura:
  • Signal [6]
  • ChatSecure [7]
  • CryptoCat [8]
Endurecer del sistema operativo y protección de datos locales:
  • Cifrado de disco
  • Kernel hardening
 ¡Y de seguro muchas más! :D Conforme vaya escribiendo entradas, iré añadiendo herramientas que considere pertinentes o que sean alternativas a las mencionadas.

[1] https://kuronosec.blogspot.de/2015/06/registro-de-sim-en-colombia-en.html
[2] http://www.elespectador.com/tecnologia/si-buscan-culpables-del-ciberataque-mundial-miren-hacia-la-nsa-articulo-693564
[3] http://www.elcolombiano.com/tecnologia/ciberataque-global-afecta-a-cientos-de-paises-CA6525411
[4] https://es.wikipedia.org/wiki/Tor_(red_de_anonimato)
[5] https://es.wikipedia.org/wiki/I2P
[6] https://es.wikipedia.org/wiki/Signal_(software)
[7] https://chatsecure.org/
[8] https://es.wikipedia.org/wiki/Cryptocat

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

sábado, 12 de abril de 2014

DragonJar Security Conference


Próximamente participaré como ponente en el DragonJar Security Conference, que se llevará a cabo en la ciudad de Manizales, Colombia, no te pierdas este gran evento:





Las características únicas del DragonJAR Security Conference, como la calidad de sus ponentes, todos de habla hispana, los Trainings (talleres especializados sobre las ultimas temáticas de seguridad informática), los eventos alternativos (como el CTF / concursos) y su puesta en escena, hacen que el DragonJAR Security Conference se convierta en el centro de encuentro para los entusiastas de la seguridad informática en Latinoamérica para el segundo trimestre del 2014.


¿Cuáles serán las temáticas del DragonJAR Security Conference?

Algunas de las temáticas que se tocaran en el DragonJAR Security Conference son:

    • Vulnerabilidades 0-Day
    • Pentesting
    • Seguridad en Redes
    • Ingeniería Social
    • Criptografía
    • Seguridad Física
    • Sistemas de gestión de seguridad de información (ISO 27000)
    • Seguridad Móviles
    • Computación Forense
    • Seguridad en Entornos Industriales
    • Seguridad en La Nube
    • Seguridad en Tecnologías Emergentes
    • Desarrollo Seguro



¿Dónde y Cuándo se realizara el DragonJAR Security Conference?

El DragonJAR Security Conference se realizará en las instalaciones de la Universidad de Manizales y estará dividido en 2 partes:

    • La primera parte corresponde a talleres prácticos que se realizarán del 5 al 7 de Mayo.
    • La segunda parte se realizaran las charlas de la conferencia del 8 al 10 de Mayo.


Listado de talleres

Día 1 - 05 de Mayo de 2014

8:30 — 18:30 De 0 a Ninja en Seguridad Inalámbrica (Hacking Wireless) - Sala 1

8:30 — 18:30 Curso de Ethical Hacking, preparado especialmente para rendir el CEH - Parte 1 - Sala 2


Día 2 - 06 Mayo 2014

8:30 — 18:30 De 0 a Ninja con Kali Linux (Pentesting con Kali) - Sala 1

8:30 — 18:30 Python Para Seguridad - Parte 1. - Sala 2

8:30 — 18:30 Desarrollo seguro usando herramientas OWASP. - Sala 3

8:30 — 18:30 Curso de Ethical Hacking, preparado especialmente para rendir el CEH - Parte 1 - Sala 4


Día 3 - 07 Mayo 2014

8:30 — 18:30 De 0 a Ninja en Seguridad Web (Taller de Seguridad Web) - Sala 1

8:30 — 18:30 Python Para Seguridad - Parte 2 - Sala 2

8:30 — 18:30 - Rocking Metasploit like a pro - Sala 3

8:30 — 18:30 Malware Forensic and Incident Response - Sala 4

8:30 — 18:30 Cloud Computing & Infraestructure Security - Sala 5


Valores de Inversión y formas de Pago

Entrada a los 3 días de CONFERENCIAS: La entrada a las conferencias que se realizaran del 8 al 10 de Mayo tienen un valor de $130.000 pesos Colombianos (Aproximadamente 65USD).
Incluye:
- Memorias
- Refrigerios
-Certificado
- Acceso a plataforma educativa con material de consulta sobre las ponencias.
- 3 días de contenido 100% técnico en seguridad informática
Entrada a los TALLERES: La entrada a los talleres que se realizaran del 5 al 7 de Mayo tienen un valor de $400.000 pesos (Aproximadamente 200USD) para talleres de 1 día (8horas) y $800.000 pesos (Aproximadamente 400USD) para talleres de 2 días (16horas).
Incluye:
- Memorias del Taller
- Refrigerios del Taller
- Certificado del Taller
- Camiseta del Evento
- Entrada al ciclo de
charlas (8 al 10 de Mayo) con todo lo que se incluye en ellas.
 
Los ponentes que nos acompañarán el DragonJAR Security Conference 2014 son:

Andrés Gómez – Colombiano que nos visita desde Alemania
Andrés Gómez es ingeniero de sistemas de la Universidad de Antioquia. Trabajó cómo analista de seguridad en la empresa Fluidsignal Group. Actualmente se encuentra iniciando estudios de doctorado en informática en la universidad Goethe de Frankfurt en temas relacionados con seguridad informática e inteligencia artificial, además trabaja en la administración del HLT del experimento ALICE en el CERN (Organización Europea para la Investigación Nuclear). Es miembro del Chaos Computer Club (Frankfurt am Main) y colabora como desarrollador en la distribución de Linux orientada a la seguridad Tails, parte del proyecto Tor.
Camilo Galdos – Perú
Camilo Galdos programador, security researcher y bug hunter, a sus 20 años tiene más de 4 años de experiencia como pentester profesional, a los 14 escribió su primer exploit, el cual publicó su actual blog SeguridadBlanca, participó como moderador en Seguridad Web de la comunidad DragonJAR, ha expuesto en eventos en su país como el LimaHack, PeruHack y en eventos internacionales como son Owasp Latam Tour y Campus Party. Actualmente se encuentra listado en los salones de la fama de Twitter, Ebay, Paypal, Microsoft, Apple, entre otros; Por reportar diferentes fallos de Seguridad, camilo también ha desarrollado diferentes herramientas de Pentesting en diferentes lenguajes incluidos PHP, Python y JavaScript.

Cristian Amicelli Rivero – Argentina
Es Especialista de Seguridad IT, Instructor de Seguridad Informática, Ethical Hacker, Pentester, Investigador de malware y Nerd con toda la pasión. Con más de 10 años de experiencia en el ámbito de la informática, desarrollo de aplicaciones, Análisis de Seguridad e investigaciones de Delitos Tecnológicos y Pericias Informáticas siendo gran parte de esos años en el área de Inteligencia Informática. Realizó distintas capacitaciones en Programación en variados lenguajes, Administración y Seguridad de Sistemas Operativos (Linux, Windows), Ethical Hacker, otras capacitaciones realizadas son Operador de Radares y Dactiloscopia Forense, etc.
Actualmente forma parte del equipo de Mkit Argentina, es miembro de OWASP Latam, tiene gran pasión por la Seguridad y la criptografía, viendo siempre las cosas desde otra perspectiva en búsqueda de ir siempre más allá de los límites de los sistemas, lo que le permite compartir experiencias y conocimientos en el ámbito de la seguridad.

Freddy Grey – Chile
Investigador de 0rnitorrinco LAB, Consultor Senior de Seguridad TI, Miembro del Comité directivo de ISACA e ISC2 Chile, Miembro del comité académico de Segurinfo Chile, Licenciado en Sistemas de Información y Control de Gestión, Contador Público Auditor, Programador y Electrónico, cuenta con las siguientes certificaciones de seguridad y TI vigentes: C|CISO – CISSP – CISM – CISA – CEH – ECSA – LA27001 – ITIL – Cobit5. Posee más de 16 años de experiencia en el mundo de las Tecnologías de la Información, hace más de 11 años en el mercado de la seguridad de la información y gestión de riesgos de TI; Destacando el diseño, análisis y diagnóstico de seguridad de soluciones de tecnologías informáticas y de comunicaciones para empresas del sector público y privado en latino américa y el caribe. Relator invitado a diferentes conferencias y seminarios como: 8.8 Computer Security Conference Chile, Congreso Segurinfo Chile, Seminario de Fraude Informático en Universidad Andrés Bello de Chile, Seminario de Continuidad del Negocio por BCI (Business Continuity Institute) y Seminario de Riesgos Tecnológicos en Universidad de los Lagos de Chile, entre otros.

Marc Rivero López – España
Marc Rivero López trabaja como analista de ecrime y researcher en una empresa de seguridad. Su principal cometido es la realización de informes de inteligencia de temas relacionados con la seguridad, análisis de malware, I+D en tecnologías ofensivas/defensivas en internet y fraude electrónico. Ha formado parte de un reconocido equipo antifraude, implementa medidas de protección y prevención del fraude en un destacado cliente dentro del sector bancario. Ha sido ponente en conferencias como No cON Name, Owasp, ViLaNet, Navaja Negra, HighSec, RECSI y es colaborador habitual en distintas publicaciones del sector como DragonJAR, Security by Default, Flu-Project….

Mateo Martínez – Uruguay
Es un profesional certificado CISSP, ITIL, PCI QSA y MCP con experiencia en el mercado de TI y Seguridad de la Información desde el año 2001. Cuenta con experiencia internacional habiendo ejecutado proyectos de Seguridad de la Información y Planes de Continuidad del Negocio en diversas ciudades como Chicago, Dubai y en la mayoría de las principales ciudades de Latinoamérica. Se ha desempeñado como consultor y como gerente de seguridad en empresas internacionales y actualmente es consultor en Seguridad de la Información en McAfee Foundstone Professional Services.

Nelson Boris Murillo Prieto – Bolivia
Pentester, Ingeniero de Sistemas, Oficial de Seguridad con más de siete años de experiencia dedicados al área de seguridad de la información en empresas de consultoría y banca, cuenta con experiencia en el desarrollo de trabajos de ethical hacking, auditoria, gestión y gobierno de seguridad de la información, recolección y análisis de medios en investigación forense, facilitado en eventos y en capacitaciones de Ethical Hacking y seguridad de la información.

Certificaciones: OSCP Offensive Security Certified Professional, C|EH Certified Ethical Hacker, TCNA Tenable Certified Nessus Auditor, ACE AccessData Certified Examiner

Oscar Leonardo Banchiero – Argentina
Oscar Leonardo Banchiero (CEH/CCNP Security/UCAD, entre otras), es arquitecto de IT especializado en redes y seguridad informática, posee 15 años de experiencia en la implementación y auditoría de infraestructuras y de seguridad. Desempeña sus tareas en Telefónica Argentina, cumpliendo sus funciones con la seguridad informática y administración de redes, en grandes empresas. Es orador nacional y en el exterior (Sudamérica y América Central) sobre seguridad de la información, así como también es Instructor de cursos como Ethical Hacking, Android Security y Wireless Security. Autor de artículos relacionados con la seguridad, white papers y documentos de investigación.


Por Colombia los Speakers que nos acompañarán son:

Efrén A. Sánchez Javela
Socio Fundador y Gerente de la empresa DEFERO S.A.S., con 17 años de experiencia en temáticas relacionadas con Infraestructura y Sistemas de Información, Análisis Forense Digital, Hacking Ético, Sistemas de Gestión de Seguridad de la Información, Auditoria de Sistemas. Ex KPMG, Conferencista en eventos de seguridad informática (Barcamp – Medellín, Seminario Nacional de Informática y Control Tema “Seguridad Informática” – Tunja – Boyacá; 5to Congreso Prevención de Fraude y Seguridad – Asobancaria – IV Encuentro de Delitos Informáticos, Seguridad Informática y Hacking Ético – Cali – I Seminario de Infraestructuras Criticas Organizado por la OEA – Bogotá). Realiza consultorías a diferentes Entidades del Gobierno y Privadas. Director Ejecutivo de la Corporación Hacklab. Miembro Fundador del Capítulo Isaca Medellín – En Formación.

Victoria Pérez
Ingeniera de sistemas con enfoque en sistemas de información, con certificación CEH v7 de ec-council, y certificación de Auditor Interno en ISO 27001:2005 de SGS Colombia. Experiencia en Seguridad Física e integración de Sistemas de Gestión.



Leonardo Huertas Calles
Actualmente se desempeña como CSA – Chief Security Ambassador de Eleven Paths, dedicó 20 años de su vida a trabajar para el Gobierno Colombiano, concretamente en el Ministerio de Defensa Nacional donde se desempeñó como Asesor de Ciberseguridad y Ciberdefensa. Fue el responsable de asesorar técnicamente la “Política Nacional de Ciberseguridad y Ciberdefensa – CONPES 3701″, y posteriormente se encargó de diseñar e implementar el Grupo de Respuesta a Emergencias Cibernéticas de Colombia – colCERT, donde finalizó su carrera en el Gobierno como coordinador del grupo.

Formó parte de misiones técnicas de la OEA para asesorar en la creación de los Centros Nacionales de Respuesta a Incidentes Cibernéticos, fué condecorado con la Medalla Militar “Ministerio de Defensa Nacional” en la Categoría única “Servicios Distinguidos”; se ha desempeñado como profesor universitario e instructor en Diplomados. Actual escritor de el “Blog de SamuraiBlanco” y moderador global de la Comunidad de Seguridad DragonJAR.

Juan David Castro
Joven Entusiasta, Estudiante de Ingeniería de Sistemas, Dedicado a SEO y Seguridad Web A, Actualmente cuenta con Hall Of Fame Microsoft / Adobe / Twitter/ Dropbox / Owncloud y otros servicios más.

Jhon Cesar Arango
Ingeniero de Sistemas, Especialista en Telecomunicaciones de la Universidad Autónoma de Bucaramanga, Especialista en Finanzas de la Universidad de EAFIT , Actualmente asesora y audita diferentes empresas de Colombia y Sur América a través de la firma IT Forensic SAS en el tema de la Seguridad de Redes e Informática, dirige el proyecto “The Hacking Day (www.thehackingday.com)” y el blog blog.thechackingday.com está desarrollando un Libro titulado el “Atacante Informático”, del cual se entrega de forma gratuita a través de la página www.itforensic-la.com/descargas_rv.html y listas reconocidas de seguridad, cofundador integrante organizador del Evento internacional Ack Security Conference www.acksecuritycon.com . Conferencista en seguridad informática en eventos como EKOParty (Buenos Aires), Ethical Hacker Conference (Bolivia), eSecurity Conference (Guayaquil), EISI I II III IV (Manizales), CCBOL (Bolivia), EjeCon 2012 y 2013 (Pereira), ESET Security Day Colombia, CSI 2013, FIAFI(Bolivia) y otros eventos sobre seguridad nacionales e internacionales.

Carlos Mesa
Carlos Mesa es Ingeniero de Sistemas y Telecomunicaciones, fundador y director de la comunidad Bitcoin en Colombia, creyente de las cripto-monedas y ansioso por un futuro con libertad de mercados.

Juan Jacobo Tibaquirá
Ingeniero de Sistemas y Telecomunicaciones con especialidad en Sistemas de Información Geográfica Universidad de Manizales, ha sido un Ingeniero, Desarrollador y Administrador, en el campo de la tecnología de la información durante más de 5 años además de ser instructor con gran experiencia en equipos de desarrollo. Miembro de La Comunidad DragonJAR, una de las comunidades de seguridad informática más grandes de habla hispana y referente en el sector. Ha sido Speaker en diferentes eventos de Seguridad (Tech Day Sun Microsystems Sao Pablo – Brasil, Campus Party Colombia, XVIII Congreso Nacional de Estudiantes de Ingeniería de Sistemas CNEIS Barranquilla – Colombia, Seminario de Seguridad Informática, Popayán, entre muchos otros)

Jaime Andrés Restrepo
Ingeniero en Sistemas y Telecomunicaciones de la Universidad de Manizales. Consultor Independiente de Seguridad Informática con más de 10 años de experiencias en Ethical Hacking, Pen Testing y Análisis Forense Digital. Está actualmente certificado como C|EH, Creador de La Comunidad DragonJAR, una de las comunidades de seguridad informática más grandes de habla hispana y referente en el sector. Ha sido Speaker en diferentes eventos de Seguridad (EKO Party en Argentina, iSummit en Ecuador, 8.8 en Chile, INFOTEK Perú, BSidesPR en Puerto Rico, GuadalajaraCON en México, HubCON en Paraguay, OWASP Latam Tour en Lima, Campus Party México y Colombia, Encuentro Internacional de Seguridad informática, Congreso de Hacking Ético, SegurINFO, entre muchos otros) y además es co-fundador del Encuentro Internacional de Seguridad informática y el ACK Security Conference.

Carlos Mario Penagos Ingeniero de Sistemas de la Universidad Del Norte de Barranquilla, con Tesis laureada en criptografía de curva elíptica con el trabajo Implementación eficiente de algoritmos criptográficos usando curvas de Koblitz, experto en desarrollo de exploits, seguridad SCADA, análisis de malware y criptografía. Actualmente es cofundador y CEO de Synapse-labs.com con sede en Algeria y Egipto, se ha desempeñado como consultor y Ethical Hacker en Australia, Algeria, Egipto y Ecuador para el sector público y privado, es investigador para US-CERT y ICS-CERT del gobierno de los estados Unidos, Le encantan las matemáticas (teoría de códigos, teoría de números, criptografía de curva elíptica e hipereliptica) y el ajedrez japonés Shogi.

domingo, 30 de marzo de 2014

El uso de Bitcoin en Colombia



La superintendencia financiera de Colombia en su CARTA CIRCULAR 29 DE 2014 [1], lanza varias advertencias con respecto al uso de Bitcoin en Colombia. A continuación realizo un análisis del documento:

El documento afirma: 
" Las monedas virtuales no se encuentran respaldadas por activos físicos, por un banco central, ni los activos o reservas de dicha autoridad, por lo que el valor de intercambio de las mismas podría reducirse drásticamente e incluso llegar a cero. Por lo anterior, las personas se exponen a altas volatilidades en el precio del instrumento, dada la amplia especulación que se mantiene". 
 
Ninguna moneda moderna se encuentra respaldada por activos físicos. Hace más de medio siglo las reservas de oro soportaban los activos de moneda de un país (suponiendo que el valor del oro no es igual de subjetivo). Sin embargo, hoy en día el valor del dinero se mide en deuda, la cantidad de dinero que deben las personas y la probabilidad de que paguen o no. Todo valor monetario se basa en la percepción de las personas y su nivel de confianza en el sistema. Uno muy bien podría transar con bananos, manzanas o mangos si se dispone de la suficiente confianza en estos medios. Así mismo todas las monedas tienen riesgo de volatilidad y que se su valor llegue a cero (¿Recordamos acaso lo que paso con la crisis mundial de 2008 y lo que pasa con el Bolivar en Venezuela?). Bitcoin es igual en este sentido, la moneda virtual tendrá el valor que las personas le asignan, con una diferencia, no existen entidades centrales ni grandes corporaciones privadas que puedan alterar arbitrariamente su valor, todo se autorregula dependiendo del mercado.

Por otro lado el documento continua:
"Ninguna de las plataformas transaccionales, ni comercializadores de las “monedas virtuales" como el Bitcoin se encuentran reguladas por la ley colombiana. Tampoco se encuentran sujetas al control, vigilancia o inspección de esta Superintendencia. Por lo anterior, tales plataformas pueden no contar con estándares o procesos seguros y de mitigación de riesgos, por lo que con regularidad presentan fallas que llevan a que los usuarios de las mismas incurran en pérdidas. Un ejemplo de lo anterior, se evidencia con MT. Gox, una de las plataformas transaccionales conocidas de moneda virtual, que cerró recientemente, generando grandes pérdidas a los usuarios."

MT. Gox o cualquier entidad de intercambio de Bitcoins por dolares no son lo mismo que Bitcoin. Son entidades que utilizan la moneda virtual para su modelo de negocio y como todas tienen riesgos. Realizar compras por internet con tarjetas de crédito válidas tienen exactamente el mismo riesgo. Una persona siempre está expuesta a recibir algo por debajo de sus expectativas o no recibir absolutamente nada. Y la superintendencia tiene exactamente las mismas limitaciones para regular sobre una tienda virtual fuera de Colombia. Además, todas las personas están expuestas al robo de su dinero, ya sea físico o digital.

Otro aparte:
" Las transacciones en las plataformas son anónimas, por lo que el uso de “monedas virtuales” se puede prestar para adelantar actividades ilícitas o fraudulentas, incluso para captaciones no autorizadas de recursos, lavado de dinero y financiación del terrorismo. De acuerdo con información pública divulgada en los medios de comunicación, algunos administradores de plataformas transaccionales y de portales de venta de mercancía que vienen utilizando “monedas virtuales” como medio de pago de operaciones han sido acusados por conductas relacionadas con el uso que se le ha dado a estos instrumentos. Los compradores o vendedores de “monedas virtuales” se exponen a riesgos operativos, principalmente a que las billeteras digitales sean robadas (hackeadas), tal como ya ha ocurrido; y a que las transacciones no autorizadas o incorrectas no puedan ser reversadas."

¿Alguien quiere hacer el ejercicio de aplicar todas las afirmaciones anteriores al peso colombiano, cualquier otra moneda o medio de pago virtual, y decir si encuentra una sola diferencia? Las monedas "aceptadas" se han prestado, prestan y prestarán para actividades ilícitas y fraudulentas, lavado de activos, financiación del terrorismo, etc. Así mismo cualquier entidad "avalada" puede ser víctima de un ataque informático. ¿Cuantas personas en Colombia fueron víctimas de delitos informáticos por el uso de tarjetas de crédito? Más de una si me preguntan. Lamentablemente pasa lo mismo con Bitcoin, así como en cualquier organización y sistema detrás de los cuales haya personas y activos que tengan un valor para alguien. Bitcoin es una obra de ingeniería que utiliza los últimos adelantos en criptografía para proveer a las personas de un medio para realizar transacciones comerciales descentralizadas, sin la necesidad de un intermediario o entidad central. Como tal no pretende resolver todos los problemas de criminalidad que atacan cualquier medio de intercambio económico, simplemente porque estos persistirán mientras detrás de ellos hallan seres humanos.

En conclusión, la CIRCULAR 29 DE 2014 es un escrito sesgado y desinformado, que no aporta nada a los ciudadanos Colombianos, simplemente pretende generar miedo sobre tecnologías emergentes, con argumentos completamente absurdos. Mientras otros países aprenden a utilizar estas nuevas tecnologías para traer beneficios a sus ciudadanos, nuestras instituciones y gobierno aun se mantienen en la época de la inquisición.
Kurono.

miércoles, 6 de noviembre de 2013

El gran colisionador de hadrones

¿Cómo surgió el universo en el que vivimos? ¿De qué está compuesta la materia? Estas son preguntas que la humanidad ha tratado de responder durante muchas generaciones. Una buena cantidad de explicaciones se han dado para responder estos interrogantes, pero solo hasta el siglo pasado surgió una que se muestra como la correcta: El universo y la materia como la conocemos fueron creadas por una gran explosión o “Big Bang”. Toda la energía existente se encontraba reunida en un solo punto, al estallar y expandirse creó todas las estrellas, planetas, galaxias y demás componentes del universo.

Ahora, ¿Cómo se demuestra que esta explicación es la correcta? La ciencia se basa en la observación y experimentación para explicar los fenómenos que ocurren en nuestra realidad. En el caso del universo, las observaciones de los astrónomos mostraron que éste se encuentra en continua expansión, tal como si fuera un globo, llevando a la conclusión de que en un punto en el tiempo, hace millones de años, el universo era muy pequeño y muy caliente, generando posteriormente una gran explosión.

Sin embargo, para entender mejor este fenómeno se requería de la experimentación, pero ¿Cómo se puede experimentar en algo como el origen del universo? Pues esa es la tarea del gran colisionador de hadrones (LHC – Large Hadron Collider), el más grande y más ambicioso proyecto científico de la humanidad. El LHC es un anillo de imanes, ubicado 100 metros bajo tierra en un túnel de 27 kilómetros de circunferencia en el laboratorio europeo para la investigación nuclear CERN, cerca de Ginebra, Suiza, donde laboran miles de físicos, ingenieros y técnicos. Su objetivo es acelerar protones a una velocidad cercana a la luz, y hacer que estos colisionen, lo que produce la liberación de sub-partículas y grandes cantidades de energía, las cuales permiten simular a escala muy pequeña los primeros instantes del universo. La temperatura alcanzada en esta reacción es de 15 millones de grados centígrados, o el equivalente a 100 mil veces la temperatura del centro del sol. Los imanes del LHC funcionan a una temperatura de 271 grados centígrados bajo cero, lo que lo convierte en el lugar más frío del universo conocido.

Las colisiones dentro del LHC se realizan principalmente en cuatro experimentos llamados CMS, ATLAS, LHCb y ALICE. Uno de los objetivos finales de los experimentos es encontrar nuevos subcomponentes del átomo, tales como el Bosón de Higgs, hallado recientemente en CMS y ATLAS y que nos ha permitido entender mejor como está constituida la materia.

El último de estos experimentos, ALICE, tiene la tarea de estudiar cómo las partículas elementales interaccionan bajo la influencia de una de las fuerzas fundamentales de la naturaleza, llamada “fuerte”. En ALICE se genera una cantidad tan grande de información por segundo (3 Terabytes), que es imposible almacenar cada detalle. Por esto es necesario analizar y escoger solo los datos más relevantes. Aun así, si se decidiera almacenar en CDs la información relevante recopilada cada año y se decidiera apilarlos uno encima del otro, al final tendrían una altura de 4 kilómetros.
El sistema encargado de realizar esta selección es un conjunto de equipos computacionales llamado High Level Trigger (HLT). HLT analiza, selecciona y comprime los datos de las colisiones que luego son enviados a centros de investigación alrededor del mundo para ser analizados por físicos. El HLT está compuesto por cientos de computadores y dispositivos embebidos, trabajando sincronizadoramente para reducir la cantidad de información a analizar. Este sistema está diseñado y administrado por varios centros de investigación en el mundo, uno de ellos en la Universidad Goethe de Frankfurt, donde laboran dos ingenieros de sistemas colombianos, Camilo Lara y Andrés Gómez. Su labor principal consiste en diseñar y administrar los equipos de cómputo, dispositivos físicos de captura y compresión de datos, entre otros, como también en participar en la especificación de las actualizaciones que se realizan al experimento cuando este se encuentra apagado, donde comúnmente se incrementa la potencia y la precisión de la maquinaria.

Por otro lado el CERN ha tenido contacto con físicos teóricos en Colombia por varios años. En 1993, un acuerdo de cooperación fue firmado entre el CERN y el departamento administrativo de ciencia, tecnología e innovación, COLCIENCIAS. Una visita a Colombia en 2005 brindó la oportunidad de activar la colaboración experimental con el CERN y el programa HELEN (2005-2009), permitiendo a varios jóvenes Colombianos trasladarse al laboratorio en suiza. Un grupo de la Universidad de los Andes en Bogotá fue posteriormente aceptado en CMS Collaboration y otro grupo de la Universidad Antonio Nariño, también de Bogotá, se unió a ATLAS en 2007. Ningún grupo de investigación en Colombia participa actualmente en ALICE, así como no hay colaboración de universidades públicas colombianas con CERN.

sábado, 24 de agosto de 2013

La NSA y el argumento del terrorismo

El tabaco mata a casi 6 millones de personas cada año [1]. 1,24 millones de personas mueren en accidentes de tránsito [2]. El consumo bebidas alcohólicas causa 2,5 millones de muertes [3]. 500 mil personas mueren cada año por armas de fuego [4]. 15 mil mueren anualmente por terrorismo en el mundo [5].

Cada una de estas muertes es trágica sin importar quien la sufre. Entonces, podríamos preguntarnos: ¿Qué sería necesario, así fuese radical, para para salvar la vida de éstas personas? Una alternativa  sería la de prohibir el consumo de tabaco y alcohol, eso nos llevaría a salvar la vida de 8,5 millones de personas cada año. Podríamos además prohibir a las personas el uso de vehículos, lo que nos llevaría ahora a salvar 9,74 millones. Suena interesante, por qué no además, prohibir el uso de armas de fuego, entonces salvaríamos otras 500 mil vidas por año. Finalmente tendríamos que pensar una solución para el terrorismo, si hacemos caso al concepto de la NSA, entonces la solución sería abolir la privacidad de toda la humanidad.

Ahora bien, ¿Qué pasa si llevamos éstas propuestas a la realidad? Podría adivinar que habría multitudes de personas, empresas e incluso políticos absolutamente furiosos. No tardaría mucho tiempo antes de que algunos gobiernos comenzaran a caer, si se niegan a dar marcha atrás. Y tendrían razón. Todas éstas propuestas son absurdas, porque tratan de solucionar un problema creando otro, quitarle la libertad a las personas. Por supuesto sin mencionar la dificultad absoluta de llevar a cabo dichas restricciones. Ahora, si analizamos con detenimiento, dentro de los derechos que tienen las personas a fumar y a beber, a conducir vehículos, a portar armas de fuego - en algunos países -, y el derecho a llevar una vida privada, libre y sin intromisiones, el único de éstos consagrados en la declaración universal de los derechos humanos es precisamente el último. Y aunque parezca irreal, es lo que estamos viendo con programas gubernamentales como PRISM.

Así que finalmente el argumento de la NSA para la creación del programa PRISM y similares - combatir el terrorismo - es un completo sinsentido. El argumento de la seguridad - salvar vidas - contra la libertad, simplemente carece de sentido cuando es preferible sacrificar la privacidad que el derecho a beber, fumar, conducir y portar armas.


martes, 16 de julio de 2013

DirectShow Arbitrary Memory Overwrite Vulnerability ms13-056

Introduction:

The Microsoft DirectShow application programming interface (API) is a media-streaming architecture for Microsoft Windows. Using DirectShow, your applications can perform high-quality video and audio playback or capture.  

Overview:

DirectShow in Microsoft Windows XP SP2 and SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8, and Windows Server 2012 allows remote attackers to execute arbitrary code via a crafted GIF file, aka "DirectShow Arbitrary Memory Overwrite Vulnerability." 

Disclosure Timeline

2013-03-20 - Vulnerability reported to vendor
2013-07-09 - Coordinated public release of advisory

Details:  

Microsoft's DirectShow API is vulnerable to arbitrary memory overwrite when reading specially crafted GIF files. I have attached a GIF which triggers the vulnerability. To open it you can use Media Player Classic which utilizes DirectShow API to render GIF files. I tested it on Windows XP SP3 and Windows 7 SP1 Spanish version. The corresponding output from WindDbg in Windows XP is:



ModLoad:    72c90000 72c98000      C:\WINDOWS\system32\msacm32

drv
ModLoad:   77bb0000 77bc5000       C:\WINDOWS\system32\MSACM32.dll
ModLoad:   77ba0000 77ba7000       C:\WINDOWS\system32\midimap.dll
ModLoad:   73e60000 73e64000       C:\WINDOWS\system32\KsUser.dll
ModLoad:   60830000 608bc000       C:\WINDOWS\system32\qedit.dll
ModLoad:   75ed0000 75ef1000        C:\WINDOWS\system32\MSVFW32.dll

(bd0.bf4): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling.

This exception may be expected and handled.

eax=ff414141 ebx=fffffa60 ecx=00000000 edx=fea57028 esi=fea57028 edi=000000ef
eip=60864094 esp=0274ec0c ebp=0274ed3c iopl=0         nv up ei ng nz ac pe cy
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010297

qedit!CImgGif::ReadImage+0x288:
60864094 8902            mov     dword ptr [edx],eax  ds:0023:fea57028=????????


The issue occurs inside qedit.dll when trying to read GIF header data, in CImgGif::ReadImage+0x288. This writes in memory position edx=fea57028 the value eax=ff414141 both of them controlled by the user. eax=fea57028 can be modified in the GIF file in the position 0x32C corresponding to NW corner of frame at 0, 0 and eax=ff414141 can be modified in the position 0x307 corresponding to Global Color Table. With these two values controlled by an attacker, arbitrary code execution could be achieved, with the privileges of the user running the application (in this case MPC).
    
References:
  • https://technet.microsoft.com/en-us/security/bulletin/ms13-056 
  • http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-3174
Fix:

http://technet.microsoft.com/en-us/security/bulletin/ms13-056

PoC:



viernes, 14 de junio de 2013

Multiple vulnerabilities in OpenCV

I worked with OpenCv some time ago and I decided to carry out a little security audit. The tool used was flawfinder with the following command line:

flawfinder -m 3 --html --quiet --dataonly --context opencv-2.4.4/ > opencv-flaws.html

This analyses the source code and returns a lot of results, most of them false positive. But there are already several vulnerabilities I checked as real:

In the file opencv-2.4.4/modules/legacy/src/oneway.cpp line 1795:
if (fscanf(pFile, "%s", imagename) <= 0) 
There is a buffer overflow when reading long files names from a list of files. For example when executing:

./c-example-one_way_sample location scene_l.bmp scene_r.bmp
Reading the images...
Extracted 42 keypoints...
Training one way descriptors...
buffer overflow detected ***: 
./c-example-one_way_sample terminated
This program reads a file called "one_way_train_images.txt" which its content is:

one_way_train_0000AAAAAAAAAAA...AAAAAAAAAAAAAAAAAAAAAAAAAA.jpg
one_way_train_0001BBBBBBBBBBB...BBBBBBBBBBBBBBBBBBBBBBBBBB.jpg

In the file opencv-2.4.4/modules/highgui/src/cap_images.cpp line 114:

sprintf(str, filename, firstframe + currentframe);  

There is a format string when reading special files names. For example:

./c-example-adaptiveskindetector C:\VideoSequences\sample1\right_view\temp_%05d%n%s%s%s%s%s.jpg 0 1000
Press ESC to stop.
%n in writable segment detected ***
Abortado
These bugs could be exploited to execute arbitrary code.

Although of less concern, also there are vulnerabilities in the samples, here are two I found:

opencv-2.4.4/samples/cpp/hybridtrackingsample.cpp line 82, a buffer overflow:

sprintf(test_file, "%s", argv[1]);
 
opencv-2.4.4/samples/cpp/hybridtrackingsample.cpp line 85 another buffer overflow:

int values_read = fscanf(f, "%s\n", vid); 

References: 
http://code.opencv.org/issues/2968