Publicado por Javier Guerrero, 26 de mayo de 2010

Se tiene la idea de que Windows no es un sistema seguro, en contraposición a otros como Linux o Mac OS, pero esto no es del todo cierto.

Me explico: es innegable que Windows es el objetivo principal de todo el malware que se crea en el mundo, básicamente porque cuenta con una abrumadora cuota de mercado.

Sin embargo, Windows implementa todos los mecanismos de seguridad propios de un sistema operativo moderno, como: listas de control de acceso, permisos, cuentas de usuario con diferentes privilegios, etc. Paradójicamente, la mayoría de estas funcionalidades acaban por ser de escasa utilidad porque, sencillamente, no se usan.

Reflexionaba sobre esto hace algunos días, cuando poco después leí una noticia relacionada con un informe realizado por la compañía BeyondTrust, en el que se indicaba que alrededor del 90% de los problemas de seguridad que aquejan a Windows (cosas como malware, vulnerabilidades, etc.) se podrían reducir o mitigar si la gente emplease cuentas de usuario limitado en lugar de usuario administrador.

Pero, ¿qué es esto de usuarios limitados y usuarios administradores?

Para que una persona pueda usar el PC, debe hacerlo con una cuenta de usuario, que le identifique en el sistema operativo y le permita trabajar con él. Básicamente hay dos tipos de cuentas:

  • Cuenta de administrador
  • Cuenta de usuario limitado.

El primero, administrador, tiene acceso ilimitado a los recursos del sistema: puede instalar hardware y aplicaciones, gestionar toda la información relativa a usuarios (añadirlos, borrarlos o cambiar sus contraseñas) y, en definitiva, efectuar cambios que afecten a todo el sistema.

Por el contrario, el segundo con cuenta de usuario limitado tiene restringido el acceso a determinados recursos del sistema operativo, como carpetas, archivos, herramientas de administración, instalación de aplicaciones, etc.

Vale, pero… ¿cómo afecta esto al malware?

Bien, imaginemos que, sin saberlo, ejecutamos un programa malicioso que intenta instalar y arrancar un troyano. Normalmente la aplicación utilizará los permisos de acceso de la cuenta bajo la que se ejecuta, lo que significa que si somos un usuario con cuenta limitada, el intruso no podría copiar sus ficheros a la carpeta de sistema, modificar las claves del registro necesarias, o incluso iniciar un hipotético driver o servicio.

Si por el contrario el malware se ejecuta con permisos de administrador, no tendrá ningún problema en instalarse y hacer de las suyas ya que, en lo que respecta al sistema operativo, la aplicación está perfectamente autorizada para hacerlo.

Por tanto, resulta innegable que, si bien siempre existen vulnerabilidades y formas de saltarse los controles de seguridad, este mecanismo es una buena barrera para el malware más común y poco sofisticado, y permite mitigar en buena medida bastantes de los problemas.

Entonces, si los medios están disponibles, ¿por qué no se usan?

Existen diversos motivos, entre ellos:

  • La mayoría de usuarios se han habituado a manejar el sistema como administradores. Esto es comprensible, ya que no es sencillo lidiar con conceptos como permisos, cuentas, privilegios, listas de control de acceso, etc., incluso para usuarios experimentados. De manera que, bien por ignorancia, costumbre o simple comodidad, al final acabamos usando la cuenta de administrador.
  • Hay aplicaciones que no tienen en cuenta el modelo de seguridad de Windows, y asumen que la cuenta de usuario bajo la que corren va a ser siempre la de Administrador, y por tanto van a tener permisos para realizar ciertas tareas. Esto hace que no funcionen bien en cuentas de usuario limitado, o incluso que ni siquiera se instalen, con lo cual al final terminan por obligar al usuario a trabajar con cuenta de Administrador.
  • También ocurre que a muchos usuarios les gusta poder controlar todo lo que ocurre en el sistema, y se encuentran con que la cuenta de usuario limitado les impone demasiadas restricciones. Por tanto, prefieren asumir el riesgo a cambio de no perder el control.

Una de las conclusiones que se pueden sacar de todo esto es, evidentemente, que un sistema operativo es un producto complejo, y que cuando se intenta hacer accesible al mayor número posible de usuarios, la seguridad suele ser uno de los aspectos que más se resienten.

Javier Guerrero Díaz
Dpto. Desarrollo – I+D