
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: برنامج نصي لبناء صورة FARO على Docker في Linux و Mac OS.docker_build_faro.bat: برنامج نصي لبناء صورة FARO على Docker في 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
قائمة التبعيات هي التالية:
هذه التبعيات الأخرى تُستخدم للاختبار:
يعتمد FARO على عدة نماذج تعلم آلي لكي يعمل.
detection:
nlp_model : es_core_news_sm
crf_ner_list: models/crf_professions_v1.joblib
personal_email_detection: models/email_detector.joblib
target_list: models/legal.txt
crf_ner_classic: models/crf_classic_step1.joblib,models/crf_classic_step2.joblib,models/crf_classic_step3.joblib,models/crf_classic_step4.joblib,models/crf_classic_step5.joblib
corp_mail_list: models/corp_mail_list.txt
في مستودعنا، نتعامل مع النماذج من خلال Git LFS بسبب حجمها. إذا كان لديك git-lfs مثبتًا، فيجب أن تحصل تلقائيًا على النماذج التي تم تنزيلها عند استنساخ مستودعنا لأول مرة.