Binary leaks: desde bases de datos de ciudadanos a contraseñas expuestas, los ejecutables de los gobiernos analizados

CSAs de ElevenPaths    10 septiembre, 2019
Binary leaks: desde bases de datos de ciudadanos a contraseñas expuestas, los ejecutables de los gobiernos analizados

Nuestro equipo de CSAs han realizado una serie de pruebas para evidenciar el estado actual de la seguridad de aplicaciones proporcionadas por gobiernos en diferentes países de habla hispana. Se realizó una revisión general de las potenciales debilidades en cuanto al desarrollo de software y cómo la falta de controles de seguridad adecuados podría ser aprovechadas por atacantes. Hemos descubierto desde contraseñas hasta bases de datos que no deberían ser públicas.

Los programas proporcionados por gobiernos deberían aportar (tanto o más que el resto) controles de seguridad apropiados para salvaguardar la confidencialidad, integridad y disponibilidad de la información. Mediante ellos se generan procesos de gestión información ciudadana como: trámites aduaneros o tributarios, gestión financiera y de contaduría, administración pública, servicios educativos, facturación electrónica, datos relacionados al sector hospitalario y de salud, DNI (firmas electrónicas) y muchos tantos que pueden contener información sensible sobre el ciudadano.

Hemos realizado un análisis general de las aplicaciones (archivos binarios) que las organizaciones gubernamentales ponen a disposición dentro de sus sitios web para que los ciudadanos los descarguen e instalen en sus equipos.

Metodología

En concreto se analizaron 62 aplicaciones con foco en la región de Hispanoamérica. A continuación, exponemos referencias de las aplicaciones y ciertos datos del contexto en que fueron analizadas.

  • 22 aplicativos están dirigidos para que las personas o empresas gestionen su información tributaria y declaración de impuestos y 5 dedicados a gestión de información de aduanas.
  • Se revisaron 15 programas que permiten gestionar información de la administración pública como: datos escolares, compras públicas, datos de ministerios, seguro social….
  • 10 aplicaciones permiten gestionar servicios electrónicos como emisión de certificados digitales, procesos de gestión pública y firma electrónica.
  • 6 aplicaciones para gestionar datos financieros, seguros y contaduría.
  • 4 programas para gestionar información de entidades sanitarias.

Es importante resaltar que las pruebas realizadas NO tienen como objetivo ataques a la infraestructura tecnológica de las organizaciones involucradas, acceder a información sensible de las organizaciones públicas o facilitar información que pudiera ligar una organización con los resultados mostrados en este informe. Este documento tiene como objetivo poner en contexto los riesgos que, derivados de fallos en el desarrollo o implementación del software, amenazan la seguridad de los ciudadanos o empresas usuarias. Esto último es especialmente importante porque muchos de estos programas están probablemente funcionando como parte del conjunto de aplicaciones instaladas dentro de las redes internas de empresas.

En base a las pruebas técnicas se buscaron debilidades en las aplicaciones mediante las que quizás los ciudadanos (usuarios) sin conocerlo, estén exponiendo información privada, datos sensibles de la entidad responsable de la aplicación o debilidades que puedan ayudar a comprometer el equipo donde está ejecutándose la aplicación. Entre algunas de las principales vulnerabilidades que se intentarán descubrir estarán, por ejemplo; debilidades que expongan información privada del usuario, falta de protección en el binario del programa, datos que viajen por canales inseguros, exposición de dato sensibles de configuraciones de los aplicativos.

Resultados

Presentamos algunos de los resultados más destacados.

Se detectaron aplicaciones que incluyen archivos de tipo MS Access (.mdb) que almacenan información con la que trabaja la aplicación. Revisando esta funcionalidad se evidenció que el 14% de las aplicaciones analizadas almacenan información sensible de manera insegura (texto plano) como usuarios y contraseñas, credenciales de aplicativo, o en algún caso credenciales de acceso a servidores. Si bien algunas de estas bases de datos solicitaban una clave para poder acceder, mediante la decompilación de código se pudieron obtener varias de estas contraseñas.

Con respecto a las medidas de seguridad tomadas en los binarios, hemos encontrado hasta 8 mitigaciones de seguridad que se consideran buenas prácticas a la hora de crear los programas. Previenen un impacto mayor en Windows en el caso de que contengan vulnerabilidades y sean explotadas.

En alguna decompilación de los binarios (sencilla al utilizar .NET) se pueden observar contraseñas de acceso a la base de datos.

Una buena práctica para eliminar una gran cantidad de fallos de seguridad al momento de desarrollar software, es prohibir el uso de funciones inseguras “deprecated” u obsoletas. Estas suelen estar señaladas por los lenguajes como vulnerables y muchas veces de la misma manera por los mismos fabricantes. Además, suele estar relacionado con el uso de versiones actualizadas de la tecnología de programación y librerías de terceros.

Conclusiones

De acuerdo al análisis realizado se desprenden las siguientes conclusiones de manera general:

  • En total se encontraron 148 funciones obsoletas o vulnerables que han sido usadas en el desarrollo de las 62 aplicaciones. Entre las que más ocurrencias encontramos destacan memcpy(), strlen(), strcpy(), strcat(), sprintf(), lo que puede determinar un grado relevante de inseguridad dentro del host donde se esté ejecutando estos programas.
  • En cuanto a los niveles de seguridad identificados en los binarios de nuestro estudio podemos indicar que tecnologías más recientes como CFG no están activadas en ninguno de los programas. Otro tipo de controles más conocidas como ASLR y DEP solo están presenten en el 30% de las evaluadas. Esto nos alerta que deberán integrar en el ciclo de desarrollo la activación de todas las características anti-exploiting posibles para elevar el nivel de seguridad de los binarios.
  • La protección del código fuente de estos programas está presente en solo 8 de 62 aplicaciones usan algún método de ofuscación, en algunos casos de manera parcial.
  • Solo el 8% utilizan certificados digitales para firmar digitalmente el programa y así, el ciudadano tenga un programa fiable donde pueda garantizar que el software no ha sido alterado o comprometido por una tercera parte.
  • Se evidenció que 17 aplicaciones establecieron canales de comunicaciones por la red hacia servidores de las entidades. Solo cuatro de ellos establecen canales seguros HTTPS y 13 envían toda la información a través de canales inseguros donde podrían interceptar los datos en tránsito.
  • 5 aplicaciones son detectadas como código malicioso en el momento de la ejecución.
  • Hemos revisado que en cuanto a la protección y fuga de datos en 20 de los 62 programas destaca principalmente el uso de datos de configuraciones (urls, ip privadas, usuarios, claves, API Keys, etc.) en texto plano, que deberían eliminarse si no son utilizados o donde deberían tomarse controles que permitan que estos datos sean ilegibles por un agente externo de la aplicación.
  • Detectamos 8 credenciales (usuarios y claves, JKS Keys, cadenas de Conexiones a Base de Datos…) incrustadas o en texto plano.

El informe completo disponible desde:

Deja un comentario

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