SlideShare une entreprise Scribd logo
1  sur  47
Computación ParasitariaDaniel Torres Falkonert (bytemare) bytemare@lownoisehg.orgtwitter: @bytemarehackhttp://www.lownoisehg.org
Grupo de Investigación (Hacking only)  Creado en 1995  Multidisciplinario (No sólo Ingenieros)  Objetivo Común: Seguridad vs. Inseguridad  Sin Ánimo de Lucro  Recursos Propios  Sin Afiliación a Empresas/Entidades ¿ Qué es LowNoise HG ?
Sobre bytemare Descubrí el gusto por los computadores desde los 4 años (Gracias papá!!) En el mundo de la seguridad desde el año 96 Ingeniero de Sistemas (Uniandes) Especialista en seguridad de la información (Uniandes) Trabajo en Informática Forense desde el 2003 Mi primer computador
Disclaimer Todo lo que se hable y se muestre en esta charla es el resultado de investigaciones con fines educativos. Todo descubrimiento realizado, ha sido y será usado de forma legal, por LNHG. La audiencia debe asumir todo lo se exponga hoy, como “falso” y “sin fundamento” hasta que lo compruebe personalmente.
Definición: Parasitismo 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. http://es.wikipedia.org/wiki/Parasitismo
Definición: Computación parasitaria 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.
Pero eso no es lo que hace el malware? 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.
Antecedentes El término surgió a raíz de una publicación que salió en el año 2001 en la revista nature. Se afirma que es posible  aprovecharse de los algoritmos para la verificación de errores en los datos del protocolo TCP.
La idea Original 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. El destino hará una verificación de integridad de los datos: Los que fallen la prueba serán descartados (Respuesta erronea) Los que la pasen seran aceptados y se enviará una respuesta (Respuesta correcta)
La idea Original (Cont.) Al aprovechar de manera distribuida (y masiva) esta capacidad de cómputo , se podrían resolver problemas muy Complejos (Del tipo NP Completo)
Ejemplo [2] Veamos como funciona
Configuración inicial El parasito y el destino se pueden “ver” por la red
Paso 1: Apertura de conexión TCP modificada Pasos Abrir la conexión TCP desde el parásito Intercambiar 3 mensajes (3-Way Handshake) Extraer el número de secuenciainicial (ISN) del host (Se necesitaparacomunicarsemásadelante)
Paso 1: Abrir la conexión Enviar segmento SYN
Paso 1: Abrir la conexión Recibir el segmento SYN y extraer el ISN
Paso 1: Abrir la conexión Enviar Segmento ACK.  Conexión abierta, listo para transmitir!
Paso 2: Preparar el segmento TCP Calcular checksum: Normalmente: Rellenar con ceros el campo del checksum Sumar el segmento (En bloques de 16-bits) Insertar el resultado en el campo del checksum Modificación (Para el ataque) Rellenar con ceros el campo del checksum Poner la posiblerespuesta en el campo de datos, rellenandoparaobtener la longitudadecuada. Sumar el segmento (En bloques de 16-bits) Insertar el resultado en el campo del checksum
Paso 2: Preparar el segmento TCP Checksum: Se determina por el problema a resolver (Ecuación booleana) Data: Las variables que se someterán a prueba
Paso 3: Computar Hay 2 casos: Respuesta Positiva: Las variables satisfacen la ecuación Respuesta negativa: Las variables no satisfacen la ecuación
Paso 3a: Computar (Repuesta positiva) Enviar el segmento TCP Modificado
Paso 3a: Computar (Respuesta positiva) Segmento TCP Válido, se pasa a la capa de aplicación
Paso 3a: Computar (Respuesta positiva) Respuesta del protocolo de aplicación. Al recibirla se sabe que la respuesta satisface la ecuación.
Paso 3b: Computar (Respuesta negativa) Se envía el segmento modificado
Paso 3b: Computar (Respuesta negativa) Segmento inválido!!! Se descarta en la capa de transporte
Paso 3b: Computar (Respuesta negativa) Expira el temporizador en el parasito. Asume que la respuesta es incorrecta. Hay que tener en cuenta que  la respuesta podría perderse y el parásito pensar que la respuesta es negativa (Falso negativo)
Suena bien, cierto? Sin embargo, la solución no es viable debido a un pequeño problema
¡¡¡¡¡La eficiencia!!!!! 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. Además el uso del ancho de banda sería excesivo
Pero no todo está perdido Esto sirvió de inspiración para otras ideas interesantes
Almacenamiento Parasitario La Red como medio de almacenamiento
Malabarismo con paquetes [3] Salewsky y Purczynski propusieron diferentes vectores de ataque que se aprovecharían de la capacidad de almacenamiento que pueda tener una red.
La Idea 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). Este podría aprovecharse para almacenar datos temporalmente en la red Se definen 2 tipos de almacenamiento
Tipos de almacenamiento flotante Clase A Aprovecha características de algunos protocolos que envían como respuesta los mismos datos que estaban en el requerimiento inicial: TCP: Syn+Ack, Rst+Ack ICMP: Echo Request/Reply Errores en HTTP, FTP o SMTP
Ejemplo almacenamiento clase A 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 request) y recibir una respuesta de  tipo 0 (echo reply), también conocida como ping.
Recordemos el Ping 2 Tipos de mensajes Echo request, tipo 8 Echo Reply, tipo 0
Ping Tiene una característica interesante: 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. En teoría puede funcionar como un flip-flop pero en la red
Malabarismo con icmp Si se realizan varios requerimientos Echo request/Reply, en teoría se puede generar un sistema de almacenamiento. Para compensar las pérdidas se pueden usar algoritmos tipo IDA (InformationDispersalAlgorithm) [4] Esta implementación se encuentra en desarrollo por LowNOISEHG
Tipos de almacenamiento flotante Clase B 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.
Almacenamiento clase B: SMTP
Propiedades almacenamiento Flotante Tipo A Baja latencia (de milisegundos a minutos) Baja capacidad por sistema (No muy útil para almacenamiento masivo) No muy confiable si la red presenta muchas pérdidas Poca probabilidad de almacenamiento permanente (Anti-forense) Tipo B Latencia alta (De minutos a horas) Alta capacidad de almacenamiento con tiempo de vida considerable Varios intentos de acceso Alta probabilidad de dejar rastros en el hosts
Capacidad de almacenamiento Estimada Se utilizó la siguiente ecuación: Cmax = L * Tmax / (Psize* Dsize) Donde: Cmax : Capacidad máxima en bytes L:  Ancho de banda en bytes por segundo Tmax: Máximo tiempo de vida de un paquete en segundos Psize: Tamaño requerido de un paquete para almacenar los datos iniciales Dsize: tamaño requerido de los paquetes para mantener la información
DEMO 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.
Conclusiones Muchas veces la diferencia entre un bug y una funcionalidad es muy difusa. Genera varios interrogantes sobre la propiedad de los recursos en internet. Es una técnica similar a la utilizada por BOINC (SETI@home) pero con diferente filosofía. No necesariamente es una amenaza para la seguridad, pero es bueno conocer su existencia. Muchos de sus conceptos son solo ideas que no tienen una forma eficiente de implementarse, pero en teoría es posible realizarlos Mitigarla puede ser un problema MUY complejo debido a que se aprovecha de características fundamentales de los protocolos. …
Referencias [1] http://www.nature.com/nature/journal/v412/n6850/abs/412894a0.html [2] http://www.nd.edu/~parasite/tcp.pdf [3] http://lcamtuf.coredump.cx/juggling_with_packets.txt  [4] http://portal.acm.org/citation.cfm?id=62050
Preguntas
Aquí encontrarán publicadas las charlas de LowNOISE http://www.lownoisehg.org/CampusParty2011/
Muchas Gracias!!! bytemare@lownoisehg.orgtwitter: @bytemarehackhttp://www.lownoisehg.org

Contenu connexe

Tendances (6)

Laboratorio comunicacion
Laboratorio comunicacionLaboratorio comunicacion
Laboratorio comunicacion
 
Python (Lenguaje de Programación)
Python (Lenguaje de Programación)Python (Lenguaje de Programación)
Python (Lenguaje de Programación)
 
Practica 3 irdt
Practica 3 irdtPractica 3 irdt
Practica 3 irdt
 
Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012Clase 1 Curso Introducción a Python 2012
Clase 1 Curso Introducción a Python 2012
 
Unidad V Tutorial de Python
Unidad V Tutorial de PythonUnidad V Tutorial de Python
Unidad V Tutorial de Python
 
Proyecto 2 SEIN
Proyecto 2 SEINProyecto 2 SEIN
Proyecto 2 SEIN
 

En vedette

Adult Ed Catalog-hyperlinks-lock
Adult Ed Catalog-hyperlinks-lockAdult Ed Catalog-hyperlinks-lock
Adult Ed Catalog-hyperlinks-lock
Kandace York
 

En vedette (20)

Adult Ed Catalog-hyperlinks-lock
Adult Ed Catalog-hyperlinks-lockAdult Ed Catalog-hyperlinks-lock
Adult Ed Catalog-hyperlinks-lock
 
The Jewelry Industry of Jaipur
The Jewelry Industry of JaipurThe Jewelry Industry of Jaipur
The Jewelry Industry of Jaipur
 
