
FARO - Dokument-Sensitivitätsdetektor

FARO ist ein Werkzeug zur Erkennung sensibler Informationen in Dokumenten einer Organisation. Es ist für kleine Unternehmen und Privatpersonen gedacht, die ihre sensiblen Dokumente innerhalb ihrer Organisation nachverfolgen möchten, aber nicht viel Zeit und Geld für die Konfiguration komplexer Datenschutz-Tools aufwenden können.
FARO extrahiert Sensitivitätsindikatoren aus Dokumenten (z. B. Dokumenten-IDs, Geldbeträge, persönliche E-Mails) und weist dem Dokument anhand der Häufigkeit und Art der Indikatoren einen Sensitivitätswert zu (von niedrig bis hoch).
Derzeit ist die gesamte Funktionalität dieses Tools auf Dokumente in spanischer Sprache ausgelegt, obwohl es problemlos erweitert werden kann, um weitere Sprachen abzudecken.
Dieses Tool wurde vom TEGRA R&D Cybersecurity Center entwickelt.
Das Projekt enthält die folgenden Ordner:
faro/: Dies ist das FARO-Modul mit der Hauptfunktionalität.config/: Hier liegen die YAML-Konfigurationsdateien. Es gibt eine YAML-Datei pro Sprache (plus eine nolanguage.yaml, um die Grundfunktionalität für nicht erkannte Sprachen bereitzustellen) und eine YAML-Datei mit gemeinsamen Konfigurationen für alle Sprachen: config/commons.yaml.models/: In diesen Ordner werden die FARO-Modelle gelegt.faro_detection.py: Starter von FARO für den eigenständigen Betrieb über eine einzelne Datei.faro_spider.sh: Skript für die Stapelverarbeitung.docker_build_faro.sh: Skript zum Erstellen des FARO-Docker-Images auf Linux und Mac OS.docker_build_faro.bat: Skript zum Erstellen des FARO-Docker-Images auf Windows.docker_run_faro.sh: Skript zum Ausführen eines FARO-Containers auf Linux und Mac OS.docker_run_faro.bat: Skript zum Ausführen eines FARO-Containers auf Windows.CHANGELOG: FARO-Änderungsprotokoll.FARO kann als eigenständiger Container mit Docker ausgeführt werden. Sie können das Image selbst erstellen oder es aus dem Docker-Hub-Repository beziehen.
Vorausgesetzt, Docker ist auf Ihrem System installiert und läuft, führen Sie den folgenden Befehl aus, um das neueste FARO-Image von Docker Hub zu erhalten.
docker pull gradiant/faro
Um das Docker-Image auszuführen, verwenden Sie die Skripte docker_run_faro.sh (Linux/Mac OS) oder docker_run_faro.bat (Windows). Sie finden sie im Projektstamm oder in der neuesten Version.
Vorausgesetzt, Docker ist auf Ihrem System installiert und läuft, führen Sie Folgendes aus, um das FARO-Image zu erstellen.
Linux und Mac OS
./docker_build_faro.sh
Windows
docker_build_faro.bat
Zum Ausführen eines FARO-Containers sind im Projektstamm einige Skripte enthalten. Sie können diese Skripte zur Bequemlichkeit kopieren und von überall aus verwenden. Der Ordner output wird in Ihrem aktuellen Verzeichnis erstellt.
Linux und Mac OS
./docker_run_faro.sh <your folder with files>
Windows
docker_run_faro.bat <your folder with files>
Wir haben tika über die Tesseract-Integration OCR-Unterstützung hinzugefügt. Einige Anpassungen des OCR-Prozesses können über eine Umgebungsdatei (env file) vorgenommen werden, deren Pfad als zweites Argument an das Skript übergeben werden muss. Ein auskommentiertes Beispiel als Vorlage finden Sie hier
./docker_run_faro.sh <your folder with files> <path to env file>
zum Beispiel:
./docker_run_faro.sh ../data docker_faro_env_example.list
FARO erstellt einen Ordner output im aktuellen Ordner und speichert die Ergebnisse der Ausführung in zwei Dateien:
output/scan.$CURRENT_TIME.csv: ist eine CSV-Datei mit dem dem Dokument zugewiesenen Score und der Häufigkeit der Indikatoren in jeder Datei.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: ist ein JSON mit der Liste der in einer Datei extrahierten Indikatoren (aufgeschlüsselt). Zum Beispiel:{"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"}
HINWEIS: NUR LINUX UND MAC OS X
Der Modus erfordert einige Betriebssystem- und Bibliotheksvoraussetzungen, um ordnungsgemäß zu funktionieren.
Es ist ratsam, eine separate virtuelle Umgebung zu verwenden. So erstellen Sie eine virtuelle Umgebung mit virtualenv:
virtualenv -p `which python3` <yourenvname>
Um die virtuelle Umgebung in Ihrem Terminal zu aktivieren, geben Sie einfach Folgendes ein:
source <yourenvname>/bin/activate