Spain/Projects/DNIe-3

DNIe-3: Vulnerabilidades de seguridad en los componentes cliente de las aplicaciones web basadas en el DNIe

 * Fecha de inicio: Febrero 2012


 * Descripción: El propósito del tercer subproyecto de OWASP DNIe, "Vulnerabilidades de seguridad en los componentes cliente de las aplicaciones web basadas en el DNIe" (DNIe-3), es proporcionar información y detalles técnicos de las vulnerabilidades más comunes en los componentes cliente (controles ActiveX y applets Java) de las aplicaciones web que utilizan el DNIe para la autenticación de usuarios, y para los procesos de creación y verificación de firmas.


 * Objetivo: El objetivo principal es reflejar las vulnerabilidades más comunes en los componentes cliente de las aplicaciones web que hacen uso del DNIe. El análisis se centra en todo tipo de vulnerabilidades en los componentes cliente (controles ActiveX y applets Java) de las aplicaciones web en dos áreas diferenciadas: vulnerabilidades que afectan a la interacción del componente cliente con la propia aplicación web y su funcionamiento, y vulnerabilidades adicionales del componente cliente que reducen la seguridad del sistema del usuario donde han sido instalados. Esta información permitirá a la comunidad española de seguridad y desarrollo de aplicaciones web conocer las vulnerabilidades y errores de seguridad presentes actualmente en componentes cliente disponibles en entornos reales, y así poder evitarlas mediante la aplicación de las recomendaciones y mejores prácticas asociadas (qué serán detalladas en una actividad futura).

NOTA: Los resultados de estas vulnerabilidades han sido obtenidos tras la realización de diferentes actividades de investigación sobre los componentes cliente de aplicaciones web españolas que hacen uso del DNIe, tanto en el sector público (Administraciones Públicas o AAPP) como en el sector privado (financiero, seguros, infraestructuras, telecomunicaciones, etc).


 * Alcance: Esta actividad se centra en evaluar todo tipo de vulnerabilidades asociadas a los componentes clientes de las aplicaciones web que hacen uso del DNIe. Los componentes comúnmente utilizados, applets Java y controles ActiveX, pueden disponer tanto de capacidades de autentificación del usuario mediante el DNIe u otros certificados, como de creación y verificación de firma electrónica. Todos ellos se incluyen en esta actividad y serán objeto de análisis, independientemente de su funcionalidad.


 * Resultados: En primer lugar es necesario identificar la lista de componentes cliente utilizados habitualmente en las aplicaciones web que hacen uso del DNIe, tanto comerciales como gratuitos o de código abierto. La información de las vulnerabilidades de seguridad más comunes en aplicaciones web basadas en el DNIe serán publicadas en la página web del proyecto OWASP DNIe en forma de presentaciones, guías o documentos que ayuden a entender las debilidades y riesgos de seguridad de estas aplicaciones web. Adicionalmente, el proyecto facilitará a los investigadores de seguridad la publicación responsable de vulnerabilidades (responsible full disclosure) específicas existentes en componentes desarrollados por terceros.


 * Participación: El proyecto OWASP DNIe invita a la comunidad de seguridad y desarrollo de aplicaciones web que hacen uso del DNIe a participar en esta actividad, compartiendo sus conocimientos, vulnerabilidades identificadas, herramientas de auditoría, mejores prácticas para incrementar la seguridad de estas aplicaciones, etc, a través de la lista de correo electrónico del capítulo español de OWASP, o contactando directamente con José A. Guasch (jaguasch -AT- gmail.com).

RESULTADOS DNIe-3: Vulnerabilidades de seguridad en los componentes cliente de las aplicaciones web basadas en el DNIe
La seguridad de las aplicaciones web basadas en el DNIe fue analizada durante la conferencia Rooted CON 2012 que se celebró en Madrid del 1-3 de marzo de 2012, y en concreto en la ponencia "Seguridad de aplicaciones web basadas en el DNIe" impartida por Raúl Siles y José A. Guasch.

Listado de componentes cliente que hacen uso del DNIe
El listado que aparece a continuación se ha obtenido recopilando información de diversas fuentes, entre las que destacan:


 * Catálogo de aplicaciones que utilizan DNI-e en zonatic
 * Soluciones de Autenticación y certificación digital en Inteco

