デバイス ホストを使用すると、次のような理由でセキュリティの問題が発生します。
- Windows XP を実行しているコンピューターでホストされているデバイスは、すべてのネットワークでアナウンスを送信します。
- Windows XP を実行しているコンピューターでホストされているデバイスでは、すべてのネットワークからデバイスを制御できます。
これにより、メディア プレーヤー、ブリッジ照明、Windows XP を実行しているコンピューターでホストされている HVAC システムなどのデバイスが表示され、自宅の外部の制御ポイントから制御できるため、家庭の消費者にとってリスクが高まります。
ホストされているデバイスを作成する場合は、セキュリティの問題を考慮する必要があります。
- UPnP ベースのデバイスの検出と攻撃の範囲を減らすために、すべての SSDP メッセージの TTL は 1 です。 つまり、登録されたデバイスは、同じネットワーク上の制御ポイントによってのみ検出されます。 レジストリでは、より高い TTL を構成できます。
- 実行されていないデバイスを登録するには、COM にデバイス .dll を事前に登録する必要があります。これには管理者特権が必要です。
- 実行中のデバイスを登録するには、管理者、ローカル サービス、またはローカル システムの特権が必要です。
- デバイス ホストを起動すると、LocalService として実行されます。 これにより、デバイスは監査を生成し、HKEY_LOCAL_MACHINE レジストリ キーを読み取る機能が提供されます。 デバイスは HKEY_CURRENT_USERにアクセスできます。 LocalService アカウントでは、LocalService にアクセス権が付与されているリソースと、AuthenticatedUser へのアクセスを許可するリソースを使用できます。 デバイスのファイル システム アクセスが制限されています。
- ファイル システム ACL を更新して、LocalService リソース ディレクトリに アクセスできるようにする必要があります。
- デバイスにセキュリティ アクセスが必要な場合は、デバイス用に独自のプロセスを作成し、IUPnPRegistrar::RegisterRunningDeviceを使用して登録できます。