Blog

Análisis profundo: Un examen detallado de la vulnerabilidad zero-day de MOVEit

September 30, 2023
Laura Verheyde

Los ciberataques a la cadena de suministro de software son cada vez más comunes, lo que ha provocado una oleada de cambios legislativos a nivel del gobierno de EE. UU., mientras las empresas se esfuerzan por mitigar su amplio perfil de riesgo y mejorar rápidamente la calidad del software. Solo este año ha habido tres vulnerabilidades de día cero vinculadas a servicios de intercambio de archivos, siendo la mayor y más destructiva la explotación masiva de MOVEit.

Liderado por el grupo de ransomware CL0P, el incidente de MOVEit ha dominado las noticias de ciberseguridad durante algún tiempo, con más de 1000 organizaciones afectadas. Esta cifra seguirá creciendo, lo que convierte a este ataque en uno de los más potentes contra la cadena de suministro de software desde Solarwinds en 2021.

El catalizador de esta brecha generalizada fue un conjunto de vulnerabilidades de inyección SQL, que finalmente recibió una puntuación de gravedad de 9.8 sobre 10 por parte de MITRE. La inyección SQL ha sido el dolor de cabeza de los profesionales de la seguridad desde finales de los 90 y, a pesar de ser una solución bastante sencilla, sigue encontrando su camino en el software moderno y facilitando el acceso a datos confidenciales a los actores de amenazas.

El escenario de MOVEit es un poco diferente a lo que muchos desarrolladores y profesionales de AppSec han experimentado anteriormente, y puedes poner a prueba tus habilidades para eliminar SQLi en una simulación en vivo aquí mismo:

>>> JUGAR LA MISIÓN MOVEit

La vulnerabilidad: inyección SQL

¿Cómo se utilizó exactamente la inyección SQL para explotar la aplicación de transferencia de archivos MOVEit de Progress Software?

El grupo de ransomware CL0P pudo explotar la vulnerabilidad de inyección SQL CVE-2023-34362, lo que les otorgó acceso ilimitado y no autorizado a la base de datos de MOVEit. A partir de ahí, pudieron instalar LEMURLOOT, un shell web que finalmente les permitiría ejecutar varios procesos críticos de alto riesgo, como la recuperación de la configuración del sistema, la enumeración de la base de datos SQL, la recuperación de archivos del sistema MOVEit Transfer y la creación de una nueva cuenta con privilegios de administrador completos.

No hace falta decir que este vector de ataque puede ser el resultado de un error relativamente simple (uno que podría atribuirse al uso constante de patrones de codificación deficientes), pero su potencial para causar problemas continuos a nivel empresarial es inmenso.

De forma similar a la explotación de MOVEit, echemos un vistazo a este explicativo sobre SQLi, que simula el método de inyección y ejecución de SQL malicioso:
‍

Esta cadena de consulta y variable:
‍

string emailAddress = "contact@scw.com";
var query = $"SELECT u.UserName From Users as u WHERE u.Email = '{emailAddress}'";


dará como resultado la siguiente consulta:
‍

var query = $"SELECT u.UserName From Users as u WHERE u.Email = 'contact@scw.com'";
‍

… y con una entrada maliciosa diseñada:
‍

string emailAddress = "contact@scw.com'; DELETE FROM Invoices WHERE Id = 2;--";
var query = $"SELECT u.UserName From Users as u WHERE u.Email = '{emailAddress}'";
‍

se convertirá en:
‍

var query = $"SELECT u.UserName From Users as u WHERE u.Email = 'contact@scw.com'; DELETE FROM Invoices WHERE Id = 2;--'";
‍

¿Cómo se ve esto en ejecución?

SQL injection code snippet attempting to delete invoice records by injecting into email query.

Ten en cuenta que, debido a la concatenación de cadenas, la entrada se interpreta como sintaxis SQL. Primero, se añade una comilla simple para asegurar que la sentencia SELECT sea una sintaxis SQL válida. A continuación, se añade un punto y coma para terminar la primera sentencia.

Una vez hecho esto, se añade una sentencia DELETE válida, seguida de dos guiones para comentar cualquier carácter posterior (la comilla simple). Se podría añadir fácilmente una sentencia UPDATE, por ejemplo, si el SQL malicioso tuviera como objetivo actualizar los roles o contraseñas de los usuarios.
‍

Pruébalo tú mismo en esta misión interactiva:
‍

>>> JUGAR LA MISIÓN MOVEit
‍

Aunque es relativamente sencillo, la inyección SQL sigue siendo un vector de ataque potente y demasiado común. En el caso de MOVEit, este exploit permitió la instalación de una puerta trasera dañina y una serie de ataques posteriores de gravedad similar.

¿Cómo puedes mitigar el riesgo de inyección SQL?

Para cualquier empresa que utilice MOVEit en sus operaciones, es imperativo seguir los consejos de remediación recomendados por Progress Software. Esto incluye, entre otras cosas, aplicar parches de seguridad con carácter de urgencia.

Para la inyección SQL en general, consulta nuestra guía completa.

¿Quieres aprender más sobre cómo escribir código seguro y mitigar riesgos? Prueba nuestro desafío de inyección SQL gratis.

Si te interesa obtener más directrices de programación gratuitas, echa un vistazo a Secure Code Coach para mantenerte al día con las mejores prácticas de codificación segura.

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.