jump to navigation

Atacando un Antivirus – Parte II Mayo 13, 2008

Posted by fids in Seguridad, Uncategorized.
Tags: , , ,
add a comment

Continuando con el post anterior, terminamos el artículo “Attacking Antivirus” escrito por Feng Xue (Technical Lead, Nevis Labs). Repasamos en esta ocasión la búsqueda de vulnerabilidades en software antivirus, y las técnicas que son capaces de explotar dichas fallas.

3. Buscando Vulnerabilidades en un Antivirus

Básicamente, hay 4 tipos de vulnerabilidades que se han observado en los software antivirus

  • Escalación local de privilegios
  • Relacionados con los ActiveX
  • Basados en el Motor Antivirus
  • Interfaz de Administración

Las metodologías para auditar los procesos mencionados en los antivirus difieren bastante uno de otro.

3.1 Auditar escalación local de privilegios

3.1.1 Problemas DACL
Auditar problemas DACL (lista de control de acceso discrecional) es una de las cosas más sencillas y a veces puede ser hecha manualmente sin la ayuda de herramienta alguna. La lista de control de acceso discrecional (DACL) es un objeto de núcleo determina qué usuarios tienen acceso al objeto.

Para verificar si un directorio de instalación de un antivirus es vulnerable a problemas DACL solo debemos verificar si en el Tab de Seguridad de dicho directorio, el Grupo “Todos” tiene asignado los permisos de “Control Total”. De ser así, tenemos una vulnerabilidad al descubierto.

Verificar las ACL de los servicios es diferente, puede ser realizado utilizando sc.exe de la siguiente manera (como usuario no privilegiado)

C:\sc config “servicio antivirus” binpath=D:\ataque\virus.exe

Si el error #5 no aparece, felicitaciones. Anotar que “servicio antivirus” es el nombre del servicio que el atacante quiere explotar y binpath es la ruta del archivo binario (que puede ser un virus, troyano, rootkit, etc).

Después de efectuar este comando, el atacante habrá cambiado el path del binario del servicio de Windows suplantado, que resultará ser el binario del atacante con privilegios elevados (usualmente con privilegios SYSTEM)

3.2 Manejador de Driver IOCTL

IOCTL (Abreviación de Input/Output Control o Control de Entrada/Salida)

Su problema es a causa del espacio de verificación de direcciones insuficientes lo que hace que auditar el driver IOCTL sea sencillo a través de técnicas Fuzzing. Muchos fuzzers para Win32 IOCTL estas disponibles entre ellos:

