IIJでは、デジタルワークプレ…
執筆・監修者ページ/掲載記事:3件
IIJでは、デジタルワークプレース実現の様々なベストプラクティスを公開しています。中でもご要望の多いパターンを、エンジニアが実際に試してみる本企画。今回はゼロトラストの課題を解決する「ブラウザのバージョンを判定して通信を制御する」方法を取り上げます。詳しい解説も聞きました。
仕事でもプライベートでも、インターネットを利用するときに欠かせないアプリケーションの1つがWebブラウザです。同時に、ブラウザは最もセキュリティ対策を重視したいアプリケーションでもあります。
Webサイトを閲覧するとき、誰がどのように作成したコンテンツなのかを意識する人は少ないでしょう。悪意ある製作者は、Webコンテンツに不正なコードを埋め込み、ブラウザの脆弱性を突いて攻撃や侵入を試みます。既知の脆弱性を抱えた古いバージョンのブラウザは、恰好の攻撃対象になってしまうのです。
ブラウザの自動アップデート機能もありますが、ブラウザを開きっぱなしにしているとアップデートが正常に行われないケースもあります。加えてテレワークの場合、PCの管理は従業員に依存しますので、ブラウザのバージョンを厳密に管理するのは難しいですよね。そこで今回は「ブラウザのバージョンを判定し、指定のバージョンに満たなければ通信をブロックする」という方法を試してみます。
今回は、IIJフレックスモビリティサービス/ZTNA(以下、フレックスモビリティ)を利用します。フレックスモビリティは、PCにクライアントソフトをインストールして利用するVPNサービスです。このクライアントソフトはPCのセキュリティ情報を収集でき、それらを利用してVPN接続の制御を行うこともできます。
今回は以下のような動きを確認したいと思います。ブラウザは「Google Chrome」を利用します。
すでに以下の導入や設定が終わっていることが前提となります。
では設定をしてみましょう。フレックスモビリティの管理コンソールから、ネットワークアクセスコントロール(以下、NAC)の設定を開きます。
「正常性チェック」から、「カテゴリ」「レジストリキー」「比較」「値の型」「値」をそれぞれ選択または入力します。ここでは、Google Chrome のバージョンを示すレジストリ値(※1)を比較対象とし、入力する値(バージョン)よりも高い場合は「正常である」と示します。以下のように設定します。
(※1)参照するレジストリ値のパスはアプリケーションの仕様に依存します。バージョン変更時は、レジストリパスや値に変更がないか確認されることをおすすめします。
(※2)参照するレジストリ値のパスは、「HKEY_LOCAL_MACHINE」の配下である必要があります。
続いて、上記の「正常性チェック」に失敗した場合のアクションを設定します。
エラーメッセージは、VPNクライアントソフト側に出力するメッセージです。VPNを通じた通信が制御された際、利用者にも理由が分かるよう易しい表現で入力します。
以上でNACの設定は終了です。
最後にポリシーの設定を行います。
ポリシーでは、NACの処理結果に連動して通信を制御することができます。今回は「バージョンアップに関わる通信は許可する」「それ以外の通信はブロックする」の通信制御を行いますので、ポリシーの「条件」と「アクション」を以下のように設定します。
(※3)上で設定したNACの「修復レベル」と一致させる必要があります。
以上のNACルール、ポリシールールをユーザまたはデバイスと紐づけたら、設定は完了です。
実際に動作させてみます。ブラウザが指定したバージョンに満たない場合は通信がブロックされ、アップデートのトラフィックのみ許可されました。アップデートが行われた後はVPNを通じた通信が可能になりました。
バージョンに満たない場合は、クライアントソフトには下のようにメッセージが出力されました。設定画面で登録したエラーメッセージが表示されています。
フレックスモビリティでは、PCのレジストリ値を参照して通信制御ができます。他にも「ドメイン参加端末のみVPN接続を許可」などの制御が可能です。
企業によって利用しているアプリケーションは多種多様です。そのためレジストリ値を参照した制御は非常に有効です。
ただし、上の「設定してみる」でもお伝えしたとおり、参照先のレジストリ値はアプリケーション仕様に依存します。バージョンアップによってあるべき先に値がない、ということも起こり得ます。利用する際は、参照しているレジストリ値に変更がないか、正常に動作するかを必ずご確認ください。