Después de un arduo trabajo en la implementación del control 3.4 de PCI DSS para proteger los datos de tarjetas de pago que son almacenados en el entorno, se puede tener la sensación que todos los riesgos potenciales están minimizados a un nivel gestionable y cumpliendo con los criterios del estándar. Sin embargo – y por consideraciones operativas – se pueden encontrar datos remanentes de tarjetas de pago en texto claro en la memoria RAM, el área de swap, archivos de hibernación y archivos de volcados de memoria (dumps). Aunque consideremos que tenemos el software del entorno correctamente configurado, estas ubicaciones de almacenamiento de datos suelen ser gestionadas directamente por el sistema operativo y  pueden quedar “descubiertas” y susceptibles a almacenar información de forma no controlada, dando pie a riesgos innecesarios.

A continuación se enumeran algunos controles a tener en cuenta para la protección de datos en estas ubicaciones de almacenamiento, con el objeto de prevenir fugas o pérdida de datos de tarjetas de pago:

Memoria RAM

Dada la dinámica volátil y aleatoria del almacenamiento en memoria RAM, poco o nada se puede hacer para proteger los datos ubicados allí. Sin embargo – y teniendo en cuenta que las tareas vinculadas a cifrado/descifrado y procesamiento de datos se realizan en la memoria RAM y que es el único lugar en donde se puede almacenar de forma temporal la información de tarjetas de pago (http://selfservice.kb.net/article.aspx?article=5367&p=81) – es importante evitar cualquier copia de estos datos a un medio de almacenamiento persistente para evitar potenciales ataques y remanencia (https://citp.princeton.edu/research/memory/).

En este caso, es crítico que en la línea base de software del equipo (req. 2.2 y 12.3.7) se prevenga el uso de depuradores, descompiladores o volcadores (software que permite realizar volcados de memoria RAM) en servidores de producción, así como la protección física de los equipos para evitar que los componentes de la memoria RAM sean extraídos y el equipo pueda ser iniciado desde sistemas operativos Live (Ejemplo: msramdmp)

Por otro lado, existen productos de software que “emulan” la memoria RAM empleando porciones de disco duro para tal fin. Estos productos son conocidos como “RAMDisk” o “Virtual RAM”. Al ser parte de un disco duro, mantienen persistente la información almacenada. En este caso, es importante revisar la configuración de estos aplicativos y realizar borrados seguros de su contenido antes de apagar el equipo.

Área de swap

El área de swap es un espacio de disco duro gestionado por el sistema operativo que se emplea para copiar páginas de memoria inactiva cuando la memoria RAM está llena. Por lo general este espacio en disco suele ser como mínimo del mismo tamaño que la memoria RAM del equipo (aunque no siempre se sigue esta regla) y puede ser visto como un archivo (pagefile.sys en Windows) o como una partición independiente (swap en Unix). Al ser copiado contenido de la memoria RAM en dicha ubicación del disco duro, potencialmente pueden existir datos remanentes de tarjetas de pago.

Una buena práctica es borrar el área de swap (tanto en Windows como en Unix) al apagar el equipo. Sin embargo – y si se realiza un análisis forense – se puede extraer información de los clústeres en disco asignados a este fichero o partición ya que el borrado no es un borrado seguro, con lo cual esta sola acción no es suficiente. Para ello, se puede obligar al sistema operativo a que cifre esta área.

Para Windows, ejecutar el siguiente comando (como administrador):

Para Unix, depende del tipo de sistema operativo, pero por lo general esta funcionalidad se configura directamente como un parámetro del kernel.

Tener presente que la activación de este parámetro puede penalizar el desempeño de servidores con altas cargas de procesamiento.

Archivos de hibernación (Hibernation) y suspensión (Suspend)

Estos ficheros se pueden encontrar más que todo en equipos portátiles y/o estaciones cuando se quiere reanudar el trabajo sin necesidad de apagar el computador con el fin de ahorrar energía. Dado que esta acción directamente hace un volcado de la información en RAM en un archivo (hiberfil.sys en Windows o particiones/archivos de swap), se puede extraer mucha información de allí. La recomendación es deshabilitar esta funcionalidad y eliminar este fichero.

Para Windows, ejecutar el siguiente comando (como administrador):

Después de un reinicio, el sistema operativo borrará el fichero. Si no, se puede eliminar manualmente.

Para Unix/Linux, la configuración por lo general se realiza en el kernel o en las funcionalidades de gestión de energía, dependiendo de la distribución. Herramientas como swsusp o TuxOnIce permiten gestionar estas tareas (https://wiki.archlinux.org/index.php/Suspend_and_Hibernate).

Archivos de volcado de memoria (dump)

Estos son los típicos archivos que el sistema operativo crea cuando aparece una pantalla azul (BSOD) debido a problemas en la ejecución ya sea de un aplicativo o del propio sistema operativo. Contienen un volcado de todo lo que está en memoria en ese momento, incluyendo claves y datos de tarjetas descifradas (si es el caso). La recomendación es deshabilitar esta funcionalidad.

En Windows, realizar las siguientes acciones:

Mi PC -> Propiedades -> Configuración avanzada del sistema -> Opciones avanzadas -> Inicio y recuperación -> Configuración y en el apartado “Escribir información de depuración” seleccionar “Ninguno”

Para Unix/Linux, depende de la distribución. En esta URL se puede encontrar más información al respecto: http://www.cyberciti.biz/faq/linux-disable-core-dumps/

Conclusión: Es importante tener presente que dentro de la operativa normal con datos de tarjetas de pago puede existir información remanente en ubicaciones gestionadas por el sistema operativo y fuera del control del usuario, tales como memoria RAM, áreas de swap, archivos de depuración y volcado y archivos de hibernación/suspensión.

Para evitar potenciales riesgos relacionados con estos datos, se recomienda:

  • Implementar acciones técnicas como las descritas anteriormente para proteger y/o eliminar datos de ubicaciones no controladas
  • Enumerar y describir estas acciones en los estándares de configuración segura de cada plataforma
  • Proteger físicamente el equipo para prevenir potenciales accesos no autorizados a los medios de almacenamiento
  • En función de las necesidades, para proteger esta información cuando el disco duro se encuentra offline, se puede emplear cifrado de disco, conforme con el requerimiento 3.4.1.