Tablas Hash

Politécnico Grancolombiano – Estructuras de Datos Presentado a: Edwin Andrés Niño Velásquez Presentado por: Pablo Andrés

Views 132 Downloads 6 File size 242KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Politécnico Grancolombiano – Estructuras de Datos Presentado a: Edwin Andrés Niño Velásquez Presentado por: Pablo Andrés Sierra Betancourt-Cod: 1610010786 Javier Eduardo Jaime Velásquez-Cod :1820010469 Manuel Geovanny Beltrán Martínez-Cod: 1820010375

Taller Tablas Hash Investigar los puntos 6-7-8

Desarrollo 6. ¿En qué consiste un ataque de denegación de servicio (DOS)? ¿En qué forma son vulnerables las tablas hash a ataques DOS? Dé un ejemplo usando la clase String. Definición: DOS = Denegación de servicio. DDOS = Denegación de servicio distribuido. Un ataque de denegación de servicio “DOS”, Es cuando el atacante inunda y aumenta el trafico de datos en la entrada DNS, un sistema o una red la cual el propósito es que no sea capaz de brindar y desarrollar el servicio a los usuarios cotidianos del las plataformas, este al tener esta gran afluencia de datos colapsan la capacidad de respuesta de las peticiones y a su vez colapsa el ancho de banda del servidor, y al ocurrir esta afectación el punto atacado quiebra y denegá el servicio. Gráficamente podemos describirlo como un diagrama de Árbol para poder representar este ataque.

“Los servidores o plataformas de aplicaciones web comúnmente analizan automáticamente los datos del formulario POST controlados por el atacante en tablas hash, de modo que los desarrolladores de aplicaciones puedan acceder a ellos. Si el lenguaje no proporciona una función hash aleatoria o el servidor de aplicaciones no reconoce los ataques que utilizan multicolisiones, un atacante puede degenerar la tabla hash enviando muchas claves en colisión. La complejidad algorítmica de insertar n elementos en la tabla luego pasa a O (n ** 2), lo que hace posible agotar horas de tiempo de CPU utilizando una sola solicitud HTTP”1 “Tomado de https://arstechnica.com”

1

https://arstechnica.com/information-technology/2011/12/huge-portions-of-web-vulnerable-to-hashing-denial-of-serviceattack/ 1

Una descripción mas especifica de este caso, es cuando el atacante al inundar el sistema la capacidad de respuesta de nombre de la petición es convertida IPV6 y IPV4 y este a su vez es incapaz de interpretar la petición por la cual corrige la petición generando a su vez un nuevo redireccionamiento colapsando la entrada y capacidad de respuesta de otro sitio creando una gran afluencia de datos como en un cuello de botella. Un ataque DOS dirigido contra aplicaciones que usen tablas hash 2. consiste en que si una determinada aplicación no utiliza una función hash aleatoria en la implementación de su tabla hash, entonces un atacante podría elegir una numerosa cantidad de llaves en colisión para insertarlas en la aplicación. Como resultado, la complejidad del algoritmo usado para insertar un par “valor de llave” se multiplica diez veces, lo que incrementa el consumo de tiempo de respuesta del servidor o la máquina. Así el atacante aprovecha los tipos de lenguajes de programación web que son vulnerables como, incluyendo PHP, ASP.NET, Java, Python y Ruby. Estos idiomas toman estructuras de datos hash similares, por lo que colisionan el servidor, el ataque inicia cuando se infiltra una petición POST a una plataforma cerrada la infiltración contiene los parámetros para que un formulario web provoque múltiples colisiones. en general las plataformas usan tablas hash para almacenar los datos recibidos, una petición enviada creada en la plataforma puede ocupar el servidor o la maquina por varios minutos o en casos mas robustos puede tardar horas. Y al aumentar el trafico de peticiones, los atacantes pueden colapsar un grupo de servidores.

-

Ejemplo usando la clase String

El atacante aprovecha un fallo de SQL injection para borrar o modificar tablas de la base de datos. Imaginemos una aplicación .NET en la que los usuarios sin identificarse pueden listar noticias y los usuarios registrados pueden realizar más acciones3. Imaginemos el código de http://servidor/noticias.aspx?id=1

private void Page_Load(object sender, System.EventArgs e) { string id = ""; id = Request.QueryString["id"].ToString(); string conexion = "Data Source=localhost;User id=sa;Password=sa;Initial Catalog=aplic"; SqlConnection conector = new SqlConnection (conexion); SqlDataAdapter adapt = new SqlDataAdapter("select * from contactos where id=" + id, conector); DataSet datos = new DataSet(); adapt.Fill(datos); DataGrid1.DataSource = datos; DataGrid1.DataBind(); }

