Blog

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

December 10, 2017
Pieter De Cremer

El lenguaje de marcado extensible (XML) es un lenguaje de marcado que se utiliza para codificar documentos en un formato fácil de manejar para las máquinas y legible por humanos. Sin embargo, este formato de uso común incluye varios fallos de seguridad. En esta primera entrada de blog relacionada con XML, explicaré los aspectos básicos del manejo seguro de documentos XML mediante el uso de un esquema.

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

Documentos XML con formato incorrecto

Los documentos XML mal formados son documentos que no siguen las especificaciones XML del W3C. Algunos ejemplos que dan como resultado un documento con formato incorrecto son la eliminación de una etiqueta final, el cambio del orden de los diferentes elementos o el uso de caracteres prohibidos. Todos estos errores deberían provocar un error fatal y el documento no debería someterse a ningún procesamiento adicional.

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

Documentos XML no válidos

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

Una tienda web que almacena sus transacciones en datos XML:

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

Y el usuario solo tiene control sobre el <id>valor. Entonces es posible, sin las contramedidas adecuadas, que un atacante introduzca algo como esto:</id>

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

Si el analizador que procesa este documento solo lee la primera instancia de las <id><price>etiquetas y, esto generará resultados no deseados</price></id>.

También es posible que el esquema no sea lo suficientemente restrictivo o que otra validación de entrada sea insuficiente, de modo que se puedan introducir números negativos, decimales especiales (como NaN o Infinity) o valores extremadamente grandes donde no se esperan, lo que lleva a un comportamiento no deseado similar.

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 incorrecta.

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

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

Las especificaciones para XML y los esquemas XML incluyen varios fallos de seguridad. Al mismo tiempo, estas especificaciones proporcionan las herramientas necesarias para proteger las aplicaciones XML. Aunque utilizamos esquemas XML para definir la seguridad de los documentos XML, pueden usarse para realizar diversos ataques: recuperación de archivos, falsificación de solicitudes del servidor, escaneo de puertos o uso de fuerza bruta.

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

Share on social
Lema

Govern AI-driven development before it ships

Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.

book a demo
book a demo
Lema

Explore more blogs

Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.

browse all
Case Study
Filter Label
This is some text inside of a div block.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Learn More
Case Study
Filter Label
This is some text inside of a div block.

One Culture of Security: How Sage built their security champions program with agile secure code learning

Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Post-Quantum Cryptography: Quantum Computers Will Break Today’s Encryption – Are You Ready?

Post-quantum cryptography (PQC) is critical for protecting data from quantum computing threats. Learn how “harvest now, decrypt later” exposes risk and how developers can prepare for quantum-safe security.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Enabler 2: Senior Leadership Sponsorship

Explore Enabler 2: Senior Leadership Sponsorship. Learn why active buy-in from the CIO, CTO, and CISO is vital to drive developer adoption and program credibility.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Observe and Secure the ADLC: A Four-Point Framework for CISOs and Development Teams Using AI

While development teams look to make the most of GenAI’s undeniable benefits, we’d like to propose a four-point foundational framework that will allow security leaders to deploy AI coding tools and agents with a higher, more relevant standard of security best practices. It details exactly what enterprises can do to ensure safe, secure code development right now, and as agentic AI becomes an even bigger factor in the future.

Learn More

Secure AI-driven development before it ships

See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.

Book a demo