Software

Microsoft Vista vs. los Virus: ¿quién vencerá?

El nuevo producto de Microsoft, Windows Vista, se posiciona como un sistema de alta seguridad. En este momento, la fecha oficial de su lanzamiento es el 30 de enero de 2007, y la pregunta de hasta qué punto es real la seguridad declarada es algo que preocupa a la comunidad informática desde mucho antes de que la versión beta se pudiera descargar libremente. ¿Cuáles son las funciones precisas que deben brindar protección al usuario? Y ¿cuán efectivas serán en las condiciones reales? ¿Es cierto que con Vista los antivirus ya no serán necesarios? En este artículo trataremos de responder a algunas de las preguntas que inquietan a la opinión pública.

No puede dejar de alegrarnos que la compañía que produce el sistema operativo más difundido para ordenadores personales haya reflexionado sobre la seguridad de los usuarios. Al instalar Vista, usted puede estar seguro, por lo menos, de que los programadores de este producto han realizado una seria labor, integrando en el mismo sistemas de defensa contra las amenazas informáticas, y que esta labor continuará. Sin embargo, las funciones de seguridad plasmadas en Vista no son suficientes para que se pueda renunciar a medios de defensa complementarios (sobre este tema puede leer el artículo de Nataly Kaspersky “La seguridad según Microsoft… ¿un paso hacia un mundo renovado?”).

Las principales innovaciones introducidas en el sistema de seguridad de Vista son: el sistema de limitación de los derechos de usuario, llamado Control de cuentas de usuario (User Account Control, UAC en inglés); el sistema de defensa del núcleo del sistema operativo PatchGuard y las funciones de seguridad de Internet Explorer 7. Las otras menores funciones de protección, Address Space Layer Randomization (ASLR), Network Access Protection, Windows Service Hardening y la función de defensa contra el desbordamiento del buffer, no serán tocadas en este artículo. Tampoco se hará referencia a los componentes adicionales, como el cortafuegos integrado y el antiespía (Windows Defender): estas son soluciones tipo, y su idoneidad para la protección del sistema es cuestión de compararlas con productos similares de otros productores.

Control de Cuentas de Usuario (UAC)

El Control de Cuentas de Usuario es un sistema de control sobre los derechos de los usuarios. Funciona según el principio de limitación de derechos:

  1. Cualquier usuario (incluso el “Administrador”) que entre al sistema, tendrá el mínimo de derechos correspondientes a los del “Usuario Estándar”.
  2. La cuenta “Usuario Estándar” tiene un poco más de derechos que sus similares en las versiones anteriores de Windows.
  3. Si el usuario o el programa ejecutado por el mismo pretende ejecutar alguna acción que no esté en la lista de derechos de la cuenta “Estándar”, el sistema le pedirá al usuario que confirme esta acción (si es el “Administrador”) o escribir la contraseña del administrador, si es el usuario “Estándar”.

Entre las acciones que no entran en la lista de derechos del “Usuario Estándar”, se encuentran la instalación de programas y controladores (drivers), la creación de ficheros en los directorios del sistema operativo, la modificación de la configuración del sistema, etc.

Cualquier programador de sistemas de defensa contra códigos nocivos se ha topado con situaciones en las que una acción ejecutada en el sistema aparenta ser sospechosa, pero es difícil determinar a ciencia cierta si es nociva o no. En un contexto determinado de acciones y factores, una acción puede ser nociva y debe ser bloqueada o notificada al usuario. En otro contexto, puede ser una acción totalmente legal de un programa legítimo. Estas situaciones no son aisladas: existen bastantes programas inofensivos que ejecutan acciones potencialmente sospechosas desde el punto de vista de la seguridad. Si cada una de estas acciones abre una ventana pidiendo confirmación o contraseña, el usuario o se volverá loco, o desactivará la defensa.

Siguiendo este razonamiento, no puedo considerar que Control de Cuentas de Usuarios sea una protección seria contra los programas nocivos. Cualquier función que irrite al usuario tiene grandes probabilidades de ser desactivada. El usuario pulsará el botón “Permitir”, o escribirá la contraseña del administrador a ciegas.

No obstante, sin lugar a dudas, UAC brinda cierto nivel adicional de seguridad para el usuario con derechos de administrador. En particular, si el programa no solicita un alto nivel de privilegios, se lo ejecutará con derechos mínimos, incluso en el modo de “Administrador”. Las vulnerabilidades encontradas en tales programas serán menos críticas que las vulnerabilidades de los programas “altamente privilegiados”.

Hay un argumento más a favor de Control de Cuentas de Usuarios. Existe una pequeña cantidad de virus que detectan las advertencias que el cortafuegos (u otro sistema de seguridad) muestra en la pantalla y pulsan el botón correspondiente en la ventana, permitiendo la acción correspondiente. El proceso toma fracciones de segundo, y la ventana apenas aparece en la pantalla. Microsoft ha previsto una defensa contra esta amenaza, Secure Desktop: la ventana que pide el aumento de privilegios aceptará solo la pulsación ejecutada por el usuario.

Hay que recordar que cualquier defensa puede evadirse, por esto, todas las ventajas que da este nuevo estrado de “blindaje” son relativas y, como lo muestra la práctica, temporales. Hay varias ideas evidentes y bastante peligrosas para evadir Control de Cuentas de Usuarios, pero no las mencionaremos para no agudizar la “lucha armamentista”.

Protección del núcleo de Vista

1. PatchGuard

El núcleo de Vista -y nos referimos sólo a la plataforma de 64 bytes – promete estar protegido contra modificaciones, algo que tiene vigencia a la luz de la tendencia de propagación de rootkits que funcionan al nivel del núcleo.

El rootkit de nivel de núcleo es un programa nocivo que disimula su presencia en el sistema gracias a la modificación de datos del núcleo o de un conjunto de utilitarios que permiten realizar su camuflaje.

Entre las funciones de PatchGuard está el monitoreo de las modificaciones de las tablas de servicios y descriptores del núcleo. A primera vista, esto podría resolver de forma inmediata todos los problemas con los troyanos “invisibles”. Sin embargo, PatchGuard no debería considerarse como una defensa sustancial contra los rootkits. Porque es vulnerable en principio, por el hecho de que hay métodos documentados de deshabilitar esta defensa. La principal vulnerabilidad de PatchGuard se debe a su arquitectura: el código de defensa se ejecuta en el mismo nivel que el código contra el cual debe proteger. Esta defensa tiene los mismos derechos que los potenciales atacantes y se la puede evadir o deshabilitar de diferentes maneras. Las técnicas de explotación y deshabilitación de PatchGuard ya son conocidas.

Además de que PatchGuard es una defensa cuestionable contra los rootkits que modifican el núcleo, hay que mencionar que existen otros tipos de rootkit ante los cuales este tipo de defensa es completamente inútil. El monitoreo que lleva a cabo PatchGuard concierne a todas las estructuras estáticas del núcleo con contenidos conocidos con antelación (SST, IDT, GDT), pero no puede proteger las estructuras dinámicas ni todo lo que se encuentre fuera del nivel del núcleo. En calidad de ejemplo de rootkit que funciona gracias a la modificación de las estructuras dinámicas, se puede aducir el famoso FU. Los rootkit basados en las tecnologías de virtualización se encuentran en niveles más profundos que el núcleo, y por lo tanto, le son inaccesibles.

La principal vulnerabilidad de PatchGuard consiste en que funciona en el mismo nivel que pretende proteger. Esto significa que si el programa nocivo consigue cargar su driver, logrará desactivar PatchGuard. Por supuesto, bajo la condición de que la ubicación de la función de monitoreo correspondiente sea conocida… pero la oscuridad, como se sabe desde tiempos antiguos, tiene poca relación con la seguridad.

El provecho indiscutible de la protección del núcleo contra modificaciones es que los programas legítimos no podrán modificar el núcleo para sus objetivos, lo que tendrá un efecto positivo en la seguridad y estabilidad del sistema en general.

Hago notar que la aspiración de Microsoft de aumentar la estabilidad del sistema en general ha tenido efectos secundarios. Al prohibir a todos el acceso al núcleo, Microsoft ha privado a los productores de la posibilidad de realizar cierta cantidad de funciones en sus productos. Como resultado, actualmente en Windows Vista no se pueden utilizar en su completa medida todos los métodos desarrollados por las compañías antivirus en el campo de la defensa, incluso aquellos que no tienen relación con los rootkits: han sido afectados también las tecnologías proactivas de defensa contra las amenazas desconocidas que ya habían sido plasmadas en los productos para los sistemas operativos anteriores. Los autores de virus, en cierta forma, han resultado favorecidos: ellos no están obligados a trabajar con PatchGuard, y los rootkits simplemente lo pueden deshabilitar.

Ya que estamos hablando del núcleo de vista, una vez más subrayamos que PatchGuard, al igual que la función de firma de los drivers, son funciones accesibles en los sistemas de 64 bytes. Debe pasar cierto tiempo para que la difusión de este tipo de sistemas sea mayor que la de los de 32 bytes. En Vista x86 no hay una defensa específica contra los rootkits.

2. Los componentes Mandatory Kernel Mode and Driver Signing

El segundo componente del sistema de protección del núcleo de Windows Vista para plataformas de 64 bytes es la exigencia de una firma digital para todos los módulos o drivers que funcionan al nivel del núcleo.

Se han previsto varias formas documentadas de desactivar la revisión de firmas digitales, entre otras cosas para facilitar el proceso de desarrollo y pruebas de los drivers. Como tiene vigencia el problema de cómo deben proceder los desarrolladores de drivers, ya que es imposible solicitar una firma digital para cada “build” antes de probarlo, se han previsto varios métodos de desactivar la comprobación de firmas digitales:

  1. la conexión de un depurador del sistema;
  2. escoger en el menú de inicio el régimen sin control de drivers (también a través de la modificación de boot.ini);
  3. activar en la configuración de seguridad el régimen de admisión de firmas de prueba. El utilitario de creación de las firmas de prueba se pone a disposición de los programadores.

Los tres métodos documentados de desactivar la defensa brindan un gran espacio para hacer experimentos. Además, por supuesto, se llevará a cabo la búsqueda de las vulnerabilidades correspondientes. Hace medio año, Johanna Rutkovska demostró su variante de exploit. En Vista RC2 la vulnerabilidad correspondiente ya ha sido corregida, pero el precedente ya está ahí.

Podemos esperar que surjan varios métodos de evadir la defensa del núcleo contra los componentes sin firma: la explotación de métodos documentados de desactivación de la defensa, la creación de exploits semejantes al ya mencionado, la obtención de privilegios de nivel del núcleo sin utilizar driver, y a fin de cuentas, la explotación de un driver firmado de algún producto legal con intenciones nocivas (de la misma manera que algunos virus usan los componentes de los utilitarios legales de recuperación de contraseñas para robar información secreta).

Y de nuevo el mismo veredicto: sí, esta función protege al sistema operativo contra lo códigos nocivos, pero no es tan efectiva como lo afirman los creadores del sistema operativo y no lo protege de una manera total.

La funciones protegidas de Internet Explorer 7

Las funciones defensivas de IE7, en teoría, deben librar al usuario de la amenaza que representan los exploits en las páginas web, con la consecuente ejecución de códigos nocivos o instalación de troyanos en el sistema.

  1. El modo protegido (Protected mode) es la ejecución del código del navegador con un conjunto mínimo de privilegios que limitan su acceso al sistema de archivos, el registro, etc.

El usuario puede activar o desactivar el régimen protegido de forma independiente para cada zona. Por defecto, está desactivado para los nodos de confianza (que están en la Zona de Confianza, Trusted Zone). Además, Microsoft ofrece el Protected Mode API para crear elementos de administración compatibles con el modo protegido1. Esta es una función completamente nueva, que no ha sido probada en la práctica, lo que hace muy probable que sea vulnerable.

  1. ActiveX Opt-in es una función de prohibición coercitiva de todos los elementos ActiveX, a excepción de aquellos que el usuario permita de forma deliberada.

No se entiende qué ventajas puede ofrecer: la posibilidad de deshabilitar ActiveX ha existido siempre en IE, la única diferencia es que en IE7 está habilitada desde el principio. Por la experiencia obtenida en las versiones anteriores de IE sabemos que el usuario no tiende a desactivar ActiveX, porque tendría que negarse a sí mismo la posibilidad de ver animaciones flash en las páginas, o condenarse a vérselas con las ventanas emergentes del sistema de defensa al ver cada una de las animaciones. Se puede sacar la conclusión de que desde este punto de vista se hace bastante incómodo el uso de IE7. (Y la ejecución de los módulos de ActiveX desconocidos seguirá estando permitida.)

  1. La función Cross-Domain Scripting Attack Protection está llamada a prohibir la interacción entre scripts localizados en diferentes dominios, y así defender al usuario contra los ataques phishing.

Debemos hacer notar que los ataques phishing que usan el mecanismo de cross-domain scripting, representan un pequeño porcentaje de los ataques que conocemos.

La lista completa de los perfeccionamientos en la seguridad de IE7 no termina con las tres funciones mencionadas, y contiene también el filtro de phishing (Phishing Filter), el panel de seguridad (Security Status Bar) y otros.

¿Cual es el defecto de los métodos de defensa similares a UAC, PatchGuard, IE Protected Mode?

Analicemos un cortafuegos imaginario, como un claro ejemplo de la defensa de “barreras”. Se sobreentiende que nuestro cortafuegos es “inteligente”, funciona no sólo con listas de programas permitidos y prohibidos, sino también con los sucesos del sistema.

Cuando algún programa trata de transmitir información a la red, esto es una amenaza a la seguridad. El cortafuegos tiene dos variantes de reacción: a) prohibir esta acción, basándose en sus políticas de seguridad (posiblemente ajustadas por el usuario); b) pedir autorización al usuario. En el primer caso son inevitables las situaciones cuando se bloquearán algunos programas legales, lo que creará cierta incomodidad. El usuario tendrá que entender según qué principios funciona el programa y agregarlo a la lista de admitidos del cortafuegos. En el segundo caso es inevitable la aparición (ya que tenemos un buen cortafuegos) de una gran cantidad de ventanas ante las que hay que reaccionar. Es difícil de entender cual de los dos males provocados por las incomodidades de las limitaciones es el menor.

Y si bien en el caso del cortafuegos responsable de las actividades de los programas podemos, con el tiempo, reducir la cantidad de molestas alertas gracias al crecimiento de las listas de admitidos, en el caso de la defensa en general este sistema no funciona. Las amenazas son impredecibles y toman diversas formas, y la reacción ante ellas no puede ser rígida, de lo contrario estaríamos volviendo al punto a) y a las limitaciones coercitivas. Y si no es rígida, se convierte en irritante.

La seguridad que se logra a través de limitaciones es una seguridad que va en contra de la comodidad de uso.

¿Qué pasará con los virus?

En Vista para plataformas de 64 bytes se menoscaban sobre todo los derechos de los troyanos, que usan drivers y modificaciones de los datos del núcleo, por lo menos hasta el momento en que éstos aprendan a evadir las limitaciones. Los troyanos mencionados son pocos y representan menos del 5% del total de los virus para Windows. Vista para las plataformas más en boga hoy en día, las de 32 bytes, no cuenta con la función de defensa del núcleo, y por lo tanto, con defensa para este tipo de troyanos.

El control de cuentas de usuario está integrado en todas las plataformas. Esto afectará condicionalmente a un porcentaje notable de troyanos que ejecutan acciones que exigen privilegios de administrador, como la creación de ficheros en los directorios dónde está instalado el sistema operativo, la introducción de modificaciones en el registro, la configuración del autoinicio, etc). “Condicionalmente”, porque en primer lugar yo no considero que UAC sea una defensa seria contra los virus (ver más arriba) y en segundo lugar, porque los programas nocivos siempre serán capaces de causar daños aunque estén en marcos muy limitados. Por ejemplo, los gusanos que se propagan por las redes de intercambio de ficheros no ejecutan acciones “ilegales”, simplemente crean copias de sí mismo en los directorios destinados al intercambio. Un ejemplo de un virus más peligroso, a pesar de su primitivismo conceptual, es el sonado Virus.Win32.Gpcode, que cifra los documentos del usuario y exige un “rescate” por descifrarlos.

Es difícil pronosticar de qué manera influirá la defensa de IE7 a las familias de virus que se instalan mediante las páginas web. Los más probable es que esta influencia sea nula, en particular a largo plazo, y si se considera que es incómodo trabajar en un navegador donde todo está prohibido.

Conclusiones. ¿Es seguro Microsoft Vista?

¿Es tan seguro Vista como lo afirma su publicidad? Sí, no hay duda. Vista es más seguro que los anteriores sistemas operativos de Microsoft. Un sistema, dónde todo está prohibido, excepto el acceso a determinados sitios puede incluso considerarse “completamente seguro”.

Sin embargo, para la mayoría de los usuarios es inaceptable una limitación significativa de sus acciones, que hagan al sistema casi estéril, como también las continuas solicitudes de confirmación o de contraseñas para las acciones que el sistema considere “potencialmente peligrosas”. Y este es el punto en que un sistema “casi completamente seguro” se convierte en “cada vez más vulnerable”.

Recordemos también que el ser humano es el eslabón más débil de cualquier sistema de seguridad. Los gusanos postales continúan existiendo y propagándose, a pesar de las numerosas advertencias de los especialistas en seguridad que constantemente desaconsejan ejecutar adjuntos sospechosos en los mensajes de correo. Si estas advertencias no evitan que la mayoría de los usuarios ejecuten los adjuntos… ¿qué evitará que hagan lo mismo con las alertas del sistema de seguridad, por ejemplo, escribir la contraseña de administrador cuando se lo pidan? Sobre todo si tenemos en cuenta, como ya lo hemos mencionado, que el usuario tiende a deshabilitar o a no tomar en serio la defensa que lo importuna con innumerables ventanas.

Además, como los sistemas operativos de Microsoft son tan populares, todo el crimen informático organizado está interesado en encontrar sus vulnerabilidades. Nosotros, unos optimistas libres de prejuicios, no tomamos en cuenta la fama que se ha ganado Microsoft desde el punto de vista de la seguridad durante los muchos años de su extendido uso. Lo que pasa es que la calidad o la cantidad de barreras construidas para defenderse de los hackers no juegan un papel importante. Por el contrario, hacen más profundo el interés investigativo de determinadas capas de la comunidad informática delincuente. Sólo tiene importancia que los hackers y los escritores de virus buscarán vulnerabilidades: esta perspectiva es evidente. Y el que busca, halla.

Conclusión filosófica

La seguridad que se construye sobre fundamentos diferentes a la apertura, siempre es un arma de doble filo. La seguridad basada en limitaciones siempre tiene una faceta negativa: las mismas limitaciones. Que pueden convertir al sistema en algo imposible de usar.

Y ¿qué es preferible?: ¿un sistema “seguro en general”, que no permite al usuario hacer lo que quiere, o un sistema con algunas vulnerabilidades, pero cómodo y con libertad de acción, ligado a un servicio altamente especializado, dirigido a la defensa contra amenazas concretas?

La libertad crea amenazas, y las limitaciones reducen la flexibilidad. Mientras más limitaciones, es más incómodo usar el sistema.

Si usted cela a su mujer, puede prohibirle salir sola, o hasta encerrarla entre cuatro paredes. Mientras más sean las limitaciones, es mayor la probabilidad de invasión. Y a mayor número de limitaciones, mayor será la infelicidad de su mujer, privada de su libertad. La cuestión es: ¿necesita usted una mujer infeliz?

Incluso si se logra un balance ideal entre las limitaciones y la comodidad de uso del sistema, hay que tener presente que la historia universal ha demostrado que cualquier barrera defensiva termina por ser superada o evadida, si lo que hay detrás es de interés.

Cuando se sobreestima el papel de las limitaciones en el sistema de defensa, nos vemos ante el siguiente cuadro: los buenos muchachos (usuarios y programadores) reciben grandes dolores de cabeza y ventanas de alerta que hay que pulsar; los malos muchachos (hackers y escritores de virus) reciben muchos interesantes rompecabezas y leves dolores de cabeza. Por un tiempo limitado.

Enlaces

  1. Authentium blog, Microsoft Patchguard
  2. Joanna Rutkowska, “Introducing Stealth Malware Taxonomy”
  3. Joanna Rutkowska, “Subverting Vista Kernel for Fun and Profit”
  4. Guide de la sécurité sous Windows Vista


1El API del Modo Protegido permite a los desarrolladores de software diseñar extensiones y add-ons para Internet Explorer que pueden interactuar con el sistema de archivos y el registro cuando el navegador está en Protected Mode. (Windows Vista Security Guide.)

Microsoft Vista vs. los Virus: ¿quién vencerá?

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

 

Informes

BlindEagle vuela alto en LATAM

Kaspersky proporciona información sobre la actividad y los TTPs del APT BlindEagle. Grupo que apunta a organizaciones e individuos en Colombia, Ecuador, Chile, Panamá y otros países de América Latina.

MosaicRegressor: acechando en las sombras de UEFI

Encontramos una imagen de firmware de la UEFI infectada con un implante malicioso, es el objeto de esta investigación. Hasta donde sabemos, este es el segundo caso conocido en que se ha detectado un firmware malicioso de la UEFI usado por un actor de amenazas.

Suscríbete a nuestros correos electrónicos semanales

Las investigaciones más recientes en tu bandeja de entrada