Si el atacante hace una petición a: http://servidor/noticias.aspx?id=1 unión DROP TABLE usuarios y los permisos de la base de datos son incorrectos, el atacante será capaz de borrar la tabla de usuarios con las consecuencias que esto provoca en el funcionamiento normal de la aplicación 4 . - “Ejemplo tomado de Ataques DoS en aplicaciones Web - © Copyright 2007, Jaime Blasco - OEAZEL ”

2

https://securelist.lat/ataques-ddos-en-el-segundo-semestre-de-2011/72781/ https://owasp.org/www-pdf-archive/Conferencia_OWASP.pdf 4 https://owasp.org/www-pdf-archive/Conferencia_OWASP.pdf SQL injection para borrar o modificar tablas de la base de datos 2 3

7. ¿Qué es hashing universal? Dé un ejemplo de una familia de funciones hash universal.? “Es un concepto programático que refiera al direccionamiento que se realiza a partir del valor (llave or key) hacia un campo en una estructura de datos de composición estática o dinámica”5. “El hash universal se refiere a la selección aleatoria de una función hash de una familia de funciones hash con una determinada propiedad matemática. que garantiza un bajo número de colisiones en expectativa, incluso si los datos son elegidos por un adversario”6 El “U.H” siglas en ingles Universal hashimg toma de forma aleatoria el conjunto de funciones hash existentes independiente del valor dado a la llave, se define H como una colección de funciones dotadas de un universo U de llaves. Si para cada dupla de llaves h(K) = h(l) existe el máximo de colisione de posibilidades 1/m el cual se utilizan en las llaves. -

Ejemplo Clase universal Sea un P que pertenece a conjunto de los primos lo suficiente grande que tome un elemento de llaves “K” tal que su rango este entre [0,1,2,3……. P-1], asumimos que la cantidad de elementos en K es mayor a la cantidad de slots, entonces p>m, y sea la función hash donde “a” pertenece a el conjunto {0,1,2,3……. P-1} y sea “b” que pertenece a {0,1,2,3……. P-1}7.por lo tanto: h_ab(k) = ((ak+b)mod p) mod m H_pm={h_ab: a pertenece Z*_p, y b pertenece Z_p} De tal forma que con p=17, m=6 se tiene que h3.4(8)=5

8. ¿De qué forma el hashing universal resuelve el problema de vulnerabilidad a ataques DOS en las tablas hash?

El hashing universal contribuye con el problema de vulnerabilidad ya encripta el bloque de dato y garantiza la integridad del dato, así mismo evita las duplicidades y modificaciones y cualquier tipo de alteración a la información brindando así un funcionamiento deguro de los ervidores y plataformas. El uso de la criptografía en las tablas hash resulta en algo seguro para el almacenamiento de contraseñas cuando se intercambia la petición y respuesta de la maquina y usuario, por lo cual el atacante se ve restringido en el ataque y se puede contrarrestar el aumento del trafico de datos por un mismo canal, evitando así los intrusos en la red y la alteración de ficheros en los sistemas operativos que puedan llevar a cabo los ataques DOS.

5

Ing. Juan Ignacio Zamora M. MS.c Facultad de Ingenierías Licenciatura en Ingeniería Informática con Énfasis en Desarrollo de Software Universidad Latinoamericana de Ciencia y Tecnología https://es.slideshare.net/juazammo/hashing-43918982 6 https://en.wikipedia.org/wiki/Universal_hashing 7 Ing. Juan Ignacio Zamora M. MS.c pag 14 https://es.slideshare.net/juazammo/hashing-43918982 3

REFERENCIAS

1.

https://arstechnica.com/information-technology/2011/12/huge-portions-of-web-vulnerable-to-hashing-denial-of-serviceattack/ 2. https://securelist.lat/ataques-ddos-en-el-segundo-semestre-de-2011/72781/ 3. https://owasp.org/www-pdf-archive/Conferencia_OWASP.pdf 4. https://owasp.org/www-pdf-archive/Conferencia_OWASP.pdf SQL injection para borrar o modificar tablas de la base de datos 5. Ing. Juan Ignacio Zamora M. MS.c Facultad de Ingenierías Licenciatura en Ingeniería Informática con Énfasis en Desarrollo de Software Universidad Latinoamericana de Ciencia y Tecnología https://es.slideshare.net/juazammo/hashing-43918982 6. https://en.wikipedia.org/wiki/Universal_hashing 7. Ing. Juan Ignacio Zamora M. MS.c pag 14 https://es.slideshare.net/juazammo/hashing-43918982 8. Ataques DoS en aplicaciones Web - © Copyright 2007, Jaime Blasco - OEAZEL

4