Настройка групповых политик ограниченного использования программ в 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).
Надеюсь описанный метод окажется для кого-то полезным и новым. По крайней мере я о таком ни от кого не слышал и нигде не видел.