nfstream/nfstream

NFStream: a Flexible Network Data Analysis Framework.

何を解決するか

NFStreamは、オンライン(ライブ)およびオフライン(pcapファイル)データ分析の両方に対応する高レベルなPythonフレームワークを提供することで、ネットワークトラフィックの分析プロセスを簡素化します。特に暗号化されたトラフィックにおいて、生のネットワークパケットから意味のある、再現可能な特徴量を抽出する難しさに対処し、機械学習モデルに適したデータの準備を標準化します。

仕組み

NFStreamは、CFFIに基づく高性能な計算エンジンを使用してネットワークデータを処理し、マルチプラットフォームでの実行をサポートします。nDPIを用いてディープパケットインスペクション(DPI)を行い、暗号化されたアプリケーションを識別し、TLSやSSHのフィンガープリントなどのメタデータを抽出します。また、システムのカーネルをプローブして、ネットワークフローを特定のローカルプロセス(PIDおよびプロセス名)に紐づけることも可能です。特徴量抽出には、事後統計(パケットサイズ・到着間隔の平均、標準偏差)と、フロー初期の特徴(最初のnパケットに対するSPLT分析)を計算します。

対象ユーザー

ネットワーク研究者やセキュリティエンジニア向けに設計されており、実用的なネットワークフロー分析、再現可能な実験の作成、またはトラフィック管理・分類のための機械学習モデルの展開を必要とする方々に適しています。

特徴

  • 暗号化トラフィックの可視化: nDPIを用いて暗号化されたアプリケーションを識別し、メタデータのフィンガープリントを抽出します。
  • システム統合: カーネルプローブを活用して、ネットワークフローを実際のシステムプロセスにマッピングします。
  • ML対応: 標準化された統計的特徴量抽出を提供し、PandasやCSVへのネイティブエクスポートにより、モデルの学習を容易にします。
  • 高性能: LinuxではAF_PACKET_V3/FANOUTを活用し、PyPyもサポートして実行速度を向上させます。
  • 拡張性: NFPluginsというプラグインシステムにより、ユーザーがカスタムのフロー特徴量を作成可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト