
Um scanner de Informações Pessoais Identificáveis (PII) alimentado por IA.
⠀⠀⠀⠀⠀⠀⠀⣤⣤⣄⣀⡀⠀⠀⠀⢀⣠⣤⣤⣄⡀⠀⠀⠀⢀⣀⣠⣤⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠸⣿⣿⡿⠿⢿⣷⡄⢠⣿⣿⣿⣿⣿⣿⡄⢀⣾⡿⠿⢿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⠀⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣠⣤⡀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠀⠀⠀
⠸⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀
⠀⠉⠉⠁⠀⠀⠀⠀⣿⣿⠀⢸⣿⡇⠀⠉⣿⣿⣿⣿⠉⠀⢸⣿⡇⠀⣿⣿⠀⠀⠀⠀⠈⠉⠉⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣀⣈⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣁⣀⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠘⠿⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠿⠿⠃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣤⣤⣤⣴⣿⣿⣿⡇⢸⣿⡿⣿⣦⣤⣤⣤⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢸⣿⠋⠉⠉⠉⠉⠉⠉⢸⣿⡇⢸⣿⡇⠈⠉⠉⠉⠉⠉⠙⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢰⣿⣿⣦⠀⢰⣿⣿⣦⠀⢸⣿⡇⢸⣿⡇⠀⣰⣿⣿⡆⠀⣴⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠻⠿⠋⠀⠘⣿⣿⠃⠀⢸⣿⡇⢸⣿⡇⠀⠘⣿⣿⠃⠀⠙⠿⠟⠁⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣦⣤⣼⣿⠃⠘⣿⣧⣄⣤⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠁⠀⠀⠈⠛⠛⠛⠋⠀⠀⠀
⠀⠀⠀⠀⠀⠀ ⠀O C T O P I I⠀⠀⠀⠀
Copyright © 2023 RedHunt Labs Private Limited
O Octopii é um scanner de Informações Pessoais Identificáveis (PII) que usa Reconhecimento Óptico de Caracteres (OCR), listas de expressões regulares e Processamento de Linguagem Natural (NLP) para buscar em locais públicos por documentos de identidade governamental, endereços, e-mails, etc., em imagens, PDFs e documentos.
Vazamentos de PII são frequentemente negligenciados no espaço de segurança cibernética. Na RedHunt Labs, sempre buscamos maneiras diferentes e inovadoras de criar soluções de segurança cibernética que as organizações e serviços precisam. Encontramos um número substancial de organizações que têm seus servidores configurados incorretamente. Isso faz com que PII de funcionários e clientes vaze o tempo todo, dando a partes maliciosas informações sensíveis sobre suas origens, números de identificação, informações de contato e localização.
É por isso que criamos o Octopii, uma ferramenta para demonstrar e detectar como é fácil automatizar a descoberta e extração de PII e documentos sensíveis vazados na Internet.
pip install -r requirements.txt.sudo apt install tesseract-ocr -y no Ubuntu ou sudo pacman -Syu tesseract no Arch Linux.python -m spacy download en_core_web_sm.Depois de instalar o acima, você está pronto.
Para executar o Octopii, digite
python3 octopii.py <local para escanear>
onde <local para escanear> é um arquivo ou diretório.
O Octopii atualmente suporta escaneamento local via caminho do sistema de arquivos, URLs S3 e listagens de diretórios abertos do Apache. Você também pode fornecer URLs de imagens individuais ou arquivos como argumento.
Fornecemos uma pasta dummy-pii/ contendo PII de amostra para você testar o Octopii. Passe-a como argumento e você obterá a seguinte saída:
owais@artemis ~ $ python3 octopii.py dummy-pii/
Searching for PII in dummy-pii/dummy-drivers-license-nebraska-us.jpg
{
"file_path": "dummy-pii/dummy-drivers-license-nebraska-us.jpg",
"pii_class": "Nebraska Driver's License",
"country_of_origin": "United States",
"faces": 1,
"identifiers": [],
"emails": [],
"phone_numbers": [
"4000002170"
],
"addresses": [
"Nebraska"
]
}
Searching for PII in dummy-pii/dummy-PAN-India.jpg
{
"file_path": "dummy-pii/dummy-PAN-India.jpg",
"pii_class": "Permanent Account Number",
"country_of_origin": "India",
"faces": 0,
"identifiers": [],
"emails": [],
"phone_numbers": [],
"addresses": [
"INDIA"
]
}
...
Um arquivo chamado output.txt é criado, contendo a saída da ferramenta. Este arquivo é anexado sequencialmente em tempo real.
O Octopii usa Tesseract para Reconhecimento Óptico de Caracteres (OCR) e NLTK para Processamento de Linguagem Natural (NLP) para detectar strings de informações pessoais identificáveis. Isso é feito através das seguintes etapas:
O Octopii escaneia imagens (jpg e png) e documentos (pdf, doc, txt, etc.). Ele suporta 3 fontes:
Imagens são detectadas via Python Imaging Library (PIL) e abertas com OpenCV. PDFs são convertidos em uma lista de imagens e escaneados via OCR. Tipos de arquivo baseados em texto são lidos como strings e escaneados sem OCR.
Uma técnica de detecção de imagem de classificação binária - conhecida como "cascade Haar" - é usada para detectar rostos dentro das imagens. Um modelo cascade pré-treinado é fornecido neste repositório, contendo dados em cascade para uso do OpenCV. Múltiplos rostos podem ser detectados na mesma imagem de PII, e o número de rostos detectados é retornado.
As imagens são então "limpas" para extração de texto com as seguintes etapas de transformação de imagem:

