
FARO - Детектор чувствительности документов

FARO — это инструмент для обнаружения конфиденциальной информации в документах организации. Он ориентирован на малые компании и частных лиц, которые хотят отслеживать свои конфиденциальные документы внутри организации, но не могут тратить много времени и денег на настройку сложных инструментов защиты данных.
FARO извлекает индикаторы чувствительности из документов (например, идентификаторы документов, денежные суммы, личные электронные письма) и присваивает документу оценку чувствительности (от низкой до высокой) на основе частоты и типа индикаторов в документе.
В настоящее время весь функционал этого инструмента рассчитан на документы, написанные на испанском языке, хотя его можно легко расширить для поддержки других языков.
Этот инструмент разработан TEGRA R&D Cybersecurity Center.
Проект содержит следующие папки:
faro/ : это модуль FARO с основной функциональностью.config/: здесь находятся yaml-файлы конфигурации. Для каждого языка предусмотрен один yaml-файл (плюс один nolanguage.yaml для обеспечения базовой функциональности для нераспознанных языков) и один yaml-файл с общими настройками для всех языков config/commons.yaml.models/: это папка для размещения моделей FARO.faro_detection.py: запускающий скрипт FARO для автономной работы с одним файлом.faro_spider.sh: скрипт для пакетной обработки.docker_build_faro.sh: скрипт для сборки docker-образа FARO в Linux и Mac OS.docker_build_faro.bat: скрипт для сборки docker-образа FARO в Windows.docker_run_faro.sh: скрипт для запуска контейнера FARO в Linux и Mac OS.docker_run_faro.bat: скрипт для запуска контейнера FARO в Windows.CHANGELOG: журнал изменений FARO.FARO может работать как автономный контейнер с использованием Docker. Вы можете собрать образ самостоятельно или получить его из репозитория Docker Hub.
При условии, что Docker установлен и запущен в вашей системе, выполните следующую команду, чтобы получить последний образ FARO из Docker Hub.
docker pull gradiant/faro
Для запуска docker-образа используйте скрипты docker_run_faro.sh (Linux/Mac OS) или docker_run_faro.bat (Windows). Вы можете найти их в корне проекта или в последнем релизе.
При условии, что Docker установлен и запущен в вашей системе, выполните следующие действия для сборки образа FARO.
Linux и Mac OS
./docker_build_faro.sh
Windows
docker_build_faro.bat
Для запуска контейнера FARO в корне проекта предоставлены скрипты. Для удобства вы можете скопировать и использовать эти скрипты из любого другого места. Папка "output" будет создана в вашем текущем каталоге.
Linux и Mac OS
./docker_run_faro.sh <your folder with files>
Windows
docker_run_faro.bat <your folder with files>
Мы добавили поддержку OCR в tika через его интеграцию с tesseract. Некоторые параметры процесса OCR можно настроить с помощью env-файла, путь к которому необходимо указать вторым аргументом скрипта. Мы предоставили закомментированный пример, который можно использовать в качестве шаблона, здесь.
./docker_run_faro.sh <your folder with files> <path to env file>
например:
./docker_run_faro.sh ../data docker_faro_env_example.list
FARO создает папку "output" внутри текущей папки и сохраняет результаты выполнения в двух файлах:
output/scan.$CURRENT_TIME.csv: это csv-файл с оценкой, присвоенной документу, и частотой индикаторов в каждом файле.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: это json со списком индикаторов (детализированных), извлеченных из файла. Например:{"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"}
ПРИМЕЧАНИЕ: ТОЛЬКО LINUX И MAC OS X
Для правильной работы этого режима требуются определенная операционная система и библиотеки:
Рекомендуется использовать отдельное виртуальное окружение. Чтобы создать виртуальное окружение с помощью virtualenv:
virtualenv -p `which python3` <yourenvname>
Чтобы активировать виртуальное окружение в вашем терминале, просто введите:
source <yourenvname>/bin/activate
Самый простой способ запустить систему — установить зависимости следующим образом:
pip install -r requirements.txt
Список зависимостей приведен ниже: