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.