
Un escáner de Información Personal Identificable (PII) impulsado por IA.
⠀⠀⠀⠀⠀⠀⠀⣤⣤⣄⣀⡀⠀⠀⠀⢀⣠⣤⣤⣄⡀⠀⠀⠀⢀⣀⣠⣤⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠸⣿⣿⡿⠿⢿⣷⡄⢠⣿⣿⣿⣿⣿⣿⡄⢀⣾⡿⠿⢿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⠀⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣠⣤⡀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠀⠀⠀
⠸⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀
⠀⠉⠉⠁⠀⠀⠀⠀⣿⣿⠀⢸⣿⡇⠀⠉⣿⣿⣿⣿⠉⠀⢸⣿⡇⠀⣿⣿⠀⠀⠀⠀⠈⠉⠉⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣀⣈⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣁⣀⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠘⠿⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠿⠿⠃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣤⣤⣤⣴⣿⣿⣿⡇⢸⣿⡿⣿⣦⣤⣤⣤⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢸⣿⠋⠉⠉⠉⠉⠉⠉⢸⣿⡇⢸⣿⡇⠈⠉⠉⠉⠉⠉⠙⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢰⣿⣿⣦⠀⢰⣿⣿⣦⠀⢸⣿⡇⢸⣿⡇⠀⣰⣿⣿⡆⠀⣴⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠻⠿⠋⠀⠘⣿⣿⠃⠀⢸⣿⡇⢸⣿⡇⠀⠘⣿⣿⠃⠀⠙⠿⠟⠁⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣦⣤⣼⣿⠃⠘⣿⣧⣄⣤⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠁⠀⠀⠈⠛⠛⠛⠋⠀⠀⠀
⠀⠀⠀⠀⠀⠀ ⠀O C T O P I I⠀⠀⠀⠀
Copyright © 2023 RedHunt Labs Private Limited
Octopii es un escáner de Información de Identificación Personal (PII) que utiliza Reconocimiento Óptico de Caracteres (OCR), listas de expresiones regulares y Procesamiento del Lenguaje Natural (PLN) para buscar en ubicaciones públicas documentos de identidad gubernamentales, direcciones, correos electrónicos, etc., en imágenes, PDFs y documentos.
Las filtraciones de PII suelen pasarse por alto en el ámbito de la ciberseguridad. En RedHunt Labs, siempre buscamos formas diferentes e innovadoras de crear soluciones de ciberseguridad que las organizaciones y los servicios necesitan. Nos hemos encontrado con un número sustancial de organizaciones que tienen sus servidores configurados incorrectamente. Esto provoca que la PII de empleados y clientes se filtre constantemente, proporcionando a partes malintencionada información sensible sobre su origen, números de identificación, información de contacto y ubicación.
Por eso creamos Octopii, una herramienta para demostrar y detectar lo fácil que es automatizar el descubrimiento y la extracción de PII y documentos sensibles filtrados en Internet.
pip install -r requirements.txt.sudo apt install tesseract-ocr -y en Ubuntu o sudo pacman -Syu tesseract en Arch Linux.python -m spacy download en_core_web_sm.Una vez instalado lo anterior, ya está listo.
Para ejecutar Octopii, escriba
python3 octopii.py <ubicación a escanear>
donde <ubicación a escanear> es un archivo o un directorio.
Actualmente Octopii admite escaneo local mediante ruta del sistema de archivos, URL de S3 y listados de directorios abiertos de Apache. También puede proporcionar URL de imágenes individuales o archivos como argumento.
Hemos proporcionado una carpeta dummy-pii/ que contiene PII de ejemplo para que pruebe Octopii. Pásela como argumento y obtendrá la siguiente salida
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"
]
}
...
Se crea un archivo llamado output.txt que contiene la salida de la herramienta. Este archivo se añade secuencialmente en tiempo real.
Octopii utiliza Tesseract para el Reconocimiento Óptico de Caracteres (OCR) y NLTK para el Procesamiento del Lenguaje Natural (PLN) con el fin de detectar cadenas de información de identificación personal. Esto se realiza mediante los siguientes pasos:
Octopii escanea imágenes (jpg y png) y documentos (pdf, doc, txt, etc.). Admite 3 fuentes:
Las imágenes se detectan mediante la Biblioteca de Imágenes de Python (PIL) y se abren con OpenCV. Los PDF se convierten en una lista de imágenes y se escanean mediante OCR. Los tipos de archivos basados en texto se leen como cadenas y se escanean sin OCR.
Se utiliza una técnica de detección de imágenes de clasificación binaria, conocida como "cascada Haar", para detectar rostros dentro de las imágenes. En este repositorio se proporciona un modelo de cascada preentrenado, que contiene datos de cascada para que OpenCV los use. Se pueden detectar múltiples rostros dentro de la misma imagen de PII, y se devuelve el número de rostros detectados.
Luego, las imágenes se "limpian" para la extracción de texto mediante los siguientes pasos de transformación de imagen:

Dado que estos pasos eliminan datos de la imagen (incluidos los colores de las fotografías), este proceso de limpieza de la imagen ocurre después de intentar la detección de rostros.
Se utiliza Tesseract para extraer todas las cadenas de texto de una imagen/archivo. Luego se tokenizan en una lista de cadenas, separadas por caracteres de nueva línea ('\n') y espacios (' '). El texto confuso, como cadenas null y caracteres individuales, se descarta de esta lista, dando como resultado una lista 'inteligible' de palabras potenciales.
Esta lista de palabras se introduce luego en una función de verificación de similitud. Esta función utiliza el emparejamiento de patrones Gestalt para comparar cada palabra extraída del documento PII con una lista de palabras clave, presente en definitions.json. Esta verificación ocurre una vez por limpieza. Se cuenta el número de veces que una palabra aparece de la lista de palabras clave y esto se utiliza para derivar una puntuación de confianza. Cuando las palabras clave de una definición particular aparecen repetidamente en estos escaneos, esa definición obtiene la puntuación más alta y se selecciona como la clase de PII predicha.
Octopii también verifica subcadenas de PII sensibles como correos electrónicos, números de teléfono e identificadores únicos comunes de documentos gubernamentales mediante expresiones regulares. También puede extraer datos de geolocalización como direcciones y países utilizando el Procesamiento del Lenguaje Natural.
La salida consta de lo siguiente:
file_path: Dónde se puede encontrar el archivo que contiene PIIpii_class: El tipo de PII que contiene este archivocountry_of_origin: De dónde proviene esta PII.identifiers: Identificadores, códigos o números únicos que pueden usarse para identificar al individuo mencionado en la PII.emails y phone_numbers: Información de contacto en el archivo.addresses: Cualquier forma de dato de geolocalización en la PII. Esto puede usarse para triangular la ubicación de un individuo.Haga clic aquí para leer sobre cómo puede contribuir a Octopii.
...y muchos otros
Esta herramienta está destinada únicamente a fines de investigación y educativos. RedHunt Labs y otros contribuyentes de este proyecto no asumen ninguna responsabilidad por el uso malicioso de esta herramienta.
Copyright © 2023 RedHunt Labs Private Limited.
Por Owais Shaikh