Con un bypass di filtro e qualche esadecimale, i numeri di carta di credito hackerati sono ancora, ancora Google-able
Una parola sull’hacking delle carte di credito
Se mi conoscete, o avete letto il mio post precedente, sapete che ho lavorato per una società molto interessante prima di entrare in Toptal. In questa azienda, il nostro fornitore di pagamenti elaborava transazioni dell’ordine di 500.000 dollari al giorno. Parte del mio lavoro era rendere il nostro provider PCI-DSS compliant, cioè conforme al Payment Card Industry – Data Security Standard.
Si può dire che questo non era un lavoro per i deboli di cuore. A questo punto, sono abbastanza intimo con le carte di credito (CC), l’hacking delle carte di credito e la sicurezza web in generale. Dopo tutto, il nostro lavoro era quello di proteggere i dati dei nostri utenti, per evitare che venissero violati, rubati o usati male.
Potreste immaginare la mia sorpresa quando ho visto l’articolo di Bennett Haselton del 2007 su Slashdot: Why Are CC Numbers Still So Easy to Find? In breve, Haselton è stato in grado di trovare numeri di carte di credito attraverso Google, in primo luogo cercando le prime otto cifre di una carta nel formato “nnnn nnnn”, e poi utilizzando alcune query avanzate costruite su intervalli di numeri. Per esempio, potrebbe usare “4060000000000000..406099999999999999” per trovare tutti i Primary Account Number (PAN) a 16 cifre di CHASE (le cui carte iniziano tutte con 4060). A proposito: qui c’è una lista completa dei numeri ID degli emittenti.
All’epoca, non ci pensai molto, perché Google iniziò subito a filtrare i tipi di query che Bennett stava usando. Quando si provava a cercare su Google una gamma come quella, Google serviva una pagina che diceva qualcosa del tipo “Sei una cattiva persona”.
Circa sei mesi fa, mentre ricordavo con un vecchio amico, questo hack del numero di carta di credito mi è tornato in mente. Poco dopo, ho scoperto qualcosa di allarmante. Non terribilmente allarmante, ma certamente allarmante, così ho informato Google e ho aspettato. Dopo un mese senza una risposta, li ho notificati di nuovo senza risultato.
Con una piccola modifica al vecchio trucco di Haselton, sono stato in grado di cercare su Google numeri di carte di credito, numeri di previdenza sociale e qualsiasi altra informazione sensibile di interesse.
Bennett
Ieri, alcuni miei amici (buhera.blog.hu e _2501) hanno portato alla mia attenzione un post più recente di Slashdot: Credit Card Numbers Still Google-able.
L’autore dell’articolo, ancora Bennett Haselton, che ha scritto l’articolo originale nel 2007, sostiene che i numeri delle carte di credito possono ancora essere cercati su Google. Non si può usare l’hack della query di range di numeri, ma si può ancora fare. Invece di usare semplici intervalli, dovete applicare una formattazione specifica alla vostra query. Qualcosa come: “1234 5678” (notare lo spazio nel mezzo). Un sacco di risultati vengono fuori per questa query, ma molto pochi sono di reale interesse. Tra i concorrenti ci sono numeri di telefono, codici postali e così via. Non estremamente allarmante. Ma ecco che arriva il colpo di scena dell’hacking delle carte di credito.
La metodologia
Ero curioso di sapere se fosse ancora possibile ottenere numeri di carte di credito online come si faceva nel 2007. Come ogni buon ingegnere, di solito mi avvicino alle cose usando un piano ben costruito e intelligente che deve essere eseguito perfettamente con la massima precisione. Se avete provato questo metodo, saprete che può fallire molto duramente, nel qual caso la vostra attenta pianificazione e lo sforzo vanno sprecati.
Nell’IT abbiamo la tendenza a sovra-intellettualizzare, anche quando non è esattamente giustificato. Ho visto i miei amici e colleghi rompere completamente le applicazioni usando input apparentemente casuali. Il loro tasso di successo era sbalorditivo e lo sforzo che ci mettevano era vicino allo zero. È stato allora che ho imparato che per aprire una porta, a volte devi solo bussare.
L’hack della carta di credito
Il paragrafo precedente era un tentativo abilmente mascherato di farmi sembrare meno idiota quando mostro le mie “abilità di hacking d’élite”. Oops.
Prima, ho provato diversi approcci basati su range-query. Poi, ho guardato le query avanzate e più o meno tutto ciò che si può inventare in un’ora o giù di lì. Nessuno di loro ha dato risultati significativi.
E poi ho avuto un’idea folle.
E se ci fosse stata una mancata corrispondenza tra il motore di filtraggio e l’attuale back-end? E se il messaggio che ho ricevuto da Google (“Sei una persona cattiva”) non provenisse dal back-end stesso, ma da un motore di filtraggio designato che Google ha implementato per censurare le query come la mia?
Avrebbe molto senso da un punto di vista architettonico. E bug come questo sono abbastanza comuni – li vediamo sempre nell’ITSEC, in particolare nelle soluzioni IDS/IPS, ma anche nel software comune. C’è una procedura di filtraggio che elabora i dati e li dà al back-end solo se pensa che i dati siano accettabili/non malevoli. Tuttavia, il back-end e il server di filtraggio non analizzano quasi mai l’input esattamente nello stesso modo. Così, un input apparentemente valido può passare attraverso il filtro e portare scompiglio nel back-end, bypassando efficacemente il filtro.
Si può solitamente innescare questo tipo di comportamento fornendo il proprio input in varie codifiche. Per esempio: invece di usare numeri decimali (0-9), che ne dite di convertirli in esadecimali o ottali o binari? Beh, indovina un po’…
Cerca questo e Google ti dirà che sei una brutta persona: “4060000000000000..406099999999999999”
Cerca questo e Google sarà felice di accontentarti: “0xe6c8c69c9c000..0xe6d753e6ecfff”.
L’unica cosa che devi fare è convertire i numeri di carta di credito da decimale a esadecimale. Tutto qui.
I risultati includono…
- File CSV enormi pieni di informazioni potenzialmente sensibili.
- File di log e-commerce difettosi.
- Informazioni sensibili condivise su siti di hacker (e anche su Facebook).
È roba veramente spaventosa.
So che questo bug non ispirerà nessuna ricerca sulla sicurezza, ma ci siamo. Google ha fatto questa bua e ha trascurato di rispondermi. Beh, succede. Non invidio gli addetti alla sicurezza della grande G, però. Devono avere un sacco di cose a cui badare. Sto postando qui questo hacking del numero di carta di credito perché:
- È relativamente a basso impatto.
- Chiunque sia interessato e motivato lo avrà già capito.
- Per citare Haselton, se i grandi giocatori non si assumono la responsabilità e non agiscono su questi exploit, allora “la cosa giusta da fare è puntare una luce sul problema e insistere che lo risolvano il prima possibile”.
Questo trucco può essere usato per cercare numeri di telefono, SSN, TFN e altro. E, come ha scritto Bennett, questi numeri sono molto più difficili da cambiare rispetto alla tua carta di credito, per la quale puoi semplicemente chiamare la tua banca e cancellare la carta.
Campione di query
AVVERTENZA: NON cercare su Google il numero della tua carta di credito per intero!
Cercare qualsiasi PAN CC che inizi con 4060:4060000000000000..4060999999999999? 0xe6c8c69c9c000..0xe6d753e6ecfff
Qualche numero di telefono ungherese del provider ‘Telenor’? Nessun problema:36200000000..36209999999 ? 0x86db02a00..0x86e48c07f
Cerca gli SSN. Fortunatamente, questi non restituiscono molti risultati significativi:100000000..999999999 ? 0x5f5e100..0x3b9ac9ff
Ci sono molti, molti altri.
Se trovate qualcosa di molto allarmante, o se siete curiosi di sapere qualcosa sull’hacking delle carte di credito, lasciatelo nei commenti o contattatemi via email o su Twitter a @synsecblog. Chiamare la polizia di solito è inutile in questi casi, ma potrebbe valere la pena provare. Il commerciante dato o il fornitore della carta di solito è più desideroso di affrontare il problema.
Dove andare da qui
Bene, Google ovviamente deve risolvere questo, possibilmente con l’aiuto dei grandi giocatori come Visa e Mastercard. Infatti, Haselton fornisce una serie di suggerimenti interessanti nei due articoli collegati sopra.
Quello che dovete fare, comunque (e per cui ho scritto questo post), è diffondere la parola. La frode con carta di credito è una grande industria, e la semplice consapevolezza può salvarvi dal diventare una vittima. Inoltre, se avete un sito di e-commerce o gestite qualsiasi elaborazione di carte di credito, assicuratevi di essere sicuri. PCI-DSS è una buona linea guida, ma è tutt’altro che perfetta. Inoltre, è sempre una buona idea cercare su Google il vostro sito con la query avanzata “site:mysite.com”, alla ricerca di numeri sensibili. C’è una possibilità molto, molto piccola di trovare qualcosa, ma se lo fai, devi agire immediatamente.
Inoltre, un piccolo consiglio amichevole: Non dovresti mai dare i dati della tua carta di credito a nessuno. Il mio consiglio è di usare PayPal o un servizio simile quando possibile. Puoi controllare questi link per ulteriori informazioni:
- Consigli per la sicurezza della carta di credito della Visa
- Consigli per la sicurezza della carta di credito della Citi
E alcuni consigli generali: non scaricare cose che non hai chiesto, non aprire email di spam, e ricorda che la tua banca non ti chiederà mai la password.
A proposito: Se pensate che non ci sia nessuno abbastanza stupido da cadere in queste tecniche di hacking delle carte di credito o dare via i dati della propria carta di credito su internet, date un’occhiata a @NeedADebitCard.
Siate al sicuro gente!