Q

社内における情報漏えい対策の一環として,「USBメモリー・キーを使用させない」というセキュリティ指針を立てようと思っています。

 どのようにすれば,Windowsマシンで実現できるのでしょうか?

A

情報漏えい防止といったセキュリティ対策を考えたときに,現在ほとんどのPCで標準装備しているUSBインターフェースは頭の痛い存在です。Windows NTならば,そもそもUSBをサポートしていないので大丈夫なのですが,WindowsXPとWindows 2000では市販のUSBメモリー・キーを差し込むと外部記憶として認識してしまい,簡単にデータを持ち出されてしまいます。

 すべてのUSB機器を使わせないのならば,BIOSあるいはデバイス・マネージャで「USBを使用不可にする」と設定する方法があります。しかし,マウスやテンキーなどの周辺機器をUSBで使用していることもあり得るでしょう。そこで,ここではメモリー・キーを代表とするUSBストレージのみを使用できなくする方法を紹介します。

XPはドライバへのアクセス権で制御
 実際の設定方法は,USBストレージを未接続の場合と,既に接続済みの場合で異なります。

 まず,PCにUSBストレージがまだインストールされていないWindowsXPでは,USBストレージのドライバ・ファイルへのアクセス権を変更すればUSBストレージの使用が禁止できます。具体的には,%SystemRoot%\InfフォルダにあるUSBSTOR.INFとUSBSTOR.PNFという2つのファイルに関してNTFSのアクセス権を変更します。


△ 図をクリックすると拡大されます
図1●USBストレージが未接続の環境ではドライバ・ファイルのアクセス権を変更すれば利用を制限できる

 標準では,これらのファイルのアクセス権は[読み取りと実行]が[許可]となっています。これをUSBストレージを使用させたくないユーザーあるいはグループに対して[拒否]に設定します(図1)。[フルコントロール]を[拒否]に設定すれば,[読み取りと実行]を含むすべてが[拒否]となるので,これを使うのが簡単でしょう。 これで,対象ユーザーがPCにUSBストレージを接続しても,ドライバがインストールされなくなり利用ができません。アクセス権はユーザーやグループ単位で個別に設定できるため,特定のユーザーやグループに対してのみ利用を許可/不許可にするといった制御も可能です。

ちなみに,アクセス権の設定では[拒否]が優先されます。そのため,拒否させたいユーザーが他のグループに所属していて,そちらのグループでは[許可]が設定されていても,個別のユーザーあるいはどこかの所属するグループで[拒否]の設定がしてあればUSBストレージの使用を禁止できます。

Windows 2000ではSYSTEMに設定
 Windows 2000 ProfessionalでUSBストレージ未接続のユーザーの場合もWindows XPと同様にドライバのアクセス権を変更すればUSBストレージの使用を禁止できそうです。しかし,実際に検証してみたところ,この方法ではWindows 2000の場合は無理でした。その動作から見て,ドライバのロード/アンロードがWindows 2000ではシステム権限で実行されているためと考えられます。

 試行した結果,SYSTEMユーザーに対してUSBストレージが使用するドライバ・ファイルのアクセス権を変更すれば全ユーザーに適用されることが分かりました。つまり,SYSTEMユーザーについてドライバ・ファイルに対する[読み取りと実行]の権限をなくせば,どのユーザーがUSBストレージを使用しようとしてもドライバがロードされなくなり,結果としてUSBストレージの使用を禁止できます。

 このため,Windows 2000の場合は,特定のユーザーやグループにのみUSBストレージの使用を禁止するという構成はできません。もしメンテナンスなどでUSBストレージを使いたいことがある場合には,やや面倒な回避策をとる必要があります。

 例えば,メンテナンス用の管理者アカウントでログオンして,USBストレージの使用するドライバ・ファイルへのアクセス権を変更し[読み取りと実行]を許可します。それから再起動して必要なメンテナンス作業をした後に,再度USBストレージの使用するドライバ・ファイルのアクセス権を拒否に変更して再起動してUSBストレージが使用できないことを確認するといった手順を取ります。

利用済みの場合はレジストリを修正
 ここまで説明したのはUSBストレージをまだ使っていないユーザーの場合です。既にUSBストレージをインストールしている場合はドライバがインストール済みのため,アクセス権の変更では使用を制限できません。

 この場合は,レジストリの編集が必要となります。regeditまたはregedt32でレジストリ・エディタを起動し,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
\Services\UsbStorのキーに[Start]という値を探します。これが標準では「3」と設定されているはずなので,これを「4」に編集します(図2)。


△ 図をクリックすると拡大されます
図2●USB ストレージを既に接続している環境ではレジストリでドライバ・ファイルを読み込まないように編集する

 これで,起動時にUSBストレージが有効とはならなくなり,USBストレージを使用できなくなります。このレジストリを修正する方法は,Windows XPとWindows 2000のどちらにも有効です。

三浦 大輔