
Un scanner d'Informations Personnellement Identifiables (PII) propulsé par l'IA.
⠀⠀⠀⠀⠀⠀⠀⣤⣤⣄⣀⡀⠀⠀⠀⢀⣠⣤⣤⣄⡀⠀⠀⠀⢀⣀⣠⣤⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠸⣿⣿⡿⠿⢿⣷⡄⢠⣿⣿⣿⣿⣿⣿⡄⢀⣾⡿⠿⢿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⠀⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣠⣤⡀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠀⠀⠀
⠸⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀
⠀⠉⠉⠁⠀⠀⠀⠀⣿⣿⠀⢸⣿⡇⠀⠉⣿⣿⣿⣿⠉⠀⢸⣿⡇⠀⣿⣿⠀⠀⠀⠀⠈⠉⠉⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣀⣈⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣁⣀⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠘⠿⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠿⠿⠃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣤⣤⣤⣴⣿⣿⣿⡇⢸⣿⡿⣿⣦⣤⣤⣤⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢸⣿⠋⠉⠉⠉⠉⠉⠉⢸⣿⡇⢸⣿⡇⠈⠉⠉⠉⠉⠉⠙⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢰⣿⣿⣦⠀⢰⣿⣿⣦⠀⢸⣿⡇⢸⣿⡇⠀⣰⣿⣿⡆⠀⣴⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠻⠿⠋⠀⠘⣿⣿⠃⠀⢸⣿⡇⢸⣿⡇⠀⠘⣿⣿⠃⠀⠙⠿⠟⠁⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣦⣤⣼⣿⠃⠘⣿⣧⣄⣤⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠁⠀⠀⠈⠛⠛⠛⠋⠀⠀⠀
⠀⠀⠀⠀⠀⠀ ⠀O C T O P I I⠀⠀⠀⠀
Copyright © 2023 RedHunt Labs Private Limited
Octopii est un scanner d'informations personnelles identifiables (PII) qui utilise la reconnaissance optique de caractères (OCR), des listes d'expressions régulières et le traitement du langage naturel (NLP) pour rechercher des pièces d'identité gouvernementales, des adresses, des e-mails, etc., dans des images, PDF et documents accessibles publiquement.
Les fuites de PII sont souvent négligées dans le domaine de la cybersécurité. Chez RedHunt Labs, nous cherchons toujours des moyens différents et innovants de proposer des solutions de cybersécurité dont les organisations et les services ont besoin. Nous avons rencontré un nombre important d'organisations dont les serveurs sont mal configurés. Cela provoque des fuites constantes de PII des employés et des clients, donnant aux parties malveillantes des informations sensibles sur leurs origines, leurs numéros d'identification, leurs coordonnées et leur localisation.
C'est pourquoi nous avons créé Octopii, un outil pour démontrer et détecter à quel point il est facile d'automatiser la découverte et l'extraction de PII et de documents sensibles divulgués sur Internet.
pip install -r requirements.txt.sudo apt install tesseract-ocr -y sur Ubuntu ou sudo pacman -Syu tesseract sur Arch Linux.python -m spacy download en_core_web_sm.Une fois ces étapes effectuées, vous êtes prêt.
Pour exécuter Octopii, tapez
python3 octopii.py <emplacement à analyser>
où <emplacement à analyser> est un fichier ou un répertoire.
Octopii prend actuellement en charge l'analyse locale via le chemin du système de fichiers, les URL S3 et les listes de répertoires ouverts Apache. Vous pouvez également fournir des URL d'images individuelles ou des fichiers comme argument.
Nous avons fourni un dossier dummy-pii/ contenant des exemples de PII pour vous permettre de tester Octopii. Passez-le en argument et vous obtiendrez le résultat suivant :
owais@artemis ~ $ python3 octopii.py dummy-pii/
Recherche de PII dans 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"
]
}
Recherche de PII dans 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"
]
}
...
Un fichier nommé output.txt est créé, contenant la sortie de l'outil. Ce fichier est complété séquentiellement en temps réel.
Octopii utilise Tesseract pour la reconnaissance optique de caractères (OCR) et NLTK pour le traitement automatique du langage naturel (NLP) afin de détecter les chaînes d'informations personnelles identifiables. Cela se fait via les étapes suivantes :
Octopii analyse les images (jpg et png) et les documents (pdf, doc, txt, etc.). Il prend en charge 3 sources :
Les images sont détectées via Python Imaging Library (PIL) et ouvertes avec OpenCV. Les PDF sont convertis en une liste d'images et analysés via OCR. Les types de fichiers texte sont lus sous forme de chaînes et analysés sans OCR.
Une technique de classification binaire de détection d'image - connue sous le nom de "cascade de Haar" - est utilisée pour détecter les visages dans les images. Un modèle de cascade pré-entraîné est fourni dans ce dépôt, contenant des données de cascade pour OpenCV. Plusieurs visages peuvent être détectés dans la même image de PII, et le nombre de visages détectés est renvoyé.
Les images sont ensuite "nettoyées" pour l'extraction de texte avec les étapes de transformation d'image suivantes :

Étant donné que ces étapes suppriment les données d'image (y compris les couleurs des photographies), ce processus de nettoyage d'image se produit après la tentative de détection des visages.
Tesseract est utilisé pour extraire toutes les chaînes de texte d'une image/fichier. Elles sont ensuite tokenisées en une liste de chaînes, séparées par des caractères de nouvelle ligne ('\n') et des espaces (' '). Les textes brouillés, tels que les chaînes null et les caractères uniques, sont écartés de cette liste, ce qui donne une liste « intelligible » de mots potentiels.
Cette liste de mots est ensuite introduite dans une fonction de vérification de similarité. Cette fonction utilise la correspondance de motifs Gestalt pour comparer chaque mot extrait du document PII avec une liste de mots-clés, présente dans definitions.json. Cette vérification a lieu une fois par nettoyage. Le nombre de fois qu'un mot apparaît dans la liste de mots-clés est compté et utilisé pour dériver un score de confiance. Lorsque les mots-clés d'une définition particulière apparaissent de manière répétée dans ces analyses, cette définition obtient le score le plus élevé et est choisie comme classe PII prédite.
Octopii vérifie également les sous-chaînes PII sensibles telles que les e-mails, les numéros de téléphone et les identifiants uniques courants des documents gouvernementaux à l'aide d'expressions régulières. Il peut également extraire des données de géolocalisation telles que les adresses et les pays à l'aide du traitement automatique du langage naturel.
La sortie comprend les éléments suivants :
file_path : où se trouve le fichier contenant les PIIpii_class : le type de PII que ce fichier contientcountry_of_origin : l'origine de ces PIIidentifiers : identifiants, codes ou numéros uniques pouvant être utilisés pour cibler la personne mentionnée dans les PIIemails et phone_numbers : informations de contact dans le fichieraddresses : toute forme de données de géolocalisation dans les PII. Cela peut être utilisé pour trianguler la localisation d'un individuCliquez ici pour lire comment vous pouvez contribuer à Octopii.
...et bien d'autres
Cet outil est destiné uniquement à des fins de recherche et d'éducation. RedHunt Labs et les autres contributeurs à ce projet déclinent toute responsabilité en cas d'utilisation malveillante de cet outil.
Copyright © 2023 RedHunt Labs Private Limited.
Par Owais Shaikh