Le carte di credito che tutti usano ogni giorno poggiano su un sistema di numerazione e verifica pensato, in origine, per ridurre errori e frodi. Il punto è che alcune scelte progettuali fatte decenni fa, sommate a comportamenti poco uniformi tra i vari circuiti di pagamento, lasciano aperte delle falle che possono essere sfruttate con tecniche di attacco brute force distribuito. Non si tratta di un singolo bug clamoroso, ma piuttosto di una combinazione di fattori: codici di sicurezza troppo corti, nessun coordinamento reale tra i tentativi falliti su piattaforme diverse e una frammentazione dei controlli tra un gateway e l’altro. Ed è proprio qui che gli attaccanti si inseriscono, ricostruendo progressivamente i dati di una carta valida senza mai far scattare l’allarme su un singolo sistema.
La superficie di attacco: poche variabili, tutte prevedibili
Una carta di credito si basa su tre elementi fondamentali: il numero PAN, la data di scadenza e il codice CVV. Il numero segue lo standard ISO/IEC 7812 e include un checksum calcolato con l’algoritmo di Luhn, cosa che riduce parecchio lo spazio di ricerca valido per chi tenta un attacco. Il CVV, poi, è composto da sole tre cifre. Questo vuol dire appena 1000 combinazioni possibili. La data di scadenza segue intervalli plausibili e facilmente intuibili. Quanto al PAN, può essere ricostruito in parte conoscendo il circuito e l’istituto che ha emesso la carta.
Il risultato pratico è che chi attacca non deve muoversi alla cieca in uno spazio casuale enorme. Le variabili da indovinare sono poche e strutturate, il che rende fattibile un’esplorazione sistematica su larga scala. E qui entra in gioco il vero problema: i sistemi antifrode impongono sì dei limiti sui tentativi falliti, ma lo fanno a livello di singolo esercente o gateway. Non esiste un meccanismo universale che sincronizzi i tentativi tra piattaforme diverse. Un attacco brute force distribuito può quindi inviare richieste a centinaia di siti differenti, ognuno dei quali vede solo pochi tentativi isolati. Nessuno rileva nulla di anomalo, eppure il sistema nel suo complesso viene scandagliato in modo metodico.
C’è anche un altro aspetto che peggiora le cose: la cosiddetta validazione differenziale. Alcuni siti verificano soltanto il numero della carta, altri includono la data di scadenza, altri ancora controllano anche il CVV. Questa eterogeneità consente di ricostruire i dati passo dopo passo, sfruttando le risposte parziali per restringere progressivamente lo spazio di ricerca. Bot e script orchestrano tutto il processo in parallelo, distribuendo pochi tentativi su molti servizi invece di concentrarli su un singolo punto.
Le contromisure esistono, ma servono sforzi coordinati
Le soluzioni più efficaci contro questo tipo di attacco richiedono coordinamento tra più attori. Limiti globali sui tentativi, condivisi tra gateway e circuiti di pagamento, rappresentano la risposta più diretta al problema. Tecnologie come 3D Secure aggiungono un livello di autenticazione che rende sostanzialmente inutilizzabili i dati ottenuti tramite brute force. La tokenizzazione, invece, sostituisce i numeri reali delle carte di credito con identificativi temporanei, riducendo l’esposizione nel caso di una compromissione parziale.
Sul piano pratico, ogni transazione dovrebbe verificare simultaneamente PAN, scadenza e CVV, evitando risposte parziali che possano fornire indicazioni utili a chi sta tentando l’attacco. Finché queste misure non saranno adottate in modo capillare e uniforme su tutti i gateway, la frammentazione dei controlli continuerà a rappresentare il punto debole strutturale che rende possibili gli attacchi brute force distribuiti sulle carte di credito.