Segurança da Informação

Ξ Deixe um comentário

6 Ataques com QR Code

publicado por Anderson Dadario

6 Ataques com QR CodeDesde os primórdios da Internet os crackers  tentam fazer com que usuários acessem links maliciosos por meio de diversas táticas, incluindo persuasão por e-mail aproveitando-se de atualidades como a doação para vítimas do terremoto no Japão ou solicitando confirmação de dados cadastrais, por cartas falsas enviadas via correio tirando proveito do nome de entidades como a Receita ou a Polícia, por SMS e qualquer outro meio que consiga conduzir o inocente usuário a morder a isca neste ataque chamado de Phishing. Embora todos esses meios envolvam algum tipo de persuasão, nenhum é mais simples (e provavelmente tão eficaz) quanto o Quick Response Code (QR Code). Você sabe por quê?

Antigamente, quando a educação digital era bem mais precária, a grande maioria não se preocupava com a existência vírus, roubo de informações e outras ameaças, o que os tornavam usuários altamente enganáveis. Bastava redigir um texto persuasivo o suficiente para conduzir o usuário a uma URL maliciosa como “Veja as fotos da festa em http://malicioso/fotos.exe”, por exemplo, ou “Precisamos da resposta orçamento anexo: (PDF) Orçamento.zip”, conforme um dos e-mails que recebo regularmente:

Hoje em dia o número de vítimas desse tipo de golpe diminuiu bastante, visto que os principais vetores de ataque foram saturados, estimulando crackers a procurarem outros meios, meios que os usuários não estão acostumados, meios onde a chance dos usuários serem enganados seja maior. E depois, quando os usuários tornarem-se alertas a este novo vetor, os crackers vão pesquisar e criar novos ou misturar os vários existentes. Essas etapas fazem parte de um ciclo.

Eis que surge o QR Code, um dos mais recentes vetores de ataque. Inventado pela Densoem 1994, uma subsidiária da Toyota no Japão. Esse código de barras bidimensional era utilizado para escanear componentes de veículos, mas tornou-se popular fora da indústria automotiva devido à velocidade de escaneamento e capacidade de armazenamento perto dos outros padrões.

Quanto à capacidade do QR Code, é importante ressaltar que ele é variável em função de três fatores:

  • Tipo de dado, que pode ser:
    • Numérico apenas
    • Alfanumérico
    • Binário
    • Kanji
  • Versão do QR Code (de 1 até 40)
  • Level de correção de erro
    • L – Baixa
    • M – Média
    • Q – Quartil
    • H – Alta

Comparando com a maior capacidade que pode ser alcançada até o momento com os símbolos 40-L (Versão 40 e correção de erros L), temos os seguintes valores segundo a Wikipedia:

Numérico apenasMax. 7,089 caracteres (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
AlfanuméricoMax. 4,296 caracteres(0–9, A–Z [maiúsculo apenas], espaço, $, %, *, +, -, ., /, 🙂
Binário/byteMax. 2,953 caracteres(8-bit bytes) (23624 bits)
Kanji/KanaMax. 1,817 caracteres

Ataques com QR Code

Agora com um pouco mais de bagagem a respeito do QR Code, vamos entender quais são os ataques baseados nele até o momento, a começar pelo famoso hacktivista The Jester (@th3j35t3r), que em 05 de Março de 2012 alterou sua foto de perfil do twitter para um QR Code sem dar satisfações.

1) Explorar navegador por QR Code

Curiosos utilizando-se de um aplicativo leitor de QR Code para dispositivo móvel, escanearam o QR Code e foram automaticamente (graças ao aplicativo) redirecionados a um website malicioso criado pelo hacktivista, onde tiveram informações extraídas de seus dispositivos e posteriormente divulgadas de maneira criptografada no MediaFire. Ilustração:

qrcode_tj-1

 

 

Observação: esse tipo de ataque basicamente utiliza-se dos mesmos conceitos da exploração das recentes qrcode_tj-2 0-day do Java e do Internet Explorer, que inclusive foi postado aqui no blog.

2) Explorar leitor de QR Code

Assim como é possível atacar humanos, é possível atacar os sistemas que farão uso do conteúdo desse QR Code.

Dependendo do conteúdo inserido no QR Code e da segurança do aplicativo que faz uso do conteúdo escaneado é possível causar dos mais diversos estragos ou fraudes. Imagine o seguinte cenário: você tem um carro e hoje é o dia de rodízio dele, mas você ainda assim resolve andar com ele e passa por um radar. O radar vai tirar uma foto da placa e armazenar em algum banco de dados o número da sua placa, a foto, o horário, etc. Até aqui tudo normal, mas vale lembrar que o radar supõe que a placa identificada é um valor confiável, ou seja, que não representa risco, mas e se um radar fotografasse a seguinte placa:

