
FARO - Rilevatore di Sensibilità dei Documenti

FARO è uno strumento per rilevare informazioni sensibili nei documenti di un'organizzazione. È pensato per essere utilizzato da piccole aziende e privati che desiderano monitorare i propri documenti sensibili all'interno della propria organizzazione ma che non possono dedicare molto tempo e denaro alla configurazione di complessi strumenti di protezione dei dati.
FARO estrae indicatori di sensibilità dai documenti (ad es. ID di documenti, quantità monetarie, email personali) e assegna al documento un punteggio di sensibilità (da basso ad alto) utilizzando la frequenza e il tipo degli indicatori presenti nel documento.
Attualmente tutte le funzionalità di questo strumento sono per documenti scritti in spagnolo, anche se può essere facilmente ampliato per coprire più lingue.
Questo strumento è sviluppato dal Centro di ricerca e sviluppo in cybersecurity TEGRA.
Il progetto contiene le seguenti cartelle:
faro/: questo è il modulo FARO con la funzionalità principale.config/: i file di configurazione YAML vanno qui. C'è un file yaml per lingua (più un nolanguage.yaml per fornire funzionalità di base per lingue non rilevate) e un file yaml con configurazioni comuni per tutte le lingue config/commons.yaml.models/: questa è la cartella in cui inserire i modelli FARO.faro_detection.py: launcher di FARO per l'esecuzione standalone su un singolo file.faro_spider.sh: script per l'elaborazione in batch.docker_build_faro.sh: script per creare l'immagine Docker di FARO su Linux e Mac OS.docker_build_faro.bat: script per creare l'immagine Docker di FARO su Windows.docker_run_faro.sh: script per eseguire un container FARO su Linux e Mac OS.docker_run_faro.bat: script per eseguire un container FARO su Windows.CHANGELOG: changelog di FARO.FARO può essere eseguito come container standalone usando Docker. Puoi creare l'immagine da solo o ottenerla dal repository Docker Hub.
Se Docker è installato e in esecuzione sul tuo sistema, esegui il seguente comando per ottenere la versione più recente dell'immagine FARO da Docker Hub.
docker pull gradiant/faro
Per eseguire l'immagine Docker usa gli script docker_run_faro.sh (Linux/Mac OS) o docker_run_faro.bat (Windows). Puoi trovarli nella root del progetto o nell'ultima release.
Se Docker è installato e in esecuzione sul tuo sistema, segui questi passaggi per creare l'immagine FARO.
Linux e Mac OS
./docker_build_faro.sh
Windows
docker_build_faro.bat
Per eseguire un container FARO sono forniti alcuni script nella root del progetto. Puoi copiarli e usarli da qualsiasi altra posizione per comodità. La cartella "output" verrà creata nella directory corrente.
Linux e Mac OS
./docker_run_faro.sh <your folder with files>
Windows
docker_run_faro.bat <your folder with files>
Abbiamo aggiunto il supporto OCR a tika tramite la sua integrazione con tesseract. Alcune personalizzazioni del processo OCR possono essere modificate tramite un file env il cui percorso deve essere fornito come secondo argomento allo script. Abbiamo fornito un esempio commentato da usare come modello qui
./docker_run_faro.sh <your folder with files> <path to env file>
per esempio:
./docker_run_faro.sh ../data docker_faro_env_example.list
FARO crea una cartella "output" all'interno della cartella corrente e salva i risultati dell'esecuzione in due file:
output/scan.$CURRENT_TIME.csv: è un file csv con il punteggio assegnato al documento e la frequenza degli indicatori in ciascun file.filepath,score,person_position_organization,monetary_quantity,signature,personal_email,mobile_phone_number,financial_data,document_id,custom_words,meta:content-type,meta:author,meta:pages,meta:lang,meta:date,meta:filesize,meta:num_words,meta:num_chars,meta:ocr
/Users/test/code/FARO_datasets/quick_test_data/Factura_NRU_0_1_001.pdf,high,0,0,0,0,0,0,1,4,application/pdf,Powered By Crystal,1,es,,85739,219,1185,False
/Users/test/code/FARO_datasets/quick_test_data/Factura_Plancha.pdf,high,0,6,0,0,0,0,2,8,application/pdf,Python PDF Library - http://pybrary.net/pyPdf/,1,es,,77171,259,1524,True
/Users/test/code/FARO_datasets/quick_test_data/20190912-FS2019.pdf,high,0,3,0,0,0,0,1,2,application/pdf,FPDF 1.6,1,es,2019-09-12T20:08:19Z,1545,62,648,False
output/scan.$CURRENT_TIME.entity: è un json con l'elenco degli indicatori (disaggregati) estratti da un file. Per esempio:{"filepath": "/Users/test/code/FARO_datasets/quick_test_data/Factura_NRU_0_1_001.pdf", "entities": {"custom_words": {"facturar": 3, "total": 1}, "prob_currency": {"12,0021": 1, "12,00": 1, "9,92": 1, "3,9921": 1, "3,99": 1, "3,30": 1, "15,99": 1, "13,21": 1, "1.106.166": 1, "1,00": 1, "99,00": 1}, "document_id": {"89821284M": 1}}, "datetime": "2019-12-11 14:19:17"}
{"filepath": "/Users/test/code/FARO_datasets/quick_test_data/Factura_Plancha.pdf", "entities": {"document_id": {"H82547761": 1, "21809943D": 2}, "custom_words": {"factura": 2, "facturar": 2, "total": 2, "importe": 2}, "monetary_quantity": {"156,20": 4, "2,84": 2, "0,00": 2, "159,04": 2, "32,80": 4, "191,84": 2}, "prob_currency": {"1,00": 6, "189,00": 2}}, "datetime": "2019-12-11 14:19:27"}
{"filepath": "/Users/test/code/FARO_datasets/quick_test_data/20190912-FS2019.pdf", "entities": {"document_id": {"C-01107564": 1}, "custom_words": {"factura": 1, "total": 1}, "monetary_quantity": {"3,06": 1, "0,64": 1, "3,70": 1}}, "datetime": "2019-12-11 14:19:33"}
NOTA: SOLO LINUX E MAC OS X
La modalità richiede alcuni sistemi operativi e librerie per funzionare correttamente.
È consigliabile utilizzare un ambiente virtuale separato. Per istanziare un ambiente virtuale con virtualenv.
virtualenv -p `which python3` <yourenvname>
Per attivare l'ambiente virtuale sul tuo terminale digita semplicemente:
source <yourenvname>/bin/activate
Il modo più semplice per far funzionare il sistema è installare le dipendenze in questo modo:
pip install -r requirements.txt
L'elenco delle dipendenze è il seguente: