Criptoanálisis: Las tablas «rainbow»
Uno de los métodos más conocidos (y menos efectivo) para recuperar una contraseña es la denominada fuerza bruta. Este método, realiza una comprobación una a una de todas las claves posibles, lo que por norma general (dependiendo de lo bien elegida que esté la contraseña) hace que el proceso tarde demasiado.
Es por esto que siempre se insiste en utilizar letras mayúsculas y minúsculas, cifras y letras, y una longitud de más de 11 carácteres, como mínimo. Por ejemplo, una contraseña con sólo letras minúsculas se tardaría aproximadamente 2.42 días en averiguarse.
Funciones hash
Antes de continuar debemos saber que una función hash no es más que un sistema para obtener una «secuencia» (una cadena de carácteres, un conjunto de números...) que representará de manera única una entidad (un archivo, un documento...).
Así pues, se suele utilizar algoritmos de hash como MD5 o SHA para comprobar la integridad de un fichero.
Por ejemplo, imaginemos una imagen ISO que, al descargarla desde Internet, podemos generar un hash SHA de dicho fichero.
Si la secuencia es exactamente igual a la secuencia que el autor colgó en su página en un fichero de texto, significa que la imagen se ha descargado de internet correctamente.
Por el contrario, si son distintas, significa que la imagen ISO descargada es diferente a la original (errores en la descarga, corrupción de datos, etc...).
Salt
Este tipo de algoritmos hash es frecuentemente utilizado en la generación de contraseñas, con un grave error cometido en muchas ocasiones: no añadir «sal» (salt) al hash.
En criptoanálisis se denomina «salt» a un fragmento aleatorio (carácteres, números...) que se le añade al hash obtenido, para conseguir que si dos usuarios generan una misma contraseña, su hash no sea idéntico (lo que podría suponer un problema de seguridad).
Tablas Rainbow
Las tablas rainbow son una estructura de datos (mapas o arrays asociativos, veáse en forma de tabla) que proveen información acerca de la recuperación de contraseñas en texto plano generadas con ciertas funciones hash conocidas.
En esta estrategia de recuperación se sacrifica el espacio en disco duro y memoria a cambio del coste de velocidad (tiempo de ejecución).
Así pues, existen varias tablas rainbow para cada algoritmos (generalmente gigantes, pueden ocupar hasta 40 gigas o más) previamente computadas, y que se utilizan de apoyo para realizar la fuerza bruta de una manera más eficiente y mucho más rápida, reduciendo el tiempo de ejecución considerablemente.
Prevención
Se comenta que una buena táctica para evitar este tipo de ataques es utilizar carácteres de espacio (ASCII 32) en las contraseñas, y evidentemente, utilizar sistemas que añadan «salt» a los hashes. Además, hay muchas otras recomendaciones para elegir tu contraseña.
Enlaces
Algunos enlaces interesantes sobre el tema:
- RainbowCrack: Proyecto de implementación de tablas rainbow para algoritmos como LM, MD5, SHA1 y otros. Contiene un parche para añadir soporte para los algoritmos NTLM, MD2, MD4 y RIPEMD160. Desarrollado por Philippe Oechslin.
- OphCrack: Implementación multiplataforma (Windows, Linux y Mac) para el uso de tablas rainbow. Incluye también un LiveCD (basado en Slax) con herramientas útiles.
- Rainbow Tables SHMoo: Más información y datos acerca de las tablas rainbow, incluyendo algunos torrents para descargar alguna de estas tablas.
- How rainbow tables work: ¿Cómo funcionan las tablas rainbow? Documentación en inglés, acerca de esta estrategia.
- Free Rainbow Tables: Más tablas rainbow para determinados algoritmos.
Mod Security: Más seguridad en tu web
Mod Security es un módulo para Apache que se encarga de proporcionarle un nivel de seguridad adicional a nuestro servidor web muy potente y personalizable.
Funciona como una barrera entre la red (y/o Internet) y nuestro servidor web, donde mediante un conjunto de reglas podemos establecer una serie de acciones (bloquear, informar en un registro, ignorar, etc...) para eventos de todo tipo.
Es especialmente potente, por tres razones:
- Posee un nivel de personalización muy amplio.
- Funciona en una capa previa al servidor web, bloqueando los accesos antes de llegar a procesarse en el servidor web.
- Permite el uso de expresiones regulares en su conjunto de reglas.
Preparación y compilación de mod_security
Antes de comenzar, tenemos que asegurarnos de estar utilizando Apache en su versión 2.x o superior, ya que mod_security2 funciona bajo estas versiones.
- Instalar libxml2: Si no está instalado, necesitaremos este paquete, ya que mod_security lo utiliza para el procesamiento de ficheros XML. En la versión 2.1 de mod_security es opcional, pero recomiendan instalar el paquete, ya que en el futuro será necesario de forma obligatoria.
- Descargar mod_security2: Nos descargamos los fuentes de mod_security2 y el conjunto de reglas por defecto. Verificar en la página de descarga la versión más nueva de la rama 2.1.x.
- Configurar Makefile: Descomprimimos el paquete mod_security y hacemos un cat Makefile | grep "top_dir " para comprobar si en esta ruta se encuentran los módulos y los scripts build. Si no es así, editamos el Makefile y cambiamos la ruta por la nuestra (/usr/lib/httpd, /usr/share/apache2, ...).
- Compilación: Escribiendo make dentro de apache2, comenzamos a compilar. Esperamos a que termine el proceso, fijandonos que no ocurra ningún error.
Instalación y configuración de modsecurity
Listo. Ya tenemos el ModSecurity eficientemente compilado para nuestra máquina. Sólo nos queda instalarlo.
- Instalación del módulo: Ahora toca detener el Apache para permitirnos hacer la instalación del módulo, usualmente basta con escribir /etc/init.d/apache stop. Entonces escribimos make install. Se habrá creado un módulo en la carpeta modules de la ruta top_dir del punto 3, llamado mod_security2.so.
- Configuración del apache: Ahora solo tenemos que cargar los módulos en nuestro servidor web. Para ello vamos al fichero de configuración (generalmente se encuentra en /etc/httpd o /etc/apache2 con el nombre httpd.conf o apache2.conf) y buscamos las lineas con las instrucciones LoadModule. Si hemos instalado el libxml2 añadimos la linea LoadFile /usr/lib/libxml2.so y posteriormente la linea LoadModule security2_module modules/mod_security2.so.
- Comprobar mod_unique_id: ModSecurity también necesita tener cargado el módulo mod_unique_id, que en muchos casos viene instalado pero no activo. Para ello también añadimos (si no está) la linea LoadModule unique_id_module modules/mod_unique_id.so antes de las anteriores.
- Conjunto de reglas: En la ruta donde se encuentra el fichero httpd.conf (o apache2.conf) hacemos un mkdir modsecurity y editamos de nuevo el fichero httpd.conf, para incluir al final la linea: Include modsecurity/*.conf. Sólo haría falta copiar los ficheros de reglas deseados (o crearlos) dentro de modsecurity.
Es bastante importante seguir las instrucciones anteriores para evitar mensajes de errores como "Invalid command 'SecRuleEngine', perhaps mis-spelled or defined by a module not included in the server configuration" o similares.
Arrancamos de nuevo el servidor Apache con un /etc/init.d/httpd start. Notar que en el paquete de conjunto de reglas de mod_security vienen varios: (configuración base, violaciones de protocolo, políticas HTTP, inyecciones SQL, inyecciones XSS, robots scrappers, etc...), incluir los que el administrador considere necesario, ya que hemos incluído todos los ficheros .conf que tengamos en la carpeta.
Reglas para ModSecurity
Las reglas de este programa son muy potentes y haría falta otro artículo para explicar como construirlas, pero un ejemplo muy básico sería el siguiente:
SecRule REQUEST_HEADERS:User-Agent "larbin_2.6.3" "log,drop"
La directiva SecRule crea una regla que examina las cabeceras, más concretamente la ID del navegador (el User Agent) para comprobar si casa con larbin_2.6.3 (¡Ojo! Esto es una expresión regular). Si es así, avisamos al módulo para que informe en el registro (log) y descarte el acceso (drop).
Por último, si estás interesado en crear tu propio conjunto de reglas, añado algunos enlaces de referencia, ya que si estabas manejando la posibilidad de basarte en los conjutos de reglas por defecto, aviso que las expresiones regulares que utilizan tienen un nivel un poco sofisticado:
Enlaces de interés:
- Referencia de Mod_Security.
- PDF explicativo sobre ModSecurity bastante didáctico.
- Introducción a mod_security en OnLAMP.
Virus «Porque no te callas»
¿Quién -a estas alturas- no ha oído hablar aún del famoso incidente del ¿Por qué no te callas? de Juan Carlos I, Rey de España, al presidente Chavez de Venezuela?
En el artículo ¿Por qué no te callas? Reclamo bancario de Bernardo Quintero (Hispasec) se menciona una curiosa y nueva forma de crear malware.
Aprovechando el tirón social que ha generado este suceso (y el evidente boom de búsquedas en internet) la parte oscura de la informática tampoco ha descansado y ha decidido aprovecharse.
El truco en este caso, se trata de un troyano camuflado en un -aparentemente- inofensivo mensaje enviado desde Youtube, que invita a ver el famoso video del ¿Por qué no te callas?.
Algunos de sus enlaces redireccionan a un fichero con nombre ultimovideo.exe, que es en realidad un troyano:
En principio, el troyano va orientado a los usuarios de méxico, ya que crea un pequeño formulario que se superpone sobre el formulario original del acceso a BancaNet Banamex (banco de México), registrando todos los accesos a las distintas cuentas bancarias de la víctima, y enviandolas por email posteriormente.
Como conclusiones podemos destacar que la reacción de los antivirus. Ningúno reconoce el virus, sin embargo, la mayoría (con sus funciones heurísticas para detectar virus desconocidos) antivirus como AntiVir, AVG, BitDefender, Panda o Ikarus los detectan como virus sospechoso.
Remarcar que, anecdóticamente, los que considero mejores antivirus NOD32 y Kaspersky no los detectan aún.
Como siempre, mucho cuidado con las posibles estafas y demás, y como se puede ver, el sentido común es en muchos casos, el mejor antivirus.
Y a los que vayan a decir que con linux están seguros, les hago una pregunta... ¿Por qué existen Antivirus para linux? ;)
IMG0024.zip, nuevo virus de MSN Messenger
Una vez más, se propaga por el MSN Messenger un virus que se está extendiendo bastante y es muy similar a anteriores:
- oye voy a poner esa foto de nosotros en mi myspace :D
- debes poner esa foto como foto principal en tu myspace o algo
- oye voy a agregar esa foto a mi blog ya
- voy a poner esa foto de nosotros en mi blog ya
- el lol mi hermana quisiera que le enviara este álbum de foto
- hola esas son las fotos
- hey i'm going to add this picture of us to my weblog
- jaja recuerda cuando tuviste el pelo asi
- lol remember when you used to have your hair like this
Si alguna de estas frases te suenan, es probablemente porque el contacto que te lo escribió está infectado con el virus Backdoor.Win32.SdBot, Trojan.Win32.Agent.axx o alguna de sus variantes.
Antes de continuar, he hablado de varios virus similares a este:
- Como quitar el virus Lechuck del MSN, de los más extendidos.
- Como eliminar el virus fotos_posse.zip o el virus mira la foto (son muy similares, leer los dos).
- Si te suena algo sobre el virus que menciona un galeón fantasma, mira aquí.
Sin embargo, si el que vienes buscando tiene relación a nombre de fichero como IMG0012.ZIP, Z058_jpg.zip, F0538_jpg.zip, p0017_jpg.zip, IMG0024.zip o parecidos, acompañados (en algunos casos, no siempre) de frases como las del recuadro anterior gris (enviadas a los contactos en periodos de 10~15 minutos), se trata de este virus.
Por lo general, se tratan de ficheros comprimidos que se envían por MSN después de decir una de las frases anteriores. Ocupan desde los 33Kb (una de las variantes, la más extendida) y otras en torno a los 400~500Kb.
Al abrir el fichero ZIP, nos encontramos con una «supuesta» foto (por ejemplo, IMG033-JPG-www.photobucket.com o www.p0017_jpg-msn.com), donde camuflan con una dirección de página web terminada en com (archivo ejecutable, como .exe) para conseguir que el virus infecte el ordenador.
Como siempre, la herramienta para eliminarlo es bien sencilla. Basta con pasar un antivirus actualizado a nuestro ordenador, y no tendremos ningún problema:
A día de hoy Kaspersky ya lo detecta. Si tienes problemas para abrir alguno de los antivirus-web anteriores, echa un vistazo a el sistema para desactivar el arranque de virus en windows.
ACTUALIZADO: Una excelente alternativa para eliminar estos virus es MSNCleaner, un programa del equipo de ForoSpyware para combatir este tipo de gusanos.









