Your SlideShare is downloading. ×
0
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Computacion Parasitaria
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Computacion Parasitaria

617

Published on

Diapositivas de mi charla sobre computación parasitaria en Campus Party 04 (2011) en Bogotá, CO.

Diapositivas de mi charla sobre computación parasitaria en Campus Party 04 (2011) en Bogotá, CO.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
617
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. Computación ParasitariaDaniel Torres Falkonert (bytemare) bytemare@lownoisehg.orgtwitter: @bytemarehackhttp://www.lownoisehg.org<br />
  2. Grupo de Investigación (Hacking only)<br /> Creado en 1995<br /> Multidisciplinario (No sólo Ingenieros)<br /> Objetivo Común:<br />Seguridad vs. Inseguridad<br /> Sin Ánimo de Lucro<br /> Recursos Propios<br /> Sin Afiliación a Empresas/Entidades<br />¿ Qué es LowNoise HG ?<br />
  3. Sobre bytemare<br />Descubrí el gusto por los computadores desde los 4 años (Gracias papá!!)<br />En el mundo de la seguridad desde el año 96<br />Ingeniero de Sistemas (Uniandes)<br />Especialista en seguridad de la información (Uniandes)<br />Trabajo en Informática Forense desde el 2003<br />Mi primer computador<br />
  4. Disclaimer<br />Todo lo que se hable y se muestre en esta charla es el resultado de investigaciones con fines educativos.<br />Todo descubrimiento realizado, ha sido y será usado de forma legal, por LNHG.<br />La audiencia debe asumir todo lo se exponga hoy, como “falso” y “sin fundamento” hasta que lo compruebe personalmente.<br />
  5. Definición: Parasitismo<br />Proceso por el cual una especie amplía su capacidad de supervivencia utilizando a otras especies para que cubran sus necesidades básicas y vitales.<br />http://es.wikipedia.org/wiki/Parasitismo<br />
  6. Definición: Computación parasitaria<br />Es la manera en que un atacante podría aprovecharse de los recursos de procesamiento y/o ancho de banda de uno o más sistemas conectados a Internet, sin necesidad de romper la seguridad de estos.<br />
  7. Pero eso no es lo que hace el malware?<br />SI!!, pero a diferencia del “malware” tradicional no habría necesidad de llegar a comprometer la seguridad de los sistemas para poder utilizar sus recursos debido a que se utilizaría solamente el acceso a partes del servicio que estén explícitamente disponibles para ser accedidas a través de Internet.<br />
  8. Antecedentes<br />El término surgió a raíz de una publicación que salió en el año 2001 en la revista nature.<br />Se afirma que es posible aprovecharse de los algoritmos para la verificación de errores en los datos del protocolo TCP.<br />
  9. La idea Original<br />Al Insertar datos controlados dentro de los paquetes es posible poder realizar operaciones booleanas básicas a través del algoritmo de detección de errores de TCP.<br />El destino hará una verificación de integridad de los datos:<br />Los que fallen la prueba serán descartados (Respuesta erronea)<br />Los que la pasen seran aceptados y se enviará una respuesta (Respuesta correcta)<br />
  10. La idea Original (Cont.)<br />Al aprovechar de manera distribuida (y masiva) esta capacidad de cómputo , se podrían resolver problemas muy Complejos (Del tipo NP Completo)<br />
  11. Ejemplo [2]<br />Veamos como funciona<br />
  12. Configuración inicial<br />El parasito y el destino se pueden “ver” por la red<br />
  13. Paso 1: Apertura de conexión TCP modificada<br />Pasos<br />Abrir la conexión TCP desde el parásito<br />Intercambiar 3 mensajes (3-Way Handshake)<br />Extraer el número de secuenciainicial (ISN) del host (Se necesitaparacomunicarsemásadelante)<br />
  14. Paso 1: Abrir la conexión<br />Enviar segmento SYN<br />
  15. Paso 1: Abrir la conexión<br />Recibir el segmento SYN y extraer el ISN<br />
  16. Paso 1: Abrir la conexión<br />Enviar Segmento ACK. Conexión abierta, listo para transmitir!<br />
  17. Paso 2: Preparar el segmento TCP<br />Calcular checksum:<br />Normalmente:<br />Rellenar con ceros el campo del checksum<br />Sumar el segmento (En bloques de 16-bits)<br />Insertar el resultado en el campo del checksum<br />Modificación (Para el ataque)<br />Rellenar con ceros el campo del checksum<br />Poner la posiblerespuesta en el campo de datos, rellenandoparaobtener la longitudadecuada.<br />Sumar el segmento (En bloques de 16-bits)<br />Insertar el resultado en el campo del checksum<br />
  18. Paso 2: Preparar el segmento TCP<br />Checksum: Se determina por el problema a resolver (Ecuación booleana)<br />Data: Las variables que se someterán a prueba<br />
  19. Paso 3: Computar<br />Hay 2 casos:<br />Respuesta Positiva: Las variables satisfacen la ecuación<br />Respuesta negativa: Las variables no satisfacen la ecuación<br />
  20. Paso 3a: Computar (Repuesta positiva)<br />Enviar el segmento TCP Modificado<br />
  21. Paso 3a: Computar (Respuesta positiva)<br />Segmento TCP Válido, se pasa a la capa de aplicación<br />
  22. Paso 3a: Computar (Respuesta positiva)<br />Respuesta del protocolo de aplicación. Al recibirla se sabe que la respuesta satisface la ecuación.<br />
  23. Paso 3b: Computar (Respuesta negativa)<br />Se envía el segmento modificado<br />
  24. Paso 3b: Computar (Respuesta negativa)<br />Segmento inválido!!! Se descarta en la capa de transporte<br />
  25. Paso 3b: Computar (Respuesta negativa)<br />Expira el temporizador en el parasito. Asume que la respuesta es incorrecta.<br />Hay que tener en cuenta que la respuesta podría perderse y el parásito pensar que la respuesta es negativa (Falso negativo)<br />
  26. Suena bien, cierto?<br />Sin embargo, la solución no es viable debido a un pequeño problema<br />
  27. ¡¡¡¡¡La eficiencia!!!!!<br />la capacidad de cómputo necesaria para implementar la generación de los paquetes, es proporcional al poder de cómputo necesaria para resolver el problema.<br />Además el uso del ancho de banda sería excesivo<br />
  28. Pero no todo está perdido<br />Esto sirvió de inspiración para otras ideas interesantes<br />
  29. Almacenamiento Parasitario<br />La Red como medio de almacenamiento<br />
  30. Malabarismo con paquetes [3]<br />Salewsky y Purczynski propusieron diferentes vectores de ataque que se aprovecharían de la capacidad de almacenamiento que pueda tener una red.<br />
  31. La Idea<br />El artículo se basa en la observación de que en las comunicaciones en la red existe un retardo mayor que cero entre el envío de un requerimiento y la recepción de la respuesta (RTT).<br />Este podría aprovecharse para almacenar datos temporalmente en la red<br />Se definen 2 tipos de almacenamiento<br />
  32. Tipos de almacenamiento flotante<br />Clase A<br />Aprovecha características de algunos protocolos que envían como respuesta los mismos datos que estaban en el requerimiento inicial:<br />TCP: Syn+Ack, Rst+Ack<br />ICMP: Echo Request/Reply<br />Errores en HTTP, FTP o SMTP<br />
  33. Ejemplo almacenamiento clase A<br />Una de los opciones que dan los autores para utilizar a la red como medio de almacenamiento, es mediante la utilización de una propiedad que posee el Protocolo ICMP al realizar una petición de tipo 8 (echo<br />request) y recibir una respuesta de tipo 0 (echo reply), también conocida como ping. <br />
  34. Recordemos el Ping<br />2 Tipos de mensajes<br />Echo request, tipo 8<br />Echo Reply, tipo 0<br />
  35. Ping<br />Tiene una característica interesante:<br />Si se envían datos como carga en la petición “echo request”, la respuesta, el “echo reply”, contendrá estos mismos datos que se enviaron originalmente.<br />En teoría puede funcionar como un flip-flop pero en la red<br />
  36. Malabarismo con icmp<br />Si se realizan varios requerimientos Echo request/Reply, en teoría se puede generar un sistema de almacenamiento.<br />Para compensar las pérdidas se pueden usar algoritmos tipo IDA (InformationDispersalAlgorithm) [4]<br />Esta implementación se encuentra en desarrollo por LowNOISEHG<br />
  37. Tipos de almacenamiento flotante<br />Clase B<br />Utiliza colas de datos inactivas para almacenar información por un periodo considerable de tiempo. Esto basándose en protocolos que almacenen los datos recibidos y en caso de error los retornen al origen, pero con la propiedad de mantenerlos almacenados si no pueden contactarlo.<br />
  38. Almacenamiento clase B: SMTP<br />
  39. Propiedades almacenamiento Flotante<br />Tipo A<br />Baja latencia (de milisegundos a minutos)<br />Baja capacidad por sistema (No muy útil para almacenamiento masivo)<br />No muy confiable si la red presenta muchas pérdidas<br />Poca probabilidad de almacenamiento permanente (Anti-forense)<br />Tipo B<br />Latencia alta (De minutos a horas)<br />Alta capacidad de almacenamiento con tiempo de vida considerable<br />Varios intentos de acceso<br />Alta probabilidad de dejar rastros en el hosts<br />
  40. Capacidad de almacenamiento Estimada<br />Se utilizó la siguiente ecuación:<br />Cmax = L * Tmax / (Psize* Dsize)<br />Donde:<br />Cmax : Capacidad máxima en bytes<br />L: Ancho de banda en bytes por segundo<br />Tmax: Máximo tiempo de vida de un paquete en segundos<br />Psize: Tamaño requerido de un paquete para almacenar los datos iniciales<br />Dsize: tamaño requerido de los paquetes para mantener la información<br />
  41. DEMO<br />Un ejemplo de robo de recursos de manera parasitaria a través de http y html5, a través del uso de un acortador de URLs diseñado para este fin.<br />
  42. Conclusiones<br />Muchas veces la diferencia entre un bug y una funcionalidad es muy difusa.<br />Genera varios interrogantes sobre la propiedad de los recursos en internet.<br />Es una técnica similar a la utilizada por BOINC (SETI@home) pero con diferente filosofía.<br />No necesariamente es una amenaza para la seguridad, pero es bueno conocer su existencia.<br />Muchos de sus conceptos son solo ideas que no tienen una forma eficiente de implementarse, pero en teoría es posible realizarlos<br />Mitigarla puede ser un problema MUY complejo debido a que se aprovecha de características fundamentales de los protocolos.<br />…<br />
  43. Referencias<br />[1] http://www.nature.com/nature/journal/v412/n6850/abs/412894a0.html<br />[2] http://www.nd.edu/~parasite/tcp.pdf<br />[3] http://lcamtuf.coredump.cx/juggling_with_packets.txt <br />[4] http://portal.acm.org/citation.cfm?id=62050<br />
  44. Preguntas<br />
  45. Aquí encontrarán publicadas las charlas de LowNOISE<br />http://www.lownoisehg.org/CampusParty2011/<br />
  46. Muchas Gracias!!!<br />bytemare@lownoisehg.orgtwitter: @bytemarehackhttp://www.lownoisehg.org<br />

×