Vigilancia de seguridad

Microsoft anunció la iniciativa de Trustworthy Computing a principios de 2002, tras la aparición de varios virus y gusanos con perfil alto que causaron estragos en los sistemas de Windows, paralizaron departamentos de TI y los empresarios y consumidores debieron invertir grandes cantidades en la solución del problema.

En esta iniciativa, Microsoft entonó un mea culpa con respecto al registro del control de seguridad y realizó un cambio de rumbo instantáneo y un cambio de paradigma del software en desarrollo con especial énfasis en las características integrales y en la facilidad de uso para dar prioridad a la seguridad e integridad del software.

En agosto de 2003 apareció el gusano Blaster, lo que reforzó el entusiasmo de esta iniciativa de seguridad.

Los principios de la iniciativa de informática confiable son seguridad en el diseño, que trata de las filosofías de codificación segura; seguridad predeterminada, que pretende garantizar que los componentes de Windows® presenten unos valores predeterminados que ofrezcan la mayor seguridad posible; y seguridad en la implementación, que se relaciona con la creación de herramientas y orientación prescriptiva para ayudar a empresarios y consumidores en asegurar la infraestructura de Windows.

En términos generales, la iniciativa de Trustworthy Computing implementó mejoras en la seguridad; desafortunadamente, Windows XP no pudo aprovechar todas las ventajas porque se comercializó dos años antes de que se emprendiera la iniciativa. Aunque Service Pack 2, SP2, hizo grandes esfuerzos para incorporar dichas filosofías, no se pudieron hacer todos los ajustes de dicha iniciativa en Windows XP.

Por lo tanto, Windows Vista™ es el primer sistema operativo de escritorio de Microsoft que cumple con todos los objetivos de Trustworthy Computing.
Services Hardening de Windows Vista, una implementación específica del principio de seguridad predeterminada de Trustworthy Computing (consulte la figura 1), es una importante capacidad nueva diseñada para frustrar comportamientos de servicio inadecuados que puede provocar gran parte del malware actual. Service Hardening ayuda a que Microsoft realice grandes avances en el cambio del comportamiento predeterminado y el perfil de seguridad de los servicios de Windows.

Servicios de riesgo

Los servicios de Windows, anteriormente conocidos como servicios NT, son aplicaciones de larga ejecución que se ejecutan en sesiones propias de Windows. Los servicios se pueden iniciar automáticamente al iniciar el equipo, se pueden pausar y reiniciar, no muestran normalmente ninguna interfaz y se pueden ejecutar en el contexto de seguridad de cuentas distintas de la cuenta de inicio de sesión del usuario o de la predeterminada del equipo. Por lo tanto, los servicios de Windows presentan una gran ventaja para determinados tipos de desarrollo de aplicaciones y para los usuarios finales que necesiten usar dichas aplicaciones. Sin embargo, dada su eficacia y flexibilidad, los servicios de Windows han sido tradicionalmente vulnerables a los ataques por diversas razones.

En primer lugar, anteriormente los servicios de Windows se solían ejecutar en cuentas de Windows con muchos privilegios, como la cuenta del sistema local. Si un malware determinado pone en peligro un servicio que se ejecuta en la cuenta del sistema local, dicho malware tiene una excelente oportunidad para realizar todo lo que desee en ese sistema. Imagine, por ejemplo, el servicio de llamada a procedimiento remoto (RPC) en Windows XP. Antes de Windows XP SP2, el servicio de RPC se ejecutaba en la cuenta del sistema local, que es lo que permitía que Blaster, Welchia y otros gusanos realizaran tareas administrativas una vez que se aprovechaba la vulnerabilidad de RPC.

En segundo lugar, muchos servicios se realizan orientados a Internet, lo que ofrece al malware la posibilidad de atacar mediante la creación de conexiones entrantes con dichos servicios a través de la red y permite que un servicio infectado realice una conexión de salida para infectar a otros sistemas o realizar alguna otra actividad ilícita, como el reenvío de supervisión de pulsación de teclas. La mayoría de los gusanos e infecciones de malware actuales se producen mediante algún método basado en conexiones de red.

Por último, los servicios son normalmente de larga ejecución, lo que significa que se ejecutan desde que arranca un sistema hasta que se cierra. Esto les encanta a los autores de malware porque significa que pueden buscar los defectos de un servicio durante todo el tiempo que el sistema está activado, de modo que el malware dispone de todo el tiempo necesario para realizar sus actividades malintencionadas.

Services Hardening