Trabajo de excel
Trabajo de excelTrabajo de excel
Trabajo de excel
 
ใบความรู้ สมเด็จพระพุฒธาจารย์(โต พรหมรังสี)+450+dltvsocp3+54soc p03f 28-1page
ใบความรู้  สมเด็จพระพุฒธาจารย์(โต  พรหมรังสี)+450+dltvsocp3+54soc p03f 28-1pageใบความรู้  สมเด็จพระพุฒธาจารย์(โต  พรหมรังสี)+450+dltvsocp3+54soc p03f 28-1page
ใบความรู้ สมเด็จพระพุฒธาจารย์(โต พรหมรังสี)+450+dltvsocp3+54soc p03f 28-1page
 
About Oneself+Our Everyday Life2+ป.2+121+dltvengp2+54en p02 f22-1page
About Oneself+Our Everyday Life2+ป.2+121+dltvengp2+54en p02 f22-1pageAbout Oneself+Our Everyday Life2+ป.2+121+dltvengp2+54en p02 f22-1page
About Oneself+Our Everyday Life2+ป.2+121+dltvengp2+54en p02 f22-1page
 
007+682+540603 a+ใบความรู้ ระบบขับถ่ายและการดูแล (1 หน้า)+heap5+dltv54
007+682+540603 a+ใบความรู้ ระบบขับถ่ายและการดูแล (1 หน้า)+heap5+dltv54007+682+540603 a+ใบความรู้ ระบบขับถ่ายและการดูแล (1 หน้า)+heap5+dltv54
007+682+540603 a+ใบความรู้ ระบบขับถ่ายและการดูแล (1 หน้า)+heap5+dltv54
 
El mimo está...resuelto
El mimo está...resueltoEl mimo está...resuelto
El mimo está...resuelto
 
Ordenando a caperucita
Ordenando a caperucita Ordenando a caperucita
Ordenando a caperucita
 
026+683+540819 a+ใบความรู้ ดูแลสุขภาพ (1 หน้า)+heap5+dltv54.mp4
026+683+540819 a+ใบความรู้ ดูแลสุขภาพ (1 หน้า)+heap5+dltv54.mp4026+683+540819 a+ใบความรู้ ดูแลสุขภาพ (1 หน้า)+heap5+dltv54.mp4
026+683+540819 a+ใบความรู้ ดูแลสุขภาพ (1 หน้า)+heap5+dltv54.mp4
 
ELL505
ELL505ELL505
ELL505
 
Marketing en Tiempos de Crisis
Marketing en Tiempos de CrisisMarketing en Tiempos de Crisis
Marketing en Tiempos de Crisis
 
9 herramientas que te harán la vida más fácil
9 herramientas que te harán la vida más fácil9 herramientas que te harán la vida más fácil
9 herramientas que te harán la vida más fácil
 
Manual programación
Manual programaciónManual programación
Manual programación
 
NICOLÁS COPÉRNICO
NICOLÁS COPÉRNICONICOLÁS COPÉRNICO
NICOLÁS COPÉRNICO
 
