Чи можна запобігти доступу певної програми до реєстру Windows? Я знаю, що є ACL, щоб заблокувати користувача, але як бути з виконаним контролем?
Чи можна запобігти доступу певної програми до реєстру Windows? Я знаю, що є ACL, щоб заблокувати користувача, але як бути з виконаним контролем?
Відповіді:
Вибачте, це неможливо, принаймні, не настільки, наскільки ви хочете. Як згадується в коментарях Ƭᴇcʜιᴇ007, весь контроль доступу до Windows базується на користувачах. Кожен процес має доданий до нього маркер, який визначає, яким користувачем він працює. Немає різниці між виконанням дії та програмою, що працює під вашим обліковим записом, виконуючи цю дію, оскільки ви робите буквально все через той чи інший процес. "Програми не атакують користувачів; користувачі атакують користувачів."
Крім того, практично кожен процес має доступ до Реєстру. Навіть якщо сама програма не має явного доступу до реєстру, іспит з " Монітором процесів" виявляє, що кожен додаток GUI починається з завантаження судна з реєстру, щоб зрозуміти, як налаштувати графічні елементи управління. Запустіть Монітор процесів у програмі, на вашу думку, не потрібен Реєстр; ти здивуєшся.
Але якщо ви хочете заблокувати всі записи та лише записи, насправді щось може допомогти. У Windows є поняття "рівень цілісності", що входить до складу UAC. В основному програма, що працює на певному рівні цілісності, не може записувати в об'єкти, позначені більш високим рівнем цілісності. Звичайні процеси та звичайні файли (та ключі реєстру) мають середній рівень цілісності, але ви можете вручну запускати процеси з низьким рівнем. Завантажте інструмент PsExec . Якщо ви хочете створити командний рядок, який не може записатись у звичайні місця, запустіть це:
psexec -l -i cmd
-l
Перемикач встановлює низькі цілісності; -i
перемикач робить процес інтерактивним. Отриманий командний рядок може записувати лише в місця, спеціально позначені як Низька цілісність.
C:\Users\Ben>reg add HKCU\Test
ERROR: Access is denied.
Ця команда працює у звичайному командному рядку, але не у такому вигляді заблокованого.
Іншим рішенням є використання Sandboxie . Ця програма може виконувати будь-який процес всередині пісочної скриньки, так що будь-які зміни в системі, внесені цим процесом, можуть бути скасовані.