lunes, 30 de marzo de 2009

Conficker: ¿llegó para quedarse?

Comenzaré explicando por qué hoy en día seguimos vulnerables a infecciones masivas con malware como éste, haré un poco de historia analizando cómo fue mutando Conficker en sus sucesivas generaciones e intentaré plantear mecanismos de defensa, de limpieza, y preventivos para tratar este malware.


Un poco de historia

En Octubre de 2008 se da a conocer una vulnerabilidad en el servicio de servidor de los sistemas operativos Microsoft Windows (2000, XP y 2003).
Microsoft libera un parche (958644) el 23 de Octubre con su boletín de seguridad MS08-067 fuera de su ciclo de actualizaciones mensuales. El mismo estaba calificado con riesgo crítico y decía al respecto:
“Esta actualización de seguridad resuelve una vulnerabilidad reportada de manera privada en el servicio de servidor. La vulnerabilidad podría permitir la ejecución remota de código si un sistema afectado recibe una solicitud RPC. En los sistemas Microsoft Windows 2000, Windows XP y Windows Server 2003, un atacante podría aprovechar esta vulnerabilidad sin autenticación para ejecutar código arbitrario. Es posible que esta vulnerabilidad se pueda usar en el diseño de un gusano. Si se siguen los procedimientos recomendados relativos al uso de firewalls y se implementan las configuraciones de servidores de seguridad predeterminadas estándar, puede contribuirse a proteger recursos de red de los ataques que se originen fuera del ámbito de la empresa.”
http://www.microsoft.com/latam/technet/seguridad/boletines/2008/ms08-067.mspx
Una vez dada a conocer la vulnerabilidad crítica que permite ejecutar remotamente código en nuestro equipo, los atacantes se han aprovechado de dos problemas que juntos hacen uno mayor: por un lado el sistema operativo más usado del mundo, tanto a nivel hogareño como corporativo, con una falla crítica. Por el otro, miles de administradores no acostumbrados a actualizar sus equipos.

Desde este momento se han dado a conocer tres generaciones del Conficker o Downadup (según la compañía de antivirus):
  • Win32/Conficker (CA)
  • Mal/Conficker (Sophos)
  • W32.Downadup.B (Symantec)
  • W32/Conficker.worm (McAfee)
  • Trojan:Win32/Conficker!corrupt (Microsoft)
  • W32.Downadup (Symantec)
  • WORM_DOWNAD (Trend Micro)

Se conocen entonces hasta el momento 3 "generaciones" de Conficker que varían en sus métodos de infección/propagación y en las acciones que ejecutan en equipos afectados. Cada una de estas generaciones tiene a su vez una "familia" con varias variantes.

La primera generación llegaba como un link por correo electrónico que el usuario desprevenido visitaba y así se ejecutaba el código que infectaba al equipo. Una vez infectado, el equipo comenzaba a buscar otras sistemas vulnerables en la misma red, para esto hacía uso del file sharing de Windows, por lo que se generaba una gran cantidad de tráfico en el puerto 445. En las sucesivas variantes de esta primera generación, el malware fue incorporando nuevas técnicas de ataque: deshabilitación de servicios de seguridad del sistema operativo y de antivirus, bloqueo de accesos a páginas de compañías de seguridad antivirus y de Windows Update.

