Esta publicación se basa en nuestro reporte en PDF y nuestras evidencias.
DeepSecurity es una empresa de ciberseguridad con reconocimiento nacional e internacional la cual realiza constantes investigaciones en distintos temas respecto a ciberseguridad y ciberinteligencia.
Es importante indicar DeepSecurity no ha recibido ningún beneficio económico fruto de esta investigación y su único fin es reportar y demostrar fallos de ciberseguridad que venían siendo usados por ciberdelincuentes para beneficiarse con los bonos ofrecidos por el gobierno peruano. DeepSecurity es una empresa 100% peruana y de una trayectoria intachable. El presente informe se basa en las buenas prácticas de seguridad para aplicaciones web “OWASP Top 10” como estándar para tipificar las vulnerabilidades presentadas.
Durante nuestras investigaciones de ciberinteligencia, encontramos un grupo en Telegram donde se mencionan distintos temas desde hacking de aplicaciones web hasta robo de tarjetas (carding). Al realizar el análisis de los indicios encontramos algunos de los 550 ciberdelincuentes miembros de este grupo publicaban información sobre un fallo en la web del bono universal que permitía apropiarse del bono de los beneficiarios. Como investigadores de ciberseguridad certificados y 100% profesionales, seguimos la ruta de las evidencias dejadas por los ciberdelincuentes para validar si la vulnerabilidad era real.
Paso 1: Ingresar DNI y fecha de emisión del DNI.
Paso 2: Responder las consultas de autenticación basados en datos de RENIEC, como nombre del padre de la madre y lugar de nacimiento.
Paso 3: Ingresar un número de teléfono donde se enviará la clave SMS para el cobro del bono.
Paso 4: El código SMS enviado es usado en el cajero automático (ATM) para realizar el retiro del dinero.
El mayor problema de seguridad que tuvo el sistema del bono está relacionado con la opción de “captcha” la cual no funcionaba.
¿Qué es captcha?
Es ese recuadro con imágenes que dice «No soy un robot».
¿Para qué sirve?
Cada vez que se envía una consulta de DNI, la opción “captcha” solicita que resuelvas un desafío basado en imágenes que pertenecen a la misma categoría, una vez que lo resuelves, el formulario puede ser enviado. Sin embargo, el “captcha” encontrado en el sitio web de Bono Universal (bonouniversalfamiliar.pe) y Bono Independiente (bonoindependiente.pe) no estuvo bien implementando motivo por el cual se podían enviar el formulario de forma masiva (ilimitada) usando herramientas automatizadas.
¿Qué quiere decir esto?
Que un robot (programa que envía peticiones masivas) podría intentar autenticar en el portal n números de DNI sin tener que resolver la adivinanza de imágenes, obteniendo todos los números DNI con bono universal del Perú (Video completo de la explotación usando Burp Suite).
Este tipo de vulnerabilidades se encuentra bien identificada como “Configuración de Seguridad Incorrecta OWASP A6:2017” según lo indicado en las guías de buenas prácticas de seguridad conocidas como “OWASP TOP 10” que es un estándar reconocido internacionalmente.
Paso 1:
El equipo de DeepSecurity generó una lista de 2500 números de DNI usando un programa (script) desarrollado en python*. Envió la lista de 2500 peticiones y en segundos se pudo confirmar la vulnerabilidad. Cuando el servidor del bono recibía un DNI que era beneficiario del bono, se recibía como respuesta el número 100 mientras que cuando se consultaba un DNI no beneficiado devolvía el número 101.
Hasta ese punto el equipo de DeepSecurity podía encontrar los DNI que si eran beneficiarios (Descargar video del ataque automatizado). Posteriormente hicimos el mismo ataque enfocados en la fecha de emisión del DNI, como el servidor no contaba con la protección anti peticiones robotizadas, realizamos peticiones masivas sobre la fecha de emisión hasta confirmar pudieron ser halladas. 2500 DNIs y 1500 fechas pueden ser probadas en menos de 5 minutos.
Paso 2:
Hasta este punto se había autenticado al beneficiario (ciberdelincuente) en el sistema del bono universal, posteriormente el sistema te pide que ingreses datos como:
Que en realidad no profundizaremos mucho más en mencionar como conseguir esta información dado que el cibercriminal podría inclusive comprar de forma ilegal una ficha de la víctima por menos de S/.20.
Paso 3:
El tercer problema de seguridad que tenía el portal, era que el teléfono móvil que se debía registrar, podía ser de cualquier persona y no necesariamente debía estar a nombre del beneficiario, por lo que el ciberdelincuente podía poner su teléfono y recibir la clave SMS para cobrar el bono. Importante mencionar en esta parte que OSIPTEL pide al menos un DNI para registrar un teléfono por lo que podría ser un interesante método de verificación.
Chips usados por los ciberdelincuentes para suplantar a las víctimas.
Luego del reporte realizado por DeepSecurity al Equipo de Respuesta ante Incidentes de Seguridad Digital Nacional (PECERT), se pudo confirmar el día miércoles 27 de mayo, que la vulnerabilidad relacionada al control de captcha ya había sido solucionada.
Se confirmó al reutilizar el captcha se recibía error 400 Bad Request.
También se puede observar que se agregó la opción reclamos en la parte superior de la página bono universal.
Web actual – Registra tu caso.
Web del Bono Universal
Línea de tiempo obtenida del documento de ciberinteligencia de DeepSecurity
1.- A fin de evitar que las aplicaciones web puedan ser usadas para conseguir de forma masiva DNI con bono asignado y luego usar la misma página web con el fin de obtener la fecha de emisión o fecha de nacimiento de beneficiario, recomendamos se haga una adecuada implementación de control de CAPTCHA actualmente ya en uso.
El control de captcha presentando en ambos sitios web mencionados:
Al obtener esta información, se puede iniciar el trámite de registro de datos.
2.- Durante el registro del beneficiario, se utiliza como método de validación los datos RENIEC con el objetivo de autenticar el usuario. Sin embargo, estos datos pueden ser encontrados en fuentes abiertas o en distintas aplicaciones de Internet. Este punto hace viable el cambio de datos incluido el nuevo número de celular, al cuál se envía la clave de cobro vía SMS. En ese caso recomendamos implementar controles de información cruzada con otras entidades.
3.- Así mismo se hace la observación al registro del número de celular, el que no cuenta con una validación de pertenencia al beneficiario del bono.
Este tipo de vulnerabilidades se encuentra bien identificada como “Configuración de Seguridad Incorrecta OWASP A2:2017” según lo indicado en las guías de buenas prácticas de seguridad conocidas como “OWASP TOP 10” que es un estándar reconocido internacionalmente.
Gracias por suscribirte a nuestro boletín.
Parece que hubo un error. Por favor reintenta más tarde.
Deep Security del Perú S.A.C - RUC 20600837622 | Realizado por WSI - Dinámica Digital