Best practice per mascherare le informazioni della carta di credito in Web Api 2

3

In un progetto API Web Asp.Net 2, registriamo ogni richiesta e risposta http con log4Net.

Alcuni controller hanno parametri critici come "CreditCard, CVV, Month, Year" ecc. Questi dati non devono essere memorizzati in un database.

Non so come controllarli. Dovrei usare una RegEx? O dovrei nascondere il log del metodo del controller che contiene i parametri critici che non devono essere memorizzati?

    
posta ozkank 17.03.2016 - 14:51
fonte

2 risposte

5

"Stiamo registrando ogni richiesta e risposta http con log4Net."

Anche se sono sicuro che questo sia molto utile per gli sviluppatori, è una pessima pratica ed è potenzialmente illegale.

Come hai sottolineato, probabilmente stai risparmiando informazioni sulla carta di credito in un modo non conforme a pci.

Probabilmente stai elaborando anche "informazioni personali" come nomi e indirizzi ecc. in modi che il proprietario non ti ha autorizzato a farlo. Rompere la legge sulla protezione dei dati o legge equivalente nel tuo paese.

Potresti anche salvare i nomi utente e le password degli utenti in testo non crittografato

La soluzione è semplice da dire ma difficile da implementare. Devi interrompere la registrazione di ogni richiesta / risposta e iniziare a controllare il messaggio esatto che viene scritto nei tuoi registri.

Eg.

Invece di

Log.Write("Error processing request" + request.ToString());

Hai catturato l'errore esatto e scrivi

...
   DoStuff(publicA,secret1,secret2)
}
catch(Exception ex)
{
    Log.Write("Error doing stuff with id : " + publicA);
}

Dove sai publicA è un riferimento db interno o un identificatore senza significato per un hacker e può provarlo al tuo auditor di sicurezza.

Per chiarire: Né nascondere i registri, avere una lista nera di parametri o usare una regex per individuare e rimuovere dati segreti ti aiuta davvero. Poiché non puoi essere sicuro di aver catturato ogni caso.

    
risposta data 17.03.2016 - 19:16
fonte
1

@LarsViklund ha inchiodato la risposta in un commento. A meno che tu non sia un processore di pagamento, le informazioni della carta di credito non dovrebbero mai raggiungere i tuoi server.

Devi risolvere il problema reale e non provare a mascherarlo facendo eccezioni alle tue pratiche di registrazione.

Informa i tuoi dirigenti aziendali che gli hacker non otterranno mai i dati del tuo cliente se non hai mai avuto inizio. Spiega loro che è molto probabile che infrangono molte leggi sulla privacy e la conformità PCI - che può portare a multe molto grandi.

    
risposta data 17.03.2016 - 15:26
fonte

Leggi altre domande sui tag