DCE SMB インスペクタの概要
タイプ |
インスペクタ(サービス) |
使用方法 |
検査 |
インスタンス タイプ |
マルチトン |
その他のインスペクタが必要 |
なし |
有効 |
|
DCE/RPC プロトコルにより、別々のネットワーク ホスト上のプロセスが、同一ホストに配置されている場合と同様に通信できます。通常、このようなプロセス間通信はホスト間で TCP および UDP 経由で転送されます。TCP 転送では、DCE/RPC が Windows Server Message Block(SMB)プロトコルまたは Samba でさらにカプセル化されることがあります。Samba は、Windows や UNIX または Linux のオペレーティングシステムから構成される混合環境でプロセス間通信に使用されるオープンソースの SMB 実装です。
ほとんどの DCE/RPC エクスプロイトは、DCE/RPC サーバ(ネットワーク上の Windows または Samba が稼働している任意のホスト)を対象とした DCE/RPC クライアント要求で発生します。またエクスプロイトはサーバ応答でも発生することがあります。
IP によりすべての DCE/RPC トランスポートがカプセル化されます。TCP は、SMB など、すべてのコネクション型 DCE/RPC を伝送します。
dce_smb
インスペクタは、SMB プロトコルでコネクション型 DCE/RPC を検出し、ヘッダー長やデータフラグメントの順序などのプロトコル固有の特性を使用して、次のことを行います。
-
SMB トランスポートでカプセル化されている DCE/RPC 要求と応答を検出します。
-
DCE/RPC データストリームを分析し、DCE/RPC トラフィック内の異常な動作と回避技術を検出します。
-
SMB データストリームを分析し、異常な SMB 動作と回避技術を検出します。
-
SMB のセグメント化を解除し、DCE/RPC をデフラグします。
-
ルールエンジンで処理できるように DCE/RPC トラフィックを正規化します。
次の図に、DCE SMB インスペクタが SMB トランスポートのためにトラフィックの処理を開始するポイントを示します。
dce_smb
インスペクタは通常、NetBIOS セッションサービス用のウェルノウン TCP ポート 139 か、または同様に実装されているウェルノウン Windows ポート 445 で SMB トラフィックを受信します。SMB には DCE/RPC の伝送以外にも多数の機能があるため、インスペクタは
SMB トラフィックが DCE/RPC トラフィックを伝送しているかどうかをまずテストします。伝送していない場合は処理を停止し、伝送している場合は処理を続行します。
dce_smb
インスペクタのパラメータと機能の説明には、Microsoft Remote Procedure Call(MSRPC)と呼ばれる DCE/RPC の Microsoft の実装と、SMB および Samba の両方が含まれています。
ターゲットベースのポリシー
Windows および Samba の DCE/RPC の実装は大きく異なります。たとえば、Windows のすべてのバージョンは、DCE/RPC トラフィックの最適化時に最初のフラグメントの DCE/RPC コンテキスト ID を使用しますが、Samba
のすべてのバージョンは、最後のフラグメントのコンテキスト ID を使用します。また、特定の関数呼び出しを識別するために、Windows Vista では最初のフラグメントの opnum
(操作番号)ヘッダーフィールドを使用しますが、Samba とその他のすべてのバージョンの Windows では最後のフラグメントの opnum
フィールドを使用します。
Windows と Samba の SMB の実装には大きな違いがあります。たとえば、Windows は名前付きパイプの操作時に SMB OPEN および READ コマンドを認識しますが、Samba はこれらのコマンドを認識しません。
そのため、dce_smb
インスペクタはターゲットベースのアプローチを使用します。dce_smb
インスペクタインスタンスを設定すると、policy
パラメータは DCE/RPC SMB プロトコルの実装を指定します。これをホスト情報と組み合わせることで、デフォルトのターゲットベースのサーバーポリシーが確立されます。必要に応じて、他のホストおよび DCE/RPC SMB の実装を対象とする追加のインスペクタを設定できます。デフォルトのターゲットベースのサーバーポリシーで指定されている
DCE/RPC SMB の実装は、別の dce_smb
インスペクタインスタンスの対象になっていないすべてのホストに適用されます。
dce_smb
インスペクタが policy
パラメータを使用して対象にできる DCE/RPC SMB の実装は次のとおりです。
-
WinXP(デフォルト)
-
Win2000
-
WinVista
-
Win2003
-
Win2008
-
Win7
-
Samba
-
Samba-3.0.37
-
Samba-3.0.22
-
Samba-3.0.20
ファイル検査
dce_smb
インスペクタは、SMB バージョン 1、2、および 3 のファイル検査をサポートします。
dce_smb
インスペクタは、通常の SMB ファイル転送を確認します。これには、ファイル処理によるファイルタイプと署名の確認と、file_data
ルールオプションのポインタの設定が含まれます。 dce_smb インスペクタ
は、file_id
インスペクタ(Snort 3 オープンソースドキュメントで説明されており、https://www.snort.org/snort3 で入手可)と連携して使用する場合、SMB バージョン 1、2、および 3 の通常の SMB ファイル転送の検査をサポートします。ファイル検査を有効にするには、必要に応じて file_id
インスペクタを構成し、dce_smb
smb_file_inspection
および smb_file_depth
パラメータを設定します。smb_file_depth
パラメータは file_data
IPS ルールオプションが示すポインタから開始して、file_id
が確認するファイルデータのバイト数を示します。詳細については、https://www.snort.org/snort3 で入手可能な Snort 3 のオープンソースのドキュメントを参照してください。
最適化
dce_smb
インスペクタは、フラグメント化されたデータパケットのリアセンブルをサポートしています。この機能は、インラインモードで、完全な最適化が実行される前の検査プロセスの早い段階でエクスプロイトをキャッチしたり、フラグメント化を利用してそれ自体を隠すエクスプロイトをキャッチしたりするのに役立ちます。最適化を無効にすると、多数の誤検知が発生する可能性があることに注意してください。