SEがおすすめするSYNESIS Ver.8.5.2で追加された機能 ココがポイント!

SYNESIS開発

 

今月SYNESISのVer.8.5.2がリリースされました。今回もSE目線からのおすすめとその技術背景についてテーマを絞ってお伝えします。Ver.8.5.2で追加された機能のサマリについては、SYNESISポータル 製品情報Ver.8.5.2 リリースノートもあわせてご確認ください。

Ver.8.5.2でソフトウェアフィルタの機能が一部改善されています。今回は、SYNESISのフィルタ機能の特長と今回改善された点についてご紹介します。

SYNESISのフィルタ機能

SYNESISには、2種類のフィルタがあり、設定項目や制限が異なります。この2種類のフィルタにより、ネットワーク上に流れているパケットを効率よく取得、解析が可能になります。

ハードウェアフィルタ
キャプチャ時に目的のパケットだけを保存するために設定をするフィルタです。
キャプチャ時に適用できるフィルタ項目は、ひとつのみです。
ソフトウェアフィルタ
目的のパケットだけを保存する、または表示するために設定するフィルタです。ソフトウェアフィルタの機能は、適用する画面により異なります。
フィルタ項目を「AND/OR/NOT」で組み合わせることにより、複雑な条件を設定することが可能です。

SYNESISのフィルタ適用イメージは以下のようになっています。

SYNESISフィルタ適用イメージ

パケットキャプチャ時には、ハードウェアフィルタを設定します。これにより、キャプチャパフォーマンスを低下させることなく、必要なパケットのみを確実にストレージに保存することができます。ただし、キャプチャパフォーマンスを維持するために設定できる条件が限られており、複数の条件を使った複雑な定義が難しいという側面もあります。

一方、キャプチャ後に条件を絞り込む際には、ソフトウェアフィルタを使用します。ソフトウェアフィルタでは、「AND」「OR」「NOT」を用いて複数の条件を結合し、より複雑な定義を設定することが可能です。

ソフトウェアフィルタは、さまざまな用途でパケットの絞り込みに使用されます。具体的には、パケットストレージからPcapファイルに保存する際や、デコード画面での表示に利用されるほか、MFAやパケットリプレイヤーなどの機能でも用いられます。

ソフトウェアフィルタの定義画面は、以下のように非常に直感的でわかりやすいGUIとなっています。

SYNESISソフトウェアフィルタの定義画面

ソフトウェアフィルタの定義画面

Ver.8.5.2でアップデートされた「フローフィルタ」

Ver.8.5.2より、ソフトウェアフィルタのフローフィルタで複数のIPアドレスを指定することが可能になりました。従来では、フローフィルタ1つの定義に対しアドレスは1つしか設定できませんでしたので、複数のIPアドレスを指定する場合は、指定するアドレスの数の定義作成が必要でした。このアップデートにより、アドレス指定が一度でできるようになりますので、フィルタ作成の手間が削減できます。

複数を1つの定義で指定する場合は、以下のように";(半角セミコロン)"で区切って設定します。以下の例ようにIPv4とIPv6の組み合わせでも指定が可能です。

SYNESISフローフィルタ

ソフトウェアフィルタ - フローフィルタ

データを絞り込む最終手段「パターンフィルタ」

今回のアップデート項目には含まれていませんが、パターンフィルタについても紹介します。このフィルタは、一部のユーザーからは「使っています!」との声がある一方で、「どう設定すればよいかわからない…」と感じている方もいます。パターンフィルタを使いこなせるようになると、より柔軟な条件でパケットを絞り込むことができるようになります。

SYNESISのフィルタ機能には、MACアドレス、VLAN ID、IPアドレス、ポート番号などの主要なパラメータに基づいてフィルタを定義する機能があります。しかし、これだけでは対応できない場合もあります。例えば、特定のプロトコルヘッダに含まれる特定の値を抽出したい場合です。このようなケースでは、パターンフィルタを使用することで、オフセットとパターンを指定し、指定されたオフセット位置にあるデータパターンを抽出することが可能です。

以下がフィルタで設定できる項目です。

