Snort 3 は、次世代の Snort IPS (侵入防止システム) です。このファイルは、Snort++ が提供するものを示し、ダウンロードからデモまでの手順を案内します。 Snort に慣れていない場合は、まず Snort のドキュメントを参照してください。次のトピックについて説明します。
概要
依存関係
ダウンロード
Snortを構築する
スノートを実行する
ドキュメント
きしむ
このバージョンの Snort++ には、以下に示すものを除き、新機能のほか、Snort 2.X のすべての機能と Snort の基本バージョンのバグ修正が含まれています。
Project = Snort++ Binary = snort Version = 3.0.0 (Build 250) from 2.9.11
Snort++ の主な機能をいくつか紹介します。
複数のパケット処理スレッドをサポート
共有構成および属性テーブルを使用する
シンプルでスクリプト可能な構成を使用する
主要なコンポーネントをプラグイン可能にする
ポートレス構成のサービスを自動検出する
ルールでスティッキー バッファーをサポートする
リファレンスドキュメントを自動生成
より優れたクロスプラットフォームサポートを提供する
コンポーネントのテストを容易にする
共有ネットワークマップを使用する
ロードマップ上の追加機能には次のものが含まれます。
パケット処理のパイプライン化をサポート
ハードウェア オフロードとデータ プレーンの統合をサポート
プロキシモードをサポート
Windowsのサポート
すでに Snort を構築している場合は、必要なものがすべて揃っている可能性があります。 そうでない場合は、最新のものを入手してください。
ソースからビルドする cmake
パケット IO 用の https://github.com/snort3/libdaq の daq
ネットワーク ユーティリティ関数については https://github.com/dugsong/libdnet.git からの dnet
JavaScript 構文パーサー用の flex >= 2.6.0 (https://github.com/westes/flex から)
g++ >= 7 または他の C++17 コンパイラ
CPU アフィニティ管理用の hwloc (https://www.open-mpi.org/projects/hwloc/ から)
構成とスクリプト用の http://luajit.org の LuaJIT
SHA および MD5 ファイル署名、protected_content ルール オプション、および SSL サービス検出用の https://www.openssl.org/source/ からの OpenSSL
tcpdump スタイルのロギング用の http://www.tcpdump.org の pcap
正規表現パターン マッチング用の http://www.pcre.org の pcre
ビルドの依存関係を見つけるための https://www.freedesktop.org/wiki/Software/pkg-config/ からの pkgconfig
解凍用に http://www.zlib.net からの zlib
追加のパッケージにはオプションの機能が提供されます。 詳細についてはマニュアルを確認してください。
ソース tarball は、snort.org のダウンロード セクションで入手できます。
snort-3.0.0-a3.tar.gz
次のコマンドを使用してコードを取得することもできます。
git clone https://github.com/snort3/snort3.git
追加機能を提供し、プラグインの構築方法を示す cmake 用の個別のエクストラ パッケージがあります。エクストラのソースは snort3_extra.git リポジトリにあります。
次の手順に従います。
ソースディレクトリを設定します。
Github クローンを使用している場合:
cd snort3/
それ以外の場合は、次のようにします。
tar zxf snort-tarballcd snort-3.0.0*
インストールパスの設定:
import my_path=/path/to/snorty
コンパイルしてインストールします。
cmake と make を使用してビルドするには、configure_cmake.sh を実行します。 「build」という名前の新しいサブディレクトリが自動的に作成され、設定されます。
./configure_cmake.sh --prefix=$my_pathcd ビルド make -j $(nproc) インストール
注記:
src/snort -V ができればビルド成功です。
cmake に精通している場合は、configure_cmake.sh の代わりに cmake/ccmake を実行できます。
cmake --help は、Xcode などの利用可能なジェネレーターをリストします。 自由に使用してください。ただし、それらに関するサポートは別途提供されます。
以下にいくつかの例を示します。 Talos ルールや設定を使用している場合は、まず snort.lua および snort_defaults.lua の先頭に必要な変数を設定する必要があります。
Snort++ は、コマンド ラインから次のような多くのヘルプを提供します。
$my_path/bin/snort --help$my_path/bin/snort --help-module stop$my_path/bin/snort --help-config | $my_path/bin/snort --help-module grepスレッド
pcap を調べてダンプします。 以下では、 a.pcap をお気に入りに置き換えます。
$my_path/bin/snort -ra a.pcap$my_path/bin/snort -L dump -d -e -q -ra a.pcap
ルールの有無にかかわらず、構成を検証します。
$my_path/bin/snort -c $my_path/etc/snort/snort.lua$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules
IDSモードを実行します。 以下では、pcaps/ を 1 つ以上の *.pcap ファイルが含まれるディレクトリへのパスに置き換えます。
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -ra a.pcap -A アラートテスト -n 100000
1:2123を抑えてみましょう。 conf を編集するか、単にこれを実行することもできます。
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -ra a.pcap -A warning_test -n 100000 --lua "抑制 = { { gid = 1, sid = 2123 } }"
複数のパケット スレッドを使用してディレクトリを完全に占有します。
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules --pcap-filter *.pcap --pcap-dir pcaps/ -Aalert_fast --max-packet-threads 8
追加の例は doc/usage.txt に記載されています。
マニュアルを見てください。マニュアルの一部はコードによって生成されており、最新の状態に保たれています。
$my_path/share/doc/snort/snort_manual.pdf$my_path/share/doc/snort/snort_manual.html$my_path/share/doc/snort/snort_manual/index.html
その方法と理由についてはまだあまり説明されていませんが、現在利用可能なすべての設定などが含まれています。ルールに対するいくつかの重要な変更点は次のとおりです。
次のように、カンマ区切りのコンテンツ サブ オプションを使用する必要があります。 content:"foo", nocase;
バッファセレクターはコンテンツの前に表示され、変更されるまで有効である必要があります。
pcre バッファー セレクターが削除されました
Snort++ と Snort の詳細については、マニュアルを確認してください。
パラメータの定義方法などを理解するには、マニュアルのリファレンスセクションを確認してください。
ここでは紹介されていない新機能についても説明します。
snort2lua、Snort 2.X conf とルールを新しい形式に変換するツール
新しいHTTPインスペクタ
構成をトラフィックにマッピングするためのバインダー
ポートに依存しない設定用のウィザード
ルール解析の改善 - 任意の空白、C スタイルのコメント、#begin/#end コメント
ローカルおよびリモートのコマンドラインシェル
o")~
私たちと同じように、皆さんも Snort++ に興奮していることを願っています。 Snort ユーザー リストについてのご意見をお聞かせください。 それまでの間、私たちは砥石に鼻を向け続けます。