Uma revisão sobre as melhores técnicas de hacking na internet de 2018 – Parte 1

sexta-feira, 29 de março de 2019


Uma revisão sobre as melhores técnicas de hacking na internet de 2018 – Parte 1 imagem


Todo mundo gosta de usar a internet, não é mesmo? Para a segurança das aplicações web temos um framework muito conhecido, a OWASP 10, no qual um grupo de especialistas em segurança de várias organizações discutem e elegem os riscos mais importantes. A última revisão foi publicada em 2017.
Mesmo que essa lista reflita muito bem a realidade, o rápido ritmo de evolução das ameaças online faz com que a foto mostrada no framework se torne obsoleta em pouco tempo. Além disso, o ranking da OWASP não está focado em ataques concretos, mas em categorias, abstrações de diversos tipos de vulnerabilidades que possuem um ou vários elementos em comum.

Ainda em 2006, um especialista em segurança para web chamada Jeremiah Grossman iniciou, em parceria com outros pesquisadores, um ranking das melhores técnicas de ataques na web utilizadas ao longo do ano, era uma coleção de tudo o que se havia publicado ou apresentado em relação a esse tipo de falha. Não se falava aqui de CVEs concretos, mas sim de técnicas inovadores que podiam, em alguns casos, gerar famílias inteiras de vulnerabilidades (como o que aconteceu com o cross-site scripting).

Não podemos deixar a oportunidade de revisitar, com certa nostalgia, algumas das técnicas mais utilizadas naquele ano (se passaram somente 13, é verdade, mas isso equivale a um século na internet) como, por exemplo, a varredura de porta através do uso de JavaScript ou o “roubo” do histórico de navegação através da obtenção do atributo cor no CSS da página aplicado à uma lista de links. 

A iniciativa foi mantida ano após ano até 2015, quando saiu a última edição do ranking. Felizmente, a equipe da PortSwigger, criadora da ferramenta de auditoria Burp Suite, recuperou a lista de técnicas mais importantes do ano em 2017, reiniciando o registro histórico da lista. Com ela é possível se manter atualizado em relação ás técnicas de exploração usadas na web, assim como analisar comparativamente os dados para determinar tendências de evolução em segurança. 

Algumas semanas atrás a lista de técnicas de 2018 foi publicada. Vamos analisar cada uma das técnicas que entrou no ranking e fazer um breve comentário sobre suas características, vetores e riscos causados, começando pelo final:

10 - XS-Searching Google's bug tracker to find out vulnerable source code
Trata-se de uma técnica curiosa encontrada no gerenciador de bugs usado pelo Google no Chrome. Luan Herrera, que a encontrou, percebeu um curioso método de consultas booleanas que permite identificar elementos do sistema com base nas respostas dadas pelo gerenciador a consultas cegas.

A ferramenta, chamado de “Monorail”, oferece a possibilidade de exportar resultados de busca em alguns formatos como, por exemplo, CSV. Além disso, permite indicar campos na consulta como nome de colunas e, ainda mais curioso, repetir esses campos. Observando uma consulta de URL, podemos entender melhor:

hxxps://bugs.chromium.org/p/chromium/issues/csv?can=1&q=id:51337&colspec=ID+Summary+Summary+Summary

Isso faz com que o sistema crie um arquivo CSV com 3 cópias do relatório de um determinado bug. Como podemos imaginar, se esse bug existe, o sistema vai demorar para criar o arquivo em relação ao tempo que levaria para criar o mesmo arquivo em uma consulta que não retorna nenhum valor.

Podemos repetir a consulta usando outros parâmetros de busca que nos interessem, até encontrar elementos restritos como códigos fonte de bugs privados. A lógica booleana de consultas vai permitir afinar os parâmetros até encontrar algo valioso.

É verdade que o uso da técnica esta condicionado, em determinadas situações, a uma seção com privilégios adequados, o que o pesquisador tinha. Ainda assim, a mesma estratégia poderia ser aplicada a outros sistemas que revelem, com respostas a pesquisas, conteúdo restrito.

9 – Data exfiltration via Formula Injection
Esse ataque está focado em como injetar expressões nas fórmulas das planilhas do Google Sheets e do LibreOffice para conseguir informações e acesso a partes compartilhadas da planilha, além da leitura de arquivos aleatórios no sistema (no caso do LibreOffice). Esse tipo de ataque aproveita uma falha nas aplicações, quando se importa arquivos externos através de um link.

Suponhamos que, por exemplo, indiquemos em uma parte da planilha a importação de um arquivo CSV através do endereço “hxxp://pruebas.noexiste/archivo_que_no_existe.csv?v=", o que pode ser feito através das fórmulas “IMPORTFEED” ou “IMPORTHTML”. Ao utilizar a fórmula, usamos no endereço um parâmetro solto “v=”, se concatenamos certas colunas usando “CONCATENATE()” vamos gerar uma consulta a um servidor web que levará toda a informação no intervalo contido na função de concatenação, permitindo o vazamento de informações que poderiam ser sensíveis. O cenário de uso dessa técnica é restrito, já que demanda algumas permissões que facilitem a inserção de fórmulas em um documento, no entanto, se pode vislumbrar o poder de aplicação desse tipo de função que, devidamente combinada, podem dar acesso à dados sensíveis.

O ataque no LibreOffice possui um elemento potencialmente mais perigoso porque usando a mesma técnica se pode extrair arquivos do sistema. Para isso o usuário deveria abrir o arquivo e dar permissões de acesso à links externo, o que não é difícil de se conseguir. Os pesquisadores não comentam se a técnica funciona para a versão do Windows do LibreOffice, somente citam a versão para GNU/Linux.

8 - Prepare(): Introducing novel Exploitation Techniques in WordPress
Se trata de uma técnica de exploração exclusiva para a plataforma WordPress. É bastante curiosa porque, ainda que todos saibamos da importância de utilizar sequências separadas para a realização de consultas SQL em códigos, é imprescindível que a implementação subjacente também seja feita dessa forma. Robin Peraglia explica em sua apresentação como explorar esse tipo de sentença, fazendo inclusive o uso de objetos serializados em PHP, o que abre a porta para a execução arbitrária de códigos.

7 - Exploiting XXE with local DTD files
Uma variação da já conhecida técnica de injeção de entidade externas em XML, XXE. Nela, o autor Arseniy Sharoglazov, de forma engenhosa, aproveita documentos DTD locais, usados em sistemas para evadir políticas de firewall que impeçam o processador XML acessar domínios externos.

Por exemplo, ao explorar XXE é comum fazer referência a um DTD externo:
Apesar da possibilidade de se injetar entidades XML no documento, o processador não poderá acessar o domínio acima e provocará um erro ou resposta vazia. Na técnica, o pesquisador faz referência a uma DTD que pode existir no sistema operacional, por exemplo, o Windows:


Ou em algumas compilações Linux:

É interessante também a resposta ao tuíte publicado por ele com a técnica, que melhora o ataque inserindo uma DTD na requisição.

6 - It's A PHP Unserialization Vulnerability Jim, But Not As We Know It
Um ranking sem uma nova técnica de serialização não é um ranking. E se há uma técnica complexa de explorar (e de se evitar) é o curioso truque de “teletransporte” de objetos no melhor estilo Star Trek, que quando são devolvidos ao servidor de origem possuem um elemento malicioso: a serialização de objetos maliciosos.

Na pesquisa, nos apresentaram um conjunto de técnicas de serialização em PHP, além de uma extensa explicação de como utilizar phar:// que permite fazer referência a aplicações completas em PHP encapsuladas em um tipo único de arquivo. É um conceito similar ao jai do Java, mas ao estilo PHP e exploráveis em determinados cenários.

No segundo post da série, analisaremos as técnicas restantes do ranking.


David García
Innovación y laboratorio en ElevenPaths

Nenhum comentário:

Postar um comentário