ファイアウォールで PowerShell、cmd、リモート デスクトップ (一部の Windows アプリ) をホワイトリストに登録する

ファイアウォールで PowerShell、cmd、リモート デスクトップ (一部の Windows アプリ) をホワイトリストに登録する

私は自分の環境を保護するためにホワイトリスト方式を使用することにしました (つまり、特に指定がない限り、デフォルトですべての受信/送信接続をブロックします)。

ファイアウォールで、Powershell、cmd、リモート デスクトップなどの一部の Windows アプリ (すべてではありません) をホワイトリストに登録する必要があります。ただし、cmd.exe、MSTSC.exe などを追加するだけではうまくいきません。これらのアプリはネットワーク接続に関して他のアプリに一定の依存関係があることは確かですが、それが何なのかはわかりません。

たとえば、system32 の openssh ファイルを単にホワイトリストに登録するだけでは、PowerShell で ssh へのアクセスは許可されません。昇格されたアクセスで「アクセス許可が拒否されました」というエラーが発生します (ファイアウォールを無効にすると修正されるため、適切なファイアウォール ルールで修正する必要があります)。

ポートを開くことはオプションではありません。ポートを開くと、他の不要なアプリもそのポートにアクセスできるようになるためです。たとえば、cmd で curl を実行したいのですが、他のアプリがポート 443 にアクセスできないようにする必要があります。

さらに、ブロックする必要があるアプリの数が、必要な 3 つのアプリの数を大幅に上回っているため、ブラックリストに登録することは選択肢になりません。

答え1

Windows 11: ファイアウォールで System32/svchost.exe を許可すると、すべてが機能します。

PS: svchost に関するいくつかの観察事項を以下に示します。

興味深いことに、このファイルをブロックすると、数分後に Windows のインターネット機能が失われます。理由を知りたかったので、このファイル以外のすべてをブロックしたところ、レジストリでテレメトリ、Windows Update などをオフにしたにもかかわらず、Microsoft や不明な IP に大量の暗号化パケットが送信されていることに気付きました。svchost をブロックすると、Windows はそれらのパケットの送信を再試行しますが、数分間の失敗の後、インターネット接続全体が切断されます。

これは興味深いです。Firefox などの一部のアプリケーションは、svhost なしで数分間機能するため、インターネットにアクセスするために svhost を必要としないようです (svhost をブロックするとすぐに機能しなくなる PowerShell とは異なります)。しかし、Windows はインターネットを完全にオフにすることにします。これは、Windows ファイアウォールは Windows Telemetry を完全にブロックしますか?ファイアウォールの動作に関する両方の観察が間違っているため、Windows IP はファイアウォールにハードコードされていません (そうであれば、svhost を含むすべてをブロックした後でも tls パケットを確認できたはずですが、そうではありません)。また、すべてをブロックしても Windows がそれらのパケットを送信するのを防ぐことはできません。なぜなら、svhost はファイアウォールでホワイトリストに登録されている必要があるからです。

関連情報