다음을 통해 공유


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

시각화 도우미 작성에는 가능한 보안 위협이 포함됩니다. 현재 이러한 잠재적 위협에 대한 알려진 악용은 없지만 개발자는 이를 인식하고 향후 악용을 막기 위해 여기에 설명된 대로 적절한 보안 예방 조치를 취해야 합니다.

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

비고

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

가능한 악성 디버기 구성 요소

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

디버기가 완전히 신뢰되지 않을 때 디버기가 측에서 코드를 완전 신뢰로 실행하는 것은 문제가 됩니다. 시각화 도우미가 디버기에서 디버거로 부분 신뢰 어셈블리를 로드하려고 하면 Visual Studio에서 시각화 도우미가 종료됩니다.

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

이 취약성을 완화하려면 시각화 도우미가 노출하는 인터페이스를 염두에 두어야 합니다.