Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ThreatSentry-AI — ThreatSentry AIは、機械学習を活用してネットワーク内のリスクをプロアクティブに特定・優先順位付けするインテリジェントな脅威ハンティングダッシュボードです。デバイス情報の収集、脆弱性データの補完、リスクレベルの評価を自動化し、セキュリティチームが最も重要な脅威に集中できるようにします。 | Kitploit
ツール/GitHubGitHub/eclipsemanic/threatsentry-ai
防御ツール偵察脆弱性分析情報収集ネットワークセキュリティ脅威インテリジェンス機械学習インシデントレスポンスログ分析
GitHubeclipsemanic/threatsentry-ai

ThreatSentry-AI

ThreatSentry AIは、機械学習を活用してネットワーク内のリスクをプロアクティブに特定・優先順位付けするインテリジェントな脅威ハンティングダッシュボードです。デバイス情報の収集、脆弱性データの補完、リスクレベルの評価を自動化し、セキュリティチームが最も重要な脅威に集中できるようにします。

117ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

ThreatSentry AI: AIを活用した脅威ハンティングツール

License: MIT Python Version Framework ML Stack Database

外部資産の発見を自動化し、マルチソースデータでインテリジェントにエンリッチし、アンサンブル機械学習を活用してリスクを予測・優先順位付けします。アラート疲れを実行可能なインテリジェンスに変えます。

🚀 ミッションステートメント

ThreatSentry AI は、インテリジェントなリスク優先順位付けにより、セキュリティアラート疲れを解消し、プロアクティブな脅威ハンティングを可能にします。自動資産発見、マルチソースデータエンリッチメント、高度な機械学習を組み合わせて、生のセキュリティデータを実行可能なインテリジェンスに変換します。


👨‍💻 作者と謝辞

プロジェクトリーダー: EclipseManic

開発ノート: この包括的なエンタープライズセキュリティプラットフォームは、コード生成、最適化、ドキュメント作成にAI開発ツールの支援を受けた単一の開発者によって設計・開発されました。これは、複雑なシステムにおけるAI支援ソフトウェアエンジニアリングの実行可能性を示しています。


📋 エグゼクティブサマリー

現代のセキュリティチームは前例のない課題に直面しています:

  • アラート疲れ: 手動でのトリアージを不可能にするシグナル対ノイズ比の高い毎日数千件のアラート
  • 断片化されたデータ: SIEM、CMDB、パッチシステム、ネットワーク監視に分散した重要なコンテキスト
  • 反応的な姿勢: 新たなリスクをハントするのではなく、既知の脅威に反応する
  • リソース制約: ますます複雑化するインフラにおける限られた予算と人員

ThreatSentry AI はこれらの問題を以下で解決します:

  1. 外部資産の自動発見: Shodan APIによる継続的な可視性
  2. インテリジェントなマルチソースエンリッチメント: NVD、内部システム、行動分析からのデータ統合
  3. MLを活用したリスクスコアリング: アンサンブルモデルによる正確な脅威優先順位付け
  4. エグゼクティブ対応ダッシュボード: 実行可能なインテリジェンスと迅速な対応
  5. プロアクティブなアラート: インシデント発生前に高リスク資産を表面化

✨ コア機能

🤖 インテリジェントリスクスコアリングエンジン

  • アンサンブル機械学習モデル: ランダムフォレスト、勾配ブースティング、ニューラルネットワークを組み合わせた堅牢なリスク分類
  • 多要素分析: 単純な脆弱性数だけでなく、40以上のセキュリティおよびビジネス属性を評価:
    • 時間的コンテキスト: 露出期間、パッチ適用の遅れ、インシデント履歴
    • ネットワーク上の位置: クリティカルサービスの状態、ネットワークセグメント、ファイアウォール保護
    • 行動シグナル: 認証失敗、トラフィック異常、誤検知履歴
    • コンプライアンス影響: データ機密性、規制要件、関連する重要な資産
  • 信頼度スコアリング: 各予測には信頼度メトリック(0-1)が含まれ、アナリストが信頼性を評価可能
  • 継続的学習: 設定可能な間隔でモデルが自動再トレーニングされ、フィードバックが統合される

