Considerações de segurança para tecnologias adaptativas

As tecnologias adaptativas são aplicativos executados na área de trabalho do Windows e ajudam os usuários de acessibilidade a interagir com o sistema operacional e outros aplicativos em execução no computador, incluindo aplicativos na nova interface do usuário do Windows. Os aplicativos de tecnologia adaptativa funcionam recuperando informações do sistema operacional e de outros aplicativos e, em seguida, apresentando as informações de uma maneira acessível ao usuário. Um aplicativo de tecnologia adaptativa também pode "impulsionar" programaticamente o sistema operacional e outros aplicativos com base na entrada do usuário.

A natureza dos aplicativos de tecnologia adaptativa exige que eles ultrapassem os limites do processo e que tenham acesso a processos executados em um IL (nível de integridade) mais alto do que eles mesmos. (Um aplicativo de tecnologia adaptativa é executado em IL médio.) Por exemplo, quando o usuário tenta executar uma tarefa que requer privilégios administrativos, o Windows apresenta uma caixa de diálogo solicitando que o usuário dê consentimento para continuar. Essa caixa de diálogo é executada em uma IL superior para protegê-la da comunicação entre processos, para que o software mal-intencionado não possa simular a entrada do usuário. Da mesma forma, a tela de logon da área de trabalho é executada em uma IL mais alta para evitar que ela seja acessada por outros processos.

Os aplicativos de tecnologia adaptativa normalmente precisam de acesso aos elementos de interface do usuário do sistema protegido ou a outros processos que podem estar em execução em um nível de privilégio mais alto. Portanto, os aplicativos de tecnologia adaptativa devem ser confiáveis para o sistema e devem ser executados com privilégios especiais.

Para obter acesso a processos de IL mais altos, um aplicativo de tecnologia adaptativa deve definir o sinalizador UIAccess no manifesto do aplicativo e ser iniciado por um usuário com privilégios de administrador.

Observação

Os privilégios de acesso são restritos da seguinte maneira:

  • Um aplicativo que não tem UIAccess no manifesto começa com IL médio e não pode acessar a interface do usuário de processo elevada ("medium+"IL).
  • Um aplicativo que tem UIAccess no manifesto e é iniciado por um usuário que não está no grupo de administradores, começa como "medium+" IL e não pode acessar a interface do usuário elevada (nada em execução como IL "alta", como aplicativos iniciados por meio de um clique com o botão direito do mouse –> Executar como administrador).
  • Um aplicativo tem acesso à interface do usuário e é iniciado por um usuário administrador começa como IL "alto" e pode acessar a interface do usuário elevada porque tem a mesma IL.

UIAccess não é suficiente para que um processo seja movido para cima através do limite de IL.

Além de ter acesso a processos de IL mais altos, um aplicativo de tecnologia adaptativa com esses privilégios pode ser executado como o aplicativo mais alto na ordem z a qualquer momento, o que significa que um aplicativo de tecnologia adaptativa pode estar visível e disponível sempre que o usuário precisar dele.

Importante

Nenhum dos cenários listados anteriormente fornece acesso à interface do usuário em execução na IL do sistema. Isso só será possível se o processo for iniciado na área de trabalho de controle de conta de usuário (UAC) em SYSTEM (e IL do sistema). Nesse caso, a configuração de UIAccess não tem efeito.

Requisitos de UIAccess para aplicativos de tecnologia adaptativa

Um aplicativo de tecnologia adaptativa é um aplicativo da área de trabalho do Windows windows que interage com outros processos em execução na área de trabalho e na nova interface do usuário do Windows para obter informações do sistema e dos aplicativos. O aplicativo de tecnologia adaptativa pode fornecer as informações aos usuários de acessibilidade.

Um aplicativo de tecnologia adaptativa obtém acesso a outros processos definindo o sinalizador UIAccess no manifesto do aplicativo. Para usar o sinalizador UIAccess, um aplicativo de tecnologia adaptativa deve atender aos requisitos a seguir.

  • Exigir para exibir, interagir ou refletir informações de outro aplicativo para fornecer informações para um cenário de acessibilidade e/ou
  • Exigir a execução como a janela mais alta para obter ou exibir essas informações.

Para usar o UIAccess, um aplicativo de tecnologia adaptativa precisa:

  • Assine com um certificado para interagir com aplicativos em execução em um nível de privilégio mais alto.
  • Seja confiável pelo sistema. O aplicativo deve ser instalado em um local seguro que exija um prompt de UAC (controle de conta de usuário) para acesso. Por exemplo, a pasta Arquivos de Programas.
  • Ser criado com um arquivo de manifesto que inclui o sinalizador uiAccess.

UIAccess não deve ser usado:

  • Por aplicativos que não são tecnologias adaptativas.

  • Por aplicativos de tecnologia adaptativa que exibem informações ou interface do usuário que não são relevantes para o cenário de acessibilidade direcionado.

  • Por aplicativos que só querem aparecer acima de outros aplicativos na nova interface do usuário do Windows.

    Observação

    Os aplicativos desenvolvidos para a nova interface do usuário do Windows não têm UIAccess como uma opção disponível.

     

Definindo UIAccess no arquivo de manifesto do aplicativo

Para obter acesso à interface do usuário do sistema protegido, os aplicativos devem ser criados com um arquivo de manifesto que inclua um atributo especial no arquivo de manifesto. Esse atributo uiAccess está incluído na marca requestedExecutionLevel , conforme mostrado no exemplo de código a seguir.

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

O valor do atributo de nível neste código é apenas um exemplo.

UIAccess é "false" por padrão. Se o atributo for omitido ou se não houver manifesto, o aplicativo não poderá obter acesso à interface do usuário protegida.

Para obter mais informações sobre segurança do Windows, sobre como assinar aplicativos e sobre como criar manifestos, consulte The Windows Vista and Windows Server 2008 Developer Story: Windows Vista Application Development Requirements for User Account Control (UAC) on MSDN (História do Desenvolvedor do Windows Vista 2008: Requisitos de desenvolvimento de aplicativos do Windows Vista para controle de conta de usuário) no MSDN.

Conceitos básicos de automação da interface do usuário