アップデート一覧に戻る
UpdatedSep 2, 2026

netsentryx — Updated!

Npcapによるライブパケットキャプチャ、低遅延トラフィック分析、PyTorchオートエンコーダを用いた教師なし脅威検出を実行し、非同期マルチチャネルアラートエンジンを備えたイベント駆動型ネットワーク監視プラットフォーム。

共有

NetSentryx PRO 🛡️

AI駆動、高性能リアルタイムネットワーク可観測性 & 脅威検知エンジン

FastAPI PyTorch Python License: MIT Build Status

NetSentryx PROは、次世代のイベント駆動型ネットワーク監視および脅威インテリジェンスプラットフォームです。ルールベースのシグネチャとPyTorchディープオートエンコーダを組み合わせることで、10ms未満のパケットおよびネットフロー異常検知、自動マルチチャネルアラート(Slack、Discord、Email)、そしてインタラクティブなリアルタイムSOCダッシュボードを提供します。


🏗️ システムアーキテクチャ

以下のフロー図は、データ取り込み、リアルタイムディープラーニング推論、アラートパイプライン、およびWebSocket可視化レイヤーを示しています:

flowchart TD
    subgraph Capture & Ingestion
        A[Network Interface / Packet Simulator] -->|Raw Traffic Events| B(Lightweight Event Bus)
        B -->|Packet Stream| C[Flow Aggregation Engine]
    end

    subgraph Deep Learning Inference
        C -->|Aggregated Telemetry Vectors| D[PyTorch TrafficAutoencoder]
        D -->|MSE Reconstruction Loss| E{Threshold Evaluation}
    end

    subgraph Alert Dispatch
        E -->|No Anomaly| F[Status: Optimal]
        E -->|Anomaly Detected| G[FastAPI BackgroundTasks]
        G -->|Save Event| H[(SQLite Datastore)]
        G -->|Broadcast WebSocket| I[HTML Live Dashboard]
        G -->|Dispatch Webhooks| J[Slack / Discord / Custom Webhook]
        G -->|Dispatch SMTP| K[Email Alerting]
    end

    style D fill:#EE4C2C,stroke:#fff,stroke-width:2px,color:#fff
    style I fill:#005571,stroke:#fff,stroke-width:2px,color:#fff
    style G fill:#00bf8f,stroke:#fff,stroke-width:2px,color:#fff

🚀 主な機能

  • リアルタイムトラフィック取り込み: パケットフレームを最小限のレイテンシでオンザフライで詳細なネットフローサマリーに集約します。
  • 🧠 PyTorchディープオートエンコーダ異常検知: 軽量なPyTorchニューラルネットワーク(TrafficAutoencoder)を活用し、多変量特徴量の再構成誤差に基づいて、高度なゼロデイエクスプロイト、スキャン、またはDDoS攻撃を検知します。
  • 📈 手動トレーニング不要の起動: サーバー起動時に自動合成フィッティングと統計的閾値キャリブレーション(Mean + 3 * Std)を備えており、すぐに完全に機能します。
  • ⏱️ 10ms未満の推論レイテンシ: 最適化された推論パイプラインにより、高スループットのパケットフローをリアルタイムで評価します。
  • 📣 マルチチャネルアラートディスパッチ: FastAPIのBackgroundTasksを使用して、詳細な侵入アラートをSlack webhooksDiscord webhooksカスタムHTTP API、およびSMTPメールに非同期でプッシュします。
  • 📊 インタラクティブSOCダッシュボード: Tailwind CSS、Chart.js、WebSocketsを活用したエレガントなダークモードダッシュボードで、スループットメトリクスとライブ脅威フィードをリアルタイムに可視化します。

📁 プロジェクト構成

