さて前回は、リモートアクセスVPNとSDPの比較までで終わりましたが、今回から少し具体的にSDPを使う理由に迫ります。
最近のリモートアクセスVPN周りの提案パターンとしては
- VPNによる集約のパフォーマンスの改善をしたい
- パブリックなアクセスはVPNを経由せずにセキュリティチェックをさせたい
- 認証を強化して、なりすましユーザーの対応をしたい
などが多いのではないでしょうか。 もちろん、一番多いのは、テレワークで安全にVPN環境を用意したいので、VPN装置のサイジングや構成の依頼というのが多いです。 (機能要件よりも、価格、ファイアウオール製品でのお問い合わせが多いです)
1の問題については、2の問題と密接に関わっていて、VPNに流すトラフィックが多いと、VPNのパフォーマンスがボトルネックにつながります。 その改善策として、VPNにパブリックデータを流さないようにする代わり、セキュアWebゲートウェイといった手段で、クラウド型のWebプロキシサービスを利用するケースも一般化してきました。わざわざ、VPNを使って、社内のセキュリティゲートウェイでチェックしなくても、自宅・出張先や支店でも関わらず安全なWebアクセスを提供できます。
SDPはオンプレ型がよいのか? クラウド型が良いのか?
表1: オンプレ型とクラウド型の比較表
※製品によって、異なる場合があるので、要確認ください。
クラウド型の最大のメリットは、セキュアWebゲートウェイと連動させて使えるところがポイントです。パブリックなデータとプライベートなデータを共通のクライアントソフトで管理できるので、1つのソフトウエアで通信保護ができるというのは、とても魅力的なソリューションです。
一方オンプレ型SDPにおいては個人的には無骨さを感じるほどに、ストイックな印象です。ユーザーの規模に合わせて自前で用意するので、そもそもシステム基盤を持っている前提となっているのですが、十分な基盤を持っている場合は、おすすめしやすいと思います。
オンプレ型とクラウド型の機能的な違いはSDP製品の選び方で記載しているので、その特徴は理解していただけると思います。
ただ純粋なSDPの機能をより深く知っていただくためには、オンプレ型のSDPが最適です。SDP自体はとてもシンプルなものなので、小さく初めて、大きく拡張/活用することもできます。また既存のリモートアクセスVPNの機能要件をそのまま移行しやすいですし、何よりもゼロトラストネットワークアクセスに準拠した構成を取ることができるためです。
SDPはゲートウェイ攻撃を実質不可にする。SPAによるメリット。
ここからはオンプレ型のSDPをベースにお話をします。
SPA(Single Packet Authorization)という機能はSDPで利用される特徴的な機能です。
通常リモートアクセスVPNのサービスを公開する場合、VPNゲートウェイをインターネット上に公開する必要があるのですが、今問題になっているのは、この公開されたVPN装置自体に脆弱性があり、だれでもアクセスできる状態になっていることが原因です。
SPAはパケットの中に正しいユーザーしか含めることのできない、SPAキーを使った特殊なTCPパケットを生成します。各SDPのコンポーネントはこの特殊なTCPのみに応答するため、インターネット上に公開されたSDPのコンポーネントは、SPAキーを持ったユーザーだけが、アクセスできる環境を作ることができます。
もしSPAキーを持たないユーザーがSDPの各コンポーネントへアクセスした場合はどうなるのでしょうか。ポートスキャンなどを使って、TCPのオープンポートを調べても、SDPのコンポーネントが応答することはありません。つまりSDPの場合は、物理的にはインターネット上に存在するけれど、論理的に隔離された空間にSDPのシステムを構築できるので、外部からDDoS攻撃を受ける可能性を根本的になくしているということです。
これで、リモートアクセスVPNで問題になっている、VPN装置に依存するセキュリティパッチの更新問題を根本的に解決できるわけです。 そうなると、SPAキー自体をどのように保護するかが、SDPの安全性を担保するために重要になりますが、基本的にはSPAキーは管理者のみが生成できて、SDPにアクセスするための、アクセスURLとなるものは非常に長いものとなり、IPアドレスやFQDNとポート番号の組み合わせだけでは、理論上SDPシステムへの攻撃を行うことができないという仕組みです。
SDPのコンポーネント
SDPが重要なのは、SPAだけにとどまりません。 SDPはセキュリティの検証を確実に行うために、複数のコンポーネントをソフトウェアで提供することになります。具体的には、2020年8月のNISTで定義された、Zero Trust Architectureに準拠するようなコンポーネントです。
コントロールプレーンとデータプレーンを論理的に分離し、各コンポーネントが状態を同期することで、1つの要素だけで通信が許容されないようなシステムです。 万一、一つのコンポーネントに脆弱性があったとしても、1つの要素だけで認可されなければよいので、このようにコンポーネントを分けて、それぞれを連携させることは重要です。
逆にVPN装置の場合は、認証も通信の終端もポリシー設定もすべて1つの装置で提供します。装置自体の脆弱性によっては、認証情報や暗号化に必要な秘密鍵が漏洩してしまう可能性も考えられます。
コンポーネントと通信の流れは以下の通りです。
- デバイスはSDPコントローラーとの認証を行います。(SPAやユーザー、デバイス認証)
- SDPコントローラーはユーザーデータベースにアイデンティティの確認を行います。
- コントローラーはデバイスにアクセス可能なアプリケーションの範囲を表示します。
- コントローラーはゲートウェイに許可した情報を提供します。
- デバイスはコントローラで許可された範囲へのアクセスをおこないます。
- ゲートウェイは許可されたアプリケーションに対して暗号通信を終端します。
- ゲートウェイは許可されたデバイスの状態をコントローラーへ報告します。(継続して報告します)
文章で書くと1つのVPN接続を行うために、たくさんの検証が行われていて複雑ですが、これはシステム自体がすべて自動的におこないますので、ユーザーは自身のデバイスとアイデンティティを使って接続するだけで、負担はありません。
まとめ
クラウド型、オンプレ型のSDPの特徴を理解することは重要です。ユーザーのシステム環境に合わせてメリットがある方を選ぶべきです。
- 純粋なZTNAの機能が必要な場合は、オンプレ型のSDPがシンプルで始めやすい。
- SDPは、SPAによって既存のリモートアクセスで解決が難しい、装置自体の脆弱性の問題を根本的に解決しています。
- SDPは、システムの構造によって、正しいユーザー、デバイスだけが、正当なアクセス権限を最小権限でアクセスできるようになっています。
次回はVPNの認証について比べて見ます
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第3技術部
宮本 世華
釣りが好きです。