Incident Response, Security and Forensics"

.

miércoles, 29 de octubre de 2008

Descubriendo números de tarjetas de crédito

Nosotros como entidad, estamos sujetos a multiples regulaciones y normativas. Por ejemplo el Banco de España, y como no las grandes marcas como VISA y MASTERCARD.


La auditoría que más nos ha hecho trabajar es la impuesta por las marcas VISA y MASTERCARD en su norma PCI-DSS. (Payment Card Industry Data Security Standard).

Despues de semejante sodomización (y eso que a los de seguridad nos gusta) me quedo con uno de los puntos de control que marca la norma y que consiste en la detección de ficheros que contengan números de tarjetas de crédito en toda la instalación y no esten debidamente custodiados.

Es decir un supuesto usuario puede crear un word o un excel con números de tarjeta y debemos de descubrirlo.

Manos a la obra:

WINDOWS

la cosa se simplifica, es cuestión de instalar el programa Open source de nombre 'Spider' desde aquí. (Realizado por los chicos de seguridad de la universidad de Cornell.)

Las siguientes imagenes dicen todo lo que hay que decir:



LINUX

Se complica, pero lo más sencillo es programar un script en Bash utilizando expresiones regulares, despues de mucha documentación pensamos en crear un fichero (expresiones.txt) que contiene lo siguiente:

4[0-9]{3}-?([0-9]{4}-?){2}[0-9]([0-9]{3})?
5[1-5][0-9]{2}-?([0-9]{4}-?){2}[0-9]{4}
3[47][0-9]{2}-?([0-9]{4}-?){2}[0-9]{3}
3(0[0-5]|[68][0-9])[0-9]-?[0-9]{6}-?[0-9]{4}
15[0-9]{2}-?([0-9]{4}-?){2}[0-9]{4}


Por otro lado realizamos el siguiente programa en bash (ya se que se puede mejorar, pero para salir del paso fue coj#!nudo)

Una vez realizado, es cuestion de lanzarlo.