Вопросы безопасности для вспомогательных технологий
Вспомогательные технологии — это приложения, работающие на рабочем столе Windows и помогающие пользователям специальных возможностей взаимодействовать с операционной системой и другими приложениями, работающими на компьютере, включая приложения в новом пользовательском интерфейсе Windows. Вспомогательные технологические приложения работают, извлекая информацию из операционной системы и других приложений, а затем предоставляя информацию таким образом, который доступен пользователю. Приложение вспомогательных технологий также может программно "диск" операционной системы и других приложений на основе входных данных от пользователя.
Характер вспомогательных технологических приложений требует, чтобы они пересекали границы процесса, и что они имеют доступ к процессам, которые выполняются на более высоком уровне целостности (IL), чем сами. (Приложение вспомогательных технологий выполняется в среднем IL.) Например, когда пользователь пытается выполнить задачу, требующую прав администратора, Windows представляет диалоговое окно с запросом пользователя на продолжение. Это диалоговое окно выполняется в более высоком il, чтобы защитить его от межпроцессного взаимодействия, чтобы вредоносное программное обеспечение не может имитировать входные данные пользователей. Аналогичным образом экран входа в систему на рабочем столе выполняется в более высоком il, чтобы предотвратить доступ к нему другими процессами.
Приложения вспомогательных технологий обычно нуждаются в доступе к защищенным элементам пользовательского интерфейса системы или другим процессам, которые могут выполняться на более высоком уровне привилегий. Таким образом, вспомогательные технологические приложения должны быть доверенными системой и должны выполняться с особыми привилегиями.
Чтобы получить доступ к более высоким процессам IL, приложение вспомогательных технологий должно задать флаг UIAccess в манифесте приложения и запускаться пользователем с правами администратора.
Примечание.
Права доступа ограничены следующим образом:
- Приложение, которое не имеет UIAccess в манифесте, начинается с среднего IL и не может получить доступ к пользовательскому интерфейсу процесса с повышенными привилегиями ("средний+" IL).
- Приложение, которое имеет UIAccess в манифесте и запускается пользователем, который не входит в группу администраторов, запускается как "средний+" IL и не может получить доступ к пользовательскому интерфейсу с повышенными привилегиями (ничего не работает как высокий" IL, например приложения, запущенные с помощью правой кнопки мыши — запуск от имени администратора).>
- Приложение имеет доступ к пользовательскому интерфейсу и запускается пользователем администратора как "высокий" IL и может получить доступ к пользовательскому интерфейсу с повышенными привилегиями, так как он имеет тот же IL.
UIAccess недостаточно для перемещения по границе IL.
Помимо доступа к более высоким процессам IL, приложение вспомогательных технологий с этими привилегиями может выполняться как самое первое приложение в z-порядке в любое время, что означает, что вспомогательное технологическое приложение может быть видимым и доступным всякий раз, когда пользователь нуждается в нем.
Внимание
Ни один из ранее перечисленных сценариев не предоставляет доступ к пользовательскому интерфейсу, работающему в системе IL. Это возможно только в том случае, если процесс запускается на рабочем столе управления учетными записями пользователей (UAC) в system (и system IL). В этом случае настройка UIAccess не действует.
Требования UIAccess для вспомогательных технологических приложений
Вспомогательное технологическое приложение — это классическое приложение Windows, которое взаимодействует с другими процессами, работающими на рабочем столе, и в новом пользовательском интерфейсе Windows для получения сведений из системы и приложений. Затем приложение вспомогательных технологий может предоставить сведения пользователям специальных возможностей.
Приложение вспомогательной технологии получает доступ к другим процессам, задав флаг UIAccess в манифесте приложения. Чтобы использовать флаг UIAccess, приложение вспомогательных технологий должно соответствовать следующим требованиям.
- Требовать отображения, взаимодействия или отражения информации из другого приложения для предоставления информации для сценария специальных возможностей и (или)
- Для получения или отображения этих сведений требуется выполнение в качестве верхнего окна.
Чтобы использовать UIAccess, приложению вспомогательных технологий необходимо:
- Подписывая сертификат для взаимодействия с приложениями, работающими на более высоком уровне привилегий.
- Доверяйтесь системе. Приложение должно быть установлено в безопасном расположении, в котором требуется запрос управления учетными записями пользователя (UAC) для доступа. Например, папка Program Files.
- Создайте файл манифеста, содержащий флаг uiAccess.
UIAccess не следует использовать:
Приложения, которые не являются вспомогательными технологиями.
Благодаря вспомогательным технологическим приложениям, отображающим сведения или пользовательский интерфейс, которые не относятся к целевому сценарию специальных возможностей.
Приложения, которые просто хотят отображаться над другими приложениями в новом пользовательском интерфейсе Windows.
Примечание.
Приложения, разработанные для нового пользовательского интерфейса Windows, не имеют UIAccess как доступный вариант.
Настройка UIAccess в файле манифеста приложения
Чтобы получить доступ к защищенному системном пользовательскому интерфейсу, приложения должны создаваться с помощью файла манифеста, который содержит специальный атрибут в файле манифеста. Этот атрибут uiAccess включен в тег запрошенногоExecutionLevel, как показано в следующем примере кода.
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="highestAvailable"
uiAccess="true" />
</requestedPrivileges>
</security>
</trustInfo>
Значение атрибута уровня в этом коде является только примером.
UIAccess по умолчанию имеет значение false. Если атрибут опущен или отсутствует манифест, приложение не может получить доступ к защищенному пользовательскому интерфейсу.
Дополнительные сведения о безопасности Windows, подписывание приложений и создании манифестов см. в статье "История разработчика Windows Vista и Windows Server 2008: требования к разработке приложений Windows Vista для управления учетными записями пользователей (UAC)".
См. также