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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PIIHunter — PostgreSQLデータベースとJiraイシューを対象に、正規表現、NER/ML、およびオプションのセルフホスト型LLM検出を用いてPIIをスキャンし、マスキング済みレポートと監査ログを提供します。 | Kitploit
ツール/GitHubGitHub/owasp/piihunter
防御ツール脆弱性分析データ流出情報収集プライバシーシークレット検出AIセキュリティデータベースセキュリティログ分析
GitHubowasp/piihunter

PIIHunter

PostgreSQLデータベースとJiraイシューを対象に、正規表現、NER/ML、およびオプションのセルフホスト型LLM検出を用いてPIIをスキャンし、マスキング済みレポートと監査ログを提供します。

6020時間26分前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る

AI PII Scanner

PostgreSQLデータベースおよびJiraプロジェクト内の個人識別情報(PII)を発見するための内部セキュリティツール

Python 3.8+ License: MIT

概要

AI PII Scannerは、アプリケーションセキュリティおよびプライバシーチーム向けに設計された、PIIを発見・カタログ化するための包括的なセキュリティ重視のツールです。2つのスキャン対象をサポートしています:

  • PostgreSQLデータベース — アプリケーションスキーマ全体にわたるカラムレベルのPII発見
  • Jira — 意図しないPII露出を検出するための、リアルタイムまたはスケジュールされたイシューおよびコメントのスキャン

検出には3層のパイプラインを使用します:

  • 正規表現ベースの検出 — メール、電話番号、SSN、クレジットカードなどに対する決定論的パターン
  • NER/ML検出 — エンティティ認識(名前、場所、日付)のためのMicrosoft PresidioまたはspaCy
  • オプションのLLM分類 — 曖昧な自由記述テキスト分析のためのセルフホストモデル

主な機能

  • 多層PII検出 — 正規表現、ML、およびオプションのLLMを組み合わせた包括的なカバレッジ
  • Jira統合 — ポーリングまたはリアルタイムWebhookによる新規イシューおよびコメントのスキャン
  • スマート例外フィルター — 想定内のコンテンツを抑制: @mentions および社内メールアドレス
  • タイムスタンプ付きレポート — Jiraスキャン結果は実行ごとに日付付きJSONまたはCSVファイルへ自動保存
  • セキュリティファースト設計 — 読み取り専用データベースアクセス、外部API呼び出しなし、PII保持を最小化
  • インテリジェントサンプリング — 代表的なデータサンプルを分析し、パフォーマンスへの影響を最小化
  • 包括的な監査証跡 — すべてのスキャンを設定、タイムスタンプ、モデルバージョンとともに記録
  • プライバシーセーフなログ — すべてのログおよび保存サンプルにおける自動PIIマスキング

セキュリティとプライバシー

重要: このツールは、安全で管理された環境内での内部利用のみを目的としています。

セキュリティ制御実装
データ持ち出し防止サードパーティAPI呼び出しなし; LLMエンドポイントはセルフホスト必須
最小権限アクセスアプリケーションデータへの書き込み権限を持たない読み取り専用データベースロール
PII最小化検出結果はメタデータと厳重にマスキングされたサンプルのみを保存
監査証跡すべてのスキャンを誰が/何を/いつ/どのようにの詳細とともに記録
セキュアなログPIIフィールドを自動マスキングする構造化ログ
暗号化された通信すべてのデータベース接続にSSL/TLSを必須
Webhook検証受信するJiraイベントに対するHMAC-SHA256署名検証

目次

  • インストール — データベーススキーマスキャン
  • インストール — Jiraスキャン
  • 設定
  • 使用方法 — データベーススキャン
  • 使用方法 — Jira統合
  • アーキテクチャ
  • 検出方法
  • データベーススキーマ
  • 例
  • トラブルシューティング
  • 高度なトピック
  • コントリビューション

インストール — データベーススキーマスキャン

PostgreSQLデータベースのカラム全体でPIIをスキャンしたい場合は、こちらを使用してください。

ステップ1 — 基本インストール

# Clone the repository
cd PIIHunter

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Download spaCy NER model (~800MB)
python -m spacy download en_core_web_lg

ステップ2 — 読み取り専用データベースロールを作成する

PostgreSQLのスーパーユーザーとしてこれを実行します:

CREATE ROLE pii_scanner_readonly WITH LOGIN PASSWORD 'your_secure_password';
GRANT CONNECT ON DATABASE your_database TO pii_scanner_readonly;
GRANT USAGE ON SCHEMA public, app_data TO pii_scanner_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public, app_data TO pii_scanner_readonly;

ステップ3 — 環境の設定

cp .env.example .env
# Fill in DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD

ステップ4 — メタデータスキーマの初期化

スキャン結果が保存される security_pii スキーマを作成します。一度だけ実行します:

python -m pii_scanner.cli init-schema

ステップ5 — 最初のスキャンを実行する

# Preview candidate columns (no data read)
python -m pii_scanner.cli discover

# Run PII detection
python -m pii_scanner.cli scan --sample-size 1000

# View results
python -m pii_scanner.cli report

いつでも接続を確認する

python -m pii_scanner.cli test-connection

インストール — Jira スキャン

Jira の課題とコメントをスキャンして、偶発的な PII の露出を検出したい場合は、こちらを使用してください。

まず基本インストール(上記のステップ 1)が必要です。Jira スキャンのみを行いたい場合、データベースのセットアップ(ステップ 2~4)は不要です。

サブセクション A — REST API(ポーリング)

過去 N 時間のアクティビティについて、オンデマンドで Jira をポーリングします。サーバーは不要です。

