
Uno scanner di Informazioni Personalmente Identificabili (PII) basato sull'intelligenza artificiale.
⠀⠀⠀⠀⠀⠀⠀⣤⣤⣄⣀⡀⠀⠀⠀⢀⣠⣤⣤⣄⡀⠀⠀⠀⢀⣀⣠⣤⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠸⣿⣿⡿⠿⢿⣷⡄⢠⣿⣿⣿⣿⣿⣿⡄⢀⣾⡿⠿⢿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⠀⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣠⣤⡀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠀⠀⠀
⠸⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀
⠀⠉⠉⠁⠀⠀⠀⠀⣿⣿⠀⢸⣿⡇⠀⠉⣿⣿⣿⣿⠉⠀⢸⣿⡇⠀⣿⣿⠀⠀⠀⠀⠈⠉⠉⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣀⣈⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣁⣀⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠘⠿⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠿⠿⠃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣤⣤⣤⣴⣿⣿⣿⡇⢸⣿⡿⣿⣦⣤⣤⣤⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢸⣿⠋⠉⠉⠉⠉⠉⠉⢸⣿⡇⢸⣿⡇⠈⠉⠉⠉⠉⠉⠙⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢰⣿⣿⣦⠀⢰⣿⣿⣦⠀⢸⣿⡇⢸⣿⡇⠀⣰⣿⣿⡆⠀⣴⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠻⠿⠋⠀⠘⣿⣿⠃⠀⢸⣿⡇⢸⣿⡇⠀⠘⣿⣿⠃⠀⠙⠿⠟⠁⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣦⣤⣼⣿⠃⠘⣿⣧⣄⣤⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠁⠀⠀⠈⠛⠛⠛⠋⠀⠀⠀
⠀⠀⠀⠀⠀⠀ ⠀O C T O P I I⠀⠀⠀⠀
Copyright © 2023 RedHunt Labs Private Limited
Octopii è uno scanner di Informazioni Personali Identificabili (PII) che utilizza Riconoscimento Ottico dei Caratteri (OCR), elenchi di espressioni regolari e Elaborazione del Linguaggio Naturale (NLP) per cercare in luoghi pubblicamente accessibili documenti di identità governativi, indirizzi, email, ecc. in immagini, PDF e documenti.
Le fughe di PII sono spesso trascurate nel campo della cybersecurity. In RedHunt Labs, cerchiamo sempre modi diversi e innovativi per sviluppare soluzioni di cybersecurity di cui organizzazioni e servizi hanno bisogno. Abbiamo incontrato un numero considerevole di organizzazioni che hanno i propri server configurati in modo errato. Ciò provoca la continua fuga di PII di dipendenti e clienti, fornendo a parti malintenzionate informazioni sensibili sulla loro origine, numeri di identificazione, informazioni di contatto e posizione.
Ecco perché abbiamo creato Octopii, uno strumento per dimostrare e rilevare quanto sia facile automatizzare la scoperta e l'estrazione di PII e documenti sensibili trapelati su Internet.
pip install -r requirements.txt.sudo apt install tesseract-ocr -y su Ubuntu o sudo pacman -Syu tesseract su Arch Linux.python -m spacy download en_core_web_sm.Una volta installato quanto sopra, sei pronto.
Per eseguire Octopii, digita
python3 octopii.py <posizione da scansionare>
dove <posizione da scansionare> è un file o una directory.
Octopii attualmente supporta la scansione locale tramite percorso del filesystem, URL S3 e elenchi di directory aperte Apache. Puoi anche fornire singoli URL di immagini o file come argomento.
Abbiamo fornito una cartella dummy-pii/ contenente PII di esempio per testare Octopii. Passala come argomento e otterrai il seguente output
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"
]
}
...
Viene creato un file chiamato output.txt contenente l'output dello strumento. Questo file viene aggiunto in modo sequenziale in tempo reale.
Octopii utilizza Tesseract per il Riconoscimento Ottico dei Caratteri (OCR) e NLTK per l'Elaborazione del Linguaggio Naturale (NLP) per rilevare stringhe di informazioni personali identificabili. Questo viene fatto tramite i seguenti passaggi:
Octopii scansiona immagini (jpg e png) e documenti (pdf, doc, txt, ecc.). Supporta 3 fonti:
Le immagini vengono rilevate tramite la Python Imaging Library (PIL) e aperte con OpenCV. I PDF vengono convertiti in un elenco di immagini e scansionati tramite OCR. I tipi di file basati su testo vengono letti in stringhe e scansionati senza OCR.
Viene utilizzata una tecnica di rilevamento delle immagini a classificazione binaria - nota come "cascata di Haar" - per rilevare i volti all'interno delle immagini. In questo repository è fornito un modello a cascata pre-addestrato, che contiene dati della cascata per l'uso da parte di OpenCV. È possibile rilevare più volti nella stessa immagine PII e viene restituito il numero di volti rilevati.
Le immagini vengono quindi "pulite" per l'estrazione del testo con i seguenti passaggi di trasformazione dell'immagine:

Poiché questi passaggi rimuovono i dati dell'immagine (inclusi i colori nelle fotografie), questo processo di pulizia dell'immagine avviene dopo il tentativo di rilevamento dei volti.
Tesseract viene utilizzato per estrarre tutte le stringhe di testo da un'immagine/file. Vengono quindi tokenizzate in un elenco di stringhe, suddivise per caratteri di nuova riga ('\n') e spazi (' '). Il testo confuso, come le stringhe null e i singoli caratteri, viene scartato da questo elenco, risultando in un elenco 'intelligibile' di potenziali parole.
Questo elenco di parole viene quindi inserito in una funzione di controllo della similarità. Questa funzione utilizza il pattern matching di Gestalt per confrontare ogni parola estratta dal documento PII con un elenco di parole chiave presenti in definitions.json. Questo controllo avviene una volta per pulizia. Il numero di volte in cui una parola appare dall'elenco delle parole chiave viene conteggiato e utilizzato per ricavare un punteggio di confidenza. Quando le parole chiave di una particolare definizione appaiono ripetutamente in queste scansioni, quella definizione ottiene il punteggio più alto e viene scelta come classe PII prevista.
Octopii controlla anche sottostringhe PII sensibili come email, numeri di telefono e identificatori univoci comuni di documenti governativi utilizzando espressioni regolari. Può anche estrarre dati di geolocalizzazione come indirizzi e paesi utilizzando l'Elaborazione del Linguaggio Naturale.
L'output è composto da:
file_path: Dove si trova il file contenente PIIpii_class: Il tipo di PII contenuto in questo filecountry_of_origin: Da dove proviene questa PII.identifiers: Identificatori, codici o numeri univoci che possono essere utilizzati per prendere di mira l'individuo menzionato nella PII.emails e phone_numbers: Informazioni di contatto nel file.addresses: Qualsiasi forma di dato di geolocalizzazione nella PII. Può essere utilizzato per triangolare la posizione di un individuo.Clicca qui per leggere come puoi contribuire a Octopii.
...e innumerevoli altri
Questo strumento è destinato esclusivamente a scopi di ricerca e didattici. RedHunt Labs e gli altri contributori a questo progetto non si assumono alcuna responsabilità per l'uso malevolo di questo strumento.
Copyright © 2023 RedHunt Labs Private Limited.
Di Owais Shaikh