本ブログは、日々お客様よりいただくネットワーク・セキュリティプロダクトに関するお問い合わせを、
エンジニア1年生が先輩の指導を受けながら検証などを行い、回答した内容を一問一答方式でまとめたブログです。
<番外編 アプリケーション制御とSSLインスペクション 後編>
前編に引き続き、今回はアプリケーション制御と密接にかかわっているSSLインスペクション機能について紹介していきます。
<HTTPS通信化における問題>
昨今では、通信の大半がSSL暗号化されています。
ブラウザからアクセスする際も、大半のウェブサイトでは、https://から始まる通信をしていますが、これが暗号化された通信です。
通信を暗号化することで、クライアントとサーバー間の通信の秘匿性が担保されますが、通信を制御するFortiGateから見ると、それらの通信はSSL通信としか見えなくなるため、NGFW機能を効かせることができなくなります。
この問題をSSLインスペクションで解決します。
<SSLインスペクション>
SSL化された通信をFortiGateでチェックする方法として、SSLインスペクションと呼ばれる機能をFortiGate上で有効化することで、暗号化通信をコントロールすることができます。
これは、SSL通信がFortiGateを中継することで、暗号化されたデータをいったん復号化し、再度FortiGateで暗号化するという処理を行うからです。
- SSLインスペクションの詳細
ここでSSLインスペクションの処理の内容を見ていきましょう。
SSL通信ではサーバーが使用している公開鍵を使ってデータを暗号化しますが、SSLインスペクションを利用すると2回の暗号化の処理が発生します。
そのため、SSLインスペクション機能(フルインスペクション)を利用する場合は、クライアントにFortiGateが信頼している証明書をインストールする必要があります。
- 2種類のSSLインスペクション
FortiOSではSSLインスペクションが必須化されました。
ポリシーでNGFWプロファイルを設定すると、自動的にSSLインスペクションがセットされ解除できなくなります。
〇証明書インスペクション(Certificate-Inspection)
SSL証明書インスペクションと呼ばれる方法です。この機能はパケットのヘッダー情報だけを診断することを目的とした方法です。
この証明書インスペクションではWebサーバーのアイデンティティを確認する目的のみで利用される機能です。
〇フルインスペクション(Full Inspection)
先ほど紹介した通り、SSL通信を完全に復号化するために、FortiGateが信頼している証明書をクライアントにインストールすることで、通信の全てをFortiGateで閲覧、コントロールすることができます。
<フルインスペクションの設定例(Windows)>
フルインスペクションをポリシーに適用する場合は、
事前に端末へ証明書をインストールする必要があります。
SSLインスペクションプロファイルから証明書をダウンロードしてください。
証明書のインストール先を"信頼されたルート証明機関"に指定してください。
証明書一覧にFortiGateの証明書がインストールされていることを確認してください。
以上で証明書の適用が完了しました。
<見え方の違い(証明書インスペクションとフルインスペクション)>
同じ通信でも、SSLインスペクションの方法が異なるとFortiAnalyzer上でのログの見え方が異なります。
同じ通信でもフルインスペクションを通すことにより、
アプリケーションの中で行われた動作まで確認ができます。
<SSLインスペクション 除外ポリシーの設定>
フルインスペクションを利用することで使用できなくなるアプリケーションや通信が発生するため事前にインスペクションをしないアプリケーションやウェブサイトを指定します。
custom-deep-inspectionではSSLインスペクションの対象外となる
- Webカテゴリ
- アドレス
- ワイルドカードFQDN
を選択できます。
ワイルドカードFQDNはドメイン部分のみのオブジェクトです。
そのためネットワーク層までしか確認できないIPv4ポリシーには適用できませんが、アプリケーション層のヘッダー部まで確認できるフルインスペクションを用いる際の除外フィルターとして利用できます。
例えばインターネット全般のフルインスペクションは使用したいが、特定のお客様先との通信にはインスペクションをかけたくない場合に、取引先のドメインアドレスを除外リストに設定することで、IPアドレス変動又は確認できない場合でもインスペクション対象から除外が可能です。
<フルインスペクションを利用する際の注意点>
- 倫理的な問題
〇プライバシー保護に注意
金融、健康、個人的な趣味・趣向などに関連する情報までFortiGate上でログとして収集、管理できる状態です。
そのため、企業に属する端末の通信の管理とは言えて、プライベートな情報を管理できる状態であるため、取得したログの管理および、アクセス制御に対する告知等は厳格に行うべきです。
〇適切な除外ポリシーの実装
上記の通り、管理者は見るべきでないウェブサイトについては適切に制御を放棄する必要があります。
除外ポリシーをきっちりセットし、プライバシーに関連するウェブサイトについては、
FortiGateで管理しないように設定してください。
- パフォーマンス
フルインスペクションは非常にFortiGateにとって負荷の高い機能です。
暗号化通信の復号化処理→復号化された通信のチェック→通信の暗号化処理と一つのセッションに対してたくさんの処理を同時に行います。
特にローエンドのモデルでは、SSL通信を専用に処理するエンジンが搭載されていないため、FortiGateのパフォーマンスに大きな影響がある場合があります。
またハイエンド(NP、CP搭載モデル)であってもユーザー数、セッション数が多くなくなる場合は想定以上にパフォーマンスへの影響がある場合があります。
下図は高負荷試験の参考例です。
利用する際は事前に負荷試験や機能検証を必ず実施してください。
・フルインスペクションが動かないパターン
一見ブラウザアクセスからだと問題なく通信制御できても、アプリケーションの動作ケースによっては正常に動作しないことも考慮する必要があります。
例.Dropboxの場合
上図ではDropbookに対してブラウザとアプリからアクセスしています。
ブラウザからの通信は正常に行われていますが、
アプリからの通信は図の右下のように繋がらなくなっています。
これはブラウザ経由ではFortiGateの証明書を利用できていますが、
アプリケーション側の証明書の書き換えができていないためです。
このようにフルインスペクションを適用する場合は、
様々な注意点が存在するため事前の綿密なテストは必須です。
----------------------
検証後記
前後編に分けてアプリケーションコントロールとSSLインスペクションについて紹介してきました。
今後はアプリケーションの利用の増加、HTTP通信の暗号化が必須の時代になります。
これらの背景を考えると、暗号化を解読しアプリケーションを可視化、制御するこれらの技術は必ず需要のあるソリューションだと思います。
アプリケーションコントロールもSSLインスペクションも、基本ライセンスで利用できる機能なので是非ご活用ください。
今後も役立ちそうなソリューションを紹介していこうと思います。
関連記事はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第3技術部 2課
渡邊 理史