Zscaler Advanced Cloud Sandbox による AI を活用した Patient-0 の識別

# はじめに
こちらは [Zscaler Advent Calendar 2024](https://qiita.com/advent-calendar/2024/zscaler) の2日目の記事になります。
Zscaler Advanced Cloud Sandbox 利用しているユーザー向けにお勧めの設定をご紹介します。



以下の免責事項をご理解の上、記事を読んで頂けると幸いです。

# 免責事項
本記事のコンテンツや情報において、可能な限り正確な情報を掲載するよう努めておりますが、 誤情報が入り込んだり、情報が古くなったりすることもあり、必ずしもその内容の正確性および完全性を保証するものではございません。そのため、本記事をエビデンスとしたゼットスケーラーへの問い合わせなどはご対応致しかねることをご理解頂けると幸いです。掲載内容はあくまで個人の意見であり、ゼットスケーラーの立場、戦略、意見を代表するものではありません。当該情報に基づいて被ったいかなる損害について、一切責任を負うものではございませんのであらかじめご了承ください。


<br>

# TL;DR
 -  Zscaler Advanced Cloud Sandbox を利用する際に、AI Instant Verdict (AIインスタント判定) 機能がお勧め
 -  Patient-0 アラートを設定すると、悪意のあるファイルが端末に配信許可されたことを検知できる

<br>

# Cloud Sandbox とは
Zscaler の Sandbox はインラインで実行されるSandbox分析と、外部サービスとAPI連携したSandbox分析の２種類があります。
今回はインラインで実行されるSandbox分析の話です。

Zscalerを経由するトラフィックに対して様々なセキュリティの機能が実行されますが、その中の1つにSandboxによる分析とアクションがあります。

参考URL : [図解で紹介「Zscaler Cloud Sandbox」](https://www.youtube.com/watch?v=pGiY97wMzBM)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/29514ac1-65d6-3769-fe5e-04e3b6d60812.png)


<br>

# Sandboxにおけるセキュリティと利便性の課題
従来のSandboxのアプローチでは、未知のファイルを解析するためにSandbox内でファイルが保持され、ユーザーの元にファイルが配信されるまでに時間がかかります。
これはセキュリティと利便性のどちらを優先するかを考慮する上で悩ましい課題となります。

Zscaler の Sandbox では、Sandboxが未知のファイルについて初回の分析を行っている間に、どのような初回アクションを取るかをユーザーで決めることが出来ます。
なお、２回目以降は既知のファイルとしてSandboxが既に判定しているため、未知のファイルを初回分析する時の初回アクションポリシーをどうするかが悩むポイントになります。

初回アクションポリシーを「検疫」と設定した場合には、ユーザーの生産性を低下させることがあります。
一方、初回アクションポリシーを「許可してスキャン」と設定した場合には、Sandboxで分析が完了する前にユーザーの元にファイルの配信を行うことも可能ですが、同時にZero day脅威を含む潜在的に悪意のあるファイルがユーザーに到達する可能性があります。

:::note info
その他のアクションポリシーでブラウザ分離を組み合わせた「隔離と分離」のアクションもありますが、今回は割愛します。
Sandboxポリシーの詳細はこちらになります。
https://help.zscaler.com/ja/zia/configuring-sandbox-policy
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/2d756c1d-700b-315c-50b2-151b665a6194.png)



<br>

# 初回アクションポリシー以外での対応策
上記の課題の通り、セキュリティと利便性のトレードオフをどうバランスを取るかという際に、お勧めの対応策として2つの設定をご紹介します。

 - AI Instant Verdict (AIインスタント判定) 
 - Patient-0 アラート 

<br>

## AI Instant Verdict (AIインスタント判定) 
Cloud Sandbox 機能に AI Instant Verdict (AIインスタント判定) があります。
この機能を利用することで、機械学習を活用して未知のファイルを即座に評価し、「許可してスキャン」ポリシーを使った際もリスクを軽減します。
高確率で悪意のあるファイル（AI/MLスコア91～100）であると判断されたファイルをリアルタイムでブロックしてくれます。


<br>

### ステップ 1: AI Instant Verdict (AIインスタント判定) を有効化

すべてのファイルタイプ、サンドボックスカテゴリ、URLカテゴリを包括的にカバーする新しいルールをSandboxのデフォルトルールの上位ルールとして作成する方法をご紹介します。
この中で AI Instant Verdict (AIインスタント判定) を有効化させてみます。

<br>

1 - ZIA管理コンソールの **Policy > Sandbox** に移動します。
2 - **Add Sandbox Rule** をクリックします。
3 - ルールの順序をデフォルトルールの上位となるように設定します。利用可能な最も低いルール番号を選択します。(番号が低いほど、ルールの優先順位は高くなります。)
4 - **Rule Name** を入力します。
5 - ルールのステータスが **「Enabled」** に設定されていることを確認します。

![sandboxrule1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/4fbf77f7-e431-e59d-4c62-ef1ca9930077.png)
<br>

6 - 以下の条件でルールを作成します。：
  - **File Types:**   全てを選択
  - **Sandbox Categories:**   全てを選択
  - **Protocols:**   全てを選択
  - **その他の項目はデフォルト値:** Any
    
:::note info
最初は特定のユーザーまたはグループを対象にして、ルールの動作をテストしましょう。
:::

![sandboxrule2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/2d056f10-b6f3-9912-fb50-f94622be0137.png)
<br>


7 - ACTION セクションには以下の値を選択します。：
 - **First-Time Action:**  Allow and scan 
(サンドボックス分析にファイルが送信される間、ユーザーにファイルのダウンロードを許可する）
 - **Action for Subsequent Downloads:** Block
 - **AI Instant Verdict を有効化** 
未知のファイルを事前にスキャンし、確信度の高い悪意のあるファイル (AI/ML スコア 91 ～ 100) をリアルタイムでブロック、疑わしいファイルは隔離
 - **オプション:** Minimum Threat Score (40-70)

:::note info
このスコアは、ファイルが潜在的な脅威とみなされるときのしきい値をカスタマイズすることができます。この値を下げると、サンドボックスはより多くのファイルを積極的にスキャンするようになります。また、この値を大きくすると、誤検出を減らすことができます。指定した値以下の脅威スコアを持つファイルは、それ以上の検査なしでダウンロードが許可されます。
:::
    
    
![sandboxrule3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/a6ab3d9a-c228-6a50-ce79-90a68a7d3b3c.png)
<br>

8 - Saveをクリックし、Activateをクリックして変更を適用することを忘れないでください。


    


<br>

### ステップ 2: Patient-0アラートの設定

**Patient-0**とは、新しい脅威や未知の脅威に感染した組織内の最初のシステムを指します。
つまり、ウイルスの初期感染者という意味です。
Patient-0を特定し隔離することは、被害の拡大を防ぐために極めて重要です。

Patient-0イベントは、Zscalerクラウドで確認されたことのないファイルを誰かがダウンロードし、そのファイルがSandboxで分析された後に有害であることが判明した場合に発生します。Zscalerでアラートを設定すると、これらのイベントに関する電子メール通知を受け取ることができます。 

1 - **Administration > Alerts > Define Alerts** に進みます。
2 - **Add Alert Definition**　をクリックします。
3 - **ALERT DEFINITION** で以下の値を選択します。:
    **Alert Name:** Patient 0
    Minimum Occurrences, Within Time Interval, および、その他の値が自動入力されます。

![patient0 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/3b1c9885-fdf7-79b1-6197-7fbd3e689c9e.png)

4 - **Save** をクリックします。

注: その他にも Sandbox Malware、Sandbox Anonymizer、Sandbox Adwareのアラートを作成することもできます。詳細については、https://help.zscaler.com/ja/zia/about-alerts を参照してください。


5.	**Publish Alerts** に移動します。
6.	**Add Alert Subscription** をクリックします。
7.	**ALERT SUBSCRIPTION** の下にある以下を設定します。:
    a.	**Email:** 必要な電子メール・アドレスを追加します。（SOCのML、テストアカウントなど）
    b.	**Patient 0 アラートを有効にする** のチェックボックスをオンにします。
![patient0 3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/23bbef2f-3b3b-0750-4157-90eeeba54d62.png)



8.	Saveをクリックし、Activateをクリックして変更を適用することを忘れないでください。



<br>

### ステップ 3: アラート、ログ、Sandboxの詳細レポート、ユーザー通知などの確認
Cloud Sandbox のセキュリティイベントが、Email アラート、Web Insights Logs、Sandboxの詳細レポート、ユーザー通知にそれぞれどのように表示されるかを調べてみましょう。

:::note info
AI Instant Verdict が悪意のあるファイルをブロックした場合、Patient-0アラートは発動されません。Patient-0アラートは、最初のAIチェックを通過したファイルが、後にサンドボックスで分析された後に有害であることが判明した場合に役立ちます。
:::

<br>

**Email アラート:**
Patient-0 のメールアラートは次のようになります。
ファイルが何回ダウンロードされたかが表示され、ZIA管理ポータルのWeb Insight Logsへの直リンクが提供されます。
![patient0 4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/dae4749f-d120-850d-5102-a715c74ba925.png)

<br>

**Web Insights Logs:**
ZIA Web Insightsのログを確認するには、以下の手順に従います。
1 - Analytics > Web Insights > Logs に移動します。
2 - 適切な時間枠を選択します。
3 - フィルタを追加します: Threat Super Category
  - Sandboxを選択します。
  - Apply Filtersをクリックします。
![patient0 5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/e57700db-c14e-52cf-1498-faf8e883ff8a.png)

ログで確認すべき重要な項目として以下があります。
 - **Policy Action:** 「Sent for Analysis」は、サンドボックスがファイルを分析する間、最初のダウンロードを許可したことを意味します（このテストではAI Instant Verdictは無効）。「ML Block」はAIによって即座にブロックされたことを意味します。
 - **Blocked Policy Type:** ブロックをトリガーしたルールを表示します。
 - **MD5:** ファイルのハッシュをクリックすると、サンドボックスの詳細レポートが表示されます。

<br>

**Sandboxの詳細レポート:**
ZIA管理ポータルからSandboxの詳細レポートを確認できます。
詳細については、 https://help.zscaler.com/ja/zia/viewing-sandbox-reports-data を参照してください。
![sandbox report 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/850d0c7a-0c6c-7387-52b4-b467d73633f9.png)

![sandbox report 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/49b1ae3f-5d32-85d1-fc7c-22878787bd2c.png)


<br>

**ユーザー通知 Blocked Notification:**

トランザクションがブロックされた場合、ユーザのブラウザに以下のメッセージが表示されます。：

1. AI Instant Verdictによって検出された不審な動き
![sandbox block 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/3a16f247-958c-8308-1669-627492f31461.png)

2. 既知の悪意のあるふるまい（クラウド効果として知られている）によりブロックされたもの
![sandbox block 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308973/b92e47ed-3ce2-f4fb-23d1-7c214cd51a96.png)



以上となります。