次の方法で共有


ビジュアライザーのセキュリティに関する考慮事項

ビジュアライザーを作成するには、セキュリティ上の脅威が発生する可能性があります。 現在、これらの潜在的な脅威に対する既知の悪用は存在しませんが、開発者はそれらを認識し、ここで説明するように、将来の悪用を防ぐために適切なセキュリティ予防措置を講じる必要があります。

デバッガー ビジュアライザーには、部分信頼アプリケーションで許可されるよりも大きな特権が必要です。 部分信頼を持つコードで停止しても、ビジュアライザーは読み込まれません。 ビジュアライザーを使用してデバッグするには、完全信頼でコードを実行する必要があります。

コード アクセス セキュリティ (CAS) は、.NET Framework と .NET のすべてのバージョンで非推奨になりました。 最近のバージョンの .NET では、CAS に関連する API が使用されている場合、CAS 注釈は使用されず、エラーが発生します。 開発者は、セキュリティ タスクを実行するための代替手段を求める必要があります。

悪意のあるデバッグ対象コンポーネントの可能性

ビジュアライザーは、少なくとも 2 つのクラス (デバッガー側とデバッグ対象側の 1 つ) で構成されます。 ビジュアライザーは、多くの場合、特別なディレクトリに配置された個別のアセンブリに配置されますが、デバッグ対象から読み込むこともできます。 これが発生すると、デバッガーはデバッグ対象からコードを取り出し、完全信頼でデバッガー内で実行します。

デバッグ対象側のコードを完全信頼で実行すると、デバッグ対象が完全に信頼されていない場合に問題が発生します。 ビジュアライザーがデバッグ対象からデバッガーに部分信頼アセンブリを読み込もうとすると、Visual Studio によってビジュアライザーが終了します。

ただし、軽微な脆弱性が引き続き存在します。 デバッグ対象側は、(デバッグ対象ではなく) 別のソースから読み込まれたデバッガー側に関連付けることができます。 その後、デバッグ対象側は、信頼されたデバッガー側に対してアクションを実行するように指示できます。 たとえば、信頼されたデバッガー側のクラスが "このファイルの削除" メカニズムを公開している場合、部分信頼デバッグ対象ユーザーは、ユーザーがビジュアライザーを呼び出すときにそのメカニズムを呼び出すことができます。

この脆弱性を軽減するには、ビジュアライザーによって公開されるインターフェイスに注意してください。