次の方法で共有


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

別のプロセスをデバッグする機能により、特にリモートでデバッグする場合は特に、それ以外の方法では得られない非常に広範な機能が得られます。 悪意のあるデバッガーは、デバッグ中のコンピューターに広範囲の損害を与える可能性があります。

ただし、多くの開発者は、セキュリティ上の脅威が逆の方向に流れる可能性があることを認識していません。 デバッグ対象プロセスの悪意のあるコードがデバッグ マシンのセキュリティを危険にさらす可能性があります。保護する必要があるセキュリティの悪用が多数存在します。

セキュリティのベスト プラクティス

デバッグしているコードとデバッガーの間には暗黙的な信頼関係があります。 何かをデバッグする場合は、それを実行することもできます。 要するに、デバッグしている内容を信頼できる必要があります。 信頼できない場合は、デバッグしないでください。または、危険にさらされる可能性があるコンピューターから、または分離された環境でデバッグする必要があります。

潜在的な攻撃対象領域を減らすには、実稼働マシンでデバッグを無効にする必要があります。 同じ理由から、デバッグを無期限に有効にしないでください。

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

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

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

ローカル デバッグは通常、リモート デバッグよりも安全です。 リモート デバッグを使用すると、プローブできるサーフェス領域の合計が増加します。

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

エラーダイアログ「DBG_ERR_RemotePermissionsChanged」

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

リモート コンピューターで不明なプロセスをデバッグしないでください。デバッガーを実行しているマシンに影響を与える可能性がある、または msvsmon を侵害する可能性がある潜在的な悪用があります。 不明なプロセスを絶対にデバッグする必要がある場合は、ローカルでデバッグを試し、ファイアウォールを使用して潜在的な脅威をローカライズしてください。

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

Web サービスのデバッグ のセキュリティ

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

  • 侵害された Web サーバーでデバッグを有効にしないでください。

  • デバッグする前に、Web サーバーがセキュリティで保護されていることを確認してください。 セキュリティで保護されているかどうかわからない場合は、デバッグしないでください。

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

外部コンポーネント

特にコードを記述しなかった場合は、プログラムが対話する外部コンポーネントの信頼状態に注意してください。 また、Visual Studio またはデバッガーが使用するコンポーネントにも注意してください。

シンボルとソース コード

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