Blog

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

December 10, 2017
Pieter De Cremer
Fragmento de código en una terminal que muestra el XML de los empleados con su nombre, puesto y estado del código de seguridad.

El lenguaje de marcado extensible (XML) es un lenguaje de marcado utilizado para codificar documentos en un formato que es fácil de manejar tanto para las máquinas como para los seres humanos. Sin embargo, este formato de uso común incluye múltiples fallos de seguridad. En esta primera entrada del blog sobre XML, explicaré los fundamentos para manejar 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 mal formados son aquellos que no siguen las especificaciones XML del W3C. Algunos ejemplos que dan lugar a un documento mal formado son la eliminación de una etiqueta de cierre, el cambio en el orden de los 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 someterse a ningún procesamiento adicional.

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

Documentos XML no válidos

Los documentos XML no válidos están bien formados pero contienen valores inesperados. Aquí, 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 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 valor <id>. 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 etiquetas <id> y <price>, esto conducirá a resultados no deseados. </price></id>

XML database with highlighted code showing user roles and passwords including an attacker administrator user.

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 excesivamente grandes donde no se esperan, lo que conduce a un comportamiento imprevisto similar.

Para evitar vulnerabilidades relacionadas con documentos XML no válidos, se debe definir un esquema XML preciso y restrictivo que evite problemas de validación de datos inadecuada.

En la próxima entrada del blog profundizaremos en algunos ataques más avanzados a documentos XML, como las cargas útiles gigantes (Jumbo Payloads) y el temido cuarto puesto del Top Ten de OWASP, 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 múltiples 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, estos pueden utilizarse para llevar a cabo diversos ataques: recuperación de archivos, falsificación de solicitudes del lado del servidor, escaneo de puertos o ataques de fuerza bruta.

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

Eslogan

Controle el desarrollo impulsado por IA antes de su lanzamiento

Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).

Reservar una demostración
Biblioteca de recursos

Explorar más blogs

Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

ver todo
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Una cultura de seguridad: cómo Sage creó su programa de defensores

Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Más información
Icono de ventana de navegador con las letras KVK en negrita y dos líneas horizontales azules debajo sobre un fondo azul degradado.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores

La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Más información
Logotipo de Insurance Australia Group con texto y un icono en azul y gris dentro del diseño de una ventana de navegador web.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro

IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial

Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Habilitador 8: Branding de su programa

Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cada empleado está ahora en la primera línea de la ciberseguridad de la IA

El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.

Más información

Proteja el desarrollo basado en IA antes de su lanzamiento

Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.

Reservar una demostración
No se encontraron elementos.