Запретить запуск определенных приложений от имени администратора

13

Фон

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

вопрос

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

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

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

Вопрос

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


источник
2
Мне очень нравится этот вопрос. Существуют продукты для повышения прав на процессы, основанные на пути, хэше и т. Д. Я хотел бы увидеть что-то, что автоматически удаляет права, например, для iexplore.exe, firefox.exe, chrome.exe и т. Д.
Патрик Сеймур
1
Если порождающая программа имеет права администратора, не может ли она просто отменить то, что вы придумали, и запустить ее в любом случае? :)
Ƭᴇcʜιᴇ007
1
Я думаю, что это возможно, но я был бы удивлен, если бы установщик сказал: «Эй, ты собираешься просматривать нашу домашнюю страницу как администратор, приятель!» и постоянно применяли эти разрешения. Я не думаю, что куплю программное обеспечение в такой компании, при условии, что смогу узнать об этом.
Патрик Сеймур

Ответы:

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

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

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

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

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

sahmeepee
источник
1

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

мегалодона
источник
1
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"
    
Дэвид Макгоуэн
источник
Я не думаю, что это сработает. Чтобы использовать RunAs для запуска окна браузера с низкими правами, необходимо запустить установщик (через RunAs) с низкими правами. Это может привести к тому, что установщик не будет работать.
Патрик Сеймур
хорошо, если вы хотите сделать это таким образом, вы бы изменили переменную окружения для своего браузера, чтобы включить команду RUNAS / trustlevel, тогда браузер всегда будет запускаться с выбранным уровнем доверия, маловероятно, что вам когда-либо потребуется запускать браузер в возвышенная ситуация ... стоит задуматься
Дэвид МакГоуэн
Изменение переменной окружения - это небольшая миссия, для этого потребуется создать простой exe-файл для замены оригинала, который содержит простой вызов реального исполняемого файла с включенной командой RUNAS. Как я уже сказал, немного миссии, вы можете просто скопировать адрес, с которого запускается окно браузера, а затем закрыть и перезапустить браузер и ввести адрес
Дэвид Макгоуэн
0

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

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

В этой статье объясняется, как сделать так, чтобы исполняемый файл всегда работал на «низком уровне целостности».

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

weberik
источник
2
Вы можете игнорировать мой ответ, я только что попробовал этот метод, и он не сработал :(
weberik
0

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

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

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

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

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

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

zako42
источник