Настройка групповых политик ограниченного использования программ в Windows 7
Прочитав статью Windows-компьютер без антивирусов, я загорелся такой идеей обеспечения безопасности и решил попробовать сделать у себя так же.
Поскольку у меня стоит Windows 7 Professional, первой идеей оказалось использование AppLocker'a, однако быстро выяснилось, что работать в моей редакции винды он не хочет, и требует Ultimate или Enterprise. В силу лицензионности моей винды и пустоты моего кошелька, вариант с AppLocker'ом отпал.
Следующей попыткой стала настройка групповых политик ограниченного использования программ. Поскольку AppLocker является «прокачанной» версией данного механизма, логично попробовать именно политики, тем более они бесплатны для пользователей Windows :)
Заходим в настройки:
gpedit.msc -> Конфигурация компьютера -> Конфигурация Windows -> Параметры безопасности -> Политики ограниченного использования программ
В случае, если правил нет, система предложит сгенерировать автоматические правила, разрешающие запуск программ из папки Windows и Program Files. Так же добавим запрещающее правило для пути * (любой путь). В результате мы хотим получить возможность запуска программ только из защищенных системных папок. И что же?
Да, это мы и получим, но вот только маленькая незадача — не работают ярлыки и http ссылки. На ссылки еще можно забить, а без ярлыков жить плоховато.
Если разрешить запуск файлов по маске *.lnk — мы получим возможность создать ярлык для любого исполняемого файла, и по ярлыку запустить его, даже если он лежит не в системной папке. Паршиво.
Запрос в гугл приводит к таким решениям: или разрешить запуск ярлыков из пользовательской папки, либо пользовать сторонние бары с ярлычками. Иначе никак. Лично мне такой вариант не нравится.
В итоге мы сталкиваемся с ситуацией, что *.lnk является с точки зрения винды не ссылкой на исполняемый файл, а исполняемым файлом. Бредово, но что ж поделать… Хотелось бы, чтобы винда проверяла не местонахождение ярлычка, а местонахождение файла, на который он ссылается.
И тут я нечаянно натолкнулся на настройки списка расширений, являщихся исполняемыми с точки зрения винды (gpedit.msc -> Конфигурация компьютера -> Конфигурация Windows -> Параметры безопасности -> Назначенные типы файлов). Удаляем оттуда LNK и заодно HTTP и релогинимся. Получаем полностью рабочие ярлычки и проверку на местонахождение исполняемого файла.
Было сомнение, можно ли будет передавать через ярлыки параметры — можно, так что все ок.
В результате мы получили реализацию идеи, описанной в статье «Windows-компьютер без антивирусов» без каких либо неудобств для пользователя.
Также для любителей стрелять себе в ногу, можно создать папку в Program Files и кинуть ярлык для нее на рабочий стол, назвав, например «Песочницей». Это позволит запускать оттуда программы без отключения политик, пользуясь защищенным хранилищем (защита через UAC).
Надеюсь описанный метод окажется для кого-то полезным и новым. По крайней мере я о таком ни от кого не слышал и нигде не видел.