Microsoft Windows y el control de acceso, al desnudo


Sudhakar Govindavajhala y Andrew W. Appel de la Universidad de Princetown (Nueva York), han publicado un interesante estudio sobre permisos y control de acceso en sistemas Microsoft Windows. En el estudio se desmitifica el funcionamiento del sistema operativo Windows a la hora de controlar el acceso a sus recursos y se explica cómo algunos comportamientos han provocado vulnerabilidades no sólo en el sistema operativo, sino en conocidos programas comerciales





Estos investigadores han usado la programación lógica para implementar
lo que han llamado MulVAL (Multihost, Multistage, Vulnerability
Analysis) una herramienta que han utilizado para analizar profundamente
el control de acceso de los sistemas Windows XP. Mediante la información
recopilada desde distintas fuentes del sistema (el registro, sistema de
ficheros...) el modelo implementado elabora una especie de "mapa" por el
que se revelan varias posibles fórmulas y distintas vías de ataque,
todas destinadas a elevar los privilegios de un usuario local en el
sistema. Con esta herramienta, entre otras, se han encontrado hasta 20
formas distintas de escalar privilegios desde cuentas del grupo
"usuarios avanzados" a administradores. Aunque los usuarios avanzados
poseen bastantes privilegios sobre la máquina, no llegan a los totales
poderes del administrador.

En el estudio se habla también de forma clara y sencilla sobre los
potenciales peligros de la implementación incorrecta de las listas de
control de acceso a los objetos Windows y se plantean fórmulas por las
que se puede llevar a un usuario del sistema a poder ejecutar cualquier
tipo de código con los permisos del administrador o de cuentas
reservadas del sistema con altos privilegios.

Si Unix tiene un modelo simple de control de acceso basado en tres
privilegios (además del bit UID) que se dan a distintos objetos del
sistema (ficheros, directorios...), el sistema de Windows es mucho más
complejo. Se arrastra una lista de control de acceso de hasta 30
permisos diferentes para operaciones sobre unos 15 tipos distintos de
objetos, todo ello con la posibilidad de negar o permitir explícitamente
el privilegio. Esto permite afinar en extremo los permisos, pero también
puede suponer un verdadero galimatías para un administrador o para un
programador que quiera desarrollar una herramienta que interactúe con
los objetos del sistema, pues deben documentarse profusamente y
comprender la compleja estructura de permisos.

Aunque los permisos en Windows están bien documentados y detallados,
resulta muy común observar cómo los creadores de software profesionales
a menudo no evalúan correctamente el impacto que puede llegar a tener la
instalación de su programa en un sistema sin haber afinado correctamente
los permisos que han elegido para sus aplicaciones. La consecuencia es
que mucho software comercial puede llevar a la elevación de privilegios
por parte de usuarios en sistemas compartidos, y de hecho ya se han dado
casos concretos.

Hace poco, a principios de febrero de 2006, se han identificado errores
de permisos en ficheros y directorios en varios productos Adobe tales
como Adobe Photoshop CS2, Illustrator CS2, y Adobe Help Center. El grupo
"Todos" tenía permiso de escritura en 170 archivos (ejecutables y
librerías) de productos Adobe. Un atacante podría sustituirlos por
código malicioso en local y esperar a que el administrador los ejecutara
para poder arrancar ese código con mayores privilegios. La configuración
estándar de AOL, entre otros, también permitía a un usuario invitado
ejecutar código con los permisos de cualquier otro usuario (incluso los
de "Local System"), simplemente manipulando claves de registro. Los
permisos de las ramas de registro, según apunta el estudio, pueden
suponer también habitualmente un problema de seguridad.

La herramienta que desarrollaron estos investigadores ha ayudado a
descubrir muchos problemas de permisos tanto en software comercial como
en componentes del sistema. El caso de los servicios es especialmente
significativo. Al existir tantas formas y combinaciones posibles de
permisos, los desarrolladores optan por distintas vías (por no existir
una convención única) para implementar la funcionalidad de un servicio
propio que correrá en sistemas Windows. Cada servicio tiene un
descriptor de seguridad que especifica a qué usuarios se les permite
configurar o arrancar o parar un servicio. Algunos fabricantes no
aplican correctamente el modelo de control de acceso de Windows en sus
servicios y por ejemplo, otorgan indiscriminadamente el permiso "SERVICE
CHANGE CONFIG" que permite modificar el ejecutable ligado al servicio.
Microsoft recomienda que este permiso sea sólo dado a los
administradores, pero en su documentación no avisa explícitamente de que
este permiso también permite no sólo modificar el ejecutable sino
especificar quién lo hará, de forma que si, a través de cualquier
programa instalado se posee este privilegio, se puede ejecutar
potencialmente cualquier fichero bajo cualquier cuenta del sistema.

Por ejemplo, el grupo "Todos" tenía este permiso de configuración
activado en el servicio "Macromedia Licensing Service" que instalaban
varios productos de Macromedia. Afortunadamente este problema fue
solucionado en junio de 2005. Existen otros agujeros menos graves en
servicios de fabricantes ajenos a Microsoft, pero en el estudio no se
dan detalles a la espera de que puedan ser solventados.

No sólo a través de servicios de terceros es posible elevar privilegios.
Por ejemplo, según el estudio, varios servicios de Windows XP, tales
como "Servicio de descubrimientos SSDP" y "Host de dispositivo Plug and
Play universal" tenían hasta hace poco ese privilegio ("SERVICE CHANGE
CONFIG") activado por defecto para el grupo "Usuarios Autenticados".
Cualquier usuario con cuenta en el sistema pertenece a ese grupo, por lo
que potencialmente cualquier usuario podía modificar el ejecutable que
arrancaba estos servicios y la cuenta bajo la que iba a ejecutarse. Se
permitía así, indirectamente, la instalación de un troyano o software
dañino modificando la configuración del servicio y esperando a que fuese
reiniciado. Esto fue solucionado por Microsoft en agosto de 2004, aunque
el peligro estaba presente desde casi dos años antes. Otros servicios
del sistema se descubrieron vulnerables y también fueron parcheados
posteriormente.

El problema se basa en que las aplicaciones que instalamos necesitan
normalmente muchos menos privilegios de los que realmente poseen para
acceder a los datos con los que operan. Encontrar el conjunto de
permisos estrictamente necesarios para que funcione una aplicación bajo
condiciones lo más asépticas posibles de seguridad, es objeto de otro
estudio liderado en 2005 por Shuo Chen, y titulado "A black-box tracing
technique to identify causes of least-privilege incompatibilities". En
él se explica una técnica para encontrar en los programas los mínimos
privilegios posibles y necesarios que le son necesarios para funcionar.

En definitiva, con la herramienta desarrollada por Sudhakar
Govindavajhala y Andrew W. Appel, se permite facilitar la tarea del
estudio de los controles de acceso a sistemas Windows, algo, como se ha
visto, delicado. Como la herramienta puede considerarse potencialmente
peligrosa, no se ha hecho pública, aunque sí se recomienda a los
administradores usar herramientas análogas de estudio y modificación de
permisos, tales como SubInACL de Microsoft, y estudiar con ellas
cuidadosamente los permisos de los ficheros y objetos del sistema.

Tanto en entornos domésticos como corporativos, gran parte de los
problemas de seguridad de Windows vienen por el hecho de usar el sistema
en modo administrador. Entender los permisos y controles de acceso es
fundamental para limitar el impacto de los fallos de seguridad del
software, pero parece ser que Microsoft, en este sentido, no termina de
entenderse con los usuarios ni con los programadores de aplicaciones. No
hay razón para pensar que los desarrolladores de Adobe, Macromedia o AOL
han sido los únicos que han cometido errores y es seguro que otros
fallarán en los mismos términos. Estudios como los expuestos demuestran
que un cambio de rumbo y una mayor concienciación por ambas partes en
este sentido haría de Windows un sistema operativo más seguro.

Más información:

Microsoft Corporation. Service security and access rights.
http://windowssdk.msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/service_security_and_access_rights.asp

A black-box tracing technique to identify causes of least-privilege incompatibilities.
http://research.microsoft.com/~shuochen/papers/chen-ndss05.pdf

Windows Access Control Demystified
http://www.cs.princeton.edu/~sudhakar/papers/winval.pdf

Fuente:
Sergio de los Santos
hispasec.com



Otras noticias de interés:

Panda DesktopSecure for Linux, una suite antimalware gratuita para estaciones de trabajo Linux
Panda Software lanza Panda DesktopSecure for Linux, una completa suite de seguridad para la protección de estaciones (usuario final) de trabajo Linux. ...
Por qué el cifrado no es suficiente
Ahora que Europa no es sino una república bananera cualquiera, aparecen de repente los que dicen que la solución es «encriptar internet». Vale, empecemos por aclarar que las cosas no se encriptan, se cifran; pero eso es lo de menos....
Microsoft y la privacidad de IE8
Un reportaje asegura que la privacidad de los usuarios del navegador se redujo para conseguir ingresos publicitarios. Las alarmas saltaron cuando antier se publicó un extenso artículo en el Wall Street Journal sobre cómo Microsoft habría impedido...
Falsas aplicaciones invaden a Facebook
La curiosidad de descubrir quien visita nuestro perfil de Facebook o saber qué hizo una chica para arruinar su vida en tan sólo un minuto se ha convertido en un gancho cada vez más utilizado para distribuir en spam en la red social....
Triatlón Regional de Software Libre en Mérida - Venezuela
El 3er Congreso Nacional de Software Libre y la Universidad de Los Andes invitan a participar en 1er Triatlón de Software Libre, una competencia tecnológica que se realizará los días Miércoles 13 y Jueves 14 de Junio de 2007, en el Marco del ...
Lanzan beta de MI accesible desde el navegador
Instan-t Express es un mensajero instantáneo gratuito accesible a través del navegador, desarrollado con tecnologías AJAX....
Suricata, Detector de Intrusos de tu Red Wifi
Suricata es un detector de intrusos y prevención desarrollado por la Open Information Security Foundationo. El motor es de subprocesos múltiples y tiene soporte nativo de IPv6. Es capaz de cargar las normas vigentes y las firmas de Snort y soporta ...
Adobe parchea fallos 0-DAY en Acrobat y Reader
Adobe está lanzando una actualización de seguridad que repara una vulnerabilidad Día Cero descubierta a primeros de diciembre y que ya fue parcheada en algunas versiones de los programas....
Vulnerabilidad Silenciosa << cookies >> en Flash
En el siempre recomendable 503 Service Unavailable, he encontrado hoy una nota interesante sobre un tema que desconocía. Resulta que el plugin para poder visualizar Flash en nuestro navegador tiene la curiosa característica de almacenar en nuestro ...
BlackHole RAT, un troyano para Mac
BlackHole RAT es el nombre con el que se conoce un troyano para Mac que, según la empresa de seguridad Sophos, es muy sencillo de utilizar, aunque aún no se tiene constancia de ningún ataque....

Brindanos
un o una


Redes Sociales

Publicidad


Gana Bitcoins desde tu casa

Categorías


Planeta Vaslibre

Blog Roll




Nube de tags

  • acceso
  • anonimato
  • anonimo
  • antivirus
  • apache
  • blog
  • bsd
  • bug
  • centos
  • chrome
  • cifrado
  • computer
  • control
  • debian
  • desnudo
  • exploits
  • fedora
  • fice
  • firefox
  • forense
  • freebsd
  • gentoo
  • github
  • gnome
  • gnu
  • gpl
  • gtk
  • hack
  • hacking
  • hosting
  • informatica
  • internet
  • isos
  • libre
  • licencias
  • linux
  • linuxmint
  • lxde
  • micros
  • mint
  • mit
  • mozilla
  • mysql
  • noticia
  • opensource
  • pgp
  • php
  • sabayon
  • seguridad
  • system
  • tecnologia
  • thunar
  • thunderbird
  • tor
  • troyanos
  • tware
  • ubuntu
  • underground
  • vaslibre
  • virus
  • viserproject
  • vivaldi
  • vulnerabilidades
  • web
  • website
  • windows
  • xanadu
  • xfce
  • xombra