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