Compatibilidad de aplicaciones con Windows Vista (Conceptos generales)

La inspiración viene cuando menos te lo esperas, y a veces hace falta ir a un seminario impartido por algún figura de Microsoft para que se encienda una lucecilla en la cabeza que se aferra a ella susurrando “este es un buen tema para el Blog”, asi que aquí estamos, escribiendo el primer articulillo sobre compatibilidad de aplicaciones con Windows Vista, como prometí la semana pasada.


Siendo este mi primer artículo sobre el tema, es necesario hacer una pequeña reflexión… ¿Cuáles son las principales quejas relativas a Windows Vista?.


Está claro que depende de a quien se lo preguntes, los usuarios suelen decir que no encuentran las cosas, y se suelen dejar llevar por opiniones ajenas del producto ¿quién no tiene un amigo informático aunque sea de titulillo del INEM?.


Si la pregunta se la realizas a un técnico probablemente te dirá algo como lo siguiente (según experiencia propia):




  1. Consume mucha RAM (mi Ubuntu no consume tanto.. xDD)


  2. El UAC es un coñazo


  3. Las aplicaciones no funcionan bien (ni algunos servicios y scripts)


  4. La configuración de red es mucho más complicada (¡¡¡no soy capaz de hacer “ping”!!!)


  5. Faltan drivers


  6. Complicado de “Piratear” (¿¿??) –> La gente no se corta un pelo 😉

Del mundo antisistema (Anti-Microsoft, se entiende) se oyen otras voces como que “Windows Vista recorta libertades” y  comentarios por el estilo que más tienen que ver con colores políticos e ideológicos que por ser prácticos y técnicos.


Luego cuando uno se mueve al mundo de la seguridad informática se escuchan otras voces reconociendo la seguridad de Windows Vista, y se oyen incluso elogios de aquellos que han visto en Windows Vista un nuevo reto donde creackear las cosas se ha vuelto mucho más difícil.


Tras casi tres años de experiencia en el producto (en Informática64 empezamos a dar formación desde las Betas y ya estamos planificando las de Windows 7) amenudo nos toca acometer las quejas anteriormente comentadas que se hacen muchos técnicos y empresas sobre el producto (¡Viva la consultoría informática!), algo a lo que hay que añadir Windows Server 2008, sistema curiosamente muy respetado y valorado, aunque comparte el mismo Kernel que Windows Vista.


A modo de FAQ, voy a dar un pequeño repaso a las quejas antes citadas:


Q: Windows Vista Consume mucha RAM (mi Ubuntu no consume tanto.. xDD)


A: Windows Vista usa un gestor de memoria llamado Superfetch que carga páginas de aplicaciones en la RAM antes de que estas sean utilizadas con el fin de acelerar su ejecución. Básicamente el planteamiento es ¿Si tienes 4GB de RAM por qué solo vas a aprovechar 512MB?


 


Q: El UAC es un coñazo


A: Es cierto que el UAC (Control de Cuentas de Usuario) es un poco lata (aunque se mejoró con el SP1 de Windows Vista), pero la pregunta es más bien ¿prefieres que todo lo que ejecutan tus usuarios administradores se haga con plenos privilegios administrativos?, la experiencia ha demostrado que esto es un peligro casi mayor que el propio malware, aparte de que el UAC hace muuucho más que controlar privilegios ¿has oido hablar de MIC?¿de UIPI?¿la integridad de aplicaciones?¿la virtualización?


UAC es uno de los pilares de seguridad de Windows Vista (y Windows server 2008), entro otras muchas tecnologías.


 


Q: Las aplicaciones no funcionan bien (ni algunos servicios y scripts)


A: Esto es un tema más complicado, y es lo que ha motivado esta nueva serie de post, de momento valdrá con mencionar que si hay aplicaciones con problemas en Windows Vista es debido a la gran cantidad de sistemas de seguridad que incluye este sistema operativo, de manera que va a ser necesario empaparse bien de estás tecnologías de seguridad.


 


Q: La configuración de red es mucho más complicada (¡¡¡no soy capaz de hacer “ping”!!!)


