Vigilancia de seguridad¿Dónde está mi información PII?

Frank Simorjay

Todos hablamos de la información personal identificable (PII, Personally Identifiable Information) como la información más importante que debemos proteger. Pero antes de proteger su PII, debe entender completamente qué PII ha reunido en su PC. Es fácil decir que todo el contenido de su equipo es sensible, ¿pero qué quiere decir con "todo el contenido"?

Para arrojar un poco de luz sobre esto, empecé a estudiar el problema con más detalle, desglosando los tipos de datos que pueden ser confidenciales y resolviendo en qué parte del equipo pueden acabar los datos. Primero, la confidencialidad de la información suele ser una apreciación personal. Por ejemplo, algunas personas se sienten amenazadas si sus nombres aparecen en los resultados de una búsqueda. Por supuesto, a menos que haya vivido debajo de una piedra, es posible que a estas alturas alguien haya publicado su nombre en Internet. Para averiguarlo, use su motor de búsqueda favorito para buscar su nombre en la Web. Tenga presente que cuanto más común sea su nombre, más difícil será encontrar resultados que se refieran específicamente a usted. Y puede que esto le parezca algo positivo.

Ya que se busca en Internet, quizás desee comprobar también algunos de los sitios de contactos sociales más populares, como LinkedIn, Facebook y YouTube. Impresiona ver la capacidad de Internet para almacenar y dispersar información privada cuya búsqueda solía requerir grandes esfuerzos.

Saber la información que necesita proteger tiene más de ciencia hoy día que en el pasado. Para ayudar, pensé que sería interesante ver si su equipo tiene información potencialmente confidencial de la que usted no tiene constancia y que posiblemente quiera proteger. Aunque sea de la opinión de que toda la información personal que puede ser usada para robar su identidad es confidencial, en realidad la información puede dividirse en dos niveles de detalle. Hay información que se encuentra fácilmente disponible e información con un carácter más privado que generalmente se considera esencial para su identidad personal.

Normalmente, la información que se encuentra fácilmente disponible no se considera PII. Esto incluye su nombre y, a veces, su número de teléfono, dirección postal, dirección de correo electrónico y género. Además, en muchos casos, puede incluir su lugar de trabajo e información académica. Estos elementos se encuentran fácilmente disponibles en Internet y en directorios públicos tales como las guías de teléfonos. La divulgación de esta información, como dar permiso accidentalmente a un remitente de spam para recoger su dirección de correo electrónico, puede ser molesta, pero por sí misma no causaría el robo de la identidad.

La información confidencial consiste en datos más privados que proporcionan un vínculo a su identidad. Entre los datos que no desearía divulgar públicamente se encuentran su número de la seguridad social (u otro identificador semejante proporcionado por su gobierno), números de cuentas bancarias, números de tarjetas de crédito (especialmente cuando incluyen la fecha de vencimiento y el identificador de miembro de la tarjeta), número del permiso de conducción y su huella dactilar (u otra información biométrica relacionada). En las manos equivocadas, estos elementos se pueden usar de forma muy malintencionada. Es importante que controle dónde y cómo se registra y almacena esta información, tanto en Internet como en su equipo. Con este fin, describiré un par de métodos sencillos para encontrar cualquier PII que pueda estar almacenada en el disco duro de su sistema.

Búsqueda de datos PII en su equipo

La información PII está dispersa por todas partes. De hecho, si tuviera que hurgar en su basura, probablemente encontraría algún tipo de información PII con facilidad. Proteger esta información requiere diligencia y un poco de cuidado. Recomiendo que todo el mundo invierta en una buena trituradora de papel y destruya cualquier cosa que incluya información personal.

¿Pero qué hacemos con la PII que merodea por su equipo? Encontrar estos datos puede ser tan complicado como almacenarlos de manera segura. Windows Vista®, y otras herramientas de búsqueda de escritorio, pueden ayudarle a encontrar información en su sistema. Pero necesita saber qué información quiere buscar.

Para ilustrar el problema, voy a usar un par de herramientas sencillas que me permitirán ofrecer ejemplos prácticos y rápidos de lo que está en juego. Estoy usando scripts con Windows PowerShell®. Entre otras muchas cosas, Windows PowerShell también ofrece excelentes capacidades de coincidencia de cadenas. Para el fin que nos ocupa, me centraré en su capacidad para buscar coincidencias de expresiones regulares. Windows PowerShell (disponible en microsoft.com/powershell) es una eficaz herramienta que se ha convertido rápidamente en un estándar para las tareas administrativas.

Adicionalmente, usaré findstr.exe para proporcionar un medio para administrar falsos positivos. Con esto me refiero a la capacidad de omitir los archivos que puedan contener cadenas que tienen un aspecto interesante (debido a la aleatoriedad de las cadenas de datos incluidas en los archivos binarios) pero no guardan ningún interés en realidad. En otras palabras, los archivos que no sean de texto se pueden omitir para este ejercicio.

He seleccionado dos buenos tipos de datos PII: Los números de la Seguridad Social y la información de la tarjeta de crédito. Debería ser fácil encontrar estos datos si están almacenados en su disco duro en texto no cifrado. La estructura y el patrón de ambos tipos de datos son muy distintivos, por lo que un script sencillo debería encontrar la información. Sin embargo, estos datos también son lo suficientemente confidenciales como para preguntarnos qué necesidad hay de almacenarlos en el equipo. Si usted es propenso a almacenar este tipo de información, debería asegurarse de que está protegida. En un momento cubriré las formas de proteger la información PII. La descripción que incluyo aquí es claramente limitada, ya que hay otros importantes tipos de datos PII que he dejado fuera, como los nombres de usuario y las contraseñas.

Búsqueda del número de la Seguridad Social

Aquí tenemos una cadena sencilla que buscará cualquier información incluida en los archivos que contenga un número estándar de la Seguridad Social de EE.UU. con la estructura XXX XX XXXX o XXX XX XXXX. Con Windows PowerShell, sólo tiene que escribir las siguientes líneas:

Get-ChildItem  -rec -exclude *.exe,*.dll |
select-string " [0-9]{3}[-| ][0-9]{2}[-| ]
[0-9]{4}" 

O puede usar findstr.exe para asegurarse de que los archivos binarios no se leen para la búsqueda:

Get-ChildItem  -rec | ?{ findstr.exe 
/mprc:. $_.FullName } | select-string 
" [0-9]{3}[-| ][0-9]{2}[-| ][0-9]{4}"

En este ejemplo, Get-ChildItem –rec realiza una búsqueda recursiva de directorio de los archivos que se inician desde el directorio en el que se ejecutó el comando. Findstr.exe busca cadenas en archivos y Select-string es la función de búsqueda de cadenas de Windows PowerShell. Findstr.exe ofrece una funcionalidad semejante que no describo aquí. Además, tenga en cuenta que el espacio inicial de la expresión regular es deliberado. Esto ayuda a reducir los falsos positivos mediante la eliminación de información innecesaria, como las cadenas del Registro del tipo HKLM\SOFTWARE\tool\XXX-XX-XXXX.

En mi ejemplo, la pauta de búsqueda devolvió un archivo de muestra de prueba que puse en un subdirectorio. También encontró muestras localizadas en un archivo XML que define los patrones de número de las tarjetas de crédito y la Seguridad Social (consulte la Figura 1).

Figura 1 Resultados de la búsqueda de un patrón de número

Figura 1** Resultados de la búsqueda de un patrón de número **(Hacer clic en la imagen para ampliarla)

Uso la capacidad de exclusión del primer ejemplo para deshacerme de todos los archivos .exe y .dll, ya que pueden generar ruido innecesario. Puede que descubra otros tipos de archivos que también causen falsos positivos. Si éste es el caso, puede usar la capacidad de exclusión para ajustar el proceso de búsqueda.

Si busca sólo un número específico de la Seguridad Social , puede hacer lo siguiente (reemplazando “123 45 6789" por su número del la Seguridad Social):

Get-ChildItem  -rec | ?{ findstr.exe 
/mprc:. $_.FullName } | select-string 
"123 45 6789","123-45-6789"

Los resultados de esta búsqueda se muestran en la Figura 2.

Figura 2 Búsqueda de un número específico

Figura 2** Búsqueda de un número específico **(Hacer clic en la imagen para ampliarla)

Búsqueda de información de tarjeta de crédito

La información de la tarjeta de crédito es un poco más complicada, ya que los formatos varían. Y deseo limitar los falsos positivos, es decir, los resultados que parecen un número de tarjeta de crédito por pura casualidad. Sin embargo, es probable que la búsqueda encuentre algunas secuencias aleatorias que son meramente similares a los números de tarjeta de crédito.

Uso como referencia información del ensayo "Anatomía de los números de tarjeta de crédito" de Michael Gilleland para crear estas cadenas (consulte merriampark.com/anatomycc.htm). Por ejemplo, mi cadena de búsqueda especifica que el primer número debe ser 4, 5, o 6, puesto que se han definido como los principales identificadores de la industria de la tarjeta de crédito.

He creado cadenas sencillas que buscarán tarjetas Discover, MasterCard y Visa. En Windows PowerShell, mi cadena de búsqueda tiene este aspecto:

Get-CchildItem  -rec | ?{ findstr.exe 
/mprc:. $_.FullName } | select-string
 "[456][0-9]{15}","[456][0-9]{3}[-| ][0-9]{4}
[-| ][0-9]{4}[-| ][0-9]{4}"

En la muestra de la Figura 3, usé la función de exclusión para eliminar el ruido de los tipos de archivo .rtf, .rbl y .h. Adicionalmente, el código de muestra busca cadenas de tarjeta de crédito que no tengan espacios ni guiones. Esto, desgraciadamente, puede sobrecargar la pantalla. Aquí tiene un comando alternativo para la misma función que no filtra números de tarjeta sin espacios ni guiones:

Figura 3 Uso de la función de exclusión para eliminar el ruido de los resultados

Figura 3** Uso de la función de exclusión para eliminar el ruido de los resultados **(Hacer clic en la imagen para ampliarla)

Get-ChildItem  -rec | ?{ findstr.exe 
/mprc:. $_.FullName } | select-string
"[456][0-9]{3}[-| ][0-9]{4}[-| ][0-9]{4}
[-| ][0-9]{4}"

Puesto que las tarjetas American Express son considerablemente diferentes, he creado una cadena de búsqueda modificada para localizar ese patrón de tarjeta. En Windows PowerShell, la cadena de búsqueda tiene este aspecto:

Get-ChildItem -rec | ?{ findstr.exe 
/mprc:. $_.FullName } | select-string
"3[47][0-9]{13}","3[47][0-9]{2}[-| ][0-9]{6}
[-| ][0-9]{5}"

La sobrecarga de datos también puede afectar a este resultado. Este comando alternativo realiza la misma función pero no filtra números de tarjeta sin espacios ni guiones:

Get-childitem -rec | ?{ findstr.exe 
/mprc:. $_.FullName } | select-string
"3[47][0-9]{2}[-| ][0-9]{6}[-| ][0-9]{5}"

Al escribir esta columna, ejecuté estas búsquedas en mi propio sistema y me sorprendió bastante encontrar varias instancias de mi número de la Seguridad Social guardado en lugares en los que no debería haberse almacenado. Resulta que la información se encontraba en una nota que escribí hace tiempo y que olvidé por completo. Esto me hizo recapacitar sobre lo que debo y no debo anotar.

Si decide que sólo quiere almacenar esta información de una manera segura, pruebe a usar una herramienta como Password Safe (disponible en passwordsafe.sourceforge.net). O cifre su disco duro con una herramienta como Cifrado de unidad BitLockerTM . Finalmente, el kit de herramientas de cifrado de datos para equipos portátiles proporciona orientación probada sobre la protección de datos en equipos móviles. Al menos estas soluciones le pondrán las cosas más difíciles a los intrusos que quieran llevarse información personal de su equipo.

Conclusión

Encontrar información PII es bastante sencillo. Tener conciencia de la información es la parte complicada. Pero tenga presente que el malware o un usuario malintencionado que haya obtenido acceso a su sistema puede usar técnicas de detección semejantes para encontrar información en su sistema con la misma facilidad. Tenga cuidado con el momento y el lugar en el que ingresa información PII. Además, si es propenso a almacenar la información, asegúrese de que la cifra.

Quiero dar las gracias a Matt Hainje por ayudarme a solucionar mis problemas con los scripts de Windows PowerShell.

Frank Simorjayes administrador de programas técnicos del grupo de aceleradores de solución, seguridad y cumplimiento de Microsoft. Frank diseña soluciones de seguridad para clientes de Microsoft, da conferencias en eventos como la Exposición Mundial de Seguridad (de la que es fundador), proporciona educación y aprendizaje de seguridad y ha colaborado con numerosos periódicos y libros sobre esta materia. Su trabajo más reciente es el "Starter kit de eliminación de malware".

© 2008 Microsoft Corporation and CMP Media, LLC. Reservados todos los derechos; queda prohibida la reproducción parcial o total sin previa autorización.