「VPNの課題」のところで説明したように、VPNには①攻撃者もVPN機器に接続できる問題、②攻撃者がネットワーク内を徘徊できる問題がある。
その対応として、SDP(Software-Defined Perimeter)という構成が定義されている。SDPにより、攻撃者からの通信はブロックしつつ、正規利用者のみに予め許可されたサービス(アプリケーション)へのアクセスを提供することが可能になる。
SDPの基本構成
SDPは下図のように、アクセス先サーバ以外に3つの要素で構成される。それぞれからログが出るので、ログ管理機能は別途必要になる。
Initiating SDP Host(以下、IH)、Accepting SDP Host(以下、AH)は英語のまま使われることが多いが、日本語でもわかりやすいように図の中では日本語に訳してみた。
また、上図において、点線はゼロトラストにおけるコントロールプレーンとしての通信を、実践はデータプレーンとしての通信を表している。
ここで図には現れてこない重要な点は、SDPコントローラおよびAHは、SPA(Single Packet Authorization)で保護されていることである。これにより、攻撃者はそれらのサーバに通信を開始することができず、存在することを知ることもできない。
SDPコントローラ
SDPコントローラは、ポリシーを定義し、検証、決定するメカニズム。
ゼロトラストの構成図では「ポリシー決定ポイント(Policy Decision Point、PDP)」に相当しており、どのアイデンティティ(ユーザーやグループなど)が、どのデバイスから、組織のどのサービスにアクセスできるか、という情報を管理する。
そのため、SDPコントローラは、企業の認証ソリューション(アイデンティティプロバイダ、多要素認証サービスなど)と連携し、認証と認可を行う。
また、SDPのIHホストとAHホストの通信において、どのSDPホストが互いに通信できるかの決定も行う。
IH上のユーザがコントローラに接続すると、コントローラは、ユーザを認証し、アイデンティティやデバイス属性を含むユーザのコンテキストに基づいて、ユーザに許可されたサービスのみへのアクセスを(AHを介して)与える。
SDPコントローラは、インターネットに晒されていることが多い(でないと、IHがアクセスできない)ため、攻撃者から秘匿するために、Single Packet Authorization(SPA)を使用して未承認のユーザやデバイスから隠蔽させる。(SPA機能はSDPコントローラ自体が提供しても、前面にゲートウェイをおいて提供しても良い)
Initiating SDP Host (呼出し元SDPホスト=SDPのクライアント、IH)
SDPのIHは、(AHを介して)企業リソースにアクセスするためのプロセスを開始します。
IHは、ユーザ端末にインストールするエージェントでも、Webブラウザ等でもよい。
エージェントを利用する場合、ユーザ端末のデバイスポスチャの検査(組織がユーザ端末に求めているセキュリティ要件の充足度合いの確認)や、データ通信経路をより効率的な経路への誘導などの付加機能が利用できる。
SDP Accepting Host (受入れ側SDPホスト、AH)
AHは、自身が保護しているサービスへのアクセスを、当該アクセスを許可されたユーザに提供する。ゼロトラストの構成図上は「ポリシー適用ポイント(Policy Enforcement Point、PEP)」として機能する。
AHに向かう全ての通信は、デフォルトでブロックされ、認証・認可されたユーザのみがアクセスできるように構成される。
AHは、保護しているサービスと同居するケースもあるが、保護しているサービスの前面にゲートウェイとして構成されるケースもある。
AHはSDPコントローラから制御情報を受け取り、許可されたIHからのみ接続を受け入れ、認可されたIHのみに対してサービスへのアクセスを提供する。
また、AHは、IHから通信を受け取り、自身が保護しているサービスに中継する交換機として機能する。
⏩
SDPの構成例
SDPとしては、大きく6種類の形態が定義されており、利用用途に則した形態を取ることが可能である。
以下の図において、青色の線は、相互認証された相互認証された暗号化通信であり、相互認証することにより通信経路上に攻撃者が中継ポイントとして侵入する(Man-In-The-Middle攻撃)のを防ぐ。また、灰色の線は、接続先サーバが従来使用していたプロトコルによる通信(よって、暗号化されていない場合もある)。
①クライアント ― ゲートウェイ型
アクセス先サーバに変更を加えることなく、1台のSDPゲートウェイで効率的にSDPを構築する形態。SDP 受入れホスト(AH)は、ゲートウェイ(以下、SDPゲートウェイ)として機能し、その背後に1台以上のアクセス先サーバが配置される。
IHとSDPゲートウェイ間の通信は暗号化通信となり、SDPゲートウェイとアクセス先サーバとの間の通信プロトコルによらず保護される。
SDPゲートウェイとアクセス先サーバ間の通信は、アクセス先サーバが従来利用していた通信プロトコルが利用される。そのため、アクセス先サーバには変更は不要。
SDPゲートウェイは、リモートからアクセスできる必要があるが、アクセス先サーバは直接リモートからアクセスできる必要はない。
②クライアント ― サーバ型
クライアントとサーバ間で、End to Endの通信保護(相互認証付きの暗号化通信による保護)が必要な場合の形態。アクセス先サーバの中に、AHとして機能するソフトウェアをインストールする。アクセス先サーバへの通信はAHが受け付けるため、アプリケーションの通信はリモートから保護される。
③サーバ ― サーバ型
従来利用していたプロトコルによらず、サーバ間の通信を暗号化された通信で保護したい場合に利用する形態。
最初の通信を発信する側にIHとしての、通信を受信する側にAHとしての機能を持つソフトウェアをインストールする必要がある。双方が発信し合う場合は、双方にIHとAHの機能をインストールする必要がある。
サーバはIHおよびAHの背後にあるため、リモートから保護される。
④クライアント ― サーバ ― クライアント型
VoIP(Voice over IP)、チャット、ビデオ会議のように、中継サーバを経由してクライアント同士がPeer-to-Peerで接続する場合に利用する形態。
中継サーバ(アクセス先サーバ)にAH機能をインストールする必要がある。
⑤クライアント ― ゲートウェイ ― クライアント型
上記のクライアント ― サーバ ― クライアント型の変形版で、クライアント同士のPeer-to-Peer接続が必要な場合に利用する形態。
クライアントはIH機能だけではなく、AH機能も持つ必要がある。クライアント間での実際の接続方法は、アプリケーションがどのような通信を行うプロトコルかに依存する。
⑥ゲートウェイ ― ゲートウェイ型
クライアント端末にIHをインストールできない場合(例: プリンタ、センサー、スキャナ、IoT機器など)に利用する形態。
SDPゲートウェイがIHとしても振る舞うことで、それらの端末がSDPを利用できるようになる。
⏩
SDPのアクセスフロー
SDPのアクセスフローは、大きく導入フェーズと接続フェーズに分かれる。導入フェーズはSDP導入時に1回だけ実施される。接続フェーズは、IHがSDPに(再)接続する際に実施される。
導入フェーズ
SDPコントローラ、Accepting SDP Host、Initiating SDP Host、のそれぞれに相互接続に必要な情報、主に認証に必要な情報を導入する。
IdP(Identity Provider、認証サービス)の導入も必要に応じて実施する。
接続フェーズ
① IHは、SDPコントローラに接続し、認証を行う
② SDPコントローラは、IHを認証した後、当該IHが接続を許可されているサービスの一覧を決定(この一覧はまだIHに伝えられていない)
③ SDPコントローラは、AHに当該IHからの通信を受け入れるように指示するとともに、暗号化通信に必要な情報を提供
④ SDPコントローラは、IHに許可したサービスの一覧と、暗号化通信に必要な情報を提供
⑤ IHは、AHに対してSPAを利用した接続を開始。接続が認証された場合、双方向認証されたTLS接続(mutual TLS、mTLS)を確立させる。
⏩
0 件のコメント:
コメントを投稿