miércoles, 27 de febrero de 2008

La Importancia de Actualizar.

Muchos sostienen que la creación del software es más un arte que una técnica. Esto era especialmente cierto hace unas décadas donde se carecía de las herramientas tecnológicas y metodologías existentes hoy en día para el desarrollo de software.
Lo cierto es que en este llamado  "arte" de crear software la seguridad no figuraba como un objetivo a seguir y finalmente lo que se buscaba era una aplicación funcional que le sirviera al usuario.

Esta manera de desarrollar aplicaciones funcionales (y no forzosamente seguras) permaneció por mucho tiempo en el mundo del desarrollo de software, no sólo en las aplicaciones creadas por y para una empresa en particular, sino en el software comercial como lo son los sistemas operativos, aplicaciones de ofimática, navegadores o reproductores de música digital. Actualmente las metodologías y herramientas tecnológicas empiezan a considerar cada vez más el factor de seguridad dado que para muchos desarrolladores de software ya no es suficiente codificar programas funcionales sino también seguros. Lo anterior obedece a que cada vez más la seguridad en las aplicaciones es vista como un valor agregado apreciado por los clientes.
En nuestros días, el auge del comercio electrónico y la posibilidad de hacer transacciones financieras en línea ha hecho mucho más necesario que tanto el sistema operativo como las aplicaciones que corren en él sean lo más seguras posibles. Y es que en la práctica resulta difícil desarrollar software seguro, por lo que los fabricantes de software han optado por crear actualizaciones o parches a sus sistemas operativos y aplicaciones con el fin de resolver problemas de seguridad (vulnerabilidades).

Para los usuarios, dos de los principales problemas inherentes a un esquema de "parchado" son:
* saber de la existencia de la actualización para poder aplicarla.
* disponer del parche antes de que existan ataques que afecten la seguridad.

Para el primer caso, un usuario se enfrenta a la problemática de seguirle la pista a varias decenas de aplicaciones instaladas en su equipo con el fin de informarse sobre las últimas actualizaciones de seguridad. Si corremos con suerte, la aplicación notificará automáticamente sobre la existencia de un nuevo parche para que efectuemos su instalación (como lo es el caso de por ejemplo Adobe Reader para leer documentos tipo PDF). Algunos sistemas operativos como Windows Vista y Windows XP inclusive se pueden configurar para que se actualicen sin notificación previa y llevan a cabo la instalación de el o los parches sin más intervención del usuario. Sin embargo existen muchos programas que no tienen estas funcionalidades, dejando al usuario la responsabilidad de estar al tanto de nuevas actualizaciones. Lo recomendable es ingresar al menos una vez al mes a sitios como www.cert.org, www.cert.org.mx o www.secunia.com, donde se listan las últimas actualizaciones de parches para varias aplicaciones (junto con la liga para descargar el parche y un análisis del impacto de la debilidad). Otra opción más sencilla es ingresar a sitios gratuitos como www.f-secure.com/healthcheck/ donde después de analizar el equipo, se informa de las actualizaciones que hacen falta. Es una tarea tediosa pero es necesaria si es que deseamos eliminar las inseguridades de nuestro equipo de cómputo y minimizar el riesgo de que un atacante aproveche una vulnerabilidad  que resulte en diversas   consecuencias indeseables.

Para el segundo problema que se refiere a disponer de un parche antes de que exista un ataque, los usuarios se enfrentan a la difícil situación de que se conozca públicamente una debilidad y que el fabricante no emita ningún parche de seguridad, dejando indefenso al usuario a la merced de posibles ataques. Al respecto,  la empresa eEye publica un listado de todos aquellos programas que tienen un problema de seguridad públicamente conocido y que no cuentan con una solución (http://research.eeye.com/html/alerts/zeroday/index.html). Ante esta realidad, seguir las llamadas "mejores prácticas" puede ser de mucha utilidad, como lo es tener un firewall personal, un antivirus actualizado y una actitud preventiva ante los ataques que nos tratan de engañar (phising).
La problemática del esquema de "parchado" anteriormente descrita se puede ilustrar de manera muy clara con un ejemplo que recientemente se publicó en diversos sitios especializados en Internet. Entre diciembre del año pasado y enero del presente empezaron a circular diversos correos electrónicos diciendo que nos habían enviado una tarjeta de felicitación virtual; una variante también llegó por correo ofreciendo la lectura de una noticia importante de un periódico de México. Ambos correos solicitaban al usuario hacer "click" en una liga proporcionada en el correo ya sea para ver la tarjeta o la noticia en cuestión. Una vez hecho esto, la próxima vez que deseáramos ingresar a la banca en línea en el sitio financiero www.banamex.com, seríamos dirigidos automáticamente a un sitio fraudulento. ¿Cómo es esto posible? Aún teniendo el sistema operativo y aplicaciones actualizadas, el ataque era exitoso.

La razón es que los defraudadores habían encontrado una vulnerabilidad en el módem inalámbrico de la marca "2Wire",  que en México ofrece el servicio Prodigy Infinitum a sus clientes. Al hacer "click" en la liga de los correos ya mencionados, se llevaba a cabo un cambio en la configuración del módem. Esta debilidad permite a una persona mal intencionada atacar a este dispositivo, lo cual significa que aunque el usuario escriba en su navegador correctamente un sitio como lo es  "www.banamex.com", se mostrará el contenido de un sitio falso que en apariencia es similar al original. Una vez que el usuario ingresaba al sitio falso, se intentaba descargar un virus para robar las contraseñas de acceso al sitio bancario. Otros ataques podrían haber solicitado simplemente las contraseñas de acceso en el sitio falso sin intentar la infección con un virus. Aunque el ataque se centró en Banamex, no se descartó que se aprovechara este tipo de vulnerabilidad para otros sitios.

La vulnerabilidad del módem inalámbrico era públicamente conocida e inclusive existían ataques que se aprovechaban de ella, sin embargo eran pocas las personas que conocían de este problema y el fabricante no tenía disponible un parche o actualización, dejando a miles de usuarios de este servicio de banda ancha indefensos. Afortunadamente el fabricante publicó los parches correspondientes y Prodigy Infinitum confirmó que se distribuirían durante el mes de febrero de manera automática para varios de los modelos de la marca en cuestión.

Este ejemplo del módem inalámbrico ilustra claramente la problemática de mantenerse al día en cuestiones de parches de seguridad no sólo del sistema operativo y aplicaciones, sino hasta del módem inalámbrico que se usa. Seguir ciertas precauciones de seguridad pueden ser de utilidad para evitar estos riesgos. Para este caso específico del módem puede no ser suficiente el hecho de contar con un antivirus o firewall personal, sino que se deberán seguir medidas adicionales como lo puede ser la verificación de la validez del certificado digital de los sitios bancarios que se visiten, comprobando que el certificado esté a nombre de Banamex y que no muestre ningún error. Esto último se logra al hacer doble "click" en el candado cerrado que se habilita en el navegador antes de enviar las contraseñas de acceso a la banca en línea.
Independientemente de este ataque al módem inalámbrico, es una buena práctica siempre efectuar esta verificación en sitios que involucren transacciones financieras.

Conclusión.
Abordamos la problemática a la que se enfrenta un usuario final para mantener sus programas actualizados con el fin de eliminar debilidades de seguridad. Para el caso de las organizaciones, esta actividad (en teoría) será llevada a cabo por el área de sistemas para estar al pendiente de las nuevas vulnerabilidades con el fin de atenderlas. La recomendación final es que en los equipos que mantenemos en casa llevemos a cabo una labor preventiva y mantengamos nuestros sistemas al día.

miércoles, 20 de febrero de 2008

Parches epidémicos.

Los gusanos y virus han estado en la "arena" tecnológica desde hace un par de décadas ya, por lo tanto de alguna forma ya nos hemos acostumbrado a este mal y muchos hemos aprendido a alejarnos de estos códigos maliciosos. La propagación e infección de miles de equipos no es ya una noticia nueva a menos que sea masiva o altamente intrusiva.

Sin embargo la propagación de código que les mencionaré sí es noticia nueva, ya que al parecer unos "investigadores" de Microsoft han ideado una genialidad: distribuir parches de aplicaciones y sistemas operativos Windows de la misma manera que los gusanos. Estos investigadores (y cito) "tienen  la esperanza de usar los principios epidémicos" para distribuir actualizaciones de manera más "eficiente".

Básicamente sería forzar a los perezosos usuarios a parchar sus sistema ya que no tienen la disciplina de hacerlo por ellos mismos. Y aquí está exactamente lo que a mi parecer está mal: el hecho de forzar sin preguntar a que haya cambios en mi sistema y que suceda sin mi conocimiento. Usar las técnicas virulentas para un buen fin no es la mejor idea. Un buen mecanismo de distribución de software tiene a grandes rasgos estas características:

* Las personas pueden decidir el mejor momento de la instalación de los parches e inclusive dicha instalación viene con diferentes opciones.
* Es sencillo detener una actualización que está en progreso o "deshacer" dicha actualización.
* Es sencillo identificar qué se instaló y dónde.

Un gusano de distribución de software no preguntaría cuándo nos conviene instalar el parche, no nos da ninguna opción y probablemente no podamos detener la actualización (porque no nos daremos cuenta de que está en progreso). Esto sin mencionar que la "ventaja" de un gusano malicioso es que su tamaño es considerablemente menor a uno que distribuya los pesados parches, especialmente los de Microsoft. Imaginen por un momento un gusano que nos hace el favor de bajar un Service Pack, de esos que pesan decenas de Megas. Los de Redmond no quieren que se bajen los parches de una central, sino que los parches se distribuyan entre computadoras, "infectando" una tras otra. Y concluyo con una prueba de lo dicho aquí; muchas empresas por lo general NO tienen una actualización automática de software. Primero se bajan los parches y se hacen pruebas de funcionalidad. Si todo sale bien, se empiezan a distribuir de manera controlada.
 
¿Por qué muchas empresas siguen este esquema? Sencillo: porque sabemos que así como los parches resuelven debilidades, también existe la probabilidad de que provoquen problemas de funcionalidad en los sistemas. Más vale distribuir con cautela, que simplemente dejar que cada equipo baje los parches sin control. Si esto hacen en las empresas, por qué los usuarios serían forzados a bajar los parches "sin previo aviso"? ¿Tal vez porque los usuarios finales no corporativos  manejamos datos irrelevantes? Si un parche le afecta a unos cuantos usuarios, a quién le importa? ¿Por qué preguntar si se puede aplicar un parche? Mejor aplicarlos sin notificar. ¿Por qué esforzarse en hacer software seguro si podemos hacer gusanos parchadores?
En mi opinión, esta es una medida desesperada ante la imposibilidad de poder hacer software seguro, que es finalmente el origen de todo el problema.

viernes, 1 de febrero de 2008

Se adueñaron de mi 2Wire.

Bueno, en realidad el afectado no fue mi módem inalámbrico, sino el de un vecino. Hace unas semanas platicaba con él y en nuestra conversación le comenté que había manera de comprometer su módem inalámbrico y que le recomendaba tomar las precauciones necesarias. Lo vi preocupado y me hizo una observación: "¿Por qué para venderte productos mandan y mandan correos, pero para este problema no avisan nada?" Tuve que coincidir con él y le dije que efectivamente yo no había recibido un mensaje oficial avisando de este problema.

En fin, unos días después nos volvimos a ver y me dijo que realmente no sabía qué pasos seguir para prevenir que le vaciaran las cuentas. Le comenté que lo primero que había que hacer era ver si su aparato estaba comprometido o no, y luego tomar medidas preventivas. Les comparto las medidas que recomendé y que yo mismo he llevado a cabo:

1.- Tablas de DNS.
Un cambio en las tablas de DNS (Domain Name System) hacen que cuando yo escriba en mi navegador "www.banamex.com", en realidad la petición se vaya a un sitio falso de apariencia similar al original. Hay que verificar que estas tablas de DNS estén vacías. Seguí los consejos del UNAM-CERT pero no pude acceder a la configuración de mi módem inalámbrico (ruteador), por lo que investigando encontré otra liga para acceder a la configuración: http://homeportal/mdc.
Una vez dentro de esta liga me fui a "Advanced"-> "DNS Resolve" y verifiqué que todo estuviera vacío.
Estos pasos podrían variar de un dispositivo a otro, lo importante es realizar la verificación; si es necesario acudir a la ayuda técnica de Prodigy (01800-123-2222).

2.- Habilitar una contraseña de acceso a la configuración en el módem inalámbrico (ruteador).
El punto uno se refiere a verificar que nuestras tablas de DNS estén limpias; sin embargo sería tedioso tener que estar haciendo esta verificación constantemente. Lo mejor que podemos hacer es habilitar una contraseña para ingresar a la configuración del dispositivo, de esta manera evitaremos que nos cambien las ya mencionadas tablas de DNS, impidiendo el ataque en primera instancia. Yo logré esto al poner en mi navegador la liga "http://homeportal/xslt", lo cual accede a la configuración del dispositivo, y luego fui a la parte de "System Password" para habilitar la contraseña del ruteador. Favor de no olvidarla. Habilitar la contraseña impide que este tipo de ataques sean exitosos y protegeremos nuestras tablas DNS (y el resto de la configuración).

3.- Certificados digitales.
Es importante que antes de enviar contraseñas vía Internet se verifique la validez del certificado digital del sitio y que en el URL aparezcan las letras "https". Aunque el ataque del 2Wire reportado se centra en Banamex, realmente una persona mal intencionada puede afectar a cualquier sitio, pudiendo por ejemplo crear un sitio de Bancomer o Amazon falso y "envenenar" al módem inalámbrico 2Wire. Si ya han efectuado el paso 1 y 2, tal vez este paso esté de más; sin embargo en esta época de ataques informáticos tal vez sea una buena práctica seguir siempre el consejo de verificación de certificados.

Puede haber otras recomendaciones (como mantener actualizado el antivirus), sin embargo pienso que estas tres son las principales para este ataque específico que deben seguir los usuarios. El ataque es real y hay gente que se esté viendo afectada, ya hay código malicioso relacionado con este ataque y al parecer sólo Trend lo detecta (tal vez debido a que es un ataque muy "mexicano"). No sé si las empresas involucradas deberían responsabilizarse, pero estoy seguro de que al menos sí deberían avisar a los clientes y prevenirlos. Si no lo hacen tal vez sea por algo: no quieren perder confiabilidad o reputación; no quieren responsabilizarse del dinero perdido por los clientes; no quieren que la gente deje de usar banca en línea, etc. En fin, el otro día escuché una publicidad que decía que "usted es lo más importante para nosotros"…será cierto?

Más información útil en:
http://blog.hispasec.com/laboratorio/255
http://cofradia.org/modules.php?name=News&file=article&sid=20482