Cyberprobe
完全なドキュメントは https://cybermaggedon.github.io/cyberprobe-docs/ にあります。
概要
Cyberprobe は、ネットワークのリアルタイム監視のためのネットワークパケット検査ツールキット(ディープパケットインスペクション)です。これは、ネットワーク監視、侵入検知、フォレンジック分析、防御プラットフォームとしての用途があります。Cyberprobe のパケット検査は、物理ネットワークだけでなく、クラウド VPC でも動作します。クラウド規模の展開を可能にする機能があります。
これは、箱から出してすぐにあなたの望むすべてを行う単一のモノリシックな侵入検知ツールキットではありません。もしそのようなものをお探しなら、他のものをご覧になることをお勧めします。代わりに、Cyberprobe は、多種多様なパケット検査タスクを管理するためにさまざまな方法で組み合わせることができる柔軟なコンポーネントのセットです。カスタムネットワーク分析を構築したい場合、それを簡単にする多くのインターフェースがあります。
このプロジェクトは、以下のような多くのコンポーネントを維持しています:
- cyberprobe: データパケットを収集し、リアルタイムでネットワークストリームプロトコルに転送します。パケット収集は、IPアドレス、CIDR範囲、または全取得を対象とすることができます。収集されたパケットには、デバイス識別子がタグ付けされます。cyberprobe は Snort と統合でき、Snort ルールがヒットしたことに応じて IP アドレスを動的にターゲットにすることができます。
- cybermon: 収集されたパケットストリームを受信し、ステートフル処理を実行して、ネットワークイベントを記述する観測結果のストリームを作成します。イベントはさまざまな方法で消費できます。例えば、イベントを pub/sub システムに配信したり、gRPC サービスに提示したりできます。イベントハンドリングは Lua で書かれた関数として実装されているため、独自のカスタムイベントハンドリングを追加できます。
- キャプチャされたデータを扱うために使用できる一連のサブスクライバ。例えば、ElasticSearch、BigQuery、または Gaffer に保存します。
Cyberprobe
プローブである cyberprobe には以下の機能があります:
- インターフェースからパケットを収集し、設定可能なアドレスリストに一致するものを転送するようにタスクを設定できます。アドレスリストは、個々の IP アドレス、CIDR 範囲、または全取得タスク('0.0.0.0/0')にできます。
- Snort アラートを受信するように設定できます。この設定では、Snort からアラートを受信すると、アラートに関連付けられた IP 送信元アドレスが、設定可能な期間動的にターゲットにされます。これは、例えば、Snort ルールをトリガーして潜在的な攻撃者として特定されたネットワークアクターからデータを収集する場合に便利です。
- オプションで、状態のリモート照会と設定の変更を可能にする管理 API を提供できます。これにより、ターゲティングマップの動的な変更と他のシステムとの統合が可能になります。
- 2 つの標準ストリームプロトコルのいずれかで配信するように設定できます。
- 設定可能な期間のパケット収集遅延ラインを挿入できます。これは、例えば、Snort アラートトリガーと組み合わせて、アラートをトリガーするすべてのパケットが確実に収集されるようにする場合に便利です。
Cybermon
モニターツールである cybermon には以下の機能があります:
- 1 つ以上の cyberprobe インスタンスから ETSI ストリームプロトコルで配信されたパケットを分析します。
- 多数のパケットプロトコルをデコードしてネットワークイベントを検出し、ほぼリアルタイムで設定に配信します。
- デコードされた情報は、ユーザー設定可能なロジック(Lua で記述)で利用可能になり、デコードされたデータの処理方法を定義します。RabbitMQ への JSON 配信、gRPC エンドポイント、redis キューへの配信を行うサンプル設定ファイルが提供されています。
- パケット偽造技術が含まれており、TCP 接続のリセットや DNS 応答の偽造が可能です。これは Lua 設定から呼び出すことができます。
- IP、TCP、UDP、ICMP、HTTP、DNS、SMTP、FTP、TLS などをサポートしています。コードは Linux プラットフォームを対象としていますが、他の UN*X 系プラットフォームにも適用できるほど汎用的です。
サブスクライバ
cybermon からのイベントストリームは、JSON 形式で RabbitMQ に提示でき、その後さらなる分析に配信できます:
- evs-alert: イベント内のインジケータヒットを標準出力に報告します。
- evs-cassandra: イベントを Cassandra にロードします。
- evs-detector: イベントにインジケータが存在するか調査します。イベントには、観測されたインジケータヒットがあれば注釈が付けられます。
- evs-dump: 生のイベント JSON を標準出力にダンプします。
- evs-elasticsearch: イベントを ElasticSearch にロードします。
- evs-gaffer: ネットワーク情報を Gaffer (グラフデータベース) にロードします。
- evs-geoip: GeoIP で IP アドレスを検索し、イベントに位置情報の注釈を付けます。
- evs-monitor: イベント情報を標準出力に出力します。
スケーリング
アーキテクチャは AWS Traffic Mirroring をサポートしており、クラウド規模の展開をサポートしています:
- 複数の cyberprobe インスタンスは、ロードバランサーの背後にある複数の cybermon インスタンス間で負荷を分散できます。
- cybermon からのイベントストリームは、負荷を分散しスケールアップを可能にするために pub/sub システムに配信できます。
詳細情報
ソフトウェアを学ぶ最も簡単な方法は、クイックスタートチュートリアルに従うことです。