Security WatchOnde está minha PII?

Frank Simorjay

Todos falamos da PII (Informações de Identificação Pessoal) ser a informação mais importante a ser protegida. Mas antes de poder protegê-la, você deve compreender perfeitamente que PII você coletou no seu PC. É fácil dizer que tudo o que há no seu computador é confidencial, mas o que realmente você quer dizer com “tudo”?

Para lançar uma luz sobre isso, comecei a olhar o problema com mais detalhes, dividindo tipos de dados que podem ser confidenciais e descobrindo onde os dados podem terminar no seu computador. Primeiro, a confidencialidade das informações é muitas vezes uma opinião pessoal. Por exemplo, algumas pessoas se sentem ameaçadas se seu nome aparece em um resultado de pesquisa. É claro que, a menos que você tenha vivido sob uma pedra, há uma grande chance de que alguém tenha postado seu nome na Internet de alguma forma a esta altura. Para investigar, use seu mecanismo de pesquisa favorito para pesquisar seu nome online. Tenha em mente que quanto mais comum seu nome for, mais difícil será encontrar ocorrências que se refiram especificamente a você. E você pode considerar isso uma coisa boa.

Se estiver se procurando na Internet, convém verificar também alguns dos sites de rede social populares, como o LinkedIn, Facebook e YouTube. É incrível ver a capacidade que a Internet possui de armazenar e dispersar informações particulares que exigiam esforços de pesquisa diligentes para serem reveladas.

Saber que informações você precisa proteger é mais uma ciência do que costumava ser antes. Para ajudar, achei que seria interessante ver se o seu computador possui informações potencialmente particulares sobre as quais você pode não estar ciente, mas que pode desejar proteger. Embora você possa dizer que todas as informações pessoais que podem ser usadas para roubar sua identidade são confidenciais, as informações podem realmente ser separadas em dois níveis de detalhes. Existem informações disponíveis de imediato e informações mais particulares e geralmente consideradas essenciais para a sua identidade pessoal.

As informações prontamente disponíveis não são tipicamente consideradas PII. Isso inclui seu nome e pode também consistir no seu telefone, endereço da rua, endereço de e-mail, sexo e, em vários casos, seu local de emprego e algumas informações educacionais. Esses itens estão disponíveis prontamente na Internet e em diretórios públicos, como listas telefônicas. A divulgação dessas informações, como permitir acidentalmente que um remetente de spam obtenha seu endereço de e-mail, pode ser irritante, mas sozinhas elas não levariam ao roubo de identidade.

As informações confidenciais consistem de mais dados particulares que fornecem uma ligação à sua identidade. Os dados que você não gostaria de divulgar publicamente incluem seu número de CPF (ou outro identificador único semelhante fornecido pelo seu governo), números de contas bancárias, números de cartões de crédito (particularmente quando acompanhados pela data de validade e identificação do membro do cartão), o número da sua carteira de motorista e sua impressão digital (ou outra informação relacionada à biométrica). Quando nas mãos erradas, esses itens podem ser usados em maneiras muito prejudiciais. É importante que você controle onde e como essas informações são gravadas e armazenadas, na Internet e no seu PC. Com esse fim, discutirei agora alguns métodos simples para encontrar qualquer PII que possa estar armazenada no disco rígido do seu sistema.

Localizando dados de PII no seu computador

As informações PII estão espalhadas por todos os lugares. Na verdade, se você examinasse o seu lixo, provavelmente encontraria algumas PII bem facilmente. Proteger essas informações requer diligência e um pouco de cuidado. Recomendo que todos invistam em um bom picador de papéis e que piquem tudo o que possua informações pessoais.

Mas e a PII que fica escondida no seu PC? Encontrar esses dados pode ser tão desafiador quanto armazená-los de modo seguro. O Windows Vista®, e várias outras ferramentas de pesquisa do computador de mesa, pode ajudá-lo a localizar informações no seu sistema. Mas você precisa saber que informações procurar.

