Uno de los principales riesgos a ser gestionado antes, durante y después de la implementación de los estándares del PCI SSC  es el almacenamiento inseguro de datos de tarjetas de pago. Cualquier dato de titular de tarjeta que sea almacenado sin la correcta aplicación del requerimiento 3.4 de PCI DSS implica inmediatamente un incumplimiento en el estándar. Por otro lado, si un dato confidencial de autenticación (datos completos de la banda magnética o del chip, CAV2/CVV2/CID/CVC2 o PIN/PINBLOCK) es almacenado, se estará incurriendo en un incumplimiento del requerimiento 3.2, sin comentar el potencial riesgo de fraude al que se estará exponiendo la empresa.

Para poder identificar estas ubicaciones de almacenamiento inseguro es necesario realizar una búsqueda periódica de dichos datos en los medios de almacenamiento existentes (discos magnéticos (diskettes, discos duros), discos ópticos (CD, DVD), cintas magnéticas, discos magneto-ópticos (discos Zip, discos Jaz, SuperDisk), tarjetas de memoria, medios de almacenamiento removibles (unidades USB), etc.) y realizar las acciones de aseguramiento de esta información aplicando los controles requeridos.

La forma más fácil de realizar esta tarea es empleando expresiones regulares. En http://www.regular-expressions.info/creditcard.html se encuentra un listado de expresiones regulares que puede ser empleado para realizar búsquedas de patrones de tarjetas. Esta es una forma básica para realizar esta tarea, pero se enfrenta a múltiples problemas:

  • Alta tasa de falsos positivos: Ya que la búsqueda con expresiones regulares simplemente ubica cadenas que coincidan con un patrón dado, los resultados pueden tener una alta tasa de falsos positivos (números que tienen el mismo formato de un PAN pero que explícitamente no lo son). En este caso, no se realizan validaciones posteriores que permitan verificar si el patrón identificado coincide con un valor de dato de tarjeta válido (por ejemplo empleando el algoritmo de Luhn o comparando los resultados contra una base de datos de Bank Identification Number (BIN)), teniendo muchas veces que limitar la revisión de validez de datos encontrados a una tarea manual, que en función de la cantidad de coincidencias se puede tornar imposible.
  • Exclusiones: En función de la herramienta que se use para la búsqueda con expresiones regulares, es probable que no se puedan realizar exclusiones de archivos o ubicaciones en la búsqueda, con lo cual se tendrán resultados de coincidencias dentro de archivos de imágenes, librerías de enlace dinámico (dll), binarios, etc. que por lo general no son lugares en los cuales se almacenen datos de tarjetas…
  •  Formatos y separadores: Cada marca tiene sus propias políticas respecto al formato de sus tarjetas (13, 14, 15, 16 dígitos de longitud). Igualmente, éstas pueden ser almacenadas empleando separadores como puntos, guiones, espacios, comas, etc. con lo cual si la expresión regular no es bien definida, estos datos se pueden pasar por alto y permanecer desprotegidos.

Para solventar estas restricciones, existen múltiples herramientas que permiten hacer una búsqueda más automatizada y optimizada de datos de tarjetas (sobre todo PAN y banda magnética). En este artículo se hará un listado no exhaustivo de herramientas free (que no requieren licenciamiento para ser utilizadas) u Open Source y se compararán sus ventajas y desventajas.

Cardito

OS: windows

Valoración: star_yellowstar_yellowstar_greystar_greystar_grey

Datos de búsqueda: PAN

Licencia: Creative Commons

URL: http://sourceforge.net/projects/cardito/

Comentarios: Se trata de una herramienta bastante sencilla y rápida para la búsqueda de datos de tarjetas de pago.

Ventajas:

  • No requiere instalación
  • Permite la búsqueda de datos de tarjetas en archivos txt, csv, log, xml, htm, html y rtf. Si se requieren más formatos, se puede editar el código fuente.
  • Valida los resultados encontrados aplicando Luhn para minimización de falsos positivos

Desventajas:

  • Proyecto inmaduro y con soporte limitado
  • No identifica datos de PAN con separadores (“-“, ” “, “.”, “|”)

CCSRCH

OS: windowslinuxmacsolarisbsd

Valoración: star_yellowstar_yellowstar_yellowstar_yellowstar_grey

Datos de búsqueda: PAN + Banda magnética

Licencia: GNU General Public License

URL: https://github.com/adamcaudill/ccsrch

Comentarios: Probablemente una de las mejores herramientas de búsqueda de datos de tarjetas. Permite la identificación de PAN y datos completos de la banda magnética (TRACK 1 y TRACK 2) con una tasa media/baja de falsos positivos. El autor actualmente esta trabajando en el release de una nueva herramienta complementaria llamada ccsrch-score (https://github.com/adamcaudill/ccsrch-score), que permitirá asignar valoraciones en los resultados obtenidos con CCSRCH para minimizar la presencia de falsos positivos.

Este proyecto es un fork del proyecto original CCSRCH alojado en Sourceforge  http://sourceforge.net/projects/ccsrch/, el cual actualmente ya no está mantenido por su autor.

Ventajas:

  • No requiere instalación
  • Para sistemas operativos no soportados permite acceso al código y se puede compilar para la plataforma deseada
  • Tasa media/baja de falsos positivos (detecta números repetidos en patrones p.e. 5454545454545454)
  • Buena velocidad en la detección
  • Permite perfilar las búsquedas en archivos con base en exclusión de determinadas extensiones
  • Permite que en los resultados simplemente se muestre el nombre del archivo que contiene datos de tarjetas, para evitar extracción y almacenamiento de PAN y datos de bandas magnéticas durante la búsqueda

Desventajas:

  • A pesar de los esfuerzos realizados, aún se pueden encontrar falsos positivos en los resultados
  • No identifica datos de PAN con separadores (“-“, ” “, “.”, “|”)

Find_SSNs

OS: windowslinuxmacsolarisbsd

Valoración: star_yellowstar_yellowstar_yellowstar_yellowstar_grey

Datos de búsqueda: PAN

Licencia: Licencia especial (Virginia Polytechnic Institute and State University)

URL: http://security.vt.edu/resources_and_information/find_ssns.html

Comentarios: Al igual que Sensitive Number Finder (SENF), esta herramienta fue diseñada inicialmente para la detección de SSN usando Python. Sin embargo, puede ser empleada para la identificación de datos de tarjetas de pago (PAN) almacenados en texto plano.  En su web site han desarrollado un video en donde muestran cómo ejecutarlo y revisar los resultados en plataformas Windows: http://www.security.vt.edu/videos/find_ssn_video.mp4

Ventajas:

  • No requiere instalación
  • Permite la búsqueda en diferentes formatos de archivos (Microsoft Word, Excel, Access, OpenOffice y Adobe PDF)
  • En Windows, cuenta con una GUI para la configuración de los parámetros de la búsqueda
  • Cuenta con diferentes archivos de configuración para generar excepciones en las búsquedas (basadas en nombres de archivos, carpetas, extensiones, tamaño máximo, etc.)
  • Permite exportar los resultados a HTML, CSV o TXT
  • Valida los resultados encontrados aplicando Luhn para minimización de falsos positivos
  • Valida los resultados con bases de datos de BIN

Desventajas:

  • Existencia de falsos positivos en los resultados

FTimes

OS: windowslinuxsolarisbsd

Valoración: star_yellowstar_yellowstar_yellowstar_greystar_grey

Datos de búsqueda: PAN (mediante expresiones regulares)

Licencia: Licencia BSD

URL: http://ftimes.sourceforge.net/FTimes/

Comentarios: FTimes es una herramienta forense diseñada para la recolección y análisis de evidencia. Debido a estas funcionalidades, permite la búsqueda de datos de tarjetas de pago mediante el uso de expresiones regulares.

Ventajas:

  • No requiere instalación. Es una herramienta desarrollada en C y portada a múltiples sistemas operativos sin requerir de soportes (intérpretes o virtualización) o librerías adicionales y puede ser ejecutado desde un CD o diskette bajo la premisa forense de protección de evidencia
  • El binario es pequeño y funciona con relativa rapidez en la búsqueda
  • Permite la ejecución standalone o el envío de resultados a un servidor centralizado (denominado “Integrity Server”)
  • Permite realizar búsquedas en Alternate Data Streams (ADS) en sistemas de archivos NTFS

Desventajas:

  • Existencia de una alta tasa de falsos positivos en los resultados, debido a que las búsquedas se realizan únicamente con expresiones regulares y no se aplican validaciones posteriores (como Luhn o comparación con bases de datos de BIN)
  • Tiene problemas en la búsqueda de datos dentro de archivos comprimidos
  • Tiene a ser un poco compleja de configurar debido a que no es una herramienta solamente para búsqueda de datos, sino que es una suite forense

Identity Finder Free

OS: windowsmac

Valoración: star_yellowstar_greystar_greystar_greystar_grey

Datos de búsqueda: PAN

Licencia: Free (requiere suscripción)

URL: http://www.identityfinder.com/us/Home/IdentityFinder/Free

Comentarios: Identity Finder es una herramienta comercial que permite la búsqueda de datos de tarjetas de pago (PAN), contraseñas almacenadas, números de seguridad social (SSN) y soporta expresiones regulares.  Existe una versión “free” con funcionalidades limitadas.

Ventajas:

  • Cuenta con una GUI para la configuración de la búsqueda y visualización de resultados
  • Permite la creación de “perfiles” para almacenar resultados y configuraciones por usuarios
  • Permite ejecutar acciones sobre los resultados encontrados (borrado permanente (“Shred”), borrado de la información confidencial manteniendo los demás datos intactos (“Scrub”), aplicar controles de seguridad a la información encontrada (“Secure”) o mover el archivo afectado a la papelera de reciclaje.

Desventajas:

  • Requiere instalación (intrusivo)
  • La versión free solamente permite realizar búsquedas en carpetas de usuario (Documents and Settings)
  • Solamente permite la búsqueda en un número limitado de tipos de archivo (Word, Excel, PowerPoint, Adobe PDF, texto, html, rtf)
  • Bajo nivel de detección de datos de tarjetas de pago

OpenDLP

OS: windows (agente) linuxbsd (agentless)

Valoración: star_yellowstar_yellowstar_yellowstar_yellowstar_grey

Datos de búsqueda: PAN

Licencia: GNU General Public License v3

URL: http://code.google.com/p/opendlp/

Comentarios: OpenDLP es más que una simple herramienta para búsqueda de datos. Va más allá actuando como  un control del tipo “Data Loss Protection” o “Data Leak Protection”. Permite la identificación de datos basado en expresiones regulares empleando agentes (en sistemas operativos Windows) o sin necesidad de agentes (agentless) en sistemas operativos Unix y bases de datos.

Ventajas:

  • Búsqueda e identificación de datos empleando agentes (instalados como servicios) en Windows. El despliegue de estos agentes es transparente para el usuario.
  • Búsqueda e identificación de datos sin necesidad de agente en:
    • Bases de datos Microsoft SQL Server
    • Bases de datos MySQL
    • Recursos compartidos vía SMB
    • Sistemas Unix a través de SSH (empleando sshfs)
  • Cuenta con una consola centralizada web que permite la gestión de agentes y resultados
  • Reportes almacenados en una base de datos MySQL de backend
  • Transmisión de información entre agentes y servidor por canales cifrados
  • Permite la ejecución de búsquedas en diskettes, unidades USB y memoria RAM
  • Se pueden gestionar excepciones de búsqueda empleando archivos de configuración
  • Permite la definición de filtros basados en extensiones de archivos
  • Permite limitar el consumo de memoria en las labores de búsqueda, algo muy importante para no entrar en conflicto con el desempeño del equipo

Desventajas:

  • Aún no existe una versión estable, software en desarrollo
  • Pese a ser catalogada como una herramienta de DLP, aún no cuenta con funcionalidades para el análisis de tráfico saliente
  • Existencia de falsos positivos en los resultados

PANBuster Free

OS: windowslinuxmac

Valoración: star_yellowstar_yellowstar_yellowstar_greystar_grey

Datos de búsqueda: PAN

Licencia: Free

URL: http://www.xmco.fr/panbuster.html

Comentarios: Esta es una herramienta de línea de comando para la búsqueda de PAN. Mientras que la versión free está soportada para Linux, Windows y MacOS, la versión Pro (comercial) soporta Solaris, AIX y HP-UX.

Ventajas:

  • No requiere instalación
  • Identificación de BIN
  • Permite la búsqueda dentro de archivos comprimidos
  • Tasa media/baja de falsos positivos
  • Permite limitar la búsqueda a un tamaño máximo en archivos (p.e. los primeros 50 MB)

Desventajas:

  • Existencia de falsos positivos en los resultados
  • No identifica datos de PAN con separadores (“-“, ” “, “.”, “|”)

PANscan Lite

OS: windows

Valoración: star_yellowstar_greystar_greystar_greystar_grey

Datos de búsqueda: PAN + Banda magnética completa (TRACK 1 y TRACK 2)

Licencia: Free (requiere suscripción)

URL: https://www.securitymetrics.com/sm/pub/panscan/suite

Comentarios: La versión free de esta herramienta permite evaluar algunas de las funcionalidades de las versiones Standard y Advance. El fabricante dispone de un video donde describe el proceso de instalación y ejecución en https://www.youtube.com/watch?feature=player_embedded&v=7uLPzdBssGc

Ventajas:

  • Trae integrada una GUI para la configuración de la búsqueda y visualización de resultados
  • Permite excluír de las búsquedas archivos de imagen y ejecutables
  • Permite gestionar la cantidad de memoria asignada al proceso
  • Buen desempeño y velocidad en las búsquedas

Desventajas:

  • La versión Free solo permite conocer la cantidad de PAN y archivos encontrados, pero no los detalles
  • Requiere instalación (intrusivo)
  • No permite guardar los resultados posterior a una ejecución
  • Existencia de falsos positivos en los resultados
  • No permite definir búsquedas específicas sobre directorios, solamente unidades lógicas completas

SENF

OS: Multiplataforma (Java)

Valoración: star_yellowstar_yellowstar_yellowstar_yellowstar_grey

Datos de búsqueda: PAN

Licencia: Creative Commons

URL: http://www.utexas.edu/its/products/senf/

Comentarios: Sensitive Number Finder (SENF) es una herramienta desarrollada en Java por la Universidad de Texas.  En principio fue desarrollada para la búsqueda de números de seguridad social de USA (SSN), pero la funcionalidad se amplió para permitir la búsqueda de PAN.

Ventajas:

  • Multiplataforma (depende de JRE para su ejecución)
  • No requiere instalación
  • Permite limitar la búsqueda a un tamaño máximo en archivos (p.e. los primeros 50 MB)
  • Permite la definición de ACL para perfilamiento de búsquedas
  • Permite la búsqueda dentro de archivos comprimidos
  • Cuenta con una GUI que facilita la ejecución y visualización de resultados
  • Identifica datos de PAN con separadores (“-“, ” “, “.”, “|”)
  • Valida los resultados encontrados aplicando Luhn para minimización de falsos positivos

Desventajas:

  • Existencia de falsos positivos en los resultados

Spider

OS: windowslinuxmacbsd

Valoración: star_yellowstar_yellowstar_yellowstar_yellowstar_yellow

Datos de búsqueda: PAN

Licencia: GNU General Public License (version 2)

URL: http://www2.cit.cornell.edu/security/tools/

Comentarios: Spider es una de las mejores herramientas para la detección de PAN (y SSN). Desarrollada como una utilidad para investigación forense, agrega múltiples funcionalidades de búsqueda en ubicaciones no indexadas por el sistema operativo y búsqueda en recursos de red.

Ventajas:

  • Permite la búsqueda de datos de tarjeta (PAN) en unidades de red
  • Realiza búsquedas de datos de tarjetas en Alternate Data Streams (ADS) en Windows, File Slack Space y Unallocated Space
  • Cuando se ejecutan búsquedas en Unallocated Space, permite la realización de acciones sobre dicho espacio: eliminación segura (wipe) o exportación a archivo de dichos bloques para análisis posterior
  • Permite la búsqueda dentro de archivos comprimidos
  • Cuenta con funcionalidades especiales para parametrizar las búsquedas, optimizando los tiempos de respuesta
  • En Windows, cuenta con una GUI que facilita la ejecución y visualización de resultados
  • Permite la parametrización de la búsqueda mediante la edición de expresiones regulares
  • Permite el uso de comodines (“*”, “?”, etc.) para limitar la búsqueda en archivos
  • Se puede configurar para realizar búsquedas dentro de determinados umbrales de fechas
  • Cuenta con diferentes archivos de configuración para generar excepciones en las búsquedas (basadas en nombres de archivos, carpetas, extensiones, tamaño máximo, etc.)
  • Permite la ejecución de búsquedas incrementales (esto es: archivos que han cambiado desde la última ejecución de la herramienta)
  • Permite limitar la búsqueda a un tamaño máximo en archivos (p.e. los primeros 50 MB)
  • Identifica datos de PAN con separadores (“-“, ” “, “.”, “|”)
  • Valida los resultados encontrados aplicando Luhn para minimización de falsos positivos
  • Puede encriptar los archivos de reportes

Desventajas:

  • En Windows requiere la instalación de .NET Framework y de diferentes archivos en el sistema destino (cuenta con un instalador), siendo un poco más “intrusiva” que otras herramientas que no requieren instalación.
  • Puede fallar inesperadamente cuando se ejecutan búsquedas que involucran ADS, Slack Space, Unallocated Space o unidades de red
  • Al ofrecer más funcionalidades que otras herramientas, su configuración suele tornarse un poco complicada

Strings

OS: windows(Sysinternals) linuxmacbsd

Valoración: star_yellowstar_yellowstar_greystar_greystar_grey

Datos de búsqueda: PAN (mediante expresiones regulares)

Licencia: GNU General Public License

URL: http://unixhelp.ed.ac.uk/CGI/man-cgi?strings

Comentarios: Strings es la utilidad nativa en sistemas operativos Unix para la búsqueda de cadenas de caracteres en archivos y obviamente merece ser nombrada en esta lista. Microsoft (desde Sysinternals) ha desarrollado una utilidad para Windows con funcionalidades similares, que puede ser descargada en http://technet.microsoft.com/es-es/sysinternals/bb897439. Por su parte, McAffe (a través de Foundstone) cuenta con BinText (http://www.mcafee.com/us/downloads/free-tools/bintext.aspx), que también permite analizar y extraer cadenas de caracteres ASCII y Unicode de archivos

Ventajas:

  • En Unix es una utilidad nativa del sistema operativo, con lo cual no requiere ser instalada aparte. En Windows, el binario proporcionado por Sysinternals (Microsoft) o McAfee (Foundstone) puede ser ejecutado sin necesidad de instalación
  • Ejecución rápida
  • Realiza búsquedas independientemente del tipo de archivo

Desventajas:

  • Existencia de una alta tasa de falsos positivos en los resultados, debido a que las búsquedas se realizan únicamente con expresiones regulares y no se aplican validaciones posteriores (como Luhn o comparación con bases de datos de BIN)

Finalmente, comentar que existen otros proyectos en desarrollo o con funcionalidades limitadas que no han sido tenidos en cuenta en este post, pero que pueden ser útiles en función de las necesidades de la organización:

Por otro lado – y saliendo del tema de la búsqueda de datos de tarjetas en medios de almacenamiento – SNORT (http://www.snort.org/)  permite identificar datos de tarjetas en texto claro en tráfico de red. Como ya es sabido, esta es una solución Open Source  de IDS/IPS (Network Intrusion Prevention and  Detection System) que puede complementar los controles descritos anteriormente y ser implementada para dar cumplimiento al requerimiento 11.4 de PCI DSS. Una buena guía de implementación de SNORT para identificar datos de tarjetas de pago se puede encontrar en el siguiente artículo del SANS Institute: “Using Snort to Detect Clear Text Credit Card Numbershttp://www.sans.org/security-resources/idfaq/snort-detect-credit-card-numbers.php

Actualización 07/05/2013: Para aquellas empresas que tienen en su entorno de datos de titulares de tarjetas (CDE) servidores IBM AS/400, existe una herramienta bajo licenciamiento free llamada “Find Database Fields (FNDDBFLD)” http://www.linomasoftware.com/products/crypto/fnddbfld que permite realizar búsqueda de patrones de datos con formatos similares a un PAN.

Conclusión:  Para garantizar que los controles de almacenamiento seguro de datos de tarjetas se aplican siguiendo los criterios del PCI SSC es necesario realizar búsquedas de estos datos en cualquier medio de almacenamiento, para poder detectar y corregir cualquier desviación. Para esta tarea se pueden emplear expresiones regulares o herramientas automatizadas específicas que faciliten la ejecución periódica de esta labor. Bajo licenciamiento free u Open Source se pueden encontrar una gran cantidad de alternativas con sus pros y sus contras, que deben ser evaluadas por el responsable de seguridad conforme con sus necesidades (y presupuesto).

Finalmente, es importante tener presente que los reportes de una búsqueda de datos de tarjetas de pago en texto claro  podrán contener este tipo de datos, convirtiéndolos directamente en archivos que incumplen el requerimiento 3.4, con lo cual es crítico que esos resultados sean almacenados de forma segura. Una alternativa puede ser el emplear contenedores cifrados (con TrueCrypt, por ejemplo)  para guardarlos mientras que se realizan las tareas de validación y corrección.

¿Conoce alguna herramienta que no haya sido nombrada en este artículo? ¡Los comentarios siempre son bienvenidos!