Estructura de datos y recursión
Estructura de datos y recursiónEstructura de datos y recursión
Estructura de datos y recursión
 
Concepto de identidad y sus manifestaciones en la cultura costarricense
Concepto de identidad y sus manifestaciones en la cultura costarricenseConcepto de identidad y sus manifestaciones en la cultura costarricense
Concepto de identidad y sus manifestaciones en la cultura costarricense
 
Amali 2 - Penghabluran Semula
Amali 2 - Penghabluran SemulaAmali 2 - Penghabluran Semula
Amali 2 - Penghabluran Semula
 
Manual de c/c++
Manual de c/c++Manual de c/c++
Manual de c/c++
 
Baking20151216
Baking20151216Baking20151216
Baking20151216
 
Riesgos de atrapamientos
Riesgos de atrapamientosRiesgos de atrapamientos
Riesgos de atrapamientos
 

Similaire à Computacion Parasitaria

Trabajo protocolo icmp ejemlo en packet tracer
Trabajo protocolo icmp ejemlo en packet tracerTrabajo protocolo icmp ejemlo en packet tracer
Trabajo protocolo icmp ejemlo en packet tracer
Jairo Rosas
 
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libre
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libreTesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libre
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libre
Leidy Reyes Rodriguez
 
Conociendo Distintos Tipos De Protocolo
Conociendo Distintos Tipos De ProtocoloConociendo Distintos Tipos De Protocolo
Conociendo Distintos Tipos De Protocolo
guestfbc5216b
 

Similaire à Computacion Parasitaria (20)

Trabajo protocolo icmp ejemlo en packet tracer
Trabajo protocolo icmp ejemlo en packet tracerTrabajo protocolo icmp ejemlo en packet tracer
Trabajo protocolo icmp ejemlo en packet tracer
 
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libre
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libreTesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libre
Tesis ucsm sistema_de_seguridad_en_redes_informaticas_basado_en_sw_libre
 
Programacion en ambientes heterogeneos
Programacion en ambientes heterogeneosProgramacion en ambientes heterogeneos
Programacion en ambientes heterogeneos
 
Analisis de red mediante Wireshark y Tcpdump
Analisis de red mediante Wireshark y TcpdumpAnalisis de red mediante Wireshark y Tcpdump
Analisis de red mediante Wireshark y Tcpdump
 
Icmp
IcmpIcmp
Icmp
 
Telematica
Telematica Telematica
Telematica
 
Resumen parte 3_22_04_2020
Resumen parte 3_22_04_2020Resumen parte 3_22_04_2020
Resumen parte 3_22_04_2020
 
capa de transporte
capa de transportecapa de transporte
capa de transporte
 
Conociendo Distintos Tipos De Protocolo
Conociendo Distintos Tipos De ProtocoloConociendo Distintos Tipos De Protocolo
Conociendo Distintos Tipos De Protocolo
 
S
SS
S
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Protocolo
ProtocoloProtocolo
Protocolo
 
Curso: Redes y comunicaciones I: 06 Planificación de redes
Curso: Redes y comunicaciones I: 06 Planificación de redesCurso: Redes y comunicaciones I: 06 Planificación de redes
Curso: Redes y comunicaciones I: 06 Planificación de redes
 
Conceptos básicos auditoria de redes 1
Conceptos básicos  auditoria de redes 1Conceptos básicos  auditoria de redes 1
Conceptos básicos auditoria de redes 1
 
DETECCION DE ERRORES DE REDES
DETECCION  DE ERRORES DE REDESDETECCION  DE ERRORES DE REDES
DETECCION DE ERRORES DE REDES
 
Sirc0703
Sirc0703Sirc0703
Sirc0703
 
Tcp ip
Tcp ipTcp ip
Tcp ip
 
Tcp ip
Tcp ipTcp ip
Tcp ip
 
Actividad 01.pdf
Actividad 01.pdfActividad 01.pdf
Actividad 01.pdf
 
Clase 03 Protocolos Y Servicios De Red
Clase 03   Protocolos Y Servicios De RedClase 03   Protocolos Y Servicios De Red
Clase 03 Protocolos Y Servicios De Red
 

Dernier

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Dernier (11)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 

Computacion Parasitaria

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