Cómo evolucionan las directrices de codificación segura
La semana pasada estuve investigando vulnerabilidades en Java Spring para poner al día nuestras directrices de codificación segura. Estaba revisando los retos existentes en nuestra plataforma y me di cuenta de unos cuantos sobre XSS a través de la visualización de parámetros url en páginas JSP. El ejemplo de código incorrecto sería algo similar a lo siguiente:
<input type="text" name="username" value="${param.username}">
La solución correcta era eliminar el parámetro URL por completo y la descripción menciona que escapar el parámetro URL de la manera correcta también es seguro.
Ahora, mi trabajo es formular la pauta de codificación segura de una manera que sea clara para los desarrolladores y los restrinja lo menos posible sin dejar de escribir código seguro. En este caso, prefiero dejar que los desarrolladores mantengan su funcionalidad prevista y recomendarles que lo hagan de forma segura escapando del parámetro de la URL. De esta manera, el código ya no contiene una vulnerabilidad XSS. El ejemplo anterior se puede asegurar así:
<input type="text" name="username" value="${fn:escapeXml(param.username)}">
Y esta fue nuestra pauta de codificación segura durante unos días, hasta que me topé con una página de OWASP sobre la inyección de lenguaje de expresión. Esta página describe cómo el Lenguaje de Expresión de Spring (SpEL) puede ser abusado para la inyección con algún impacto serio, incluyendo la ejecución remota de código. Me tocó averiguar si podría haber casos en los que el código que se adhiere a nuestra directriz de codificación segura todavía puede ser afectado por esta vulnerabilidad. Así que escribí una aplicación de prueba rápida para evaluar las expresiones SpEL, y probé la entrada con y sin escape Xml para ver si podía encontrar algunos escenarios que no fueran capturados. Y lo hice, hay expresiones maliciosas que no contienen ningún carácter capturado por XmlEscape. He publicado la demo en nuestro github, que puedes encontrar aquí.
Y, por supuesto, he actualizado nuestra directriz de codificación segura que ahora dice: "No muestre o evalúe los parámetros de la URL utilizando el Lenguaje de Expresión de Spring (SpEL)".
El impacto global de este problema es alto, por las siguientes razones: - Un atacante podría modificar e invocar funcionalidad en el servidor de aplicaciones. - Acceso no autorizado a datos y funcionalidades, así como secuestro de cuentas y ejecución remota de código. - Preocupación por la confidencialidad y la integridad de un ataque exitoso.
https://www.owasp.org/index.php/Expression_Language_Injection


La semana pasada estuve investigando vulnerabilidades en Java Spring para poner al día nuestras directrices de codificación segura.
Investigador de seguridad de aplicaciones - Ingeniero de I+D - Candidato a doctor

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónInvestigador de seguridad de aplicaciones - Ingeniero de I+D - Candidato a doctor