Son servicios que se han reforzado y asegurado mediante sistemas de protección en Windows Vista de cuatro formas: ejecución de servicios con privilegio mínimo, aislamiento del servicio, acceso restringido de red y aislamiento de la sesión 0. Analizaremos detalladamente cada punto.

Ejecución con privilegios mínimos Muchos servicios de Windows se han ejecutado anteriormente en el contexto de la cuenta del sistema local (la cuenta más importante en Windows). La cuenta del sistema local tiene privilegios y derechos de usuario como poder tener acceso a cualquier objeto del sistema o al perfil de otro usuario, suplantar a usuarios, abrir claves de registro confidenciales como HKLM\SECURITY y presentar las credenciales del equipo a los servidores remotos. Puesto que los autores de malware estarían encantados de tener este nivel de acceso y control en Windows, cualquier servicio que se ejecute en el contexto de seguridad del sistema local se convertirá en un objetivo jugoso.

Resulta que aunque se hayan configurado varios servicios de Windows para su ejecución en la cuenta del sistema local, muchos de ellos sólo necesitan un subconjunto pequeño de los privilegios de pertenencia exclusiva a la cuenta del sistema local. Desafortunadamente, Windows XP y las versiones anteriores de Windows funcionan según el sistema “todo o nada”, es decir, no ofrecen mecanismos para seleccionar los privilegios necesarios. Por lo tanto, es inevitable que muchos servicios de Windows se acaben ejecutando innecesariamente con un exceso de privilegios de seguridad.

Service Hardening de Windows Vista soluciona este problema mediante el concepto de privilegios mínimos en la configuración de servicios. Este concepto permite que los servicios se ejecuten con el menor número de privilegios necesarios para su funcionamiento, en lugar de forzar la ejecución con todos los privilegios predeterminados asignados a la cuenta usada para iniciar sesión.

Por ejemplo, puede que un servicio deba actuar como parte de un sistema operativo, pero no deba crear un token de seguridad. Con privilegios mínimos, puede quitar el privilegio de crear tokens. Por consiguiente, se reducen los daños que un atacante puede ocasionar en caso de que dicho servicio se hiciera vulnerable a un ataque. Los desarrolladores pueden usar herramientas de línea de comandos como SC.exe (consulte la figura 2) o usar métodos de programación para definir y especificar los privilegios que necesita un servicio determinado. Microsoft ha aplicado de serie el concepto de privilegios mínimos para reducir los privilegios predeterminados en todos los servicios preinstalados de Windows Vista.

Figura 2 Definición de privilegios de servicios de Windows Vista mediante opciones de comando SC (Hacer clic en la imagen para ampliarla)
Aislamiento del servicio En las versiones de Windows anteriores a Windows Vista, cuando un servicio necesita tener acceso a un objeto con privilegios (como un archivo o una clave de registro confidencial), los servicios obtienen el acceso mediante uno de estos tres métodos: usar la cuenta del sistema local para tener acceso al objeto; reducir el nivel de seguridad en la clave o archivo del Registro para habilitar una cuenta de servicio con menos privilegios para obtener acceso; o bien crear una cuenta específica para el servicio y permitir que sólo esa cuenta tenga acceso a los objetos.

Aunque todos estos planteamientos funcionan, existe un problema elemental en cada uno. Los dos primeros implican riesgos inherentes y el tercero introduce la complicación de administrar manualmente las contraseñas en las cuentas nuevas.

Imagine, por ejemplo, que un programa antivirus instala un servicio que necesita acceso a varios objetos confidenciales del sistema, como el archivo con la firma del virus y las entradas de registro pertenecientes al software antivirus. Si el servicio de antivirus se ha configurado para usar la cuenta del sistema local o, con dicho propósito, cualquiera de las otras cuentas de seguridad integradas para obtener acceso a los objetos, esto significaría que si un malware infecta otro servicio de Windows que use esa cuenta, dicho malware podría tener acceso y modificar los archivos de firmas de antivirus, alterar la configuración del registro relacionado con el modo de funcionamiento del software de antivirus o simplemente desactivar el servicio de antivirus por completo. De hecho, el malware actual usa exactamente algunas de dichas técnicas para mantenerse oculto y activo.

Windows Vista resuelve estos asuntos de seguridad y facilidad de uso mediante el aislamiento del servicio, que permite a un servicio reservar un objeto para su uso exclusivo protegiendo el recurso (como el acceso a un archivo o clave de registro) mediante una entrada de control de acceso que contenga un Id. de seguridad (SID) de servicio. De este modo, el servicio de antivirus descrito en el ejemplo se puede ejecutar en una cuenta con pocos privilegios, aunque sigue teniendo acceso a archivos de firmas o claves de registro confidenciales. Para habilitar este acceso, el servicio de antivirus (que se ejecuta en esta cuenta con pocos privilegios) debe tener un SID asignado por Windows Vista. Después de la asignación del SID, el programa antivirus podrá modificar las listas de control de acceso (ACL) del sistema de archivos de los objetos de registro para proporcionar acceso exclusivo al servicio de antivirus.

