martes, 26 de enero de 2010

Vulnerabilidad en el proceso de instalación

Esta vulnerabilidad está catalogada como moderada por el fabricante, pero no deja de ser curiosa puesto que se refiere al posible acceso a las contraseñas almacenadas en el proceso de instalación en sus archivos de registro. Esto se hace así como medida para poder llevar a cabo a posteriori nuevas instalaciones (actualizaciones, nuevos módulos a añadir, etc.), de forma desatendida, sin tanta implicación para el usuario como la impuesta para el proceso inicial en el que se instala el “núcleo” de la aplicación.

Es conveniente apuntar que esta vulnerabilidad afecta a versiones pasadas, más concretamente a la 7.0 y a la 2000 de SQL Server y no a las que aparecieron después de SQL Server 2005. Esto se basa principalmente en el modo de guardar las contraseñas de cada versión. Mientras que en la versión 7.0 estas se almacenaban en texto plano, para la versión 2000 se comenzaron a cifrar, pero utilizando un cifrado muy débil. De este modo cualquiera que tenga acceso a los ficheros afectados podría hacerse con unas credenciales de acceso al sistema, y si se junta una mala práctica en cuanto a la política de renovación de contraseñas y se ha facilitado la contraseña de administrador en la instalación, un atacante podría tomar el control total del sistema. En otros casos podrían conseguirse ciertos privilegios teniendo en cuenta que para llegar a este punto el atacante debe tener primero acceso al sistema.

Algo que debe cumplirse para que se almacenen las contraseñas es que el proceso de instalación se haya realizado siguiendo los siguientes modelos:

- Cuando se instala SQL Server en “Mixed Mode”, en cuyo caso el administrador tendrá que introducir unas credenciales que le identifiquen más adelante.
- Tanto en el modo anterior como en el modo por defecto de instalación (“Authentication Mode”) se da la opción al administrador de crear durante la instalación cuentas para sus usuarios. Esta es una medida muy común hoy en día, ya que tras finalizar la instalación ya estarán creadas las cuentas que se necesitan inicialmente para el sistema, con la comodidad que supone ese “apoyo” desde el proceso de instalación. Si se facilita esta información acerca de los logins creados, el instalador la guardará.

Si no fuese así, no es necesario guardar las contraseñas y la aplicación estaría libre de esta vulnerabilidad. En caso de que sean almacenadas, podrán guardarse bien dentro del archivo de instalación “Setup.iss”, en el registro de la instalación, o bien en archivo “remsetup.ini” para algunas versiones. Estos archivos van a permanecer en el servidor tras completarse la instalación con el peligro que esto conlleva, ya que esos usuarios con acceso a los directorios del sistema (basta con tener privilegios de acceso al sistema para ir a los directorios) pueden substraer la información y utilizarla en su provecho.

La vulnerabilidad está recogida en el boletín MS02-035 y en la base de datos CVE parece que está siendo modificada debido a la petición de alguno de los revisores. Este es un claro ejemplo de fallo de previsión ligado a dotar a los usuarios de ciertas “comodidades” que en última instancia, y si no se tienen en cuenta todos los detalles de operación, pueden repercutir en la seguridad del sistema en mayor o menor medida. Modelos que den más agilidad a la actividad de los usuarios no deberían por ello sacrificar la seguridad, para lo que deben plantearse escenarios de escalabilidad en cuanto al desarrollo de las aplicaciones que cuiden al máximo los detalles relativos a la información comprometida que estas van a manejar.

No hay comentarios:

Publicar un comentario