Contesto

Nell’ambito delle attività di Cyber Threat Intelligence, Almaviva ha rilevato di recente un attacco di Autogenerating Phishing, che prendeva di mira gli utenti di un nostro cliente, sfruttando la piattaforma di messaggistica WhatsApp.
I messaggi WhatsApp, inoltrati direttamente dagli utenti vittima ai propri contatti, sfruttano il processo di fidelity trust, ovvero il rapporto di fiducia tra mittente e destinatario, escludendo così il coinvolgimento diretto del Threat Actor.
L’efficacia dell’azione malevola viene potenziata dalla miniatura personalizzata, che propone al destinatario una finta anteprima di un link legittimo anziché quella malevola reale.
Le miniature vengono generate utilizzando il protocollo Open Graph, promosso da Facebook nel 2010 e ancora oggi utilizzato da siti web e piattaforme social.

Protocollo Open Graph

Perché una pagina web costruisca la propria miniatura personalizzata,
nel codice sorgente vengono aggiunti attributi basati su protocollo RDFa, inserendo quindi tag <meta> nell’header della pagina stessa.

Le proprietà richieste per questo fine sono:

META PROPERTY DESCRIZIONE
OG:TITLE Il titolo dell’oggetto come dovrebbe apparire all’interno dell’anteprima
OG:TYPE Il tipo di oggetto. A seconda del tipo specificato, potrebbero essere necessarie anche altre proprietà.
OG:IMAGE L’URL dell’immagine che dovrebbe apparire all’interno dell’anteprima.
OG:URL L’URL canonico dell’oggetto che verrà utilizzato come ID permanente nel grafico.

A titolo di esempio, di seguito è riportato il markup del protocollo Open Graph per The Rock su IMDB:

<html prefix="og: https://ogp.me/ns#"> >
<head> 
<title> The Rock (1996) </title> 
<meta property="og:title" content="The Rock" /> 
<meta property="og:type" content="video.movie" /> 
<meta property="og:url" content="https://www.imdb.com/title/tt0117500/" /> 
<meta property="og:image" content="https://ia.media-imdb.com/images/rock.jpg" /> 
... 
</head>
...
</html>

Proof of Concept

Abbiamo rilevato che il protocollo Open Graph soffre di una vulnerabilità che, se sfruttata, può indurre gli utenti a ipotizzare che l’URL visualizzata in miniatura è associata al contenuto dell’URL presente sul link inoltrato e su cui effettivamente verranno reindirizzati una volta effettuato il click.

È stato riprodotto all’interno di una nostra pagina web di test, abc123def456.it, il comportamento malevolo del protocollo Open Graph, popolando con valori diversi da quelli attesi realmente le property dei metatag:

<meta property="og:image" content="https://icon2.cleanpng.com/20180320/yvw/kisspng-check-mark-computer-icons-x-mark-clip-art-check-mark-icon-green-5ab1d1a00470f8.3340736515216029760182.jpg"/>
<meta property="og:title" content="TITOLO FAKE"/>
<meta property="og:type" content="article"/>
<meta property="og:description" content="Descrizione Fake"/>
<meta property="og:url" content="https://www.sitolegittimo.com"/>

Di seguito si mostra la miniatura ingannevole generata dalla nostra pagina di test:

Come si può notare, l’URL sitolegittimo.com non è l’URL realmente utilizzata, che è, invece, abc123def456.it.
Dunque, l’utente visualizza sitolegittimo.com nell’anteprima in quanto la stringa è inserita arbitrariamente come meta tag og:url nella pagina HTML; quindi, effettuando il click, la vittima sarà reindirizzata al sito abc123def456.it.

Fix

La soluzione che è stata proposta è di auto-valorizzare il campo og:url con l’URL reale, impedendo così l’attività di spoofing.

Segnalazione a WhatsApp

Preso atto di questi eventi, è stata descritta dettagliatamente tale vulnerabilità al team di supporto di WhatsApp, il quale ha risposto che non rientra nell’ambito dell’assistenza che WhatsApp stesso può fornire.
Di seguito è riportata la risposta integrale in quanto priva di dati personali e/o confidenziali:

Classificazione

Questa problematica corrisponde alla CWE-451 poiché un utente malintenzionato può far sì che l’interfaccia utente visualizzi dati errati o in altro modo convincere l’utente a visualizzare informazioni che sembrano provenire da una fonte attendibile, e l’autore dell’attacco potrebbe indurre l’utente a eseguire l’azione non voluta.

CVSS Base Score: 4.3
CVSS v3.1 Vector: AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N/E:H/RL:U/RC:C/CR:X/IR:X/AR:X/MAV:N/MAC:L/MPR:L/MUI:R/MS:X/MC:N/MI:N/MA:N

Nonostante il basso livello di pericolosità rilevato, tale problematica si pone all’interno di un’architettura di attacco complessa e veicolata dall’avversario da noi denominato Peacchi, che verrà descritto in un articolo dedicato in questo stesso blog.

Si rende pertanto disponibile per la tracciatura di questa vulnerabilità il seguente codice identificativo generato dal sistema Joshua CybeRisk Vision: JCV-2022.06.13.01.