12

Фон

Большинство инсталляционных инструментов имеют возможность запускать, автоматически или нет, внешние программы после установки. Это часто появляется в установщике через такие параметры, как "Показать файл readme" или "Запустить программу".

вопрос

Проблема в том, что многие из этих установщиков плохо закодированы и не удаляют разрешения соответствующим образом. Например, автоматический запуск приложения или открытие домашней страницы приложения в браузере часто приводит к запуску приложения или браузера с правами администратора установщика или с высоким уровнем целостности UAC!

Это может привести к уязвимостям безопасности, открыв установленное приложение или веб-страницу (и, возможно, надстройки браузера), которые теперь работают с повышенными разрешениями.

(По этой причине я настоятельно рекомендую никогда не выбирать параметры автозапуска при установке программного обеспечения.)

Вопрос

Есть ли способ , чтобы предотвратить некоторые приложения (например, веб - браузер) из когда - либо запущены с правами администратора, то есть автоматический отсев привилегии на основе имени процесса?

6 ответов6

2

Я в принципе согласен с ответом "RUNAS".

Мне кажется, что вы хотите, чтобы экземпляры подпроцесса были автоматически ограничены, если они работают от имени администратора.

Есть пара подходов. Тем не менее, они / могут быть решительными и не для робкого администратора, потому что накладные расходы раздражают. Они сделают работу, хотя.

Показывается только первый подход, если не требуется больше:

Для каждого приложения вы хотите ограничить:

right click the executable and go to **PROPERTIES**
go to the **SECURITY** tab
click **ADVANCED** at the bottom
click **ADD** at the bottom
type **ADMINISTRATORS** for the name. if you have a domain then adjust appropriately
press **OK** to get the custom settings for the administrator's group
check the **DENY** checkbox next to "TRAVERSE FOLDER/ EXECUTE FILE" permission (2nd on the list)
hit OK and so-on until you've closed the properties entry for that file.

Теперь члены группы администраторов не могут выполнить этот файл. Они могут вернуться и изменить разрешения, чтобы не проверять, чтобы они могли запустить его, но они должны сознательно делать это.

Кроме того, поскольку вы беспокоитесь о том, что это происходит во время установки, вам нужно выполнить ту же процедуру для "пользователя" СИСТЕМЫ , который также (эффективно) запускается также как администратор, поскольку эта учетная запись может использоваться во время некоторых установок ( учетные данные учетной записи Windows "ADMIN" можно использовать для получения токена учетных данных SYSTEM ... но это далеко за пределы того, к чему относится этот вопрос).

Вот некоторая картина, делающая это на Windows 7:

1

Одна вещь, которую здесь упускают, это то, что Internet Explorer и Windows Explorer НЕ МОГУТ иметь повышенные разрешения (если вы не взломали реестр). Я не знаю о Firefox, Chrome и т.д., Но если вы попытаетесь запустить Internet Explorer от имени администратора, он с радостью примет ваши учетные данные, но на самом деле не повысит разрешения. Это функция безопасности Windows Vista и выше. И, кроме того, единственное, что UAC не действует (если вы не отключили его), это если вы вошли в систему со встроенной учетной записью администратора. То, что что-то было установлено с повышенными разрешениями, не означает, что установщик может предоставить этой программе повышенные разрешения. Разрешения определяются учетной записью, под которой была запущена программа. Единственный способ, которым программа может быть запущена с повышенными правами без вашего ведома, это если, например, программа запускается из Windows из настроек реестра и т.д. Если это произойдет, это можно исправить, отредактировав реестр.

1

Вы должны быть в состоянии достичь более низкого уровня прав с помощью dropmyrights или psexec.

Кажется, что сложно сделать так, чтобы это происходило автоматически, когда установщик создает новый экземпляр приложения.

Для этого я подозреваю, что вам, по крайней мере, потребуется настроить ассоциации файлов для всех соответствующих типов файлов, а также для URL-адресов, добавив существующую команду, например, с помощью команды psexec.

Это будет работать до тех пор, пока установщик пытается открыть файл / URL с соответствующим приложением, а не указывать исполняемый файл для запуска. Если путь к исполняемому файлу указан явно, я думаю, вам нужно заменить стандартный исполняемый файл на исполняемый файл shim, который запускает нужную вам команду.

0
RUNAS /trustlevel:<TrustLevel> program

/trustlevel       <Level> should be one of levels enumerated
                  in /showtrustlevels.
/showtrustlevels  displays the trust levels that can be used
                  as arguments to /trustlevel.

This requires an elevated command prompt.

Пояснение / шаг за шагом

  1. Откройте меню "Пуск" и введите cmd в строке поиска
  2. Щелкните правой кнопкой мыши на командной строке и выберите "Запуск от имени администратора". Тип:

    RUNAS /showtrustlevels
    
  3. Выберите уровень доверия, подходящий для вашего приложения, где X - это уровень доверия, который вы хотите использовать, и введите:

    RUNAS /trustlevel:X "Application target"
    
0

Я посмотрел на различные решения, и я уже могу сказать вам, что манифесты приложений или флаги appcompat не будут работать (да, это не реальный ответ, но я все еще хотел поделиться этим;))

то, что может быть близко к тому, что вы ищете, это так называемый уровень целостности, он может быть установлен в файловой системе (ACL) и влияет на токен, который содержит процесс

В этой статье объясняется, как заставить exe-файл всегда работать на "низком уровне целостности".

другим подходом будет сторонний инструмент, такой как монитор процессов в режиме реального времени, который будет использовать сканер вирусов или брандмауэр приложений, но я не знаю ни одного, который можно настроить таким образом.

0

Вы можете использовать AppLocker.

Я считаю, что это доступно в Windows 7 Enterprise, Ultimate и Server 2K8 и выше. Не уверен насчет Windows 8, но предположил бы, что он будет одинаковым (Enterprise и Ultimate).

Вы можете настроить AppLocker, зайдя в групповую политику:

Конфигурация компьютера -> Настройки Windows -> Настройки безопасности -> Политики управления приложениями -> AppLocker -> Исполняемые правила.

Щелкните правой кнопкой мыши и «Создать новое правило ...»

Здесь вы можете заблокировать запуск определенных исполняемых файлов выбранными пользователями или группами. В вашем примере вы можете запретить запуск Internet Explorer группой «Администраторы».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .