20 julio, 2008

Format C: La odisea de formatear y regresar a su estado una máquina

Todos lo hemos pasado, no queda otra que formatear la máquina. Al parecer se ha vuelto el recurso por excelencia, cuando no damos con un virus, con algún problema de configuración o porque la máquina esta lenta.

Siempre he estado en contra de formatear una máquina, por varias razones, en especial cuando lo que la formatean son técnicos sin mucha experiencia y no dejan las cosas como deben, o las en grandes empresas donde avientan una imagen que no han actualizado en años.

¿Por qué? Por el simple hecho de que es mucho más trabajo dejar las cosas bien. Admito que hay ocasiones en que no queda de otra más que formatear, yo solía hacerlo unas 4 veces al año con mi máquina porque probaba todo tipo de cosas en ella. Ahora con las maquinas virtuales, ya no tengo que hacerlo tan seguido. Una a lo mucho dos veces al año.

Al formatear una máquina pierdes mucho de lo que ya tienes configurado, en una PC que no tiene gran cosas y que solo la usan para hacer escritos o para hacer hojas de cálculo y escuchar música y checar sus mail, probablemente no pierden mucho al configurarla. Sin embargo he visto varios casos donde el usuario no sabe bien como respaldar lo que tiene y lo acaba perdiendo porque los técnicos no se hacen responsables de los respaldos, grave error.

El mejor ejemplo de esto es el correo electrónico, mucha gente no tiene la más mínima idea de cómo respaldar su Outlook y si no les hacen el respaldo de los correos y de la agenda, lo pierden todo. Por suerte el usuario no empresarial casi siempre usa correos web.

Otra cosas que se pierden son los accesos directos, los accesos rápidos, los fondos de escritorio, los add ons de los navegadores y de distintos programas. Todos los passwords y datos para llenar formularios que se han aprendido los navegadores.

En caso como el mío, son varias cosas que respaldar y restablecer, desde historiales, cookies, formularios, addons de mis navegadores, hasta la ubicación de mis carpertas de mis documendos en otro disco duro, los emoicons y winks del Messenger, las conversaciones, los sitios ftp, mis programas para manejar los passwords, la estructura de programas como Office, Visual Studio, Dreamweaver, la configuración de programas como el utorrent, las bases de datos de mis catálogos de libros y películas, los programas de administración y monitoreo de las maquinas y de la red, los permisos de usuarios, y el tener que reinstalar más de 80 programas.

Pero eso no es lo preocupante, la mayoría de esas cosas no afectan al usuario común y en el caso del usuario empresarial la mayoría está integrada en la imagen del disco. El problema real son las actualizaciones de seguridad y del antivirus.

No sólo me refiero a los service packs, que muchos ni tan siquiera hacen un slipstream de estos a la hora de instalarlos, ni idea tienen de cómo usar una herramienta como el nLite. Son las actualizaciones que salen mes como mes y los parches de los distintos programas lo que hacen que sea un riesgo meter una máquina a la red antes de que esté totalmente asegurada.

De acuerdo con un artículo reciente del SANS, (les recomiendo este artículo también con varias estadísticas sobre los ataques) el tiempo promedio que tarde en ser atacada una máquina que no tiene todas las actualizaciones de seguridad en internet es de 4 minutos. Son 4 minutos todo lo que se requiere para que la máquina se infecte y la red este comprometida.

Existen varias cosas que deben de hacer en un departamento de IT para asegurarse de que esto no suceda.

· Primero que nada actualicen las imágenes constantemente con los requisitos esenciales de los distintos departamentos de la empresa.

· Utilicen una solución antivirus empresarial de manera que tengan un servidor antivirus interno que le pueda pasar toda la configuración y las actualizaciones a su antivirus antes de que se conecte a internet. (solo conecten la máquina a la red local)

· Utilicen un buen programa de respaldos como Acronis True Image, Genie o KLS, todos estos programas respaldas Outlook, te dan la opción de regresar al estado inicial, hacer una recuperación en caso de desastre, respaldar configuración de aplicaciones como antivirus y messenger, respaldar a diferentes medios locales y de red y todo puede ser programado y respaldado constantemente desde un servidor central.

· Activen Windows Restore en sus maquinas. Y hagan un punto de restauración de manera constante.

· Bajes las actualizaciones más importantes de seguridad para profesionales de IT, las cuales las puedes guardar sin instalar, de manera tal que se las pueden incluir a las nuevas imágenes sin poner en riegos la máquina. Si es posible utilicen alguna solución como Windows Server Update Services (WSUS) que les ayuda a distribuir las actualizaciones de seguridad a través de su red.

· Hay que tener un firewall (cortafuegos), la mayoría de los routers ya traen uno integrado, pero si tienen los recursos para poner uno que sea exclusivo tienen la ventaja de poder configurar varias cosas.

· Utilicen herramientas de administración para poder asegurarse que las políticas de grupo y usuarios están bien implementadas en las máquinas y para poder detectar cualquier problema con sus máquinas. Microsoft tiene varias herramientas como el System Center Operations Manager, el ISA server, System Managemente Server y varios otros excelentes de proveedores externos.

Así que espero que la próxima vez que formateen una maquina tomen en cuenta el peligro en que ponen sus datos y su red si no la asegurar completamente antes de conectarla a internet. Les recomiendo agotar las opciones primero, escaneando con antivirus, antimalware y antirootkits, limpiando con programas como CCleaner y desinstalando todo lo que no sirve, o inclusive utilizando Windows Restore a un punto anterior, o jalando algún respaldo anterior, antes de tomar la decisión de formatear.

07 junio, 2008

Protegiendo tú sitio web

La mayoría de los ataques que escuchamos en las noticias, o vemos en las revistas de TI están relacionados con infiltraciones a través de los servidores web. Es el punto más fácil de atacar de la empresa pues está a la vista del mundo.

Se requiere de por lo menos 3 pasos para asegurar que tu sitio web no sea un blanco fácil:

1) Pon un firewall.- Hoy en día la mayoría de los routers traen un firewall integrado, aunque sean utilicen ese. Si pueden comprar sería mejor y mucho mejor si compran un web application firewall, como por ejemplo el Teros 100.

2) Esconde la información.- Gran parte del inicio de un ataque se debe a que hay suficiente información disponible sobre el servidor como para asegurar un ataque exitoso. Así que quiten la información personal del WHOIS, quiten los headers de las respuestas del servidor, no le pongan un nombre a su máquina que revele el sistema operativo y quiten los comentarios de los archivos de código en el servidor.

3) Limpia la información que recibes.- Lamentablemente los firewall normales solo dan seguridad a los puertos 80 y 443 de para acceso http y ssl, pero no pueden hacer mucho para los ataques que vienen por esas conexiones como inyecciones de SQL, modificación de las cookies, cambios a los campos en las formas y otros trucos similares. Por este motivo hay que autentificar a todos los usuarios para distinguir el tráfico legítimo del atacante, niega rotundamente los pedidos mal formados y limpia toda la información que llega por parte del usuario antes de pasarla a la base de datos o al sistema.

Para los dos últimos casos, y si es que usan el IIS, les recomiendo que revisen herramientas como ServerMask que modifica los headers, automáticamente reescribe cookies de sesión, esconde las IP internas, emula etiquetas de otros servidores, y otras cosas más.

Y nunca se olviden de estar monitoreando y respaldando constantemente su sitio. ;)

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