項目 説明
開始場所 パターンの一致を判定する位置で、パケットのどの位置をスタートとするかを選択します。
「フレームの先頭」「IPヘッダ」「アプリケーションヘッダ」から選択
オフセット 「固定」にチェックを入れると、パターンの一致を判定する位置を固定します。
「固定」が無効 :「開始場所」と「オフセット」で指定された「以降のすべてのバイト列」でパターン一致を判定
「固定」が有効 :「開始場所」と「オフセット」で指定されたバイト列のみでパターンの一致を判定
オフセット 「開始場所」で指定された位置を起点として、パターンの一致を判定する位置をバイトで指定します。
「16進数」または「10進数」で選択
パターン形式 パターン文字列の表示形式を指定します。
「ASCII」 または 「16進数」 で選択
パターン パターンを「ASCII」または「16進数」の値で指定します。
マスク

「マスク」のパターンを16進数で指定します。

パターン形式が「16進数」の場合のみ有効

テキストパターンとビットパターンの例で設定方法を説明します。

テキストパターン例:アプリケーションヘッダの中に"test"という文字列が含まれたパケットを抽出

アプリケーションヘッダのどこかに特定の文字列が含まれる場合の検索は、「オフセット固定」を解除して設定します。ASCIIで設定した場合は、マスク値は入力できません。

設定情報

開始場所:アプリケーションヘッダ
オフセットタイプ:固定無効
オフセット:0 (16進数) パターン選択:ASCII
パターン値:test

ビットパターン例:IPヘッダのフラグのDFビットのみ"1"のパケットを抽出

ビットやバイトのパターンフィルタは、「マスク」を2進数で表示したときに"1"となる桁のビットが「パターン」と一致するものがフィルタされます。初めて使用する際には少し複雑に感じるかもしれませんので、具体例で説明します。

IPヘッダのフラグでDon't Fragmentビット(DFビット)のみが"1"で、ReservedビットおよびMore Fragmentsビットが"0"であるパケットを抽出する例を示します。この条件に基づいてビットパターンとマスクを計算します。対象データをビット単位で表すと、2進数の列の値となります。Xはマスクの桁がを"0"にあたる桁であり任意の値で構いません。SYNESISでは16進数で設定する必要があるため、Xを0として16進数に変換した値が16進数の列の値です。

種別 2進数 16進数
パターン 010X XXXX 4 0 (Xを0として変換)
マスク 1110 0000 e 0

フィルタ設定値は以下となります。(VLANヘッダが含まれない場合でのオフセット値となっています。)

設定情報

開始場所:フレームの先頭
オフセットタイプ:固定
オフセット:14(16進数)
パターン形式:16進数
パターン:40
マスク:e0

なお、上記の表ではマスクの桁がを"0"にあたるXの値を"0"で変換しましたが、"1"で変換、すなわちパターンの値を「40」ではなく「5f」で設定しても同じ結果が得られます。

保守サービスの締結とユーザ登録のお願い

保守サービスを締結いただいているお客様には、会員サイトよりVer.8.5.2のアップグレード版のダウンロードが可能です。
ダウンロードにはユーザ登録が必要ですので、保守サービスを締結済でまだユーザ登録が未完了の方は、ぜひユーザ登録をお願いします。また、ユーザ登録していただくと、アップグレード版の情報等を受け取ることが可能です。
ユーザ登録には、納入時に同梱されていた「サポート・保守サービス証明書」に記載されている情報が必要です。もしお手元にない場合は、弊社営業かお問い合わせボタンよりお問い合わせください。

SYNESIS お問い合わせ

あとがき

今回は、アップデートされた情報を含め、SYNESISのフィルタ機能全般について紹介しました。SYNESISに限らず、パケットキャプチャ作業において、フィルタを適切に設定することは非常に重要です。ストレスなく迅速な分析のためにも、ぜひフィルタ機能をご活用ください。

Ver.8.0より新しいリリースバージョンがでるたびに技術的背景を交えたアップデートの解説記事を公開しています。今回は前回に引き続きマイナーバージョンのアップデートでしたので、不具合修正や機能改善が中心の内容でしたが、今後もメジャー、マイナーにかかわらずリリースされた際には記事を公開していきたいと考えています。以前の記事もぜひご覧ください。