APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【Zscaler】VMベースのNSSを利用してCrowdStrikeのNG-SIEMにログを転送する方法

目次

はじめに

本投稿は Zscaler Advent Calendar 2025 19日目の記事です。

こんにちは、エーピーコミュニケーションズ iTOC事業部BzD部0-WANの柳田です。
Zscalerのサービスの1つであるZscaler Internet Access(以下、ZIA)ではトラフィックのログはNanologに保存されています。
企業によってはZscalerから収集されるログを既存で利用されているSIEMと連携して分析を行いたい場合があるかと思います。
そこで利用するサービスがNanolog Streaming Service(以下、NSS)となり、ログをSIEMに連携するための橋渡し役となります。
今回はNSSを利用してCrowdStrikeのFalcon Next-Gen SIEM(以下、NG-SIEM)にログを転送する手順を紹介します。

NanologとNSSの関係
NanologとNSSの関係

参考https://help.zscaler.com/ja/zia/understanding-zscaler-cloud-architecture

NSSの種類について

NSSを利用するには2種類の方法があり「VMベースのNSS」と「クラウドNSS」があります。
VMベースだと自社の環境にVMを構築する必要があり、初期設定や管理まで自社で行う必要があります。
クラウドNSSだと自社の環境にVMを構築する必要がなくなり、SIEMに対して直接HTTPSによるAPI通信を行います。

「VMベースのNSS」と「クラウドNSS」の違い
「VMベースのNSS」と「クラウドNSS」の違い

参考https://help.zscaler.com/ja/zia/understanding-nanolog-streaming-service

注意点

今回は「VMベースのNSS」を利用して構築を行いますが、Zscaler及びCrowdStrike側に明確な構築手順がないためベストプラクティスとは異なる可能性があります。

構成図

構成図は以下の通りです。 簡略のためトラフィックのフローを省略していますが、Nanologを起点にNSSサーバに通信をしているわけではなくNSSサーバからアウトバウンドでNanologに通信を行っています。

構成図
構成図

構築

NSSサーバの作成(AWS)

本記事では以下のリソースの作成と紐づけは完了しているものとします。

  • VPC
  • サブネット
  • ルートテーブル
  • インターネットゲートウェイ

「AWS管理ポータル > EC2 > セキュリティグループ」からNSSサーバに適用するセキュリティグループを作成します。 アウトバウンドに必要な要件は以下のリンクに記載されています。
参考https://config.zscaler.com/zscalerthree.net/nss
※リンクの「zscalerthree」の箇所は環境によって異なります。

セキュリティグループの作成
セキュリティグループの作成

次に「EC2 > インスタンス > インスタンスを起動」からインスタンスを作成します。
インスタンスの名前を入力し、「その他のAMIを閲覧する」からNSSのAMIを選択します。

AMIの選択
AMIの選択

インスタンスタイプを選択し、キーペアを作成します。

インスタンスタイプとキーペアの選択
インスタンスタイプとキーペアの選択

ネットワーク設定では作成済みのVPCやサブネット等を選択します。
また、この際に「パブリックIPの自動割り当て」は無効にします。
NSSサーバではグローバルIPアドレスを管理用インターフェイスとサービスインターフェイスそれぞれに必要としますが
自動割り当てを有効にしてしまうと設定上、1つのインターフェイスにしか割り当てられずエラーとなってしまいます。

ネットワーク設定
ネットワーク設定

高度なネットワーク設定ではネットワークインターフェイス1の設定はデフォルトのままで
「ネットワークインターフェイスを追加」を選択します。
追加したネットワークインターフェイス2のサブネットがネットワークインターフェイス1と同様であることを確認します。

ネットワークインターフェイスの追加
ネットワークインターフェイスの追加

ストレージを選択し、インスタンスを起動します。

ストレージの選択とインスタンスの起動
ストレージの選択とインスタンスの起動

インスタンスを起動した後は「EC2 > Elastic IP > Elastic IPを割り振る」から管理インターフェイスとサービスインターフェイス用のElastic IPをそれぞれ作成し、関連付けを行います。

Elastic IPの割り当て
Elastic IPの割り当て

NSSサーバの作成(ZIA)

「ZIA管理ポータル > Administration > Nanolog Streaming Service > NSS Servers > Add NSS Server」を選択し、NSSサーバを追加します。
「NSS for Web」と「NSS for Firewall,Cloud & Branch Connector」の2つの選択肢がありますが 今回は「NSS for Web」を選択します。
※サブスクリプションの有無によって、「NSS for Firewall,Cloud & Branch Connector」の表記は異なります。

NSSサーバの追加
NSSサーバの追加

NSSサーバを追加するとSSL証明書がダウンロードできるのでダウンロードします。

SSL証明書のダウンロード
SSL証明書のダウンロード

NSSサーバの設定

WinSCP等を用いてダウンロードしたSSL証明書のzipファイルをNSSサーバの/usr/home/zsroot配下にコピーします。
WinSCPを利用する場合はpemファイルをppkファイルに変換する必要があるためWinSCPに備わっているPuTTYgen等を利用して変換を行います。 winscp.net

次にTeraTerm等を用いてNSSインスタンスにSSH接続を行います。 teratermproject.github.io

ユーザ名と初期パスワードは以下になります。
初回ログイン後にデフォルトパスワードを変更するよう推奨します。

ユーザ名:zsroot
パスワード:zscaler

zipファイルがコピーされていることを確認した後に、「sudo nss install-cert NssCertificate.zip」を実行します。

[zsroot@ip-192-168-1-139 ~]$ pwd
/usr/home/zsroot
[zsroot@ip-192-168-1-139 ~]$ ls
NssCertificate.zip
[zsroot@ip-192-168-1-139 ~]$ sudo nss install-cert NssCertificate.zip
Detected an AWS VM!!
Certificates successfully installed
cat: /sc/conf/sc.conf: No such file or directory

次に「sudo nss dump-config」を実行し、構成を確認します。

[zsroot@ip-192-168-1-139 ~]$ sudo nss dump-config
Detected an AWS VM!!
/sc/conf/sc.conf does not exist
Configured Values:
        CloudName:zscalerthree.net
        nameserver:192.168.1.2
        smnet_dev:
        Default gateway for Service IP:
        Routes for Siem N/w:

「sudo netstat -rn」を実行し、デフォルトゲートウェイのIPアドレスを確認します。
この場合は「192.168.1.129」になります。

[zsroot@ip-192-168-1-139 ~]$ sudo netstat -rn
Routing tables

Internet:
Destination        Gateway       Flags     Netif Expire
default          192.168.1.129   UGS        xn0
127.0.0.1          link#2        UH         lo0
192.168.1.128/28   link#3        Uxn        0
192.168.1.139      link#3        UHS        lo0

サービスインターフェイスの設定を行うために「sudo nss configure」を実行します。
nameserverの設定は特に変更せず、サービスインターフェイスで利用するプライベートIPアドレスとサブネットマスクを入力します。
また、先ほど確認したデフォルトゲートウェイのIPアドレスも入力します。

[zsroot@ip-192-168-1-139 ~]$ sudo nss configure
Detected an AWS VM!!
nameserver:192.168.1.2 (Options <c:change, d:delete, n:no change>) [n]n
Do you wish to add a new nameserver? <n:no y:yes> [n]: n
smnet_dev (Service interface IP address with netmask) []: 192.168.1.138/28
smnet_dflt_gw (Service interface default gateway IP address) []: 192.168.1.129
Successfully Applied Changes

ソフトウェアアップデートを行うために「sudo nss update-now」を実行します。

[zsroot@ip-192-168-1-139 ~]$ sudo nss update-now
Connecting to server...
Downloading latest version
Installing build /sc/smcdsc/nss_upgrade.sh
Finished installation!

アップデート完了後に「sudo nss start」を実行し、NSSサーバを起動します。

[zsroot@ip-192-168-1-139 ~]$ sudo nss start
Detected an AWS VM!!
NSS service running with pid 2880

「sudo nss troubleshoot netstat | grep tcp」を実行することでZscalerサービスやSIEMとの接続が確立されているか確認を行うことができます。

[zsroot@ip-192-168-1-139 ~]$ sudo nss troubleshoot netstat | grep tcp
//+SHARED MEMORY KEY 17 (/sc/)
tcp          0(  0%)        0(  0%) 192.168.1.138.7486     x.x.x.x.443    ESTABLISHED

最後に「rm NssCertificate.zip」を実行してzipファイルを削除します。

rm NssCertificate.zip

参考https://help.zscaler.com/zia/nss-deployment-guide-amazon-web-services

Falcon LogScale Collectorの作成

「CrowdStrike管理ポータル > Next-Gen SIEM > Data onbording > Data Connections > Add conenction」から
「HEC / HTTP Event Connector」を選択します。

Data connectorの作成①
Data connectorの作成

名前やベンダー名等を入力し、パーサーには「zscaler-internetaccess」を選択します。

Data Connectorの作成②
Data Connectorの作成②

Connectionを作成した後に、APIキーを作成し、値をコピーします。

APIキーの作成
APIキーの作成

