WindowsでUSBドライブをブロックまたは管理する方法 – 実践的なヒント
USBドライブの接続は非常に便利ですが、面倒な手間をかけるだけの価値がないこともあります。企業環境でデータ漏洩を防止したい場合や、誰かが見知らぬUSBメモリを接続するのを阻止したい場合などです。理由は様々ですが、WindowsにはUSBアクセスを制御するための様々な方法が用意されています。完全な無効化から、より詳細なルール設定まで、様々な方法があります。特にGPOやレジストリの設定など、手順が多くて少しイライラしますが、一度設定してしまえばかなり安定します。複数の設定でうまくいった方法を以下に紹介しますので、誰かの手間を省くことができれば幸いです。
🎯 グループポリシーを使用してUSBリムーバブルドライブを無効にする方法
すべてのドメインコンピュータでUSBストレージを無効にする
これは古典的なアプローチです。ネットワーク上のすべての外部ストレージをブロックすることで、データの流出を阻止したり、Netflixでドライブをいっぱいにすることを道徳的に防いだりするのに便利です。基本的には、Active Directoryのグループポリシーを調整することです。適切なポリシーを有効にすると、WindowsはUSBドライブを検出しますが、そこからファイルを開いたりコピーしたりすることはできません。問題は、プリンター、キーボードなど、接続されているその他のデバイスに影響する可能性があることですが、通常、ほとんどのセキュリティロールでは問題ありません。一部のマシンでは、gpupdate /force変更を確認するために実行または再起動が必要になる場合があります。もちろん、GPOサーバーの管理者権限で実行する必要があります。
- gpmc.mscを開きます。これはグループ ポリシー管理コンソールです。
- Workstationsコンテナを見つけて右クリックし、「このドメインにGPOを作成し、ここにリンクする」を選択します。「 USBストレージを無効にする」のような名前を付けます。
- 編集して、「コンピューターの構成」>「ポリシー」>「管理用テンプレート」>「システム」>「リムーバブル記憶域アクセス」に移動します。
- 「すべてのリムーバブル記憶域クラス: すべてのアクセスを拒否」という名前のポリシーを見つけて、有効に設定します。
実際には、gpupdateを強制実行してUSBを再接続すると、Windowsは「場所が利用できません。ドライブにアクセスできません。アクセスが拒否されました。」のようなエラーを表示します。これでUSBドライブは事実上ブロックされたことになります。ポリシーパックの初期段階では、再起動や数回の試行が必要になる場合もありますが、ほとんどの場合、リフレッシュ後に問題は解決します。
書き込みまたは実行アクセスの制限 – より細かい制御
ユーザーにUSBデータの読み取りは許可するが、書き込みは許可しない、あるいはUSBドライブから実行ファイルの実行をブロックしたいですか?同じポリシーを使えば簡単です。「リムーバブルディスク:書き込みアクセスを拒否」や「実行アクセスを拒否」といったポリシーを切り替えるだけです。ユーザーがドライブからファイルを保存したりアプリを実行しようとしたりすると、 「保存先フォルダへのアクセスが拒否されました」といったメッセージが表示されます。万全ではありませんが、管理された環境においては、十分な制御レイヤーとなります。
🎯 特定のユーザーまたはグループのUSBアクセスをブロックする方法
管理者の例外、または標的型拒否
特定のグループまたはユーザー以外のユーザーをブロックしたい場合(例えば、ITスタッフにはUSBの使用を許可し、それ以外のユーザーに対してはロックするなど)、 GPOのセキュリティフィルタリングを使用できます。「 USBストレージを無効にする」GPOを設定し、「セキュリティフィルタリング」で「Domain Admins」などの管理者グループを追加するか、 「Deny USB」などの専用グループを作成します。次に、「委任」タブで、制限から除外したいグループまたはユーザーに対して「グループポリシーの適用」を拒否します。少し手間がかかりますが、柔軟性が必要な場合に便利です。
🎯 レジストリとグループポリシーの設定によるアクセス制御
きめ細かな制御のための高度な方法
レジストリを詳しく調べるのが好きな方(またはスクリプトで作成したい方)のために、USB をブロックするポリシーは、以下の特定のレジストリキーに反映されています。ここでは、またはDWORD を 1 にHKLM\Software\Policies\Microsoft\Windows\RemovableStorageDevices設定すると、読み取り/書き込みが効果的にブロックされます。これらのキーは手動で作成することもできますが、グループポリシーの基本設定や PowerShell スクリプトを使用して展開するとさらに効果的です。Deny_ReadDeny_Write
# Example PowerShell snippet to disable writing on all USB drives $regPath = "HKLM:\Software\Policies\Microsoft\Windows\RemovableStorageDevices\{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}" if (!(Test-Path $regPath)) { New-Item -Path $regPath -Force | Out-Null } New-ItemProperty -Path $regPath -Name 'Deny_Write' -Value 1 -PropertyType DWORD -Force | Out-Null
これにより、制限を自動化し、特定のデバイスクラスをターゲットにすることができます。特に、標準的なGPO設定よりも細かい設定が必要な場合に有効です。環境によっては、レジストリを手動で編集するだけで簡単なテストが可能な場合もあります。
🎯 WindowsでUSBストレージを完全に無効にする方法
USBSTORドライバを無効にする
これはかなり強力な方法です。ドライバー自体を無効にすることで、WindowsがUSBストレージデバイスを認識できないようにします。特にUSBストレージを全く必要としない場合は、非常に効果的です。PowerShellを管理者として起動し、以下を実行します。
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\USBSTOR" -Name "Start" -Value 4
これにより、レジストリが調整され、Windowsにドライバを読み込まないように指示されます。再起動後、USBストレージデバイスはディスク管理やデバイスマネージャーにも表示されなくなります。企業環境では、GPOのレジストリ設定からこれをプッシュすることで、導入環境全体で統一することができます。
3、デバイスは再起動後に再び動作します。
🎯 USBの使用履歴を確認または追跡する方法
USB接続と取り出しの追跡
USBドライブが接続または取り外されたかを追跡するのは少し分かりにくいですが、可能です。PowerShellを実行します。
Get-PnpDevice -PresentOnly | Where-Object { $_.deviceId -match '^USBSTOR' }
アクティブなUSBストレージデバイスの一覧が表示されます。監査に適したアプローチとして、デバイスのインストールと削除に関するWindowsイベントログを有効にしてください。
- イベント ビューアーを開きます。
- アプリケーションとサービス ログ > Microsoft > Windows > DriverFrameworks-UserMode > Operationalに移動します。
- 2003(デバイス接続)や2102 (切断)などのイベントIDを探してください。これらのIDから、ドライブがいつ接続または取り外されたかがわかります。
USBDriveLogのようなツールを使えば、事前にログ出力を設定していなくても、シリアル番号、接続時間、デバイス情報など、詳細な履歴を取得できます。監査やトラブルシューティングの際には、まさに救世主と言えるでしょう。
🎯 特定の USB デバイスのみを許可する(ホワイトリスト)
事前承認されたドライブに制限
これはもう少し高度な設定です。指定したUSBドライブ以外はすべてブロックします。各ドライブはレジストリ(HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR)に一意の識別子を割り当てられます。接続されていないドライブのエントリを削除または削除すると、整理整頓に役立ちます。レジストリの権限をロックダウンすることで、明示的に許可されない限り、ユーザーが新しいデバイスを追加できないようにすることができます。
スクリプトベースの手軽なアプローチとしては、 EventID 2003のイベントを監視し、ホワイトリストに登録されていないデバイスをすべて排除するスクリプトを実行するという方法があります。かなり極端な例ですが、誰が何を使用できるかを厳密に制御する必要がある場合には有効です。
全体的に、USB ドライブのブロックやホワイトリスト登録はかなり階層化される可能性があるため、まずはシンプルなポリシーを試し、必要に応じてスクリプトやレジストリの変更を加えて複雑なものにします。