Blog

Cómo evolucionan las directrices de programación segura

September 15, 2017
Pieter De Cremer
Mapa mundial que muestra a hacktivistas de Italia, Estados Unidos y Brasil atacando la aplicación Code Snippets en Europa.

La semana pasada estuve investigando vulnerabilidades en Java Spring para actualizar nuestras directrices de programación segura. Revisé los desafíos existentes en nuestra plataforma y noté algunos sobre XSS mediante la visualización de parámetros de URL en páginas JSP. Un ejemplo de código incorrecto se vería similar a lo siguiente:

   <input type="text" name="username" value="${param.username}">

La solución correcta era eliminar el parámetro de URL por completo, y la descripción menciona que escapar el parámetro de URL de la manera correcta también es seguro.

Ahora, mi trabajo es formular la directriz de programación segura de una manera que sea clara para los desarrolladores y que los restrinja lo menos posible, manteniendo la seguridad del código. En este caso, preferiría permitir que los desarrolladores mantengan la funcionalidad deseada y recomendarles que lo hagan de forma segura escapando el parámetro de URL. De esta manera, el código ya no contiene una vulnerabilidad XSS. El ejemplo anterior puede asegurarse así:

   <input type="text" name="username" value="${fn:escapeXml(param.username)}">

Y esta fue nuestra directriz de programación segura durante unos días, hasta que me topé con una página de OWASP sobre inyección de lenguaje de expresiones. Esta página describe cómo se puede abusar del lenguaje de expresiones de Spring (SpEL) para realizar inyecciones con un impacto grave, incluida la ejecución remota de código. Dependía de mí determinar si podía haber casos en los que el código que cumple con nuestra directriz de programación segura aún pudiera verse afectado por esta vulnerabilidad. Así que escribí una aplicación de prueba rápida para evaluar expresiones SpEL y probé entradas con y sin escape XML para ver si podía encontrar escenarios que no fueran detectados. Y así fue, existen expresiones maliciosas que no contienen caracteres detectados por XmlEscape. Publiqué la demostración funcional en nuestro GitHub, la cual pueden encontrar aquí.

Y, por supuesto, actualicé nuestra directriz de programación segura, que ahora dice: "No muestre ni evalúe parámetros de URL utilizando el lenguaje de expresiones de Spring (SpEL)".

El impacto general de este problema es alto, por las siguientes razones: - Un atacante podría modificar e invocar funcionalidades en el servidor de aplicaciones. - Acceso no autorizado a datos y funcionalidades, así como secuestro de cuentas y ejecución remota de código. - Problemas de confidencialidad e integridad derivados de un ataque exitoso.

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

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.