iOSでSSL Inspectionをしてみた

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

# SSL Inspectionとは
近年、ウェブサイトやアプリケーションの多くがセキュアな通信を実現するためにSSLを採用しています。SSLの通信は暗号化されており、ウイルスやマルウェアなどの危険なコンテンツを隠されています。SSL通信内に潜む悪意のあるコンテンツや脅威がセキュリティの課題になっています。こうした課題に対処するためにSSL Inspectionが不可欠です。SSL Inspectionはこの暗号化されている通信を複合化して、通信の中身を検査します。

# ZscalerのSSL Inspection機能
Zscalerは最新の脅威に対応するための高度な脅威インテリジェンスを組み込んでおり、リアルタイムで対策を行えます。ウィルスやマルウェア等の切断以外に、Internetにファイルを持ち出す際のファイルの中身を検査して、機密データが含まれている場合、持ち出されないような制御も可能です。ZscalerのSSL Inspectionは、ユーザの通信速度への影響を最小限に抑えるように設計されています。クラウドベースのアーキテクチャにより、設定の変更やアップデートが容易であり、オンプレミス環境の複雑さを排除します。

Windows、MacOSでのSSL Inspectionが既に導入され、Mobileの対策は後回しされることが多いです。本記事ではiOSでのSSL Inspectionを設定方法を紹介します。

# Zscaler側のSSL Inspectionの設定
ZIA Admin PortalでSSL Inspectionを設定します。Defaultの設定では、SSL Inspectionが有効ではないため、以下の通り、SSL Inspectionの設定を入れます。(SSL Inspectionできない証明書ピンニングサイト及びOffice365がDefaultでInspectionしないように設定されています。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/bdf6be50-b32d-90ba-d670-1748cd1ac5eb.png)

Zscalerがサポートしているユーザ端末の種類はWindows、MacOS、Linux、iOS、Androidです。SSL Inspectionを行う際、SSL複合化するためのRoot CAをユーザ端末に格納する必要があります。ZscalerのRoot CAを利用する場合、App Profileの設定にInstall Zscaler SSL Certificateを有効化することで、Zscaler Client Connector(ZCC)をインストールする際、Root CAが併せてインストールされます。Windows、MacOS、Linux、AndroidはRoot CA自動配布でSSL Inspectionが可能になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/6cbc77de-a74a-8ed2-720a-c3e83af3cb30.png)

# iOSの設定
iOSの場合、Root CAをMDMで配布するか、手動でインストールする必要があります。
本記事ではiOS(iPhone)にRoot CAを手動でインストールします。

1.Root CAがインストールしてない状態でHTTPSのサイトにアクセスしてみます。
証明書エラーが出ました。SSL InspectionでRoot CAがZscalerのRoot CAとなり、「信頼されていません」と表示されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/935955d6-618a-c25b-f361-f62c8e8d1045.png)


2.ZIA Admin PortalからRoot CAをダウンロードし、Emailに添付してインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/d0ba3adb-6e26-d2d2-7a22-7a35951273eb.png)

Gmailのアプリで添付ファイルを開くと以下のように表示され、構成プロファイルとしてダウンロードされません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/459b82ff-abef-5e11-44f0-4b15faf028ce.png)

SafariでGmailにログインし、ファイルを開くとプロファイルとしてダウンロードされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/f4c9499e-6417-ea0f-7eaa-39c44bfd47d0.png)

3.設定からダウンロード済みのプロファイルをインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/3daf535c-d8f1-2ec0-48ff-27fd605a1a00.png)

4.証明書信頼設定でルート証明書を全面的に信頼すると設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/4803d009-3829-b1a8-8171-cd29d98125cb.png)

以上で設定が完了です。HTTPSのサイトにアクセスして、ZIA Admin PortalのログでSSL Inspectされた通信が確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3625305/6f727d0b-0327-fbad-ef69-0dee8ba98f54.png)

# まとめ
本記事では、セキュアな通信が一般的となる中、SSL Inspectionの重要性とZscalerを使用したSSL Inspectionの設定手順に焦点を当てました。ZscalerのSSL Inspection機能は高度な脅威対策と柔軟性を提供し、通信速度への影響を最小限に抑える設計となっています。Windows、MacOSでのSSL Inspectionが導入され、Mobileの対策は後回しされることが多いですが、設定が完了すれば、セキュリティの向上と悪意あるコンテンツの検知に一層貢献します。記事を通じてSSL Inspectionの理解と実践に役立てていただければ幸いです。