web-dev-qa-db-ja.com

Windowsで起動時にネットワークリークをブロックするにはどうすればよいですか?

Windowsの起動中にネットワークインターフェイスを無効にする(またはアクティブ化を遅らせる)にはどうすればよいですか?これは、ファイアウォールアプリケーションが起動時にネットワークの監視を開始する前に発生する可能性のあるネットワークリークを回避することを目的としています。

3
intika

状況:

ネットワークカードは、ドライバーが読み込まれ、ネットワークサービスが開始された直後にアクティブ化されるため、Windowsの起動シーケンスのかなり早い段階で、サードパーティのファイアウォールを使用するユーザーにとって潜在的なネットワークリスクにWindowsがさらされます。 (ほとんどのファイアウォールはWindowsログイン後にロードされるため)

考えられる解決策は、 BootExecute のような初期の起動段階でネットワークカードを無効にすることですが、この解決策の問題は、ネイティブアプリケーションがジョブを実行する必要があり、次のように実行するのが簡単ではないことです。ネイティブ関数は文書化されていません

解決策:

アイデアは、起動時にドライバーがアクティブ化されないようにドライバーを無効にすることです...システムが起動を完了した後、スケジュールされたタスクによってドライバーが有効になり、ロードされ、現在の状態でアクティブでロードされたまま、将来の再起動のために無効に設定されます時間

Diagram: (ND = Network Driver)
ND Disabled --> Boot --> Desktop --> ND Enabled --> ND Loaded --> ND Disabled (But still loaded) 

アプリケーションは、2つのスケジュールされたスクリプトで構成されます。1つはWindowsログインの前に実行され(起動時)、もう1つはWindowsログインの後に実行されます(デスクトップ)。2つのスクリプトがある理由は、デバイス検出エラーを回避するためです。

スケジュールされたタスクスクリプト(ログオン前):

wmic path win32_networkadapter where index=0 call disable
wmic path win32_networkadapter where index=1 call disable
netsh interface set interface "Ethernet" disable
netsh interface set interface "Wi-Fi" disable

スケジュールされたタスクスクリプト(ログオン後):

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wifidriver /f /v Start /t REG_DWORD /d 3
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ethernetdriver /f /v Start /t REG_DWORD /d 3
wmic path win32_networkadapter where index=0 call enable
wmic path win32_networkadapter where index=1 call enable
netsh interface set interface "Ethernet" enable
netsh interface set interface "Wi-Fi" enable
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wifidriver /f /v Start /t REG_DWORD /d 4
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ethernetdriver  /f /v Start /t REG_DWORD /d 4

出典:

ユーザーモードのデバッグサービスの開始Windowsブートプロセスドライバーのロード順序 および 開始タイプサービスの値

3
intika