ソフトウェア定義境界(SDP)
認証前は接続先の存在すら見えなくする「ダークネット」化で、VPNが晒してきた攻撃対象面をなくす仕組みを理解できます。
- 1.SPA(シングルパケット認可)で正当性を証明するまで、サーバーはポートを開かず接続要求にも応答しない。未認証者には何も見えない。
- 2.ゼロトラストの原則をネットワーク層で実装したものがSDPで、認可後もPEP/PDPが接続ごとに検証し続ける。
- 3.VPNは認証前からTCP/UDPポートを公開し攻撃対象面になるが、SDPは認証と到達可能性を分離しこの露出を構造的に防ぐ。
VPNが抱える構造的な露出問題
VPN(/network/vpn/)は、認証を済ませたクライアントに社内網への通信路を提供します。しかし認証プロトコル自体は、認証前からインターネット上に晒されています。IKEv2はUDP 500/4500で、SSL-VPNはTCP 443やTCP 1194で常時待ち受け、誰でもその存在を確認しポートスキャンやTCPハンドシェイクを試せます。
この「認証前から到達できる」性質が問題です。ゲートウェイのソフトウェアに脆弱性があれば、認証を突破せずともその脆弱性だけで侵害が成立します。実際に大規模なVPN製品の脆弱性がインターネットスキャンで発見・悪用されてきた経緯は、境界防御の入口自体が攻撃対象面(アタックサーフェス)になっていることを示しています。SDP(Software Defined Perimeter) は、この「認証前に見える」状態そのものをなくすことで、この問題に対処します。
ダークネットの原理:認証前は何も見えない
SDPの核心的な発想は、認可されるまでクライアントに対してサーバーの存在を隠す 「ダークネット」 です。通常のサーバーは、正当なクライアントかどうかにかかわらずTCPのSYNパケットに対してSYN-ACKを返します。この応答自体が「ここにサーバーがある」という情報漏洩です。
SDPのゲートウェイは、デフォルトですべての着信パケットを無応答で破棄するようにファイアウォール(多くはステートフルパケットフィルタ、/network/conntrack-stateful-firewall/相当の仕組み)を設定します。認証されていない送信元からは、ポートが開いているのか閉じているのかすら判別できません。ポートスキャンをしても「フィルタされている」以上の情報が得られず、脆弱性探索の起点そのものが消えます。
一般的なファイアウォールは「既定拒否だが到達すればRST/ICMP到達不能を返す」ため、ポートの有無は判別できます。SDPは一歩進んで「認可されるまでパケットの受信自体をしない」に近い状態を作ります。これによりTCPスタックへの到達すら発生せず、OSやミドルウェアの脆弱性を突く前段階の偵察が成立しません。
シングルパケット認可(SPA)が扉を開ける鍵
では、ダークネット化されたサーバーに正当なクライアントはどうやって到達するのでしょうか。ここで使われるのが SPA(Single Packet Authorization) です。
SPAクライアントは、通常のTCP接続を試みる前に、暗号化・認証済みの単一のUDPパケットをゲートウェイに送ります。このパケットには次のような情報が含まれます。
SPAパケットの主な構成要素:
timestamp : 送信時刻(リプレイ攻撃対策のウィンドウ判定に使う)
client_id : クライアントの識別子
requested_service : 接続したいサービス/ポート
nonce : 再送防止用の一意な値
HMAC or 署名 : 事前共有鍵/公開鍵によるパケット全体の認証
ゲートウェイはこのパケットを受信ポートで直接処理せず、pcapベースのパケットキャプチャなどで受動的に監視し、HMAC検証・タイムスタンプの許容範囲チェック・ノンスの再利用チェックをパスした場合にのみ、送信元IPに対して一時的にファイアウォールルールを動的に開放します。検証に失敗したパケットには一切応答を返さないため、総当たりを試みる攻撃者にも成功・失敗の判別材料を与えません。
古典的なポートノッキングは「決まった順序でポートに接続を試みる」方式で、順序さえ盗聴されれば再現できてしまう脆弱性がありました。SPAはパケット1つに認証情報を暗号学的に埋め込むため、パケットを1つ盗聴されても鍵がなければ偽造できず、リプレイもタイムスタンプとノンスで防がれます。
ファイアウォールが開いた後、クライアントは通常のTLSやIPsec(/network/ipsec-internals/)でコントローラー/ゲートウェイに接続し、そこで初めて通常の認証(証明書、mTLS、多要素認証など)を行います。SPAは「接続の入口を開けるための鍵」であり、それ自体がアプリケーション認証を代替するわけではありません。
SDPのアーキテクチャ:コントローラーとゲートウェイの分離
SDPは制御プレーンとデータプレーンを分離した3要素で構成されます。
| コンポーネント | 役割 | ネットワーク上の可視性 |
|---|---|---|
| SDPコントローラー | クライアントとゲートウェイの認証・認可を集中管理するPDP相当の頭脳 | 厳格に制限。多くはSPAでのみ到達可 |
| SDPゲートウェイ(AH: Accepting Host) | 実サービスの手前でトラフィックを中継するPEP相当の関所 | 認可前はダークネット化 |
| SDPクライアント(IH: Initiating Host) | SPA送信・コントローラー認証・トンネル確立を行う端末側エージェント | 通常のインターネット端末 |
接続の流れは、(1) クライアントがコントローラーにSPAを送り認証、(2) コントローラーがデバイスポスチャやユーザー属性を検証し許可すべきゲートウェイ群を判定、(3) クライアントがそのゲートウェイに対してSPAを送りファイアウォールを開放、(4) 暗号化トンネル(mTLS/IPsecなど)を確立してアプリケーション通信を開始、という順序です。この段階を踏むことで、コントローラーもゲートウェイも「認可された経路以外からは見えない」状態を保てます。
ゼロトラストとの関係と違い
SDPとゼロトラスト(/network/zero-trust-network/)はしばしば同一視されますが、正確には 包含関係 にあります。ゼロトラストは「ネットワーク位置を信頼根拠にせず、接続ごとにID・デバイス・コンテキストを検証する」という設計原則の集合であり、SDPはその原則のうち 「未認可の到達可能性そのものをなくす」 という部分を、ネットワーク層・トランスポート層で具体的に実装した方式です。
| 観点 | ゼロトラスト(NIST SP 800-207全般) | SDP |
|---|---|---|
| 扱う抽象度 | アーキテクチャ原則。PEP/PDPの論理モデル | 原則を実現する具体的プロトコル/実装パターン |
| 認証前の可視性 | 規定しない(実装依存) | SPAで到達可能性自体を認可後まで隠す |
| 対象範囲 | アプリ・データ・ID全般に及ぶ広範な枠組み | 主にネットワーク到達性の制御に焦点 |
つまりSDPを導入しても、ゲートウェイの先にあるアプリケーション認可やマイクロセグメンテーションが疎であればゼロトラストとしては不十分ですし、逆にゼロトラストを掲げていてもゲートウェイが認証前からTCPで応答していれば、VPNと同じ露出問題を抱えたままです。両者は補完関係にあり、SDPは「境界をなくす」というゼロトラストの理念を、まさに境界(perimeter)をソフトウェアで動的に再定義することで実現している点が名称の由来でもあります。
まとめ
SDPは、VPNが避けられなかった「認証前からポートが晒される」という構造的な攻撃対象面を、SPAによるダークネット化で解消します。パケット単位の暗号学的認可で到達可能性そのものを制御し、コントローラーとゲートウェイを分離することで、ゼロトラストの「決して信頼せず、常に検証する」という原則をネットワーク層で具体化した仕組みだと理解すると、ZTNA製品群の設計判断が読み解きやすくなります。
ネットワーク Article
ソフトウェア定義境界(SDP)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
SDP
比較で見る軸
難易度: advanced / カテゴリ: ネットワーク / タグ数: 6
導入後に効く点
ゼロトラストの原則をネットワーク層で実装したものがSDPで、認可後もPEP/PDPが接続ごとに検証し続ける。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- ネットワーク
- タグ数
- 6
判断チェックリスト
- 自社の用途が「SDP / ゼロトラスト」に近いか確認する。
- 強みである「SPA(シングルパケット認可)で正当性を証明するまで、サーバーはポートを開かず接続要求にも応答しない。未認証者には何も見えない。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。