원격 디버깅 중 보안

원격 디버깅 중에 보안을 강화하는 방법에는 세션에 연결할 수 있는 사용자를 제한하고 연결하는 사람의 권한을 제한하는 두 가지 방법이 있습니다.

디버깅 세션에 대한 액세스 제어

디버거를 통해 원격 디버깅을 수행하거나 프로세스 서버 또는 KD 연결 서버를 사용하는 경우 로컬 네트워크의 모든 컴퓨터가 디버깅 세션에 연결하려고 시도할 수 있습니다.

TCP, 1394, COM 또는 명명된 파이프 프로토콜을 사용하는 경우 디버깅 클라이언트가 암호를 제공하도록 요구할 수 있습니다. 그러나 이 암호는 전송 중에 암호화되지 않으므로 이러한 프로토콜은 안전하지 않습니다.

디버깅 서버를 안전하게 보호하려면 SSL(보안 소켓 계층) 또는 SPIPE(보안 파이프) 프로토콜을 사용해야 합니다.

remote.exe통해 원격 디버깅을 수행하는 경우 /u 매개 변수를 사용하여 권한이 없는 사용자의 연결을 금지할 수 있습니다.

클라이언트의 권한 제한

커널 모드 디버깅 세션을 설정하는 경우 보안 모드를 사용하여 디버거가 호스트 머신을 방해하는 기능을 제한할 수 있습니다.

사용자 모드에서는 보안 모드를 사용할 수 없습니다. .noshell(셸 명령 금지) 명령을 실행하여 침입 클라이언트가 Microsoft MS-DOS 명령을 실행하고 외부 프로그램을 실행하는 것을 중지할 수 있습니다. 그러나 클라이언트가 컴퓨터를 방해할 수 있는 다른 여러 가지 방법이 있습니다.

보안 모드와 .noshell 은 모두 디버깅 클라이언트와 디버깅 서버가 특정 작업을 수행하지 못하게 합니다. 클라이언트에 제한을 두는 방법은 없지만 서버에는 적용할 수 없습니다.

프로세스 서버를 잊어버렸습니다.

원격 컴퓨터에서 프로세스 서버를 시작하면 프로세스 서버가 자동으로 실행됩니다.

이 프로세스 서버를 통해 원격 디버깅을 수행한 다음 세션을 종료하면 프로세스 서버가 계속 실행됩니다.

잊어버린 프로세스 서버는 공격의 잠재적 대상입니다. 항상 불필요한 프로세스 서버를 종료해야 합니다. Kill.exe 유틸리티 또는 작업 관리자를 사용하여 프로세스 서버를 종료합니다.