|
VSantivirus No. 1102 Año 7, Lunes 14 de julio de 2003
Windows vulnerable por ser Windows
http://www.vsantivirus.com/shatter-attack.htm
Por Jose Luis Lopez
videosoft@videosoft.net.uy
Hace ya casi un año (agosto de 2002), Chris Paget, un experto británico, hizo público un informe conocido como "Shatter Attacks - How to break Windows", que describía fallos fundamentales en el diseño de Windows, y que se basan en la manera de funcionar de las APIs (Application Program Interface), un conjunto de rutinas que un programa de aplicación utiliza para solicitar y efectuar servicios de nivel inferior ejecutados por el sistema operativo.
Paget mostró como estos errores pueden llevar a una clase de ataque que el llamó "Shatter attacks", cuya traducción sería algo así como ataques que causan un gran destrozo de un solo golpe.
También afirmó que era muy difícil, por no decir imposible, encontrar una solución efectiva mediante parches, ya que este tipo de ataque se basa sencillamente en la forma en que Windows está programado para gestionar la comunicación entre aplicaciones que se están ejecutando en forma simultánea. Lo que Paget daba a entender, es que la única solución efectiva sería cambiar el código base de Windows.
La audacia de estos reclamos, cómo suele suceder, llevó a una desmedida cobertura periodística del tema, y a un gran debate dentro de la comunidad dedicada a la seguridad informática, acerca de la certeza y la importancia de estas afirmaciones.
Cómo respuesta a la presión ejercida por la atención de los medios, Microsoft publicó en diciembre de 2002, el boletín de seguridad
MS02-071 con un parche, en donde se afirmaba que ese tipo de ataque ya no era posible. La solución hacía referencia a la función con la que Paget demostraba sus dichos (WM_TIMER), corrigiendo la forma en que esa función interactuaba entre las diferentes aplicaciones.
Recientemente iDefense, una compañía líder en el monitoreo de vulnerabilidades y ataques a la red, hacía
público un documento escrito por el investigador Oliver Lavery que clarifica en forma detallada, cuáles son los errores a los que Paget hacía referencia, ya que también se ha
difundido mucha información errónea sobre estos.
Pero lo más importante, Lavery también afirma que dicha vulnerabilidad continúa existiendo hoy día, en muchos productos de software de uso popular, a pesar del parche.
El problema empieza con la interface gráfica de Windows, y su forma de interactuar con los eventos básicos, como el clic del ratón o las teclas pulsadas. O sea, lo que hace que Windows sea Windows.
Los llamados "mensajes de Windows", son funciones encargadas de enviar esta información, a otras ventanas, aplicaciones, o al propio sistema operativo.
La gran mayoría de estos procedimientos están implementados en el propio Windows, y residen en sus DLL (librerías de enlace dinámico), usadas por la mayoría de las aplicaciones.
Por ejemplo, todos los "scrollbar" (barras deslizables de las ventanas), utilizan un procedimiento común que responde a las teclas o al ratón del usuario, por medio de los mensajes de Windows.
Lamentablemente, el diseño de esto fue hecho en los tiempos en que la seguridad no era un tema que preocupara, y como resultado, cualquier ventana puede enviar cualquier mensaje a cualquier otra ventana. Cómo decía Paget, es un error en el diseño básico de Windows.
Aunque en las versiones más nuevas de Windows, los usuarios pueden tener restricciones en sus privilegios, algunas aplicaciones, como por ejemplo los antivirus, necesitan llevar a cabo operaciones no permitidas para un usuario normal.
En los documentos de Paget, se demostraba como la función WM_TIMER (uno de los mensajes de Windows, y al que hace referencia el boletín MS02-071), podía ser usada para ganar privilegios. El parche de Microsoft solo resolvió superficialmente el problema.
El actual documento de Lavery demuestra cómo el "Shatter attacks" puede llevarse a cabo sin el uso de la función WM_TIMER, y sin importar si está o no aplicado el parche mencionado. El resultado es el aumento de privilegios, cosa que se puede implementar utilizando aplicaciones hoy día vulnerables, como estas por ejemplo:
- Kerio Personal Firewall 2.1.4
- Sygate Personal Firewall Pro 5.0
- McAfee VirusScan 7.0
- Win VNC 3.3.6 y derivados
Todas estas aplicaciones utilizan servicios privilegiados, en una forma contraria a como Microsoft recomienda, y en todas ellas pueden ejecutarse exploits para obtener acciones que comprometen la seguridad de todo el sistema.
Sin embargo, no son los únicos programas vulnerables. Cualquiera puede encontrar otras aplicaciones que se ejecuten a un nivel superior de privilegio y que además desplieguen una interface de usuario, con alguna opción para ingresar datos (como contraseñas o alguna configuración por ejemplo).
El exploit también puede implementarse a través de un virus o un troyano.
Las recomendaciones para usuarios avanzados, es evitar las aplicaciones que se ejecutan a un nivel de privilegios superior, y que desplieguen alguna interface de usuario. En Windows XP puede verse esto en el administrador de tareas.
Las aplicaciones deberían ser reescritas para que la interface de usuario se ejecute en un proceso separado, sin mayores privilegios. Los fabricantes mencionados, fueron avisados oportunamente, aunque aún no han dado ninguna respuesta.
La base del problema está en el código fuente de Windows, y para muchos, la solución definitiva seguramente signifique reescribirlo.
El documento de Lavery, presentado por iDefense, contiene ejemplos de estos exploits.
Relacionados:
La nueva generación de ataques a Windows
http://www.vsantivirus.com/13-08-02.htm
Parche crítico para la máquina virtual de Java y otros
http://www.vsantivirus.com/vulms02-069-070-071.htm
iDEFENSE Security Advisory 07.11.03
http://www.idefense.com/advisory/07.11.03.txt
Win32 Message Vulnerabilities Redux
http://www.idefense.com/idpapers/Shatter_Redux.pdf
Win32: Postmessage API security flaw
http://www.securityfocus.com/archive/1/315061/2003-03-12/2003-03-18/0
(c) Video Soft - http://www.videosoft.net.uy
(c) VSAntivirus - http://www.vsantivirus.com
|