La posibilidad de Suplantación Masiva en el eCenso online*

Advisability
advisability ! Confía, pero verifica !
5 min readFeb 19, 2018

*Falla reportada oficialmente al colCERT a través del correo contacto@colcert.gov.co y corregida con éxito hacia el 8 de Febrero de 2018

En los últimos días se presentó una polémica en torno a la publicación en el blog de la ingeniera Juliana Peña acerca de malas prácticas de almacenamiento de contraseñas en el código incluído con el eCenso offline.

Adicional a esto se han documentado en las redes sociales otros hallazgos entre malas prácticas, posibles vulnerabilidades y otras curiosidades que sugieren que el código inicial del eCenso tenía otros problemas. Varios de estos reportes ya se han tenido en cuenta y se han corregido en la versión disponible online. La versión offline fue retirada por parte del DANE tras los primeros primeros reportes de problemas y no se ha vuelto a ofrecer hasta la fecha.

Sin embargo, un asunto que nos llamó particularmente la atención es cómo se realizaba la verificación de los ciudadanos en el proceso de registro en las primeras versiones.

El registro exitoso en el eCenso requería proveer un número de documento de identidad y la respectiva fecha de expedición del documento. Luego de pasar este control era posible llenar los datos sin ninguna verificación adicional. Cualquier nombre, cualquier fecha de nacimiento, sexo, email, etc. Comprobamos esto con nuestras propias cuentas y lo mismo hizo otra persona en nuestra presencia (ver video abajo). No había otra verificación de la identidad del ciudadano diferente al número de documento y la respectiva fecha de expedición.

En este video se evidencia, ocultando los datos personales, que es posible registrarse en el eCenso solo con la cédula y fecha de expedición y no se verifica nada más, el proceso no se termina de ejecutar ya que el algún punto hay una advertencia de que los datos deben ser verídicos y no es nuestra intención afectar el censo.

En las primeras versiones del eCenso online el procedimiento de autenticación mediante el cual el DANE verificaba que el ciudadano era quien decía ser dependía únicamente de conocer la combinación correcta del número de documento y su fecha de expedición y nada más. Luego podía llenar el eCenso con los datos que quisiera, sin más.

El diseño de un sistema seguro requiere que los factores usados para autenticar, en este caso el número de documento y fecha de expedición, no deben tener relación entre si para que si se conoce uno no se deduzca o se den pistas del otro. En el caso del eCenso lo único que se verificaba era la fecha de expedición que tiene relación con el número del documento. Este era un problema crítico.

EXPLOTACION

Un análisis superficial podría hacernos creer que es difícil suplantar a una persona por la necesidad de conocer la fecha expedición del documento y que se requiere adivinar esta fecha probando muchas combinaciones.

Sin embargo, abusar del eCenso online para suplantar ciudadanos y hacer registros masivos, y si se quería llenar el eCenso , era mucho más sencillo. ¿Por qué?

Como todos los ciudadanos colombianos, que tenemos algún documento de identidad, conocemos el número del documento y la expedición de nuestro propio documento podemos explotar esto.

Dado que la numeración de cédulas es consecutiva se espera que las cédulas cercanas a la propia tengan fecha de expedición igual o cercana. Entonces supongamos que nuestra cédula es 80.000.000 y la fecha de expedición es Enero 1 de 1980.

Podíamos tratar de registrarnos en el eCenso suplantando al ciudadano de la siguiente cédula: 80.000.001 probando con la misma fecha de la nuestra. Es probable que esta sea la fecha de expedición y pudiéramos registramos. En caso contrario probaríamos con la siguiente fecha: 2 de Enero de 1980 y sucesivamente hasta obtener la fecha correcta con muy pocos ensayos. Si no tuviéramos éxito en los primeros intentos de adivinar la fecha se abandonaría y continuaríamos con la siguiente cédula para evitar ser detectados.

En este video se muestra que es posible con pocos intentos adivinar la fecha de las cédulas consecutivas a la propia pasando el control de autenticación del eCenso, esto se realiza mediante el navegador con varias cédulas. En cada caso se usa el botón atrás y no se continúa el registro ya que existe una advertencia de no continuar si no se trata de la persona que está haciendo el trámite y no es nuestra intención afectar el eCenso.

Esta forma de autenticación era equivalente a tener las tarjetas bancarias de todos los usuarios (el número de cédula que es consecutivo) y saber que el PIN de la siguiente tarjeta a la nuestra tiene un PIN muy cercano al nuestro. Utilizando este método de explotación se podría obtener una gran cantidad de combinaciones de números de documento y fechas de expedición válidas y proceder a registrarnos y llenar el censo (el ataque también funcionaba en sentido contrario usando número de cédulas menores y restando fechas).

Por lo anteriormente expuesto concluímos que el diseño del eCenso online tenía una gran falencia en su proceso de autenticación y registro y permitía un ataque que pudo significar la suplantación masiva de usuarios con las implicaciones que tiene el bloqueo para los usuarios legítimos o la información falsa que puede proveer un usuario abusivo.

Desde el punto de vista informático es difícil detectar este ataque por el número mínimo de intentos requeridos para adivinar y la posibilidad de usar varias cédulas como semilla para el ataque.

Aunque es posible analizar los datos posteriormente para tratar de detectar y filtrar datos creados por suplantación de usuarios, como me sugirió un representante del DANE al reportar la falla, se pueden usar otras estrategias como saltar cédulas, y aunque tengamos los datos para la suplantación, evitar formar patrones que se pudieran filtrar fácilmente. Argumentar que existe la posibilidad de filtrar las cuentas comprometidas con un análisis posterior equivale a estar a favor de no tener puerta en la casa dado que tenemos un perro guardián adentro. Nadie debería tomar ese riesgo.

Dado que la probabilidad de emplear este tipo de ataque era alta (cualquier persona con muy pocos conocimientos técnicos podría intentar hacerlo con éxito incluso usando un navegador) y las consecuencias eran graves al comprometer la integridad del sistema esta se trataba de una vulnerabilidad crítica y decidimos reportarla y documentarla.

Si bien es cierto que el DANE dispone de un call center para reportar, esta se trata de una vulnerabilidad crítica por comprometer la integridad de la información o la denegación del servicio.

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

  • 30/01/2018 — Aviso al DANE por medio de un mensaje privado en Twitter de una vulnerabilidad crítica en el registro y autenticación del eCenso.
  • 31/01/2018 — Teleconferencia con un representante del DANE explicando la falla en su totalidad.
  • 02/02/2018 — El reporte se hizo oficialmente por medio del correo electrónico contacto@colcert.gov.co usando PGP. Se informó sobre la preparación de esta publicación.
  • 08/02/2018 — Detectamos que la autenticación fue reforzada con otros factores y cruces de datos y la falla fue solucionada.
  • 09/02/2018 — Un representante del DANE nos contactó para contarnos del nuevo proceso de autenticación y confirmar la solución. Se informó sobre esta publicación.
  • 18/02/2018 — Envío de esta publicación a las autoridades competentes.
  • 19/02/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.