デバッガーのセキュリティ

別プロセスでデバッグする機能によって、リモート環境からのデバッグをはじめとした、さまざまな操作を行うことができます。 ただし、デバッガーに悪意があると、デバッグ対象のコンピューターに広範囲の損害を与える可能性があります。

一方で、セキュリティ上の脅威は逆方向にも当てはまることを認識している開発者は多くありません。 デバッグ対象のプロセスに悪意のあるコードがあると、デバッグを実行しているコンピューターのセキュリティにも悪影響が及ぶことがあります。対処が必要なセキュリティの攻略行為は数多くあります。

セキュリティ推奨事項

デバッグ対象のコードとデバッガーの間には、暗黙的な信頼関係があります。 何かをデバッグするとき、当然のことながら実行することも考えます。 最終的に、デバッグ対象を信頼できる必要があります。 信頼できない場合は、デバッグしないか、セキュリティが侵害されてもかまわない、隔離された環境にあるコンピューターでデバッグする必要があります。

攻撃を受ける可能性を減らすには、運用コンピューターでのデバッグは無効にする必要があります。 同じ理由から、無期限にデバッグを有効にしないようにします。

マネージド デバッグのセキュリティ

すべてのマネージド デバッグに適用される全般的な推奨事項を次に示します。

リモート デバッグのセキュリティ

ローカル デバッグは、リモート デバッグよりも一般に安全です。 リモート デバッグの場合、調査対象の領域は広範囲です。

Visual Studio リモート デバッグ モニター (msvsmon.exe) はリモート デバッグで使用されます。構成する場合、いくつかのセキュリティ上の推奨事項があります。 認証モードを構成するときは、Windows 認証が推奨されます。認証なしは安全ではありません。

Error dialog

Windows 認証モードを使用する場合、信頼関係のないユーザーに msvsmon に接続するアクセス許可を与えることは危険ですので、注意してください。そのユーザーに msvsmon をホストするコンピューターに対するすべてのアクセス許可が付与されるためです。

リモート コンピューターでは未知のプロセスをデバッグしないでください。デバッガーを実行するコンピューターや msvsmon に悪影響を及ぼす悪用が行われる可能性があります。 それでも未知のプロセスをデバッグする必要がある場合は、ローカルでデバッグし、セキュリティ上の脅威をローカルの問題に抑えるためにファイアウォールを使用します。

msvsmon の構成の詳細については、「リモート デバッガーのセットアップ」を参照してください。

Web サービスをデバッグするときのセキュリティ

ローカルでデバッグする方が安全ですが、Visual Studio が Web サーバーにインストールされていない可能性があるため、ローカル デバッグを実行できない場合があります。 通常、Web サービスのデバッグは、開発時を除いてリモートで行われます。そのため、Web サービスのデバッグにも、リモート デバッグのセキュリティに関する推奨事項が適用されます。 次に、その他の推奨される手順を示します。 詳細については、「 Debugging XML Web Services」を参照してください。

  • セキュリティに問題のある Web サーバーではデバッグを有効にしないでください。

  • デバッグする前に、Web サーバーが安全であることを確認します。 安全かどうかが確認できない場合は、デバッグしないでください。

  • インターネットに公開されている Web サービスをデバッグする場合は、特に注意が必要です。

外部コンポーネント

プログラムが外部コンポーネントとやり取りする場合、特に、外部コンポーネントのコードを自分で記述していない場合は、そのコンポーネントの信頼ステータスに注意します。 また、Visual Studio またはデバッガーで使用する可能性のあるコンポーネントにも注意します。

シンボルとソース コード

次の 2 つの Visual Studio ツールでは、セキュリティについて考慮する必要があります。