• CSP: Impedindo Ataques Cross-Site Scripting e Click-Jacking

    As Políticas de Segurança de Conteúdo são projetadas com a intenção de evitar ataques cross-site scripting (XSS) e outros tipos de ataque como por exemplo, o click-jacking, que tem se tornado cada vez mais comuns. Mozilla Firefox 4 é o primeiro navegador a suportar este novo conceito e os anseios são cada vez maiores, para que mais navegadores possam também fazer essa adoção.

    A modalidade de ataque Cross-site scripting (XSS) tornou-se uma verdadeira praga da Internet, e até mesmo os bancos não conseguiram plenamente enfrentar esse problema em seus web sites. No entanto, os ataques de XSS em navegadores poderão em breve ser uma coisa do passado, pelo menos para os usuários do Firefox: a última versão do navegador da Mozilla suporta o conceito de Content Security Policy (CSP). Isso permite que os administradores da Web possam informar aos usuários quais são os domínios para serem aceitos como fontes confiáveis ​​de código JavaScript, através do envio do X-Content-Security-Policy HTTP header.

    Quando o CSP for ativado, o código JavaScript embutido em documentos HTML não será mais executado por padrão. Se o código já tiver sido incluído no documento HTML original ou injetado durante um ataque, não fará nenhuma diferença - o código será simplesmente ignorado pelo navegador. Além disso, o CSP irá também impedir ataques XSS típicos, que utilizam URLs especialmente criadas com JavaScript embutido.

    Como alternativa, no entanto, o documento HTML a ser proferido será capaz de recuperar o código JavaScript a partir de fontes autorizadas na forma de arquivos js. Aqueles que desejam implementar o CSP será, portanto, necessário fazer uma quantidade considerável de reestruturação nas páginas da web. nesse contexto, o serviço de microblogging Twitter já ganhou experiência inicial com a nova opção em seu domínio mobile.twitter.com.

    Ao adaptar e testar seu código, os desenvolvedores do Twitter descobriram que, uma vez que eles tentarem escrever o código em documentos HTML, os alertas CSP foram desencadeados por vários plug-ins do Firefox. Os desenvolvedores ficaram surpresos ao descobrir que muitos provedores parecem injetar JavaScript em documentos HTML no carregamento da página, por exemplo, a fim de apontar as marcas de imagem para os seus servidores de cache.

    De um modo geral, os desenvolvedores do Twitter disseram que eles estão felizes com a introdução do CSP na mobile.twitter.com, e que eventualmente, planejam introduzir a medida de proteção em sua plataforma inteira.


    Sistemas de Multi-Proteção:


    JavaScript não só pode ser incorporado em páginas HTML, que por vezes pode também esconder imagens especialmente criadas e outros objetos. Por exemplo, o Internet Explorer (IE) costumava usar MIME sniffing para detectar e em seguida, executar código contido em bitmaps. CSP torna-se, consequentemente, não limitado ao carregamento de código de script, mas também pode ser estendido para incluir imagens, style sheets, frames, fontes e outros objetos. Convenientemente, isso permite que o CSP possa resolver de forma parcial os problemas relacionados com ataques click-jacking.

    Além do Firefox, Thunderbird 3.3 e Firefox 2.1 planejam suportar CSP. Agora, a única coisa que falta é que mais browsers e operadores de servidores web adotem o novo conceito em termos de segurança.


    Links de Interesse:

    - CSP Thwarting Cross-Site Scripting (XSS) and Click-Jacking