🌐 自動資産発見とインテリジェンス融合

  • Shodan統合: 高度なクエリサポートによるインターネット公開デバイスの継続的発見
    • 一般的なシナリオ(SSL証明書、RDPサービス、ICS/Modbusなど)のプリセットクエリ
    • 組織固有の資産ハンティングのためのカスタムクエリサポート
  • NVDエンリッチメント: インテリジェントなバナー解析による自動CVE関連付け
    • 14以上の製品タイプ(Apache、Nginx、MySQL、IISなど)をサポートするバナーサービス抽出
    • CVSSスコアリングと重大度分類
    • データ損失の防止:脆弱性が見つかった場合のみCVEメトリックを更新
  • 内部データ統合(お客様の環境に対応可能な拡張アーキテクチャ):
    • CMDBコレクター: 資産分類、重要度レベル、コンプライアンスタグ
    • SIEMコレクター: 行動メトリック、認証パターン、異常スコア
    • パッチ管理コレクター: パッチの最新性、未適用アップデート、パッチ適用遅延分析
    • ネットワーク監視コレクター: トラフィックパターン、DDoS検出、異常スコア
  • 統合データベース: 40以上のインデックス付きカラムを持つSQLite、効率的なクエリとレポート作成に対応

📊 エグゼクティブダッシュボードと分析ツール

  • ダーク/ライトテーマ対応のPyQt5ベースGUI:
    • リアルタイムのリスク分布可視化(Matplotlibによる棒グラフ)
    • ソート・フィルタ可能なデバイステーブル、色分けされたリスクインジケータ
    • 組織、国、リスクレベルによるクイックフィルター
    • IP、組織、国、リスクフィールドの自動検索
  • インタラクティブなデバイス検査:
    • CVSSスコア付きの詳細な脆弱性リスト
    • 脆弱性のタイムラインと履歴追跡
    • スコアリングを説明するリスク要因の内訳
  • 一括操作:
    • 手動スキャン実行(Shodan + NVDエンリッチメント)
    • フィールド検証付きCSV/JSONデータインポート
    • パフォーマンスメトリック付きモデル再トレーニング
    • 設定確認のための手動アラート送信
  • 分析パネル(高度):
    • リスク分布のトレンド
    • CVE影響分析
    • 組織別脆弱性メトリック

📧 プロアクティブなメールアラート

  • SendGrid統合: 高リスク資産に対する自動HTMLメール通知
    • リスクラベルの変更(低/中→高)時に即座にトリガー
    • 「通知済み」ステータス追跡による重複アラート防止
  • リッチなアラートコンテンツ:
    • リスクスコアと信頼度を含むエグゼクティブサマリー
    • 詳細な脆弱性リスト(CVSS上位N件)
    • セキュリティチーム向けのリスク要因内訳
    • 実行可能な修復推奨事項
  • 柔軟な設定: アラート受信者、メールテンプレート、トリガー条件を定義可能

サンプルアラートメール

![自動セキュリティアラートメールテンプレート]

スクリーンショット 2026-01-10 160955

リスクサマリー、CVE詳細、修復ガイダンスを含むHTMLフォーマットのメール(SendGrid経由送信)

📈 モデルの透明性と継続的改善

  • パフォーマンス監視:
    • トレーニングエポック全体の精度追跡
    • 混同行列と分類レポート
    • モデルの決定を理解するための特徴量重要度分析
    • データドリフト検出インジケータ
  • フィードバックループ:
    • アナリストによる手動リスクラベル修正
    • 真陽性/偽陽性の追跡
    • フィードバックに基づくモデル重み調整
    • メタデータログ付き自動再トレーニングスケジュール

