Trattare con eccessivi tentativi di "Carding"

34

Attualmente stiamo configurando usando Magento su uno stack LAMP per la nostra piattaforma di e-commerce. A partire da un mese o due fa abbiamo iniziato a notare molti tentativi di cardatura contro il nostro sito web. Tutte le transazioni tentate sarebbero per una piccola quantità, solo per verificare se la loro carta di credito è valida. Quando uno viene rifiutato, di solito lo riprovano ripetutamente cambiando il numero della carta di 1 o 2 numeri. Questi tentativi avvengono molto rapidamente, in successione. Come puoi immaginare, questo si aggiunge rapidamente al nostro sistema di processori per carte di credito e spesso le volte che ci chiudiamo per un breve periodo di tempo per evitare ulteriori tentativi.

La maggior parte degli attacchi provenivano da paesi al di fuori degli Stati Uniti e siamo un'azienda statunitense che utilizzava mod_geoip per negare tutto il traffico dall'esterno del paese. Questo ha aiutato con gli attacchi di massa, ma continuiamo a ricevere persone che provengono dalle origini degli Stati Uniti. Sono davvero interessato a sapere cosa sta succedendo qui. Come impostano gli script in tentativi di massa di ordini come questo? C'è davvero qualcos'altro che posso fare per calpestarlo? Qualsiasi comprensione di questi tipi di attacchi è apprezzata!

This question was IT Security Question of the Week.
Read the Sept 14, 2012 blog entry for more details or submit your own Question of the Week.

    
posta jkphl 29.08.2012 - 15:50
fonte

8 risposte

24

Dato che hai una strong verifica del nome / indirizzo, ecc., è molto probabile che il tuo sito restituisca valori diversi per diversi tipi di errori. La cosa migliore che puoi fare per scoraggiare il test delle carte è garantire che qualsiasi transazione rifiutata fornisca lo stesso risultato indipendentemente dal motivo per cui il processore ti ha detto che è stato rifiutato.

    
risposta data 29.08.2012 - 18:32
fonte
21

Puoi utilizzare un meccanismo " CAPTCHA " per limitare gli attacchi di forza bruta. A seconda del prodotto, è possibile configurare CAPTCHA per impedire a un utente di inviare un'altra transazione dopo alcuni tentativi falliti; e oppure, introdurre un limite di tempo (ad es. 15 ~ 20 secondi) tra le transazioni.

Se possibile, puoi anche provare un meccanismo di autenticazione per i tuoi utenti e consentire solo agli account specifici di eseguire transazioni.

    
risposta data 29.08.2012 - 16:49
fonte
9

Se i tuoi attaccanti utilizzano numeri di conto sequenziali, allora è un regalo che puoi usare per filtrare i tentativi. Se qualcuno prova 001, quindi 002, quindi 003 è abbastanza probabile che stiano cardando e puoi quindi filtrare i tentativi da quell'indirizzo IP.

Il fatto è che gli attaccanti intelligenti modificheranno i loro attacchi randomizzando i numeri delle carte che provano, o più probabilmente randomizzando su un blocco di numeri, quindi dovrai cercare altri segni. Se si crea un DB di indirizzi IP e richieste, è possibile cercare questi segni come un numero elevato di transazioni di piccolo valore oppure utilizzare un algoritmo per rilevare i tentativi di transazione di blocco.

Ovviamente i carder possono adattarsi: possono iniziare a utilizzare più server per tentativi o provare transazioni più grandi, meno tentativi all'ora, ecc. Tuttavia, devono adattarsi per continuare a utilizzare il sistema, e alcuni di loro potrebbero non essere in grado di farlo, o non voler disturbare. Per lo meno dovranno lavorare per questo.

    
risposta data 29.08.2012 - 16:21
fonte
7

Non penso che questa persona (le persone) si preoccupi se ottengono o meno numeri validi poiché, come dici tu, stai convalidando anche con gli indirizzi, e stanno provando in sequenza. Ottenere bloccato dal processore CC potrebbe effettivamente essere un obiettivo , soprattutto se sono tuoi concorrenti o lo stanno facendo per il lulz.

Ci sono un paio di opzioni che posso aggiungere alla lista: Puoi randomizzare il nome del campo di input e memorizzare il nome del campo nella sessione o in un posto sicuro, come in questo caso se usi PHP:

