信頼できないVPNとは三つの別々の境界であり、一つではない
遠隔のピア、経路上の事業者、ホスト上のクライアントは三つの異なる脅威です。ファイアウォールの規則が答えるのは最初の一つだけです。
「このVPNを信頼していない」という一言は、たいてい三つの主張が一つの文を着ているものです。そのネットワーク上の遠隔ピアはあなたのホストのサービスに到達できるかもしれませんし、トンネルを運営する事業者はそこを通る通信を観察できるかもしれませんし、導入したクライアントソフトウェアはあなたのマシンのネットワークポリシーを変更できるかもしれません。正すべき思い込みは、ファイアウォールの規則、仮想マシン、あるいは慎重なOS選択が三つすべてに答えるというものです。それぞれの対策が答えるのは、そのうちのちょうど一つです。
神話:一つの制御がリスク全体を覆う
よくある前提は、信頼できないネットワークに参加することは一つの決定と一つの緩和だというものです。人はすでに信頼している制御を選んで適用し、リスクは片付いたと考えます。ファイアウォールは有効で、作業領域は使い捨てで、クライアントは評判の良いベンダー製だ、というわけです。
これらの制御は、前提が示唆するようには重なりません。ホストのファイアウォールは遠隔ピアが到達できる範囲を制限しますが、あなたのTLSを終端する事業者には何もできません。仮想マシンは作業領域をホストのファイルから分離しますが、その両方の下にあるネットワークスタックを再構成できるクライアント構成要素には何もできません。各制御が実際に作る境界を名指しすることが、この練習のすべてです。
それらを分けることは、どのリスクを受け入れると選んだかも教えてくれます。実際の決定のほとんどは一つの境界を緩和し、別の一つを許容します。変更記録がどちらがどちらかを書いている限り、それで問題ありません。
遠隔ピアが実際に到達できるもの
まず待ち受けているサービスから始めます。パケットが暗号化されて届いたという理由で広く信頼されているトンネルインターフェースはよくある誤りで、それによってそのネットワーク上の他の誰にとっても、すべてのローカル待ち受けが候補の標的になります。暗号化が守るのは二つの端点の間の回線であり、向こう側のピアの意図については何も語りません。
ss -tulpn sudo nft list ruleset ip -br addr
サービスはすべてのインターフェースではなく、必要とするアドレスに束縛し、承認された作業が要求する操作だけを許可します。転送、ブリッジ、アプリケーション代理を明示的に保ちます。二つのネットワーク接続だけでは通過経路は生まれませんが、代理の規則は確実に生み出せるからです。
承認された使い捨ての作業領域は、遠隔ネットワークが到達できる範囲を減らしますが、それは共有設定が主張と一致している場合に限られます。共有フォルダー、クリップボード連携、資格情報エージェント、管理チャネルはどれも、作業領域が作るはずだった境界を越えます。作業領域のラベルは、そのどれが開いているかを何も証明しません。
NISTのゼロトラストアーキテクチャは、このすべての背後にある原則を述べています。ネットワーク上の位置だけでは暗黙の信頼は与えられません。トンネルが受け入れられた後もリソース認証には仕事があり、そのネットワークを他に誰が共有しているかという問いにも仕事があります。
経路上の事業者が見られるもの
VPNはあなたの通信を経路上の別の場所へ移すだけで、アプリケーションの暗号化を加えるものではありません。事業者があなたのTLSを終端すれば、ブラウザーが本来守っていたはずの内容を読めますし、ローカルのファイアウォール規則はそれを変えません。
実際の宛先に対しては通常の証明書検証を保ち、リゾルバーとメタデータの経路を理解してください。DNSの問い合わせは、その前にあるペイロード以上のことを明かすことがあります。メタデータだけ、つまりどのアドレスにいつ接触したかは、内容を読む必要もなく事業者の問いに答えてしまうことがよくあります。だからこそ「通信は暗号化されている」と「通信は私的である」は別の主張です。
その可視性が作業にとって受け入れられないなら、答えはローカルでのろ過を増やすことではなく、別の承認されたアーキテクチャです。ローカルのろ過は、まだ居座っている経路から観察者を外すことはできません。
ローカルクライアントが変更できるもの
これが人が見落とす境界であり、他の二つを意味のないものにする境界です。LinuxではCAP_NET_ADMINが、自身のネットワーク文脈におけるインターフェース設定、ファイアウォール管理、経路変更を覆います。その能力を持つソフトウェアは、あなたが今書いたポリシーを書き換えられます。
getcap /usr/sbin/openvpn systemd-analyze security vpn-client.service ip netns list
ネットワーク名前空間はネットワーク状態にとっては本当の境界で、それ以外には貧弱な境界です。ファイルシステムも資格情報の保管庫も分離しません。問題全体の容器ではなく、一つの層として扱ってください。
クライアントとその設定は保守された入手元から得て、それが要求する権限を確認し、特権のある構成要素は管理者の管理下に置きます。仮想マシンは、貴重な資格情報の隣で説明のないインストーラーを走らせる許可になることなく、適格な評価境界の一部になれます。インストーラーはあなたが与える権限で動き、その権限こそが境界です。
どの境界を受け入れたかを書き留める
四つのものを名指しする一文で締めくくります。信頼できるローカルコード、許可された遠隔アクセス、保護されたアプリケーションデータ、そして残る事業者との関係です。その一文は、VMやOSやウイルス対策製品が敵対的なネットワークを安全にしたという包括的な主張より価値があります。
そのうえで、狭い操作が機能し、要求された拒否がなお成立することを確認します。トンネルが落ちた後も含めてです。トンネルが上がっている間だけ存在する境界は、あなたが文書化した境界ではありません。
すべての脆弱性が存在しないことを証明する試験はなく、そう主張するレビューは過大な主張です。誠実な成果物は、残留リスクとそれを受け入れた人を名指しします。