domingo, 4 de mayo de 2008

Variables del Phishing - Vulnerabilidades de los clientes

El uso de sofisticados clientes Web para navegar, como cualquier software comercial, son a menudo vulnerables a ataques. Cuantas más funcionalidades incorpore el navegador, es más probable que exista un bug que pueda ser explotado por un atacante para acceder, u observar, información confidencial de la victima.
Mientras que los vendedores del software hacen grandes esfuerzos para parchear las vulnerabilidades, los usuarios particulares aplican rara vez dichas medidas. Aunado a la capacidad de instalar agregaciones (tales como flash, RealPlayer y otros medios embebidos) implican nuevas oportunidades de ataque.
Similar a las amenazas de los virus y gusanos, estas vulnerabilidades se pueden explotar de diversas maneras. Muchos de los ataques no se pueden bloquear por los antivirus pues son a menudo mucho más duros de detectar y por lo tanto de prevenir (P.e. la etapa en la cual funcionaría el antivirus, sería después del ataque y solamente si el atacante intenta instalar un troyano o un Keylogger conocido).
Ejemplo: URL del Microsoft Internet Explorer que funciona mal por la inserción de un carácter (en este caso 0x01 - representado como la secuencia escape %01) dentro de la sección del Username del Friendly Login URL, redirigiría a un usuario al servidor de los atacantes, pero los caracteres después de %01 no se exhibirían en el campo de direcciones del navegador. Por lo tanto este ataque se podía utilizar para ofuscar el URL de los atacantes.

Variables del Phishing - Esnifando los datos de la victima



Un viejo favorito entre la comunidad hacker y cada vez más popular entre los Phishers, es el uso de Key-loggers y screen-grabbers para observar datos confidenciales de clientes que se introducen en aplicaciones Web.



Esta información se recoge localmente y es recuperada por el atacante por los métodos siguientes:



• Flujo continuo de datos (p.e. se envían los datos tan pronto como se generen) usando un previo par de envió/recepción de datos. Para hacer esto, el atacante debe a menudo mantener una conexión abierta a la computadora de la victima.



• Recolección y procesamiento por lotes de la información para la subida al servidor del atacante. Esto se puede hacer con protocolos tales como ftp, HTTP, Smtp, etc.


• Recolección por puerta trasera por el atacante. El software malicioso permite que el atacante conecte remotamente con la máquina del cliente y coja los datos a medida que los precise.


1- Key-loggers: El propósito de los Keyloggers es observar y registrar toda tecla presionada por la victima, especialmente, cuando den datos de autentificación a las entidades objetivo. Con esta información en poder del Phisher puede, más adelante, utilizarla en su beneficio. Los Keyloggers pueden ser objetos pre-compilados que observan todas las teclas presionadas, sin importar el uso o el contexto (p.e. podrían ser utilizados para observar al cliente que usaba un procesador de texto para redactar un documento), o pueden ser escritos en código scripting del navegador para observar las teclas pulsadas según el contexto del navegador Web.

2- Screen-grabbers: Algunos ataques sofisticados de Phishing hacen uso de código diseñado para tomar un “pantallazo” del navegador para visualizar los datos suministrados a la aplicación Web. Esta funcionalidad se utiliza para superar algunas de las medidas seguras que están incorporando las entidades bancarias para prevenir el uso de Keyloggers. En muchos casos, solamente se requiere una ventana relevante y el software del Phisher capturará solamente estos datos, así las transferencias de subidas serán más pequeñas y rápidas.




Variables del Phishing - Ataque oculto

Más allá de las técnicas de la ofuscación ya mostradas, un phisher puede hacer uso del HTML, DHTML y de otros códigos programables que pueden interpretar los navegadores de Internet de los clientes y manipular la información visible en ellos. En muchos casos el atacante utilizará estas técnicas para falsear el contenido (particularmente la fuente del contenido de la página) simulando ser del sitio verdadero

Los vectores más comunes incluyen:
1. Marcos ocultos: Los marcos es un método popular de ocultar el ataque debido a la uniformidad de los navegadores y su fácil codificación. Por ejemplo, se definen dos marcos. El primer marco contiene la información legítima del sitio URL, mientras que el segundo marco - ocupando el 0% del interfaz del browser - referencia el contenido elegido por los Phishers. La página enlazada dentro del marco oculto se puede utilizar para llevar el contenido adicional (p.e. contenido de eliminación de la página o substitución gráfica), recibiendo la información confidencial tal como SessionID o algo más nefasto; por ejemplo ejecutar código de grabación de la pantalla y grabación de pulsaciones de teclado de los códigos secretos. Este ataque se apoya:

