Заборонити програмі доступ до жорсткого диска або обсягу в Windows 7+


12

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

Передумови: Мій ПК має системний накопичувач як системний накопичувач і 15 ТБ Raid-6 вт / п’ять жорстких дисків. Контролер виконаний з можливістю відкручувати накопичувачі через ~ 10-15 хвилин. Це добре, оскільки іноді мені не потрібно нічого доступу до рейду протягом декількох годин або навіть довше. Деякі програми, такі як Adobe Reader, отримують доступ до всіх логічних томів, коли запускаються з якихось причин, я не можу зрозуміти. Моє припущення - це впливає на всі томи з приписаною літерою диска. Видалення листів та повторне призначення їх зовсім не є можливим;)

Як я можу обмежити Adobe Reader або інші програми доступу до цих томів моїм хостам Raid?


Я не знаю, як відключити доступ до певної програми. Але я підозрюю, що якщо є інструмент для заборони доступу до SSD для якоїсь програми, ви втратите можливість відкривати файли з цих томів. Тому в цьому випадку краще спробувати з'ясувати, яка функція змушує Adobe Reader щось читати / писати з / на SSD. Подивіться на функцію "останні файли". Можливо, він щоразу перевіряє їх наявність.
ВІК

Я хочу обмежити доступ до Raid, а не до SSD. Насправді на Raid немає нічого, тобто користі для Adobe Reader на моєму комп’ютері. Так, так, в моєму випадку я прямо хочу втратити можливість доступу до будь-якого з Adobe Reader того, чого немає на SSD. Можливо, ви неправі щодо «останніх файлів» -фірми, хоча (хоча в цьому випадку останніх файлів не надходить із цих томів).
користувач654123

1
Як щодо радикального рішення, такого як використання іншого переглядача PDF? Це не вирішує проблем з іншими програмами, але, як я розумію, Adobe Reader для вас найбільше дратує. en.wikipedia.org/wiki/List_of_PDF_software
VIK

Так, це найприємніша програма :) Я сподівався, що може бути вбудоване рішення цієї проблеми, оскільки заборона доступу до Інтернету через брандмауер Windows працює чудово для інших програм.
користувач654123

1
Чи вважали ви запускати Reader окремим користувачем, який не має доступу до цих томів?
TWiStErRob

Відповіді:


6

В Windows не існує вбудованого підтримуваного способу блокування певних процесів у доступі до певних накопичувачів, що відповідає "сучасному характеру" того, як операційна система обробляє доступ до дисків.

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

Єдине "впевнене" рішення - 2, оскільки апаратний віртуалізаційний шар (від віртуальної машини) може блокувати будь-які програми для спроби отримати доступ до "реального обладнання" повністю. Хоча у мене не було випадку, коли рішення 1 не працює, але теоретично я думаю, що це можна було б обійти.

Варіант "1" - відключення накопичувачів на "низькому рівні" - додаткове програмне забезпечення не потрібно

Варіант 1а

Можна відключити томи на нижньому шарі, відключивши диски взагалі, але це вимкне всі об'єми на диску. Вручну ви можете це зробити, запустивши diskmgmt.msc, а потім клацніть правою кнопкою миші на накопичувачі і позначте його "офлайн".

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

Якщо потрібно, ви можете це зробити і за допомогою сценарію командного рядка. Він буде застосований аналогічно, як варіант 3a / b. Це можна зробити, наприклад, через cmd, як описано тут, або через PowerShell, як це описано тут .

Варіант 1б

Ви можете повністю відключити драйвер диска. Щоб зробити це вручну: запустіть diskmgmt.msc, потім клацніть правою кнопкою миші, виберіть "параметри". Потім перейдіть до «Драйвер» -Таб і виберіть «Деактивувати». Диск "зникне" в диспетчері дисків і більше не буде доступний через операційну систему. Якщо програмне забезпечення не виконує команди машинного коду для прямого зв'язку з обладнанням, програма не має можливості отримати доступ до накопичувачів. Принаймні, що стосується моїх знань про входи та виходи операційних систем.

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

Якщо потрібно, ви можете це зробити і за допомогою сценарію командного рядка. Це буде застосовуватися аналогічно тому , як Варіант 3a / б з використанням, наприклад, Devcon.exe. Детальний опис ви можете знайти тут .

Варіант 2 - Використання віртуального середовища (в основному з стороннім програмним забезпеченням)

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

  • Залежно від версії Windows (потрібна Win7 і новіша версія) та ліцензії (потрібна "Професійна", "Домашня сторінка" не буде робити), ви можете просто використовувати Hyper-V для створення віртуального середовища без будь-якого програмного забезпечення сторонніх виробників.

  • Ви можете використовувати програмне забезпечення сторонніх виробників для налаштування віртуальної системи, наприклад VMplayer, Virtual Box тощо. Існує багато альтернативних і безкоштовних альтернативних програм. Використовуючи це рішення, вам знадобиться друга ліцензія на Windows (або ви залишите її без ліцензії, але тоді ви отримаєте накладку в правому нижньому куті екрана, яка підкаже вам зареєструвати Windows). Це, безумовно, не дозволить програмному забезпеченню отримати доступ до накопичувача.

  • ви можете використовувати додаток "пісочниці". Але це буде залежати від рівня віртуалізації, який пропонує пісочниця-додаток. У деяких випадках це може вирішити проблему; в інших випадках це не так. Наприклад, Sandboxie (той, який описує harrymc у своїй відповіді ), не вирішує проблеми з конфігурацією harrymc, описаною в його (оригінальній) відповіді. Хоча програмне забезпечення може заблокувати доступ, накопичувач все одно вийде на хребет. Альтернативою може бути використання іншої програми для пісочниці, наприклад, Cameyo тощо.