A: Ojala las cosas fueran más sencillas, pero por suerte o por desgracia al informático le toca actualizarse, y es que los aspectos de red de Windows Vista han sido completamente rediseñados. Para empezar tenemos una capa dual IPv4/IPv6, compatibilidad con Network Access Protecction (NAP) de Windows Server 2008, un nuevo sistema IPSEC (AuthIP), una pila TCP/IP completamente nueva, nuevos protocolos como SMB2.0 y LLTD, mejoras de rendimiento para redes inalámbricas y sobre todo un firewall de Windows completamente nuevo con reglas de entrada y de salida, control de servicios, IPSEC incorporado y gestión mediante perfiles (para protegernos cuando estamos en una WIFI de cafetería o de aeropuerto).


Puede gustarte más o menos, pero en esta profesión hay que actualizarse más que los propios médicos… (lo peor sería ser médico e informático xDD)


 


Q: Faltan drivers


A: Esto es cierto (aunque con el SP1 se ha mejorado mucho el tema), es un problema que ya tuvo XP en su momento, y lo único que se puede hacer es solititar a los fabricantes que diseñen drivers para Windows Vista, o bien adquirir nuevo hadrware que sí sea compatible.


Reflexionando un poco no tardamos en darnos cuenta que tambien fastidia tener que volver a compilar un módulo para un dispositivo concreto dentro de un nuevo Kernel de Linux…


 


Q: Complicado de “Piratear” (¿¿??) –> La gente no se corta un pelo 😉


A: También lo es puentear un coche o ….. ¿no?


 


Tiempo de tomar un café…


¿Que tal el carajillo?¿te ha sentado bien? que envidia, yo estoy en el curro y me tengo que conformar con ese café de máquina que como mínimo debe ser cancerijeno 😛


Tras este punto y aparte, reflexión espiritual, o posesión por espíritus e”SPECTRA”les, empezamos con el tema que ha motivado este post: La compatibilidad de aplicaciones…


Lo primero es tener claro el concepto: La mayoría de los errores de aplicaciones en Windows Vista son debidas a las nuevas opciones de seguridad que este incorpora, en particular las siguientes tecnologías:


Control de Cuentas de Usuario (UAC)


A lo largo de la vida de este blog ya se ha hablado mucho de UAC y de su importancia:


http://geeks.ms/blogs/vista-tecnica/archive/tags/Control+de+Cuentas+de+Usuario/default.aspx


Y aun así, no hemos llegado a tratar el tema al 100%


Básicamente el UAC es un sistema añadido a Windows Vista para el cumplimiento del principio del “menor número de privilegios posibles”, algo así como el SUDO de Linux, pero con un enfoque completamente diferente.


Tradicionalmente en los S.O. de escritorio de Microsoft siempre se ha trabajado de manera predeterminada como “Administrador”, una práctica nada recomendable y en cierta manera inducida por el hecho de que Windows 2000 y XP por defecto creaban usuarios administradores desde la propia instalación. Ni que decir tiene que cualquier malware ejecutado como administrador tiene terribles consecuencias, algo que ha hecho a la plataforma Microsoft, y particularmente a Windows XP por su extendido uso, un claro candidato para la gran mayoría del malware actual (esto ha llegado hasta el punto de que los creadores de malware han realizado campañas constatadas incitando a la gente a que se quede en Windows XP y no migre a Windows Vista).


Con Windows Vista, aunque nuestros usuarios pertenezcan al grupo “Administradores” reciben un token de usuario corriente (sin privilegios) y otro de administrador (con sus privilegios administrativos), cualquier aplicación que ejecuten los usuarios se hará con el token de usuario limitado, que además tiene un nivel de integridad inferior (sistema de seguridad MIC) al token de administrador. Las aplicaciones solo se ejecutarán con plenos privilegios si se acepta una “solicitud de elevación” que se lanza si la aplicación lo solicita o si se usa la opción del menú contextual “Ejecutar como Administrador”.


Aunque lo anterior era la definición básica la cosa no acaba aquí, el UAC es capaz de comprobar si la aplicación se encuentra firmada digitalmente por un proveedor de confianza y advertirnos si no es así o si la integridad de la aplicación firmada ha cambiado (incluyendo las propios componentes del Sistema, lo que puede ayudarnos a identificar la presencia de malware). UAC también comprueba si un ejecutable es un fichero de instalación, solicitando elevación si es así (se acabó la posibilidad de que un usuario corriente instale una aplicación personal sin nuestro consentimiento). Aparte es el responsable de virtualizar aplicaciones provenientes de Windows XP o sistemas anteriores, algo que permite que una mayor cantidad de aplicaciones se ejecuten con bajos privilegios (sin requerir ser administradores).