· Ocultar el origen del atacante. Solamente la URL del marco principal será visible desde el interfaz del navegador a menos que el usuario siga un enlace con el atributo destino a “_top”.

· Proporcionan una falsa seguridad HTTPS (que fuerza el browser a exhibir un candado o una llave similar a sitio seguro) para el contenido de los sitios, mientras que todavía se usa el HTTP inseguro para el de la página oculta y sus operaciones.

· Ocultando código HTML a la victima. Los clientes no podrán ver el código oculto de las páginas con las funciones estándares ver origen de la fuente.

· Carga imágenes y contenido HTML en segundo plano para su uso maliciosa más tarde.
· Las propiedades de la página solo mostraran en la mayoría de navegadores los datos del marco visible.

· Almacenar e implementar operaciones en segundo plano que informarán al atacante de los movimientos de la victima en el sitio real.

· Combinado con programación del navegador, es posible variar la barra de herramientas del mismo; incluyendo la información de URL y cabeceras de página.

2. Anulando contenido de páginas: Existen varios métodos para eliminar el contenido de una página. Uno de los métodos más populares es insertar contenido falso dentro de una página es utilizar la función de DHTML - DIV. La función del DIV permite que un atacante ponga el contenido en un “contenedor virtual”, dando una posición y un tamaño absolutos con el método del STYLE, puede ser colocado para ocultar o reemplazar (posicionándolo encima) el contenido subyacente. Este contenido malévolo se puede enviar con una URL larga o refiriéndose a un script almacenado. Este método permite que un atacante construya una página completa (incluyendo gráficos y los elementos de auxiliares de código script) encima de la página verdadera.

3. Substitución gráfica: Mientras que es posible sobreescribir el contenido de la página fácilmente con múltiples métodos, un problema para los Phishers es el de las pistas visuales específicas del navegador a un ataque. Estas pistas incluyen la URL presentado dentro del campo de direcciones, el candado seguro que representaba un HTTPS de conexión cifrada, y el origen de la página. Un método común usado para vencer estas pistas visuales está con el uso de los scripting del navegador (tales como Javascript, VBScript y Java) para posicionar gráficos especialmente creados con la información falsa. Un ejemplo: el atacante utiliza una barra de direcciones y un candado seguro falsos cuidadosamente colocados en la zona para ocultar la información verdadera. Mientras que el Phisher debe utilizar gráficos adecuados al software del navegador, es trivial para realizar esta falsedad de Web que los atacantes determinen el tipo del navegador y la versión exacta con simples consultas de código. Así el atacante puede preparar las imágenes para una gama de navegadores usuales y preparar su página para que se utilicen las imágenes apropiadas.
Es importante observar que los ataques de Phishing en el pasado han combinado la substitución gráfica con código scripting adicional para falsificar otra funcionalidad del browser. Los ejemplos incluyen:
· Implementando funcionalidad click-derecho y menú acceso.

· Presentando falsos pop-ups igual que lo haría el verdadero navegador o la Aplicación de la Web

· Exhibiendo falsos certificados SSL cuando visualizamos las propiedades de seguridad, a través del uso de imágenes

· Usando simples comandos embebidos de HTML, un atacante puede secuestrar el escritorio del cliente entero y construir un interfaz falso para capturar y para manipular lo que ve el cliente. Se hace esto usando los comandos window.createPopup() y popup.show().

Variables del Phishing - Preset Session

Dado que los protocolos HTTP y HTTPS son protocolos desautenticados, las aplicaciones Web deben utilizar métodos de seguimiento de los usuarios a través de sus páginas y controlar también el acceso a recursos que requieran la autenticación. La manera más común de control es utilizar identificadores de Sesión (SessionID). Estos SessionID se pueden aplicar a través de cookies, campos ocultos o de los campos que figuran dentro de las URL de la página
Muchas aplicaciones Web implementan sistemas débiles de control de identificación de Sesión y permitirán a los clientes de conexión definir la SessionID. La aplicación de Web chequeara al usuario que utiliza SessionID, pero le requerirá generalmente al usuario a identificarse (por ejemplo. información de identificación por un formulario de entrada) antes de conseguir acceso al contenido "restringido" de la página.
En esta clase de ataque el mensaje de phishing contiene una conexión Web al servidor verdadero de la aplicación, pero contiene también un campo predefinido de SessionID. El sistema de atacadores sondea constantemente al servidor de la aplicación para una página restringida (por ejemplo. una página de banca electrónica que permita las transferencias de fondos) utilizando el SessionID. Hasta que un usuario válido autentique contra esta SessionID, el atacador recibirá los errores del servidor Web (por ejemplo. 404 file not found, 302 server redirect, etc.).
El phisher debe esperar hasta que un receptor del mensaje siga el enlace y se autentifique la SessionID. Una vez autentificado, el servidor de la aplicación permitirá cualquier conexión que utiliza el SessionID autorizado a conseguir el acceso al contenido restringido. Por lo tanto, el atacador puede utilizar una SessionID fija para conseguir el acceso a una página restringida para llevar su ataque.

