Come rilevare le carte di credito raccolte dalla memoria?

1

Recentemente ha avuto una conversazione con lo specialista della conformità PCI e ha capito che esiste un modo per rubare dati grezzi dalla memoria di Apache / Nginx, ad es. carte di credito. Si chiama "harvesting" e diventa piuttosto comune.

Diciamo che qualcuno ha violato attraverso una funzionalità di caricamento di file e ha ottenuto l'accesso. Quale sarebbe il modo di rilevarlo se riuscisse a raccogliere qualcosa o stia ancora raccogliendo, supponendo che potrebbe ripulire / cambiare log e mod dopo di se stesso?

    
posta Tchagg Bruin 23.05.2014 - 12:10
fonte

4 risposte

4

Una volta che un utente malintenzionato ottiene il controllo di un computer, non ci si può fidare di nulla su quel computer; ispezionare il computer non può dirti con certezza cosa è successo o sta succedendo.

La cosa migliore da fare è guardare gli sforzi dell'attaccante per ottenere dati dalla tua rete e su un computer sotto il suo controllo. Monitorare le connessioni in uscita sul firewall per vedere se ci sono luoghi insoliti; controlla i dati in uscita per vedere se contiene qualcosa che assomiglia a dati sensibili.

Puoi anche tentare di individuare l'attacco facendo in modo che il server invii i suoi messaggi di log a un server di registrazione sicuro e ispezioni per cose che assomigliano a un attacco. Tuttavia, 1) ci saranno molti falsi positivi, 2) un attacco riuscito potrebbe non creare una voce di log, e 3) una volta che l'attacco ha avuto successo, non è possibile fidarsi di ulteriori voci di log. Non aspettarti che questo sia utile, tranne forse per l'analisi post-incidente.

    
risposta data 23.05.2014 - 12:36
fonte
1

Sono d'accordo con la risposta di @ Mark. Servizi di protezione dalla perdita dei dati indipendenti e servizi di monitoraggio approfonditi che si svolgono nell'ombra della tua rete sono l'unico modo realistico per cogliere il tipo di attacchi estesi che stiamo attualmente vivendo. Tenendo presente che al momento, il tempo medio di scoperta è la parte migliore di un anno e che la scoperta di solito avviene dall'esterno, questo è un grosso problema.

Tuttavia, è ancora meglio non consentire affatto a dati sensibili sul tuo sistema!

Meglio consegnare questo pezzo di elaborazione specialistica a una funzione specialistica. Questo potrebbe essere gestito da voi o da una terza parte.

Se devi prendere i dettagli usando il tuo sito web, puoi pre-crittografare i dettagli lato client e passarli direttamente in un negozio separato, avere un "grabber" all'interno della tua rete sicura che toglie le voci dal memorizza temporaneamente e li elabora in un ambiente più sicuro del tuo server web (che sarà in una DMZ o peggio, un ambiente di cloud hosting).

Consegnare l'intero problema a uno specialista di terze parti (PayPal, Globalpay, ecc.) è ancora più semplice dal momento che si assumono tutto il dolore e il rischio in cambio di un piccolo costo aggiuntivo.

    
risposta data 23.05.2014 - 14:14
fonte
1

Basta aggiungere le risposte di Mark e Julian qui ....

Come consumatore, mi sento molto più a mio agio nell'acquisto di materiale da un sito che utilizza un processore di pagamento riconoscibile rispetto a uno che desidera i dettagli della mia carta.

Ma per tornare alla domanda, una contromisura che è efficace per tutti i tipi di scenari è quella di seminare i tuoi dati con honeypot (token di miele).

    
risposta data 23.05.2014 - 16:54
fonte
0

Se stai cercando di mitigare questo tipo di problemi, potresti essere interessato a eseguire il tuo server web come utente non root all'interno di una finestra mobile contenitore o contenitore LXC.

Questo attenua la minaccia nel modo in cui Docker funziona. I container Docker sono isolati ambienti Linux che, per tutti gli scopi intensivi, sono sistemi operativi autonomi. Sono incredibilmente leggeri, tuttavia, e non sono la stessa cosa della virtualizzazione in alcun modo.

L'esecuzione del server web all'interno di un contenitore Docker come utente non root significa che al meglio un utente malintenzionato può accedere solo alla memoria del contenitore Docker e mai alla memoria del computer host, a condizione che Docker e LXC è stato implementato correttamente (e il supporto LXC nel kernel è in circolazione da un po 'di tempo).

Utilizzando il supporto di rete di Docker, è possibile "esporre" il server Web alla propria porta locale 80/443, che utilizza fondamentalmente il port forwarding per inoltrare tutto il traffico su quelle porte per selezionare le porte sul contenitore Docker (ad es. 8080 e 8443, perché non è possibile associare a 80 e 443 come utente non root).

Per l'utente finale, in effetti non è cambiato nulla. Tutto il traffico viene inoltrato a un server web reale in esecuzione in un contenitore LXC. Tuttavia, se un utente malintenzionato riesce a ottenere l'esecuzione di codice in modalità remota, sarà incredibilmente limitato a ciò che sarà in grado di fare (anche in questo caso, se Docker e LXC sono stati implementati correttamente).

    
risposta data 23.05.2014 - 19:21
fonte

Leggi altre domande sui tag