До речі, ось хороша стаття про головну відмінність різних програм для віртуалізації, особливо про різницю між "цілою" віртуальною машиною (на зразок Virtual Box) або "напіввіртуальними" програмами (як Sandboxie).

Варіант 3 - Демонтація лише обсягів (залишаючи диск "недоторканим") - Ніякого додаткового програмного забезпечення не потрібно, Але він може не працювати у вашому випадку

Варіант 3а

Замість того, щоб запускати програму за допомогою її звичайного ярлика, ви можете написати пакетний файл за допомогою команди, mountvolяка спочатку вимикає невикористаний том, потім запускає програму, а потім знову встановлює гучність, коли програма більше не отримує доступ до накопичувача. Процес монтажу / демонтажу за допомогою командного рядка описаний тут і тут . Ви також можете використовувати, diskpartяк описано тут і тут .

Варіант 3b

Крім того, ви можете просто залишити привід відключеним загалом і змонтувати його за допомогою пакетного файлу, який монтує диск, який ви запускаєте вручну, коли це необхідно. Після того, як ви закінчите його використання, його можна вручну відключити за допомогою другого пакетного файлу. Ви можете це автоматизувати, відстежуючи запити доступу до файлової системи та монтуючи / відключаючи накопичувач відповідно до певних правил, наприклад, що певні програми не матимуть доступу. Але я не впевнений, що автоматизація вартує додаткових зусиль.

Варіант 4 - Обмеження доступу до літери диска (гучності). Зробити це просто, але потрібні два невеликих інструменти від Microsoft - Але це може не працювати у вашому випадку

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

В основному ви додаєте користувача без доступу до накопичувача, а потім запускаєте програму з тими обмеженими правами (ви все одно будете входити як звичайний користувач, ви не будете використовувати обліковий запис з обмеженими можливостями для входу).

  • Додати обліковий запис користувача.

  • Обмежте доступ нового дискового облікового запису до диска, використовуючи Windows Access Control для файлової системи. Ось хороший Як включити скріншоти.

  • Потім запустіть програмне забезпечення з цими правами. Можна, наприклад, використовувати PsExec.exe , щоб зробити це або Process Explorer, ось як . Одне з цих двох вам доведеться завантажити з веб-сайту Microsoft, якщо у вас їх ще немає.


4

Я пропоную рішення, яке використовує Sandboxie . У мене немає вашого оточення, тому я перевірив роботу Acrobat.exeв пісочниці, де її доступ до D:блоковано. Відкриваючи в Acrobat меню Файл> Відкрити , я отримую таке:

зображення

Зверніть увагу , що Acrobat не може навіть знайти мітку диска D:, тому змушений показати його в кульгаву шляху, і як він блокується , коли я натискаю на «Локальний диск (D :)».

Скориставшись кроками:

  • Встановлено Sandboxie
  • У меню Sandboxie Control клацніть правою кнопкою миші піктограму за замовчуванням та виберіть Налаштування пісочної скриньки
  • Відкрийте гілку доступу до ресурсів> Доступ до файлів та натисніть на Заблокований доступ
  • Клацніть Додати програму та додайте Acrobat (мій був C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe)
  • Натисніть кнопку Додати та додати дискD:
  • Натисніть кнопку ОК
  • У Sandboxie Control відкрийте відділення Пуск програми> Примусові папки
  • Клацніть Додати папку
  • Додайте папку, де мешкає Acrobat (моя була C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat)
  • Натисніть кнопку ОК

Відтепер усі програми, що запускаються з папки Acrobat, змушені виконувати пісочні файли, і спеціально їм Acrobat.exeзаборонено доступ до диска D:. Можливо, вам доведеться відкрити деякі інші обмеження в пісочниці, якщо Acrobat матиме певні труднощі з виконанням всередині пісочної скриньки.

Я не знаю, чи це також заблокує конкретний виклик API API, який Acrobat використовує, щоб викликати пробудження диска, але, можливо, варто спробувати.

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


Іншим рішенням ізоляції є використання Adobe Reader всередині контейнера Docker . Контейнери Docker невеликі і працюють як віртуальні машини, але не потребують створення машини, оскільки готові контейнери завантажуються з галереї Docker.

Ви можете використовувати Chocolatey як менеджер пакунків.

Chocolatey має багато доступних попередньо вбудованих пакетів з Adobe Reader на Adobe Acrobat Reader DC 2018.011.20063 .

У Докера можлива абсолютна ізоляція, що стосується ресурсів, а з іншого боку, можна поділитися ресурсами, такими як папки, повністю рідним способом.


2
@WackGet: Будь-який коментар?
harrymc

Він каже, що це не працює, привід все ще крутиться, принаймні у випадку його використання. Мені цікаво, чи дає вам Sandboxie можливість приховати ресурси на апаратному рівні? Я її ще не встановив.
Альбін

@WackGet: Sandboxie має більше налаштувань у своїх конфігураційних файлах. Але спочатку: Чи диски прокидаються з моменту запуску Adobe або лише при використанні меню Файл> Відкрити ?
harrymc

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

Цікавий вибір. На яку програму Docker ви посилаєтесь, оскільки це швидше розробник / підприємство. На жаль, докерські продукти, на які я подивився, не є вільними у використанні (можливе лише пробне програмне забезпечення) ... але, можливо, я не помітив с.т.
Альбін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.