次に「Next-Gen SIEM > Data onbording > Fleet management > Config Overview」からFalcon LogScale Collector(以下、LogScale Collector)に設定するConfigを作成します。
NSSサーバからはTCPのSyslog形式でログが送信されるためtypeにはSyslogをmodeにはtcpを記載します。
ポート番号は後ほど設定するNSS Feedのポート番号と一致するようにします。
また、sinksに先ほどコピーしたAPIキーを記載します。

sources:  
  zia_syslog_1516:
   type: syslog
   mode: tcp
   port: 1516
   sink: ngsiem

  zia_syslog_1517:
   type: syslog
   mode: tcp
   port: 1517
   sink: ngsiem
sinks:
  ngsiem:
    type: hec
    token: xxxxxxxxxxxxxxxxxxxxxxxxxx
    url: https://xxxxxxxxxxxxxxxxx.ingest.us-2.crowdstrike.com

「Next-Gen SIEM > Data onbording > Fleet management > Enrollment tokens」から作成したConfigを適用するためのトークンを作成します。 また、この時にEnrollmentコマンドをコピーしておきます。

Enrollmentトークンの作成
Enrollmentトークンの作成

Falcon LogScale Collectorのインストール

「Support and resources > Tool downloads」から「LogScale Collector For RHEL - X64, v1.9.1」をダウンロードします。

LogScale Collectorのダウンロード
LogScale Collectorのダウンロード

NSSサーバと同じサブネットにEC2を作成し、SSH接続を行います。
また、ダウンロードしたRPMファイルもコピーしておきます。
※通常のEC2の作成と同じためインスタンス作成手順は省略します。

RPMファイルがコピーされたことを確認し、インストールを行います。

[ec2-user@ip-192-168-1-134 ~]$ ls
humio-log-collector_1.9.1_linux_amd64.rpm
[ec2-user@ip-192-168-1-134 ~]$ sudo rpm -ivh humio-log-collector_1.9.1_linux_amd64.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:humio-log-collector-1.9.1-1      ################################# [100%]

次にEnrollmentトークンを作成した際にコピーしたコマンドを実行します。

[ec2-user@ip-192-168-1-134 ~]$ sudo humio-log-collector enroll xxxxxxxxxxxxxxxxxxxxxxxx
The LogScale Collector was enrolled successfully and is now managed by https://xxxxx.crowdstrike.com.
The local configuration file was written to /etc/humio-log-collector/config.yaml and the data directory is located at /var/lib/humio-log-collector.
The service was restarted.

「Next-Gen SIEM > Data onbording > Fleet management」から作成したEC2が表示されることを確認します。

Fleet managementの確認
Fleet managementの確認

NSS Feedsの設定

「Administration > Nanolog Streaming Service > NSS Servers > NSS Feeds > Add NSS Feed」から実際に転送するログの設定を行います。
転送先としてLogScale CollectorのIPアドレスと受信するポート番号を指定し、 Feedの形式は「CrowdStrike管理ポータル > Falcon Documentation > Next-Gen SIEM > Ingest Third-Party Data > Third-Party Data Sources > Zscaler Internet Access」からコピーします。
また、JSON形式で送信する際にパーサーエラーが発生する可能性があるため「,\"」の特殊記号をエスケープ処理します。

NSS Feedの設定
NSS Feedの設定

NSS Feedの設定後に、CrowdStrike管理ポータルでログが転送されていることが確認できれば完了です。

ログの転送確認
ログの転送確認

また、接続が確立できているとNSSサーバ側では「ESTABLISHED」と表示されるようになります。

[zsroot@ip-192-168-1-139 ~]$ sudo nss troubleshoot netstat | grep tcp
//+SHARED MEMORY KEY 17 (/sc/)
tcp          0(  0%)        0(  0%) 192.168.1.138.4222     x.x.x.x.443     ESTABLISHED
tcp          0(  0%)        0(  0%) 192.168.1.138.4223     192.168.1.134.1516    ESTABLISHED
tcp          0(  0%)        0(  0%) 192.168.1.138.3454     x.x.x.x.443    ESTABLISHED

まとめ

今回はクラウドNSSを利用しない方法でNG-SIEMにログを転送してみました。
設定箇所が多岐に渡るため設定ミスに気を付ける必要があります。
私はAWSの設定を1つ飛ばしてしまったためログが転送されず、数日間悩む羽目になってしまいました.....

0-WANについて
私たち0-WANは、ゼロトラスト製品を中心とした、マルチベンダーでのご提案で、お客様の経営課題解決を支援しております。 ゼロトラストってどうやるの?製品を導入したけれど使いこなせていない気がする等々、どんな内容でも支援いたします。 お気軽にご相談ください。
問い合わせ先、0-WANについてはこちら。

www.ap-com.co.jp