Vulnerabilidad crítica de inyección SQL en una base de datos empresarial de Starbucks

Un especialista en seguridad en páginas web dedicado al reporte de vulnerabilidades ayudó a corregir una falla crítica de inyección SQL que afectaba una base de datos empresarial de la famosa cadena de café Starbucks. La falla podría haber expuesto datos financieros y contables confidenciales.

Gracias a su descubrimiento, el experto Eugene Lim (también conocido como ‘spaceraccoon’) recibió una recompensa de 4 mil dólares, pagados a través del programa de reporte de vulnerabilidades de Starbucks, operado por la plataforma HackerOne.

Poznan, Poland – January 29, 2016: Starbucks, coffee company and coffeehouse chain, founded in Seattle, Wa. USA, in 1971; now the largest business of this kind in the world operates 23,450 locations

La base de datos comprometida almacenaba registros confidenciales de la compañía, como datos de impuestos, facturas e información de nómina de Starbucks; a su vez, la vulnerabilidad permitía a cualquier actor de amenazas con el conocimiento necesario acceder a estos registros sin autorización.

La vulnerabilidad fue descubierta por el experto en seguridad en páginas web en un formulario de carga de archivos HTML, lo que creó una forma de acceder a la base de datos. En específico, Lim descubrió que la falla era explotable usando solicitudes de carga HTTP con formato XML con una comilla simple codificada para el servidor ejecutando Microsoft Dynamics AX, una plataforma de software financiero y contable. Después de recibir el informe a mediados de abril, Starbucks comenzó el proceso de corrección de la falla; dos días después, la vulnerabilidad fue completamente solucionada.

Acorde a expertos en seguridad en páginas web, los primeros intentos de Lim para desplegar un ataque XXE (Entidad Externa XML) en el formulario de carga de archivos dentro de la infraestructura web de la compañía no fueron exitosos. Semanas después, el experto regresó al mismo endpoint y logró concretar un ataque de inyección SQL al darse cuenta de que una comilla simple codificada en XML provocaba un error en la base de datos. “A pesar de que la inyección de SQL es una variante de ataque conocida desde hace años, sigue siendo una vulnerabilidad realmente común en diversos sistemas corporativos”, afirma el experto. “Tal vez se encuentran con poca frecuencia, pero las inyecciones SQL definitivamente no están extintas, yo mismo he encontrado un par de ellas hace algunos días”, añadió.

Acorde a expertos en seguridad en páginas web del Instituto Internacional de Seguridad Cibernética (IICS) muchos desarrolladores recurren al uso de una función de envoltorio (wrapper), como Object Relational Mapping, para reducir el riesgo de inyección SQL. No obstante, en algunos casos se aplican consultas sin wrapper o con una mala configuración de esta función.

Además, los expertos advierten sobre las severas consecuencias que puede provocar una inyección SQL. “El problema es que las inyecciones SQL a menudo generan consecuencias críticas que incluso pueden conducir a escenarios de mucho mayor riesgo, como ejecución remota de código”, mencionan los expertos.

Puede que la recompensa de 4 mil dólares que el experto recibió por su reporte parezca pequeña en comparación con las cifras que se manejan en otros programas de recompensa por vulnerabilidades, pero vale la pena señalar que esta es la mayor cantidad que establece el programa de recompensas de Starbucks.

Aún así, Lim se dice satisfecho por su trabajo. “Puede que buscar recompensas de compañías más grandes traiga mayores beneficios, pero el dinero no es mi única motivación. Compañías como Starbucks responden de inmediato a estos reportes y permiten una mayor interacción; en este caso, el proceso de informe y corrección de la vulnerabilidad tomó menos de una semana y trabajar con ellos fue una buena experiencia”, mencionó.