Las preguntas del eCenso*

*Fallas reportadas oficialmente al colCERT a través del correo contacto@colcert.gov.co

Continuando con la serie de reportes que hemos enviado al DANE por medio de colCERT que permitieron corregir la posibilidad de registro masivo y suplantación de ciudadanos y la fuga masiva de datos personales obteniendo la totalidad de los datos del documento de identidad de lo usuarios no registrados, en esta oportunidad vamos a describir una falla que pudo permitir conocer la arquitectura de la aplicación y probablemente alterar las preguntas, valores y registro del eCenso.

Luego de la polémica en torno al eCenso y los reportes anteriores el DANE cambió la arquitectura de su aplicación. De un desarrollo monolítico en PHP pasaron a dos backends que se encargan de proveer los datos a la aplicación web.

El primero de ellos realiza la verificación de los datos de los ciudadanos y está probablemente conectado a la registraduría. En un reporte pasado mostramos que era posible obtener los datos de los documentos de identidad de los ciudadanos no registrados en el eCenso sin ninguna protección.

https://back.dane.gov.co:9000

El segundo backend probablemente desarrollado en JAVA se encuentra en el endpoint

https://back.dane.gov.co:9002

Este backend es el encargado de proveer los datos a la aplicación web del eCenso y por tanto provee datos como nombres de ciudades, departamentos, comunidades indígenas, entidades del gobierno y demás valores necesarios en la interfaz de usuario.

Sin embargo nos llamó la atención que la interfaz de swagger estuviera disponible en el endpoint ya que en este tipo de aplicaciones debería estar restringido.

Swagger disponible en el endpoint

Teniendo en cuenta que swagger es una herramienta que permite generar y probar una API de un archivo de especificación si lograbamos encontrar el archivo de especificación tendríamos conocimiento de la API sus endpoints y métodos permitidos. En no más de 4 pruebas logramos localizar el archivo.

API Aplicación web eCenso

Nos llamó la atención que adicional a los endpoints usuales existían otros que permitían borrar los dominios (nombres de ciudades, departamentos, entidades del gobierno,etc) así como crear y quizás modificar las preguntas del registro en el eCenso y las preguntas del censo. Por razones obvias no probamos lo que nos mostraba el archivo de especificación y procedimos a informar inmediatamente al DANE por medio de colCERT.

API para Crear Preguntas del registro en el eCenso

REPORTE

Invitamos a las personas y empresas de la comunidad informática a realizar auditorías independientes de seguridad a los productos y a reportar de forma responsable a las autoridades que como en este caso atendieron amablemente y corrigieron prontamente en beneficio de la ciudadanía.

Dada la importancia del tema y ya que puede servir de ejemplo de cómo no hacer un sistema de autenticación de usuarios hemos decidido documentar y publicar el caso en su totalidad. Para más información contáctenos en info@advisability.co o en la página https://www.advisability.co en donde encontrará nuestra llave PGP para comunicación segura.

Cronología

  • 20/03/2018 — Aviso al colCERT de la falla de enumeración por medio del correo electrónico contacto@colcert.gov.co usando PGP.
  • 23/03/2018 — Detectamos que la falla fue solucionada. Evento que pudo ser en fecha anterior a nuestra verificación.
  • 04/04/2018 — Publicación

--

--

Advisability
advisability ! Confía, pero verifica !

Software a la medida, Pentesting, Auditoría en Seguridad, Inteligencia Comercial, Venta y configuración de equipos de seguridad.