Veamos otro ejemplo. De vuelta a 2003, el gusano Welchia apareció aprovechándose de una vulnerabilidad de RPC para escribirse en %System%\Wins\Dllhost.exe. También agregó claves a HKLM\SYSTEM\CurrentControlSet\Services para instalar sus servicios en el sistema de Windows infectado. Sin embargo, hoy en día Windows Vista puede combatir a Welchia mediante la restricción de acceso de ambas ubicaciones a determinados servicios y mediante el uso de cuentas con pocos privilegios para garantizar el acceso de esos servicios.

Acceso restringido de red Windows Vista incluye un firewall nuevo creado a partir de las capacidades incluidas en el firewall de Windows XP SP2. Entre las nuevas capacidades importantes se incluyen el filtrado de salida y la integración de IPsec. El firewall nuevo también se integra con Services Hardening de Windows Vista para dificultar la ejecución de malware en un servicio vulnerable de Windows para realizar determinadas actividades de red malintencionadas.

En el firewall de Windows Vista, los servicios de Windows son directivas asignadas de firewall de red que imponen limitaciones y restricciones en el comportamiento del servicio. Por ejemplo, se puede asignar a un servicio tipo Plug and Play que posiblemente no necesitará establecer comunicación a través de un puerto de red una restricción “no hay acceso a la red”. Con esta restricción asignada, un ataque diseñado para un servicio concreto nunca tendrá acceso al servicio mediante métodos que usen la red. El firewall bloqueará cualquier intento de comunicación del servicio con restricciones, ya sea de entrada o de salida. Se puede restringir el acceso a puertos específicos en la configuración de otros servicios con necesidades justificadas de acceso a una red. Los desarrolladores pueden usar esta capacidad para restringir el acceso a red de los servicios.

Las restricciones de red se combinan con Service Hardening para ofrecer un sistema sólido de defensa contra ataques futuros a través de los servicios, lo que supone una mejora importante con respecto a versiones anteriores de Windows. Anteriormente, Windows no podía decidir cómo y dónde establecer comunicaciones a través de Internet y qué servicios podían hacerlo. Sin embargo, aplicando las restricciones de la red de firewall de Windows Vista al servicio de RPC, podemos impedir que virus como Blaster, Sasser o Welchia infecten servicios para comunicarse con otros equipos.

Aislamiento de la sesión 0 La función Cambio rápido de usuario de Windows XP aloja simultáneamente a los usuarios conectados iniciando una sesión para cada usuario de Windows. La sesión 0 se crea durante el inicio y las sesiones adicionales se crean a medida que sea necesario. Los servicios siempre se han ejecutado en la sesión 0 y, antes de Windows Vista, también se podían ejecutar las aplicaciones de usuario en la sesión 0. Sin embargo, existen riesgos para la seguridad al ejecutar las aplicaciones del usuario en la misma sesión porque los servicios se ejecutan con privilegios elevados y, por lo tanto, son el objetivo del software malintencionado que busca la forma de elevar su nivel de privilegios.

Windows Vista evita estos riesgos de seguridad mediante la reserva de la sesión 0 exclusivamente para los servicios, la ejecución de las aplicaciones en otras sesiones y la eliminación de la interactividad de la sesión 0, lo que significa que un servicio no puede crear una interfaz de usuario, como un cuadro de diálogo o una solicitud a los que el usuario final tenga acceso. Estos cambios provocan que el aislamiento de la sesión 0 afecte a la compatibilidad de la aplicación para quien desarrolle servicios o controladores de Windows.

Resumen

Windows Vista es la primera versión del sistema operativo de escritorio de Trustworthy Computing de Microsoft e incluye avances importantes destinados a la protección de los usuarios de Windows. La seguridad en informática es, evidentemente, una disciplina en evolución y no hay duda de que los autores de malware no cesan de buscar, sondear e investigar nuevas formas de atacar a Windows. Sin embargo, las características nuevas de Service Hardening de Windows Vista sube considerablemente el listón al mejorar la configuración predeterminada de seguridad y reducir el área potencial para un ataque. Consulte microsoft.com/whdc/system/vista/Vista_Services.mspx para obtener más información sobre estas mejoras importantes.