ステップ 1 — 基本インストール(まだ行っていない場合)

cd PIIHunter
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python -m spacy download en_core_web_lg

ステップ2 — Jira APIトークンを生成する

  1. https://id.atlassian.com → Security → API tokens に移動します
  2. Create API token をクリックし、名前を付けて、トークンをコピーします

ステップ3 — 環境を設定する

cp .env.example .env

.env を編集し、Jira の詳細を入力してください:

JIRA_URL=https://yourcompany.atlassian.net
[email protected]
JIRA_API_TOKEN=your_api_token_here

# Optional — leave empty to scan all projects
# JIRA_PROJECT_KEYS=ENG,OPS,SUPPORT

# Emails from these domains will NOT be flagged as PII
COMPANY_EMAIL_DOMAINS=yourcompany.com

ステップ4 — 接続をテストする

認証情報を検証し、アクセス可能なプロジェクトを一覧表示し、最近のイシューのサンプルを取得します:

python -m pii_scanner.cli jira test

Expected output:

Testing connection to https://yourcompany.atlassian.net...

  Auth          ✓  logged in as Jane Smith ([email protected])
  Projects      ✓  3 accessible: ENG, OPS, SUPPORT
  Project ENG   ✓  accessible

  Recent issues (no time filter):
    ENG-101  Fix login timeout on mobile
    ENG-100  Update password policy

失敗した場合は、APIトークンと、JIRA_EMAILがトークンを生成したアカウントと一致していることを確認してください。

ステップ5 — スキャンを実行する

# Scan last 24 hours
python -m pii_scanner.cli jira scan

# Custom lookback window
python -m pii_scanner.cli jira scan --hours 48

サブセクション B — Webhook (リアルタイム)

Jira イベントを受信し、到着した瞬間にスキャンする HTTP サーバーを起動します。公開アクセス可能なエンドポイントが必要です。

ステップ 1 — 基本インストール + REST API セットアップ (先にサブセクション A のステップ 1〜4 を完了してください)

ステップ 2 — Webhook 依存関係のインストール

pip install fastapi uvicorn

ステップ3 — .env に webhook 設定を追加する

# Secret used to verify requests genuinely come from Jira
JIRA_WEBHOOK_SECRET=your_webhook_secret
JIRA_WEBHOOK_PORT=8080

ステップ4 — Webhookサーバーを起動する

python -m pii_scanner.cli jira webhook

# Custom port
python -m pii_scanner.cli jira webhook --port 9090

ステップ 5 — Jira で Webhook を登録する

  1. Jira で プロジェクト設定 → Webhook → Webhook を作成 に移動します
  2. URL を http://yourserver:8080/webhook に設定します
  3. イベント で以下を選択します:
    • Issue → created
    • Comment → created
  4. シークレットを .env 内の JIRA_WEBHOOK_SECRET と一致するように設定します
  5. 保存します

これで Jira は新しい課題とコメントごとにサーバーへ POST を送信します。スキャナーはそれぞれを即座に処理します。

利用可能なエンドポイント:

エンドポイント目的
POST /webhookJira イベントを受信します
GET /healthサーバーが稼働していることを確認します

本番環境での注意: uvicorn をインターネットに直接公開しないでください。詳細トピックの 本番環境 Webhook セットアップ セクションを参照してください。


設定

すべての設定は .env 内の環境変数で管理されます。開始するには .env.example をコピーしてください。

データベース接続

DB_HOST=localhost
DB_PORT=5432
DB_NAME=your_database
DB_USER=pii_scanner_readonly
DB_PASSWORD=your_secure_password
DB_SSLMODE=require

スキャンオプション

# Schemas to scan (comma-separated)
SCHEMAS_TO_SCAN=public,app_data,customer_data

# Schemas to exclude (comma-separated)
SCHEMAS_TO_EXCLUDE=pg_catalog,information_schema,pg_toast

# Rows to sample per column
SAMPLE_SIZE=1000

# Batch size for streaming
BATCH_SIZE=500

検出設定

# Minimum confidence threshold (0.0-1.0)
CONFIDENCE_THRESHOLD=0.5

# Enable/disable detection layers
ENABLE_REGEX_DETECTION=true
ENABLE_NER_DETECTION=true
ENABLE_LLM_DETECTION=false  # Only with self-hosted LLM

LLM設定(オプション)

セルフホスト型エンドポイントでのみ使用してください。公開APIを指定しないでください。

LLM_ENDPOINT=http://your-internal-llm.company.local:8000/v1
LLM_API_KEY=your_private_key
LLM_MODEL=llama-2-7b

Jira 連携

# Jira connection
JIRA_URL=https://yourcompany.atlassian.net
[email protected]
JIRA_API_TOKEN=your_jira_api_token   # generate at id.atlassian.com

# Projects to watch — leave empty to scan ALL accessible projects
# JIRA_PROJECT_KEYS=ENG,OPS,SUPPORT

# Emails from these domains are NOT flagged as PII (your internal addresses)
COMPANY_EMAIL_DOMAINS=yourcompany.com,internal.yourcompany.com

# Webhook server settings (only needed for real-time mode)
# JIRA_WEBHOOK_SECRET=your_webhook_secret
JIRA_WEBHOOK_PORT=8080

ログ記録

LOG_LEVEL=INFO   # DEBUG, INFO, WARNING, ERROR
LOG_FORMAT=json  # json or console

使用方法 — データベーススキャン

スキーマの初期化

security_pii メタデータスキーマを作成します。初回セットアップ時に一度実行してください:

python -m pii_scanner.cli init-schema

列の検出

ツールをダウンロード