Share via


보조 기술에 대한 보안 고려 사항

보조 기술은 Windows 데스크톱에서 실행되며 접근성 사용자가 새 Windows UI의 애플리케이션을 포함하여 컴퓨터에서 실행되는 운영 체제 및 기타 애플리케이션과 상호 작용하는 데 도움이 되는 애플리케이션입니다. 보조 기술 애플리케이션은 운영 체제 및 기타 애플리케이션에서 정보를 검색한 다음 사용자가 액세스할 수 있는 방식으로 정보를 제시하여 작동합니다. 보조 기술 애플리케이션은 사용자의 입력에 따라 운영 체제 및 기타 애플리케이션을 프로그래밍 방식으로 "구동"할 수도 있습니다.

보조 기술 애플리케이션의 특성상 프로세스 경계를 넘고 자체보다 높은 IL(무결성 수준)에서 실행되는 프로세스에 액세스할 수 있어야 합니다. (보조 기술 애플리케이션은 중간 IL에서 실행됩니다.) 예를 들어 사용자가 관리 권한이 필요한 작업을 수행하려고 하면 Windows에서 사용자에게 계속 동의를 요청하는 대화 상자를 표시합니다. 이 대화 상자는 더 높은 IL에서 실행되어 교차 프로세스 통신으로부터 보호하므로 악성 소프트웨어가 사용자 입력을 시뮬레이션할 수 없습니다. 마찬가지로 데스크톱 로그온 화면은 다른 프로세스에서 액세스하지 못하도록 더 높은 IL에서 실행됩니다.

보조 기술 애플리케이션은 일반적으로 보호된 시스템 UI 요소 또는 더 높은 권한 수준에서 실행될 수 있는 다른 프로세스에 액세스해야 합니다. 따라서 보조 기술 애플리케이션은 시스템에서 신뢰해야 하며 특별한 권한으로 실행되어야 합니다.

더 높은 IL 프로세스에 액세스하려면 보조 기술 애플리케이션이 애플리케이션 매니페스트에서 UIAccess 플래그를 설정하고 관리자 권한이 있는 사용자가 시작해야 합니다.

참고

액세스 권한은 다음과 같이 제한됩니다.

  • 매니페스트에 UIAccess가 없는 애플리케이션은 중간 IL로 시작하고 관리자 권한("medium+" IL) 프로세스 UI에 액세스할 수 없습니다.
  • 매니페스트에 UIAccess가 있고 관리자 그룹에 없는 사용자가 시작한 애플리케이션은 "medium+" IL로 시작하고 관리자 권한 UI에 액세스할 수 없습니다(오른쪽 클릭을 통해 시작된 앱과 같이 "높음" IL로 실행되는 것은 없음 -> 관리자 권한으로 실행).
  • 애플리케이션에는 UI 액세스가 있고 관리자 사용자가 "높음" IL로 시작하고 동일한 IL을 가지므로 관리자 UI에 액세스할 수 있습니다.

UIAccess는 프로세스가 IL 경계를 통해 위로 이동하는 데 충분하지 않습니다.

더 높은 IL 프로세스에 액세스할 수 있을 뿐만 아니라 이러한 권한이 있는 보조 기술 애플리케이션은 언제든지 z 순서에서 가장 높은 애플리케이션으로 실행될 수 있으므로 사용자가 필요할 때마다 보조 기술 애플리케이션을 표시하고 사용할 수 있습니다.

중요

이전에 나열된 시나리오 중 어느 것도 시스템 IL에서 실행되는 UI에 대한 액세스를 제공하지 않습니다. 이 작업은 프로세스가 SYSTEM(및 시스템 IL) 아래의 UAC(사용자 계정 컨트롤) 데스크톱에서 시작된 경우에만 가능합니다. 이 경우 UIAccess를 설정해도 아무런 효과가 없습니다.

보조 기술 애플리케이션에 대한 UIAccess 요구 사항

보조 기술 애플리케이션은 데스크톱 및 새 Windows UI에서 실행되는 다른 프로세스와 상호 작용하여 시스템 및 애플리케이션에서 정보를 가져오는 Windows Windows 데스크톱 애플리케이션입니다. 그런 다음 보조 기술 애플리케이션은 접근성 사용자에게 정보를 제공할 수 있습니다.

보조 기술 애플리케이션은 애플리케이션 매니페스트에서 UIAccess 플래그를 설정하여 다른 프로세스에 액세스할 수 있습니다. UIAccess 플래그를 사용하려면 보조 기술 애플리케이션이 다음 요구 사항을 충족해야 합니다.

  • 접근성 시나리오에 대한 정보를 제공하기 위해 다른 애플리케이션의 정보를 표시, 상호 작용 또는 반영해야 합니다.
  • 이 정보를 가져오거나 표시하려면 최상위 창으로 를 실행해야 합니다.

UIAccess를 사용하려면 보조 기술 애플리케이션이 다음을 수행해야 합니다.

  • 인증서로 서명하여 더 높은 권한 수준에서 실행되는 애플리케이션과 상호 작용합니다.
  • 시스템에서 신뢰할 수 있습니다. 액세스하려면 UAC(사용자 계정 제어) 프롬프트가 필요한 안전한 위치에 애플리케이션을 설치해야 합니다. 예를 들어 Program Files 폴더입니다.
  • uiAccess 플래그를 포함하는 매니페스트 파일을 사용하여 빌드합니다.

UIAccess를 사용하면 안 됩니다.

  • 보조 기술이 아닌 애플리케이션별.

  • 대상 접근성 시나리오와 관련이 없는 정보 또는 UI를 표시하는 보조 기술 애플리케이션에 의해.

  • 새 Windows UI의 다른 애플리케이션 위에 표시하려는 애플리케이션에 의한 것입니다.

    참고

    새 Windows UI용으로 개발된 애플리케이션에는 사용 가능한 옵션으로 UIAccess가 없습니다.

     

애플리케이션 매니페스트 파일에서 UIAccess 설정

보호된 시스템 UI에 액세스하려면 매니페스트 파일에 특수 특성이 포함된 매니페스트 파일을 사용하여 애플리케이션을 빌드해야 합니다. 이 uiAccess 특성은 다음 코드 예제와 같이 requestedExecutionLevel 태그에 포함됩니다.

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

이 코드의 수준 특성 값은 예제일 뿐입니다.

UIAccess 는 기본적으로 "false"입니다. 특성을 생략하거나 매니페스트가 없는 경우 애플리케이션은 보호된 UI에 액세스할 수 없습니다.

Windows 보안, 애플리케이션 서명 및 매니페스트 만들기에 대한 자세한 내용은 Windows Vista 및 Windows Server 2008 개발자 스토리: MSDN의 UAC(사용자 계정 컨트롤)에 대한 Windows Vista 애플리케이션 개발 요구 사항을 참조하세요.

UI 자동화 기본 사항