⚡ パフォーマンスと信頼性

  • スケールに最適化:
    • 5以上のカラムに対するデータベースインデックスによりサブミリ秒のクエリを実現
    • 頻繁にアクセスされるデータの結果キャッシュ(28.7倍の高速化)
    • 大規模データセット向け「さらに読み込む」ページネーション(初期50行+50行ずつ増加)
    • ワーカースレッド(QThread、ThreadPoolExecutor)によるノンブロッキングUI
  • 堅牢なエラーハンドリング:
    • API障害(Shodan、NVD、SendGrid)に対する指数バックオフ再試行ロジック
    • オプションサービスが利用できない場合のグレースフルデグラデーション
    • ファイルローテーション付き包括的なログ記録
    • スレッドセーフなシグナル/スロットアーキテクチャによるレースコンディション防止
  • メモリ効率:
    • チャートレンダリング後のガベージコレクション
    • 起動時間短縮のための遅延ロードUIタブ
    • 適切なクリーンアップを保証するセッションコンテキストマネージャ

� ビジュアル概要

メインダッシュボード

![ThreatSentry AIダッシュボード - メイン脅威ハンティングインターフェース]

スクリーンショット 2026-01-10 153154

ソート可能なデバイステーブルとリスク分布棒グラフによるリアルタイムリスク可視化

デバイスリスク評価テーブル

![リスクインジケータ付きデバイステーブル]

image

ソート・フィルタ可能なデバイス一覧、色分けされたリスクレベル(緑=低、黄=中、赤=高)

高度なフィルタリングパネル

![高度なフィルター - CVSS範囲、組織、国、リスクレベル]

CVSS範囲、組織、国、リスクレベルによる強力なフィルター制御 + 「すべてクリア」ボタン

  • CVSS範囲フィルター: 最小および最大CVSSスコア(0-10)を調整して特定の重要度レベルにフォーカス
  • 組織フィルター: データベース内の全組織のドロップダウンから特定の組織をクイックフィルター
  • 国フィルター: 地理的な位置でフィルターして地域リスクを特定
  • リスクレベルフィルター: 高、中、低、またはすべてのデバイスを表示してフォーカス分析
  • すべてクリアボタン: すべてのフィルターをワンクリックでデフォルト値にリセットし、データセット全体を再表示
  • フィルター適用: 選択したすべてのフィルターを即座に適用し、結果をリアルタイムで反映

全データベース検索機能

![検索入力 - データベース全体にわたるマルチカラム検索]

現在表示されている行だけでなく、デバイスデータベース全体を対象とするインテリジェント検索

  • 包括的検索: IPアドレス、組織名、国、リスクレベルを横断検索
  • 自動IP検出: IPアドレス形式を自動検出し、それに応じて検索
  • 全データベースカバレッジ: 検索結果には最初の50行に限定されず、データベース内のすべてのデバイスが含まれる
  • リアルタイム結果: デバウンス300msの遅延で応答性が高く、パフォーマンスに影響を与えない
  • ページネーション統合: 検索結果は効率的な読み込みのためのページネーションシステムに従う

インテリジェントページネーションと大規模データセットサポート

![さらに読み込むボタン - ページネーションコントロール]

数千のデバイスを効率的に処理するための最適化されたページネーションシステム

  • デフォルト50行表示: 高速レンダリングのため、ダッシュボードは最初の50デバイスで読み込み
  • 段階的読み込み: 「さらに読み込む(50行)」ボタンにより、タイムアウトなしでインクリメンタルに読み込み
  • メモリ効率: 要求された行のみを表示し、データセット全体をメモリにロードしない
  • パフォーマンス最適化: 大規模データセット読み込み時のフリーズを防止するノンブロッキングUI
  • ステータス表示: 利用可能な全デバイス数の透明性を提供する「X / Y デバイスを表示中」
  • 検索統合: 検索フィルターがページネーションとシームレスに連携し、高速な結果を提供

分析・レポートパネル

![分析タブ - リスクトレンドとCVE分析]

スクリーンショット 2026-01-10 153300

過去のリスクトレンド、脆弱性分析、組織別セキュリティメトリック

ツールと設定

![ツールタブ - モデルステータスとデータエクスポート]

スクリーンショット 2026-01-10 153240

モデルトレーニング情報、パフォーマンスメトリック、データエクスポート、高度なフィルタリングオプション

