PortSet

変更監視モジュールは、Deep Security Agent上のディレクトリレジストリ値レジストリキーサービスプロセスインストール済みのソフトウェアポートグループユーザファイル、およびWQLクエリ文に対する想定外の変更を検索します。変更監視を有効にして設定するには、「変更監視の設定」を参照してください。

待機ポートのセットを表します。

タグ属性

次に示すXML属性はタグ自体の属性であり、変更監視ルールによって監視されるエンティティの属性ではありません。

属性 説明 必須 初期設定値 設定できる値
onChange リアルタイムで監視するかどうかを示します。 いいえ false true、false

エンティティセットの属性

次に示すエンティティの属性は、変更監視ルールによって監視可能な属性です。

  • 作成日時: Windowsのみ - XP SP2 +およびServer 2003 SP1 +が必要です。Windows APIのGetExtendedTcpTable() 関数またはGetExtendedUdpTable() 関数によって返されます。このTCPまたはUDPリンクが作成されたバインド処理の発生時刻を示します。
  • リスナー: このプロトコル上のアクティブなリスナーの数、IPアドレス、およびポート番号の組み合わせ。指定されたポートにバインドされているソケットと待機中のソケットの数が反映されます。この数は、プロセスがポートに複数のソケットをバインドしている場合、ポートを待機しているプロセスの数より大きくなることがあります。指定されたポートにバインドされているソケットが1つだけの場合、この属性の値はありません。
  • パス: (Windowsのみ - XP SP2 +およびServer 2003 SP1 +が必要です。)ポートを所有するモジュールのフルパスを示します (存在する場合)。Windowsでは、このパスは、Windows APIのGetOwnerModuleFromXxxEntry() 関数から取得されます。Microsoftのドキュメントでは、接続テーブルエントリを所有者モジュールとして解釈することが推奨されています。
  • プロセス: (Windowsのみ - XP SP2 +およびServer 2003 SP1 +が必要です。)ポートを所有するモジュールの短い名前を示します (存在する場合)。Windowsでは、このパスは、Windows APIのGetOwnerModuleFromXxxEntry() 関数から取得されます。Microsoftのドキュメントでは、接続テーブルエントリを所有者モジュールとして解釈することが推奨されています。まれに、返された所有者のモジュール名が、「svchost.exe」などのプロセス名、「RPC」などのサービス名、「timer.dll」などのコンポーネント名である場合があります。
  • ProcessId: (Windowsのみ - XP SP2 +およびServer 2003 SP1 +が必要です)このポートのバインドを発行したプロセスのPIDを示します。
  • ユーザ: (Linuxのみ)ポートを所有するユーザを示します。

「key」の意味

このkeyは、次の形式をとります。

<PROTOCOL>/<IP ADDRESS>/<PORT>

たとえば、次のとおりです。

tcp/172.14.207.94/80  
udp/172.14.207.94/68

IPV6

IPアドレスがIPv6である場合、keyも同じ形式になりますが、プロトコルはTCP6またはUDP6です。このIPアドレスは、getnameinfoコマンドによって返される、次のようなIPv6表記となります。

tcp6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/80
udp6/3ffe:1900:4545:3:200:f8ff:fe21:67cf/68

「key」の照合

これは、階層型のキーではないため、*は適用できません。および?を使用するUNIX形式のglob照合は可能です。次のパターンは、72.14.207.90~72.14.207.99のIPアドレスのポート80に一致します。

*/72.14.207.9?/80

次のパターンは、72.14.207.2、72.14.207.20~72.14.207.29および72.14.207.200~72.14.207.255のIPアドレスのポート80に一致します。

*/72.14.207.2*/80

次のパターンは、任意のIPアドレスのポート80に一致します。

*/80

次の例では、待機ポートにおける変更を監視しますが、IPv4およびIPv6のTCPのポート80は無視します。

<PortSet>
<include key="*"/>
<exclude key="tcp*/*/80"/>
</PortSet>

サブエレメント

  • Include
  • Exclude

これらのエレメントに指定できる属性とサブエレメントの「include」と「exclude」の概要は、「変更監視ルールの言語」を参照してください。ここでは、このエンティティセットクラスに関連するincludeおよびexcludeに固有の情報のみを記載します。

PortSetのincludeおよびexcludeに固有の属性

これ以外にも、ポートの各種の属性をincludeおよびexcludeでの監視機能で使用できます。これらの監視では、値とポートの属性値を比較します。各種属性のプラットフォームサポートに注意してください。すべての属性がプラットフォーム間またはプラットフォームリビジョン間で利用可能であるとはかぎりません。したがって、includeおよびexcludeタグを使用したこれらの監視の使用は制限されます。この機能テストでは、 * および ?, を使用したUnixグロブスタイルのワイルドカードがサポートされています。また、パス区切り文字やその他の文字は正規化されていません。アトリビュートの値に対して簡単に一致します。

Path:ポートのパス属性に対するワイルドカード照合をチェックします。次の例では、メインのIISバイナリを実行するプロセスによって所有されているポートを監視します。

<PortSet>
<include path="*\system32\inetsrv\inetinfo.exe"/>
</PortSet>


Process:ポートのプロセス属性に対するワイルドカード照合を確認します。次の例では、svchost.exeまたはoutlook.*バイナリを実行するプロセスによって所有されているポートを監視します。

<PortSet>
<include process="svchost.exe"/>
<include process="outlook.\*"/>
</PortSet>


ユーザ:ポートのユーザ属性に対するワイルドカード照合を確認します。次の例では、スーパーユーザ (root) によって所有されていたUNIXシステム上のポートを監視します。

<PortSet>
<include user="root"/>
</PortSet>