Обмеження доступу програми до реєстру Windows


2

Чи можна запобігти доступу певної програми до реєстру Windows? Я знаю, що є ACL, щоб заблокувати користувача, але як бути з виконаним контролем?


2
Ні, тому що в обліковому записі процес роботи програми працює так, як він пише в реєстр від свого імені. Яку програму ви намагаєтесь заблокувати? До яких ключів реєстру ви намагаєтесь зупинити його написання? Залежно від того, в яку частину реєстру ви намагаєтеся запобігти написанню, потенційно ви можете просто заборонити всім. Але для мене, це пахне XY проблема ; що АКТУАЛЬНА проблема, яку ви намагаєтеся вирішити, блокуючи запис реєстру?
Ƭᴇcʜιᴇ007

У Linux можна застосовувати механізми обов'язкового контролю доступу до додатків через такі системи, як SeLinux та AppArmour, але у Windows все базується на користувачі. дивіться тут для більш детальної інформації: msdn.microsoft.com/en-us/library/windows/desktop/…
Франк Томас

@ Ƭᴇcʜιᴇ007 Правда. У Windows також є обов'язковий контроль доступу, і тут може бути корисно низька цілісність.
Бен Н

Відповіді:


3

Вибачте, це неможливо, принаймні, не настільки, наскільки ви хочете. Як згадується в коментарях Ƭᴇcʜιᴇ007, весь контроль доступу до Windows базується на користувачах. Кожен процес має доданий до нього маркер, який визначає, яким користувачем він працює. Немає різниці між виконанням дії та програмою, що працює під вашим обліковим записом, виконуючи цю дію, оскільки ви робите буквально все через той чи інший процес. "Програми не атакують користувачів; користувачі атакують користувачів."

Крім того, практично кожен процес має доступ до Реєстру. Навіть якщо сама програма не має явного доступу до реєстру, іспит з " Монітором процесів" виявляє, що кожен додаток GUI починається з завантаження судна з реєстру, щоб зрозуміти, як налаштувати графічні елементи управління. Запустіть Монітор процесів у програмі, на вашу думку, не потрібен Реєстр; ти здивуєшся.

Але якщо ви хочете заблокувати всі записи та лише записи, насправді щось може допомогти. У Windows є поняття "рівень цілісності", що входить до складу UAC. В основному програма, що працює на певному рівні цілісності, не може записувати в об'єкти, позначені більш високим рівнем цілісності. Звичайні процеси та звичайні файли (та ключі реєстру) мають середній рівень цілісності, але ви можете вручну запускати процеси з низьким рівнем. Завантажте інструмент PsExec . Якщо ви хочете створити командний рядок, який не може записатись у звичайні місця, запустіть це:

psexec -l -i cmd

-lПеремикач встановлює низькі цілісності; -iперемикач робить процес інтерактивним. Отриманий командний рядок може записувати лише в місця, спеціально позначені як Низька цілісність.

C:\Users\Ben>reg add HKCU\Test
ERROR: Access is denied.

Ця команда працює у звичайному командному рядку, але не у такому вигляді заблокованого.


1

Іншим рішенням є використання Sandboxie . Ця програма може виконувати будь-який процес всередині пісочної скриньки, так що будь-які зміни в системі, внесені цим процесом, можуть бути скасовані.

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