メールアラート通知

スクリーンショット 2026-01-10 153939

![自動セキュリティアラートメール]

エグゼクティブサマリー、脆弱性詳細、修復ガイダンスを含むHTMLフォーマットのメール

手動スキャンワークフロー

![スキャントリガーダイアログ]

スクリーンショット 2026-01-10 153710

詳細なエラーレポートと進捗表示付きのShodan + NVDエンリッチメント実行


🛠️ 技術スタック


🏗️ アーキテクチャとデータフロー```

┌─────────────────────────────────────────────────────────────┐ │ ThreatSentry AI │ ├─────────────────────────────────────────────────────────────┤ │ Scheduler (APScheduler) │ ├──────────┬──────────────┬──────────────┬───────────┬─────────┤ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ ▼ Shodan NVD Lib CMDB SIEM Patch Network Collector Collector Collector Collector Mgmt Monitor

root@kitploit:~
      │              │              │           │         │
      └──────────────┴──────────────┴───────────┴─────────┘
                       │
                       ▼
              ┌─────────────────┐
              │   SQLite DB     │
              │  (40+ Columns)  │
              └────────┬────────┘
                       │
    ┌──────────────────┼──────────────────┐
    ▼                  ▼                  ▼

Feature Engine Model Training Predictions │ │ │ └─────────┬───────┴──────────┬──────┘ ▼ ▼ ┌──────────────────────┐ │ Ensemble Model │ │ (RF + GB + MLP) │ └──────────┬───────────┘ │ ┌────────────┼────────────┐ ▼ ▼ ▼ PyQt5 GUI Email Alerts Analytics

root@kitploit:~
### データ処理パイプライン

1. **発見フェーズ** (設定可能な間隔、デフォルト30分)
   - Shodanスキャン(設定可能なクエリ)
   - CVE相関を用いたNVDエンリッチメント
   - コンテキストのための内部システムエンリッチメント

2. **分析フェーズ**
   - 40以上の属性からの特徴量エンジニアリング
   - アンサンブルモデル予測(ランダムフォレスト40% + 勾配ブースティング40% + MLP 20%)
   - リスクラベル生成(0=低、1=中、2=高)
   - 信頼度スコアリング

3. **アラートフェーズ**
   - 新しい高リスク資産の確認
   - SendGrid経由でのメールアラートの生成と送信
   - 通知ステータスの更新

4. **モデル再トレーニング** (設定可能な間隔、デフォルト60分)
   - すべての履歴データの読み込み
   - 特徴量の抽出
   - バランスの取れたクラス重みでアンサンブルをトレーニング
   - パフォーマンスメトリクスの検証
   - 監査用のメタデータ保存

---

## 📋 はじめに

### 前提条件
- **Python**: 3.9以降
- **APIキー** (必須):
  - Shodan APIキー (https://www.shodan.io/)
  - SendGrid APIキー (https://sendgrid.com/) - メールアラート用
- **オプションのAPIキー** (拡張エンリッチメント用):
  - CMDBエンドポイントと認証情報
  - SIEMエンドポイントと認証情報
  - パッチ管理システムのエンドポイントと認証情報
  - ネットワーク監視エンドポイントと認証情報

### インストール

#### ステップ1: リポジトリのクローン```bash
git clone https://github.com/EclipseManic/ThreatSentry-AI.git
cd ThreatSentry-AI

ステップ2: 仮想環境の作成```bash

On Windows

python -m venv .venv .venv\Scripts\activate

On macOS/Linux

python3 -m venv .venv source .venv/bin/activate

root@kitploit:~
#### ステップ3: 依存関係のインストール```bash
pip install -r requirements.txt

ステップ4: 環境設定

プロジェクトルートに .env ファイルを作成します:```bash cp .env.example .env # If provided, or create new

root@kitploit:~
`.env` をあなたの認証情報で編集してください:```ini
# Required - Threat Discovery
SHODAN_API_KEY=your_shodan_api_key_here
SHODAN_QUERY=                          # Leave empty to use presets
SHODAN_QUERY_EMPTY_TO_PRESET=True      # Use preset queries when SHODAN_QUERY is empty

# Optional - Email Alerts
SENDGRID_API_KEY=your_sendgrid_key_here
[email protected]    # Must be verified in SendGrid
[email protected],[email protected]

# Optional - Internal Enrichment (Implement in collectors/)
CMDB_API_ENDPOINT=https://cmdb.internal/api
CMDB_API_KEY=your_cmdb_key
SIEM_API_ENDPOINT=https://siem.internal/api
SIEM_API_KEY=your_siem_key

# Configuration
SCAN_INTERVAL_MINUTES=30               # How often to scan for new assets
RETRAIN_INTERVAL_MINUTES=60            # How often to retrain the model
MAX_SHODAN_RESULTS=50                  # Results per Shodan query
LOG_LEVEL=INFO                         # DEBUG, INFO, WARNING, ERROR

# Paths (Optional)
SQLITE_PATH=data/db/threat_sentric_ai.db
MODEL_PATH=data/models/rf_model.pkl
LOG_FILE_PATH=data/logs/threat_sentric_ai.log

ステップ5: データベースの初期化```bash

python -c "from data import init_db; init_db()"

root@kitploit:~
#### ステップ6: アプリケーションを実行する```bash
python run.py

ダッシュボードはスケジューラがバックグラウンドで実行されている状態で起動します。


🚀 使用ガイド

ダッシュボードコンポーネントの概要

![すべてのタブを含むダッシュボードメインインターフェース] 概要、分析、ツールのタブで包括的な脅威評価を実施

1. デバイステーブルと発見

![組織と国のフィルターとデバイスリスト] 並べ替え可能なデバイステーブル。色分けされたリスクインジケータ(緑=低、黄=中、赤=高)

  • 色分け: 即座の視覚的リスク評価
  • 並べ替え/フィルター: 列ヘッダーをクリックするか、クイックフィルターを使用して迅速に検索
  • リアルタイム更新: 新しい脅威が検出されるとダッシュボードが更新されます

2. リスク分布チャート

![リスク分布棒グラフ] リスクレベルごとのデバイス数による全体的なセキュリティ状況の可視化

  • すべてのリスクカテゴリにわたるデバイスの数を表示
  • モデル予測の変化に応じてリアルタイムで更新
  • 即時対応が必要なセキュリティホットスポットを特定

3. 主要アクションボタン

  • 今すぐスキャン: 詳細なエラーレポートとともにShodan + NVDエンリッチメントを手動でトリガー
  • 更新: 最新のデータベース状態からダッシュボードを更新
  • データアップロード: デバイス情報を含むCSV/JSONを一括インポート
  • モデルトレーニング: 現在のデータでアンサンブルモデルを手動で再トレーニング

高度な機能

分析タブ

![分析パネル - リスク傾向とメトリクス]

  • 過去の分析を含む時間経過に沿った詳細なリスク傾向
  • 脆弱性の高いサービスの特定
  • 組織別のリスクメトリクスと比較
  • CVE影響分析と脆弱性の傾向

ツールタブ

