Técnica de codificación segura: Procesamiento de datos XML, parte 1

Publicado el 10 de diciembre de 2017
por Pieter De Cremer
ESTUDIO DE CASO

Técnica de codificación segura: Procesamiento de datos XML, parte 1

Publicado el 10 de diciembre de 2017
por Pieter De Cremer
Ver recurso
Ver recurso

El Lenguaje de Marcas Extensible (XML) es un lenguaje de marcas utilizado para codificar documentos en un formato fácil de manejar para las máquinas y legible para el ser humano. Sin embargo, este formato tan utilizado incluye múltiples fallos de seguridad. En esta primera entrada del blog relacionada con XML, explicaré los fundamentos del manejo de documentos XML de forma segura mediante el uso de un esquema.

OWASP divide las diferentes vulnerabilidades relacionadas con XML y los esquemas XML en dos categorías.

Documentos XML mal formados

Los documentos XML malformados son documentos que no siguen las especificaciones XML del W3C. Algunos ejemplos que dan lugar a un documento malformado son la eliminación de una etiqueta de finalización, el cambio de orden de diferentes elementos o el uso de caracteres prohibidos. Todos estos errores deberían dar lugar a un error fatal y el documento no debería sufrir ningún tratamiento adicional.

Para evitar las vulnerabilidades causadas por los documentos malformados, debe utilizar un analizador XML bien probado que siga las especificaciones del W3C y que no tarde mucho en procesar los documentos malformados.

Documentos XML no válidos

Los documentos XML inválidos están bien formados pero contienen valores inesperados. En este caso, un atacante puede aprovecharse de las aplicaciones que no definen correctamente un esquema XML para identificar si los documentos son válidos. A continuación puede encontrar un ejemplo sencillo de un documento que, si no se valida correctamente, podría tener consecuencias no deseadas.

Una tienda web que almacena sus transacciones en datos XML:

   <purchase></purchase>
     <id>123</id>
     <price>200</price>
   

And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>

   <purchase></purchase>
     <id>123</id>
     <price>0</price>
     <id></id>
     <price>200</price>
   

If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

También es posible que el esquema no sea lo suficientemente restrictivo o que otras validaciones de entrada sean insuficientes, de modo que se puedan introducir números negativos, decimales especiales (como NaN o Infinito) o valores excesivamente grandes donde no se esperan, lo que lleva a un comportamiento similar no deseado.

Para evitar las vulnerabilidades relacionadas con los documentos XML no válidos se debe definir un esquema XML preciso y restrictivo para evitar problemas de validación de datos inadecuados.

En la próxima entrada del blog nos adentraremos en algunos ataques más avanzados a documentos XML como los Jumbo Payloads y el temido Top Ten de OWASP número cuatro, XXE.

Mientras tanto, puede perfeccionar o desafiar sus habilidades en la validación de entradas XML en nuestro portal.

Las especificaciones para XML y los esquemas XML incluyen múltiples fallos de seguridad. Al mismo tiempo, estas especificaciones proporcionan las herramientas necesarias para proteger las aplicaciones XML. Aunque utilicemos los esquemas XML para definir la seguridad de los documentos XML, pueden utilizarse para realizar diversos ataques: recuperación de archivos, falsificación de peticiones del lado del servidor, escaneo de puertos o fuerza bruta.

https://www.owasp.org/index.php/XML_Security_Cheat_Sheet

Ver recurso
Ver recurso

Autor

Pieter De Cremer

¿Quieres más?

Sumérjase en nuestras últimas ideas sobre codificación segura en el blog.

Nuestra amplia biblioteca de recursos tiene como objetivo potenciar el enfoque humano de la mejora de la codificación segura.

Ver blog
¿Quieres más?

Obtenga las últimas investigaciones sobre la seguridad impulsada por los desarrolladores

Nuestra amplia biblioteca de recursos está repleta de recursos útiles, desde libros blancos hasta seminarios web, que le ayudarán a iniciarse en la codificación segura orientada a los desarrolladores. Explórela ahora.

Centro de recursos

Técnica de codificación segura: Procesamiento de datos XML, parte 1

Publicado el 10 de diciembre de 2017
Por Pieter De Cremer

El Lenguaje de Marcas Extensible (XML) es un lenguaje de marcas utilizado para codificar documentos en un formato fácil de manejar para las máquinas y legible para el ser humano. Sin embargo, este formato tan utilizado incluye múltiples fallos de seguridad. En esta primera entrada del blog relacionada con XML, explicaré los fundamentos del manejo de documentos XML de forma segura mediante el uso de un esquema.

OWASP divide las diferentes vulnerabilidades relacionadas con XML y los esquemas XML en dos categorías.

Documentos XML mal formados

Los documentos XML malformados son documentos que no siguen las especificaciones XML del W3C. Algunos ejemplos que dan lugar a un documento malformado son la eliminación de una etiqueta de finalización, el cambio de orden de diferentes elementos o el uso de caracteres prohibidos. Todos estos errores deberían dar lugar a un error fatal y el documento no debería sufrir ningún tratamiento adicional.

Para evitar las vulnerabilidades causadas por los documentos malformados, debe utilizar un analizador XML bien probado que siga las especificaciones del W3C y que no tarde mucho en procesar los documentos malformados.

Documentos XML no válidos

Los documentos XML inválidos están bien formados pero contienen valores inesperados. En este caso, un atacante puede aprovecharse de las aplicaciones que no definen correctamente un esquema XML para identificar si los documentos son válidos. A continuación puede encontrar un ejemplo sencillo de un documento que, si no se valida correctamente, podría tener consecuencias no deseadas.

Una tienda web que almacena sus transacciones en datos XML:

   <purchase></purchase>
     <id>123</id>
     <price>200</price>
   

And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>

   <purchase></purchase>
     <id>123</id>
     <price>0</price>
     <id></id>
     <price>200</price>
   

If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

También es posible que el esquema no sea lo suficientemente restrictivo o que otras validaciones de entrada sean insuficientes, de modo que se puedan introducir números negativos, decimales especiales (como NaN o Infinito) o valores excesivamente grandes donde no se esperan, lo que lleva a un comportamiento similar no deseado.

Para evitar las vulnerabilidades relacionadas con los documentos XML no válidos se debe definir un esquema XML preciso y restrictivo para evitar problemas de validación de datos inadecuados.

En la próxima entrada del blog nos adentraremos en algunos ataques más avanzados a documentos XML como los Jumbo Payloads y el temido Top Ten de OWASP número cuatro, XXE.

Mientras tanto, puede perfeccionar o desafiar sus habilidades en la validación de entradas XML en nuestro portal.

Las especificaciones para XML y los esquemas XML incluyen múltiples fallos de seguridad. Al mismo tiempo, estas especificaciones proporcionan las herramientas necesarias para proteger las aplicaciones XML. Aunque utilicemos los esquemas XML para definir la seguridad de los documentos XML, pueden utilizarse para realizar diversos ataques: recuperación de archivos, falsificación de peticiones del lado del servidor, escaneo de puertos o fuerza bruta.

https://www.owasp.org/index.php/XML_Security_Cheat_Sheet

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.