UI 자동화 보안 개요UI Automation Security Overview

참고

이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위한 것입니다.This documentation is intended for .NET Framework developers who want to use the managed UI 자동화UI Automation classes defined in the System.Windows.Automation namespace. 에 대 한 UI 자동화UI Automation 최신 정보는 Windows Automation API: UI 자동화.For the latest information about UI 자동화UI Automation, see Windows Automation API: UI Automation.

이 개요에서는 Microsoft UI 자동화Microsoft UI Automation 의 Windows Vista에 대한 보안 모델을 설명합니다.This overview describes the security model for Microsoft UI 자동화Microsoft UI Automation in Windows Vista.

사용자 계정 컨트롤User Account Control

보안은 Windows Vista 의 중요 사항이며, 혁신적 기능 중에는 사용자가 더 높은 권한이 필요한 애플리케이션과 서비스를 실행할 수 없도록 차단되지 않고 표준(비관리자) 사용자로 실행할 수 있는 기능이 있습니다.Security is a major focus of Windows Vista and among the innovations is the ability for users to run as standard (non-administrator) users without necessarily being blocked from running applications and services that require higher privileges.

Windows Vista에서는 대부분의 응용 프로그램에 표준 또는 관리 토큰이 제공됩니다.In Windows Vista, most applications are supplied with either a standard or an administrative token. 애플리케이션을 관리 애플리케이션으로 식별할 수 없는 경우 기본적으로 표준 애플리케이션으로 시작됩니다.If an application cannot be identified as an administrative application, it is launched as a standard application by default. 관리 애플리케이션으로 식별된 애플리케이션을 시작하기 전에 Windows Vista 에서 높은 권한으로 애플리케이션을 실행할 것인지 묻는 메시지를 사용자에게 표시합니다.Before an application identified as administrative can be launched, Windows Vista prompts the user for consent to run the application as elevated. 관리자 자격 증명이 필요한 애플리케이션 또는 시스템 구성 요소가 실행 권한을 요청할 때까지 관리자가 표준 사용자로 실행되므로 사용자가 로컬 관리자 그룹의 멤버인 경우에도 동의 확인 프롬프트가 기본적으로 표시됩니다.The consent prompt is displayed by default, even if the user is a member of the local Administrators group, because administrators run as standard users until an application or system component that requires administrative credentials requests permission to run.

더 높은 권한이 필요한 작업Tasks Requiring Higher Privileges

사용자가 관리자 권한이 필요한 작업을 수행하려고 Windows Vista 에서 사용자에게 계속할 것인지 묻는 대화 상자를 표시합니다.When a user attempts to perform a task that requires administrative privileges, Windows Vista presents a dialog box asking the user for consent to continue. 이 대화 상자는 악성 소프트웨어가 사용자 입력을 시뮬레이션할 수 없도록 크로스 프로세스 통신으로부터 보호됩니다.This dialog box is protected from cross-process communication, so that malicious software cannot simulate user input. 마찬가지로, 데스크톱 로그온 화면은 일반적으로 다른 프로세스에서 액세스할 수 없습니다.Similarly, the desktop logon screen cannot normally be accessed by other processes.

UI 자동화 클라이언트는 더 높은 권한 수준에서 실행 중일 수도 있는 다른 프로세스와 통신해야 합니다.UI Automation clients must communicate with other processes, some of them perhaps running at a higher privilege level. 클라이언트가 일반적으로 다른 프로세스에 표시되지 않는 시스템 대화 상자에 액세스해야 할 수도 있습니다.Clients also might need access to the system dialog boxes that are not normally visible to other processes. 따라서 UI 자동화UI Automation 클라이언트는 시스템에서 신뢰되어야 하며 특수 권한으로 실행되어야 합니다.Therefore, UI 자동화UI Automation clients must be trusted by the system, and must run with special privileges.

더 높은 권한 수준에서 실행 중인 애플리케이션과 통신할 수 있도록 신뢰되려면 애플리케이션에 서명해야 합니다.To be trusted to communicate with applications running at a higher privilege level, applications must be signed.

매니페스트 파일Manifest Files

보호 된 시스템 UI에 대 한 액세스 권한을 얻으려면 다음과 같이 uiAccess requestedExecutionLevel 태그에 특성을 포함 하는 매니페스트 파일을 사용 하 여 응용 프로그램을 빌드해야 합니다.To gain access to the protected system UI, applications must be built with a manifest file that includes the uiAccess attribute in the requestedExecutionLevel tag, as follows:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="highestAvailable"
        uiAccess="true" />
    </requestedPrivileges>
  </security>
</trustInfo>

이 코드에서 level 특성의 값은 예제일 뿐입니다.The value of the level attribute in this code is an example only.

uiAccess는 기본적으로 "false"입니다. 즉, 특성을 생략 하거나 어셈블리에 대 한 매니페스트가 없는 경우 응용 프로그램은 보호 된 UI에 대 한 액세스 권한을 얻을 수 없습니다.uiAccess is "false" by default; that is, if the attribute is omitted, or if there is no manifest for the assembly, the application will not be able to gain access to protected UI.