リモート デバッグ中のセキュリティ
リモート デバッグ中のセキュリティを強化するには、セッションに接続できるユーザーを制限する方法と、接続するユーザーの権限を制限する方法の 2 つがあります。
デバッグセッションへのアクセスの制御
デバッガーを介してリモート デバッグを実行している場合、またはプロセス サーバーまたは KD 接続サーバーを使用している場合は、ローカル ネットワーク上の任意のコンピューターがデバッグ セッションへの接続を試みることができます。
TCP、1394、COM、または名前付きパイプ プロトコルを使用している場合は、デバッグ クライアントにパスワードの入力を要求できます。 ただし、このパスワードは送信中に暗号化されないため、これらのプロトコルは安全ではありません。
デバッグ サーバーを安全にしたい場合は、セキュア ソケット レイヤ (SSL) またはセキュア パイプ (SPIPE) プロトコルを使用する必要があります。
Remote.exe を通じてリモート デバッグを実行している場合は、/u パラメータを使用して、権限のないユーザーからの接続を禁止できます。
クライアントの権限の制限
カーネル モードのデバッグ セッションをセットアップしている場合は、セキュア モードを使用して、ホスト マシンに干渉するデバッガーの機能を制限できます。
ユーザーモードでは、セキュアモードは利用できません。 .noshell (シェル コマンドの禁止) コマンドを発行すると、侵入クライアントによる Microsoft MS-DOS コマンドの発行や外部プログラムの実行を停止できます。 ただし、クライアントがコンピュータに干渉する方法は他にもたくさんあります。
セキュア モードと .noshell の両方により、デバッグ クライアントとデバッグ サーバーの両方が特定のアクションを実行できなくなることに注意してください。 サーバーではなくクライアントに制限を設ける方法はありません。
忘れられたプロセスサーバー
リモート マシン上でプロセス サーバーを起動すると、プロセス サーバーはサイレントで実行されます。
このプロセス サーバーを介してリモート デバッグを実行してセッションを終了すると、プロセス サーバーは引き続き実行されます。
忘れられたプロセス サーバーは、攻撃のターゲットになる可能性があります。 不要なプロセス サーバーは常にシャットダウンする必要があります。 Kill.exe ユーティリティまたはタスク マネージャーを使用して、プロセス サーバーを終了します。