Vulnerabilidades comunes en componentes cliente
A lo largo de los años, se han visto diferentes vulnerabilidades que pueden afectar a componentes ActiveX. Los tipos de vulnerabilidades son los que podrían afectar a cualquier otro tipo de software:


 * Ejecución de comandos y código
 * Desbordamientos de búfer, desbordamientos de pila, de heap...
 * Lectura, escritura, sobrescritura y eliminación de ficheros
 * Denegación de servicio
 * Evasión de restricciones
 * Acceso a información sensible

Tomando como fuente la lista de la Common Vulnerabilities and Exposed (identificadores CVE) de la entidad Mitre, en la que se recopilan la amplia mayoría de las vulnerabilidades existentes, realizamos la búsqueda de vulnerabilidades que afectan a componentes ActiveX:

Se obtienen más de 800 entradas CVE, casi un 2% del total de vulnerabilidades registradas desde 1999. Cogemos el total, y vamos a clasificarlas según la vulnerabilidad que suponen, obteniendo los siguientes datos:




 * Buffer Overflows - 46.02%
 * Gestión de ficheros - 17.45%
 * Ejecución de código - 15.22%
 * Denegación de servicio - 9.84%
 * Ejecución de comandos - 5.74%
 * Descarga remota - 2.34%
 * Acceso a información sensible - 0.94%
 * Evasión de restricciones - 0.94%
 * Acceso a registro - 0.70%
 * Instalación arbitraria - 0.23%
 * Vulnerabilidad desconocida - 1.17%

Tras estas estadísticas, vamos a centrarnos en las vulnerabilidades del segundo puesto del ranking: las referentes a gestión de ficheros. Dentro de este grupo nos encontramos vulnerabilidades en componentes ActiveX las cuales al ser explotadas, permiten la lectura, sobrescritura, creación y eliminación de ficheros. Se eleva la criticidad si además el usuario no se percata de estos accesos no autorizados a su sistema de ficheros.

Para el caso de la lectura, escritura y eliminación, como es obvio, es necesario conocer la ruta exacta del fichero en el equipo local del usuario en cuyo navegador se ejecuta el componente, pero como todos sabemos, existen multitud de ficheros en Windows de los que conocemos su ruta completa. Además, recordemos que estos componentes suelen requerir privilegios elevados para ser ejecutados, por lo que si no se establecen unos limites acotados, podremos acceder y modificar cualquier fichero del sistema:


 * %WINDIR%\System32\drivers\etc\hosts -> Fichero hosts de Windows
 * %USERPROFILE%\ntuser.dat -> Con información del usuario
 * %WINDIR%\system32\config\AppEvent.Evt -> registro de eventos de Aplicación
 * %WINDIR%\system32\config\SecEvent.Evt -> registro de eventos de Seguridad
 * %WINDIR%\repair\sam -> Almacena hashes de contraseñas de usuarios
 * %SYSTEMDRIVE%\boot.ini -> información del proceso de inicio de Windows

Veamos algunos ejemplos de vulnerabilidades en componentes, que permitan aprovechar alguna funcionalidad para la gestión posterior de ficheros en un equipo víctima dónde se esté ejecutando:


 * ADOBE CVE-2005-0035 - Vulnerabilidad del componente web de Adobe Acrobat que permitía determinar la existencia de ficheros en el sistema aprovechando una de las funciones, únicamente conociendo su ruta exacta.


 * ORACLE CVE-2010-3595 - Vulnerabilidad del componente Oracle Document Capture de Oracle que permitía leer ficheros sabiendo su ruta completa.


 * IBM CVE-2004-2663 - Vulnerabilidad del control ActiveX Access Support eGatherer de IBM con la que era posible la creación de ficheros con contenido arbitrario.


 * ChillKat CVE-2008-5002 - Método inseguro en el control ChillKatCrypt2 del ActiveX Chillkat Crypt que permite la creación y sobrescritura de ficheros.


 * SonicWall CVE-2007-5815 - En el componente WebCacheCleaner de la VPN-SSL de SonicWall existía una función que permitía la eliminación de ficheros conociendo su ruta completa.

Vulnerabilidades específicas de componentes cliente que hacen uso del DNIe (boletines de seguridad)
...Próximamente...

OWASP DNIe
Esta actividad o subproyecto (DNIe-3) forma parte del proyecto OWASP DNIe.