NetSentryx/
├── config/
│   ├── config.yaml          # System, dashboard, and alerting channel configurations
│   └── rules.yaml           # Threat detection thresholds and rule properties
├── src/
│   ├── alerts/
│   │   ├── ml_detection.py  # PyTorch TrafficAutoencoder & feature scaling
│   │   ├── manager.py       # Async alert dispatcher (Discord, Slack, Email)
│   │   └── detection.py     # Rule-based packet signature detection engine
│   ├── core/
│   │   ├── config_loader.py # Configuration loader utilities
│   │   ├── logger.py        # Database-integrated system logger
│   │   └── time_utils.py    # Timezone-aware timestamp utilities
│   ├── dashboard/
│   │   ├── templates/
│   │   │   └── index.html   # Live HTML5 Dashboard template
│   │   └── server.py        # FastAPI API Router and WebSocket broadcast controller
│   ├── database/
│   │   ├── manager.py       # SQLite connection & database actions
│   │   └── models.py        # SQLAlchemy schema definitions (Alerts, Logs, Flows)
│   ├── flows/
│   │   ├── capture.py       # Scapy packet sniffer thread
│   │   └── processor.py     # Flow aggregation and metric extractor
│   └── main.py              # Application entrypoint
└── main.py                  # Root script runner

🛠️ クイックスタート & セットアップガイド

1. 前提条件

**Python 3.10+**がインストールされていることを確認してください。ライブネットワークインターフェースをキャプチャする場合:

  • Windows: Npcapをインストールします(「Install Npcap in WinPcap API-compatible Mode」を選択)。
  • Linux: sudo apt-get install libpcap-devlibpcap-devをインストールします。

2. インストール

リポジトリをクローンし、依存関係をインストールします(より高速なインストールのためにuvの使用を強く推奨します):

# Clone the repository
git clone https://github.com/yourusername/netsentryx.git
cd netsentryx

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

# Install requirements
pip install -r requirements.txt

3. 環境設定(.env

プロジェクトルートに.envファイルを作成し、通知認証情報を設定します:

# Discord Configuration
DISCORD_ENABLED=true
DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/your-webhook-id/your-webhook-token"

# Slack Configuration
SLACK_ENABLED=true
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR_WORKSPACE_ID/YOUR_CHANNEL_ID/YOUR_SECRET_TOKEN"

# SMTP Email Configuration
SMTP_ENABLED=true
SMTP_SERVER="smtp.gmail.com"
SMTP_PORT=587
SMTP_USERNAME="[email protected]"
SMTP_PASSWORD="your-app-password"
SMTP_FROM_EMAIL="[email protected]"
SMTP_TO_EMAIL="[email protected]"

4. プラットフォームの実行

🧪 シミュレーションモード(合成トラフィックシミュレータを含む)

python main.py --simulate

🌐 ライブスニッフィングモード(管理者/sudo権限が必要)

python main.py

ブラウザを開き、http://localhost:8000にアクセスしてライブダッシュボードを表示します。


📖 APIドキュメント

テレメトリ & 推論エンドポイント

  • URL: /api/v1/telemetry/analyze
  • Method: POST
  • Content-Type: application/json

リクエストペイロード

{
  "packet_count": 550,
  "byte_count": 850000,
  "flow_duration": 4.5,
  "syn_flag_ratio": 0.85,
  "port_entropy": 3.2,
  "byte_rate": 188888.8,
  "source_ip": "192.168.1.120",
  "dest_ip": "10.0.0.5",
  "protocol": "TCP"
}

レスポンス(正常トラフィック)

{
  "status": "NORMAL",
  "threat_level": "low",
  "anomaly_score": 0.3083,
  "threshold": 2.1319
}

レスポンス(異常トラフィック)

{
  "status": "ANOMALOUS",
  "threat_level": "critical",
  "anomaly_score": 117999.03,
  "threshold": 2.1319,
  "alert": {
    "id": 12,
    "timestamp": "2026-08-05T14:13:31.373Z",
    "rule_id": "ml_autoencoder_anomaly",
    "rule_name": "ML Autoencoder Anomaly",
    "source_ip": "192.168.1.120",
    "severity": "critical",
    "description": "Deep autoencoder reconstruction error exceeded anomaly threshold (score: 117999.0300, threshold: 2.1320).",
    "metrics": { ... }
  }
}

履歴クエリ

EndpointMethodDescriptionSample Response
/api/alertsGETFetches recent threat alerts saved in DB[{"id": 1, "rule_name": "Port Scanning", ...}]
/api/flowsGETFetches recent network flow telemetry logs[{"source_ip": "192.168.1.10", "packet_count": 45, ...}]
/api/logsGETFetches backend system audit logs[{"level": "INFO", "message": "ML engine trained...", ...}]

🛡️ ライセンス

このプロジェクトはMITライセンスの下でライセンスされています - 詳細はLICENSEファイルを参照してください。

カテゴリ