lunes, 17 de marzo de 2008

Variables del Phishing. • Cross-Site scripting

El ataque “Cross-Site scripting “(comúnmente referido a CSS o XSS) esta basado en la explotación de vulnerabilidades del sistema de validación de HTML incrustado. El problema es que normalmente no se valida correctamente. Esta vulnerabilidad puede estar presente de forma directa (foros, mensajes de error) o indirecta (redirecciones, framesets). Cada una se trata de forma diferente. En general, estas técnicas de CSS son el resultado de un desarrollo pobre de aplicaciones WEB.
Mientras hay numerosos vectores para el llevar al cabo un ataque de CSS, los Phishers pueden usar ataques de URL formateadas. Los formatos típicos para la inyección de CSS en URL válido incluyen:

i. La sustitución integra del protocolo de transferencia de hipertexto tal como:
“http://mibanco.com/ebanking?URL=http://sitio.com/fakepage.htm”

ii. Inline conteniendo código embebido, tal como:
“http://mibanco.com/ebanking?page=1&client=< script>sitiospoof...”

iii. Forzar la página para cargar código externo, tal como:
“http://mibanco.com/ebanking?page=1&response=malsitio.com%21evilcode.js&go=2”
Por ejemplo: se recibe en un correo electrónico de un Phishers la siguiente URL:
“http://mibanco.com/ebanking?URL=http://sitio.com//fakepage.htm”
Mientras el cliente es dirigido verdaderamente y es conectado a la aplicación verdadera del Web de MiBanco, debido a la mala codificación de la aplicación del banco, el componente de ebanking aceptará una URL arbitraria para la inserción del contenido de esa localización. Una vez insertado el código spoof dentro de la página, que podría ser el formulario de autenticación, el phisher ha logrado controlar una página dentro de un servidor externo (http://sitio.com//fakepage.htm).
Desgraciadamente, al igual que con la mayoría de las vulnerabilidades de CSS, el cliente no tiene manera de autentificar dicha página. Mientras que en el ejemplo la URL puede parecer obvia, el atacante la podría ofuscar fácilmente utilizando las técnicas explicadas anteriormente. Por ejemplo, http://stio.com/fakepage.htm puede ser:
“http%3A%2F%2F3515261219%C0%AEfakepage%2Ehtm”

Variables del Phishing. Ofuscación de URL

Muchos ataques de Phishing convencen al receptor del mensaje a seguir un hiperenlace (URL) al servidor del atacante, sin que se den cuenta de que han sido “duped” (ofuscados). Desgraciadamente los phishers tienen acceso a un arsenal cada vez más grande de métodos para ofuscar el destino final de la Web. Los métodos más comunes de la ofuscación de URL incluyen:
1. Dominios de nombre erróneos: Es Uno de los métodos de ofuscación más trivial es a través del registro y el uso determinados nombres de dominio maliciosos. Considere una entidad MiBanco con el dominio registrado “mibanco.com” y la Web Site asociada para transacciones “http://privado.mibanco.com”. El Phisher podría establecer un servidor que utilizará cualquiera de los nombres siguientes tendiendo a ofuscar el servidor verdadero del destino:

• http://privado.mibanco.com.tk
• http://mibanco.privado.com
• http://privado.mibanca.com o aún http://privado.mibánco.com
• http://privado.mibanco.sitiospoof.com

Es importante notar que los registradores de dominio están internacionalizados sus servicios, es posible registrar los nombres del dominio en otros idiomas y sus juegos de caracteres específicos. Por ejemplo, la cirílica "O" parece idéntica al estándar ASCII "O" pero se puede utilizar para propósitos diferentes de registro de dominio – tal como una compañía que registró Microsoft.com en Rusia hace algunos años. Finalmente, resaltar que aún el juego de caracteres estándar ASCII permite ambigüedades tales como la mayúscula “I" y la minúsculas "L". (I Vs l en arial)

2. Friendly login de URL’s: Muchas implementaciones comunes del navegador de Internet tienen en cuenta URL’s complejos que puede incluir información de autenticación tal como un nombre de login y la contraseña. En general el formato es URL: //usuario:contraseña@hostname/path. El Phishers puede sustituir los campos del nombre de usuario y la contraseña con detalles asociados a la entidad del objetivo. Por ejemplo el URL siguiente http://mibanco.com:ebanking@sitiospoof.com/phishing/fakepage.htm pone el nombre de usuario = mibanco.com, la contraseña = ebanking y el hostname de destino = sitiospoof.com. Esta URL de entrada amistosa puede engañar exitosamente a muchos clientes en el pensamiento que ellos visitan realmente la página legítima de MiBanco. A causa de su éxito, en muchas versiones actuales de navegadores ha dejado de funcionar este método de ofuscación.

3. Acortación de la URL por terceros: Debido a la longitud y la complejidad de muchas URL’s de Web, combinado con la manera que la URL puede ser representada y visualizada (p.e. los espacios extra y saltos de línea en la URL), servicios de terceros han aparecido ofreciendo servicios gratuitos designados a proveer de URL’s más cortos. Una combinación de la ingeniería social con una URL deliberadamente rota, larga o inexacta es usado por los Phishers para ofuscar el destino verdadero. Los servicios gratuitos más populares como http://smallurl.com y http://tinyurl.com.
Por ejemplo:

4. Ofuscación de URL: Para asegurar el apoyo a los idiomas locales en el software del Internet tal como navegadores de Internet y Clientes de correo electrónico, la mayoría de los software soportan alternativas de sistemas de codificación. Es una práctica trivial para un Phisher el ofuscar la verdadera naturaleza de una URL suministrada que utiliza una (o una combinación) de estos esquemas de codificación. Estos esquemas de codificación tienden a ser soportados por la mayoría de los navegadores de Internet, y pueden ser interpretados de maneras diferentes por Servidores Web y sus aplicaciones más comunes.
Los esquemas típicos de codificación:
· Escape encoding: Escape-Codificar, o se refiere a veces a tanto por ciento-codificado, es el método aceptado de representar los caracteres dentro de una URL que puede necesitar una sintaxis especial para ser correctamente interpretada. Esto se logra codificando el carácter especial para ser interpretado con una sucesión de otros tres caracteres. Este trío consiste en el carácter del porcentaje "%" seguido por dos dígitos hexadecimales que representan el código de octeto del carácter original. Por ejemplo, el juego de caracteres EEUU-ASCII representa un espacio con el código de octeto 32, o hexadecimal 20. Así su representación de URL-encoded es “% 20”.

· Unicode encoding: Unicode encoding es un método de referenciar y almacenar los caracteres con múltiples bytes proporcionando un número referencial para cada carácter no propio del idioma ni de la plataforma. Se diseña para permitir un Juego de caracteres Universal (UCS) y abarcar la mayor parte de los sistemas de escritura del mundo. Muchos estándares modernos de comunicación (tal como XML, Java, LDAP, el Javascript, WML, etc.), Sistemas operativos y clientes/servidores Web utilizan los valores de Unicode. Unicode (UCS-2 ISO 10646) es un sistema de codificación de caracteres de 16 bits que contiene todos los caracteres (216 = 65.536 caracteres diferentes) de uso corriente en los idiomas más importantes. Las plataformas de Microsoft Windows codifican los caracteres de Unicode en el formato siguiente - %u0000 – por ejemplo %u0020 representa un espacio, mientras %u01FC representa Ǽ y %u221E es ∞.

· Inapropiado UTF-8 encoding: Uno de la mayoría de los formatos comúnmente utilizados, Unicode UTF-8, tiene la característica de preservar la gama repleta de los caracteres EEUU-ASCII. Esta gran flexibilidad proporciona muchas oportunidades para disfrazar los caracteres estándar en grandes secuencias de escape-encoded. Por ejemplo, el punto "." puede ser representado como %2E, o %C0%AE, o %E0%80%AE, o %F0%80%80%AE, o %F8%80%80%80%AE, o aún %FX%80%80%80%80%AE.

· Codificación múltiple: Varias guías y RFC explican con cuidado el método de decodificar los caracteres de escape-encoded e insinúa los peligros asociados con decodificar muchas veces y en múltiples capas de una aplicación. Sin embargo, muchas aplicaciones todavía analizan sintácticamente e inexacta muchas veces los datos escape-encoded. Consecuentemente, los Phishers pueden ofuscar aún más la información de URL codificando muchas veces los caracteres (y de formas diferentes). Por ejemplo, la barra inversa "\" se puede codificar como %25 originalmente, pero podría ser extendido a: %255C, o %35C, o %%35%63, o %25%35%63, etc.

5. Ofuscación del nombre del Servidor: La mayoría de los usuarios de Internet están familiarizados con los sitios y servicios por el nombre calificado del dominio, tal como www.mibanco.com. Un cliente de navegación por Internet necesita, para establecer la comunicación, que esta dirección sea resuelta a una dirección de IP, tal como 209.134.161.35 para llegar al Web Site de www.mibanco.com. Esta resolución de la dirección de IP se logra por servidores de nombre de dominio (DNS). Un Phisher puede utilizar la representación de la dirección de IP como parte de una URL para ofuscar el servidor y evitar posibles sistemas de filtro de contenido, y esconder el destino final. P.e. la URL: http://mibanco.com:ebanking@sitio.com/login.htm podría ser ofuscada como: http://mibanco.com:ebanking@210.134.161.35/login.htm. Mientras algunas victimas conocen la representación clásica de punteó-decimal de direcciones de IP (000.000.000.000), la mayoría de ellas no están familiarizadas con otras representaciones posibles. Utilizar estas otras representaciones de IP dentro de un URL, permiten oscurecer aún más el servidor de destino de una inspección regular.
Dependiendo de la aplicación que interpreta una dirección de IP, es posible que haya una variedad de caminos para codificar la dirección de otra manera que el formato clásico de punteó-decimal. Los formatos alternativos incluyen:

Dword: Significa doble palabra porque consiste esencialmente de dos "palabras" binarias de de 16 bits; pero se expresa en decimal (base 10),
Octal: La dirección es expresada en base 8
Hexadecimal: La dirección es expresada en base 16.

Estos formatos alternativos se explican mejor viendo un ejemplo.
Considere el URL http://www.sitio.com/, resolviéndose a 210.134.161.35. Esto se puede interpretar como:

decimal: http://210.134.161.35/
Dword: http: //3532038435/
Octal: http://0322.0206.0241.0043/
Hexadecimal: http://0xD2.0x86.0xA1.0x23/o aún http: //0xD286A123/
Mezclando formatos: http://0322.0x86.161.0043/).

Variables del Phishing. Man in the middle

Es una de las variables más exitosas para obtener el control de la información y los recursos. El atacante se sitúa entre la victima y la aplicación Web e intercepta todas las comunicaciones entre ellos. Desde este punto puede observar y recolectar todas las transacciones
Tiene éxito tanto para comunicaciones HTTP como HTTPS. La victima conecta con el phisher como si fuera el sitio real, y este hace conexiones simultáneas al sitio real. EL phisher actúa como Proxy en tiempo real.
En el caso de HTTPS, como en SSL la conexión se establece entre la victima y el Proxy atacante, el que puede almacenar toda la información desencriptada, mientras que el Proxy atacante crea su propia conexión SSL con el servidor real.
Para que el ataque man-in-the middle se realice el atacante debe poder dirigir a la victima a su servidor proxy en vez del servidor real. Esto lo puede realizar por varios métodos:

1. Proxies transparentes: Situado en el mismo segmento de la red o localizado en la ruta al servidor real (p.e. Gateway corporativo o ISP intermedio), un Proxy transparente pueden interceptar todos los datos que se negocian por HTTP y HTTPS. No se requiere cambios de configuración en la victima.

2. Envenenamiento Cache DNS: Se utiliza para interrumpir el enrutamiento normal inyectando direcciones IP falsas para los nombres de dominio. Por ejemplo, modificando la tabla de DNS del firewall de Red para que todo el tráfico destinado a la entidad bancaria se resuelva a la dirección IP del servidor atacante.

3. Ofuscación de URL: Utilizando las técnicas de la ofuscación de URL, el atacante engaña al cliente a conectar a su servidor Proxy en vez del servidor verdadero. Por ejemplo, el cliente puede enlazar a una conexión a http://www.mibanco.com.tk/ en vez de http://www.mibanco.com/

4. Configuración del Proxy del Cliente de navegación: Configurando las opciones del navegador y parametrizando una conexión Proxy, el atacante fuerza la navegación a través de dicho Proxy. Es un método no transparente y la victima puede percatarse revisando su configuración e identificar el Proxy agresor. Muchas veces los cambios son realizados a la recepción de un mensaje de Phishing.
Web Statistics