Запобігати запуску конкретних додатків як адміністратор


13

Фон

Більшість інструментальних установок мають можливість автоматично або іншим чином запускати зовнішні програми після встановлення. Це часто з'являється у програмі встановлення через такі параметри, як "Показати readme" або "Start program".

Проблема

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

Це може потенційно відкрити порушення безпеки шляхом відкриття встановленого додатка або веб-сторінки (і, можливо, доповнень веб-переглядача), які зараз працюють із підвищеними дозволами.

(З цієї причини я настійно рекомендую ніколи не вибирати параметри автоматичного запуску під час встановлення програмного забезпечення.)

Питання

Чи є спосіб , щоб запобігти деякі додатки (наприклад, веб - браузер) з коли - або запускаються з правами адміністратора, тобто автоматичний відсів привілеї на основі імені процесу?

windows  uac 

2
Мені дуже подобається це питання. Є продукти для підвищення прав на процеси, засновані на шляху, хеші тощо. Я хотів би побачити те, що автоматично скасовує права для, скажімо, iexplore.exe, firefox.exe, chrome.exe тощо.
Патрік Сеймур

1
Якщо програма нересту має права адміністратора, чи не може вона просто скасувати все, що ви придумали, і все одно запустити? :)
Ƭᴇcʜιᴇ007

1
Я думаю, що це могло б бути, але я був би здивований, якби інсталятор на зразок: "Гей, ти переглянеш нашу домашню сторінку як адміністратор, приятель!" і постійно застосовувати ці дозволи. Я не думаю, що я купував би програмне забезпечення у такої компанії, якщо я міг дізнатися про це.
Патрік Сеймур

Відповіді:


2

Я в принципі згоден з відповіддю "РУНАС".

Мені здається, що те, що ви хочете, - це те, щоб екземпляри підпроцесу були автоматично обмежені, якщо вони працюють як адміністратор.

Існує пара підходів. Однак вони / можуть бути різкими і не для боязкого адміністратора, оскільки накладні роздратування. Хоча вони зроблять цю роботу.

Показує лише один підхід, якщо не вимагається більше :

Для кожної програми, яку ви хочете обмежити:

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.

Тепер члени групи адміністраторів не можуть виконати цей файл. Вони можуть повернутися назад і змінити дозволи, щоб зняти цю перевірку, щоб вони могли це запустити, але вони повинні свідомо робити це.

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

Ось деяка картина цього в Windows 7:

введіть тут опис зображення введіть тут опис зображення введіть тут опис зображення введіть тут опис зображення введіть тут опис зображення


1

Ви повинні мати можливість домогтися нижчого рівня прав або з дротяними правами, або з psexec.

Схоже, хитра частина полягає в тому, щоб зробити це автоматично, коли інсталятор породить новий екземпляр програми.

З цього приводу я підозрюю, що вам потрібно буде, як мінімум, налаштувати файлові асоціації для всіх відповідних типів файлів, а також для URL-адрес.

Це буде працювати до тих пір, поки інсталятор намагатиметься відкрити файл / URL з відповідним додатком, а не вказувати виконуваний файл для запуску. Якщо шлях до виконуваного файлу вказано явно, я думаю, вам знадобиться замінити стандартний виконуваний файл на виконуваний файл shim, який виконує потрібну команду.


1

Одне, що тут пропускають, це те, що для Internet Explorer і Windows Explorer CANNOT підвищені дозволи (якщо ви не зробите злом реєстру). Я не знаю про 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) і впливає на маркер, який триває процес

ця стаття пояснює, як змусити exe завжди працювати на "низькому рівні цілісності"

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


2
ви можете ігнорувати мою відповідь, я просто спробував цей метод, і він не спрацював :(
weberik

0

Ви можете використовувати AppLocker.

Я вважаю, що це доступно в Windows 7 Enterprise, Ultimate та Server 2K8 та новіших версій. Не впевнений у Windows 8, але припускає, що він такий же (Enterprise та Ultimate).

Ви можете налаштувати AppLocker, перейшовши в групову політику:

Конфігурація комп'ютера -> Налаштування Windows -> Налаштування безпеки -> Політика управління додатками -> AppLocker -> Виконавчі правила.

Клацніть правою кнопкою миші та "Створіть нове правило ..."

Тут ви можете заблокувати виконання певних виконуваних файлів вибраними користувачами або групами. У вашому прикладі ви можете заборонити виконання Internet Explorer групою адміністраторів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.