-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-------------------------------------------------------------------
Hispasec - una-al-día 22/05/2008
Todos los días una noticia de seguridad www.hispasec.com
-------------------------------------------------------------------
Mitos y leyendas: Seguridad en ActiveX II (Protección)
------------------------------------------------------
Dados los numerosos problemas que puede presentar una tecnología como
ActiveX y los riesgos que conlleva, en Microsoft se han implementado
numerosas contramedidas para intentar controlarlos en lo posible. Como
suele ocurrir, muchas de estas medidas no se conocen, no se entienden,
o son consideradas un estorbo para la usabilidad, con lo que la mayoría
quedan ignoradas por los usuarios finales.
En la primera parte de este artículo enumerábamos los riesgos de
ActiveX, vamos a ver qué tecnologías se han desarrollado para evitarlos.
* Authenticode: Esta es la tecnología que creó Microsoft para que el
navegador reconociera la firma de un archivo. Los ficheros pueden estar firmados digitalmente con la clave privada del fabricante o programador (Microsoft los llama "editores" en Windows). De esta forma, gracias a la criptografía asimétrica, podemos saber que el código viene de quien dice
venir, y que no ha sido alterado por nadie sin su permiso. Este tipo de
avisos los muestra Internet Explorer antes de ejecutar un ActiveX. Nos
advierte básicamente de que el ActiveX está firmado por el fabricante
de turno, y pregunta qué queremos hacer. Si no confiamos en el editor,
podemos comprobar el certificado. Esto, lamentablemente, sólo nos
garantiza la procedencia y la integridad del archivo pero en ningún
caso nos protege de sus intenciones.
Aunque un ActiveX creado por una empresa cualquiera esté perfectamente
firmado, su finalidad puede ser destruir o instalar cualquier cosa.
Tampoco lo libera de que tenga vulnerabilidades. Pero Authenticode nos
avisará de qué efectivamente, independientemente de sus intenciones o
defectos de programación, está firmado por esa empresa. Un administrador
bien informado sólo permitirá la ejecución en un sistema de los ActiveX firmados por los "editores de confianza" que es la terminología de
Windows para estos casos. Esto también pasa con los applets, que pueden
estar firmados. Internet Explorer bloquea por defecto los ActiveX no
firmados.
* Safe-for-Scripting: Los creadores (editores) de ActiveX pueden indicar
a su ActiveX si es "seguro para scripting". Al contener potencialmente
métodos que pueden causar daño, Microsoft da la posibilidad a los
propios programadores de marcarlos como potencialmente peligrosos o no.
Si están marcados como tal, no podrán ser invocados de forma automática
(a través de scripts) por Internet Explorer de forma predeterminada.
Microsoft aconseja que los ActiveX que (a través de sus métodos) accedan
a información local, ejecuten programas, obtengan información... etc,
no deben ser marcados con esta característica. Pero los creadores de
ActiveX ignoran esto deliberadamente. No quieren que sus programas sean bloqueados de ninguna forma, incluso si potencialmente pueden causar
algún daño. O quizás están diseñados específicamente para ser usados a
través del navegador y esto se lo impediría. Es una medida que confía
en la buena voluntad del propio programador y por tanto, aunque con la
mejor intención, no resulta muy efectiva en la práctica.
* Zonas de Internet Explorer: Internet Explorer permite clasificar
las páginas (los dominios) en distintas zonas. Las zonas son una
clasificación lógica que hace el navegador de las distintas páginas que
se visitan, de forma que a cada zona se le permiten ciertas licencias
sobre el sistema, o ejecución de cierto tipo de código del lado del
cliente según la zona donde quede adjudicado cada dominio. Esto permite clasificar de forma eficiente las zonas confiables o peligrosas y
ejercer cierto control sobre el sistema según los escenarios a los que
nos enfrentemos.
Las zonas son "Internet", "Internet Local", "Sitios de Confianza" y
"Sitios Restringidos". Podemos, por ejemplo, prohibir que todo excepto
nuestras páginas habituales ejecuten ActiveX, JavaScript y otras muchas opciones. No es una tecnología muy conocida (aunque está ahí desde la
versión 4 del navegador), pero bien utilizada, puede proteger de forma
muy efectiva el navegador de Microsoft. Internet Explorer es el único
navegador que divide en zonas de seguridad, y de una forma bastante
eficaz.
Por ejemplo, la zona de "Internet" representa todo el resto de lugares
en los que no encajan las otras zonas y en los que, por tanto, no se
debe confiar. Todas las direcciones o dominios que se introduzcan en el navegador y que contienen un punto, por defecto, pertenecen a esta zona
a no ser que se especifique lo contrario. Cada zona está caracterizada
por un "nivel de seguridad" en el que podemos definir muchas opciones.
El problema es que este "nivel de seguridad" para la zona "mayoritaria",
que es la llamada "Internet" es muy relajado por defecto. Las posibles combinaciones con las zonas de Internet Explorer y sus niveles de
seguridad son muy prácticas y potentes. Por alguna razón, no son muy
usadas.
* Kill bit: Esta es una de las funcionalidades más efectivas. Fue
introducida por Microsoft para evitar la ejecución de los ActiveX desde Internet Explorer de forma definitiva. Como hemos dicho, los editores
pueden activar la opción "safe for scripting" aunque realmente el
control no sea seguro para ser llamado por el navegador. Incluso, aunque
no estuviese marcado (o sea, el ActiveX se considerase inseguro),
Internet Explorer preguntaría al usuario sobre si desea ejecutar ese
ActiveX que es potencialmente peligroso. Por tanto cabe la posibilidad
de que se ejecute. Así que Microsoft introdujo el kill bit, un bit que
una vez activo en el registro, impide completamente que el ActiveX sea
invocado a través de Internet Explorer, sin deshabilitarlo por completo.
La mayoría de las contramedidas de seguridad cuando se encuentra una vulnerabilidad en un ActiveX recomienda activar el kill bit del control (caracterizado por un CLSID). Así, al menos hasta que se actualice el
control, un atacante no podría llamar a los métodos vulnerables a través
del navegador, evitando así la ejecución remota de código. Activar el
kill bit es una operación muy sencilla que conlleva una modificación del registro.
* JavaScript: Deshabilitar la ejecución de JavaScript puede impedir
la ejecución de buena parte de los ActiveX que son llamados por el
navegador de esta manera. Esto también se puede conseguir a través
de las zonas del navegador, de forma mucho más granular.
* ActiveX Opt-In deshabilita automáticamente la mayoría de los controles ActiveX. Esta característica fue introducida en Internet Explorer 7. El navegador solicita a los usuarios confirmación (a través de la barra de información) antes de acceder a un control ActiveX instalado previamente
pero que todavía no se ha utilizado. Entra dentro de la política de "deshabilitar por defecto" que está adoptando Microsoft lentamente desde
hace algunos años.
* Internet Explorer 8: Parece que este navegador introducirá importantes cambios con respecto a la seguridad ActiveX. Al parecer cada control
instalado se ejecutará en el ámbito del usuario que lo ha instalado (ya
no se necesitarán permisos de administrador para hacerlo) con lo que el
impacto de un ActiveX vulnerable será menor. También se va a restringir
la llamada a métodos de un ActiveX a dominios concretos. De esta forma
se evita que cualquier página pueda llamar a un ActiveX vulnerable y explotarlo, con lo que el riesgo también se limita considerablemente.
Este último cambio puede resultar especialmente interesante, puesto que
los desarrolladores de un ActiveX limitarían su invocación a través del navegador a los dominios bajo los que tiene sentido ejecutar ese ActiveX
y que se suponen de confianza.
Una buena combinación de todos estos métodos a nuestro alcance (los
que hay y los que están por venir) junto con los hábitos normales de
navegación segura, pueden permitir la perfecta convivencia de los
ActiveX en un entorno razonablemente seguro.
Opina sobre esta noticia:
http://www.hispasec.com/unaaldia/3498/comentar
Más información:
IE8 Security Part II: ActiveX Improvements
http://blogs.msdn.com/ie/archive/2008/05/07/ie8-security-part-ii-activex-improvements.aspx
15/05/2008 Mitos y leyendas: Seguridad en ActiveX I (Introducción)
http://www.hispasec.com/unaaldia/3491/mitos-leyendas-seguridad-activex-introduccion
Sergio de los Santos
ssantos@hispasec.com
Tal día como hoy:
-----------------
22/05/2007: La edición americana de PC World premia a VirusTotal
http://www.hispasec.com/unaaldia/3132
22/05/2006: Revelación remota de archivos en Skype para Windows
http://www.hispasec.com/unaaldia/2767
22/05/2005: Múltiples vulnerabilidades en gestores IOCTL del Kernel Linux
http://www.hispasec.com/unaaldia/2402
22/05/2004: Vulnerabilidad en control ActiveX de Symantec Norton Antivirus 2004
http://www.hispasec.com/unaaldia/2036
22/05/2003: Publicadas actualizaciones para BEA WebLogic
http://www.hispasec.com/unaaldia/1670
22/05/2002: SQLsnake: viejas vulnerabilidades, nuevo gusano
http://www.hispasec.com/unaaldia/1305
22/05/2001: Hispasec publica su comparativa de productos antivirus
http://www.hispasec.com/unaaldia/940
22/05/2000: Parche para los routers y switches de Cisco
http://www.hispasec.com/unaaldia/573
22/05/1999: Problema de seguridad en NT a través del servicio RAS
http://www.hispasec.com/unaaldia/207
-------------------------------------------------------------------
Claves PGP en
http://www.hispasec.com/directorio/hispasec
-------------------------------------------------------------------
Bajas: mailto:
unaaldia-request@hispasec.com?subject=unsubscribe
Altas: mailto:
unaaldia-request@hispasec.com?subject=subscribe
-------------------------------------------------------------------
(c) 2008 Hispasec
http://www.hispasec.com/copyright
-------------------------------------------------------------------
--- SoupGate-DOS v1.05
* Origin: Pasarela FTN-INet
telnet://pucelabbs.dyndns.org:4000 (2:341/201.99)