Hay una serie de características de seguridad y protección nuevas en Windows Vista , la mayoría de las cuales no están disponibles en ninguna versión anterior del sistema operativo Microsoft Windows .
A principios de 2002, cuando Microsoft anunció su iniciativa Trustworthy Computing , se ha trabajado mucho para convertir Windows Vista en un sistema operativo más seguro que sus predecesores. A nivel interno, Microsoft adoptó un " ciclo de vida de desarrollo de seguridad " [1] con el lema subyacente de "seguro por diseño, seguro por defecto, seguro en la implementación". El nuevo código para Windows Vista se desarrolló con la metodología SDL, y todo el código existente se revisó y refactorizó para mejorar la seguridad.
Algunas áreas específicas en las que Windows Vista introduce nuevos mecanismos de seguridad y protección incluyen el Control de cuentas de usuario, controles parentales, Protección de acceso a la red , una herramienta anti- malware incorporada y nuevos mecanismos de protección de contenido digital.
El Control de cuentas de usuario es una nueva infraestructura que requiere el consentimiento del usuario antes de permitir cualquier acción que requiera privilegios administrativos. Con esta característica, todos los usuarios, incluidos los usuarios con privilegios administrativos, se ejecutan en un modo de usuario estándar de forma predeterminada, ya que la mayoría de las aplicaciones no requieren privilegios superiores. Cuando se intenta alguna acción que necesita privilegios administrativos, como instalar un nuevo software o cambiar la configuración del sistema o de seguridad, Windows le preguntará al usuario si desea permitir la acción o no. Si el usuario elige permitir, el proceso que inicia la acción se eleva a un contexto de privilegios superior para continuar. Mientras que los usuarios estándar deben ingresar un nombre de usuario y una contraseña de una cuenta administrativa para obtener un proceso elevado ( Credenciales sobre el hombro ), un administrador puede elegir que se le solicite solo el consentimiento o solicitar credenciales. Si el usuario no hace clic en Sí, después de 30 segundos se deniega la solicitud.
El UAC solicita credenciales en un modo de escritorio seguro , donde toda la pantalla se atenúa y se desactiva temporalmente, para presentar solo la interfaz de usuario de elevación. Esto es para evitar que la aplicación que solicita la elevación falsifique la interfaz de usuario o el mouse. Si la aplicación que solicita la elevación no tiene el foco antes de que se produzca el cambio a escritorio seguro , entonces su icono de la barra de tareas parpadea y, cuando está enfocado, se presenta la interfaz de usuario de elevación (sin embargo, no es posible evitar que una aplicación maliciosa obtenga el foco de manera silenciosa).
Dado que el Escritorio seguro solo permite ejecutar aplicaciones del sistema con privilegios más altos, ninguna aplicación en modo de usuario puede presentar sus cuadros de diálogo en ese escritorio, por lo que se puede asumir con seguridad que cualquier solicitud de consentimiento de elevación es genuina. Además, esto también puede ayudar a proteger contra ataques Shatter , que interceptan mensajes entre procesos de Windows para ejecutar código malicioso o falsificar la interfaz de usuario, al evitar que procesos no autorizados envíen mensajes a procesos con privilegios altos. Cualquier proceso que desee enviar un mensaje a un proceso con privilegios altos debe elevarse al contexto de privilegios más alto, a través de UAC.
Las aplicaciones escritas con la suposición de que el usuario se ejecutará con privilegios de administrador experimentaron problemas en versiones anteriores de Windows cuando se ejecutaron desde cuentas de usuario limitadas, a menudo porque intentaron escribir en directorios de todo el equipo o del sistema (como Archivos de programa ) o claves de registro (en particular HKLM ) [2] UAC intenta aliviar esto utilizando la virtualización de archivos y registro , que redirige las escrituras (y las lecturas posteriores) a una ubicación por usuario dentro del perfil del usuario. Por ejemplo, si una aplicación intenta escribir en "C:\program files\appname\settings.ini" y el usuario no tiene permisos para escribir en ese directorio, la escritura se redirigirá a "C:\Users\username\AppData\Local\VirtualStore\Program Files\appname\".
BitLocker, anteriormente conocido como "Inicio seguro", esta función ofrece cifrado de disco completo para el volumen del sistema. Mediante la utilidad de línea de comandos, es posible cifrar volúmenes adicionales. Bitlocker utiliza una memoria USB o un módulo de plataforma segura (TPM) versión 1.2 de las especificaciones TCG para almacenar su clave de cifrado. Garantiza que el equipo que ejecuta Windows Vista se inicie en un estado correcto y también protege los datos contra el acceso no autorizado. [3] Los datos del volumen se cifran con una clave de cifrado de volumen completo (FVEK), que a su vez se cifra con una clave maestra de volumen (VMK) y se almacena en el propio disco.
Windows Vista es el primer sistema operativo Microsoft Windows que ofrece soporte nativo para TPM 1.2 al proporcionar un conjunto de API, comandos, clases y servicios para el uso y la gestión del TPM. [4] [5] Un nuevo servicio del sistema, denominado Servicios básicos de TPM, permite el acceso y el uso compartido de recursos de TPM para desarrolladores que deseen crear aplicaciones con soporte para el dispositivo. [6]
El sistema de cifrado de archivos (EFS) de Windows Vista se puede utilizar para cifrar el archivo de paginación del sistema y la caché de archivos sin conexión de cada usuario . EFS también está más estrechamente integrado con la infraestructura de clave pública (PKI) empresarial y admite el uso de la recuperación de claves basada en PKI, la recuperación de datos mediante certificados de recuperación de EFS o una combinación de ambas. También hay nuevas políticas de grupo que exigen tarjetas inteligentes para EFS, exigen el cifrado de archivos de paginación, estipulan longitudes de clave mínimas para EFS, exigen el cifrado de la carpeta Documentos del usuario y prohíben los certificados autofirmados. La caché de claves de cifrado de EFS se puede borrar cuando un usuario bloquea su estación de trabajo o después de un cierto límite de tiempo.
El asistente de renovación de claves de EFS permite al usuario elegir un certificado para EFS y seleccionar y migrar los archivos existentes que utilizarán el certificado recién elegido. El Administrador de certificados también permite a los usuarios exportar sus certificados de recuperación de EFS y sus claves privadas. Se les recuerda a los usuarios que realicen una copia de seguridad de sus claves de EFS la primera vez que las utilicen mediante una notificación en globo . El asistente de renovación de claves también se puede utilizar para migrar usuarios en instalaciones existentes de certificados de software a tarjetas inteligentes . El asistente también puede ser utilizado por un administrador o por los propios usuarios en situaciones de recuperación. Este método es más eficiente que descifrar y volver a cifrar archivos.
Windows Vista mejora significativamente el firewall [7] para abordar una serie de preocupaciones en torno a la flexibilidad del Firewall de Windows en un entorno corporativo:
Windows Vista incluye Windows Defender, la utilidad anti-spyware de Microsoft. Según Microsoft, se le cambió el nombre a "Microsoft AntiSpyware" porque no solo incluye un análisis del sistema en busca de spyware, similar a otros productos gratuitos del mercado, sino que también incluye agentes de seguridad en tiempo real que monitorean varias áreas comunes de Windows en busca de cambios que puedan ser causados por spyware. Estas áreas incluyen la configuración y descargas de Internet Explorer, aplicaciones de inicio automático, opciones de configuración del sistema y complementos para Windows, como extensiones de Windows Shell.
Windows Defender también incluye la posibilidad de eliminar aplicaciones ActiveX instaladas y bloquear programas de inicio. También incorpora la red SpyNet , que permite a los usuarios comunicarse con Microsoft, enviar lo que consideren software espía y comprobar qué aplicaciones son aceptables.
Windows Vista permite a los administradores aplicar restricciones de hardware a través de la Política de grupo para evitar que los usuarios instalen dispositivos, restringir la instalación de dispositivos a una lista blanca predefinida o restringir el acceso a medios extraíbles y clases de dispositivos. [8] [9]
Windows Vista incluye una serie de controles parentales para que los administradores supervisen y restrinjan la actividad informática de las cuentas de usuario estándar que no forman parte de un dominio ; el Control de cuentas de usuario aplica restricciones administrativas. Las características incluyen: Filtro web de Windows Vista , implementado como un filtro Winsock LSP para funcionar en todos los navegadores web, que prohíbe el acceso a sitios web en función de categorías de contenido o direcciones específicas (con una opción para bloquear todas las descargas de archivos); Límites de tiempo , que impide que los usuarios estándar inicien sesión durante una fecha u hora especificadas por un administrador (y que bloquea las cuentas restringidas que ya hayan iniciado sesión durante esos momentos); Restricciones de juegos , que permite a los administradores bloquear juegos en función de nombres, contenidos o clasificaciones definidas por un sistema de clasificación de contenido de videojuegos como la Junta de clasificación de software de entretenimiento (ESRB) , con restricciones de contenido que tienen prioridad sobre las restricciones de clasificación (por ejemplo, se puede permitir que se ejecuten juegos Everyone 10+ (E10+) en general, pero los juegos E10+ con lenguaje moderado seguirán bloqueados si el lenguaje moderado en sí está bloqueado); Restricciones de aplicaciones , que utiliza listas blancas de aplicaciones para aplicaciones específicas; e Informes de actividad , que supervisan y registran las actividades de cuentas de usuarios estándar restringidas.
Los controles parentales de Windows incluyen un conjunto extensible de opciones, con interfaces de programación de aplicaciones (API) para que los desarrolladores reemplacen las funciones incluidas con las suyas propias.
Windows Vista utiliza la aleatorización del diseño del espacio de direcciones (ASLR) para cargar los archivos del sistema en direcciones aleatorias de la memoria. [10] De forma predeterminada, todos los archivos del sistema se cargan aleatoriamente en cualquiera de las 256 ubicaciones posibles. Otros ejecutables tienen que configurar específicamente un bit en el encabezado del archivo Portable Executable (PE) , que es el formato de archivo de los ejecutables de Windows, para utilizar ASLR. Para dichos ejecutables, la pila y el montón asignados se deciden aleatoriamente. Al cargar los archivos del sistema en direcciones aleatorias, se vuelve más difícil para el código malicioso saber dónde se encuentran las funciones privilegiadas del sistema, lo que hace improbable que las utilicen de forma predecible. Esto ayuda a prevenir la mayoría de los ataques de ejecución remota al evitar los ataques de desbordamiento de búfer de retorno a LIBC .
El formato ejecutable portátil se ha actualizado para admitir la incorporación de la dirección del controlador de excepciones en el encabezado. Siempre que se lanza una excepción, la dirección del controlador se verifica con la que está almacenada en el encabezado del ejecutable. Si coinciden, se maneja la excepción; de lo contrario, indica que la pila de tiempo de ejecución se ha visto comprometida y, por lo tanto, el proceso finaliza.
Los punteros de función se ofuscan mediante la operación XOR con un número aleatorio, de modo que la dirección real a la que apunta es difícil de recuperar. Lo mismo sucedería si se cambiara manualmente un puntero, ya que la clave de ofuscación utilizada para el puntero sería muy difícil de recuperar. Por lo tanto, se dificulta que cualquier usuario no autorizado del puntero de función pueda usarlo realmente. También se realizan operaciones XOR con los metadatos de los bloques del montón con números aleatorios. Además, se mantienen las sumas de comprobación de los bloques del montón, que se utilizan para detectar cambios no autorizados y corrupción del montón. Siempre que se detecta una corrupción del montón, se elimina la aplicación para evitar que se complete con éxito el exploit.
Los binarios de Windows Vista incluyen soporte intrínseco para la detección de desbordamientos de pila. Cuando se detecta un desbordamiento de pila en los binarios de Windows Vista, el proceso se elimina para que no pueda usarse para llevar a cabo el exploit. Además, los binarios de Windows Vista colocan los búferes en una zona superior de la memoria y los elementos que no son búferes, como los punteros y los parámetros suministrados, en una zona inferior de la memoria. Por lo tanto, para explotar realmente, se necesita un desbordamiento de búfer para obtener acceso a esas ubicaciones. Sin embargo, los desbordamientos de búfer son mucho menos comunes que los desbordamientos de búfer.
Windows Vista presenta el Control de integridad obligatorio para establecer niveles de integridad para los procesos. Un proceso de baja integridad no puede acceder a los recursos de un proceso de mayor integridad. Esta característica se utiliza para aplicar el aislamiento de aplicaciones, donde las aplicaciones con un nivel de integridad medio, como todas las aplicaciones que se ejecutan en el contexto de usuario estándar, no pueden conectarse a procesos de nivel de sistema que se ejecutan en un nivel de integridad alto, como aplicaciones en modo administrador, pero pueden conectarse a procesos de menor integridad, como Windows Internet Explorer 7 u 8. Un proceso con menos privilegios no puede realizar una validación de identificador de ventana de un privilegio de proceso superior, no puede enviar mensajes ni enviar mensajes a ventanas de aplicaciones con privilegios superiores, no puede utilizar ganchos de subprocesos para conectarse a un proceso con privilegios superiores, no puede utilizar ganchos de diario para supervisar un proceso con privilegios superiores y no puede realizar una inyección de DLL a un proceso con privilegios superiores.
Windows Vista ofrece soporte completo para la característica NX (No-Execute) de los procesadores modernos. [11] DEP se introdujo en Windows XP Service Pack 2 y Windows Server 2003 Service Pack 1. Esta característica, presente como NX (EVP) en los procesadores AMD64 de AMD y como XD (EDB) en los procesadores Intel , puede marcar ciertas partes de la memoria como que contienen datos en lugar de código ejecutable, lo que evita que los errores de desbordamiento resulten en la ejecución de código arbitrario.
Si el procesador admite el bit NX, Windows Vista aplica automáticamente la prevención de ejecución de datos basada en hardware en todos los procesos para marcar algunas páginas de memoria como segmentos de datos no ejecutables (como el montón y la pila) y, posteriormente, se evita que los datos se interpreten y ejecuten como código. Esto evita que el código de explotación se inyecte como datos y luego se ejecute.
Si DEP está habilitado para todas las aplicaciones , los usuarios obtienen resistencia adicional contra exploits de día cero . Pero no todas las aplicaciones son compatibles con DEP y algunas generarán excepciones DEP. Por lo tanto, DEP no se aplica para todas las aplicaciones de forma predeterminada en las versiones de 32 bits de Windows y solo se activa para componentes críticos del sistema. Sin embargo, Windows Vista presenta controles de política NX adicionales que permiten a los desarrolladores de software habilitar la protección de hardware NX para su código, independientemente de la configuración de aplicación de compatibilidad de todo el sistema. Los desarrolladores pueden marcar sus aplicaciones como compatibles con NX cuando se crean, lo que permite que se aplique la protección cuando esa aplicación se instala y se ejecuta. Esto permite un mayor porcentaje de código protegido por NX en el ecosistema de software en plataformas de 32 bits, donde la política de compatibilidad del sistema predeterminada para NX está configurada para proteger solo los componentes del sistema operativo. Para las aplicaciones x86-64, la compatibilidad con versiones anteriores no es un problema y, por lo tanto, DEP se aplica de forma predeterminada para todos los programas de 64 bits. Además, en las versiones x86-64 de Windows Vista solo se utiliza DEP aplicado por el procesador para mayor seguridad.
En Windows Vista se han introducido nuevas funciones de gestión de derechos digitales y protección de contenidos para ayudar a los proveedores de contenidos digitales y a las corporaciones a proteger sus datos contra copias.
La inclusión de nuevas funciones de gestión de derechos digitales ha sido fuente de críticas a Windows Vista .
Windows Service Hardening compartimenta los servicios de tal manera que si un servicio se ve comprometido, no puede atacar fácilmente a otros servicios en el sistema. Impide que los servicios de Windows realicen operaciones en sistemas de archivos, registros o redes [14] que no deberían hacer, reduciendo así la superficie de ataque general en el sistema y evitando la entrada de malware mediante la explotación de los servicios del sistema . A los servicios ahora se les asigna un identificador de seguridad (SID) por servicio , que permite controlar el acceso al servicio según el acceso especificado por el identificador de seguridad. Se puede asignar un SID por servicio durante la instalación del servicio a través de la API ChangeServiceConfig2 o usando el SC.EXE
comando con el verbo sidtype . Los servicios también pueden usar listas de control de acceso (ACL) para evitar el acceso externo a recursos privados para ellos.
Los servicios en Windows Vista también se ejecutan en una cuenta con menos privilegios, como Servicio local o Servicio de red , en lugar de la cuenta del sistema . Las versiones anteriores de Windows ejecutaban los servicios del sistema en la misma sesión de inicio de sesión que el usuario conectado localmente (Sesión 0). En Windows Vista, la Sesión 0 ahora está reservada para estos servicios y todos los inicios de sesión interactivos se realizan en otras sesiones. [15] Esto tiene como objetivo ayudar a mitigar una clase de vulnerabilidades del sistema de paso de mensajes de Windows, conocidas como ataques Shatter . El proceso que aloja un servicio solo tiene los privilegios especificados en el valor de registro RequiredPrivileges en HKLM\System\CurrentControlSet\Services .
Los servicios también necesitan permisos de escritura explícitos para escribir en los recursos, en función de cada servicio. Al utilizar un token de acceso restringido a escritura , solo se otorga acceso de escritura a los recursos que deben ser modificados por un servicio, por lo que intentar modificar cualquier otro recurso falla. Los servicios también tendrán una política de firewall preconfigurada, que le otorga solo los privilegios necesarios para que funcione correctamente. Los proveedores de software independientes también pueden utilizar Windows Service Hardening para reforzar sus propios servicios. Windows Vista también refuerza las canalizaciones con nombre que utilizan los servidores RPC para evitar que otros procesos puedan secuestrarlas.
La identificación y autenticación gráfica ( GINA ), utilizada para la autenticación segura y el inicio de sesión interactivo, ha sido reemplazada por los proveedores de credenciales . Combinados con hardware de soporte, los proveedores de credenciales pueden extender el sistema operativo para permitir que los usuarios inicien sesión a través de dispositivos biométricos (huella dactilar, retina o reconocimiento de voz), contraseñas, PIN y certificados de tarjeta inteligente , o cualquier paquete de autenticación personalizado y esquema que los desarrolladores externos deseen crear. La autenticación con tarjeta inteligente es flexible ya que los requisitos de certificado se relajan. Las empresas pueden desarrollar, implementar y, opcionalmente, aplicar mecanismos de autenticación personalizados para todos los usuarios del dominio. Los proveedores de credenciales pueden estar diseñados para admitir el inicio de sesión único (SSO), autenticando a los usuarios en un punto de acceso de red seguro (aprovechando RADIUS y otras tecnologías), así como el inicio de sesión de la máquina. Los proveedores de credenciales también están diseñados para admitir la recopilación de credenciales específicas de la aplicación y pueden usarse para la autenticación de recursos de red, unir máquinas a un dominio o proporcionar el consentimiento del administrador para el Control de cuentas de usuario . La autenticación también se admite mediante IPv6 o servicios web . El nuevo proveedor de servicios de seguridad, CredSSP, está disponible a través de la interfaz del proveedor de soporte de seguridad que permite que una aplicación delegue las credenciales del usuario del cliente (mediante el uso del SSP del lado del cliente) al servidor de destino (a través del SSP del lado del servidor). Los servicios de terminal también utilizan CredSSP para proporcionar inicio de sesión único .
Windows Vista puede autenticar cuentas de usuario mediante tarjetas inteligentes o una combinación de contraseñas y tarjetas inteligentes ( autenticación de dos factores ). Windows Vista también puede utilizar tarjetas inteligentes para almacenar claves EFS . Esto garantiza que los archivos cifrados solo sean accesibles mientras la tarjeta inteligente esté físicamente disponible. Si se utilizan tarjetas inteligentes para iniciar sesión, EFS funciona en un modo de inicio de sesión único , donde utiliza la tarjeta inteligente de inicio de sesión para cifrar archivos sin solicitar el PIN.
El cambio rápido de usuario , que estaba limitado a los equipos de grupos de trabajo en Windows XP, ahora también se puede habilitar para equipos unidos a un dominio, a partir de Windows Vista. Windows Vista también incluye compatibilidad con autenticación para los controladores de dominio de solo lectura introducidos en Windows Server 2008 .
Windows Vista incluye una actualización de la API de cifrado conocida como Cryptography API: Next Generation (CNG). La API CNG es una API de modo usuario y modo kernel que incluye compatibilidad con criptografía de curva elíptica (ECC) y una serie de algoritmos más nuevos que forman parte de la Suite B de la Agencia de Seguridad Nacional (NSA). Es extensible y ofrece compatibilidad para conectar API criptográficas personalizadas al entorno de ejecución de CNG. También se integra con el subsistema de tarjetas inteligentes al incluir un módulo CSP base que implementa todas las funciones criptográficas estándar de backend que necesitan los desarrolladores y fabricantes de tarjetas inteligentes, de modo que no tengan que escribir CSP complejos . La autoridad de certificación de Microsoft puede emitir certificados ECC y el cliente de certificados puede inscribir y validar certificados basados en ECC y SHA-2.
Las mejoras de revocación incluyen compatibilidad nativa con el Protocolo de estado de certificados en línea (OCSP), que proporciona verificación de validez de certificados en tiempo real, precarga de CRL y diagnósticos CAPI2. La inscripción de certificados se basa en un asistente, permite a los usuarios ingresar datos durante la inscripción y brinda información clara sobre inscripciones fallidas y certificados vencidos. CertEnroll, una nueva API de inscripción basada en COM, reemplaza la biblioteca XEnroll para una programación flexible. Las capacidades de itinerancia de credenciales replican pares de claves, certificados y credenciales de Active Directory almacenados en nombres de usuario y contraseñas almacenados dentro de la red.
Windows Vista presenta la Protección de acceso a la red (NAP), que garantiza que los equipos que se conectan o se comunican con una red cumplan con un nivel requerido de estado del sistema, tal como lo establece el administrador de la red. Según la política establecida por el administrador, los equipos que no cumplan con los requisitos recibirán una advertencia y se les concederá acceso, se les permitirá el acceso a recursos de red limitados o se les negará el acceso por completo. NAP también puede proporcionar opcionalmente actualizaciones de software a un equipo que no cumpla con los requisitos para que se actualice al nivel requerido para acceder a la red, utilizando un servidor de remediación . A un cliente que cumpla con los requisitos se le otorga un Certificado de estado , que luego utiliza para acceder a los recursos protegidos en la red.
Un servidor de políticas de red que ejecuta Windows Server 2008 actúa como servidor de políticas de estado y los clientes deben usar Windows XP SP3 o posterior. Un servidor VPN , un servidor RADIUS o un servidor DHCP también pueden actuar como servidor de políticas de estado.
Se han realizado una serie de cambios específicos de seguridad y confiabilidad: