Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
FARO — FARO - ドキュメント感度検出器 | Kitploit
ツール/GitHubGitHub/gradiant/faro
静的分析脆弱性分析構成監査データ流出情報収集シークレット検出機械学習学習と教育
GitHubgradiant/faro

FARO

FARO - ドキュメント感度検出器

リポジトリを見る
108274年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

FARO (ドキュメント感度検出器)


FARO LOGO

目次

  • これは何ですか
  • この中身は何ですか?
  • DockerでFAROを実行する
  • ホストマシンでFAROを実行する
    • 前提条件
    • 仮想環境
    • 依存関係
    • NERモデル
    • FAROスパイダー
    • 単一ファイルの検出
  • 技術詳細
    • FAROエンティティ検出器
    • 設定
    • 対応入力ファイル形式
    • 技術
    • テスト
    • Git-LFSのインストール
    • FARO検出の追加引数
    • 既知の問題
  • 貢献者

これは何ですか

FAROは、組織内の文書における機密情報を検出するためのツールです。複雑なデータ保護ツールの設定に多くの時間や費用をかけられない、機密文書を組織内で追跡したいと考えている小規模企業や個人を対象としています。

FAROは文書から感度指標(例:文書ID、金額、個人メールアドレス)を抽出し、文書内の指標の頻度と種類を用いて文書に感度スコア(低〜高)を付けます。

現在、このツールのすべての機能はスペイン語で書かれた文書を対象としていますが、より多くの言語に対応するよう簡単に拡張できます。

このツールは、TEGRA R&Dサイバーセキュリティセンターによって開発されています。

この中身は何ですか?

このプロジェクトには次のフォルダが含まれています:

  • faro/ :これは主要機能を持つFAROモジュールです。
  • config/:ここにyaml設定ファイルを置きます。言語ごとに1つのyamlファイルがあり(未検出言語に基本機能を提供する nolanguage.yaml が1つ追加)、全言語共通の設定を持つyamlファイル config/commons.yaml が1つあります。
  • models/:ここにFAROモデルを配置します。
  • faro_detection.py:単一ファイルに対するスタンドアロン操作のためのFAROランチャーです。
  • faro_spider.sh:一括処理用スクリプトです。
  • docker_build_faro.sh:LinuxおよびMac OSでFARO Dockerイメージをビルドするスクリプトです。
  • docker_build_faro.bat:WindowsでFARO Dockerイメージをビルドするスクリプトです。
  • docker_run_faro.sh:LinuxおよびMac OSでFAROコンテナを実行するスクリプトです。
  • docker_run_faro.bat:WindowsでFAROコンテナを実行するスクリプトです。
  • CHANGELOG:FAROの変更履歴です。

DockerでFAROを実行する

FAROはDockerを使用してスタンドアロンコンテナとして実行できます。自分でイメージをビルドするか、Docker Hubリポジトリから取得できます。

Docker HubからFAROイメージを取得する

Dockerがシステムにインストールされ実行されている場合は、次のコマンドを実行してDocker Hubから最新のFAROイメージを取得します。

docker pull gradiant/faro

Dockerイメージを実行するには、スクリプト docker_run_faro.sh(Linux/Mac OS)または docker_run_faro.bat(Windows)を使用します。これらはプロジェクトのルートまたは最新リリースにあります。

FAROイメージをビルドする

Dockerがシステムにインストールされ実行されている場合は、次の手順でFAROイメージをビルドします。

LinuxおよびMac OS

./docker_build_faro.sh

Windows

docker_build_faro.bat

FAROコンテナを実行する

FAROコンテナを実行するためのスクリプトがプロジェクトのルートに用意されています。便宜上、これらのスクリプトをコピーして他の場所から使用できます。「output」フォルダは現在のディレクトリの下に作成されます。

LinuxおよびMac OS

./docker_run_faro.sh <your folder with files>

Windows

docker_run_faro.bat <your folder with files>

tikaのtesseract統合を通じてOCRサポートを追加しました。OCRプロセスの一部のカスタマイズは、envファイルを使用して調整できます。このファイルのパスはスクリプトの2番目の引数として指定する必要があります。テンプレートとして機能するコメント付きの例をここに用意しました。

./docker_run_faro.sh <your folder with files> <path to env file>

例:

./docker_run_faro.sh ../data docker_faro_env_example.list

結果

FAROは現在のフォルダ内に「output」フォルダを作成し、実行結果を2つのファイルに保存します:

  • 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"}

ホストマシンでFAROを実行する

注:LinuxおよびMac OS Xのみ

前提条件

このモードが正しく動作するには、いくつかのOSとライブラリが必要です。

  • LinuxまたはMac OS
  • Java 1.7以上
  • virtualenv(必須ではありませんが、強く推奨されます)
  • GNU parallel(スパイダースクリプトを高速化するため。ツールの詳細はこちら)
  • git lfsがインストールされていること。

仮想環境

独立した仮想環境を使用することをお勧めします。virtualenvで仮想環境を作成するには、次のようにします。

virtualenv -p `which python3` <yourenvname>

ターミナルで仮想環境を有効にするには、次のように入力します:

source <yourenvname>/bin/activate

依存関係

システムを起動して実行する最も簡単な方法は、次のように依存関係をインストールすることです。

pip install -r requirements.txt

依存関係のリストは次のとおりです:

  • 少なくともスペイン語言語モデルを持つSpaCy
  • numpy
  • scipy
  • sklearn
  • gensim
  • sklearn-crfsuite
  • fuzzywuzzy
  • tika
  • gensim
  • pyyaml
  • pandas

以下の依存関係はテストに使用されます:

  • mox
  • unittest-xml-reporting

NERモデル

FAROは動作するためにいくつかのMLモデルに依存しています。

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がインストールされていれば、最初にリポジトリをクローンしたときにモデルが自動的にダウンロードされます。

モデルを手動でダウンロードする場合は、プロジェクトのルートから次のコマンドを実行します。

git lfs pull

config/es.ymlファイル内の以下に示すパスがモデルを指していることを確認してください。

FAROスパイダー

スパイダーは、フォルダ内の文書を再帰的に解析し、解析結果をファイルに保存するスクリプトです。

./faro_spider.sh <your folder with files>

OCRの追加後、環境変数を通じてFAROの実行をカスタマイズできる設定がいくつかあります:

  • FARO_DISABLE_OCR:この変数が(任意の値で)見つかった場合、FAROは文書に対してOCRを実行しません。
  • FARO_REQUESTS_TIMEOUT:tikaサーバーが応答しない場合にFAROがタイムアウトするまでの秒数(デフォルト:60)
  • FARO_PDF_OCR_RATIO:PDF混合文書(テキストと画像)でOCRを強制するために使用する文字あたりのバイト数(デフォルト:150バイト/文字)

ログ設定も環境変数を通じて設定できます:

  • FARO_LOG_LEVEL:FAROのログレベル(デフォルト:INFO)
  • FARO_LOG_FILE:FAROのログファイル(デフォルト:None)。Dockerを使用する場合は、ホストマシンに永続化するために output フォルダ内に設定してください。

単一ファイルの検出

faro_detection.py スクリプトを使用して、単一のファイルに対してFARO検出を実行できます。

./faro_detection.py -i <your_file>

2つの出力ファイルがパス <your_file>.entity と <your_file>.score で生成されます。

a) <your_file>.entity:タイプと出現回数で並べられたエンティティのリストを含むJSON(エンティティ検出モジュールの出力):

{"LOC": {"Pontevedra": 1}, "MONEY": {"1.000 euros": 2}, "PER": {"Betty Corti\u00f1as": 1, "Eva Expósito": 1, "Belén Portela": 1, "Marta Rivadulla": 1, "Miguel Rivas": 1}, "PROF": {"el tutor": 1}, "ORG": {"Centro de Recursos Educativos": 1}}

b) <your_file>.score:エンティティのタイプと、そのタイプのエンティティがテキスト内に現れる回数を含むJSON。このJSONには、プロパティ score に感度スコアも含まれます(「low」「medium」「high」のいずれかです)。

{"score": "high", "summary": {"monetary_quantity": 1, "person_position": 1, "mobile_phone_number": 1, "personal_email": 1, "credit_account_number": 2}}
ツールをダウンロード