El 12 de Febrero Microsoft publica desde su Microsoft Security Response Center (MSRC) un listado de los dominios usados por el Conficker (http://blogs.technet.com/msrc/archive/2009/02/12/conficker-domain-information.aspx) así como también se anuncia una coalición con los principales líderes de la industria para combatir contra la amenaza (http://www.microsoft.com/Presspass/press/2009/feb09/02-12ConfickerPR.mspx).
Varias compañías de seguridad se unen entonces para bloquear los dominios desde los que se descargaban las diferentes versiones del gusano. Paralelamente nace la segunda generación del Conficker que usa equipos infectados para copiar dos archivos en dispositivos removibles (una PC hogareña desprotegida e infectada con un dispositivo removible que luego se lleva a la computadora del trabajo) un autorun.inf y un archivo ejecutable (ambos archivos ocultos para impedir ser borrados fácilmente). Al conectar el dispositivo removible en una PC se ejecuta el autorun.inf que invoca al ejecutable y así se infecta el equipo.
Es probable que muchos se pregunten por qué se pueden infectar los equipos de la compañía si los antivirus ya están actualizados. Para responder esto es necesario que consideremos el funcionamiento del Conficker en un equipo infectado. Al infectar un equipo desprotegido el Conficker puede bajar automáticamente nuevas variante de sí mismo, variantes que se actualizan en los dispositivos removibles, lo que permitiría entonces infectar redes corporativas con estas nuevas variantes antes que los antivirus las detecten (no olvidemos que los antivirus son reactivos, por razones obvias no pueden ser 100% proactivos).

El 12 de febrero Microsoft lanza un comunicado ofreciendo una recompensa de U$S 250.000 para quien ayudara a encontrar a los creadores del Conficker:
(http://www.microsoft.com/presspass/press/2009/feb09/02-12ConfickerPR.mspx)

Luego, a principios de Marzo de 2009 Symantec anuncia la detección de una tercera generación del malware. Esta nueva variante difería de las anteriores en que ya no estaba diseñado para auto-replicarse sino que ahora se comporta más como un troyano que como un gusano. Vincent Weafer, vicepresidente de Symantec Security Response, explicaba por entonces “Debe pensarse en este malware como si se tratara de un módulo de actualización que hace al software original más agresivo, más fuerte y capaz de defenderse a sí mismo”. Esta nueva variante ya no solo intenta deshabilitar los sistemas de protección de una PC sino que también implementa métodos de autoprotección para inmunizarse frente a los sistemas de seguridad.

Un síntoma que aparece en escena con la segunda generación del Conficker es el bloqueo de cuentas de usuarios en el dominio. Esto se debe a que el gusano se copia en el ADMIN$\System32 del equipo afectado y genera una tarea que se ejecuta a diario. Primero intenta usar las credenciales del usuario logueado para propagarse por la red copiándose en recursos compartidos; si las credenciales del usuario fallan, entonces obtiene una lista de usuarios e intenta propagarse usando esos nombres de usuarios con un diccionario de contraseñas débiles (como por ejemplo: 1234, password, etc). En caso de funcionar una combinación de usuario y contraseña se copiaba en la carpeta ADMIN$ del sistema remoto.

Resumiendo, la primera generación hacía uso de la vulnerabilidad MS08-067. Las sucesivas generaciones no hacen uso directo de la citada vulnerabilidad sino que usan otros métodos de propagación por lo que si bien es necesaria la aplicación del parche de seguridad no es la única medida necesaria. También es importante aclarar que no afecta solo a entornos corporativos con un dominio, infectando tanto redes con Active Directory como equipos “stand-alone”.


¿Qué pasará el próximo 1º de Abril?

Durante las últimas semanas algunas compañías de seguridad han anunciado que el primero de Abril próximo se activará una nueva variante del virus. ¿Por qué esa fecha? Porque el primero de Abril es día de los inocentes (April's Fool Day) en varios países por lo que se estima Conficker aprovechará esta fecha para el despliegue masivo de una nueva versión, o quizás generación de sí mismo.
Un equipo infectado todos los días se conecta a un servidor de control en internet (el que le indica si descargar una nueva versión o qué otra cosa hacer). La cantidad de dominios que utiliza Conficker como intermediarios entre el malware y el ordenador infectado han aumentado de 50 mil a 250 mil, lo que hace cada vez más difícil el control y bloqueo de los mismos.
En el Blog de technet se ha publicado recientemente una nota sobre esta variante del Conficker, les recomiendo su lectura:
http://blogs.technet.com/seguridad/archive/2009/03/26/conficker-d-y-la-activaci-n-el-1ro-de-abril.aspx
Como allí se explica es fundamental contar con el parche MS08-067 para estar prevenidos al ataque de esta nueva variante del Conficker.


¿Cómo protegerse?


Una vez planteados los vectores de ataque usados por las diferentes variantes del Conficker los pasos preventivos a seguir son:
  1. Aplicar el parche MS08-067 a todos los equipos con Windows 2000, XP y 2003 (como mínimo). Es recomendable aplicar todos los parches críticos a los sistemas operativos.
  2. Deshabilitar la función de auto ejecución siguiendo los pasos indicados en el artículo 967715 de la base de conocimiento de Microsoft (http://support.microsoft.com/kb/967715). Notar que puede ser necesario el despliegue de algunos parches específicos para que la des-habilitación de la auto-ejecución funcione correctamente.
  3. Establecer una política de contraseñas seguras en la empresa y usar contraseñas seguras en sus equipos personales.
  4. Limitar los permisos sobre los recursos compartidos
  5. Deshabilitar las cuentas administrativas por defecto
  6. Renombrar los administradores
  7. Quitar permisos administrativos a aquellos usuarios que los dispongan sin ser absolutamente necesario

¿Cómo limpiar equipos afectados?

La experiencia lidiando con el Conficker me permitió definir un plan de acción a seguir para limpiar y proteger equipos afectados.

Los pasos a seguir con:
  1. Actualizar el antivirus con la última versión de firmas disponibles.
  2. Ejecutar un análisis bajo demanda completo del equipo afectado.
  3. Una vez que nos aseguramos que el equipo está limpio podemos aplicar el parche MS08-067 (no antes ya que el gusano nos puede quitar permisos sobre el equipo o corromper la instalación del parche).
  4. Reiniciar (es fundamental reiniciar los equipos luego de aplicar el parche para que el mismo impacte completamente sobre la protección de la vulnerabilidad).
  5. Una vez reiniciado el equipo es recomendable ejecutar un nuevo escaneo bajo demanda completo. En caso de detectarse la variante residente en memoria del Conficker (Conficker!mem) puede resultar que el antivirus no logre limpiar la misma, en este caso los archivos asociados son marcados por el antivirus para ser eliminados en el próximo reinicio, será necesario volver al paso 4 y continuar el procedimiento.

Si su equipo tiene el parche MS08-067 y continúa teniendo detecciones esto puede deberse a:
a) El parche se instaló incorrectamente, por lo tanto será necesario remover el mismo, reiniciar y seguir el procedimiento detallado anteriormente (para limpiar el malware antes de aplicar el parche y evitar que la instalación se corrompa)
b) La variante del virus existente en su red no hace uso de la vulnerabilidad MS08-067 sino de los archivos de auto-ejecución o recursos compartidos inseguros combinados con contraseñas débiles.
c) Algunas variantes del virus crean una tarea programada (AT) que se ejecuta periódicamente para comunicarse con un servidor en internet que le ordena descargar nuevamente el Conficker.


Personalmente no recomiendo el uso de herramientas orientadas a la eliminación de este tipo de gusanos ya que considerando la cantidad de variantes y la velocidad a la que mutan, no podemos asegurarnos que una herramienta creada para detectar las variantes existentes hoy, permita detectar todas las que existan mañana. Por eso es recomendable mantener los antivirus actualizados a diario. Si a usted le interesa disponer de una herramienta de este tipo les sugiero ver la última versión disponible del McAfee Stinger (versión 10.0.1.534) que permite detectar y limpiar todas las variantes conocidas del Conficker al día 26 de Marzo de 2009.
Se puede descargar desde: http://vil.nai.com/vil/averttools.aspx


¿Qué nos enseña el Conficker?

Considerando que el Conficker se aprovechó de la falta de parches de los sistemas operativos lo primero que tenemos que pensar es porqué no aplicamos parches.
Mi experiencia me permite asegurar que los administradores son reacios a aplicar parches debido a que “los equipos están testeados con los parches que tienen y si instalamos un parche quizás una aplicación deja de funcionar” a lo que no puedo dejar de preguntarme: ¿Y ahora? El servidor no tenía parches entonces un problema mucho mayor me lo dejó inoperativo. De la misma manera se acostumbra no instalar el antivirus en servidores críticos “porque son críticos y el antivirus consume muchos recursos”. Pero, sin antivirus un servidor crítico es 100% vulnerable a virus y si se infecta ¿no es más crítico tener un servidor crítico con virus por no tener antivirus que instalar el antivirus y trabajar en la mejor configuración para el mismo?
Creo que lo que hoy debemos plantearnos seriamente todos en una estrategia de seguridad que incluya despliegue de parches y antivirus (como mínimo) a todos nuestros equipos. Si existiera una aplicación que no se conoce como puede reaccionar ante la aplicación de un parche o la instalación de un antivirus, pueden realizarse laboratorios con equipos virtuales antes de implementar un cambio en producción. Por eso nunca debemos dejar de aplicar parches de seguridad críticos o antivirus en servidores críticos, porque, definitivamente es más crítico no contar con el mismo.

Autor: Guillermo De Carli
Blog: http://seginfo-personal.blogspot.com/

viernes, 27 de marzo de 2009

Páginas web en cache

Tal vez hayan escuchado alguna vez que lo que se publica en internet nunca deja de estar disponible. Es decir, una vez que se publicó no hay vuelta atras. Esto se debe a que existen servidores que guardan una copia de las paginas en sus discos y la mayoria de ellos la liberan esa información para quien la solicita. Un claro ejemplo de esto es cuando en google vemos la opción de página en Cache, cuando seleccionamos esta opción accedemos a la copia que tiene google en vez de a la versión publicada. Pero existen otros buscadores que presentan mayor cantidad de opciones y se vuelven mas interesantes. Uno de ellos es internet archive el cual muestra todas las versiones de una página ordenada por fecha.

En lo relativo a la protección de la información se demuestra que es menester evaluar seriamente el contenido de una página antes de publicarla. No deben existir páginas de prueba o semi configuradas. La imagen de su negocio puede verse afectada y todo los errores serán accesibles a pesar que se hayan quitado los contenidos de la web.

En relación a data mining, es decir la recolección de información, se convierte esto en una herramienta fundamental