Kartoffel (http://kartoffel.reversemode.com/downloads.php)

Lo único que se necesita es hacer fuzzing a los drivers del antivirus instalado e investigar cuidadosamente cada BSOD (Blue Screen of Death -> Pantalla Azul de la Muerte)

3.2 Auditar problemas ActiveX

Esto podemos realizarlo sin problemas con técnicas Fuzzing o a través de una auditoria manual. Se llama fuzzing a las diferentes técnicas de testeo de software capaces de generar y enviar datos secuenciales o aleatorios a una o varias áreas o puntos de una aplicación, con el objeto de detectar defectos o vulnerabilidades existentes en el software auditado.

2 populares fuzzers son:

AxMan (http://www.metasploit.com/users/hdm/tools/axman)
ComRaider (http://labs.idefense.com/software/fuzzing.php#more_comraider)

3.3 Auditar el motor del software antivirus

El motor antivirus es el componente más complejo del software antivirus, por lo que auditarlo será muy difícil. Básicamente hay 3 maneras de auditarlo

  • Ingeniería Inversa
    Consiste en analizar el código ensamblador directamente y buscar potenciales vulnerabilidades. El objetivo al aplicar esta técnica se centra en los componentes responsables del parsing de todos los formatos de archivos. Esos componentes usualmente son implementados como plug-ins independientes. Ejemplos de ellos tenemos:

    Kaspersky: Arj.ppl base64.ppl cab.ppl lha.ppl rar.ppl, etc.
    Bitdefender: arc.xmd arj.xmd bzip2.xmd cab.xmd docfile.xmd, etc.

    Auditar un software a través de la ingeniería inversa es extremadamente tedioso y lento. Felizmente tenemos a Hex-rays (http://www.hex-rays.com) que hace de la descompilación un proceso mucho más sencillo

  • Fuzzing
    Fuzzing es una técnica asombrosa, y ha acelerado bastante la seguridad de software en los años anteriores.

    Desafortunadamente, no hay muchas herramientas para hacer fuzzing a los antivirus, entre las pocas tenemos a:

    xvfuzz ( http://dev.gentoo.org/~taviso/files/vxfuzz-0.01.tar.gz)

3.4 Auditar Interfaz de Administración

  • Administración Cliente/Servidor
    Muchos protocolos de administración Cliente/Servidor son propietarios, lo que significa que ningún RFC o documento está disponible. De esta manera, es muy difícil saber de que están hablando el Cliente y e Servidor solo capturando paquetes. El tráfico parecerá muy aleatorio o será encriptado de alguna manera.

    Fuzzing es una buena elección en esta situación y para ello estan las siguiente plataformas fuzzing:

    Spike (http://www.immunitysec.com/resources-freesoftware.shtml) y
    Sulley (http://code.google.com/p/sulley)

  • Interfaz Web
    Desde que muchos sistemas de administración vía web fueron desarrollados por vendedores antivirus, estos tal vez no han sido bien auditados y analizados.

    Para ello, hacer fuzzing es siempre útil. Existen muchos web fuzzers disponibles, ente ellos Webfuzz (http://www.fuzzing.org/wp-content/WebFuzz.zip)


CONCLUSION

En este artículo, hemos examinado las técnicas para encontrar vulnerabilidades en software antivirus así como las técnicas para explotarlas. Esto no quiere decir que los antivirus sean inservibles, sino que es una sugerencia para que los fabricantes de antivirus pongan especial atención en el hecho de que las vulnerabilidades en los sistemas antivirus son una amenaza real.

Fuente: Nevis Networks

Atacando un Antivirus – Parte I Abril 24, 2008

Posted by fids in Seguridad, Software.
Tags: , , ,
1 comment so far

Hace poco me tope con un articulo bastante interesante sobre los posibles ataques a un Antivirus, ese software que se nos hace indispensable tener instalado en nuestros equipos. Sabemos que la mayoria no esta “tranquilo” sin un antivitus, y los que tienen uno, muchas veces, solo estan tranquilos, siempre que este “actualizado”, pero, ¿Realmente es garantía usar nuestro querido antivirus actualizado?. En este post, revisaremos un poco el funcionamiento de un antivirus, y porque este tipo de software tambien es vulnerable a varios tipos de ataques.

A continuación, se describe el articulo técnico en ingles “Attacking Antivirus” escrito por Feng Xue (Technical Lead, Nevis Labs). Esta es por lo tanto, una traduccion libre y puede contener errores y cambios de acuerdo a mi criterio :p

Abstracto

Los antivirus son ahora un componente común de los sistemas de computadoras. Sin embargo, los aspectos de seguridad pertenecientes al software antivirus en si mismo, no tienen la suficiente atención por parte de los vendedores y usuarios finales. (Vaya novedad).

Este artículo, examina el porque un software antivirus es vulnerable a varios ataques y porque su seguridad es muy critica. Examina las herramientas y las técnicas, especialmente las técnicas Fuzzing, usado por atacantes para exponer vulnerabilidades en soluciones antivirus. Tambien revisa las maneras en que los atacantes explotan esas vulnerabilidades.

Este artículo por lo tanto, tiene como objetivo aumentar el nivel de conciencia sobre la seguridad de un producto de seguridad. (¿Si que suena interesante verdad ?)

1. Introducción

De acuerdo a la National Vulnerability Database, ente el 2004 y el 2007 se registraron 165 vulnerabilidades en software antivirus. 9 en el 2004, 44 en el 2005, 52 en el 2006 y 60 en el 2007.Por lo tanto, es claro que un software antivirus puede ser un objetivo asi como otros componentes o servicios en un sistema de computadora.

2. ¿Qué hace al antivirus un blanco perfecto?

2.1. Las personas tienen una completa fe en el

El uso de un software antivirus, se ha convertido casi en un acto de fe. Las personas parecen sentirse mas seguras no con un sistema operativo mas seguro o con la ultima actualización de seguridad, sino con algún software antivirus intalados en sus sistemas.

Un estudio(ya un poco desactualizado), muestra que el 81% de usuarios, tienen instalado un software antivirus en su computadora. Lo que claramente indica que el softwre antivirus es una necesidad primaria para muchos usuarios

Usuarios que usan Antivirus

Las preguntas son: ¿Es el antivirus suficiente?, ¿Se justifica una fe ciega en su uso?. ¿Qué pasa si un atacanta ‘ataca’ el software antivirus en si mismo en lugar del sistema operativo?

Considerando a un usuario promedio, quien obtiene o descarga algunos archivos (ejecutables, documentos, media, etc), su antivirus instalado en su computadora escaneará los archivos entrantes automaticamente (Quizá el usuario lo haga si sospecha de la presencia de virus). Y asi, con esto el antivirus se convertiría en la puerta de seguridad para los archivos entrantes.

Lo que El o Ella no saben, es que muchas soluciones antivirus desarrolladas en el pasado, fueron diseñadas sin una seguridad holistica (no sean ociosos y busquen en su diccionario) y sus desarrolladores asumieron que archivos no confiables estaban siendo escaneados satisfactoriamente por su software. Pero ¿Qué si esos archivos dañan la solución software en si misma?

La amenaza a la seguridad de un antivirus es por lo tanto asistida por 2 aspectos

  1. La aceptación a ciegas por parte del usuario del antivirus considerandola una bala de plata
  2. La sobreconfianza de los vendedores de antivirus en la inmunidad de su software contra todos los archivos

2.2 Los procesos antivirus son propensos a errores

El software antivirus es una de las mas complicadas aplicaciones pues tiene que tratar con cientos de tipos de archivos y formatos entre ellos:

  • Ejecutables (exe, dll, msi, com, pif, cpl, elf, ocx, sys, src, etc)
  • Documentos (doc, xls, ppt, pdf, rtf, chm, hlp, etc)
  • Archivos comprimidos (arj, arc, cab, tar, zip, rar, lzh, ace, iso, etc)
  • Empaquetadores ejectables (upx, fsg, mew, nspack, aspack, etc)
  • Archivos Media (jpg, gif, swf, mp3, rm, wmv, avi, wmf, etc)

Cada uno de estos formatos puede ser muy complejo. Por eso, es extremadamente difícil para un software antivirus procesar todos esos formatos apropiadamente.

Esto es ampliamente claro en otra investigación en vulnerabilidades antivirus, revelando que muchas vulnerabilidades existen en los 2 componentes siguientes:

Todo software antivirus, intentará descomprimir un ejecutable o datos comprimidos (debido a que puede estar infectado). Pero el problema con la descompresión de estos ejecutables y datos es que ambos procesos son altamente complicados. El antivirus para ello, debe realizar un calculos complejos, asignación de memoria y extraer datos de acuerdo a sus cálculos. Cualquier error en estos procesos abre las puertas a las vulnerabilidades.

Estos puntos pueden ser suficientemente irresistibles para un atacante de tal modo que apunte contra una solución antivirus, pero, ¿Cómo encuentran ellos agujeros en el blindaje de un antivirus?

Continuara…

Fuente: Nevis Network

DOS Exploit en Explorador de Windows Abril 23, 2008

Posted by fids in Seguridad.
Tags: , , , ,
add a comment

Exploit de Denegación de Servicio en archivo .DOC no especificado en MS Windows Explorer

Si quieren colgar un equipo con Windows XP SP1, SP2 o quieren fastidiar un Windows 2003 con errores de memoria, entonces, sigan los siguientes pasos

  1. Descagar este archivo
  2. Coloca el archivo en algun lugar del explorador de Windows (menos en el Escritorio)
  3. Selecciona el archivo descargado
  4. Intenta seleccionar otro archivo, y mira como tu sistema cae

Cabe resaltar, que no se encontro virus en dicho archivo, y abrirlo desde el wordpad se encuentra lo siguiente:

HYPERLINK “mailto:addicted2trance@excite.com”addicted2trance@excite.com

Parece ser un Hipervinculo mal formado (intencionalmente claro) que hace al Explorador tambalear intentado acceder a esa información

Website – http://iron-team.com

Fuente: Astalavista

Como obtener Passwords con un Chocolate Abril 21, 2008

Posted by fids in Seguridad.
Tags: , , ,
add a comment

Las personas se están volviendo sabias sobre sus contraseñas, pero no necesariamente sobre su información personal, de acuerdo a una encuesta conducida en Europa

La encuesta, conducida por Infosecurity Europe encontró que solo el 21% de cerca de 600 personas consultadas entregaron sus contraseñas cuando se les ofreció un incentivo — en este caso, una barra de chocolate — bajando de 64% desde el año pasado.

De la gente que declinó a dar sus contraseñas, 6 de 10 entregaron información personal — como su fecha de nacimiento, nombre de mascota o día de aniversario — usados para crear sus contraseñas

Los investigadores también pudieron convencer a la gente entregar parte de alguna información personal a cambio de un ficticio viaje a Paris. 7 de cada 10 personas dieron su nombre y su dirección de correo o su número de teléfono, mientras que 6 de cada 10 personas dieron su fecha de nacimiento de acuerdo al resumen de la encuesta.

“Esta investigación demuestra que es muy simple para un perpetrador obtener acceso a información que es normalmente rechazada de entregar en una charla alrededor de una maquina de café o al pretender ser parte del departamento de TI”. Claire Sellick, director del evento para Infosecurity Europe dice: “Este tipo de técnica de ingeniería social es muy usado por hackers que tienen en su mira una organización específica con data valiosa así como un departamento gubernamental o un banco

En el año 2004, un estudio similar encontró que el 61% de las personas entregaron sus contraseñas a un estadístico profesional.

Mientras los que usan ingeniería social discuten las múltiples maneras de de romper la seguridad de una corporación, una amenaza mas significativa viene con los programas troyanos que convencen a sus victimas para ejecutar software malicioso y robar sus contraseñas e información de cuentas. Otras amenazas usadas comprometieron sitios legítimos o redes de anuncios para entregar código malicioso a potenciales victimas.

En la última encuesta, el dramático incremento en el porcentaje de la gente que protege su contraseña de casuales preguntas parece indicar que los trabajadores se están volviendo más prudentes acerca de seguridad de computadoras. Sin embargo, las mujeres parecen ser más confiadas con información de contraseñas que los hombres, entregando sus códigos secretos en un 45% del tiempo, comparado con solo 10% del tiempo de los hombres. El resultado puede indicar que el entrenamiento en seguridad de computadoras en mujeres de oficina está detrás de sus contrapartes hombres.

Fuente: Security Focus

Seguridad Web, una visión general Junio 7, 2007

Posted by fids in Seguridad.
3 comments

Es conocido por todos, la importancia de la seguridad en los sistemas informáticos, cuanto más en aquellos que son usados por cientos, tal vez miles de usuarios como es el caso de las aplicaciones web. Hace una decada, la mayoría de aplicaciones era basicamente monousuario, y una de las pocas maneras de poder acceder a la información era a través de la red interna de la empresa, y claro, conociendo sobre los sistemas a hackear…

La seguridad en los años pasados, fue mas que todo, tener un buen antivirus, y en alguna que otra aplicación cliente servidor que negaba el acceso a su base de datos desde terminales internas.

La verdad es que muchas de esas aplicaciones desktop de años pasados, no tenian mucha seguridad. Solo basta con ingresar a una de sus aplicaciones, y manipular el login insertando una cadena SQL maliciosa, para que se pueda apreciar la real dimensión del problema. Pueden hacer la prueba con sus respectivas aplicaciones, un 90% de ellas sufriran de algun tipo de ataque de inyecciones SQL.

Lo que sucedió es que en el pasado, nuestras aplicaciones las usaban pocas personas, a lo mucho 30, en una intranet, y la mayoria de usuarios no conocia mucho sobre las IT. Ahora el panorama ha cambiado, pues una aplicación web, esta “al aire libre”. Solo podemos ver los miles de ataques diferentes en un servidor web durante años. Y si no tomamos las medidas necesarias, nuestra aplicación seguramente será atacada, tarde o temprano.

Durante el desarrollo de mi tesis, me di cuenta de muchas cuestiones de seguridad, que muchas veces crei innecesarias, era, el claro asomarse a un nuevo paradigma, que siempre debio tenerse en cuenta, pero que no fue asi.

Asi que ahora, en tus proyectos, debes considerar la seguridad, como “esencial”, sea cual fuera la aplicación. Existe para ello toneladas de información disponible en la web. Se han desarrollado muy buenos estándares de seguridad como la ISO/IEC 27001 e ISO/IEC 17799 que cubren un detallado y preciso número de aspectos de seguridad a tocar.

En mi experiencia, he aprendido que al desarrollar una aplicación web, se deben tener las siguientes consideraciones, espero que te sirvan aunque algunas las consideres, un tanto… paranoicas..

  1. Nunca estarás seguro, el término seguridad total es utópico, solo podemos hablar de un sistema fiable
  2. La seguridad empieza por un planeamiento, una política de seguridad que se debe tomar te guste o no
  3. La implementación de la seguridad empieza a nivel físico, considerala, tu no sabes quien podrá tocar tu equipo
  4. Estarás + seguro? mientras mas claro tengas los roles de tus usuarios y establezcas directivas de seguridad para cada uno de ellos
  5. Piensa que el nivel superior no te protege, y sigue la sgte escalera: [Gestor de BD] – Aplicación – Lenguaje – Servidor Web – Sistema Operativo – Hardware – [Personal] – [Institución]
  6. La seguridad muchas veces esta peleada con el rendimiento (mas vale una app lenta y segura que una rapida y agujereada)
  7. Seguridad no es solo restringir, es disponibilidad, confidencialidad e integridad.
  8. Confunde pero no te entreveres tu mismo en tus configuraciones
  9. Utliliza herremientas de testeo de seguridad sin piedad (considera como herramientas de testeo a tus amigos)
  10. Cuando termines el paso 9, regresa al 1ro, si no lo haces tarde o temprano caeras

Se que hay muchas más, pero son un buen comienzo para desarrollar proyectos fiables en buena medida. Se que es tedioso, a veces da pereza, pero es lo mejor para nuestras aplicaciones. Y recuerda, ser paranoico en el mundo informático y más en el mundo de la seguridad no es un defecto, es una bendicion…