<input type = "text" name = "ccnum" />

a:

<input type = "text" name = "<?php echo $ccFieldName; ?>" />

Inoltre, puoi forzare i tuoi utenti ad abilitare JavaScript (circa il 96% degli utenti ha abilitato JS). È probabile che i tuoi abusatori stiano usando uno strumento da riga di comando come wget per cercare di colpire il tuo server, e in caso affermativo, non sarebbe in grado di analizzare JS. Una volta abilitato Javascript, puoi aggiungere il campo di input per la carta di credito quando il tuo documento è pronto, con un nome casuale come sopra, in modo che tutti i tentativi di automatizzazione delle richieste falliscano.

    
risposta data 30.08.2012 - 00:00
fonte
5

Quando ciò accadeva a un'organizzazione che conosco, hanno detto al loro processore di rifiutare tutti gli importi di addebito al di sotto di una certa soglia. Questo ha fermato completamente le transazioni di basso valore e i carder hanno lasciato velocemente il loro sito da solo.

Se non hai ancora fatto nulla al riguardo, considera di contattare l'ufficio dell'FBI locale. Potrebbero essere interessati al caso. Il processo di "degustazione" dell'account è probabilmente proveniente da qualche parte rintracciabile.

    
risposta data 09.09.2012 - 21:49
fonte
3

Un'opzione da considerare sarebbe l'introduzione di un ritardo artificiale nel processo di verifica della carta di credito. Gli utenti legittimi non dovrebbero preoccuparsi di un leggero ritardo nel processo, ma dovrebbero ostacolare in modo significativo l'utilità del tuo sito per gli script di cardatura.

    
risposta data 29.08.2012 - 20:21
fonte
3

Una volta identificato un flusso sospetto di richieste (presumibilmente mediante una corrispondenza del modello in tempo reale sulle transazioni non riuscite). In primo luogo, nega automaticamente tutte le richieste successive che corrispondono per un periodo di tempo (almeno ore). Questo rimuoverà il carico sul tuo reale sistema di elaborazione delle transazioni, e interromperà l'alimentazione del colpevole a tutte le informazioni utili, in effetti gli fornirà informazioni errate, poiché anche le richieste valide saranno negate. Rallenta la tua risposta per limitare il tasso di nuove richieste.

    
risposta data 29.08.2012 - 21:48
fonte
0

Abbiamo avuto lo stesso problema qui. Abbiamo deciso che il modo più rapido e user-friendly è stato quello di implementare un'estensione Recaptcha moderna ("Io non sono un robot"). Abbiamo deciso sull'estensione Yireo Google Recaptcha perché è stato veloce e facile da implementare ( link ), ma tu puoi anche implementare il tuo qui ( link ).

Per la nostra implementazione di Yireo ho utilizzato le impostazioni di "Registrazione del cliente" e "Pagamento in un'unica pagina" come "Sì", tutte le altre sono state impostate su "No". C'è un problema che ho notato con Yireo quando ho usato l'impostazione 'Login di una pagina di controllo' come 'Sì', quindi i nostri utenti registrati avevano problemi ad accedere ai loro account (Per qualche motivo non è stato mostrato alcun recaptcha e quando hanno provato per effettuare il login, si dovrebbe dichiarare "Recaptcha non valido" in un blocco di messaggi). Così, ho cambiato quella impostazione in "No", e ora gli utenti normali possono accedere e anche la cardatura ha smesso di eseguire il ping del nostro processore di pagamento. Tutti sono felici ora.

Una nota sull'estensione Yireo. Utilizza tag PHP brevi (stupidi), quindi se si utilizza una versione di PHP inferiore a 5.4, sarà necessario attivare il supporto di tag brevi nel PHP.ini. Assicurati di leggere i requisiti di estensione di Yireo prima dell'implementazione!

EDIT: Recaptcha non fa nulla per prevenire gli attacchi. Apparentemente è molto facile ingannare il sistema perché il recaptcha utilizza solo un cookie memorizzato nella cache dopo il primo tentativo, quindi i bot possono quindi essere eseguiti successivamente utilizzando semplicemente il cookie. Design scarso Google. Recaptcha dovrebbe impedire i bot, ma non può essere nel suo stato attuale.

    
risposta data 03.08.2015 - 19:24
fonte

Leggi altre domande sui tag