다음을 통해 공유


UI 자동화 보안 개요

참고참고

이 문서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위해 작성되었습니다.UI Automation에 대한 최신 정보는 Windows Automation API: UI Automation을 참조하십시오.

이 개요에서는 Windows Vista의 Microsoft UI Automation에 대한 보안 모델을 설명합니다.

이 항목에는 다음 단원이 포함되어 있습니다.

  • 사용자 계정 제어
  • 더 높은 권한이 필요한 작업
  • 매니페스트 파일

사용자 계정 제어

보안은 Windows Vista에서 중점을 두고 있는 부분이며 혁신적 기능 중 하나는 관리자가 아닌 표준 사용자로 실행하면서도 더 높은 권한이 필요한 응용 프로그램과 서비스를 실행할 수 있게 하는 기능입니다.

Windows Vista에서 대부분의 응용 프로그램은 표준 또는 관리 토큰과 함께 제공됩니다. 응용 프로그램을 관리 응용 프로그램으로 식별할 수 없으면 해당 응용 프로그램은 기본적으로 표준 응용 프로그램으로 시작됩니다. 관리 응용 프로그램으로 식별되는 경우에는 응용 프로그램의 실행을 허용하기 전에 Windows Vista가 사용자에게 응용 프로그램을 상승된 권한으로 실행할 것인지 묻습니다. 관리자라도 관리 자격 증명이 필요한 응용 프로그램 또는 시스템 구성 요소가 실행 권한을 요청하기 전까지는 표준 사용자로 실행되기 때문에 로컬 관리자 그룹의 구성원에게도 승격 여부를 묻는 이 같은 메시지가 기본적으로 표시됩니다.

더 높은 권한이 필요한 작업

사용자가 관리 권한이 필요한 작업을 수행하려고 할 때 Windows Vista에서는 작업을 계속하기 위해 사용자 동의를 요청하는 대화 상자가 표시됩니다. 이 대화 상자는 프로세스 간 통신으로부터 보호되기 때문에 악성 소프트웨어가 사용자 입력을 시뮬레이션할 수 없습니다. 마찬가지로 데스크톱 로그온 화면에도 다른 프로세스가 액세스할 수 없습니다.

UI 자동화 클라이언트는 다른 프로세스와 통신해야 하며 그 프로세스 중 일부는 더 높은 권한 수준에서 실행될 수 있습니다. 또한 클라이언트는 일반적으로 다른 프로세스에게는 보이지 않는 시스템 대화 상자에 액세스해야 할 수 있습니다. 따라서 UI Automation 클라이언트는 시스템에 의해 신뢰되어야 하며 특별한 권한으로 실행되어야 합니다.

더 높은 권한 수준에서 실행 중인 응용 프로그램과 통신할 수 있도록 시스템에 의해 신뢰되려면 응용 프로그램이 서명되어야 합니다.

매니페스트 파일

보호된 시스템 UI에 액세스할 수 있으려면 응용 프로그램은 매니페스트 파일에 특별한 특성이 포함된 매니페스트 파일과 함께 빌드되어야 합니다. 이 uiAccess 특성은 requestedExecutionLevel 태그에 다음과 같이 포함됩니다.

<trustInfo xmlns="urn:0073chemas-microsoft-com:asm.v3">

    <security>

        <requestedPrivileges>

        <requestedExecutionLevel

            level="highestAvailable"

            UIAccess="true" />

        </requestedPrivileges>

    </security>

</trustInfo>

이 코드에서 level 특성의 값은 예제일 뿐입니다.

UIAccess는 기본적으로 "false"입니다. 즉, 특성을 생략하거나 어셈블리에 대한 매니페스트가 없으면 응용 프로그램은 보호된 UI에 액세스할 수 없습니다.

Windows Vista 보안, 응용 프로그램 서명 및 어셈블리 매니페스트 작성에 대한 자세한 내용은 MSDN의 "Developer Best Practices and Guidelines for Applications in a Least Privileged Environment"를 참조하십시오.