Fallo de seguridad permitía descargar la foto del DNI de todos los peruanos

A mediados de abril encontramos y reportamos que un problema en una web de RENIEC permitía descargar la foto de todos los DNIs del Perú, de manera sencilla y automática. Todo esto, sin sonar ninguna alarma o esquivar la seguridad del sistema.

El sitio web y el acceso a las fotos

El sitio web problemático era el Padrón Nominal, un sistema desarrollado por RENIEC para el Ministerio de Salud usado en centros de salud del país para hacer control de salud de los niños menores de 6 años.

La filtración de las fotos se debía a que el sistema accedía a una dirección web para mostrar la foto de RENIEC asociada a un DNI. Entonces, por ejemplo, para mostrar la foto de Pedro Pablo Kuczynski el sistema usaba la siguiente dirección:

http://padronnominal.reniec.gob.pe/padronn/imagen_ciudadano/img_menor.do?nu_dni=MDY0NzcyNzc=

El código «MDY0NzcyNzc=» al final de la dirección es en realidad el número de DNI de PPK (06477277) convertido en números y letras usando la herramienta «base64». Este sistema de ofuscación convierte un texto o número en una cadena de letras y números. Es como multiplicar un número por otro; si sabes uno de los dos números y el resultado de la multiplicación, puedes usar una división para averiguar el otro número.

Base64 funciona de forma similar: el número de DNI es multiplicado siempre por el mismo número mágico. Como conocemos el número mágico (base64), podemos convertir cualquier DNI en el código que el sistema usa.

Por ejemplo, el DNI de Martín Vizcarra (04412417) equivale a la siguiente dirección:

http://padronnominal.reniec.gob.pe/padronn/imagen_ciudadano/img_menor.do?nu_dni=MDQ0MTI0MTc=

Vale decir que ya ninguna de estas direcciones funciona desde que se reportó el problema.

Descargar un álbum de todas las fotos de los peruanos

Como parte de nuestras pruebas estándar para este tipo de casos, siempre revisamos si es posible automatizar estas filtraciones. En este caso, probamos si era posible hacer que una computadora descargue automáticamente todas las fotos que RENIEC estaba exponiendo (lo cual incluía todas las fotos de todos los DNIs).

Con unas cuantas líneas de código muy sencillo, se podían descargar automáticamente cientos de imágenes en segundos.

Esto era potencialmente fácil porque los DNIs en Perú son números secuenciales, es decir al DNI 06477277 le sigue el DNI 06477278, y luego el DNI 06477279, etc. Hicimos el intento y nos dimos cuenta que RENIEC no aplicaba límites a la cantidad de descargas que una sola computadora podía hacer.

En el siguiente video pueden ver una prueba de concepto de la vulnerabilidad, y un ejemplo de la descarga automática de fotos:

Esto quiere decir que para descargar las fotos de todos los DNIs del Perú, desde el 00000000 hasta el 99999999, era cosa de iniciar nuestro pequeño robot en el 00000000, salir a tomar un café, y regresar a encontrar el álbum de fotos más completo del Perú.

Nuestro reporte y la solución del Estado

Descubrimos el problema el martes 17 de abril de este año y en la siguientes horas lo comunicamos a PeCERT, la oficina de coordinación para emergencias en redes del Estado. Tras explicarles la sucedido, ellos coordinaron la baja completa de la plataforma ese mismo día y la implementación de una posible solución a la vulnerabilidad.

Días después, tuvimos una reunión con PeCERT en la PCM. Nos agradecieron por el aviso y fueron receptivos a nuestras preocupaciones. También nos confirmaron que el problema estaba solucionado y que pronto nos llegaría un reporte de ello. Sin embargo, luego de esta reunión no volvimos a saber de PeCERT o RENIEC. No sabemos si efectivamente se generó o no el reporte, o qué otras medidas se tomaron, además de las que nos mencionaron durante la reunión.

Aunque se nos dijo que desde nuestro reporte el sistema de Padrón Nominal pasaría a ser accesible solo a ciertas direcciones IP, no tenemos constancia de que ello esté sucediendo. Además, se nos dijo que todos los sistemas web en el Estado empezarían a vigilar por automatizaciones como la que permitía descargar cientos de DNIs en segundos, y que se instalarían controles de acceso para que sistemas como el Padrón Nominal solo se puedan acceder desde las instituciones donde se usan. Tampoco tenemos certeza de esto, de hecho hasta el día de hoy aún se puede acceder al Padrón Nominal desde cualquier ubicación.

Al jueves 7 de junio de 2018, el Padrón Nominal aún es accesible desde cualquier ubicación, contrario a lo que se nos dijo en abril.

Otra cosa que tampoco podemos afirmar es si este problema fue aprovechado en algún momento por un tercero. Después de todo, una base de datos con la foto y DNI de todos los peruanos es un botín muy interesante para cualquiera. No creemos que RENIEC pueda verificar esto con certeza, especialmente más atrás de un par de meses, pues entendemos que no llevaban ni monitoreaban registros de este tipo de accesos antes.

Otro descuido del Estado

Este hallazgo es el tercero que hacemos en sistemas web del Estado en los últimos diez meses. En mayo del año pasado reportamos cómo un tremendo descuido en la encuesta LGBTI de INEI ponía en grave peligro a las personas que respondían la encuesta porque permitía descargar todos sus datos personales: nombre, teléfono, dirección, también de forma sencilla y automática. En setiembre encontramos que también con simplemente cambiar una dirección web, se podía acceder a los datos de todos los estudiantes universitarios, registrados en la base de datos de carnés universitarios de SUNEDU, nuevamente, de manera sencilla y automática.

Aunque esta experiencia con RENIEC no fue totalmente negativa, nos preocupa que hayan problemas tan graves en el Estado cuando se trata de desarrollo de sistemas, programación, o simplemente el manejo de información personal. Los problemas que hemos venido detectando y reportando no son especialmente complejos, y son casi descuidos de novatos. Sin embargo, estos descuidos tienen el potencial de poner en peligro a mucha gente (como con la encuesta de INEI), o exponer la información de miles de jóvenes peruanos (como con SUNEDU), o, literalmente, a absolutamente todos los peruanos como ahora.

En Hiperderecho consideramos que el Estado debería dar el ejemplo en el cuidado de nuestra información personal. Nos preocupa que con el poco tiempo que hemos dedicado a buscar y analizar este tipo de problemas, hayamos podido encontrar varios tan simples pero graves.

Este reporte es parte de nuestra investigación Identidad Biométrica en Perú, sobre el uso de datos personales y biometría por parte del Estado financiado por Privacy International. El informe incluye más datos de interés, como por ejemplo cómo está manejando RENIEC nuestras huellas dactilares, qué software se usa para verificarlas, entre otras cosas.

El reporte completo puede descargarse aquí y aquí puedes leer más sobre nuestros hallazgos.

7 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *