Quasi tutti noi utilizziamo i servizi dei negozi online, il che significa che prima o poi corriamo il rischio di diventare vittima di JavaScript sniffer, un codice speciale che gli aggressori implementano su un sito Web per rubare dati di carte bancarie, indirizzi, login e password degli utenti .
Sono già stati colpiti dagli sniffer quasi 400 utenti del sito web e dell'applicazione mobile della British Airways, così come i visitatori del sito web britannico del colosso sportivo FILA e del distributore americano di biglietti Ticketmaster. PayPal, Chase Paymenttech, USAePay, Moneris: questi e molti altri sistemi di pagamento sono stati infettati.
Viktor Okorokov, analista del Threat Intelligence Group-IB, parla di come gli sniffer si infiltrano nel codice dei siti web e rubano informazioni sui pagamenti, nonché di quali CRM attaccano.
"Minaccia nascosta"
È successo che per molto tempo gli sniffer di JS sono rimasti fuori dalla vista degli analisti antivirus e le banche e i sistemi di pagamento non li hanno visti come una seria minaccia. E completamente invano. Esperti del Gruppo-IB
Soffermiamoci in dettaglio sulle quattro famiglie di sniffer studiate durante lo studio.
ReactGet Famiglia
Gli sniffer della famiglia ReactGet vengono utilizzati per rubare i dati delle carte bancarie sui siti di shopping online. Lo sniffer può funzionare con un gran numero di diversi sistemi di pagamento utilizzati sul sito: un valore di parametro corrisponde a un sistema di pagamento e le singole versioni rilevate dello sniffer possono essere utilizzate per rubare credenziali, nonché per rubare dati di carte bancarie dal sistema di pagamento forme di più sistemi di pagamento contemporaneamente, come il cosiddetto sniffer universale. È stato riscontrato che in alcuni casi gli aggressori conducono attacchi di phishing contro gli amministratori dei negozi online per ottenere l’accesso al pannello amministrativo del sito.
Nel maggio 2017 è iniziata una campagna che utilizzava questa famiglia di sniffer: sono stati attaccati siti che utilizzavano CMS e piattaforme Magento, Bigcommerce e Shopify.
Come ReactGet viene implementato nel codice di un negozio online
Oltre alla “classica” implementazione di uno script tramite un collegamento, gli operatori della famiglia di sniffer ReactGet utilizzano una tecnica speciale: controllano con l'aiuto del codice JavaScript se l'indirizzo attuale in cui si trova l'utente soddisfa determinati criteri. Il codice dannoso verrà eseguito solo se la sottostringa è presente nell'URL corrente cassa o pagamento in un solo passaggio, una pagina/, fuori/una pag, cassa/uno, checkout/uno. Pertanto, il codice sniffer verrà eseguito esattamente nel momento in cui l'utente procede al pagamento degli acquisti e inserisce le informazioni di pagamento nel modulo sul sito.
Questo sniffer utilizza una tecnica non standard. Il pagamento e i dati personali della vittima vengono raccolti insieme e codificati utilizzando base64, quindi la stringa risultante viene utilizzata come parametro per inviare una richiesta al sito Web degli aggressori. Nella maggior parte dei casi il percorso verso la porta imita ad esempio un file JavaScript resp.js, dati.js e così via, ma vengono utilizzati anche collegamenti a file di immagine, GIF и JPG. La particolarità è che lo sniffer crea un oggetto immagine di 1 per 1 pixel e utilizza come parametro il collegamento precedentemente ricevuto src Immagini. Cioè, per l'utente tale richiesta nel traffico sembrerà una richiesta per un'immagine normale. Una tecnica simile è stata utilizzata nella famiglia di sniffer ImageID. Inoltre, la tecnica di utilizzare un'immagine da 1 x 1 pixel viene utilizzata in molti script di analisi online legittimi, che possono anche fuorviare l'utente.
Analisi della versione
L'analisi dei domini attivi utilizzati dagli operatori sniffer ReactGet ha rivelato molte versioni diverse di questa famiglia di sniffer. Le versioni differiscono per la presenza o l'assenza di offuscamento e inoltre ogni sniffer è progettato per uno specifico sistema di pagamento che elabora i pagamenti con carta bancaria per i negozi online. Dopo aver selezionato il valore del parametro corrispondente al numero di versione, gli specialisti di Group-IB hanno ricevuto un elenco completo delle varianti dello sniffer disponibili e, in base ai nomi dei campi del modulo che ogni sniffer cerca nel codice della pagina, hanno identificato i sistemi di pagamento a cui è rivolto lo sniffer.
Elenco degli sniffer e dei relativi sistemi di pagamento
URL dello sniffer | sistema di pagamento |
---|---|
|
Authorize.Net |
Salvataggio di carte | |
|
Authorize.Net |
Authorize.Net | |
|
eWAY Rapido |
Authorize.Net | |
Adyen | |
|
USAePay |
Authorize.Net | |
USAePay | |
|
Authorize.Net |
moneris | |
USAePay | |
PayPal | |
Sage Pay | |
Verisign | |
PayPal | |
Stripe | |
|
Realex |
PayPal | |
LinkPoint | |
PayPal | |
PayPal | |
DataCash | |
|
PayPal |
|
Authorize.Net |
|
Authorize.Net |
Authorize.Net | |
Authorize.Net | |
|
Verisign |
|
Authorize.Net |
moneris | |
|
Sage Pay |
|
USAePay |
|
Authorize.Net |
|
Authorize.Net |
|
ANZ eGate |
|
Authorize.Net |
|
moneris |
|
Sage Pay |
Sage Pay | |
|
Chase Paymentech |
|
Authorize.Net |
|
Adyen |
PsiGate | |
Fonte informatica | |
ANZ eGate | |
Realex | |
|
USAePay |
|
Authorize.Net |
|
Authorize.Net |
|
ANZ eGate |
|
PayPal |
|
PayPal |
Realex | |
|
Sage Pay |
|
PayPal |
|
Verisign |
Authorize.Net | |
|
Verisign |
Authorize.Net | |
|
ANZ eGate |
PayPal | |
Fonte informatica | |
|
Authorize.Net |
|
Sage Pay |
Realex | |
|
Fonte informatica |
PayPal | |
PayPal | |
|
PayPal |
|
Verisign |
|
eWAY Rapido |
|
Sage Pay |
Sage Pay | |
|
Verisign |
Authorize.Net | |
Authorize.Net | |
|
Primo gateway globale di dati |
Authorize.Net | |
Authorize.Net | |
moneris | |
|
Authorize.Net |
|
PayPal |
|
Verisign |
|
USAePay |
USAePay | |
Authorize.Net | |
Verisign | |
PayPal | |
|
Authorize.Net |
Stripe | |
|
Authorize.Net |
eWAY Rapido | |
|
Sage Pay |
Authorize.Net | |
|
Braintree |
|
Braintree |
|
PayPal |
|
Sage Pay |
|
Sage Pay |
|
Authorize.Net |
|
PayPal |
|
Authorize.Net |
Verisign | |
|
PayPal |
|
Authorize.Net |
|
Stripe |
|
Authorize.Net |
eWAY Rapido | |
Sage Pay | |
|
Authorize.Net |
Braintree | |
|
PayPal |
|
Sage Pay |
Sage Pay | |
|
Authorize.Net |
PayPal | |
Authorize.Net | |
|
Verisign |
|
Authorize.Net |
|
Authorize.Net |
|
Authorize.Net |
|
Authorize.Net |
|
Sage Pay |
Sage Pay | |
|
Westpac PayWay |
|
PayFort |
|
PayPal |
|
Authorize.Net |
|
Stripe |
|
Primo gateway globale di dati |
|
PsiGate |
Authorize.Net | |
Authorize.Net | |
|
moneris |
|
Authorize.Net |
Sage Pay | |
|
Verisign |
moneris | |
PayPal | |
|
LinkPoint |
|
Westpac PayWay |
Authorize.Net | |
|
moneris |
|
PayPal |
Adyen | |
PayPal | |
Authorize.Net | |
USAePay | |
EBiz Charge | |
|
Authorize.Net |
|
Verisign |
Verisign | |
Authorize.Net | |
|
PayPal |
|
moneris |
Authorize.Net | |
|
PayPal |
PayPal | |
Westpac PayWay | |
Authorize.Net | |
|
Authorize.Net |
Sage Pay | |
|
Verisign |
|
Authorize.Net |
|
PayPal |
|
PayFort |
Fonte informatica | |
Flusso di pagamento PayPal Pro | |
|
Authorize.Net |
|
Authorize.Net |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
Sage Pay | |
Authorize.Net | |
|
Stripe |
|
Authorize.Net |
Authorize.Net | |
Verisign | |
|
PayPal |
Authorize.Net | |
|
Authorize.Net |
Sage Pay | |
|
Authorize.Net |
|
Authorize.Net |
|
PayPal |
|
Selce |
|
PayPal |
Sage Pay | |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
|
Stripe |
|
Zebra grassa |
Sage Pay | |
|
Authorize.Net |
Primo gateway globale di dati | |
|
Authorize.Net |
|
eWAY Rapido |
Adyen | |
|
PayPal |
Servizi mercantili QuickBooks | |
Verisign | |
|
Sage Pay |
Verisign | |
|
Authorize.Net |
|
Authorize.Net |
Sage Pay | |
|
Authorize.Net |
|
eWAY Rapido |
Authorize.Net | |
|
ANZ eGate |
|
PayPal |
Fonte informatica | |
|
Authorize.Net |
Sage Pay | |
|
Realex |
Fonte informatica | |
|
PayPal |
|
PayPal |
|
PayPal |
|
Verisign |
eWAY Rapido | |
|
Sage Pay |
|
Sage Pay |
|
Verisign |
Authorize.Net | |
|
Authorize.Net |
|
Primo gateway globale di dati |
Authorize.Net | |
Authorize.Net | |
|
moneris |
|
Authorize.Net |
|
PayPal |
Sniffatore di password
Uno dei vantaggi degli sniffer JavaScript che lavorano sul lato client di un sito web è la loro versatilità: il codice dannoso incorporato in un sito web può rubare qualsiasi tipo di dati, siano essi dati di pagamento o login e password di un account utente. Gli specialisti di Group-IB hanno scoperto un campione di uno sniffer appartenente alla famiglia ReactGet, progettato per rubare indirizzi e-mail e password degli utenti del sito.
Intersezione con lo sniffer ImageID
Durante l'analisi di uno dei negozi infetti si è scoperto che il suo sito era stato infettato due volte: oltre al codice dannoso dello sniffer della famiglia ReactGet è stato rilevato anche il codice dello sniffer della famiglia ImageID. Questa sovrapposizione potrebbe essere la prova che gli operatori dietro entrambi gli sniffer utilizzano tecniche simili per iniettare codice dannoso.
Sniffatore universale
L'analisi di uno dei nomi di dominio associati all'infrastruttura sniffer ReactGet ha rivelato che lo stesso utente aveva registrato altri tre nomi di dominio. Questi tre domini imitavano i domini di siti web reali e in precedenza venivano utilizzati per ospitare sniffer. Analizzando il codice di tre siti legittimi, è stato rilevato uno sniffer sconosciuto e ulteriori analisi hanno dimostrato che si trattava di una versione migliorata dello sniffer ReactGet. Tutte le versioni precedentemente monitorate di questa famiglia di sniffer erano mirate a un unico sistema di pagamento, ovvero ogni sistema di pagamento richiedeva una versione speciale dello sniffer. In questo caso, però, è stata scoperta una versione universale dello sniffer in grado di rubare informazioni dai moduli relativi a 15 diversi sistemi di pagamento e dai moduli dei siti di e-commerce per effettuare pagamenti online.
Quindi, all’inizio del lavoro, lo sniffer ha cercato i campi del modulo di base contenenti le informazioni personali della vittima: nome completo, indirizzo fisico, numero di telefono.
Lo sniffer ha quindi cercato oltre 15 diversi prefissi corrispondenti a diversi sistemi di pagamento e moduli di pagamento online.
Successivamente, i dati personali della vittima e le informazioni di pagamento sono stati raccolti insieme e inviati a un sito controllato dall’aggressore: in questo caso particolare sono state scoperte due versioni dello sniffer universale ReactGet, situate su due diversi siti hackerati. Tuttavia, entrambe le versioni hanno inviato i dati rubati allo stesso sito compromesso zoobashop.com.
L'analisi dei prefissi utilizzati dallo sniffer per cercare i campi contenenti le informazioni di pagamento della vittima ci ha permesso di determinare che questo campione di sniffer era mirato ai seguenti sistemi di pagamento:
- Authorize.Net
- Verisign
- First Data
- USAePay
- Stripe
- PayPal
- ANZ eGate
- Braintree
- DataCash (MasterCard)
- Pagamenti Realex
- PsiGate
- Sistemi di pagamento Heartland
Quali strumenti vengono utilizzati per rubare le informazioni di pagamento?
Il primo strumento, scoperto durante l’analisi dell’infrastruttura degli aggressori, viene utilizzato per offuscare gli script dannosi responsabili del furto di carte bancarie. Su uno degli host dell'aggressore è stato scoperto uno script bash che utilizzava la CLI del progetto
Il secondo strumento scoperto è progettato per generare il codice responsabile del caricamento dello sniffer principale. Questo strumento genera codice JavaScript che controlla se l'utente si trova sulla pagina di pagamento cercando stringhe nell'indirizzo corrente dell'utente cassa, carrello e così via, e se il risultato è positivo, il codice carica lo sniffer principale dal server degli aggressori. Per nascondere attività dannose, tutte le righe, comprese le righe di test per determinare la pagina di pagamento, nonché un collegamento allo sniffer, vengono codificate utilizzando base64.
Attacchi di phishing
Dall'analisi dell'infrastruttura di rete degli aggressori è emerso che spesso il gruppo criminale ricorre al phishing per accedere all'area amministrativa del negozio online preso di mira. Gli aggressori registrano un dominio visivamente simile al dominio di un negozio e quindi distribuiscono su di esso un falso modulo di accesso al pannello di amministrazione di Magento. In caso di successo, gli aggressori avranno accesso al pannello amministrativo del CMS Magento, che darà loro la possibilità di modificare i componenti del sito web e implementare uno sniffer per rubare i dati delle carte di credito.
infrastruttura
Nome di dominio | Data di scoperta/apparizione |
---|---|
mediapack.info | 04.05.2017 |
adsgetapi.com | 15.06.2017 |
simcounter.com | 14.08.2017 |
mageanalytics.com | 22.12.2017 |
maxstatics.com | 16.01.2018 |
reactjsapi.com | 19.01.2018 |
mxcounter.com | 02.02.2018 |
apitstatus.com | 01.03.2018 |
orderracker.com | 20.04.2018 |
tagstracking.com | 25.06.2018 |
adsapigate.com | 12.07.2018 |
trust-tracker.com | 15.07.2018 |
fbstatspartner.com | 02.10.2018 |
billgetstatus.com | 12.10.2018 |
www.aldenmlilhouse.com | 20.10.2018 |
balletbeautlful.com | 20.10.2018 |
bargalnjunkie.com | 20.10.2018 |
payselector.com | 21.10.2018 |
tagsmediaget.com | 02.11.2018 |
hs-payments.com | 16.11.2018 |
ordercheckpays.com | 19.11.2018 |
geisseie.com | 24.11.2018 |
gtmproc.com | 29.11.2018 |
livegetpay.com | 18.12.2018 |
sydneysalonsupplies.com | 18.12.2018 |
newrelicnet.com | 19.12.2018 |
nr-public.com | 03.01.2019 |
cloudodesc.com | 04.01.2019 |
ajaxstatic.com | 11.01.2019 |
livecheckpay.com | 21.01.2019 |
asianfoodgracer.com | 25.01.2019 |
Famiglia G-Analytics
Questa famiglia di sniffer viene utilizzata per rubare le carte dei clienti dai negozi online. Il primo nome di dominio utilizzato dal gruppo è stato registrato nell'aprile 2016, il che potrebbe indicare che il gruppo ha iniziato l'attività a metà del 2016.
Nella campagna attuale, il gruppo utilizza nomi di dominio che imitano servizi della vita reale, come Google Analytics e jQuery, mascherando l'attività degli sniffer con script legittimi e nomi di dominio simili a quelli legittimi. I siti che eseguivano il CMS Magento sono stati attaccati.
Come G-Analytics viene implementato nel codice di un negozio online
Una caratteristica distintiva di questa famiglia è l'uso di vari metodi per rubare le informazioni di pagamento degli utenti. Oltre alla classica iniezione di codice JavaScript sul lato client del sito, il gruppo criminale ha utilizzato anche tecniche di code injection sul lato server del sito, vale a dire script PHP che elaborano i dati immessi dagli utenti. Questa tecnica è pericolosa perché rende difficile per i ricercatori di terze parti rilevare il codice dannoso. Gli specialisti di Group-IB hanno scoperto una versione di uno sniffer incorporato nel codice PHP del sito, utilizzando un dominio come porta dittm.org.
È stata scoperta anche una prima versione di uno sniffer che utilizza lo stesso dominio per raccogliere dati rubati dittm.org, ma questa versione è destinata all'installazione sul lato client di un negozio online.
Successivamente il gruppo ha cambiato tattica e ha iniziato a concentrarsi maggiormente sul nascondere attività dannose e sul camuffamento.
All’inizio del 2017 il gruppo ha iniziato ad utilizzare il dominio jquery-js.com, mascherato da CDN per jQuery: quando si accede al sito degli aggressori, l'utente viene reindirizzato a un sito legittimo jquery.com.
E a metà del 2018 il gruppo ha adottato il nome di dominio g-analytics.com e ha iniziato a mascherare le attività dello sniffer come un servizio legittimo di Google Analytics.
Analisi della versione
Durante l'analisi dei domini utilizzati per memorizzare lo sniffer code, si è riscontrato che il sito contiene un gran numero di versioni, che differiscono per la presenza di offuscamento, nonché per la presenza o meno di codice irraggiungibile aggiunto al file per distrarre l'attenzione e nascondere il codice dannoso.
Totale sul sito jquery-js.com Sono state identificate sei versioni di sniffer. Questi sniffer inviano i dati rubati a un indirizzo situato sullo stesso sito web dello sniffer stesso: hxxps://jquery-js[.]com/latest/jquery.min.js:
- hxxps://jquery-js[.]com/jquery.min.js
- hxxps://jquery-js[.]com/jquery.2.2.4.min.js
- hxxps://jquery-js[.]com/jquery.1.8.3.min.js
- hxxps://jquery-js[.]com/jquery.1.6.4.min.js
- hxxps://jquery-js[.]com/jquery.1.4.4.min.js
- hxxps://jquery-js[.]com/jquery.1.12.4.min.js
Dominio successivo g-analytics.com, utilizzato dal gruppo negli attacchi dalla metà del 2018, funge da archivio per più sniffer. In totale sono state scoperte 16 diverse versioni dello sniffer. In questo caso la porta per l'invio dei dati rubati era mascherata da collegamento a un formato immagine GIF: hxxp://g-analytics[.]com/__utm.gif?v=1&_v=j68&a=98811130&t=pageview&_s=1&sd=24-bit&sr=2560×1440&vp=2145×371&je=0&_u=AACAAEAB~&jid=1841704724&gjid=877686936&cid
= 1283183910.1527732071:
- hxxps://g-analytics[.]com/libs/1.0.1/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.10/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.11/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.12/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.13/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.14/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.15/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.16/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.3/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.4/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.5/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.6/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.7/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.8/analytics.js
- hxxps://g-analytics[.]com/libs/1.0.9/analytics.js
- hxxps://g-analytics[.]com/libs/analytics.js
Monetizzazione dei dati rubati
Il gruppo criminale monetizza i dati rubati vendendo le carte attraverso un negozio sotterraneo appositamente creato che fornisce servizi ai cardatori. L'analisi dei domini utilizzati dagli aggressori ci ha permesso di determinarlo google-analytics.cm è stato registrato dallo stesso utente del dominio cardz.vc. Dominio cardz.vc si riferisce a un negozio che vende carte bancarie rubate Cardsurfs (Flysurfs), che ha guadagnato popolarità ai tempi dell'attività della piattaforma commerciale clandestina AlphaBay come negozio che vende carte bancarie rubate utilizzando uno sniffer.
Analisi del dominio analitico.è, situato sullo stesso server dei domini utilizzati dagli sniffer per raccogliere dati rubati, gli specialisti di Group-IB hanno scoperto un file contenente i registri dei cookie stealer, che sembra essere stato successivamente abbandonato dallo sviluppatore. Una delle voci nel registro conteneva un dominio iozoz.com, precedentemente utilizzato in uno degli sniffer attivi nel 2016. Presumibilmente questo dominio è stato precedentemente utilizzato da un utente malintenzionato per raccogliere carte rubate tramite uno sniffer. Questo dominio è stato registrato con un indirizzo email [email protected], che veniva utilizzato anche per registrare i domini cardz.su и cardz.vc, relativo al negozio di carte Cardsurfs.
Sulla base dei dati ottenuti, si può presumere che la famiglia di sniffer G-Analytics e il negozio clandestino di carte bancarie Cardsurfs siano gestiti dalle stesse persone e che il negozio venga utilizzato per vendere carte bancarie rubate utilizzando lo sniffer.
infrastruttura
Nome di dominio | Data di scoperta/apparizione |
---|---|
iozoz.com | 08.04.2016 |
dittm.org | 10.09.2016 |
jquery-js.com | 02.01.2017 |
g-analytics.com | 31.05.2018 |
google-analytics.is | 21.11.2018 |
analitico.a | 04.12.2018 |
google-analytics.to | 06.12.2018 |
google-analytics.cm | 28.12.2018 |
analitico.è | 28.12.2018 |
googlc-analytics.cm | 17.01.2019 |
Famiglia Illum
Illum è una famiglia di sniffer utilizzata per attaccare i negozi online che utilizzano il CMS Magento. Oltre all'introduzione di codice dannoso, gli operatori di questo sniffer utilizzano anche l'introduzione di veri e propri moduli di pagamento falsi che inviano dati alle porte controllate dagli aggressori.
Analizzando l'infrastruttura di rete utilizzata dagli operatori di questo sniffer, è stato notato un gran numero di script dannosi, exploit, moduli di pagamento falsi, nonché una raccolta di esempi con sniffer dannosi della concorrenza. Sulla base delle informazioni relative alle date di comparsa dei nomi a dominio utilizzati dal gruppo si può supporre che la campagna sia iniziata alla fine del 2016.
Come Illum viene implementato nel codice di un negozio online
Le prime versioni dello sniffer scoperte erano integrate direttamente nel codice del sito compromesso. I dati rubati sono stati inviati a cdn.illum[.]pw/records.php, il cancello è stato codificato utilizzando base64.
Successivamente è stata scoperta una versione confezionata dello sniffer che utilizza un gate diverso: records.nstatistics[.]com/records.php.
Secondo
Analisi del sito web degli aggressori
Gli specialisti del Group-IB hanno scoperto e analizzato un sito web utilizzato da questo gruppo criminale per archiviare strumenti e raccogliere informazioni rubate.
Tra gli strumenti trovati sul server degli aggressori c'erano script ed exploit per l'escalation dei privilegi nel sistema operativo Linux: ad esempio il Linux Privilege Escalation Check Script sviluppato da Mike Czumak, nonché un exploit per CVE-2009-1185.
Gli aggressori hanno utilizzato due exploit per attaccare direttamente i negozi online:
Inoltre, durante l'analisi del server sono stati scoperti diversi campioni di sniffer e moduli di pagamento falsi, utilizzati dagli aggressori per raccogliere informazioni di pagamento da siti compromessi. Come puoi vedere dall'elenco seguente, alcuni script sono stati creati individualmente per ciascun sito compromesso, mentre per alcuni CMS e gateway di pagamento è stata utilizzata una soluzione universale. Ad esempio, script segapay_standart.js и segapay_onpage.js progettato per l'implementazione su siti che utilizzano il gateway di pagamento Sage Pay.
Elenco di script per vari gateway di pagamento
Copione | Casello stradale |
---|---|
|
//request.payrightnow[.]cf/checkpayment.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//request.payrightnow[.]cf/alldata.php |
//request.payrightnow[.]cf/checkpayment.php | |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//request.payrightnow[.]cf/alldata.php |
|
//cdn.illum[.]pw/records.php |
|
//cdn.illum[.]pw/records.php |
|
//request.payrightnow[.]cf/checkpayment.php |
|
//cdn.illum[.]pw/records.php |
//request.payrightnow[.]cf/checkpayment.php | |
|
//cdn.illum[.]pw/records.php |
//payrightnow[.]cf/?payment= | |
|
//payrightnow[.]cf/?payment= |
|
//paymentnow[.]tk/?payment= |
ospite pagamento adesso[.]tk, usato come cancello in una sceneggiatura pagamento_forminsite.js, è stato scoperto come soggettoAltName in diversi certificati relativi al servizio CloudFlare. Inoltre, l'host conteneva uno script male.js. A giudicare dal nome dello script, potrebbe essere utilizzato nell'ambito dello sfruttamento di CVE-2016-4010, grazie al quale è possibile iniettare codice dannoso nel footer di una pagina su cui è in esecuzione il CMS Magento. L'host ha utilizzato questo script come cancello richiesta.requestnet[.]tkutilizzando lo stesso certificato dell'host pagamento adesso[.]tk.
Forme di pagamento false
La figura seguente mostra un esempio di modulo per l'inserimento dei dati della carta. Questo modulo è stato utilizzato per infiltrarsi in un negozio online e rubare i dati delle carte.
La figura seguente mostra un esempio di un falso modulo di pagamento PayPal utilizzato dagli aggressori per infiltrarsi nei siti con questo metodo di pagamento.
infrastruttura
Nome di dominio | Data di scoperta/apparizione |
---|---|
cdn.illum.pw | 27/11/2016 |
records.nstatistics.com | 06/09/2018 |
request.payrightnow.cf | 25/05/2018 |
pagamentonow.tk | 16/07/2017 |
linea-di-pagamento.tk | 01/03/2018 |
pagamentopal.cf | 04/09/2017 |
requestnet.tk | 28/06/2017 |
Famiglia CoffeeMokko
La famiglia di sniffer CoffeMokko, progettata per rubare carte bancarie agli utenti di negozi online, è in uso almeno da maggio 2017. Presumibilmente gli operatori di questa famiglia di sniffer sono il gruppo criminale Gruppo 1, descritto dagli specialisti di RiskIQ nel 2016. Sono stati attaccati siti che utilizzano CMS come Magento, OpenCart, WordPress, osCommerce e Shopify.
Come CoffeMokko viene implementato nel codice di un negozio online
Gli operatori di questa famiglia creano sniffer unici per ogni infezione: il file dello sniffer si trova nella directory src o js sul server degli aggressori. L'integrazione nel codice del sito avviene tramite un collegamento diretto allo sniffer.
Il codice sniffer codifica i nomi dei campi del modulo da cui i dati devono essere rubati. Lo sniffer verifica anche se l'utente si trova sulla pagina di pagamento controllando l'elenco delle parole chiave con l'indirizzo attuale dell'utente.
Alcune versioni dello sniffer scoperte erano offuscate e contenevano una stringa crittografata in cui era archiviata la serie principale di risorse: conteneva i nomi dei campi del modulo per vari sistemi di pagamento, nonché l'indirizzo del gate a cui dovevano essere inviati i dati rubati.
Le informazioni di pagamento rubate venivano inviate lungo il percorso a uno script sul server degli aggressori /savePayment/index.php o /tr/index.php. Presumibilmente, questo script viene utilizzato per inviare dati dal gate al server principale, che consolida i dati di tutti gli sniffer. Per nascondere i dati trasmessi, tutte le informazioni di pagamento della vittima vengono crittografate utilizzando base64, e quindi si verificano diverse sostituzioni di caratteri:
- il carattere "e" viene sostituito con ":"
- il simbolo "w" viene sostituito con "+"
- il carattere "o" viene sostituito con "%"
- il carattere "d" viene sostituito con "#"
- il carattere "a" viene sostituito con "-"
- il simbolo "7" viene sostituito con "^"
- il carattere "h" viene sostituito con "_"
- il simbolo "T" viene sostituito con "@"
- il carattere "0" viene sostituito da "/"
- il carattere "Y" viene sostituito con "*"
Come risultato delle sostituzioni di caratteri codificate utilizzando base64 I dati non possono essere decodificati senza eseguire la conversione inversa.
Ecco come appare un frammento di codice sniffer che non è stato offuscato:
Analisi delle infrastrutture
Nelle prime campagne, gli aggressori hanno registrato nomi di dominio simili a quelli di siti di shopping online legittimi. Il loro dominio potrebbe differire da quello legittimo per un simbolo o un altro TLD. I domini registrati venivano utilizzati per memorizzare lo sniffer code, un collegamento al quale era incorporato nel codice del negozio.
Questo gruppo utilizzava anche nomi di dominio che ricordano i popolari plugin jQuery (slickjs[.]org per i siti che utilizzano il plugin slick.js), gateway di pagamento (sagecdn[.]org per i siti che utilizzano il sistema di pagamento Sage Pay).
Successivamente, il gruppo ha iniziato a creare domini i cui nomi non avevano nulla a che fare con il dominio del negozio o con il tema del negozio.
Ogni dominio corrispondeva ad un sito su cui è stata creata la directory /js o / src. In questa directory sono stati archiviati gli script sniffer: uno sniffer per ogni nuova infezione. Lo sniffer era incorporato nel codice del sito web tramite un collegamento diretto, ma in rari casi gli aggressori hanno modificato uno dei file del sito web e vi hanno aggiunto codice dannoso.
Analisi del codice
Primo algoritmo di offuscamento
In alcuni campioni scoperti di sniffer di questa famiglia, il codice era offuscato e conteneva dati crittografati necessari al funzionamento dello sniffer: in particolare, l'indirizzo del gate dello sniffer, un elenco di campi del modulo di pagamento e, in alcuni casi, il codice di un falso modulo di pagamento. Nel codice all'interno della funzione, le risorse venivano crittografate utilizzando XOR dalla chiave che è stata passata come argomento alla stessa funzione.
Decriptando la stringa con l'apposita chiave, univoca per ogni campione, è possibile ottenere una stringa contenente tutte le stringhe dello sniffer code separate da un carattere separatore.
Secondo algoritmo di offuscamento
Nei campioni successivi di sniffer di questa famiglia è stato utilizzato un diverso meccanismo di offuscamento: in questo caso i dati sono stati crittografati utilizzando un algoritmo autoscritto. Una stringa contenente i dati crittografati necessari al funzionamento dello sniffer è stata passata come argomento alla funzione di decrittografia.
Utilizzando la console del browser, è possibile decrittografare i dati crittografati e ottenere un array contenente risorse sniffer.
Collegamento ai primi attacchi MageCart
Dall'analisi di uno dei domini utilizzati dal gruppo come gateway per la raccolta dei dati rubati, è emerso che tale dominio ospitava un'infrastruttura per il furto di carte di credito, identica a quella utilizzata dal Gruppo 1, uno dei primi gruppi,
Sono stati trovati due file sull'host della famiglia di sniffer CoffeMokko:
- mage.js — file contenente il codice sniffer del Gruppo 1 con l'indirizzo del gate js-cdn.link
- mag.php — Script PHP responsabile della raccolta dei dati rubati dallo sniffer
Contenuto del file mage.js
È stato inoltre stabilito che i primi domini utilizzati dal gruppo dietro la famiglia di sniffer CoffeMokko sono stati registrati il 17 maggio 2017:
- link-js[.]link
- info-js[.]link
- track-js[.]link
- map-js[.]link
- smart-js[.]link
Il formato di questi nomi di dominio corrisponde ai nomi di dominio del Gruppo 1 utilizzati negli attacchi del 2016.
Sulla base dei fatti accertati si può presumere che esista un collegamento tra gli operatori degli sniffer CoffeMokko e il gruppo criminale Group 1. Presumibilmente, gli operatori di CoffeMokko avrebbero potuto prendere in prestito strumenti e software dai loro predecessori per rubare le carte. Tuttavia, è più probabile che il gruppo criminale dietro l'utilizzo della famiglia di sniffer CoffeMokko siano gli stessi che hanno effettuato gli attacchi del Gruppo 1. Dopo la pubblicazione del primo rapporto sulle attività del gruppo criminale, tutti i loro nomi di dominio sono stati bloccato e gli strumenti sono stati studiati nei dettagli e descritti. Il gruppo è stato costretto a prendersi una pausa, a perfezionare i propri strumenti interni e a riscrivere lo sniffer code per continuare i suoi attacchi e rimanere inosservato.
infrastruttura
Nome di dominio | Data di scoperta/apparizione |
---|---|
link-js.link | 17.05.2017 |
info-js.link | 17.05.2017 |
track-js.link | 17.05.2017 |
map-js.link | 17.05.2017 |
smart-js.link | 17.05.2017 |
adorebeauty.org | 03.09.2017 |
security-payment.su | 03.09.2017 |
braincdn.org | 04.09.2017 |
sagecdn.org | 04.09.2017 |
slickjs.org | 04.09.2017 |
oakandfort.org | 10.09.2017 |
citywlnery.org | 15.09.2017 |
dobell.su | 04.10.2017 |
childrensplayclothing.org | 31.10.2017 |
jewsondirect.com | 05.11.2017 |
shop-rnib.org | 15.11.2017 |
www.armadiolondon.org | 16.11.2017 |
misshaus.org | 28.11.2017 |
batteria-force.org | 01.12.2017 |
kik-vape.org | 01.12.2017 |
www.greatfurnituretradingco.org | 02.12.2017 |
etradesupply.org | 04.12.2017 |
replacemyremote.org | 04.12.2017 |
all-about-sneakers.org | 05.12.2017 |
mage-checkout.org | 05.12.2017 |
nililotan.org | 07.12.2017 |
lamoodbighat.net | 08.12.2017 |
walletgear.org | 10.12.2017 |
dahlie.org | 12.12.2017 |
davidsfootwear.org | 20.12.2017 |
blackriverimaging.org | 23.12.2017 |
exrpesso.org | 02.01.2018 |
parchi.su | 09.01.2018 |
pmtonline.su | 12.01.2018 |
otocap.org | 15.01.2018 |
christohperward.org | 27.01.2018 |
coffeetea.org | 31.01.2018 |
www.energycoffe.org | 31.01.2018 |
www.energytea.org | 31.01.2018 |
teacoffe.net | 31.01.2018 |
Adaptivecss.org | 01.03.2018 |
coffemokko.com | 01.03.2018 |
londontea.net | 01.03.2018 |
ukcoffe.com | 01.03.2018 |
labbe.biz | 20.03.2018 |
batterianart.com | 03.04.2018 |
btosports.net | 09.04.2018 |
www.chicksaddlery.net | 16.04.2018 |
paypaypay.org | 11.05.2018 |
ar500arnor.com | 26.05.2018 |
Authorizecdn.com | 28.05.2018 |
slickmin.com | 28.05.2018 |
bannerbuzz.info | 03.06.2018 |
kandypens.net | 08.06.2018 |
mylrendyphone.com | 15.06.2018 |
freshchat.info | 01.07.2018 |
3lift.org | 02.07.2018 |
abtasty.net | 02.07.2018 |
mechat.info | 02.07.2018 |
zoplm.com | 02.07.2018 |
zapaljs.com | 02.09.2018 |
foodandcot.com | 15.09.2018 |
freshdepor.com | 15.09.2018 |
swappastore.com | 15.09.2018 |
verywellfitness.com | 15.09.2018 |
elegrina.com | 18.11.2018 |
majsurplus.com | 19.11.2018 |
top5value.com | 19.11.2018 |
Fonte: habr.com