Udostępnij za pośrednictwem


Zagadnienia dotyczące zabezpieczeń technologii pomocniczych

Technologie pomocnicze to aplikacje działające na pulpicie systemu Windows i ułatwiają użytkownikom ułatwienia dostępu interakcję z systemem operacyjnym i innymi aplikacjami działającymi na komputerze, w tym aplikacjami w nowym interfejsie użytkownika systemu Windows. Aplikacje technologii pomocniczej działają przez pobieranie informacji z systemu operacyjnego i innych aplikacji, a następnie prezentowanie informacji w sposób dostępny dla użytkownika. Aplikacja technologii pomocniczej może również programowo "napędzać" system operacyjny i inne aplikacje na podstawie danych wejściowych od użytkownika.

Charakter technologii pomocniczych wymaga, aby przekraczały granice procesów, aby mieć dostęp do procesów uruchamianych na wyższym poziomie integralności (IL) niż one same. (Aplikacja technologii pomocniczej działa w średnim IL). Na przykład gdy użytkownik próbuje wykonać zadanie wymagające uprawnień administracyjnych, system Windows wyświetla okno dialogowe z prośbą o zgodę na kontynuowanie. To okno dialogowe jest uruchamiane na wyższym IL, aby chronić je przed komunikacją między procesami, dzięki czemu złośliwe oprogramowanie nie może symulować wprowadzania danych przez użytkownika. Podobnie ekran logowania do pulpitu działa na wyższym IL w celu zapobieżenia jego dostępowi przez inne procesy.

Aplikacje technologii pomocniczych zwykle wymagają dostępu do chronionych elementów interfejsu użytkownika systemu lub do innych procesów, które mogą być uruchomione na wyższym poziomie uprawnień. W związku z tym aplikacje technologii pomocniczych muszą być zaufane przez system i muszą być uruchamiane ze specjalnymi uprawnieniami.

Aby uzyskać dostęp do wyższych procesów IL, aplikacja technologii pomocniczej musi ustawić flagę UIAccess w manifeście aplikacji i zostać uruchomiona przez użytkownika z uprawnieniami administratora.

Notatka

Uprawnienia dostępu są ograniczone w następujący sposób:

  • Aplikacja, która nie ma UIAccess w manifeście, rozpoczyna się z poziomem integralności Medium IL i nie może uzyskać dostępu do interfejsu użytkownika procesu o podwyższonym poziomie integralności ("Medium+" IL).
  • Aplikacja, która ma funkcję UIAccess w manifeście i jest uruchamiana przez użytkownika, który nie należy do grupy administratorów, uruchamia się jako "medium+" IL i nie może uzyskać dostępu do podwyższonego poziomu interfejsu użytkownika (nic nie działa jako "wysoki" IL, na przykład aplikacje uruchamiane za pośrednictwem kliknięcie prawym przyciskiem myszy —> Uruchom jako administrator).
  • Aplikacja ma dostęp do interfejsu użytkownika i jest uruchamiana przez użytkownika z uprawnieniami administratora jako "wysoki" IL, dzięki czemu może uzyskać dostęp do interfejsu użytkownika z podwyższonymi uprawnieniami, ponieważ ma ten sam IL.

Funkcja UIAccess nie wystarczy, aby proces przechodził przez granicę IL.

Oprócz dostępu do wyższych procesów IL aplikacja technologii pomocniczej z tymi uprawnieniami może być uruchamiana jako aplikacja najwyższego poziomu w kolejności z w dowolnym momencie, co oznacza, że aplikacja technologii pomocniczej może być widoczna i dostępna zawsze wtedy, gdy użytkownik tego potrzebuje.

Ważny

Żaden z wymienionych wcześniej scenariuszy nie zapewnia dostępu do interfejsu użytkownika uruchomionego w systemie IL. Jest to możliwe tylko wtedy, gdy proces zostanie uruchomiony na pulpicie kontroli konta użytkownika (UAC) w obszarze SYSTEM (i system IL). W takim przypadku ustawienie funkcji UIAccess nie ma wpływu.

Wymagania dotyczące funkcji UIAccess dla aplikacji technologii pomocniczych

Aplikacja technologii pomocniczej to klasyczna aplikacja na system Windows, która współdziała z innymi procesami uruchomionymi na pulpicie oraz w nowym interfejsie użytkownika systemu Windows, aby uzyskać informacje z systemu i aplikacji. Aplikacja technologii pomocniczej może następnie udostępniać informacje użytkownikom ułatwień dostępu.

Aplikacja technologii pomocniczej uzyskuje dostęp do innych procesów, ustawiając flagę UIAccess w manifeście aplikacji. Aby użyć flagi UIAccess, aplikacja technologii pomocniczej musi spełniać następujące wymagania.

  • Wymagaj wyświetlania, interakcji lub odzwierciedlania informacji z innej aplikacji w celu udostępnienia informacji dotyczących scenariusza ułatwień dostępu i/lub
  • Wymagane jest uruchomienie jako okno najwyższego poziomu, aby uzyskać lub wyświetlić te informacje.

Aby korzystać z funkcji UIAccess, aplikacja technologii pomocniczej musi:

  • Aby korzystać z aplikacji działających na wyższym poziomie uprawnień, należy zalogować się przy użyciu certyfikatu.
  • Ufaj systemowi. Aplikacja musi być zainstalowana w bezpiecznej lokalizacji, która wymaga monitu kontroli dostępu do konta użytkownika (UAC) aby uzyskać dostęp. Na przykład folder Program Files.
  • Należy zbudować przy użyciu pliku manifestu zawierającego flagę uiAccess.

Nie należy używać funkcji UIAccess:

  • Aplikacje, które nie są technologiami pomocniczymi.

  • Dzięki pomocniczym aplikacjom technologicznym, które wyświetlają informacje lub interfejs użytkownika, które nie są istotne dla docelowego scenariusza ułatwień dostępu.

  • Aplikacje, które po prostu chcą pojawić się nad innymi aplikacjami w nowym interfejsie użytkownika systemu Windows.

    Notatka

    Aplikacje platformy UWP nie mają funkcji UIAccess jako dostępnej opcji.

     

Ustawianie funkcji UIAccess w pliku manifestu aplikacji

Aby uzyskać dostęp do chronionego interfejsu użytkownika systemu, aplikacje muszą być kompilowane przy użyciu pliku manifestu zawierającego specjalny atrybut w pliku manifestu. Ten atrybut uiAccess znajduje się w tagu requestedExecutionLevel, jak pokazano w poniższym przykładzie kodu.

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

Wartość atrybutu na poziomie w tym kodzie jest tylko przykładem.

funkcja UIAccess domyślnie ma wartość "false". Jeśli atrybut zostanie pominięty lub nie ma manifestu, aplikacja nie może uzyskać dostępu do chronionego interfejsu użytkownika.

Aby uzyskać więcej informacji na temat zabezpieczeń systemu Windows, podpisywania aplikacji i tworzenia manifestów, zobacz Opowieść o programowaniu dla Windows Vista i Windows Server 2008: Wymagania dotyczące tworzenia aplikacji na Windows Vista dla funkcji Kontrola konta użytkownika (UAC).

Podstawy automatyzacji interfejsu użytkownika