セキュリティ Network Security NSX ネットワーク

NSX 分散IDS/IPS のSIEM連携の基礎!Syslogから脅威情報を確認してみる

今回の記事では、「IDS/IPS の運用」には欠かせないSyslogによる検知イベントのロギングについてご紹介します。SIEM連携といったSyslog管理の運用にあたってのイメージを持っていただければと思います!

脅威対策としての脅威検知のイベントログの確認など作業や運用ってなかなか楽な作業とは言い難いですよね。こうした運用にSyslogに多くの判断材料や検知情報が一度に含まれていたら、ログのフィルター作業や優先順位付けといった作業負荷を軽減していくことができます。VMware 分散IDS/IPS のSyslogによるロギングのメリットをできるだけ多く解説したいと思います。

過去の関連記事はこちら

 

はじめに

NSX 分散FWや分散IPSの処置は、ESXi Hostで実行されます。また、それぞれの処理によるイベントログもHostで実行され、Sysylogの出力も ESXi Host から export されます。そうしたデータプレーンでのSyslogはNSX Managerは関与せず、Hostに分散して実行できるため、VMware NSX-T は スケールアウトが可能な高いスケーラビリティを持った エンタープライズクラスの次世代FWに位置付けられています。

以下に、ロギングを行う上で必要な設定をご紹介します。

 

 

1. ESXi Host の Syslog 設定

まずは、ESXi Host の Syslog 設定を行います。以下のVMware Docsが NSX-T 3.1 の場合でのSyslog設定手順になります。

 

 

 

2. 分散IDS/IPS ルールでSyslogの有効化

次は、Syslog (FIREWALL_PKTLOG ログ) を利用できるようにします。分散IDS/IPS ルール毎に、Syslog (FIREWALL_PKTLOG ログ) の有効化を選択することができます。各ルールの右端にある「歯車マーク」をクリックします。

 

 

「歯車マーク」をクリックし「ログの記録」を有効化することで、任意の分散IDS/IPS ルールのSyslog (FIREWALL_PKTLOG ログ) を出力させていくことができるようになります。
また、ここの設定ではこの分散IDS/IPS ルールでHitしたイベントのSyslog (FIREWALL_PKTLOG ログ) に、任意の文字列を加えることができる「ログラベル」という機能もあります。
ログ管理で抽出しやすいように、「ログラベル」でユニークな識別情報を加えておくと便利です。

 

 

ここでは、 「Any to DC – IDS Only – Tokyo DC」という文字列を加えてみます。「東京データセンター」で「IDSによる監視目的」に利用してるルールという意味を追加しておき、ログ管理の時にログを見て検知の背景を判断しやすくなるようにしておきます。

 

 

3. Eve JSON フォーマット Syslogの有効化

 

Eve JSON フォーマット Syslogは、「FIREWALL_PKTLOG ログ」に比べてより詳細なIPSでの検知情報を含んだリッチな Syslog (IDPS_EVT ログ) です。
Eve JSON フォーマット Syslog (IDPS_EVT ログ) では、「シグネチャID」や「仮想マシンのUUID」や「シグネチャのDescription」、「脅威カテゴリ」といった脅威情報をログの中から得ることができます。出力サンプルは後半でご紹介します。
Eve JSON フォーマット Syslog (IDPS_EVT ログ) では、NSX Manager API を使って有効化することができます。(NSX 4.2などの現時点の最新リリースでは、GUIからも有効化ができるようになっています)
NSX ManagerのAPI利用方法やガイドなどは、公式なセットアップガイドや各種モジュール、Playbook のサンプル情報などはこちらから参照できます。

https://github.com/vmware/ansible-for-nsxt/tree/v3.0.0

日本語による How to Use の設定サンプルや手順などもこちらにまとめてありますので、興味を持っていただいた方はぜひ参照ください。

【資料】Policy API を利用した NSX-T Data Center の自動化

 

さて、今回は Postman (https://www.postman.com/)を使った例を掲載します。

まず、以下のように「IdsGlobalConfig」の戻り値を見ていきます。

 

# NSX-T 3.1 の場合 GET : https://<NSXmgr>/api/v1/global-configs/IdsGlobalConfig
# NSX-T 3.2 の場合 GET : https://<NSXmgr>/policy/api/v1/infra/settings/firewall/security/intrusion-services

 

 

 

"global_idsevents_to_syslog_enabled": false,

 

になっており、 Eve JSON フォーマット Syslog (IDPS_EVT ログ) が無効となっていることがわかります。
ここの
"_revision": 17

は、この後の Eve JSON フォーマット Syslog (IDPS_EVT ログ) を有効化する際に使います。

 

では、有効化していきます。以下のように「IdsGlobalConfig」に対して PUTを使います。

 

PUT : https://<NSXmgr>v1/global-configs/IdsGlobalConfig

Body
{
"global_idsevents_to_syslog_enabled": true,
"resource_type": "IdsGlobalConfig",
"_revision": 17
}

 

“_revision” には先ほどGETした際に得られた値 (17) を使います。
また、以下の値を true

 

"global_idsevents_to_syslog_enabled": true,

 

とすることで、有効化を指定することになります。

 

PUT結果は以下のようになります。

 

 

戻り値が以下のように

 

"global_idsevents_to_syslog_enabled": true,
"_revision": 18

 

となっていますね。

ここまでで、Eve JSON フォーマット Syslog (IDPS_EVT ログ) を有効化することができました。必要になる設定は以上になります。お疲れ様でした。

 

 

4. Syslog の確認

分散IPSの IPS検知ログとしてのSysylogは ESXi Host から export されるわけですが、ここではそのSyslogの中身を見ていきたいと思います。
今回はIPSの検知イベントに対して、以下の二種類のIPSイベントログが出力されるようになります。
  1. NSX Manager GUIで IPSルールで設定した「ログラベル」を含む Syslog (FIREWALL_PKTLOG ログ)
  2. NSX Manager API で有効化した  Syslog (IDPS_EVT ログ)

 

FIREWALL_PKTLOG ログ

2021-06-21T08:04:47.184Z esx-01a.corp.local FIREWALL_PKTLOG: f545b6e1 INET match IDP_DETECT 12265 OUT 48 TCP 1.1.22.25/48643->1.2.11.13/445 S Any to DC - IDS Only - Tokyo DC

タイムスタンプ、検知モード(IDP_DETECT または IDP_PROTECT)、ルールID、送信元/宛先 IPアドレス & ポート番号、 そして「ログラベル」が含まれています。

 

 

IDPS_EVT ログ (ver3.2ではIDPS-EVT ログ)

2021-06-21T08:05:13Z esx-01a.corp.local IDPS_EVT: [16388192]: {"timestamp":"2021-06-21T08:04:47.476777+0000","flow_id":1243555303510563,"pcap_cnt":782,"event_type":"alert","src_ip":"1.1.22.25","src_port":48643,"dest_ip":"1.2.11.13","dest_port":445,"proto":"TCP","metadata":{"flowbits":["IPC_NULL","SMBAndX0xFF","SMB.Trans2.SubCommand.Unimplemented.Code0E","SMB.Trans2.SubCommand.Unimplemented"]},"nsx_metadata":{"flow_src_ip":"1.1.22.25","flow_dest_ip":"1.2.11.13","flow_dir":2,"rule_id":12265,"profile_id":"5452c1c1-c56b-4cac-ac8e-7bfd5c6bf554","user_id":0,"vm_uuid":"501c0df1-3ba3-fbc7-9f00-f65894698636"},"alert":{"action":"allowed","gid":1,"signature_id":4100769,"rev":2,"signature":"[PT Open] Trans2 Sub-Command 0x0E. Likely ETERNALBLUE (WannaCry - Petya) tool","category":"A Network Trojan was Detected","severity":1,"metadata":{"lock":["false"],"type":["snort","suricata"],"policy":["snort-ips","snort-ids","suricata-ips","suricata-ids"],"signature_severity":["Major"]}},"app_proto":"smb","flow":{"pkts_toserver":7,"pkts_toclient":3,"bytes_toserver":1216,"bytes_toclient":496,"start":"2021-06-21T08:04:47.184867+0000"}}
IDPS_EVT ログ(ver3.2ではIDPS-EVT ログ)では、タイムスタンプ、検知モード(alert/drop/reject)、ルールID、送信元/宛先 IPアドレス & ポート番号、 「アプリケーションプロトコル名」、仮想マシンのUUID、「シグネチャのDescription」、「脅威カテゴリ」といった脅威情報をログの中から得ることができます。
人が見て分かりやすいように、上記のSyslogのテキスト部分を整形したものが以下になります。

 

 

 

 

まとめ

分散IDS/IPS の運用 ということで、「IDS/IPS の運用」には欠かせないSyslogによる検知イベントのロギングについてご紹介しました。Syslogに多くの判断材料や検知情報が一度に含まれており、ログのフィルター作業や優先順位付けといった作業負荷を軽減していくことができます。何よりNSXはネットワークトポロジーを変更することなく、IDS/IPSが導入できるので、vSphere基盤にIPSを追加するのが非常に簡単です。vSphere基盤のセキュリティ強化にぜひ使ってみてください。
ご精読いただき、ありがとうございました。

 

 

〜お知らせ〜

 ※NSX-T Data Center、および VMware SD-WAN by VeloCloud  について入門編から中級編まで各種セミナーも定期開催しております。より詳細についてご興味を持っていただけたお客さまはこちらも併せてご参加をご検討ください。

各種オンラインセミナーの開催日時はこちらから https://vmware-juku.jp/seminar/

 

 

※VMwareでは、各種製品をクラウド上でご評価いただくHands-on Labs(HOL) という仕組みを無償でご提供しています。今回ご紹介した各種ソリューションへの最初の一歩の入り口としてぜひご活用ください。
おすすめのHOLメニューはこちらから ( http://labs.hol.vmware.com/HOL/catalogs/catalog/1212 )