Como essas etapas removem dados da imagem (incluindo cores em fotografias), esse processo de limpeza de imagem ocorre após a tentativa de detecção de rosto.
O Tesseract é usado para capturar todas as strings de texto de uma imagem/arquivo. Em seguida, é tokenizado em uma lista de strings, divididas por caracteres de nova linha ('\n') e espaços (' '). Texto distorcido, como strings null e caracteres únicos, são descartados desta lista, resultando em uma lista 'inteligível' de palavras potenciais.
Esta lista de palavras é então alimentada em uma função de verificação de similaridade. Esta função usa correspondência de padrões Gestalt para comparar cada palavra extraída do documento PII com uma lista de palavras-chave, presente em definitions.json. Essa verificação ocorre uma vez por limpeza. O número de vezes que uma palavra aparece a partir da lista de palavras-chave é contado e usado para derivar uma pontuação de confiança. Quando as palavras-chave de uma definição específica aparecem repetidamente nestes escaneamentos, essa definição obtém a maior pontuação e é escolhida como a classe PII prevista.
O Octopii também verifica substrings sensíveis de PII, como e-mails, números de telefone e identificadores únicos comuns de documentos governamentais, usando expressões regulares. Ele também pode extrair dados de geolocalização, como endereços e países, usando Processamento de Linguagem Natural.
A saída consiste no seguinte:
file_path: Onde o arquivo contendo PII pode ser encontradopii_class: O tipo de PII que este arquivo contémcountry_of_origin: De onde esta PII se origina.identifiers: Identificadores, códigos ou números únicos que podem ser usados para direcionar o indivíduo mencionado na PII.emails e phone_numbers: Informações de contato no arquivo.addresses: Qualquer forma de dados de geolocalização na PII. Isso pode ser usado para triangular a localização de um indivíduo.Clique aqui para ler sobre como você pode contribuir para o Octopii.
...e inúmeros outros
Esta ferramenta é destinada apenas para fins de pesquisa e educacionais. A RedHunt Labs e outros contribuidores deste projeto não assumem nenhuma responsabilidade pelo uso malicioso desta ferramenta.
Copyright © 2023 RedHunt Labs Private Limited.
Por Owais Shaikh