※ 2022 年 12 月 17 日現在の情報をもとに作成しています
1. はじめに
本記事では、SWG が暗号化通信を受け取った際、復号するか否かでどのように処理が変わり、レポート表示がどのように異なるかについて説明します。
※ SWG を使用するには、SIG または SIG 相当のサブスクリプション契約が必要です
2. SWG 導入方法の種類
SWG の導入方法によって通信の挙動が一部異なるため、まずは SWG の 4 種類の導入方法について紹介します。
- AnyConnect ~ AnyConnect が Web 通信を SWG に転送する
- PAC ファイル ~ Web 通信を SWG に転送するために、PAC ファイルを設定する
- Proxy Chaining ~ 組織内のプロキシ サーバーが Web 通信を SWG に転送する
- ネットワークトンネル ~ CDFW (Cloud-Delivered FireWall) 用のネットワーク トンネル経由で Web 通信を SWG に転送する
それぞれの動作の詳細については、上記リンクから関連記事を参照してください。
3. AnyConnect の場合の処理
AnyConnect に Umbrella 用のモジュールを追加でインストールし、有効な SIG ライセンスを保持していると、SWG が利用可能になり、一部除外対象を除き TCP 80 および 443 の HTTP/S 通信は SWG へ転送されるようになります。
この時の HTTPS 暗号化通信について掘り下げて説明すると、まず AnyConnect は実際の通信に先立って、CONNECT メソッドの HTTP リクエストを SWG に送り、その後行われる通信は疑似的なトンネルの中を通すように依頼します。
その後に AnyConnect は実際の通信を SWG に送り、受け取った SWG は SSL/TLS 通信の Client Hello に含まれる SNI (Server Name Indication) にあるドメイン名を調べ、選択的復号リストの対象かどうかを調べます。
暗号化通信が復号対象と判断された場合は、復号後に URL を調査し、問題がなければ、改めて Web サーバーとの HTTPS 通信を開始します。
また、暗号化通信が復号対象ではない場合、基本的にドメイン名の調査だけを行い、問題がなければ、AnyConnect から送られてきた通信をそのままの形で Web サーバーに送ります。
4. PAC ファイルの場合の処理
Umbrella Dashboard からコピーした PAC ファイルの URL を端末 (PC など) に設定し、Umbrella Dashboard にグローバル IP アドレスを登録することで、SWG が利用可能になります。
この PAC ファイルの中には、除外設定がされていない TCP 80 および 443 の HTTP/S 通信を SWG へ転送するように記載されています。
HTTPS 暗号化通信について掘り下げて説明すると、まず端末は実際の通信に先立って、CONNECT メソッドの HTTP リクエストを SWG に送り、その後行われる通信は疑似的なトンネルの中を通すように依頼します。
その後に端末は実際の通信を SWG に送り、受け取った SWG は SSL/TLS 通信の Client Hello に含まれる SNI (Server Name Indication) にあるドメイン名を調べ、選択的復号リストの対象かどうかを調べます。
暗号化通信が復号対象と判断された場合は、復号後に URL を調査し、問題がなければ、改めて Web サーバーとの HTTPS 通信を開始します。
また、暗号化通信が復号対象ではない場合、基本的にドメイン名の調査だけを行い、問題がなければ、端末から送られてきた通信をそのままの形で Web サーバーに送ります。
5. Proxy Chaining の場合の処理
組織内のプロキシ サーバーで TCP 80 および 443 の HTTP/S 通信を SWG へ転送するように設定し、Umbrella Dashboard にグローバル IP アドレスを登録することで、SWG が利用可能になります。
HTTPS 暗号化通信について掘り下げて説明すると、まず端末は実際の通信に先立って、CONNECT メソッドの HTTP リクエストを組織内のプロキシ サーバーに送り、その後行われる通信は疑似的なトンネルの中を通すように依頼します。
※ この時の組織内のプロキシ サーバーの動作は、実装によって異なります
その後に端末は実際の通信をプロキシ サーバー経由で SWG に送り、受け取った SWG は SSL/TLS 通信の Client Hello に含まれる SNI (Server Name Indication) にあるドメイン名を調べ、選択的復号リストの対象かどうかを調べます。
暗号化通信が復号対象と判断された場合は、復号後に URL を調査し、問題がなければ、改めて Web サーバーとの HTTPS 通信を開始します。
また、暗号化通信が復号対象ではない場合、基本的にドメイン名の調査だけを行い、問題がなければ、端末から送られてきた通信をそのままの形で Web サーバーに送ります。
6. ネットワークトンネルの場合の処理
Umbrella Dashboard にネットワークトンネルを設定し、組織内のルーターがトンネル経由で Umbrella 側と VPN 接続をしている場合、Umbrella 側では端末から送られてきた通信の中から、TCP 80 および 443 の HTTP/S 通信を SWG へ転送します。
他の導入方法とは異なり、端末上にプロキシの設定やプロキシに関する処理を行うアプリケーションが一切ないため、HTTPS による暗号化通信であっても、CONNECT メソッドの HTTP リクエストは送られません。端末はいきなり HTTPS 通信を開始します。
VPN 経由で HTTPS 通信を受け取った SWG は SSL/TLS 通信の Client Hello に含まれる SNI (Server Name Indication) にあるドメイン名を調べ、選択的復号リストの対象かどうかを調べます。
暗号化通信が復号対象と判断された場合は、復号後に URL を調査し、問題がなければ、改めて Web サーバーとの HTTPS 通信を開始します。
また、暗号化通信が復号対象ではない場合、基本的にドメイン名の調査だけを行い、問題がなければ、端末から送られてきた通信をそのままの形で Web サーバーに送ります。
7. SWG の動作とレポート表示について
これまで 4 つの項に分けて処理の流れを説明してきましたが、結局のところ SWG 側が行う処理は以下のとおり同一です。
復号対象の場合 => 復号後 URL を調査し、問題なければ、Web サーバーと HTTPS 通信を開始
復号対象外の場合 => ドメイン名を調査し、問題なければ、Web サーバーにそのまま送る
そのため、アクティビティ検索レポートの記録のされ方は、どの導入方法でも共通となっています。
レポートの項目
|
復号対象の場合
|
復号対象外の場合
|
宛先
|
実際の通信で使われている URL
|
https://(ドメイン名)
※ SNI からドメイン名だけは判明しているため
|
Request Method
|
実際の通信で使われているメソッド (GET, POST など)
|
CONNECT
※ ネットワークトンネルでは CONNECT メソッドが使われていないが、便宜上 CONNECT と表記
|
アクション
|
URL およびコンテンツから判断した「許可」または「ブロック済み」
※ ここで言うコンテンツとは Web サーバーから送られてきた HTTPS レスポンスの中身を指す
|
ドメイン名から判断した「許可」または「ブロック済み」
|
※ 本文では記載を省きましたが、ドメインや URL による調査の他に、送信先 IP アドレス (つまり Web サーバーの IP アドレス) をもとにブロック対象かどうかの調査を行う場合もあります
8. SNI が異常な場合の挙動
SNI が空になっているなど、正常な値とはなっていない場合、その通信が復号対象かの判断をすることができないため、結局のところ復号処理が行われません。以下のサポート文書にも関連した記載があります。
SWG Proxy handling of non-standard HTTPS requests
https://support.umbrella.com/hc/en-us/articles/5306071976084-SWG-Proxy-handling-of-non-standard-HTTPS-requests
SWG Decryption Behavior
https://support.umbrella.com/hc/en-us/articles/4838256036756-SWG-Decryption-Behavior