
FARO - Détecteur de sensibilité de documents

FARO est un outil de détection d'informations sensibles dans les documents d'une organisation. Il est destiné aux petites entreprises et aux particuliers qui souhaitent suivre leurs documents sensibles au sein de leur organisation, mais qui ne peuvent pas consacrer beaucoup de temps et d'argent à configurer des outils complexes de protection des données.
FARO extrait des indicateurs de sensibilité des documents (par exemple, identifiants de documents, montants monétaires, emails personnels) et attribue un score de sensibilité au document (de faible à élevé) en fonction de la fréquence et du type des indicateurs présents dans le document.
Actuellement, toutes les fonctionnalités de cet outil sont destinées aux documents rédigés en espagnol, bien qu'il puisse être facilement étendu pour couvrir d'autres langues.
Cet outil est développé par TEGRA R&D Cybersecurity Center.
Le projet contient les dossiers suivants :
faro/ : module FARO contenant les fonctionnalités principales.config/ : fichiers de configuration YAML. Il y a un fichier YAML par langue (plus un nolanguage.yaml pour fournir des fonctionnalités de base aux langues non détectées) et un fichier YAML avec les configurations communes à toutes les langues config/commons.yaml.models/ : dossier pour placer les modèles FARO.faro_detection.py : lanceur de FARO pour une exécution autonome sur un seul fichier.faro_spider.sh : script pour le traitement par lots.docker_build_faro.sh : script pour construire l'image Docker FARO sous Linux et Mac OS.docker_build_faro.bat : script pour construire l'image Docker FARO sous Windows.docker_run_faro.sh : script pour exécuter un conteneur FARO sous Linux et Mac OS.docker_run_faro.bat : script pour exécuter un conteneur FARO sous Windows.CHANGELOG : journal des modifications de FARO.FARO peut être exécuté comme un conteneur autonome avec Docker. Vous pouvez construire l'image vous-même ou l'obtenir depuis le dépôt Docker Hub.
Si Docker est installé et fonctionne sur votre système, exécutez la commande suivante pour obtenir la dernière image FARO depuis Docker Hub.
docker pull gradiant/faro
Pour exécuter l'image Docker, utilisez les scripts docker_run_faro.sh (Linux/Mac OS) ou docker_run_faro.bat (Windows). Vous les trouverez à la racine du projet ou dans la dernière version.
Si Docker est installé et fonctionne sur votre système, procédez comme suit pour construire l'image FARO.
Linux et Mac OS
./docker_build_faro.sh
Windows
docker_build_faro.bat
Des scripts sont fournis à la racine du projet pour exécuter un conteneur FARO. Vous pouvez les copier et les utiliser depuis n'importe quel autre emplacement pour plus de commodité. Le dossier "output" sera créé dans votre répertoire courant.
Linux et Mac OS
./docker_run_faro.sh <votre dossier contenant les fichiers>
Windows
docker_run_faro.bat <votre dossier contenant les fichiers>
Nous avons ajouté la prise en charge de l'OCR dans tika via son intégration tesseract. Une certaine personnalisation du processus d'OCR peut être effectuée via un fichier d'environnement dont le chemin doit être fourni comme second argument au script. Nous avons fourni un exemple commenté pour servir de modèle ici
./docker_run_faro.sh <votre dossier contenant les fichiers> <chemin vers le fichier d'environnement>
par exemple :
./docker_run_faro.sh ../data docker_faro_env_example.list
FARO crée un dossier "output" dans le dossier courant et stocke les résultats de l'exécution dans deux fichiers :
output/scan.$CURRENT_TIME.csv : fichier CSV contenant le score attribué au document et la fréquence des indicateurs dans chaque fichier.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 : fichier JSON contenant la liste des indicateurs (désagrégés) extraits d'un fichier. Par exemple :{"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"}
REMARQUE : UNIQUEMENT LINUX ET MAC OS X
Le mode nécessite un système d'exploitation et des bibliothèques pour fonctionner correctement.
Il est conseillé d'utiliser un environnement virtuel séparé. Pour instancier un environnement virtuel avec virtualenv.
virtualenv -p `which python3` <nomdevotreenv>