sábado, 15 de septiembre de 2007

Ad-jacking es una tecnica donde los atacantes utilizan vulnerabilidades XSS avanzadas, para hijackear los anuncios del un sitio web afectado. Esta técnica fue adoptada por David Kierznowski del grupo GNUCITIZEN.

Como lo XSS estan siempre presentes en el tema de conversacion de profesionales de seguridad, y su importancia en cuanto a los privilegios se pueden conseguir esta limitada al robo de cookies o secuestro de credenciales. En este post se expone la forma en como un gusano podria armarse con un ad-jacking payload para vulnerar la web 2.0 y promover su distribucion.

El sistema tradicional del Ad-jacking fue llamado "fraude por click", Este sistema explotaba PPC (pago por click) que se realizaba de algunas maneras obvias. Este tipo de aprovechamiento, ha quedado en el pasado ya que los administradores de las empresas de publicidad tienen un sin fin de técnicas y de ecuaciones maravillosas para detectar y para castigar a delincuentes del fraude por click.

Los esquemas actuales sobre los que se categorizan las empresas de anuncios publicitarios generalmente son las siguientes.

  • Pago por click (PPC)
  • Pago por mil impresiones (PPM)
  • Pago por accion (PA)
  • Programas del afiliado
Es posible explotar PPC y el PPM, pero esto llamaria la atencion demasiado por el proveedor de los anuncios y tomaria rapidamente medidas al respecto, y como ya se ha dicho probablemente el sistema PPC sea dejado de utilizar; sin embargo, PA por otra parte es más sutil, y puedo ver a atacantes que tengan estos propositos.

El peligro de el Ad-jacking es que requiere poca o ningun tipo de intervencion del usuario desde el punto de vista de los atacantes. Debe quedar claro que en este post se especifica el uso del XSS para realizar esto, es posible utilizar cualquier tipo de puerta trasera en plugins del navegador o greasemonkey script, a un spray head o buffer overflows payload podrian ser utilizados. Imaginense las posibilidades de un gusano que utilice Ad-jacking para insertar los anuncios de los atacantes en una pagina web, que reescribe las identificaciones del sitio afiliado. El potencial peligro aqui es evidente, sobre todo al ser del lado del cliente, es mas dificil de detectar.

Los ataques del futuro pueden utilizar la Web 2.0 y XSS para la propagacion de gusanos. La manera más obvia de hacer esto está vía Ad-jack, un término que acuñé para una categoría de los ataques que utilizan una combinación de los servicios de XSS, de JSON y del fraude por click. Como mencioné antes, el Ad-jack es como fraude por click en periodos.

Discutiré un potencial escenario para el Ad-jacking así como un PoC del Javascript payload.

Verás muchos sistemas de afiliados usando enlaces en HTML alrededor de un elemento IMG. Por ejemplo:

<a href="http://www.the-affiliate/?afl=97781">
<img src="http://www.the-affiliate/images/banner7.gif"
alt="" border="0"></a>
Como parte de nuestro gusano XSS, porque de nuestra prueba de concepto el atacante iniciaria su propia cuenta de afiliado y se le otorga de afiliado el número 12345. Nuestro acoplamiento del atacante PA parecería esto:

http://www.the-affiliate/?afl=12345
Ahora para nuestro pequeño XSS JavaScript Payload que cambiara la identificacion del afiliado de las páginas (' ′ 97781) a los atacantes (' ′ 12345). Atravez de estos medios si el cliente visita el enlace y realiza alguna compra el atacante recibira los beneficios.

El código es simple, asi cada acoplamiento del DOM y lo analizamos para nuestro URL del afiliado. Una vez que lo encontremos, lo substituimos simplemente por los atacantes:

var x = document.getElementsByTagName('a');
for (i=0;i<x.length-1;i++) {
if (x[i].href.match(/http://www.the-affiliate/?afl/)) {
x[i].href = 'http://http://www.the-affiliate/?afl=12345/?aff=test';
}
}

La razón detrás de esto es que el webmaster ha optimizado muy probablemente ya el Web site para tener la exhibición del anuncio en el mejor lugar para aumentar las ventas; para el webmaster es menos probable conseguir un Ad-jacking sospechoso del ataque, si una red de anuncios existentes es el anuncio jackeado.

Realmente debemos centrarnos en PPC y PPM (a veces afiliados). ¿Por qué? porque su garantiza por hit, y el atacante pueden garantizar hits.

Ahora ya sabes por donde va todo esto; para los que no han entendido, discutiremos debilidades en los esquemas actuales de anuncios y cómo pueden ser explotados. Las ideas discutidas son nuevos medios para utilizar el XSS, porque no he visto ningún artículo sobre el Internet que realmente trate a estos temas.

Los asuntos cubiertos se limitan:

  • popups
  • redireccionadores
  • iframes
  • imagenes
popups

¡Ad-jacking popups! ¿Por qué los webmasters lo hicieron? Ahora que entendemos PPC y el PPM la razón llega a ser obvia.

La prueba del código que una ventana nueva (popup) con dimensiones fijadas por nosotros. Esto puede llegar a ser más difícil de hacer debido a que la gran mayoria de navegadores tienen implementadas acciones frente a los popups, pero usar este metodo, suele ser el preferido.

window.open('http://myadspaymentsite/url=sponsorlink&ref=12345',
'window name','attribute1,attribute2')

IFrames

Un IFrame es básicamente una nueva Web page que se carga en una tabla en tu browser actual. Esto es realmente de gran alcance para exhibir el contenido de otros dominios, desafortunadamente está se puede también utilizar como herramienta para implementar el Ad-jacking.

El código siguiente cargará encima de un iframe invisible a nuestra página patrocinada. La cosa agradable aquí
es eso que nuestro atacante malvado ahora está haciendo el dinero de tu visita sin saber del usuario. mejor para el usuario, porque él derrota totalmente el punto del tener anuncios.

<IFRAME NAME="iframe" SRC="http://myadspaymentsite/url=sponsorlink&ref=12345"
SCROLLING="AUTO" WIDTH="0px" HIEGHT="0px" FRAMEBORDER="0"
ALLOWTRANSPARENCY="yes">Your Browser Does not Support IFrames. Please
View the Site in a Different Browser to View this frame.
</IFRAME>

Redireccionadores

El ejemplo siguiente vuelve a dirigir simplemente al usuario a una página de anuncios sobre la representación de una página:

  Javascript: document.location = 'http://myadspaymentsite/url=sponsorlink&ref=12345';

Imágenes ocultadas

Éste tiene que ser uno de los métodos más eficaces mencionados hasta el momento. Las imágenes permiten el acceso del XSS, pero son también invisibles en la mayoría de los casos por defecto; un Web page recupera algo entonces una imagen, y por lo tanto no se exhibe ningún resultado siempre. Esta sintaxis es simple e inutilizable:

""/> del alt= de " http://myadspaymentsite/url=sponsorlink&ref=12345 " del src= del <img

Resumen

Este papee miraba maneras de encajar código malévolo en las páginas para falsificar credenciales y los usos del anuncio del scam. Seguro Google y muchos otros saben todo sobre estos scams y los tienen muy presente en analisis de deteccion de anomalias en entradas completas; sin embargo, es curioso apenas cómo es eficaz están en la detección de estos tipos de anuncios cuando utilizamos las dos R, RAMDOM y REALISTA.

Esto también es debido a estas debilidades que el tipo anuncios de PPC y del PPM sea substituido en el futuro, Google y muchos otros se están moviendo más hacia PA como ventas y los exámenes son más difíciles al scam.

EL XSS se puede utilizar para provocar otro tipo de errores mas especificos y no solo para mostrar una caja de alerta simple y se debe tratar con el respeto que merece.


Referencias y fuentes:

0 comentarios :