|
Recientemente me preguntaron: "¿Solucionarán,
las nuevas medidas de seguridad en Windows Vista, el problema
de los virus?"
Después de reincorporarme,
tras la sorpresa que me provocó esta pregunta, traté de
brindar lo que espero haya sido una respuesta razonable. Sin
embargo, después
de reflexionar sobre el tema un tiempo más, decidí que la
pregunta realmente merece algo más que la simple, y bastante obvia,
respuesta "No".
Una segunda respuesta, también
obvia, podría
ser que Microsoft realmente no cree que los
nuevos controles de seguridad resolverán el problema, dado que ha
invertido grandes sumas de dinero en el desarrollo de sus propias
soluciones contra el código malicioso (tanto programas antivirus
como aplicaciones contra aplicaciones espía).
Estas soluciones se encuentran unidas con una serie de otras
herramientas como Microsoft
One Care y
serán lanzadas junto con Windows Vista.
Existen dos partes diferentes de la pregunta que requieren
una mayor investigación:
De
ahí surge una tercera pregunta: ¿Tiene la respuesta a la segunda
parte, un impacto sobre el problema de los virus,
tal como se lo definió en la primera?"
¿Qué significa el problema de los virus?
"El problema de los
virus" se define en el lenguaje común, como ese grupo de "cosas" que "causan problemas
en (mi) ordenador".
Ocasionalmente, se puede escuchar
acerca del "problema
de los virus" en diferentes medios de comunicación.
E incluye (por lo menos en la percepción general) todas las categorías
de código malicioso, entre otras cosas.
Dejando de lado esta definición confusa
y amplia, y aceptando que no siempre será posible
dividir satisfactoriamente las diferentes categorías de los programas
no deseados de manera precisa y formal (por lo menos, no en público),
existe un malentendido más profundo y fundamental aquí.
No
solamente el público
en general, incluso muchas de las personas de seguridad que no
son especialistas, no comprende lo que es un código malicioso y las
innumerables posibilidades en que pueden afectar los
sistemas, sino que tampoco entienden la aplicación de diversos controles
de seguridad.
Parece que, en las mentes de muchos, las medidas de seguridad
que existen, principalmente debido a, y
para resolver "el problema de los virus", no lo hacen y no lo
harán.
Los controles de acceso, la autenticación de usuarios,
los controles de integridad de datos, la criptografía, la denegación,
detección de intercepción, endurecimiento de servicios, y
otras medidas de seguridad, han estado activas durante
mucho más tiempo que "el problema de los virus", y
hacen muy poco para tratarlo de alguna manera significativa debido
a una muy buena razón: no fueron diseñados para eso.
Cualquier sistema operativo lo suficientemente avanzado
que sea capaz de "ejecutar" programas desarrollados de manera
independiente, es susceptible al accionar de los virus
y a la explotación maliciosa, independientemente de los otros tipos
de controles (aunque, hasta qué punto y hasta
qué nivel
de "utilidad", es otra cuestión).
Si un programa puede ejecutarse
y, por ejemplo, reunir información personal para acceder en una
base de datos, otro puede ejecutarse con la misma funcionalidad.
El hecho de que en un caso esa base de datos sea utilizada
por un agresor no tiene ningún efecto sobre
la función en sí misma.
El problema de los virus no tiene que ver con los programas,
tampoco necesariamente con la seguridad, ni siquiera con la tecnología.
El problema de los virus es, primero y principal, un problema social.
La
mayoría de los códigos maliciosos modernos ni siquiera forman
parte de la categoría de lo que podría definirse generalmente
como "virus".
En realidad, la proporción es algo menor
del 20%, incluso si se incluyen los gusanos de correo electrónico.
Entonces ¿Qué quiere el agresor?
Pregúntese
lo siguiente:
-
¿Es posible ejecutar servicios y abrir puertos
en el sistema?
Si la respuesta es "sí" (aunque tampoco sería
de mucha utilidad si fuera "no")
entonces sería capaz de controlar
el sistema de manera remota con un programa de puerta trasera
o, socavar
un programa existente que esté escuchando (recibiendo) y brindando
(enviando) información.
-
¿Se utiliza el teclado del equipo para la introducción de texto, incluyendo
material personal confidencial?
Una vez
más, sí. Entonces los programas capturadores de texto
seguirán siendo una amenaza.
-
¿Es posible instalar archivos
en el sistema?
¿Sí? Entonces, todavía tiene "el
problema de los virus".
Cualquier sistema operativo, que se
implante (instale distribuidamente) o se utilice de una manera
no segura, está sujeto
a la explotación maliciosa, ya sea directamente por personas
o por programas maliciosos, incluyendo virus y gusanos.
¿Cuáles son las nuevas prestaciones de seguridad
en Windows Vista?
La lista de las "nuevas" prestaciones de
seguridad más importantes en Windows Vista, incluye:
control de cuentas de usuarios, consentimiento y credenciales,
integridad de código, encriptación de datos, aislamiento de
aplicaciones, redireccionamiento de datos, criptografía, proveedores
de credenciales, endurecimiento de servicios, Windows
Defender, y
servicios de administración de derechos.
Más
información: http://www.microsoft.com/technet/technetmag/issues/2006/05/FirstLook/default.aspx
Podemos descartar algunas de ellas, dado que no tienen
que ver con "el problema de los virus", y podemos concentrarnos
en las que sí pueden tener un impacto: control
de cuentas de usuarios, consentimiento y credenciales, integridad
de código,
aislamiento de aplicaciones, endurecimiento de servicios y Windows
Defender.
Controles de cuentas de usuarios
(UAC,
User account controls)
Esta característica (durante mucho tiempo un elemento
básico de los sistemas operativos *nix y Mac OS)
no es realmente nueva.
Ha estado presente durante mucho tiempo
en la familia NT de
sistemas operativos.
La diferencia radica en que ahora los usuarios tienen más
conciencia de ella y, lo que antes era la función "ejecutar
como", se encuentra ahora mucho más
integrada, porque no necesita que el usuario la utilice
explícitamente (asumiendo que no se estaban ejecutando como administrador
de todas formas).
Los usuarios podrán igualmente realizar acciones
importantes, como introducir claves WEP,
instalar impresoras y ejecutar programas que hayan sido descargados
desde Internet.
La única diferencia estará en que Windows les
pedirá permiso primero.
El hecho de no permitirle privilegios administrativos
completos a un usuario común (por lo menos no de manera predeterminada)
finalmente lleva al sistema operativo Windows de
Microsoft, a
un punto donde, su configuración, puede
alertar al usuario más cauteloso de los problemas que son comunes
a los programas no deseados.
No obstante, no lo lleva más allá de eso,
y no resuelve el problema real que es que los usuarios simplemente
no saben cómo distinguir entre acciones legítimas y las que
probablemente causen un problema.
Las herramientas que tratan
de hacerlo ya existen, y son creadas y comercializadas por
profesionales de la seguridad, que ya saben que los controles
de cuentas de usuarios no solucionan el problema.
Consentimiento y credenciales
Dada la nueva forma en que se implementan los UAC, se
necesitará el
consentimiento para ciertas operaciones en la forma
del acceso, por parte del usuario, de
una contraseña administrativa solicitada por el sistema
para completar la acción.
Una característica
definitoria de muchos programas no deseados es que, para poder
instalarse, dependen de usuarios con
privilegios para completar una acción.
Aquí, "una
acción" puede incluir también "algo que el usuario
realizó porque
un programa le preguntó si se lo permitía y el mismo no sabía
que hacer, pulsando entonces en "Aceptar" y, de esa forma, se
lo permitió".
El usuario es a menudo también el administrador
(especialmente en un gran porcentaje de sistemas hogareños) y obligarlo
a introducir una contraseña cuando el sistema
operativo le pregunta si puede realizar una función, no
va a resolver el problema.
Este es un inconveniente común
con algunos programas cortafuegos y seguirá siendo un
problema con Windows Vista por la misma razón:
primero pulse, después piense.
La implementación de UAC y consentimiento de credenciales
pueden alertar a los usuarios sobre que algo inesperado ha sucedido.
Por ejemplo, si un programa intentó instalarse durante el
inicio, le habilitará a permitir o evitar dicha acción.
Sin embargo, esto coloca la responsabilidad en el usuario
y es necesario que sepa lo que está haciendo.
A
menudo, en los supuestos acerca del control de cuentas de usuarios,
se encuentra inherente la idea que un usuario administrativo
no hará una
tontería.
Hace mucho tiempo, en su libro A short course on computer
viruses (Un curso breve son virus de ordenadores)
Fred Cohen demostró que controlar el privilegio del usuario no es
una defensa, porque eso por sí sólo, no
puede evitar que los usuarios con mayores privilegios ejecuten
código
que no deban lanzar los usuarios con menores privilegios.
El hecho de que el usuario sea una parte esencial, no
quiere decir que entienda de código malicioso.
Integridad del código
La integridad del código
en Windows Vista implica que los controladores que no hayan sido
firmados serán advertidos antes de ejecutarse en modo Kernel y,
verifica, que los binarios del sistema no han sido modificados.
Esto, por lo menos, debería tratar en cierta
forma de garantizar que los archivos del sistema no se infecten
con virus
y, que a los rootkits en modo kernel se les
haga difícil funcionar.
Si bien esto puede mejorar la estabilidad en un sistema
que está siendo atacado, no evita que otros archivos se infecten,
ni tampoco los rootkits en modo usuario, los objetos de programas
espía, gusanos o troyanos que afectan al sistema.
Aislamiento de aplicaciones
El aislamiento de aplicaciones garantiza que cada proceso
se ejecutará en su propio nivel de privilegios y, un
sistema denominado Control obligatorio de integridad (MIC , Mandatory
Integrity Control) definirá los "niveles de integridad",
de forma tal que las aplicaciones que se ejecuten como,
por ejemplo, un usuario común, se lanzarían
en un nivel de autenticación menor que un programa en actividad con
derechos administrativos completos y, por lo tanto, debería
evitar el escalamiento de privilegios.
Los programas muy expuestos,
como Internet Explorer,
se ejecutarán en un nivel de autenticación menor y no podrán
modificar los datos de los usuarios o cualquier otro binario
de Windows (aunque
esto pueda personalizarse para permitirlo).
Más importante aún, es que una aplicación que
se esté ejecutando a bajo nivel solamente
puede escribir en áreas del sistema que se encuentren marcadas como
de bajo nivel.
En el caso de Internet Explorer, esta ubicación sería
la carpeta de archivos temporales de Internet.
Si (tal como es
popular ahora con algunos programas espía) un archivo se está ejecutando
desde Archivos temporales de Internet, no debería
poder modificar los datos de los usuarios.
No obstante, si el
archivo se transfiere desde ese lugar ( deliberadamente, no muchos
usuarios almacenan archivos descargados en esa ubicación) se ejecutará en
el nivel en el que el usuario esté autorizado, (que
probablemente será el de administrador, si es que lo tiene permitido,
tal como se comentó anteriormente).
El aislamiento de aplicaciones
es esencialmente "algo
bueno" y puede cerrar algunas de las vulnerabilidades que se encuentran
actualmente asociadas con el uso de Internet Explorer. Sin
embargo, es posible ajustar el nivel de integridad con el que
los encargados de buscar lugares para explotar, se concentrarían
en determinar una forma de realizar este ajuste de forma encubierta.
Aunque reduce un cierto tipo de riesgo, no resuelve "el problema de
los virus".
Principalmente porque, una vez más, no está diseñado
para eso.
Algo que ha sido evidente durante toda la vida de Internet
Explorer es que las vulnerabilidades, cuando se
explotan aquí, tienen un gran impacto.
Cualquier opción para
hacer que Internet Explorer sea más
seguro, es buena.
Aunque me parece que deshacerse de
ActiveX hubiera sido mucho más efectivo.
Endurecimiento de servicios
El endurecimiento de servicios en el contexto de Windows
Vista significa que los servicios del sistema no se ejecutarán más
con el último privilegio utilizado. (Me pregunto quién más
que el mismo Windows ha
ejecutado frecuentemente taskmgr.exe desde un comando "at" para
obtener control sobre los servicios descarriados del sistema
o para poder detener forzadamente cualquier otro servicio).
Obviamente, una tarea programada no necesita estar
ejecutándose
al mayor nivel de privilegios y, el endurecimiento
de servicios permite a los desarrolladores asignarle a estos, diferentes
niveles de privilegio según su función.
Además, los desarrolladores
deben poder "restringir
la escritura" de servicios, de forma tal que solamente puedan tener
dicho acceso aquellos objetos que lo permitan.
El problema más grande aquí está en que
si bien es posible endurecer un servicio, y así reducir
el impacto de las vulnerabilidades, la efectividad de este endurecimiento
dependerá del
desarrollador que haya planificado y esté utilizando esta funcionalidad
correctamente.
Windows Defender
Windows Defender es una aplicación de Microsoft, contra programas
espía, adquirida a Giant y a la que se la ha cambiado el nombre.
Realizar
un examen de la efectividad de este producto está fuera del alcance
de este artículo.
No obstante, una característica excelente
es que Windows Defender (¿Quién no hubiera deseado que se
hubiese llamado Windows Malware
Defender, WMD?) le indica al usuario, con detalles, cada
vez que un programa (incluso uno legítimo) realiza ciertas acciones,
como por ejemplo, escribir en el registro.
Para el usuario
informado este dato es muy útil.
Sin embargo, lo más
interesante es que, a pesar de todas las otras medidas tomadas
en Windows Vista, para
conservar la integridad del sistema y reducir el contexto de
ataque para explotadores maliciosos, se necesita todavía una aplicación
independiente (aunque combinada) que esté dedicada exclusivamente
a tratar con programas indeseables.
Esto, más que cualquier otra
indicación, equivale a admitir que Microsoft no
cree que los nuevos controles de seguridad en Windows Vista han
de resolver "el problema de los virus".
El hecho de que Microsoft también
esté firme en el juego de los programas antivirus con su versión
re-empaquetada de RAV, es otro reconocimiento tácito de
este hecho.
Hasta aquí todo bien... ¿Entonces qué?
¿Entonces cuál es el impacto de las nuevas
prestaciones de seguridad sobre "el problemas de los virus"?
Windows
Defender claramente tendrá algún
tipo de repercusión, así como también el control de
acceso a las cuentas.
Así mismo puede ser el caso
(como sucedió con Windows 9x y Windows NT)
que inicialmente una gran parte del código malicioso anterior se
convertirá en inútil en la plataforma de Windows Vista.
Por supuesto que esto es algo bueno, pero la historia nos muestra
que frecuentemente los
malos se ponen al día y pronto, será un
negocio habitual en el mundo de creación de código malicioso.
Recientemente ha habido una
tendencia masiva hacia la explotación
delictiva del código malicioso.
Esto ha representado la inversión
de grandes sumas de dinero en el desarrollo de este tipo de código.
Al igual que, en los laboratorios de cada proveedor de aplicaciones
contra programas espía, en el planeta
existen muchas personas yendo de acá para allá tratando de
obtener un producto que funcione en Windows Vista, y tal vez, la
misma cantidad de gente (quizás más) que tiene el dinero para
crear su propia infraestructura, y contratar desarrolladores
de código malicioso, con el propósito expreso
de derrotar a Windows Vista.
Últimamente, hemos
visto explotaciones maliciosas derivadas directamente de vulnerabilidades
de día cero en MS
Word y MS Excel, y
no existe una reducción de la cantidad de vulnerabilidades que están
siendo encontradas.
Es
casi un hecho que en Windows Vista (como
en cualquier código lo suficientemente grande) existen vulnerabilidades
esperando ser encontradas o, tal vez, que ya han sido encontradas
y ahora están esperando ansiosamente algunos bytes de código
de explotación.
Si el resultado final de las nuevas medidas loables de Windows
Vista será que el usuario
se sienta, como tantos usuarios mal informados de GNU/Linux y
Mac OS, invulnerable a ataques, ya sean
de virus o de la plétora de otros programas no deseables,
particularmente los que utilizan técnicas de ingeniería social,
entonces habremos retrocedido en lugar de haber avanzado.
Los usuarios de cualquier
sistema operativo tienen la responsabilidad de informarse acerca de los
peligros de la utilización de sus sistemas,
y de la posibilidad real que, de no hacerlo, en algún momento serán
presa de un ataque.
|