Para ilustrar o problema, estou usando algumas ferramentas simples que me permitirão fornecer rápidos exemplos práticos do que há em jogo. Estou usando scripts com o Windows PowerShell®. Entre as várias coisas que o Windows PowerShell faz, você descobrirá que ele fornece também recursos excelentes de correspondência de cadeia de caracteres. Para atender aos nossos objetivos, estarei me concentrando na sua habilidade de comparar expressões regulares. O Windows PowerShell (disponível em microsoft.com/powershell) é uma ferramenta eficiente que rapidamente se tornou um padrão para tarefas administrativas.

Além disso, usarei o findstr.exe para fornecer um meio para gerenciar falsos positivos, isto é, a capacidade de ignorar arquivos que podem conter cadeias de caracteres que pareçam interessantes (devido à aleatoriedade de cadeias de caracteres de dados em arquivos binários), mas que na verdade não são de interesse aqui. Em outras palavras, arquivos que não sejam de texto podem ser ignorados para esse exercício.

Selecionei dois bons tipos de dados de PII: Números de CPF e informações de cartões de crédito. Esses dados devem ser fáceis de se encontrar se realmente estiverem armazenados no seu disco rígido em texto não-criptografado. A estrutura e o padrão dos dois tipos de dados são únicos o suficiente para permitir que um script simples encontre as informações. No entanto, esses dados também são confidenciais, de forma que eu me pergunto por que eles precisam estar armazenados no seu PC. Se estiver decidido a armazenar essas informações, garanta que elas estejam protegidas. Eu discutirei maneiras de proteger sua PII em breve. Minha discussão aqui é reconhecidamente limitada — existem outros tipos de dados de PII importantes que não inclui aqui, como nomes de usuário e senhas.

Procurando um número da Previdência Social dos EUA

Veja aqui uma cadeia de caracteres simples que irá procurar qualquer informação em arquivos que consistam em um número da Previdência Social dos EUA estruturado como XXX XX XXXX ou XXX-XX-XXXX. Usando o Windows PowerShell, você pode simplesmente digitar as seguintes linhas:

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

Ou você pode usar o findstr.exe para garantir que arquivos binários não sejam lidos para a pesquisa usando isto:

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

Nessa amostra, Get-ChildItem –rec conduz uma pesquisa de arquivos recursiva no diretório que começa a partir do diretório no qual o comando foi executado. Findstr.exe procura cadeias de caracteres em arquivos e Select-string é a função de pesquisa de cadeia de caracteres do Windows PowerShell. (Findstr.exe fornece uma funcionalidade semelhante que não discutirei aqui.) Além disso, observe que o espaço à esquerda na expressão regular é proposital. Isso ajuda a reduzir falsos positivos, eliminando informações desnecessárias, como cadeias de caracteres do Registro, como HKLM\SOFTWARE\tool\XXX-XX-XXXX.

Na minha execução de amostra, o padrão de pesquisa retornou um arquivo de amostra de teste que coloquei em um subdiretório e ele também encontrou amostras localizadas em um arquivo XML que descreve padrões de arquivos para números de cartão de crédito e da Previdência Social (veja a Figura 1).

Figure 1 Resultados ao pesquisar um padrão numérico

Figure 1** Resultados ao pesquisar um padrão numérico **(Clique na imagem para aumentar a exibição)

Eu uso o recurso de exclusão no primeiro exemplo para eliminar todos os arquivos .exe e .dll, uma vez que eles podem gerar interferências desnecessárias. Você pode detectar outros tipos de arquivos que também causam falsos positivos. Se encontrar, você poderá usar o recurso de exclusão para ajustar o processo de pesquisa.

Se estiver procurando apenas um número específico de Previdência Social, poderá fazer o seguinte (substituindo "123 45 6789" pelo seu número da Previdência Social):

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

Os resultados desse esforço de pesquisa são exibidos na Figura 2.

Figure 2 Procurando um número específico

Figure 2** Procurando um número específico **(Clique na imagem para aumentar a exibição)

Procurando informações de cartões de crédito

