다음을 통해 공유


시각화 도우미 보안 고려 사항

시각화 도우미를 작성할 때는 보안 문제를 고려해야 합니다. 당장은 이러한 잠재적 위협에 대한 취약점이 발견되지 않더라도 개발자는 이러한 문제의 가능성을 인식하고 여기서 설명하는 적절한 보안 예방책에 따라 향후 발생할 수 있는 위험에 대비해야 합니다.

디버거 시각화 도우미에는 부분 신뢰 애플리케이션에 허용되는 것보다 많은 권한이 필요합니다. 부분 신뢰 코드에서 중지하면 시각화 도우미가 로드되지 않습니다. 시각화 도우미를 사용하여 디버깅하려면 완전 신뢰 코드를 실행해야 합니다.

참고 항목

CAS(코드 액세스 보안)는 .NET Framework 및 .NET의 모든 버전에서 더 이상 사용되지 않습니다. 최신 버전의 .NET은 CAS 주석을 준수하지 않으며 CAS 관련 API를 사용하는 경우 오류가 발생합니다. 개발자는 보안 작업을 수행하는 대체 수단을 찾아야 합니다.

악의적으로 사용될 수 있는 디버기(debuggee) 구성 요소

시각화 도우미는 디버거 쪽과 디버기 쪽에 하나씩 적어도 두 개 이상의 클래스로 구성됩니다. 시각화 도우미는 대개 특별한 디렉터리에 배치된 별도의 어셈블리로 배포되지만 디버기에서 로드할 수도 있습니다. 이 경우 디버거는 디버기에서 코드를 가져와 디버거 내에서 완전 신뢰 수준으로 이를 실행합니다.

디버기 쪽 코드를 완전 신뢰 수준으로 실행하면 디버기를 완전히 신뢰할 수 없는 경우 문제가 발생할 수 있습니다. 시각화 도우미가 디버기에서 디버거로 부분 신뢰 어셈블리를 로드하려고 하면 Visual Studio가 시각화 도우미를 종료합니다.

그러나 소소한 취약점은 여전히 존재합니다. 디버기가 아닌 다른 소스에서 로드된 디버거 쪽 코드에 디버기 쪽 코드가 연결될 수 있습니다. 그런 다음 디버기 쪽에서 디버기 대신 작업을 수행하도록 신뢰되는 디버거 쪽에 지시할 수 있습니다. 예를 들어, 신뢰되는 디버거 쪽 클래스가 "이 파일 삭제" 메커니즘을 노출하면 사용자가 해당 시각화 도우미를 호출할 때 부분 신뢰 디버기가 이 메커니즘을 호출할 수 있습니다.

이러한 취약점을 줄이려면 시각화 도우미에서 노출되는 인터페이스에 주의를 기울여야 합니다.