QR-Code Hijacking
Passeggiando in città è sempre più facile imbattersi in un Qr-Code: il cartellone pubblicitario in metropolitana, l’annuncio stampa sulla rivista, la quarta di copertina di un libro. Secondo un articolo l’uso (lo scan) da parte degli utenti è cresciuto del 400% nel primo semestre del 2012. In effetti è un metodo semplice per mandare una persona su un sito, far scaricare un’app, rimandare a una pagina Facebook. Ma possiamo “scippare” un Qr-Code? Assolutamente sì: l’hijacking di un Qr-Code è semplice e un attaccante potrebbe approfittarne.
Hijacking
L’hijacking è una tipologia di attacco informatica piuttosto nota che potremmo tradurre con “dirottamento”: con opportune modifiche ti porto (o ti faccio andare) dove voglio. Esistono declinazioni specifiche probabilmente più note come il clickhijacking (l’utente clicca su un elemento del sito ma il suo click viene dirottato su qualcos’altro) o il likehijacking (il nostro click su un sito ci fa diventare fan di una pagina, ovviamente a nostra insaputa: è una variante specifica del clickhijacking): ribadisco, nulla di particolarmente nuovo (così come il qr code hijacking).
Fare hijacking di un Qr code
Che cos’è un Qr-Code? Un semplice codice a barre bidimensionale che nella maggior parte dei casi indirizza verso un URL (oppure mostra un testo, un numero di telefono, una vcard, l’accesso a una wifi: consideriamo solo il caso url). Una persona inquadra il codice e arriva su una landing page (se è una persona fortunata la pagina sarà ottimizzata per la fruizione da smartphone).
Tuttavia è uno strumento con alcune vulnerabilità che possono essere sfruttate per vari scopi (anche malevoli).
Criptico
Innanzitutto un qr-code non è leggibile e non è esplicito: nessuno di noi è in grado di capire il contenuto del codice senza l’ausilio di un’applicazione dedicata. Dove punta questo Qr-Code? Verso un sito sicuro o verso uno compromesso?
Fortunatamente in questo caso punta verso questo sito (niente di malevolo)
Economico e semplice
Creare un qr-code non richiede particolari competenze o abilità. Oltretutto un semplice quadrato in bianco e nero non richiede somme ingenti per essere prodotto: con una stampante e un minimo di spesa per la cartuccia del nero si può facilmente replicare.
Disponibile
In molti casi i qr code sono facilmente accessibili. Se prendiamo ad esempio quelli in metropolitana, quelli alla fermata dell’autobus non è difficile accedere ai codici e di conseguenza modificarli (potrebbe essere più complesso andare a cambiare tutti quelli della quarta di copertina di un libro o presenti negli adv di una rivista).
Se sommiamo questi tre fattori vediamo che un attaccante, con una spesa relativamente bassa, potrebbe creare un qr-code da appiccicare sopra quello ufficiale per dirottare gli utenti verso un altro sito (o far scaricare un’app particolare)
Minacce
Quando una tecnologia raggiunge una massa critica diventa un potenziale obiettivo anche da parte di persone con intenzioni non necessariamente lecite. Da questo punto di vista un attaccante potrebbe sostituire il qr-code originale con quello da lui creato e
- nel caso di una pubblicità potrebbe indirizzare verso il sito di un competitor (danno d’immagine ed economico)
- mandare gli utenti su un sito malevolo (download di malware e compromissione del device)
- far scaricare agli utenti un’app compromessa (compromissione del device) 1.
- fare in modo che gli utenti arrivino su un sito di phishing e tentare di far inserire loro le credenziali (sottrazione di informazioni)
- far chiamare un numero a pagamento o inviare sms tramite servizi premium (danno economico)
Ovviamente questo è uno scenario generale, ma si potrebbe pensare a qualcosa rivolto verso un’azienda (compromissione di device che poi verranno connessi alle postazioni e alla rete aziendale). Dopotutto basta mettere qualche qr-code alle fermate giuste della metro o del tram/bus puntando agli interessi dei dipendenti…
Rendere sicuro un Qr Code
Quale di questi due è malevolo? Difficile da dire (potete provare: nessuno dei due è realmente malevolo, portano solo a due pagine diverse di questo blog create apposta per questo test)
Dato che non possiamo agire sulla disponibilità dovremo andare ad agire sugli altri due punti.
Esplicitare
Dato che il fattore criptico non aiuta gli utenti a capire che cosa stanno inquadrando (e soprattutto qual è il link giusto verso il quale si dovrebbe essere indirizzati) è importante che vicino al qr code ci siano delle informazioni sulla landing page.
Quindi per ovviare il problema “criptico”:
- inserire l’url di destinazione vicino al qrcode
- fare attenzione agli short url e personalizzarli (dopotutto anche un bit.ly/sgrsgs è criptico)
- se possibile usare uno shorturl aziendale (molto più difficile da imitare)
- nella call to action dire che cosa dovrà fare l’utente e che su che pagina arriverà
- lato utente usare app che non idirizzino direttamente ma che mostrino il contenuto del qrcode e solo successivamente chiedano se si vuole navigare il sito o scaricare l’app o compiere l’azione prevista dal codice.
Aumentare costi e complessità
Un codice bianco e nero è molto semplice ed economico da imitare: dato che nel caso di attacchi malevoli l’aspetto economico è fondamentale bisogna fare in modo che creare il qrcode alla fine risulti meno vantaggioso (soprattutto per un attacco aziendale o mirato verso gli utenti: se l’hijacking fosse fatto per guerrilla marketing l’aumento dei costi sarebbe un problema secondario).
Quindi per ovviare il problema “semplice ed economico”
- inserire il logo dell’azienda (non è impossibile da copiare, ma inizia a diventare più difficile)
- fare il qrcode a colori e anche il background non in bianco ma con un leggero grado di colore (le cartucce dei colori costano)
A questo punto, giusto per fare un esempio ho creato un qr code (non molto bello, ma era per rendere l’idea) che punta alla pagina iniziale di pierotaglia.net (i qrcode sono decisamente personalizzabili e rimangono leggibili).
Di solito uso qrhacker, ma al momento non è disponibile e quindi ho usato unitag ( una soluzione eccellente, mi piace molto)
Da questo punto di vista abbiamo da un lato le aziende che possono proteggersi meglio e ridurre le vulnerabilità del qrcode: in questo modo riduciamo il rischio (dato che è meno probabile che la disponibilità venga sfruttata).
Qui alcuni approfondimenti
Featured image: Masked. Photo by .Andi. – http://flic.kr/p/6HqcdE
Note:
- Non è una cosa assurda: è già stato fatto http://usa.kaspersky.com/about-us/press-center/press-blog/malicious-qr-codes-attack-methods-techniques-infographic ↩
Leave a Reply
Want to join the discussion?Feel free to contribute!