quinta-feira, 6 de junho de 2013

Cross-Frame Scripting

O Cross-Frame Scripting (XFS) é um ataque client-side variante do ja famoso Cross-Site Scripting (XSS).
Em um ataque de XFS, o atacante explora um determinado cross-frame-scripting bug em um browser para acessar através dele dados
privados em um web-site secundário. O atacante induz o browser do usuário à navegar para a página que o atacante
controla; o atacante pode carregar uma página secundária em um frame HTML; executando um javascript o atacante pode
conseguir dados de websites carregados em um frame secundário.
Principais Fatores de Risco
Os modelos de segurança padrão em browsers permitem que javascripts de uma determinada página possa acessar o
conteúdo de outras páginas que sejam carregadas em diferentes janelas do browser ou frames – desde que as outras
páginas tenham sido carregadas a partir da mesma origem. Entretanto, um bug específico neste modelo de segurança existe
em browsers específicos, permitindo assim que um atacante acesse dados carregados a partir de páginas
carregadas de origens/domínios diferentes.
O browser mais conhecido por conter este tipo de bug é o IE (internet explorer), que permite vazamento de
keyboard events através de HTML framesets. Este bug pode permitir, por exemplo, que um atacante roube dados de login
que o usuário está digitando em um determinado site carregador a partir do Frame-set malicioso.
Exemplos: XFS Attack em um Internet Explorer
Para conseguirmos explorar o bug no IE que permite que os Keyboard Events sejam roubados a partir de um frameset,
um atacante deve criar uma página e hospedá-la em um servidor qualquer, em nosso exemplo ela estará hospedada em
badsite.com. Esta página será controlada pelo atacante, e deverá incluir por exemplo um frame mostrando uma
página de login do site goodsite.com.
O atacante pode esconder as bordas do frame e expandir o frame para cobrir a pagina toda, desta forma o usuário irá
realmente acreditar que está acessando goodsite.com. O atacante registra alguns javascripts no index de badsite.com que
irá obter todos os key events na página. Normalmente estes listeners serão notificados apenas pelos key
events da janela principal do site badsite.com – mas devido o bug existente no browser, este listener irá receber
todos os key events existentes no frame carregado com o login do goodsite.com.
Desta forma todas as teclas pressionadas no browser, dentro deste frame do goodsite.com, enquanto ele tenta logar-se,
poderá ser capturada e depois enviada para badsite.com
Gumblar – iFrames com vírus no seu site
Se é webmaster, provavelmente já ouviu falar acerca de ataques a sites que adicionam iframes em praticamente todos
os ficheiros do site. Já tivemos alguns clientes que se depararam com esta situação e vimos desta forma explicar
como é que é feito esse ataque e como o poderá evitar.
O ataque geralmente não é gerado através de vulnerabilidades dos sites ou dos servidores, mas sim através de uma
infecção de um vírus no computador do administrador/webmaster do site controlado por uma Botnet.
Reconhecido como Gumblar pela ScanSafe e por Troj/JSRedir-R pela Sophos, esta nova botnet apareceu pela primeira
vez em 2009 e é caracterizada por redireccionar as pesquisas dos utilizadores no Google e suspeita-se que a sua
origem sejam ficheiros PDF (Acrobat Reader) ou SWF Flash (Adobe Flash).
Os visitantes de um site infectado com o Gumblar serão redireccionados para um site alternativo com malware. Neste
momento a rede de sites infectados é já bastante grande, abrangendo milhões de sites infectados.
O site com malware irá forçar o browser do utilizador a abrir um PDF infectado que executa e explora uma
vulnerabilidade no Acrobat para ganhar acesso ao computador do utilizador.
O vírus vai encontrar clientes FTP como o FileZilla e o Dreamweaver e como estes guardam a password como
plain text, conseguem obter os dados de acesso FTP ao site do utilizador infectado.
Ao encontrar os dados de acesso FTP desse utilizador, a botnet vai conseguir aceder normalmente ao servidor
FTP usando uma autenticação normal de password e username e infectar os ficheiros do site com uma iframe.
Numa primeira fase vai fazer download de grandes partes do site e injectar código malicioso em ficheiros que
contenham a tag como ficheiros HTML, PHP, JavaScript, ASP e ASPx. O código inserido será um pequeno código
Javascript base64-encoded que irá infectar os computadores dos visitantes do site que executarem o código.
Poderão ser adicionadas iframes no código malicioso que vão conter links para sites maliciosos. O vírus irá também
tentar modificar ficheiros .htaccess e hosts e ainda criar ficheiros com o nome images.php em diretórios
chamadas “images”.
Deverá ter em conta que esta não é uma vulnerabilidade do servidor. É um ataque feito com autenticação por password.
O ataque não é feito a nível global no servidor, limitando-se aos ficheiros da home do utilizador em questão atacado.
Para evitar estes ataques deverá utilizar um cliente de FTP que guarde as passwords no seu computador de forma

segura, manter os plugins do seu browser sempre actualizados e ter um anti-virus instalado que lhe permita

detectar e bloquear a execução desta vírus.
Devido ao número de sites infectados, a propagação deste vírus é bastante rápida e já infectou milhares de
computadores. Ao ser infectado, o seu site será mais um a ajudar a distribuição deste vírus na botnet. Se alguma vez
detectar que o seu site foi atacado por este vírus, deverá entrar em contacto com o seu sysadmin para que
ele possa verificar nos logs do servidor informações relevantes.