Problemas con el UAC:


Las aplicaciones corporativas que requieran ejecutarse con plenos privilegios para funcionar no arrancarán con un simple doble click, sino que deberá seleccionarse la opción “Ejecutar como administrador”, no obstante hay alternativas (algo que dejo para post posteriores).


Las páginas web, complementos ActiveX y Applets también pueden presentar problemas dado que Internet Explorer se ejecuta con privilegios de usuario corriente.


Otro problema que presenta el UAC de cara a las aplicaciones es el de la virtualización. Las aplicaciones no pensadas nativamente para Windows Vista pueden presentar problemas cuando intentan escribir en ubicaciones donde un usuario corriente no tiene privilegios (como la carpeta “Windows”, PogramFiles o “HKEY_LOCAL_MACHINE”). Podeis comprobar más sobre la virtualización de aplicaciones en los siguientes posts:

http://geeks.ms/blogs/vista-tecnica/archive/tags/Virtualizaci_26002300_243_3B00_n/default.aspx

Básicamente los errores que presentan las aplicaciones con la virtualización es que al redirecionarse “Windows”, PogramFiles y “HKEY_LOCAL_MACHINE al perfil del usuario las aplicaciones que necesiten una configuración común entre varios usuarios, se encontrarán con que cada usuario tiene una configuración diferente (la de su respectivo perfil).


ID de sesión 0


Otro de los grandes culpables de que las aplicaciones no funcionen bien es el aislamiento que Windows Vista impone a los servicios. Este tema ya lo tratamos este tema en el articulo siguiente:


http://geeks.ms/blogs/vista-tecnica/archive/2007/12/24/sistemas-de-integridad-en-windows-vista-i-windows-service-hardening-primera-parte.aspx


Básicamente los servicios se ejecutan en un contexto diferente al del usuario (el ID 0), aislando a los usuarios de los servicios e impidiendo la posibilidad de realizar una interacción directa, esto mejora la seguridad, reduciendo el riesgo del equipo ante un atacante que puediera valerse de una vulnerabilidad de un servicio para obtener acceso al sistema.


Problema de ID de sesión 0:


El problema básico es que caulquier aplicación que necesite ejecutarse bajo el usuario SYSTEM (como los scripts de inicio de sesión de los equipos), no mostrarán advertencias interactivas al usuario de manera directa y como consecuencia no tendrán el comportamiento esperado.


 


MIC y el modo protegido:


Windows Vista incluye otra tecnología de seguridad conocida como Mandatory Integrity Control (MIC) que hace un uso exhaustivo de los conocidos anillos de seguridad de la arquitectura x86 para mejorar la seguridad del sistema con creces mediante la aplicación de 4 niveles de seguridad (“sistema” para servicios, Alto para Administradores, Medio para Usuarios y Bajo para aplicaciones específicas como Internet Explorer 7)


Internet Explorer hace uso de MIC en Windows Vista mediante el “Modo protegido” mediante el cual consigue que cualquier elemento que intente acceder al disco duro deba ser advertido al usuario el 100% de las veces (incluso si dicho intento de escritura es por culpa de una vulnerabilidad), dado que Internet Explorer se ejecutará con un nivel de integridad inferior al del propio usuario.


Problema con el Modo protegido:


Ciertas páginas web que requieran realizar cambios de manera frecuente en el usuario, mostrarán continuas advertencias y podrían alertar al usuario.


Los elementos indicados arriba reúnen la inmensa mayoría de los problemas de compatibilidad conocidos, pero existen otros, como las APIs descontinuadas, comprobaciones de versiones, entornos gráficos, incompatibilidades con IPv6 y un largo etc. que aunque son responsables de un menor número de incidencias también son aspectos a tener en cuenta.


Hay que entender las tecnologías de seguridad de Windows Vista para acometer los diferentes escenarios de compatibilidad de aplicaciones, algo que dejo para más adelante, dado que esto ya me queda demasiado largo….


