26 noviembre, 2007

Nueva certificación sobre seguridad para programadores

Mantener una red libre de intrusos es todo un reto, esto se debe en gran parte a la cantidad de vulnerabilidades en los programas instalados. La mayoría de estas vulnerabilidades tienen que ver con código mal diseñado. Es por esta razón que el SANS, CERT, agencias del gobierno de USA y las empresas de USA, Japón, India y Alemania han creado la certificación GIAC Secure Software Programmer.

El 5 de diciembre empiezan a aplicar los primeros exámenes en Londres y después en USA. No hay todavía nada programado para Latino América. Originalmente estos exámenes sólo van a estar disponibles para Java y C, más adelante piensan incluir C++, .Net, Pear y PHP.

Han desarrollado 3 versiones del examen. La primera es para certificarse, la cuál va a ser administrada 2 veces al mes y los resultados van a estar disponibles vía web con una clave. Hay una segunda versión para empresas que una vez registradas con SANS pueden utilizar para probar a sus programadores, a los candidatos y consultores. Esta versión no sirve para certificarse, sólo para probar el nivel de experiencia. Una tercera versión, la de acceso abierto, dirigido a estudiantes, pequeñas empresas y similares. Las preguntas de este último no se usarán en ninguna otra versión para que no tengan ventaja sobre los que hagan los exámenes de prueba. El banco actual de preguntas es de cerca de 1,200.

Estas son excelentes noticas para la mayoría de los que programamos, ya que en las universidades o en los cursos o libros comunes no enseñan a crear código seguro. Aquí en México el problema es mayor pues es casi imposible encontrar libros sobre como programar código seguro, y siempre he tenido que recurrir a Amazon para conseguirlos, mientras que conocidos han querido tomar cursos pero no han encontrado ninguno. Con este nuevo examen se van a facilitar las cosas.

Por un lado gracias al material que ya han puesto en línea para estos exámenes, podemos empezar a conocer los diferentes tipos de vulnerabilidades, como el handbook de Java y el de C, las pruebas de práctica de C y de Java, y el sitio de CERT para código seguro que tiene varios recursos para C++. En un futuro veremos libros y cursos creados por diferentes empresas para entrenarse para la certificación lo cual facilitará más el acceso a este material.

He notado que muchas empresas no le dan importancia al hecho de que sus programadores tienen que aprender a crear código más seguro y rara vez incluyen esto en sus lista de requerimientos a la hora de reclutar. No sólo eso, sino que, varios programadores en nuestro país enfrentados al hecho de que no hay mucho material fácil de digerir, prefieren darle la espalda al tema y dejárselo a los “expertos”. Esperemos que esta nueva certificación empiece a cambiar las cosas.

Cómo mínimo, si programan hay 3 cosas que deben de evitar siempre. Aceptar datos ingresados por parte del usuario sin revisarlos y limpiarlos, por ejemplo unas “” en SQL pueden crear graves problemas. Esta vulnerabilidad es la base de XSS, inyecciones de SQL, ejecución de remota de comandos e inclusión remota de archivos. La segunda es dejar que se ingresen datos al buffer mayores al tamaño del mismo. Cerca de la mitad de los ataques más importantes el año pasado se basaron en esta vulnerabilidad para crear un “buffer overflow”. Finalmente, otra cosas que deben cuidar es sus variables de números enteros (integers). Al hacer conversiones de tipo (type) o al no revisar los rangos de la variable se puede crear una vulnerabilidad de “integer overflow” las cuales han plagado a IE, Java RE, Quicktime y otros.

Si quieren saber más sobre estos exámenes y revisar los recursos disponibles visiten el sitio de SANS-SSI.

21 noviembre, 2007

Usando Google para encontrar los passwords

Al parecer un blog del viernes Steven J. Murdoch del grupo del grupo de seguridad de la Universidad de Cambridge ha estado creando preocupación entre los desarrolladores de sitios de internet.

Básicamente, comenta que un hacker abrió una cuenta en uno de los sitios que Steven administra y logró obtener acceso administrativo. Siendo investigador, una de las cosas que le vino a la mente era buscar el password que el hacker había usado. Para esto uso algunas herramientas que tenia a la mano y desarrollo un programa en python para encontrar el password del hacker en base al md5 (hash) que tenía en la base de datos. Ningúno de estos funcionó, así que recurrio a Google y para su sorpresa al buscar el hash, google regresó varias páginas con el nombre Anthony.

Para aquellos que estén pensando que Google tiene algún algoritmo para descifrar el hash de md5, dejénme decirles que esto no es así para nuestra suerte. Lo que sucede es que muchas páginas usan los hash de los nombres de usuarios o similares en el url para ese usuario, así que al buscar Google regresa esa página por el URL y no es por que sabe que el nombre Anthony es el descifrado del hash de 20f1aeb7819d7858684c898d1e98c1bb. Así que no esperen encontrar muchas inversiones de hashes usando Google.

Hay dos buenos sitios web que pueden usar en lugar de Google para estos propósitos. Uno es md5(); que tiene cerca de 50 millones de hashes tanto en md5 como en sha1 en su base de datos. Otro es passcracking que a diferencia de md5(); lo que hace es utilizar rainbow tables clásicas e híbridas junto con diccionarios para descifrar el hash.

La lección de todo esto no es tanto lo que se puede hacer con Google, sino que hay que hacer un salt los passwords antes de cifrarlos o cifrarlos, luego hacer el salt y volver a cifrar para que no pueden encontrar los passwords de esta manera.

13 noviembre, 2007

Hacker y AntiHacker al mismo tiempo?

El ex encargado de seguridad de redes de una compañía telefónica de Los Angeles admitió haber adminsitrado una botnet de 250,000 máquinas. Conocido como "acid" o "acidstorm" en el mundo subterraneo del IRC, este encargado de seguridad de sistemas era el administrador de dos de los canales mas activos del IRC sobre botnets y junto con "pr1me" y "dynamic" tenían un botnet el cual utilizaban para robar cuentas de paypal y así comprar más web hosts para distribuir su troyano.

Al parecer el era parte de un grupo conocido como Defonic que entre otras cosas son famosos por infiltrarse a la cuenta del celular de Paris Hilton y robarse datos de mas de 310,00 personas de la base de datos de LexisNexis, incluyendo varias celebridades de Hollywood.

Hoy en día es difícil encontrar un buen asesor de seguridad de sistemas y menos con la experiencia de correr su propio botnet. ¿alguién está interesado en contratar un experto? ¿no? eso pense!

31 octubre, 2007

La Tormenta de la Década

Si algo nos mantiene despiertos a todos los que nos dedicamos a seguridad de redes hoy en el día es el famoso “Storm Worm” (gusano tormenta). Mucho se ha hablado de ello en todo el año y varias revistas y expertos han hablado sobre el tema, algunos exagerando al respecto.

El Storm Worm salió a la luz en enero de este año infectando máquina a través de emails que tenían el título de “230 muertos mientras las tormentas baten a Europa”, durante todo el año han seguido infectando máquinas con diferentes emails todos con ciertos títulos que incitan a que la gente abra el email como por ejemplo:

Genocidio de Musulmanes Británicos

Saddam Hussein Vivo!

Fidel Castro muerto!

Musulmán radical se toma la sangre de sus enemigos

Misiles Rusos tiran un satélite Chino

Tal ha sido el grado de crecimiento de la red que ya le gano su propia página en snoops, un sitio de internet que se especializa en diferentes mitos y leyendas urbanas clasificándolos de verdaderos o falsos, en el caso del Storm está clasificado como verdadero.

Lo que ha aterrorizado al mundo sobre este gusano son básicamente dos cosas: castiga a los que la investigan y el tamaño del botnet.

Varios investigadores que han tratado de encontrar los servidores por métodos tradicionales han sido detectados por el botnet, el cual lanza un ataque contra ellos, dejándolos sin internet a veces hasta por dos días enteros. Si visitas las páginas que contienen el malware o los DNS del botnet varias veces en poco tiempo, automáticamente lanza el ataque. Los investigadores que han podido infiltrase al botnet no están compartiendo sus métodos y a veces ni lo que descubren por miedo a ser atacados por este.

El tamaño de la red se ha exagerado mucho, algunos diciendo que tiene hasta 50 millones de máquinas infectadas. Los números más reales de aquellos que se han metido a la red la ponen en su mejor momento entre 6 y 15 millones de máquinas. Sin embargo de acuerdo con Brandon Enright de UC San Diego, el botnet ha ido perdiendo fuerza desde Julio de este año.

Según sus estimaciones en los 9 meses que lleva ha infectado aproximadamente a 15 millones de máquinas pero la mayoría ya han sido desinfectadas. Esto se debe a que los antivirus se han mejorado su detección de las variaciones del gusano y a que Microsoft lo incluyó en su herramienta de MSR que se baja mes con mes de manera automática en todas la máquinas con Windows. Sus datos más recientes indican que al día de hoy existen cerca de 160,000 máquinas infectadas y que sólo unas 20,000 están disponibles en cualquier momento.

Lo más interesante de este gusano y del botnet que crearon es la innovación en técnicas y la mezcla de varios métodos de infección y anti-detección. Por ejemplo, inicialmente se propagaba a través de emails, luego empezó a usar los programas de mensajería instantánea y finalmente utilizaron blogs y foros. La estructura de la red se asemeja a una colonia de hormigas donde hay una clara separación de trabajos. Sólo unas cuantas máquinas diseminan el virus, una fracción mucho menor son las de C2 (control y comando) y el resto están en espera de recibir órdenes.

El gusano tampoco daña a sus huéspedes de manara notable, lo cual lo hace difícil de ser detectado porque los administradores no notan problemas con los sistemas. Los DNS se cambian constantemente utilizando la famosa técnica de fast flux. El troyano que avientan cambia constantemente para hacer más difícil su detección. Y probablemente la adicción más relevante actualmente es el nuevo parche que instala en los sistemas que básicamente les hace una lobotomía a los antivirus, ya que el antivirus y cualquier otro programa de monitoreo corre como si todo estuviera bien pero no hace nada, escondiéndose así de los sistemas de monitorio de redes.

La finalidad de esta red es debatible todavía, al parecer no sólo son hackers buscando fama pero tienen fines monetarios. Hay por lo menos dos propuestas de cómo piensan conseguir dinero, la primera y más peligrosa es la de seccionar el botnet y vender pedazos al mercado negro. La segunda es utilizando la técnica de “pump and dump” que alza temporalmente el precio de las acciones de bajo precio.

En especial el hecho de que ahora baje un parche que deja inútiles a los antivirus pero que parecer funcionar bien, junto con la idea de seccionar y vender la red, es motivo suficiente para empezar a tomar mediadas más serias en nuestras redes para asegurarnos de que se propague.

Entre las cosas que recomiendo están:

1) Mandar un email a todos nuestros usuarios o publicar en el corche el que no abran ningún mensaje de email con los encabezados o archivos usados por le storm worm.

2) Bloquear la rede P2P de eDonkey en el firewall tanto el del antivirus de cada máquina como en el firewall físico de la empresa. Actualmente al parecer están utilizando una nueva llave de cifrado lo cual hace que se pueda bloquear sólo el tráfico del gusano sin bloquear toda la red P2P.

3) Asegurarse que el email esta actualizado en todas las máquinas y funcionando correctamente ya sea conectándose de manera remota a la máquina o físicamente enfrente de ella y no sólo revisar las alarmas del sistema de monitoreo instalado.

4) Si es posible hay que deshabilitar Java, JavaScript y ActiveX por default en el explorador y enseñarle a los usuarios a que sólo lo activen en sitios que saben que son seguros.

5) Instalen y bajen los parches relacionados con el troyano y rootkit que utiliza el gusano.

6) Crucen los dedos. ;)

30 octubre, 2007

Hay que buscar a los proveedores de seguridad indicados

Bruce Schneier, el “guru de la seguridad” y CTO de BT Counterpane, dijo en la conferencia de RSA de Europa esta semana que “El simple hecho de que exista esta conferencia es un problema. Ustedes no deberían de tener que venir a un show como este nunca”.

En su presentación nos recuerda que no debemos de confiar en los que los vendedores de productos de seguridad nos dicen sobre sus productos, esto se debe en parte a cuestiones políticas, legales o de mercadotecnia. Aunque esto tal vez no les parezca una novedad, la realidad es que la mayoría de la gente al comprar un producto de seguridad simplemente compara lo que cada vendedor dice sobre su producto, sin ir más allá.

El gran problema para los compradores es que no tienen los suficientes datos para determinar la seguridad de un producto. “Si los eventos hacen gran daño y son eventuales es difícil obtener datos. No voy a saber (la validez de un producto) porque no tengo los datos necesarios”. Y como los vendedores saben mucho más que los compradores se crea un mercado asimétrico.

Así que por ejemplo dos productos pueden tener las mismas funciones, los mismos algoritmos y las mismas palabras clave de mercadotecnia, sin embargo uno está bien hecho y el otro no y la gente acaba comprando el más barato porque parecen ser iguales. También como nos recuerda Schneier “Muchas veces tienes un buen productos pero no funciona bien, ya sea porque está mal configurado, mal instalado, no está actualizado y entonces tiendes a tener un falso sentido de seguridad”.

Los gastos en seguridad informática hacienden a los billones de dólares, año con año pagamos por productos o servicios que en teoría deben de hacer nuestros sistemas más seguros. Pero de acuerdo con Schneier todo este dinero se está gastando en arreglar problemas que no deberían existir en un principio. En un artículo reciente en la OutlookBusiness, Schneier propone que los vendedores agreguen una clausula de responsabilidad de tal manera que los CEOs de las compañías destinen más dinero a crear productor más seguros.

El problema que trata de resaltar es que día con día los vendedores agregan más funciones a sus productos sin preocuparse por la seguridad de los mismos. Y entre más funciones tiene más probabilidades de encontrar agujeros de seguridad. Así que, si las empresas son responsables por la seguridad de sus productos, pasarían más tiempo revisando y corrigiendo los problemas en sus productos que sacando nuevas funciones que lo hacen más inseguro.

Sobre esta misma idea habló Lord Alec Broers, quien es el director del comité de ciencia y tecnología del House of Lords , quien sugirió que todas las compañías desde los vendedores de sistemas operativos hasta los vendedores de aplicaciones y los proveedores de internet, necesitan tomar mayor responsabilidad en la seguridad de los usuarios. Sin embargo Art Coviello el presidente de RSA nos advierte que entre las consecuencias de hacer responsables a los vendedores, está la de frenar la innovación, pueden ver un video de una entrevista al respecto aquí.

En general lo más importante es que recordemos buscar otras fuentes de información para tomar decisiones acerca de un producto. Lo mejor es buscar a alguien de confianza, ya sea un consultor, una empresa integradora de sistemas, o similar pero que tengamos confianza en que va a darnos una solución correcta. Claro que sin importar que tan seguro hagan un sistema, los usuarios siempre van a encontrar la manera de configurarlo mal, la cuál es casi una ley en la computación hoy en día.

Aparte de la presentación de Schneier otra de las presentaciones interesantes fue la de Frank Abagnale, el famoso falsificador de la película “Atrápame si puedes”, quien hablo sobre el nuevo esquema de tarjetas de identidad del Reino Unido.

Una de las grandes ventajas de asistir a eventos como el RSA es la oportunidad de platicar con colegas sobre los productos que han usado y ver que funciona y que no, de esta manera obtienes una opinión mucho menos tendenciosas que la de los vendedores. También hay varios expertos que presentan sus resultados o con los que se puede conversar en estas conferencias, y que por el hecho de que trabajan en la academia no tienen ninguna agenda en especial y nos presentan análisis más serios sobre los productos.

Así que hay que agendar la próxima RSA en San Francisco que va a ser del 7 al 11 de Abril de año que entra. Por mientras, busquen alguien de confianza antes de hacer cualquier compra de producto o servicio de seguridad.

25 octubre, 2007

Las bases de búsqueda en Google

Partiendo un poco sobre el común de este blog, quiero adentrar un poco en la búsqueda de información. Es esencial para todo aquel que esté involucrado en seguridad el poder encontrar información específica sobre los problemas que enfrenta. He notado que mucha gente acaba en los foros preguntado cosas de las que ya hay varias respuestas en la red. Por este motivo voy a compartir con ustedes algunas de las bases para buscar información en Google.

Todo lo sigue aplica a cualquier tipo de búsqueda, no sólo aquella relacionada con informática. Empecemos con lo que ya deben saber por experiencia o cualquier otro motivo:

a) Usen varias palabras pero no exageren, si no encuentran algo, quiten algunas y vayan refinando o vayan agregando algunas de las que encuentren en los resultados.
Si quieren saber porque se les dice regiomontanos a los habitantes de Monterrey pueden poner:
Regiomontano (pero les da resultados sobre Johann Müller Regiomontano.)

Es mejor poner:
Regiomontano habitante de monterrey (pero todavía tienen que buscar hasta el 5to resultado)

O mejor aún:
+porque se llaman regiomontanos (nos da la respuesta a la primera)

b) Google no diferencia entre mayúsculas y minúsculas ni toma en cuenta la mayoría de los artículos, términos comunes (cómo, dónde, etc.) ni letras solas.

c) Si quieren que tome en cuenta un número o una letra sola pongan un signo de más antes de este. O al contrario si no quieren resultados con ciertas cosas en ellos, usen el signo de menos.

Ejemplo: Salsa -musica +comida nos da resultados de cómo hacer salsa y no del baile de Salsa.

d) En el caso de buscar una frase completa tal cual pónganla entre comillas (“”).

Ejemplo: "la amenaza del fantasma" (para encontrar la película de StarWars)

e) Usen la palabra OR en mayúsculas para que busque uno otro término

Ejemplo: los politicos son mentirosos OR rateros (nos da resultados de páginas que hablen sobre políticos mentirosos y también las que hablan sobre políticos rateros, aunque es muy probable que tengan ambos términos en este caso :D )

f) Si quieren buscar dentro de un sitio usen site:

Ejemplo: búsquedas en Google site:blogger.com (da los resultados de blogs que hablen sobre búsquedas en Google en el sitio de blogger)

g) Para buscar páginas que tengan links a cierta página usen link:

Ejemplo: link:www.el-universal.com (nos da los sitios que tienen enlaces a el sitio del periódico El Universal)

h) Si quieren información sobre un sitio usen info:

i) Si quieren páginas relacionadas con algún sitio usen related:

j) Si buscan algún tipo de archivo específico usen filetype:

Ejemplo: sida filetype:ppt (nos da presentanciones en PowerPoint sobre el SIDA)

k) Para búsquedas en un rango específico usen dos puntos (..) entre el rango

Ejemplo: presidente mexico 1915..1920 (nos da resultados de páginas que hablen sobre presidentes de México con fechas de 1915, 1916, 1917, 1918, 1919, 1920)

l) Cuando quieran que busque todos los términos similares usen el símbolo ~ antes del término

Ejemplo: televisa ~bolsa (da resultados sobre bolsa de trabajo, ofertas de empleo y similares)

m) Ciertas cosas las pueden preguntar directo, como la población de un país o estado, la moneda, o quienes son ciertos personajes históricos o famosos. No hay necesidad de ponerlo en forma de pregunta simplemente pon lo que buscas, muchas de las respuestas las saca directo de la Wikipedia, debajo de la respuesta de dice la fuente de donde lo saco.

Ejemplo: población de monterrey

n) Para incluir varias de estas cosas escojan “búsqueda avanzada” y llenen la forma.

Aparte de todo esto pueden usar a Google para buscar información financiera sobre las acciones de una compañía tecleando el símbolo de la acción, sólo para acciones en las bolsas de USA.

Ejemplo: msft

También pueden usar a Google como calculadora rápida.

Ejemplo: 526.23+452.31

Y por último le pueden pedir la respuesta a la vida, el universo y todo lo demás, sólo que lo tienen que hacer en inglés.

the answer to life, the universe and everything.

09 octubre, 2007

El top 10 de las vulnerabilidades de seguridad de los sitios web

Es bien sabido que a la hora de contratar un programador para desarrollar sitios web, el top de la lista en cuanto a importancia es creatividad mientras que al final de la lista esta la seguridad.

Por algún extraño motivo las empresas de desarrollo pequeñas y medianas creen que casi lo único importante es la imagen en los sitios web. Como quieren atraer clientes, necesitan tener un portafolio de diseño que venda, pues a los clientes a los que les quieren vender no tienen idea de lo que representa un sitio web y si los pueden apantallar con animaciones en flash y funcionalidad añadida como la de javascrip y AJAX mejor aún.

Los sitios estáticos, aquellos que cumplen la misma función que un anuncio de revista, son lo que pueden ser desarrollados poniendo lo visual antes que todo lo demás. Sin embargo muchas empresas desarrollan todos sus sitios web de la misma manera (con la imagen como prioridad) y con los mismos desarrolladores, exponiendo a los clientes a graves problemas de seguridad y funcionalidad.

Esto ha llevado a la creación de la Open Web Application Security Project (OWASP) y en especial de un reporte sobre las 10 vulnerabilidades más críticas de las aplicaciones web. Esta lista representa el consenso mayoritario en la industria sobre los errores más críticos de seguridad en las aplicaciones web.

La industria de las tarjetas de crédito ha adoptado esta lista como un estándar y requiere que todos los vendedores obtengan una revisión de seguridad de su código. El Departamento de la Defensa de USA también ha integrado está lista como parte de su Information Technology Security Certification and Accreditation (C&A) Process (DITSCAP).

Entre las 10 vulnerabilidades encontramos las siguientes:

Cross site scripting (XSS).- Cuando una aplicación toma datos proporcionados por el usuario y los manda al navegador, sin validar y cifrar primero la información, permite que se ejecuten scripts en el navegador del cliente logrando introducir gusanos, robar su información bancaria e introducirse en los sitiosweb como si fueran el usuario.

Paypal sufrió un ataque de estos el año pasado donde redireccionaban a los usuarios a una página para actualizar sus datos, obteniendo así el nombre de usuario y contraseña.

Inyecciones .- La más común en esta categoría es la de SQL, pero la inyección ocurre cuando se mandan datos por parte del usuario a un interpretador. El atacante engaña al interpretador logrando ejecutar comandos que le dan acceso a datos a los cuales no debería tener acceso.

Hackers Rusos lograron infiltrarse en el sitio de gobierno de Rhode Island y por medio de inyección de SQL obtener información de 53,000 tarjetas de crédito

Ejecución de Archivos Maliciosos.- Los atacantes pueden ejecutar archivos de forma remota en el servidor, comprometiendo la integridad del sistema. Cualquier aplicación que recibe archivos o nombres de archivos en el servidor puede padecer esta vulnerabilidad.

Inserción de Referencias Directas a Objetos.- Cuando los parámetros en el URL o en las formas contienen referencias directas a una implementaciones de objetos, como archivos, directorios, bases de datos, o llaves. Los atacantes pueden manipular esos objetos para ganar acceso a otros recursos.


Salidas de Información y mal manejo de errores.- Las aplicaciones pueden llegar a mostrar información sobre su configuración, forma de trabajo interna, etc. Los atacantes usan esta información para ganar acceso al sitio.

No restringir accesos a URLs.- Ciertas páginas que no son para los usuarios generales de un sitio, son fáciles de adivinar su dirección como /admin o si una página es 123456 prueban con 123457 etc.

Un hoyo en la Macworld Conference & Expo permitió a los hackers obtener pases platinum que tenían un costo de 1,700 dlls de manera gratuita. El código no evaluaba los privilegios de acceso en el servidor, sólo en el cliente, y con un simple javascript lograron ganar acceso.

Para mayor información sobre estas vulnerabilidades len el reporte de la
OWASP y familiarícense con las diferentes vulnerabilidades.

06 octubre, 2007

Excel Reprobado por no saber multiplicar

Para aquellos que no están muy familiarizados con programación, y en especial con la aritmética del punto flotante, el resultado que da excel 2007 al ingresar en una celda =850*77.1 los podrá sorprender.

El resultado que verán en pantalla es 100,000 en lugar del valor correcto de 65,535. Este es un error de Excel que ya ha aceptado Microsoft y están trabajando en un parche para corregirlo.

Resulta que el problema no tiene que ver con la operación de multiplicación per se. De hecho Excel hace la multiplicación bien y guarda el valor correcto en memoria. El problema aparece a la hora de mostrar el resultado en pantalla.

Desde sus primeras versiones, Excel siempre ha hecho los cálculos en forma binaria (usando solo 1s y 0s). Al parecer una vez que calcula el resultado, hay una función que toma ese resultado binario y lo convierte a un "string" para mostrarlo en pantalla y es aquí donde surge el error.

Excel despliega en pantalla los valores incorrectos en 12 casos específicos. De los 9.214*10^18 valores de punto flotante que puede utilizar excel, 6 números binarios entre 65534.99999999995 y 65535 y otros 6 entre 65535.99999999995 y 65536 crean este problema, cualquier operación que de como resultado un valor en ese rango, mostrará 100,000 en pantalla. Ya que Excel redondea a 15 dígitos los valores que ingresamos en las celdas, no podemos meter estos valores directamente, pero si son el resultado de un cálculo (ya sea división o multiplicación, suma, resta, etc) entonces veremos el valor incorrecto en pantalla.

Como ejemplo pueden ver la siguiente imagen, donde en la Columna A estan los resultados de las operaciones que se muestran en la Columna C. Lo importante a notar es que al sumar o restar las celdas con los valores "incorrectos" con otra celda que nos aleje de 65535 obtenemos el resultado correcto, demostrando así que el valor en memoría es correcto y el problema esta en la función que lo convierta a "string" para la pantalla.

Aún mas podemos hacer una gráfica que contenga una de estas celdas que muestran el valor incorrecto y para nuestra sorpresa, en la gráfica vemos el valor correcto. Esto se debe a que Excel usa el valor en memoria para hacer las gráficas y no el que "ven" en la celda.

Este un clásico ejemplo de "bugs" que son relativamente difíciles de encontrar cuando desarrollamos algún programa. Hay dos razones por la cuales es difícil de encontrar: La primera es que probablemente en las pruebas unitarias y demás pruebas que corren para revisar los cálculos en Excel, son hechas con código automatizado en VBA, y el VBA ve 65,535 y no 100,000 por lo tanto no aparece como un error. El otro problema es el de las probabilidades pues sólo 12 de 18446744073709551616 números posibles binarios en punto flotante nos causan este problema. Así que la probabilidad de que aparezca es de menos del .000000000001% .}

No es un error tan grave como pareciera, pero como la mayoría de la gente usa los valores "visibles" de Excel en lugar de los valores en memoria, este puede ser un gran problema.

Lo que recomiendo es que si su banco esta utilizando Excel 2007, depositen 77.1 pesos 850 veces, si tienen suerte serán 34,465 pesos más ricos.

ACTUALIZACIÓN: Microsoft saco un parche para resolver este problema el 9 de Oct la información de soporte la pueden encontrar aquí.

My Amazon.com Wish List
Add to Technorati Favorites


15 junio, 2007

Problemas Con Windows Update y los Security Alerts

Hace menos de un mes nos enteramos que el Windows Update de Microsoft tiene un componente que puede ser explotado. Ahora al parecer los hackers estan haciendo de las suyas con trucos más ingeniosos sobre las actualizaciones.

El Background Intelligent Transfer Service (BITS) es un servicio que les permite bajar las actualizaciones de windows, mientras hacen otras cosas en la pc, junto con otras bondades como si se desconectan de la red, les permite, resumir la descarga desde donde se quedaron.

Mientras que en la mayoría de los casos esto es genial, tiene un pequeño defecto. El firewall de windows y en general la mayoría de los firewall que se instalan con su solución antivirus no escanean lo que baja el BITS, ya que es parte del sistema operativo.

Como bien comenta Elia Florio, un investigador del Symantec's security response team: "Es una bella herramienta, y si consideran que tiene soporte para http, y puede ser programada via un COM API, es la herramienta perfecta para hacer que Windows baje lo que desees. Desafortunadamente esto incluye archivos maliciosos"

La gran ventaja de utilizar BITS es que los hackers no tienen que crear sus propios downloaders, pues no solo es gratis, sino que ya esta preinstalado y es muy confiable, aparte de que no hay una manera sencilla actualmente de checar si lo que baja lo debería estar bajando o no.

Algo interesante a notar es que los hackers "se estan volviendo más modulares, haciendo uso de los componentes existentes, siguiendo así la tendencia del software profesional" como bien comenta Oliver Friedrichs, director del Symantec's security response group.

La buenas noticias son que el windows update per se, no esta comprometido, y cuando microsoft baje sus parches de seguridad, hasta el momento no hay forma de explotar este update para subir otros archivos en lugar de los originales. Sin embargo ya hay emails circulando haciendose pasar por Security Alerts de Microsoft pidendoles bajar alguna actualización, pero cuando hacemos click en el link realmente baja el Trojan-Downloader.Win32.Agent.avk. El cuáñ va y busca más computadoras en internet para bajar más programas maliciosos a la máquina.

El primero de estos scams, lo publicaron los de SANS hace unos días y hay un segundo encontrado por el
Chinese Internet Security Response Team. Todo parece indicar que se estan preparando para más ataques pues el programa trata de conectarse a dominios que todavía no estan registrados.

Los emails contienen errores obvios como el nombre de la actulización de junio MS06-4 lo cuál no es creíble, mientras que un nombre como MS07-015 hubiera parecido correcto. Algo interesante a notar es que los links en estos email no estan ligados directamente al ejecutable, sino a un boletin de seguridad falso.

Como siempre navegen seguros, desconfíen de los emails que no son comunes y conocidos y siempre revisen las direcciones en sus exploradores de los links que hagan click.


10 abril, 2007

Sólo dos familias dominan al mundo (de botnets)

Al parecer la familia del Sdbot y la de Gaobot son responsables por más del 80% de los botnets en el mundo.

Es curioso como es posible que solo estos dos tipos han dominado los botnets. Algo que nos debe de dejar esto es que no importa la seguridad los usuarios finales van a seguir siendo el problema principal. Es importante educarlos en este sentido.

Por ejemplo el backdoor.Sdbot normalmente viene adjunto en un email, e instala ciertos archivos (varian según el caso) en el %system%, añade un driver (SVKP.sys) que no es virus pero lo usa para sus propios fines, algunos añaden el msdirectx.sys para funcionar como rootkit y se conecta al IRC.

Si tan sólo el usuario fuera más cuidadoso y no abrirá el archivo o lo mandara al administrador de la red para su revisión, o lo escaneara a fondo con el antivirus, podríasmo evitar esta infección.

80% de los botnets son sólo dos familias y con todo y que lo sabemos no los detenemos, es increible.

28 marzo, 2007

Mitos sobre la seguridad de redes wireless (inalámbricas)

Al parecer hoy en día todo el mundo tiene un módem inalámbrico o por lo menos una tarjeta de red inalámbrica en su laptop, creando una bella oportunidad para ser atacados por hackers y sin embargo nadie parece preocuparse. Existe un falso sentido de seguridad entre los usuarios y administradores de redes inalámbricas.

Ya en una entrada anterior comente sobre las vulnerabilidades de las tarjetas wireless, ahora voy a comentar sobre algunos mitos en cuando a la seguridad de la red inalámbrica. Hace ya dos años que George Ou publicó en su blog algunos mitos sobre la seguridad en wireless y lo llevó a escribir un pequeño manual de seguridad que ha estado actualizando de vez en cuando.

Sin embargo después de todo este tiempo y de mucho mayor experiencia de la comunidad de IT en general sobre las redes wireless algunos mitos prevalecen, en gran parte porque son considerados buenas prácticas, pero que en realidad son de las peores prácticas de seguridad e inversión por su dinero.

¿Cualés son los mitos más comunes que hasta los "expertos" en seguridad como CISSP recomiendan? Aquí los tienen:

  • Filtrado de MAC.- El filtrar los accesos dando de alta solo los MACs de las tarjetas de red de las computadoras permitidas, es una de las peores prácticas no sólo porque es totalmente inútil sino que es una gran pérdida de tiempo configurarlo y darle mantenimiento; es un drenado de dinero con el peor retorno sobre inversión. Para encontrar un MAC permitido todo lo que necesita hacer un hacker es usar un sniffer y ver el número hexadecimal de 12 dígitos , copiar y pegarlo como el MAC de su tarjeta, todo esto le toma menos de 30 segundos. Y no olvidemos que como bien menciona George Ou "un sniffer para un hacker es como un martillo para un carpintero pero con el beneficio de que es gratuito".
  • Esconder el SSID.- Los AP emite su ID de 5 formas diferentes, al deshabilitar en el AP el SSID, lo único que hacen es esconder 1 de la 5 , sin mencionar que le dificultan la vida al usuario si brinca de AP a AP y en pierden más tiempo configurando todas las máquinas de los usuarios. Si quieren información más a fondo sobre este tema les recomiendo leer " WLAN Testing Reports: Debunking the Myth of SSID Hiding" de ICSA labs.
  • Autenticación LEAP.- Este puede ser un gran problema pues te deja vulnerable a un ataque. Cisco le pide a sus clientes que usen passwords difíciles para que no pueden encontrarlos con ataques de fuerza bruta. El gran problema es que a los humanos no nos agradan los passwords difíciles y por eso no los usamos y si no nos queda de otra, lo acabamos escribiendo en un post-it. Otro problema es el famoso asleap de Joshua Wright que en minutos sino no es que segundos encuentra los passwords necesarios para ingresar a la red.
  • Deshabilitar DHCP.- Esta es mi favorita, porque no sirve de nada para incrementar la seguridad, lo único que hacen es aumentar el trabaja de configurar cada máquina manualmente con IPs estáticas. Con un sniffer en 10s cualquier hacker puede encontrar es esquema de asignación que utilizan.
  • Antenas.- Algunos "expertos" recomiendan posicionar la antena en el centro de la oficina y bajar la potencia a lo mínimo. Lo único que logran con esto es echar a perder la red, porque van a tener varios lugares con problemas de recepción dentro de la oficina, el poder y la posición de la antena debe de basarse en lograr la máxima cobertura y la mínima interferencia. Recuerden que un hacker siempre tendrá una antena mucho más potente con la que se podrá conectar a un kilómetro de distancia.
Vale la pena mencionar algo sobre WEP, algunos de ustedes se preguntarán porque no lo añadí, al igual que George Ou, siento que es el único que provee algo de seguridad, aunque inútil contra un hacker con algo de conocimientos, por lo menos le toma unos 10 minutos usando dos máquinas al mismo tiempo para descifrarlo, lo cual lo detiene por un tiempo y requiere cierto nivel de experiencia, no sólo correr un programa y en caso de solo estar buscando un red para inicial sus ataques a otras más importantes, puede lograr disuadirlo en especial si hay una más sencilla cerca.

Si quieren implementar seguridad en su red inalámbrica todo lo que tienen que hacer es activar el WPA-PSK (Wi-Fi Protected Access Pre-Shared Key) con una frase aleatoria alfanumérica de por lo menos 10 caracteres que les tomaría siglos romper. Es importante que sea una frase aleatoria porque con un buen ataque de diccionario la pueden romper si es una palabra común. Para opciones más complejas de seguridad les recomiendo que lean esta guía.

Como siempre dejen sus comentarios, sugerencias y opiniones al respecto. Naveguen seguros.

22 marzo, 2007

Firefox FireCAT

Siempre que pensamos en la seguridad de nuestras redes y máquinas, pensamos en firewalls, IDS, analyzers, etc, y muchas veces nos olvidamos que la mayoría del malware entre por dos programas: el que usamos para leer el email y el navegador (en ocasiones son el mismo).

De ambos, el navegador es por mucho el que mayor riego presenta. En general en cuanto a navegadores la mayoría solo piensa en Internet Explorer, aquellos de ustedes que han desarrollados sitos web podrán nombrar al menos IE, Netscape, Firefox, Safari y Opera, si han trabajado con Linux pueden añadir Konqueror, Mozilla, Epyphani, y aquellos que usen Mac añadirán también iCab, Omniweb, y Camino. Si son muy dedicados igual y han usado Avant, Escape o Maxthon. ¿De todos los mencionados cuál es el mas seguro?

La pregunta es cuestión de debate entre los expertos, pero en nuestro caso sólo debemos de preocuparnos por los mas usados que son IE y Firefox. Entre la población en general y en la mayoría de las empresas que Windows como su OS, IE es el navegador por default y ni como cambiarlo, pues las restricciones impuestas sobre los usuarios no los deja usar otro navegador.

El gran problema es que IE aparte de no ser muy seguro, es el blanco de casi todos los ataques que utilizan las vulnerabilidades del navegador para instalar su malware. Aquí es donde Firefox viene al rescate, aunque también tiene sus vulnerabilidades son mucho menos que las de IE y tiene un gran arsenal para defenderse del malware.

El equipo de Security-Database.com publica de manera constante un mapa con las extensiones de firefox orientadas a la seguridad conocido como FireCAT (FireFox Catalog of Auditing Toolbox). En este encontramos herramientas esenciales para defendernos de todo tipo de ataques, desde No Script que sólo ejecuta las extensiones de Java y Javascript de los dominios que tu le permitas y por default deshabilita todos los demás. Tenemos también el Add N Edit Cookies que nos permite ver las coookies que tenemos y añadir cookies y editarlas.

Para usuarios más avanzados hay extensiones como Firebug que nos permiten ver, monitorear y editar en tiempo real cualquier archivo de CSS, HTML y JavaScript. También tenemos el firekeeper que es un IDS, que detecta, alerta y bloquea sitios maliciosos. Hay muchas herramientas más que incluye el FireCAT, vale la pena revisarlo con calma y probarlas.

Algo interesante para considerar es el hecho de que el uso de firefox entre la gente que se dedica a seguridad el del 50% aprox. vs el público en general que es del 30%. Lo que nota en parte que los usuarios de firefox en su mayoría son "usuarios expertos" que se toman el tiempo y la dedicación para configurarlo y adaptarlo.

Como siempre dejen sus opinines, comentarios, historias, quejas y sugerencias...

18 marzo, 2007

Spyware de 20 dólares

Hace casi un año que se dio o conocer sobre un kit ruso para producir spyware. El kit parece estar creciendo en popularidad en Latino América. Esto se debe en parte a la creciente cooperación que estamos viendo entre hackers Rusos y Brasileños.

El kit conocido como WebAttacker está disponible en un sitio Ruso por 20 dólares el upgrade y por 300 la versión completa incluyendo soporte técnico, la cuál al parecer la han actualizado continuamente, por lo menos en agosto del año pasado y después en noviembre añadiendo funcionalidad. En general el kit permite hacer troyanos que explotan vulnerabilidades conocidas y de las cuales ya hay parches disponibles, pero que en muchas empresas no han sido tapadas (no tienen activada las actualizaciones automáticas). También permite mandar spam con títulos y contenido de noticias falsas con la finalidad de que los usuarios visiten un sitio para leerlas y ahí sean infectados.

Los sitios web contienen un iframe escondido que cargan el archivo go.php que redirige la página a ie0609.cgi?homepage que a su vez redirige a demo.php donde a través de un javascript escoge el exploit correcto y manda el parámetro correcto al cgi que regresa un binario con el malware a ser ejecutado.

La cooperación entre rusos y brasileños aunque inicialmente empezó con herramientas como esta, al parecer ha incrementado creando troyanos que roban la información bancaria, en general la idea es la misma, mandan un e-mail con una carta del banco de agradecimiento o felicitaciones haciendo que el usuario haga click en el link contenido enviándolos a páginas que se parecen a las del banco pero hospedadas en sitios como Geocities, donde ejecutan los scripts.

Si les interesa saber a detalle como funciona el cgi de Web-Attacker pueden visitar el blog de los security labs de Websense.

Como siempre, actualicen sus máquinas constantemente, duden de cualquier email recibido y verifiquen que la dirección que aparece en la barra del navegador es la correcta. Dején sus experiencias, comentarios y opiniones como siempre.


07 marzo, 2007

Kernel Malware

El personal de F-Secure responsable de analizar las amenazas mantiene un blog y un canal en YouTube que son destinos obligados para todos aquellos que les interese aprender un poco más sobre seguridad.

Recientemente Kimmo Kasslin publico en su blog un artículo sobre Malware que se enfoca en los que atacan kernel de los sistemas basados en Win NT. Los virus que ganan acceso al kernel se ejecutan en "ring-0" teniendo acceso a todos los recursos del sistema, a diferencia de los que se ejecutan en modo de usuario que se ejecutan en "ring-3". Aunque estos ataques no son nuevos, han sido poco comunes.

En 1999 se encontró el primer malware basado completamente en el kernel bautizado "WinNT/Infis", un parásito residente en memoria que actuaba como un driver del sistema y ganaba control al engancharse directo al INT 0x2E. Al abrir un PE EXE (Portable Executable Win32 file) lo infecta y le cambia la fecha para distinguir los infectados de los no infectados. Por suerte el daño no era grave, al intentar abrir programas como la calculadora, paint o el cd player el sistema manda un mensaje de error diciendo que "no es una aplicación WinNT válida".
Otro virus interesante de kernel es el Virus.Win32.Chatter que se encontró en el 2003. Este se añade a cualquier archivo ".sys" abierto, se engancha al nt!NtCreateFile de la nt!KiServiceTable ganando así control de cada operación de abrir y crear archivo. Pero como la rutina del virus se ejecutaba en modo de usuario se le clasifica en "semi-kernel".

Una de los puntos que destaca del artículo de Kasslin es el hecho de que en los últimos años (2003 al 2006) se incrementado el número de malware en donde algunas o todas sus partes están diseñadas para explotar vulnerabilidades a nivel de Kernel. En gran parte esto parece ser causa del auge que han tenido los rootkits y la cantidad de ejemplos y documentación existente sobre como utilizarlos.

El malware inicialmente intentará ejecutar su código en ring-0, para lograr esto, nos comenta Kasslin, normalmente utilizan una de las siguientes 2 tácticas:

La primera es cargar un driver en el kernel, normalmente contiene la extensión ".sys" y puede ejecutarse en el thread en modo de usuario que pida una función del I/O, también puede hacerlo en el thread en modo de kernel, o uno aleatorio como resultado de una interrupción. Usando el Service Control Manager de Windows pueden usar la función de CreateService y cargar el driver sin necesidad de reiniciar la máquina. Si el registro del driver es exitoso, creará una entrada en el registro en "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services", Una vez registrado se puede iniciar usando la función de StartService del API provisto, lo cual hace que el sistema realice ciertas acciones comunes a cargar un dll en user mode.

Existe otro método para cargar un driver que no está documentado por Microsoft, pero que lo explican Greg Hoglund y Jamie Butler en su libro Rootkits: Subverting the Windows Kernel y que recomiendo ampliamente que lean. La gran ventaja del método que describen es que el driver no dejá ningún rastro en el SCM de su existencia y por lo tanto no puede ser removido hasta que se reinicie la máquina.

El otro método es utilizar las "call gates" que permiten que un programa cambie su nivel de privilegio en el CPU, por ejemplo de ring-3 a ring-0. Esto es posible a través de dos funcionalidades no documentadas de Windows.

La primera utiliza el objeto \Device\PhysicalMemory, que permite a un programa mapear parte de la memoria física a su espacio de direcciones. Uno de los primeros virus que lograron explotar correctamente esta vulnerabilidad es el W32.Fanbot.A@mm. Una explicación detallada de como utilizar esta funcionalidad la pueden encontrar en un artículo de Crazylord en la revista Phrack.

La segunda funcionalidad que utilizan es a través de la función ZwSystemDebugControl exportada de Ntdll.dll, la ventaja de usar esta es que mapea a memoria virtual, en lugar de memoria física ahorrándose así la necesidad de calcular correctamente la traducción de espacio físico a virtual. (ver el el Gurong.A)

Después de explicarnos a detalle como utilizar los gate calls, Kasslin nos lleva dentro del mundo de dos diferentes malwares que corren en modo Kernel, que bien vale la pena leer a detalle y por lo tanto no los comentaré aquí.

Esto es todo por ahora, como siempre dejen sus experiencias, comentarios y sugerencias.

01 marzo, 2007

Como Proteger tus Websites y Evaluar su Seguridad

En una entrada anterior hablamos sobre como usar Access Diver para encontrar passwords en los sitios web. Mientras que esta herramienta funciona bien para hacer una prueba inicial de nuestro sitio, esta lejos de ser la mejor prueba de seguridad.

La realidad es que para la mayoría de las empresas que se dedican al desarrollo web o que tienen su propio web mantenido por su departamento de IT, les cuesta mucho tiempo y trabajo el revisar y asegurar sus sitios. Y como en la mayoría de los casos (con excepción de bancos, etc.) piensan que no es probable que los ataquen, dejan las revisiones de seguridad para después, el único detalle es que ese después nunca llega.

Un buen lugar para empezar a empaparse sobre seguridad de sitios web es el libro "How to Break Web Software: Functional and Security Testing of Web Applications and Web Services" de Mike Andrews y, James A. Whittaker ambos expertos en el campo. Sin embargo como el tiempo es oro y rara vez tenemos tiempo para ir a comprar el libro, leerlo y luego ponerlo en práctica, la mejor solución es dejar que una expertos lo hagan por nosotros.

Mientras que en el pasado estas soluciones eran caras, donde tenían que comprar equipo y profesionales que visitaban la oficina, hoy en día existen servicios de excelente calidad un costo muy aceptable, como el ClickToSecure de Cenzic.

Bajo el concepto de SaaS (Software as a Service), usan su famso HailStorm para hacer todo tipo de pruebas en tu sitio web sin necesidad de instalar ni configurar nada. Simplemente les das tu URL, hacen las pruebas y te entregan un reporte completo de todas las vulnerabilidades detectadas. La gran ventaja aquí, es que no hay que comprar ningún software, no hay que aprender a usarlo, configurarlo y correr las pruebas, todo esto se los dejamos a profesionales.

Otra de las ventajas es que no necesitamos estar al día en los diferentes tipos de ataques que existen pues ellos mantienen actualizadas sus pruebas con las últimas amenazas como son: entradas de información sin validar, control de acceso roto, autenticación y administración de sesiones rotas, XSS, buffer overflows, inyecciones de código, mal manejo de errores, y mal aseguradas consolas de administración y bases de datos entre otros.

Una vez obtenido el reporte se preguntarán que hacer para cubrir las vulnerabilidades. Una opción es que los mismo consultores de Cenzic les ayuden a corregirlas, en algunos casos las vulnerabilidades son sencillas y con el puro reporte las podemos corregir nosotros.

En caso de tener aplicaciones web grandes o varios servidores, la mejor opción puede ser instalar el firewall NC-1100 o NC-2000 de Net-Wall. Estos firewalls de aplicación defienden aplicaciones web y transacciones de hackers profesionales. Más del 80% de las intrusiones a servidores son a través de sus aplicaciones web, donde los tradicionesles firewalls e IDS no protegen, y es aquí donde los firewalls NC de Net-Wall nos resultan más útiles.

Estos vienen en dos categorias AF y AG. Los AF son application firewall que dan protección a las applicaciones web, mientras que los AG son application gateway que aparte de dar protección, aumentan el desempeño usando caching, compresión y más.

La ventaja de este firewall, es que no es necesario conocer las vulnerabilidades actuales, pues no depende de una base de datos de vulnerabilidades conocidas, sino que escanea los envíos en busca de inyecciones de SQL, XSS, buffer overflows, forms tampering, cookie tampering, escaneo de puertor, SYN flood, etc. El sistema integra políticas por parte del desarrollador, de tal manera que si queremos que un campo sea de 40 bytes de largo el firewall se asegura que no rebase ese largo en el envío, previniendo que pueden mandar virus, o que algún fuzzer este trantando de estrellar el código, etc.

El NC-1100 y 2000 tienen muchas ventajas más como encripción y desencripción de SSL, caching del contenido web, pooling de las conecxiones TCP, compresión de GZIP, load balancing (round robin, weighted round robin, y least requested por default pero se pueden implementar out of service redirections, y sticky connections). Todo esto no sale barato y por eso el NC-1100 anda alrededor de los $30,000 dólares.

Si les fue útil esta información y se sienten generosos me pueden donar el libro del que les hable en este blog visitando my wish list en Amazon.
My Amazon.com Wish List
Add to Technorati Favorites

Como siempre dejen sus comentarios, experiencias y opiniones.

27 febrero, 2007

Como explotan vulnerabilidades en Wireless

Si se preguntan como es que en el Black Hat del 2006 en Las Vegas, lograron tomar control de una Mac (sirve igual para PCs) en cuestión de segundos (ver video), aquí revisaremos una de las formas en las que se encuentran estas vulnerabilidades.

Nos hemos acostumbrado a proteger las vulnerabilidades en módulos de usuario con técnicas como non-executable pages, address space layout randomization (ASLR) y stack canaries, pero hemos olvidado que a nivel de kernel también existen vulnerabilidades importantes.

Requieren especial atención las vulnerabilidades en los drivers, ya que los programadores de drivers viven en un entorno totalmente diferente a los programadores para usuarios final, desde la diferencia entre los API y el hecho de que a partir de Win NT a la fecha los threads de kernel solo tienen 3 páginas de stack mientras que los de usuario tienen hasta 256KB, sin mencionar el cuidado especial que se debe de tomar en cosas como son performance, error-handling y re-entrancy.

Ya se que deben de estar pensando que es muy poco probable que hagan un ataque en un device driver ya que la mayoría no procesa datos controlados por el atacante. Pero los drivers de red son la excepción. Aunque los driver para ethernet han estado con nosotros por mucho tiempo y no han sufrido vulnerabilidades importantes, no es lo mismo de los wireless. Resulta que los ethernet hacen muy poco de procesamiento mientras que los wireless tienen que manejar una amplia gama de pedidos y exponer su funcionalidad a quien se encuentre en el rango.

Para hacer un ataque en el mundo del 802.11 nos enfocaremos en una device que se encuentre sin autenticar y sin asociar (pueden estar autenticada sin asociarse y autenticada y asociada). En este caso el cliente procesa:
  • Probe Request
  • Probe Reponse
  • Beacon
  • Autenticación
El Probe Response y el Beacon se utilizan para encontrar o publicar las redes inalámbricas locales. Utilizando estos los clientes pueden encontrar las redes de dos maneras, en modo activo el cliente mando un Probe Request con el campo de SSID vacio, cualquier AP que lo escuche responde con un Probe Response con los parámetros de la red. En modo pasivo el cliente esta en escucha de los Beacons y lee los parámetros de la red de estos.

Los paquetes tanto el Probe Response como el Beacon deben contener entre otras cosas un campo para el SSID el cuál según la especificación no debe de ser más de 32 bytes de largo. Sin embargo el largo máximo de cualquier elemento de información es de 255 bytes, lo que deja amplio margen de error en un driver mal escrito.

Para atacar el Beacon de un driver necesitamos una manera de mandar frames al device que se va a atacar. La mejor opción actualmente es la LORCON-library en C (hay una extensión para ruby), desarrollada por Joshua Wright y Michael Kershaw. Una vez familiarizados, podemos implementar un fuzzer que obliga al driver a procesar datos malformados tratando de que con uno de esos se estrelle.

Escojemos un campo en el Beacon o Probe Response que sea de largo variable, como el Information Element. Una vez que se encuentra el problema mediante el uso del fuzzer, iniciamos el proceso de ganar control del pointer de esa instrucción. En el caso de buffer overflows del stack en Windows, el proceso es tan sencillo como determinar el offset de la dirección de regreso y sobreescribirlo con la dirección de una instrucción que haga un "jump" de regreso al stack (ver otro ejemplo). Esta puede ser la parte más compleja de todo el proceso.

Una vez que se gana control del pointer de la instrucción, se hace una ejecución de código arbitrario. Para módulos de usuario este proceso esta totalmente automatizado usando Metasploit. Y en la nueva versión de Metasploit (3.0) ya se pueden implementar exploits del kernel de manera automática.

Si les interesa estudiar a mas detalle todo el proceso les recomiendo que lean un artículo por Johnny Cache, H D Moore, y skape de Metasploit.

Como siempre los invito a que dejen sus comentarios y opiniones y links al respecto .

16 febrero, 2007

THC-Hydra

Anteriormente cubrimos AccessDiver, una herramienta para hacer pruebas de penetración en tus sitos web. Ahora hablaremos de una herramienta mucho más completa y sencilla de usar que pone a nuestra disposición The Hacker's Choice.

TCH-HYDRA es una de mis herramientas favoritas para hacer pruebas de penetración. Si desean proteger su red de la mayoría de los ataques comunes hechos por script kidies y crackers, está herramienta es la opción.

Esta herramienta no hace la labor de un firewall, de proteger la red, sino que encuentra las vulnerabilidades en nuestra red. Específicamente se intenta de descubrir la vulnerabilidad más común que son los passwords. Y aunque existen varias herramientas que hacen ataques de fuerza bruta para encontrar los passwords en una red, ninguna es tan sencilla, ni tan completa como HYDRA.

Actualmente puede utilizar todos los siguientes protocolos:
TELNET, FTP, HTTP, HTTPS, HTTP-PROXY, SMB, SMBNT, MS-SQL, MYSQL, REXEC,RSH, RLOGIN,
CVS, SNMP, SMTP-AUTH, SOCKS5, VNC, POP3, IMAP, NNTP, PCNFS, ICQ, SAP/R3, LDAP2,
LDAP3, Postgres, Teamspeak, Cisco auth, Cisco enable, LDAP2 y
Cisco AAA (en el módulo de telnet)

Puede utilizarla ya sea para demostrar a los directivos, usuarios, administradores de red, etc... que tan sencillo es ganar acceso a la red, o para monitorear constantemente (léase cada semana) la vulnerabilidad de los passwords en la red y forzar políticas más estrictas.

La herramienta es muy flexible y se le pueden añadir más módulos, se tienen planeados otros módulos en un futuro de SSH v1 y Oracle y más después de esos.

Para el servicio de http/www pueden dar de alta un proxy si es que desean hacerlo mediante un proxy, si el proxy requiere que se autentifiquen también pueden dar de alta el nombre de usuario y password.

Es extremadamente sencilla de instalar y utilizar. Sólo una nota extra, la mayoría de los antivirus la van a reconocer como un programa potencialmente peligroso, no quiere decir que tenga un virus cuando lo instalen, sino que para el antivirus este programa es "malware" y trata de evitar que lo instalen, en caso de que no sepan lo que están haciendo. Así que le van a tener que dar permiso de instalarse y de utilizar su conexión al programa si están en un ambiente de windows. Este problema lo van a encontrar en todas las herramientas de penetración de redes que sean "open source" ya que al igual que hay quien las usa para bien hay quien las usa para mal y por eso los antivirus las han "blacklisted" pero si tienen privilegios de administrador, le pueden indicar al antivirus que los deje instalarlas.

Para descargar la versión para windows, la encontrarán aquí.

Como una nota final, la nueva versión añadió soporte para NTML (ahora renombrado a Integrated Windows authentication) para los módulos de pop3, imap, smtp-auth y http-proxy

Una vez más dejen sus comentarios y sugerencias

14 febrero, 2007

Cables, Monitores y lo que nos depara el futuro

Los monitores VGA y similares (XGA, SVGA) han sido el estándar por tanto tiempo, que nos hemos acostumbrado a un sólo tipo de conexión en nuestras tarjetas de video. Sin embargo la tecnología ha ido evolucionando y las conexiones VGA están dejando de ser el estándar.

Hoy en día parece que todas las tarjetas de gráficos avanzadas NO TIENEN conexión DA-15, en general encontramos una entrada de DVI y otra de S-VIDEO. La mayoría de las computadoras que están saliendo en el mercado "VISTA READY" son de este tipo, para poder desplegar la interfaz "AERO".

Pero que sucede con la mayoría de los usuarios que sólo utilizan la computara para tareas comunes como escribir documentos y hacer hojas de cálculo, ¿tendrán que cambiar de monitor?
No necesariamente existen adaptadores de DVI a VGA, pero debemos de tener en mente que las conexiones de VGA son análogas mientras que las DVI son digitales (en general).

De hecho tenemos tres tipos de conexiones DVI en los monitores
1) DVI-A, (a de análoga) que se usa para los monitores de CRT.
2) DVI-D, (d de digital) que es únicamente digital y no compatible con las análogas
3) DVI-I, (i de integrada) que es compatible con digital y con análoga.

Lo interesante resulta cuando queremos conectar un monitor CRT que es análogo a una tarjeta de video con salida DVI-D. Simplemente no se puede. La salida DVI-D es totalmente digital y el monitor CRT es totalmente análogo, así que no funcionará sin algún hardware de por medio que realice la conversión. Así que un cable DVI-I o DVI-A no entran en este tipo de tarjetas.

Entonces si tenemos un monitor CRT y una tarjeta de video DVI-D no hay opción de conectarlos directo con cables. ¿Qué sucede si tenemos la tarjeta con entrada DVI-I? en este caso podemos usar un adaptador especial para convertir la entrada de VGA a DVI-I y salimos del problema. Resulta inusual encontrar tarjetas de video con entrada DVI-A o monitores con esta entrada pero en este caso el mismo adaptador también funciona.

Para complicar más la cosas existen cables DVI "single" y "dual". Aunque para las conexiones análogas rara vez es importante la diferencia, en las digitales lo es. Los cables que son "single" mandan una señal de 60Hz con transferencia de 162 MHz para una resolución total de 1600 X 1200, mientras que los "dual" utilizan otra serie de pins para mandar más información alcanzando los 267 MHz con una resolución total de 2048 X 1536. Sin embargo no todas las implementaciones en tarjetas alcanzan estos máximos, en algunas tarjetas de menos rendimiento se ve como moteada a altas resoluciones, así que revisen primero que si alcanza esa resolución la tarjeta.

Una de las ventajas del DVI es que están diseñadas para ser Plug and Play. Se pretende que al conectar la tarjeta de video con el monitor, automáticamente se configuran para obtener el mejor rendimiento.

Pero esto no es todo, resulta que existe otra tecnología que esta empezando a cobrar fuerza en algunos monitores y es ampliamente usada en las televisiones de LCD. Es la interfase HDMI (High-Definition Multimedia Interface) que utiliza un conector totalmente diferente. Desarrollado por algunas de las compañías mas importantes en este ramo (Hitachi, Matsushita Electric Industrial (Panasonic), Philips, Sony, Thomson (RCA), Toshiba, ySilicon Image) ha tenido tremendo éxito debido a que funciona con cualquier formato de video de TV o PC incluyendo video descomprimido (DVI no soporta video descomprimido). Tambien es compatible con diferentes señales de audio como son: PCM, DVD-Audio, Super Audio CD, Dolby TrueHD y DTS-HD Master Audio.

Existen 2 especificaciones comunes de HDMI la 1.0 y la 1.3, ambas usan el mismo cable pero tienen diferentes anchos de banda. La 1.0 da 165MHz lo cuál se traduce en 1080p a 60Hz, mientras que la 1.3 alcanza los 340MHz que da mayor resolución de lo que cualquier monitor actual puede desplegar. Estamos hablando de 48bits de color lo que se traduce en billones de colores y excelente audio.

Otra de las consideradas ventajas es que es compatible con HDCP (High-Bandwidth Digital Content Protection). Sin embargo a diferencia de las televisiones, en las computadores es poco probable que logre ganar más terreno, ya que se encuentra dominado por el DVI y lo que desean mayor rendimiento están volteando hacía UDI y DisplayPort, las más recientes tecnologías.

El UDI (Unified Display Interface) intenta convertirse en el nuevo estándar, esto es en parte porque resulta ser mucho menos costoso de que DVI, en si es un rediseño del DVI para reducir costos. A diferencia del HDMI que esta dirigido al consumidor de televisiones de alta definición, el UDI está totalmente orientado a las necesidades de los fabricantes de monitores y tarjetas de video.

A diferencia del HDMI que transmite a 4.9 Gb/s el UDI alcanza 16 Gb/s. El conector es muy similar al del USB sólo que un poco más largo con 26 pins en vez de 4, aunque inicialmente sólo se usan 3 de los 26, los demás están reservados para futuras necesidades. El conector UDI es compatible con el HDMI así que una fuente UDI se puede conectar tanto a un monitor UDI como a uno HDMI. Lo que si deben tener cuidado es que el cable es unidireccional, así que no es igual la entrada que la salida.

Entre los promotores de esta interfaz están Silicon Image Inc., Intel, Apple Computer, LG, Samsung y NVIDIA. Quienes intentan hacerlo interoperable con el HDMI incluyendo soporte para HDCP, pero sin el audio y compatibilidad con DVI para poder conectar monitores DVI.

Si ya están listos para salir corriendo a comprar una tarjeta de video UDI y un monitor UDI, esperen un momento, porque compitiendo por el mismo mercado esta surgiendo un nuevo formato conocido como DisplayPort, que trae detrás a AMD, Dell, Genesis Microchip, Hewlett-Packard, Molex, NVIDIA, Philips, Samsung y Tyco Electronics.

Al parecer el grupo VESA, quienes crearon el estándar de VGA, decidieron que la conectividad de aparatos de video se ha vuelto demasiado confusa y decidieron sacar un nuevo estandár, el DisplayPort. Así que intentan unificar todos los distintos tipos de interfases en una sola y bajo un solo estándar creado por VESA. Esté va a ser compatible con UDI y con DVI pero con mayor ancho de banda y una conexión más sencilla de utilizar.

Mientras que apenas van a empezar a salir los equipos y tarjetas con DisplayPort, las UDI ya están en el mercado y las DVI lo dominan. Así que nada para nadie todavía.

En resumen, recuerden revisar las interfases que soporta su tarjeta y el monitor o televisior que tienen o que piensan comprar. También revisen si pueden utilizar un conector para no cambiar uno u el otro, por ejemplo de VGA a DVI o de UDI a DVI o de HDMI a DVI. Y recuerden comprar los cables que la mayoría de las veces no vienen incluidos y pueden afectar su presupuesto.

Dejen comentarios sobre se experiencia con las diferentes interfases y los costos asociados a las mismas por favor. ¡Gracias!




13 febrero, 2007

Access Diver

Si deseas tener un hacker a la mano que te ayude a hacer pruebas de seguridad en tu sito web sin que comprometas la información en el mismo, puedes hacer uso de accessdiver, una herramienta que piensa como un hacker y hace todo tipo de pruebas de seguridad.

Todo lo que necesitas es una PC con windows 98 en adelante y tu sitio web para hacer las pruebas.
Una vez instalado cuenta con una interfaz gráfica muy sencilla de utilizar, la cual puedes cambiar según tu nivel de experiencia. Escogiendo del menu "My Skill" te provee con 3 opciones distintas para la interface "Newbie, Familiar y Expert" También cuenta con modos especiales para hacer "prubas" específicas ya sea de Leech, Exploiter, Proxy o NetTools.

Tiene la opción de usar proxies y servidores SOCKS. Y si necesitas encontrar proxies puedes bajar GeoWhere que te permite encontrar y probar varios proxies entre otras cosas.

Si no son muy expertos en prubas de seguridad lo mejor es inciarlo en modo Newbie y empezar a familiazarse con las herramientas básicas. El primer tab muestra las opciones para realizar un ataque de diccionario. Este cuenta con un campo para el nombre de usuario y otro para el del password. Este tipo de ataque carga un "diccionario" con los nombres de usuarios y passwords y va probando uno por uno hasta encontrar uno que funcione o se termine la lista.

Es importante notar que el diccionario que trae por default utiliza nombres de usuarios y contraseñas comunes en inglés, así que deberán generar su propio diccionario con palabras comunes en español o buscar uno en la web.

Los demas tabs permiten configurar un servidor proxy o socks para realizar el ataque y la configuración básica del programa, como después de cuentas acesos encontraros parar (con uno normalmente es suficiente).

Esta herramienta muestra claramente como hacen los llamados "script kiddies" para ingresar de manera ilegal a muchos sitos web, sin necesidad de tener grandes conocimientos sobre seguridad y redes.

Dejen un comentario sobre su experiencia con AccessDiver y que les gustaría ver en próximas versiones.

ACTUALIZACIÓN:

De acuerdo con un estudio recientemente realizado por Acunetix el 70% de los sitios web tienen vulnerabilidades de seguridad de mediana y alta prioridad. Una razón más para empezar a tomar más enserio la seguiridad en nuestros sitios.