![ツールパネル - モデルステータスとエクスポート

  • モデルのステータスとトレーニング情報

設定

プリセットクエリ(core/config.py を編集)```python

SHODAN_QUERIES = { "default": "product:apache", "web_apps": "http.title:"login" org:"Your Company"", "database": "port:27017 OR port:3306", "iot": "device:camera OR device:printer", "rdp": "port:3389", "vpn": "port:500 OR port:1194" }

root@kitploit:~
#### カスタム内部コレクター
`collectors/` ディレクトリに実装:
1. 既存のコレクターからテンプレートをコピーする
2. `_collect()` メソッドを自身のAPI呼び出しで更新する
3. エンリッチメントデータを返す
4. スケジューラーに登録する (`core/scheduler.py`)

#### メールアラートのカスタマイズ
`alerts/email_alerts.py` を編集:
- ブランドメール用にHTMLテンプレートを修正
- カスタムリスク要因の説明を追加
- 修復推奨事項を調整

---

## 📊 データモデル

### デバイステーブル (40+列)```
Core Identifiers:  ip, org, country, first_seen, last_seen
Vulnerability:     cve_count, max_cvss, vulnerabilities (rel)
Security Metrics:  auth_failures_24h, traffic_anomaly_score, patch_lag_days
Risk Assessment:   risk_label, risk_score, confidence_score
Context:          network_segment, service_category, is_critical_service
Compliance:       compliance_requirements, data_sensitivity_level
Historical:       incident_history_count, last_compromise_date, false_positive_count
Alerting:         notified, alert_history

脆弱性テーブル```

Linked to Device: device_id (FK) CVE Info: cve_id, cvss, summary

root@kitploit:~
---

## 🔄 ワークフロー例

### シナリオ1:日々の脅威ハンティング
1. ダッシュボードを開く → Risk=High(赤)のデバイスを確認
2. デバイスをクリック → 詳細なCVEリストを表示
3. 組織とインフラストラクチャタイプを確認
4. SIEMと照らし合わせて最近の不審なアクティビティを確認
5. 重大度とパッチ適用遅延に基づいて対応優先順位を決定

### シナリオ2:インシデント対応
1. 新しい高リスクデバイスに関するアラートを受信
2. ダッシュボードに脆弱性詳細とリスク要因が表示される
3. Asset Managementタブを確認 → デバイスが既知かどうかを確認
4. SOCオンコールチームに手動アラートを送信
5. 対応後、Shodanの反映に合わせてダッシュボードが自動更新

### シナリオ3:リスクレポート作成
1. Analyticsタブに移動
2. リスク分布とトレンドグラフをエクスポート
3. 組織のリスクホットスポットを特定
4. 改善ロードマップを生成
5. 定期的な再エクスポートで経過を追跡

---

## 🔧 トラブルシューティング

### よくある問題

#### 問題:「Shodan API Key が無効」(403 Forbidden)
- **解決策**: `.env` ファイル内のShodan APIキーを確認。ダッシュボードにはエラーが表示されるが処理は継続
- **注意**: NVDエンリッチメントは実行されない(API障害時のデータ損失を防止)

#### 問題:「デバイスにCVEが見つからない」
- **解決策**: バナー抽出を確認。`collectors/nvd_collector.py` のキーワードリストを編集
- **予防**: CSVアップロードによる手動エンリッチメントでCVEデータを手動設定

#### 問題:「モデルの信頼度が低すぎる」
- **解決策**: より多くのラベル付きデータで再学習。誤分類デバイスにフィードバックを提供
- **予防**: フィードバックシステムを活用してトレーニングデータの品質を向上

#### 問題:メールアラートが送信されない
- **解決策**: SendGrid APIキーと送信元メールアドレスが確認済みであることを確認
- **確認**: `ENABLE_EMAIL_ALERTS` 環境変数がTrueに設定されていること

#### 問題:データベースがロックまたはクエリが遅い
- **解決策**: インデックスが作成されていることを確認(init_db()で実行)
- **確認**: 重複したデータベース接続がないこと(UIリフレッシュのみ、常時書き込みは行わない)

---

## 🛡️ セキュリティに関する考慮事項

1. **APIキー管理**: 環境変数を使用し、`.env` をGitにコミットしない
2. **データベースセキュリティ**: SQLiteはシングルユーザー向け。マルチユーザーの場合はPostgreSQLに移行
3. **ネットワークセキュリティ**: 信頼できるネットワーク上で実行。APIを公開する場合はネットワークセグメンテーションを実装
4. **データプライバシー**: ログローテーションを設定してディスク容量を制限。データ保持ポリシーを実装
5. **監査ログ**: すべてのモデル判定は特徴量値とともにログに記録され、監査が可能

---

## 📈 パフォーマンス最適化のヒント

| 問題 | 解決策 |
|-------|----------|
| ダッシュボードの読み込みが遅い | 設定でページネーションサイズを増やす |
| トレーニング中のCPU高負荷 | `model/advanced_model.py` の `n_estimators` を減らす |
| メモリ使用量が多い | ログクリーンアップを有効にし、チャート解像度を下げる |
| Shodanスキャンが遅い | `MAX_SHODAN_RESULTS` を減らし、より具体的なクエリを使用 |
| NVDエンリッチメントが遅い | APIキャッシュを実装し、製品キーワード抽出を減らす |

---

## 🤝 コントリビューション

コントリビューションを歓迎します! ガイドラインは [CONTRIBUTING.md](https://raw.githubusercontent.com/eclipsemanic/threatsentry-ai/HEAD/CONTRIBUTING.md) をご覧ください。

改善が期待される領域:
- 追加のコレクター実装(Nessus、Tenable、Qualysとの統合)
- プログラムアクセスのためのWeb API
- ロールベースアクセスによるマルチユーザーサポート
- 高度な可視化(Grafana/ELK統合)
- Kubernetesデプロイメントサポート

---

## 📄 ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細は [LICENSE](https://github.com/eclipsemanic/threatsentry-ai/blob/main/LICENSE) ファイルをご覧ください。

---

## 📞 サポートとコンタクト

- **Issue**: バグ報告や機能リクエストはGitHub Issuesへ
- **ドキュメント**: 詳細な技術ドキュメントは [docs/](https://github.com/eclipsemanic/threatsentry-ai/blob/main/docs) ディレクトリを参照
- **メール**: メンテナー情報は [CODE_OF_CONDUCT.md](https://github.com/eclipsemanic/threatsentry-ai/blob/main/CODE_OF_CONDUCT.md) に記載

---

## 🙏 謝辞

- **Shodan**: インターネットに露出したデバイスの包括的な発見に感謝
- **NVD/NIST**: 信頼性の高い脆弱性データに感謝
- **Scikit-learn**: 堅牢なMLライブラリとドキュメントに感謝
- **PyQt5**: 優れたGUIフレームワークに感謝
- **コミュニティ**: フィードバックを提供してくださったすべてのコントリビューターとユーザーに感謝

---

**EclipseManic が ❤️ を込めて制作 | 明日のインフラを今日から守る**
pip install -r requirements.txt```

---

## 🔐 Configuration

### 1. Environment Variables (`.env` file)
Create a `.env` file in the root directory with the following structure:

```bash
# --- Shodan API キー (必須) ---
SHODAN_API_KEY="YOUR_SHODAN_API_KEY"

# --- SendGrid メールアラート (必須) ---
SENDGRID_API_KEY="YOUR_SENDGRID_API_KEY"
SENDER_EMAIL="[email protected]"
ALERT_RECIPIENTS="[email protected],[email protected]"

# --- データベース ---
SQLITE_PATH="threat_sentric_ai.db"

# --- モデル ---
MODEL_PATH="threatsentry_model.pkl"

# --- スケジューラー ---
SCAN_INTERVAL_MINUTES="30"
RETRAIN_INTERVAL_MINUTES="60"
RETRAIN_ON_SCHEDULE="True"

# --- Shodan クエリ動作制御 ---
SHODAN_QUERY=""
SHODAN_QUERY_EMPTY_TO_PRESET="True"

# --- ロギング ---
LOG_LEVEL="INFO" # DEBUG, INFO, WARNING, ERROR, CRITICAL

# --- 内部システム認証情報 (オプション - コレクターに応じて追加) ---
# CMDB_API_ENDPOINT="..."
# CMDB_API_KEY="..."
# SIEM_API_ENDPOINT="..."
# SIEM_API_KEY="..."
# PATCH_API_ENDPOINT="..."
# PATCH_API_KEY="..."
# NETWORK_MONITOR_ENDPOINT="..."
# NETWORK_MONITOR_KEY="..."```

> The app loads environment variables via `os.getenv()` in `config.py`.  
> Never commit this file to version control.

---

## 🔍 Shodan Query Presets (`config.py`)

Modify the `SHODAN_QUERIES` dictionary to define your custom query presets:

```python
SHODAN_QUERIES = {
    "default": "product:apache",
    "org": 'org:"Your Company Name"',
    "net": 'net:"123.45.67.0/24"',
    "ssl": 'ssl:"yourcompany.com"',
    "hostname": 'hostname:".yourcompany.com"',
    "rdp": 'port:3389 "remote desktop"',
    "mongodb": 'port:27017 "mongodb"',
    "ics_modbus": 'port:502 "modbus"',
    "vuln_example": 'vuln:CVE-2024-12345',
    "http_login": 'http.title:"Login" org:"Your Company"'
}```

If `SHODAN_QUERY` in `.env` is empty **and** `SHODAN_QUERY_EMPTY_TO_PRESET=True`,  
the scheduler will automatically cycle through these presets.

---

## 🧠 Implementing Internal Collectors

> ⚠️ **Important:** The internal collectors (`cmdb_collector.py`, `siem_collector.py`, `patch_collector.py`, `network_monitor_collector.py`) are **placeholders**.  
> Replace the placeholder logic with real integrations to your systems.

You’ll need to:
- Fetch internal data using APIs, databases, or SDKs.
- Map fetched data to the `Device` model attributes.
- Update the database session with this enriched information.

Without these integrations, the model will lack context for accurate predictions.

---

## 🧪 Running the Application

### (Optional) Generate Initial Training Data
```bash
python scripts/generate_realistic_training_data.py --count 1000```
Creates `scripts/my_training_data.json`.  
You can upload this file through the GUI’s **Upload** option to initialize training data.

### Launch the Application
```bash
python run.py```
The GUI will open and the scheduler will start scanning, enriching, and predicting automatically.

---

## ⚡ Quick Demo with Generated Data

1. Complete installation (steps 1–3).  
2. Set up your `.env` file (even with placeholder keys).  
3. Optionally adjust Shodan presets in `config.py`.  
4. Generate data:
   ```bash
python scripts/generate_realistic_training_data.py --count 500   ```
5. Launch the app:
   ```bash
python run.py   ```
6. In the GUI:
   - Select **Upload** → Choose `scripts/my_training_data.json`
   - Click **Refresh** to view populated device data and risk levels.

---

## 🛠️ Scripts and Usage Guide

| Script | Description |
|--------|--------------|
| **run.py** | Main entry point. Starts DB, scheduler, and GUI. |
| **scheduler.py** | Handles periodic scanning, enrichment, prediction, and retraining. |
| **scripts/generate_realistic_training_data.py** | Generates realistic training data for testing or bootstrapping. |
| **scripts/clear_db_enhanced.py** | Interactively clean database or reset notification flags. |
| **scripts/reset_db.py** | Completely resets the database. Use with caution. |

### Example Commands

```bash
# 1000件のレコードを生成
python scripts/generate_realistic_training_data.py --count 1000

# クリーンアップオプションを表示
python scripts/clear_db_enhanced.py --help

# すべてのデバイスと脆弱性を削除
python scripts/clear_db_enhanced.py --delete-devices --delete-vulns

# 通知フラグをリセット
python scripts/clear_db_enhanced.py --reset-notified

# 危険な完全リセット
python scripts/reset_db.py```

---

## 💬 Feedback & Suggestions

This project was developed by **EclipseManic**.  
While code contributions are currently closed, your **feedback and bug reports** are highly appreciated.

Please open an [Issue](https://github.com/EclipseManic/ThreatSentry-AI/issues) to share your thoughts or report a problem.

---

## 📄 License

This project is licensed under the **MIT License**.  
See the [LICENSE](https://github.com/eclipsemanic/threatsentry-ai/blob/main/LICENSE) file for details.
ツールをダウンロード
レイヤー技術
バックエンドPython 3.9+, SQLAlchemy ORM, APScheduler
ML/AIScikit-learn (Random Forest, Gradient Boosting, MLP), NumPy, Joblib
フロントエンドPyQt5, Matplotlib, Custom theme manager
データPandas, NumPy, SQLite3
APIShodan, NVDLib, SendGrid, Requests
ユーティリティPython-dotenv, Logging module, Config management