En resumen, Windows Vista incluye un gran número de elementos de seguridad que pueden afectar a la ejecución esperada de las aplicaciones, sinembargo, también es cierto que la seguridad tiene un coste, y Windows Vista es sin duda a día de hoy el sistema operativo de escritorio más seguro del mercado (aquí dejo mi “Flame” particular :P).

5 comentarios en “Compatibilidad de aplicaciones con Windows Vista (Conceptos generales)”

  1. Un saludo espinete, te dejo unos enlaces para que les eches un vistazo:

    Información relativa a IPv6 de Microsoft:

    http://technet.microsoft.com/en-us/network/bb530961.aspx

    Información de la Pila TCP/IP de nueva generación:

    http://technet.microsoft.com/es-es/network/bb545475(en-us).aspx

    Información sobre AUTH IP de IPSEC:

    http://technet.microsoft.com/es-es/magazine/cc137790.aspx

    Especificaciones de SMB 2.0

    http://download.microsoft.com/download/a/e/6/ae6e4142-aa58-45c6-8dcf-a657e5900cd3/%5BMS-SMB2%5D.pdf

    Especificaciones de LLTD:

    http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-LLTD%5D.pdf

    Información relativa a Network Access Protection:

    http://technet.microsoft.com/en-us/network/bb545879.aspx

    Información sobre los HANDS ON LAB de sistemas de Informatica64 y Microsoft:

    http://www.microsoft.com/spain/seminarios/hol.mspx

  2. Tienes unos pequeño fallos en “y lo único que se puede hacer es solititar a los fabricantes que diseñen drivers para Windows Vista, o bien adquirir nuevo hadrware que sí sea compatible”

    *solicitar
    *hadware

    “Reflexionando un poco no tardamos en darnos cuenta que tambien fastidia tener que volver a compilar un módulo para un dispositivo concreto dentro de un nuevo Kernel de Linux…”

    *también

    Y dicho esto pregunta xD

    De lo que comentas de la memoria RAM,yo tengo 3GB, entonces yo me pregunto si puedo hacer algo con lo que dices del Superfetch ya que no entiendo cuando dices lo de “Básicamente el planteamiento es ¿Si tienes 4GB de RAM por qué solo vas a aprovechar 512MB?”

    Podrías poner un ejemplo para torpes como yo?

    Yo había leido creo que en kriptopolis que Windows 32 bits solo reconoce una determinada cantidad de memoria.

    Saludos

    PD: Yo soy el del mail xD
    PD_2: En Opera no me ha dejado postear este comentario

  3. Un saludo Daniel, aqui es donde uno toma conciencia de que hay que releer las cosas que se escriben antes de pulsar en “enviar”, lamento las letras “desaparecidas” en mis comentarios.

    Con respecto a lo de “Básicamente el planteamiento es ¿Si tienes 4GB de RAM por qué solo vas a aprovechar 512MB?”, la cosa es sencilla, si ya tienes cargadas las páginas de memoria que usa el OFFICE, el Word iniciará más rápido porque no tendrá que cargar dicha información desde cero (quién habla de Word habla de Internet Explorer, FireFox, Adobe Reader etc.)

    Sobre la RAM, las arquitecturas de 32 bytes soportan 2^32 Bytes (4GB) y las de 64 2^64 (16 exabytes). Esto es el límite de arquitectura, pero luego también existe un límite impuesto por el Sistema Operativo o por el propio Hardware, de esta manera Windows Vista soporta hasta 128 GB de memoria en versiones de 64 Bits pero no los 16 exabytes teóricos de la arquitectura.

    Por otro lado existe la posibilidad de soportar una memoria superior a 4GB en arquitecturas de 32 bytes gracias a PAE (Phisical Address Extension) de Intel y AMD, para habilitarlo es necesario ejecutar la sentencia “BCDEdit /set PAE forceenable”

    Creo que con esto quedan resueltas tus dudas. Un saludo.

  4. me fascino a ver encontrado tanta informacion sobre windows vista en forma transparente d facil de comprender, esta buscando en informacion de vista vs linux ubuntu me fue de gran ayuda ya que estoy estudiando. bueno espero que continues con tan apreciado trabajo de hacernos sabio al contestar nuestras dudas. cuidate bye

Deja un comentario

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