La semana pasada estuve investigando vulnerabilidades en Java Spring para poner al día nuestras directrices de codificación segura. Estaba revisando los retos existentes en nuestra plataforma y me di cuenta de unos cuantos sobre XSS a través de la visualización de parámetros url en páginas JSP. El ejemplo de código incorrecto sería algo similar a lo siguiente:
<input type="text" name="username" value="${param.username}">
La solución correcta era eliminar el parámetro URL por completo y la descripción menciona que escapar el parámetro URL de la manera correcta también es seguro.
Ahora, mi trabajo es formular la pauta de codificación segura de una manera que sea clara para los desarrolladores y los restrinja lo menos posible sin dejar de escribir código seguro. En este caso, prefiero dejar que los desarrolladores mantengan su funcionalidad prevista y recomendarles que lo hagan de forma segura escapando del parámetro de la URL. De esta manera, el código ya no contiene una vulnerabilidad XSS. El ejemplo anterior se puede asegurar así:
<input type="text" name="username" value="${fn:escapeXml(param.username)}">
Y esta fue nuestra pauta de codificación segura durante unos días, hasta que me topé con una página de OWASP sobre la inyección de lenguaje de expresión. Esta página describe cómo el Lenguaje de Expresión de Spring (SpEL) puede ser abusado para la inyección con algún impacto serio, incluyendo la ejecución remota de código. Me tocó averiguar si podría haber casos en los que el código que se adhiere a nuestra directriz de codificación segura todavía puede ser afectado por esta vulnerabilidad. Así que escribí una aplicación de prueba rápida para evaluar las expresiones SpEL, y probé la entrada con y sin escape Xml para ver si podía encontrar algunos escenarios que no fueran capturados. Y lo hice, hay expresiones maliciosas que no contienen ningún carácter capturado por XmlEscape. He publicado la demo en nuestro github, que puedes encontrar aquí.
Y, por supuesto, he actualizado nuestra directriz de codificación segura que ahora dice: "No muestre o evalúe los parámetros de la URL utilizando el Lenguaje de Expresión de Spring (SpEL)".
El impacto global de este problema es alto, por las siguientes razones: - Un atacante podría modificar e invocar funcionalidad en el servidor de aplicaciones. - Acceso no autorizado a datos y funcionalidades, así como secuestro de cuentas y ejecución remota de código. - Preocupación por la confidencialidad y la integridad de un ataque exitoso.
https://www.owasp.org/index.php/Expression_Language_Injection

La semana pasada estuve investigando vulnerabilidades en Java Spring para poner al día nuestras directrices de codificación segura. Estaba revisando los retos existentes en nuestra plataforma y me di cuenta de unos cuantos sobre XSS a través de la visualización de parámetros url en páginas JSP. El ejemplo de código incorrecto sería algo similar a lo siguiente:
<input type="text" name="username" value="${param.username}">
La solución correcta era eliminar el parámetro URL por completo y la descripción menciona que escapar el parámetro URL de la manera correcta también es seguro.
Ahora, mi trabajo es formular la pauta de codificación segura de una manera que sea clara para los desarrolladores y los restrinja lo menos posible sin dejar de escribir código seguro. En este caso, prefiero dejar que los desarrolladores mantengan su funcionalidad prevista y recomendarles que lo hagan de forma segura escapando del parámetro de la URL. De esta manera, el código ya no contiene una vulnerabilidad XSS. El ejemplo anterior se puede asegurar así:
<input type="text" name="username" value="${fn:escapeXml(param.username)}">
Y esta fue nuestra pauta de codificación segura durante unos días, hasta que me topé con una página de OWASP sobre la inyección de lenguaje de expresión. Esta página describe cómo el Lenguaje de Expresión de Spring (SpEL) puede ser abusado para la inyección con algún impacto serio, incluyendo la ejecución remota de código. Me tocó averiguar si podría haber casos en los que el código que se adhiere a nuestra directriz de codificación segura todavía puede ser afectado por esta vulnerabilidad. Así que escribí una aplicación de prueba rápida para evaluar las expresiones SpEL, y probé la entrada con y sin escape Xml para ver si podía encontrar algunos escenarios que no fueran capturados. Y lo hice, hay expresiones maliciosas que no contienen ningún carácter capturado por XmlEscape. He publicado la demo en nuestro github, que puedes encontrar aquí.
Y, por supuesto, he actualizado nuestra directriz de codificación segura que ahora dice: "No muestre o evalúe los parámetros de la URL utilizando el Lenguaje de Expresión de Spring (SpEL)".
El impacto global de este problema es alto, por las siguientes razones: - Un atacante podría modificar e invocar funcionalidad en el servidor de aplicaciones. - Acceso no autorizado a datos y funcionalidades, así como secuestro de cuentas y ejecución remota de código. - Preocupación por la confidencialidad y la integridad de un ataque exitoso.
https://www.owasp.org/index.php/Expression_Language_Injection

Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Ver el informeReservar una demostraciónInvestigador de seguridad de aplicaciones - Ingeniero de I+D - Candidato a doctor
La semana pasada estuve investigando vulnerabilidades en Java Spring para poner al día nuestras directrices de codificación segura. Estaba revisando los retos existentes en nuestra plataforma y me di cuenta de unos cuantos sobre XSS a través de la visualización de parámetros url en páginas JSP. El ejemplo de código incorrecto sería algo similar a lo siguiente:
<input type="text" name="username" value="${param.username}">
La solución correcta era eliminar el parámetro URL por completo y la descripción menciona que escapar el parámetro URL de la manera correcta también es seguro.
Ahora, mi trabajo es formular la pauta de codificación segura de una manera que sea clara para los desarrolladores y los restrinja lo menos posible sin dejar de escribir código seguro. En este caso, prefiero dejar que los desarrolladores mantengan su funcionalidad prevista y recomendarles que lo hagan de forma segura escapando del parámetro de la URL. De esta manera, el código ya no contiene una vulnerabilidad XSS. El ejemplo anterior se puede asegurar así:
<input type="text" name="username" value="${fn:escapeXml(param.username)}">
Y esta fue nuestra pauta de codificación segura durante unos días, hasta que me topé con una página de OWASP sobre la inyección de lenguaje de expresión. Esta página describe cómo el Lenguaje de Expresión de Spring (SpEL) puede ser abusado para la inyección con algún impacto serio, incluyendo la ejecución remota de código. Me tocó averiguar si podría haber casos en los que el código que se adhiere a nuestra directriz de codificación segura todavía puede ser afectado por esta vulnerabilidad. Así que escribí una aplicación de prueba rápida para evaluar las expresiones SpEL, y probé la entrada con y sin escape Xml para ver si podía encontrar algunos escenarios que no fueran capturados. Y lo hice, hay expresiones maliciosas que no contienen ningún carácter capturado por XmlEscape. He publicado la demo en nuestro github, que puedes encontrar aquí.
Y, por supuesto, he actualizado nuestra directriz de codificación segura que ahora dice: "No muestre o evalúe los parámetros de la URL utilizando el Lenguaje de Expresión de Spring (SpEL)".
El impacto global de este problema es alto, por las siguientes razones: - Un atacante podría modificar e invocar funcionalidad en el servidor de aplicaciones. - Acceso no autorizado a datos y funcionalidades, así como secuestro de cuentas y ejecución remota de código. - Preocupación por la confidencialidad y la integridad de un ataque exitoso.
https://www.owasp.org/index.php/Expression_Language_Injection
Índice
Investigador de seguridad de aplicaciones - Ingeniero de I+D - Candidato a doctor

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDescargarRecursos para empezar
La Cámara de Comercio establece el estándar para la seguridad impulsada por desarrolladores a gran escala
Kamer van Koophandel comparte cómo ha integrado la codificación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de Trust Score y una cultura de responsabilidad compartida en materia de seguridad.
Modelado de amenazas con IA: convertir a cada desarrollador en un modelador de amenazas
Saldrá mejor equipado para ayudar a los desarrolladores a combinar ideas y técnicas de modelado de amenazas con las herramientas de IA que ya utilizan para reforzar la seguridad, mejorar la colaboración y crear software más resistente desde el principio.
Recursos para empezar
Nueva categoría de riesgo en el Top Ten de OWASP: Esperar lo inesperado
OWASP Top 10 2025 añade la gestión incorrecta de condiciones excepcionales en el número 10. Mitigue los riesgos mediante una lógica "fail closed", gestores de errores globales y una estricta validación de entradas.
OWASP Top 10 2025: Fallos en la cadena de suministro de software
OWASP Top 10 2025 sitúa los fallos de la cadena de suministro de software en el puesto número 3. Mitigue este riesgo de alto impacto mediante SBOM estrictos, seguimiento de dependencias y refuerzo de la canalización CI/CD.
¡Adopte RÁPIDAMENTE la IA Agéntica en el Desarrollo de Software! (Spoiler: Probablemente no deberías.)
¿Va el mundo de la ciberseguridad demasiado rápido con la IA agéntica? El futuro de la seguridad de la IA ya está aquí, y es hora de que los expertos pasen de la reflexión a la realidad.




%20(1).avif)
.avif)

.avif)