As informações de cartões de crédito são um pouco complicadas porque os formatos variam. E desejo limitar os falsos positivos (isto é, resultados que parecem com um número de cartão de crédito apenas por um acaso aleatório). No entanto, a pesquisa provavelmente apresentará algumas seqüências aleatórias meramente semelhantes a números de cartões de crédito.

Estou usando informações fornecidas no artigo "Anatomia dos números de cartões de crédito", de Michael Gilleland, como uma referência ao criar essas cadeias de caracteres (consultemerriampark.com/anatomycc.htm). Por exemplo, minha cadeia de caracteres de pesquisa especifica que o primeiro número deve ser um 4, 5 ou 6, uma vez que isso é definido como o principal identificador da indústria do cartão de crédito.

Aqui eu criei cadeias de caracteres simples que irão pesquisar cartões Discover, MasterCard e Visa. No Windows PowerShell, minha cadeia de caracteres de pesquisa parece com isto:

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}"

Na amostra exibida na Figura 3, usei a função de exclusão para eliminar as interferências dos tipos de arquivos .rtf, .rbl e .h. Além disso, o código de amostra procura cadeias de caracteres de cartão de crédito que não possuam espaços ou traços. Isso, infelizmente, pode sobrecarregar sua exibição. Então, a seguir um comando alternativo para a mesma função, mas esse não apanhará números de cartões sem espaço ou sem traço:

Figure 3 Usando a exclusão para eliminar a interferência dos resultados

Figure 3** Usando a exclusão para eliminar a interferência dos resultados **(Clique na imagem para aumentar a exibição)

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

Como cartões American Express são consideravelmente diferentes, criei uma cadeia de caracteres de pesquisa modificada para localizar o padrão desse cartão. No Windows PowerShell, a cadeia de caracteres de pesquisa parece com isto:

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}"

A sobrecarga de dados pode afetar esse resultado também. Esse comando alternativo é a mesma função, mas não apanhará números de cartões sem espaço ou sem traço:

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

Ao escrever esta coluna, executei essas pesquisas no meu próprio sistema e fiquei um tanto surpreso em encontrar várias ocorrências do meu número da Previdência Social gravado em lugares onde ele não deveria estar armazenado. Acontece que as informações estavam localizadas em um aviso que escrevi muito tempo atrás e do qual esqueci. Isso me fez repensar no que devo e não devo anotar!

Se você decidir que não deseja armazenar essas informações, mas apenas de uma maneira segura, tente usar uma ferramenta como a Password Safe (disponível em passwordsafe.sourceforge.net). Ou criptografe seu disco rígido com uma ferramenta como a Criptografia de Unidade de Disco BitLockerTM. Finalmente, o Kit de Ferramentas de Criptografia de Dados para PCs móveis fornece uma orientação testada sobre a proteção de dados em um PC móvel. Essas soluções irão pelo menos dificultar um pouco o acesso para alguém que possa estar passeando pelo seu PC em busca de informações pessoais.

Conclusão

Encontrar informações PII é razoavelmente simples. Estar ciente das informações é a parte complicada. Mas tenha em mente que um malware ou um usuário mal-intencionado que tenha obtido acesso ao seu sistema pode usar técnicas de descobertas semelhantes para encontrar informações no seu sistema igualmente fácil. Cuidado com relação a quando e onde você digita as informações PII e, se estiver decidido a armazená-las, certifique-se de criptografá-las.

Gostaria de agradecer a Matt Hainje por ajudar a solucionar problemas com meus scripts do Windows PowerShell.

Frank Simorjay é gerente de programa técnico do grupo de segurança e conformidade do Solution Accelerator da Microsoft. Ele projeta soluções de segurança para clientes da Microsoft, discursa em eventos, como a Secure World Exposition (da qual ele é um fundador), fornece educação e treinamento sobre segurança e tem contribuído com uma variedade de documentos e livros sobre segurança. Seu trabalho mais recente é o "Malware Removal Starter Kit".

© 2008 Microsoft Corporation e CMP Media, LLC. Todos os direitos reservados. A reprodução parcial ou completa sem autorização é proibida..