WinDbg MCP 개요

이 문서는 WinDbg MCP의 작동 방식을 이해하고 클라이언트 지원 및 보안 및 개인 정보 보호 고려 사항에 따라 사용할지 여부를 결정하는 데 도움이 됩니다. WinDbg MCP는 MCP(모델 컨텍스트 프로토콜)를 사용하여 지원되는 AI 클라이언트를 활성 WinDbg 세션에 연결합니다. 여기서 클라이언트는 분석 중에 디버거 도구와 컨텍스트를 사용할 수 있습니다.

WinDbg에서 AI 시작 디버거 작업을 검토하는 동안 이 연결을 사용하여 디버깅 대상을 조사할 수 있습니다. AI에서 생성된 결과는 권위 있는 것으로 간주되지 않습니다. 발견 사항, 증거, 가정, 대상 상태 및 명령을 WinDbg의 출력과 대조하여 유효성을 검사합니다.

WinDbg MCP 작동 방식

WinDbg MCP는 AI 클라이언트와 WinDbg의 MCP 서버 간에 로컬 프록시를 사용합니다. 연결 아키텍처는 다음과 같습니다:

AI 모델 서비스에서 AI 클라이언트 및 프록시를 통해 WinDbg MCP 서버에 대한 양방향 연결을 보여 주는 다이어그램

다이어그램은 컴팩트한 단계별 레이아웃을 사용하여 양방향 연결을 표시합니다. AI 모델 서비스와 AI 클라이언트는 AI 요청 및 응답을 교환합니다. AI 클라이언트와 DbgX.Mcp.Proxy.exe는 stdio MCP를 통해 통신합니다. DbgX.Mcp.Proxy.exe 및 WinDbg MCP 서버는 로컬 프로세스별 명명된 파이프를 통해 통신합니다. WinDbg MCP 서버는 도구, 프롬프트 및 리소스를 제공합니다.

각 WinDbg 세션은 로컬 프로세스당 명명된 파이프를 사용합니다. DbgX.Mcp.Proxy.exe 는 표준 입력 및 출력을 통해 AI 클라이언트와 통신하고 클라이언트를 선택한 WinDbg 세션 하나에 연결합니다.

AI 클라이언트는 AI 요청 및 응답의 일부로 구성된 모델 서비스로 디버깅 컨텍스트를 보낼 수 있습니다. 디버깅 세션을 계속 제어하고 WinDbg에서 AI가 시작한 디버거 작업을 검토할 수 있습니다.

클라이언트 지원 및 세션 제한

WinDbg MCP는 다음 AI 클라이언트를 지원합니다.

  • Visual Studio Code에서 GitHub Copilot 사용
  • GitHub Copilot 명령 줄 인터페이스 (CLI)

다른 MCP 호환 AI 클라이언트는 가능한 범위에서 사용자 지정 구성을 통해 작동할 수 있지만 WinDbg는 공식적으로 지원하지 않습니다. MCP 기능 및 보안 제어가 조직의 요구 사항을 충족하는지 확인한 후에만 사용자 지정 클라이언트를 사용하세요.

한 번에 하나의 활성 MCP 클라이언트만 WinDbg 세션에 연결할 수 있습니다. 별도의 WinDbg 세션은 별도의 로컬 명명된 파이프를 사용합니다. 제한된 환경에서 조직 정책은 MCP 컨트롤을 숨기거나 비활성화할 수 있습니다.

WinDbg MCP 도구 및 프롬프트

WinDbg MCP는 연결 도구, 디버거 도구 및 기본 제공 프롬프트를 제공합니다. WinDbg의 MCP 설치 작업은 WinDbg를 선택한 AI 클라이언트에 MCP 서버로 등록합니다. 프록시가 WinDbg 세션에 연결되면 AI 클라이언트는 적절한 도구를 자동으로 선택합니다.

다음 연결 도구를 사용하여 WinDbg 세션을 찾아 선택합니다.

연결 도구 Purpose
list_sessions 활성 MCP 서비스가 있는 WinDbg 세션을 나열하고 각 세션을 사용할 수 있는지 여부를 보고합니다.
connect_session 프로세스 ID를 사용하여 프록시를 WinDbg 세션에 연결합니다.
disconnect_session 현재 WinDbg 세션에서 프록시 연결을 끊습니다.

연결 후 AI 클라이언트에 WinDbg MCP를 사용하여 다음을 수행하도록 요청합니다.

  • 디버깅 대상을 검사하거나 제어합니다.
  • WinDbg 명령을 실행합니다.
  • 진단 및 소스 코드를 검토합니다.
  • 디버거 데이터를 시각화합니다.
  • 분석 스크립트를 만듭니다.

기본 제공 WinDbg MCP 프롬프트 사용

AI 클라이언트가 MCP 프롬프트를 지원하는 경우 기본 제공 프롬프트를 선택하여 안내된 디버깅 워크플로를 시작합니다.

기본 제공 프롬프트 Purpose
investigate_symbol_loading_issues 기호 로딩 문제 진단
write_extension WinDbg JavaScript 확장을 만듭니다.
create_graph 디버거 데이터를 그래프로 시각화합니다.
configure_ttd 시간 이동 디버깅 워크플로를 구성합니다.

디버깅에 WinDbg MCP 사용

다음 프롬프트는 지원되는 디버깅 시나리오에 대한 시작점을 제공합니다.

Scenario 예제 프롬프트
크래시 덤프의 근본 원인 찾기 이 덤프를 분석하고 가능한 근본 원인, 뒷받침하는 증거 및 남은 가정을 제공하세요.
활성 대상 조사 대상 상태를 확인하고, 필요한 경우 중단점에서 멈추고, 호출 스택 및 모듈에서 오류 신호를 검사합니다.
기호 또는 소스 로드 문제 수정 로그 및 명령 기록을 사용하여 기호 또는 소스가 올바르게 로드되지 않는 이유를 식별하고 수정 사항을 제안합니다.
시간 이동 디버깅 추적 분석 이 TTD 트레이스를 분석하고 주요 전환점, 증거 및 가능성이 높은 분기 지점을 식별합니다.
디버거 쿼리 결과를 시각화 "이 디버거 데이터 모델 출력을 트리, 그리드 또는 그래프로 쿼리하고 시각화합니다."
반복 가능한 분석을 자동화 이 분석 워크플로를 자동화하는 스크립트를 만들고 검증합니다.

AI 클라이언트의 결과를 대상 상태 및 표시되는 디버거 출력과 비교한 후 조치를 취하기 전에 확인하세요.

WinDbg MCP 보안 및 개인 정보 보호 고려 사항

WinDbg MCP를 사용하기 전에 대상, 해당 데이터, 선택한 AI 클라이언트 및 구성된 모델 서비스를 평가하세요. 다음 지침을 모두 적용합니다.

  • 권한 있는 사용: 검사할 권한이 있는 대상 및 데이터에만 WinDbg MCP를 사용합니다. 조직의 AI, 보안, 개인정보 및 데이터 처리 정책을 따르세요.
  • AI 서비스로 전송된 데이터: AI 클라이언트는 구성된 모델 서비스에 디버거 컨텍스트를 보낼 수 있습니다. 조직에서 선택한 클라이언트 및 모델 서비스와 함께 사용할 대상 및 해당 데이터를 승인하는지 확인합니다.
  • 진단 로그: MCP 진단 로그에는 디버거 명령 및 대상 데이터가 포함될 수 있습니다. 조직의 정책에 따라 이러한 로그를 민감한 데이터로 저장, 공유 및 유지합니다.
  • AI 유효성 검사: AI 출력을 최종 결과가 아닌 검토를 위한 제안으로 처리합니다. 작업하기 전에 WinDbg에 표시되는 정보를 기준으로 출력의 유효성을 검사하세요.
  • 관리자 컨트롤: 조직에서는 WinDbg 제한 모드를 사용하도록 설정하여 WinDbg MCP를 사용하지 않도록 설정할 수 있습니다. 관리자는 EnableRestrictedMode을/를 1로 설정하여 제한된 모드를 구성합니다. 이 설정을 변경한 후 WinDbg를 다시 시작하세요. 제한된 모드는 MCP 외에 다른 WinDbg 기능에 영향을 줍니다.

보안 모드

보안 모드는 디버거 기능을 제한하여 신뢰할 수 없는 코드를 로드하거나 실행하거나 프로세스를 시작하거나 안전하지 않은 파일 작업을 수행할 위험을 줄입니다. 예: .shell와 같은 위험 수준이 높은 명령을 차단합니다. 기본적으로 보안 모드는 MCP 서버가 시작될 때 활성화됩니다.

MCP 서버가 기본적으로 보안 모드를 사용하도록 설정할지 여부를 구성하려면 WinDbg에서 파일>설정>MCP 서비스 설정을 선택한 다음 MCP 서버에 대해 보안 모드 사용을 선택하거나 선택 취소합니다.

보안 모드 동작은 설정을 선택하는지 여부와 대상에 연결하기 전이나 후에 MCP 서비스를 시작할지 여부에 따라 달라집니다.

  • 전체 보안 모드: 대상에 연결하기 전에 MCP 서비스를 시작하고 MCP 서버가 시작될 때 보안 모드 사용을 선택된 상태로 둡니다.
  • 부분 보안 모드: MCP 서비스를 시작할 때 대상에 이미 연결한 경우 WinDbg는 부분 보안 모드로 전환되고 경고가 표시됩니다. 전체 보안 모드를 얻으려면 WinDbg를 다시 시작하고 MCP 서비스를 시작한 다음 대상에 연결합니다.
  • 보안 모드가 없는 경우: 확인 대화 상자에서 MCP 서버가 시작될 때 보안 모드 사용의 선택을 취소한 다음 예를 선택하여 선택을 확인합니다.

확인 대화 상자에서 확인란을 선택하거나 선택 취소하면 FileSettings>>>도 업데이트됩니다. 따라서 대화 상자 선택은 향후 MCP 시작의 기본값이 됩니다.

보안 모드가 활성화되면 해제할 수 없으며 WinDbg를 다시 시작할 때까지 활성 상태로 유지됩니다. MCP 서비스를 중지해도 사용하지 않도록 설정되지는 않습니다. WinDbg를 다시 시작한 후 보안 모드 없이 MCP를 사용하려는 경우 MCP 서버가 시작될 때 보안 모드 사용 선택을 해제하세요.

자세한 내용은 보안 모드의 기능을 참조하세요.

Warning

보안 모드가 없으면 AI 클라이언트가 직접 실행하는 명령은 여전히 제한되지만 간접 작업은 제한되지 않습니다. 예를 들어 AI 클라이언트가 명령을 실행하는 중단점을 설정하는 경우 중단점이 적중되면 해당 명령이 사용자의 모든 권한으로 실행됩니다.

교차 프롬프트 삽입 보호를 사용하지 않도록 설정해도 보안 모드가 비활성화되지는 않습니다.

스크립트 및 확장을 안전하게 사용

WinDbg MCP를 사용하면 디버깅 스크립트 및 WinDbg JavaScript 확장을 만들거나 수정할 수 있습니다. 이러한 권장 사항은 AI 생성, 팀에서 개발 또는 타사 공급업체에서 제공하는 모든 스크립트 및 확장에 적용됩니다. 생성되거나 수정된 코드를 다른 신뢰할 수 없는 소스의 코드처럼 처리합니다. 특히 고객 환경 또는 중요한 대상을 디버그할 때 이를 로드하거나 실행하기 전에 검토하고 승인하세요.

스크립트 또는 확장을 사용하기 전에 다음 권장 사항을 적용하세요.

  1. 코드를 검토합니다. 소스를 사용할 수 있는 경우 코드를 검토합니다. 그렇지 않은 경우 게시자, 디지털 서명, 다운로드 원본, 버전, 종속성 및 문서화된 동작을 확인합니다.
  2. 신뢰 경계 이해: WinDbg 확장은 디버거 프로세스에서 코드를 실행하고 디버깅 데이터에 액세스할 수 있습니다. 보안 모드는 특정 작업을 제한하지만 확장에 대한 유효성을 검사하거나 샌드박스를 설정하거나 확장에 대한 신뢰를 설정하지는 않습니다.
  3. 안전하게 테스트하세요: 격리된 환경에서 민감하지 않은 대상으로 테스트합니다. 테스트에 잘못된 형식 또는 예기치 않은 디버거 데이터, 실패 처리 및 리소스 사용을 포함합니다.
  4. 최소 권한 사용: 디버깅 시나리오에 권한 상승이 필요하지 않은 경우 관리자 권한 없이 WinDbg를 실행합니다.
  5. 고객 데이터 보호: 코드가 메모리, 소스 코드, 기호, 파일 경로, 진단 출력 또는 기타 중요한 데이터를 승인되지 않은 위치에 공개하지 않는지 확인합니다.
  6. 배포 제어: 승인된 출처의 확장만 사용합니다. 관리되는 환경 또는 프로덕션 환경의 경우 승인된 배포 채널을 통해 제공되는 검토 및 서명되었고 버전이 고정된 패키지를 사용합니다. 배포 전에 모든 업데이트를 검토하고 테스트합니다.

스크립트 또는 확장을 로드하거나 실행하기 위해서만 보안 모드를 비활성화하지 마세요. 확장 프로그램에서 보안 모드를 비활성화하라고 요구하는 경우 해당 동작을 검토하고, 변경으로 어떤 제한이 해제되는지 이해하고, 조직의 보안 검토자로부터 승인을 받습니다. 자세한 내용은 보안 모드를 참조하세요.

교차 프롬프트 삽입 보호

WinDbg는 특정 작업을 보호된 작업으로 분류합니다. 보호된 작업의 경우 WinDbg는 AI 클라이언트의 구성된 모델 서비스를 사용하여 작업의 디버거 출력을 교차 프롬프트 삽입 공격(XPIA) 여부로 분류합니다. WinDbg는 분류가 잠재적으로 안전하지 않은 것으로 식별하는 출력을 차단합니다.

XPIA 보호는 MCP 샘플링에 따라 달라집니다. AI 클라이언트는 WinDbg가 구성된 모델 서비스에서 분류를 요청할 수 있도록 MCP 샘플링을 지원하고 허용해야 합니다. 분류를 실행할 수 없는 경우 출력을 반환하지 않고 보호된 작업이 실패합니다.

교차 프롬프트 삽입 완화 사용 설정은 XPIA 보호를 제어합니다. 조직의 보안 검토자가 해당 결정을 승인하고 다른 컨트롤이 프롬프트 삽입 위험을 해결한 후, 조직에서 승인한 대상에 대해서만 신뢰할 수 있는 환경에서 이 보호 기능을 비활성화하십시오.

WinDbg MCP에 대한 피드백 제공

피드백은 Microsoft가 WinDbg MCP를 개선하고 수정 사항 및 기능의 우선순위를 정하는 데 도움이 됩니다. 버그를 보고하거나 기능을 제안하려면 WinDbg 피드백 리포지토리에서 문제를 만듭니다.

다음 단계