Zscaler Internet Access のログを Azure Monitor Agent 経由で Sentinel に取り込む
はじめに
Zscaler Internet Access (ZIA) のメインの機能はクラウドのプロキシサービスなので、Web アクセスログを SIEM に収集・分析したい要件は多いと思います。現在 ZIA は Nano Streaming Service (NSS) サーバを使用してログをクラウドから持ってきて、SIEM に syslog で転送する仕組みになっており、Sentinel に取り込む場合は Log Analytics Agent か Azure Monitor Agent (AMA) をインストールしたサーバが必要です。Log Analytics Agent は 2024/8 にリタイアの予定があるため、今回は Azure Monitor Agent を使用した構成で検証しました。
検証の前に
ZIA には Cloud NSS というクラウド側で NSS 提供するサービスが始まっており、NSS サーバなしで Cloud ベースの SIEM に直接ログ転送できるようです。Sentinel はまだ未対応なので、今回 VM を使っていますが早く対応してほしい、と切に願っています。
設定手順
Sentinel 側の設定は、先日 @hisnakad さんが Qiita でまとめていただいている FortiGate 向けの手順とほぼ同様なので、ZIA 側を重点的に記載します。
Sentinel 側の設定
Sentinel のデータコネクタで [Common Event Format (CEF) via AMA] を開き、 [+Create data collection rule] からデータ収集ルール設定します。本検証では「LOG_SYSLOG」を使用します(が、本来は LOCAL Facility を使ったほうがいいでしょうね)。
次に [+Create data collection rule] ボタンの下にあるコマンドを CEF Collector (= AMA インストール済み VM) で実行します。
sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
ZIA 側の設定
こちらを参考に NSS Feed を設定します。
ここで 1 つ注意点があり、Log Analytics Agent であれば ↑ で問題なく動くのですが、AMA の場合は明示的に syslog の Facility, Severity を指定しないとログを転送してくれないようです。NSS からのログは既定では Facility, Severity が付かないため、データ収集ルールの設定 (SYSLOG / INFO) に合わせて、ログフォーマットの頭に <46> を付けています。
なお、数字の詳細はこちらから。
ログ取得結果
うまくログ取得できると、以下のように DeviceVendor が Zscaler でログが取得できます。
参考:REST API でデータ収集ルールを実装
Azure ポータルの DCR の設定の場合、syslog の Severity, Facility を指定する必要があるのですが、REST API で設定する場合は "*" が指定可能です。
そのあと、作成したデータ収集ルールで CEFF Collector を指定します。
この場合は Zscaler ドキュメントの通りの NSS Feed 設定で問題ないです。
Discussion