E não tratasse contra ataques de injeção de códigos, ao inserir no banco de dados o resultado seria a exclusão do banco de dados “TABLICE”, caso existisse. Por outro lado, você poderia alterar o “conteúdo de sua placa” para apontar para outra placa (fraude). Para relacionar esse cenário com os QR Codes, basta imaginar que antes de ler a placa, é necessário interpretar um QR Code.

Voltando agora para uma abordagem com dispositivos móveis, também é possível dominar o dispositivo da vítima assim como no primeiro ataque, caso o conteúdo do QR Code explore alguma vulnerabilidade como Buffer Overflow no aplicativo que interpreta o QR Code. Confira a ilustração:

3) Phishing por QR Code

Para os atacantes, uma das vantagens de se utilizar o QR Code para disparar o acesso a uma URL, é o fato do usuário não precisar digitar a URL e acabar muitas vezes prendendo-se apenas ao conteúdo exibido, tornando-se assim uma vítima em potencial para ataques de Phishing que levam a sites com aparência clonada.

Embora existam usuários mais atentos, os atacantes utilizam URLs parecidas com as do site clonado e, por conta da limitação do visor do celular, este ataque pode enganar até os mais precavidos sim. Para exemplificar, confira:

4) Alteração de QR Code (Física e Lógica)

Já parou para pensar nos QR Codes espalhados por aí? Esses dias eu mesmo vi um QR Code atrás de uma embalagem de shampoo e me veio em mente:  e se alguma empresa intermediária alterasse as embalagens de todos os shampoos modificando apenas o QR Code? Ninguém iria perceber até que alguém reclamasse, mas até lá muitos já teriam sido infectados.

Quem já frequentou o metrô de São Paulo deve ter visto na “TV Minuto” que algumas vezes é exibido um QR Code que cobre a tela toda. E se alguém manipulasse essa imagem?

Pensando um pouco alto, após uma invasão muitos crackers deixam trojans nos computadores invadidos, mas não estão tão longe de alterar os QR Codes também.

Quanto à alteração física, existe uma referência que a explica com maiores detalhes aqui http://wordpress.mrreid.org/2011/08/06/hacking-qr-codes/

5) Distribuir escaneador de QR Code infectado

Você tem certeza que o seu leitor de QR Code não está infectado? Capaz de alterar o valor dos QR Code escaneados para valores maliciosos, sites maliciosos, por exemplo. Na prática o software iria “fingir” que escaneou e depois lhe traria um valor malicioso. Entendo que essa prática seja menos provável perto das outras, mas não impossível. Pense a respeito!

6) Engenharia Social

Não se esqueça que os humanos geralmente são o elo mais fraco de um sistema, então instruí-los é sempre bom. Ainda mais quando estamos falando de ataques direcionados a alguma determinada empresa ou organização, onde a curiosidade os conduz a fazerem grandes besteiras. Para exemplificar, imagine se alguém criasse um site malicioso e colocasse a URL desse site em um QR Code, imprimisse e colasse em alguma parede isolada, mas que esteja em sob a vista dos funcionários. Certamente alguém iria escanear, e o pior, sem precisar cair em algum texto persuasivo como os demais métodos citamos no topo deste artigo. Contra engenharia social: orientação!

Conclusão

Sem dúvida como pudemos perceber o QR Code pode ser mais nocivo do que se imagina, mas nem todas as pessoas e sistemas sabem disso.

Para as pessoas, o ideal é nunca escanear QR Codes (uma leve paranóia). Mas for escanear, que seja de fontes seguras, com um escaneador confiável e desabilitar qualquer tipo de ação automática por parte do leitor. Quanto aos sistemas, validar se o dado veio conforme o esperado, limitando os caracteres em uma whitelist e checando se o tamanho do conteúdo também do veio conforme o esperado.

 

Artigo publicado originalmente em https://dadario.com.br/blog/6-ataques-com-qr-code/

Autor

Anderson Dadario é fundador do Gauntlet.io, serviço gratuito para execução de diversos scanners de segurança em aplicações web; Dadario possui larga experiência com testes de intrusão, análise de vulnerabilidades e integração de segurança no ciclo de desenvolvimento de software. Site: https://dadario.com.br

Anderson Dadario

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes