В прошлой статье речь шла о проблеме использования RunAs на серверах, в этой представляю свою концепцию безопасного запуска программ от имени администратора, причём этот способ можно реализовать полностью вручную, без дополнительных программ, однако и сама программа для упрощения и ускорения настройки тоже имеется.
Идея безопасного запуска программ от имени администратора состоит в создании специальной учётной записи, которая будет ограничена во всём, кроме возможности запуска строго определённых программ. Допускается, что пользователь сможет узнать пароль такого ограниченного администратора, но никак не сможет применить эти данные для повышения прав или изменения параметров сервера. Центральной частью защиты будет выступать AppLocker, он работает на серверных системах и некоторых клиентских максимальных и корпоративных редакциях, но так как я работаю с серверами и создавал решение в первую очередь под свои задачи, далее речь будет идти исключительно о серверных системах.
Ручная настройка
- Создаём отдельного пользователя с правами администратора и сложным паролем. Имя в этом примере будет RestAdmin (от Restricted Administrator).
- Включаем AppLocker, если он ещё не включен, и переводим службу удостоверенных приложений в автоматический запуск, создаём правила по умолчанию.
- В каждый раздел AppLocker добавляем запрет для RestAdmin на запуск всего, а разрешённые программы будем добавлять в виде исключений по необходимости.
- В локальной политике безопасности устанавливаем параметр «отказать в доступе к этому компьютеру из сети» для пользователя RestAdmin.
Теперь можно запустить «runas /savecred /user:RestAdmin calc» для сохранения пароля и теста, что программа без исключений не запустилась. Далее можно создавать ярлыки для текущего пользователя с запуском runas в свёрнутом виде, который и запустит нужное приложение от имени RestAdmin. К сожалению runas не поддерживает UAC, поэтому нужно будет либо его отключать, либо использовать программу RestAdmin. Альтернативный вариант — использовать промежуточную программу, которая будет получать параметры запуска и запрашивать повышение прав.
Автоматическая настройка
Программа RestAdmin сделана для ускорения и автоматизации ручных настроек. Её работа специально ограничена серверными системами, где AppLocker точно работает.
При первом запуске от имени администратора без параметров программа создаёт учётную запись RestAdmin в группе администраторов с длинным случайным паролем и сохраняет его в неявном виде для собственного использования, а именно для запуска разрешённых программ от имени RestAdmin. Для обычного пользователя достать пароль таким способом будет проблематично, особенно если он не сможет запускать сторонние программы для перехвата, но весь смысл этого решения в том, что даже знание пароля этого отдельного администратора не даст пользователю преимуществ.
Далее для RestAdmin в локальной политике безопасности устанавливается параметр «отказать в доступе к этому компьютеру из сети», таким образом даже при знании пароля сервером нельзя будет управлять по сети — ни подключиться к общим папкам, ни запустить произвольную программу (например через PsExec), ни подключить реестр удалённо, ни зайти на сервер терминалов по RDP, даже локально.
Затем к правилам AppLocker добавляется запрещающее правило на всё для RestAdmin, а если правил по умолчанию не было, то создаются и они. Служба «удостоверенные приложения» настраивается на автоматический запуск (по умолчанию — вручную) и запускается. Важный момент — управлять правилами AppLocker через PowerShell можно только начиная с Server 2012, поэтому для Server 2008 R2 вам нужно будет создать эти политики вручную, т. е. выполнить пункты 2-3 из раздела ручной настройки. Обратите внимание на то, что правила AppLocker начинают работать не мгновенно, а через пару минут после первого запуска службы «удостоверенные приложения» (отследить это можно по журналу приложений и коду 8001), но при последующих перезапусках службы или сервера правила будут работать сразу же.
После этого RestAdmin скопирует себя в каталог Windows (для работы ярлыков нужен именно этот путь) и сообщит об успешной установке. На всякий случай рекомендуется проверить, что все пункты 1-4 из ручной настройки действительно выполнены безупречно, от этого зависит безопасность сервера.
Теперь программу RestAdmin можно использовать для создания ярлыков к запускаемым программам — если перетянуть мышкой любой exe-файл на RestAdmin.exe (расположенный не по пути Windows\RestAdmin.exe), на рабочем столе тут же создастся ярлык для запуска этой программы в качестве параметра к RestAdmin, и уже запуск указанного exe-файла с такого ярлыка будет происходить от имени ограниченного администратора. Готовый ярлык будет иметь имя и значок целевой программы, его можно переименовать и поместить на рабочий стол определённым пользователям. Также ярлык можно создать вручную.
После всех этих настроек остаётся только добавить исключения в правила AppLocker, прямо в запрещающее правило RestAdmin. Если у вашей программы есть зависимости от сторонних программ, то в исключения необходимо добавить и их (после изучения и оценки рисков, разумеется) — в любом случае, если что-то не будет запускаться как ожидается, записи об этих событиях можно легко найти в журнале. Исключения можно делать на основе хешей, путей или сертификатов, но системные администраторы и так это знают.
Удаление настроек
Чтобы удалить все сделанные изменения, нужно вручную проделать следующие шаги:
- Удалить пользователя RestAdmin и его профиль, а также RestAdmin.exe из папки %WinDir% (как правило C:\Windows) и созданные для него ярлыки.
- Удалить RestAdmin или его SID из параметра «отказать в доступе к этому компьютеру из сети» локальной политики безопасности.
- Удалить запрещающие правила для RestAdmin в каждой из 4-х секций AppLocker и при необходимости отключить AppLocker.
Примечания
Начиная с версии 1.1 добавлена поддержка UAC, а для запуска программ также необходимо добавить в исключения AppLocker путь %WinDir%\RestAdmin.exe (добавится автоматически, если вы устанавливаете RestAdmin в первый раз). Начиная с версии 1.2 добавлен запрос на повышение прав для запускаемой программы независимо от манифеста. Версия 1.3 включает автозапуск службы вторичного входа в систему, без которой не будет работать запуск программ от имени другого пользователя. Версия 1.4 исправляет проблему, когда правила AppLocker могли не добавляться, если другие правила уже существовали до установки RestAdmin. В 1.5 добавлена английская локализация.
Если вы не хотите видеть диалог повышения прав при каждом запуске ярлыка, его можно отключить для всех администраторов в локальной политике безопасности, параметр «контроль учётных записей: поведение запроса на повышение прав для администраторов в режиме одобрения администратором» нужно выставить в положение «повышение прав без запроса».
Обратите внимание, что целевая программа должна быть доступна для чтения пользователем с ограниченными правами.
Тестирование
Программа уже хорошо себя зарекомендовала на рабочих серверах. Если у вас есть замечания по безопасности этой концепции или вы столкнётесь с другими трудностями в реализации идеи при ручной или автоматической настройке — сообщите об этом.
Скачать: RestAdmin 1.5 [0.3 MB]
2 чая и пирога этому замечательному господину!
Спасибо за Ваши труды! Можно реализовать версию для толстых клиентов, поверьте очень нужно.
Большое спасибо за Ваши труды!
Извините для мой руский и поетому буду списвать боль английскому 😉
Windows Server 2019 Standart EN/ES
Run As Administrator > RestAdmin и ошибка set AppLocker… (включен)
…после етого >>
gpcedit.msc >> Seems that is added OK via RestAdmin
AppLocker > Added Manually and exlusion of the program paths and hash which must be Run As Administrator due to the fact that cannot run as normal user and now all users are administrators so this was the reason to join the ship…
Now try to launch and nothing happens.
netplwiz >> RestAdmin is as a Administrator
C:\Windows\RestAdmin is there
C:\Users\RestAdmin profile folder is there!
whats wrong or some idea as really will use this. You deserve my greatifulness and admirations!
Almost on daily base I use SmartMon,LightBackup, SmartFix is a must o almost all new instalations….Thank you thank you for this greatest pieces of software that you make! Also the Update Packs for Windows 7 it;s just amazing and really respect!
Please write verbatim what error you received. Now all the dialogues in the program are in Russian, as this is a prototype. Also, I did not understand what exactly does not work for you, because the principle itself can be done manually. If you understand how AppLocker works, you should be able to customize it.
You are right.
After all I add AppLocker rules manually to their default atate.
Still test it, but is promising and as all your programs all.
Respect and thanks
Бесплатный софт без исходников для работы с админскими правами и паролями от «человека в интернете». Ну-ну.
Замечание верное, но:
— описанная концепция для случая ручной настройки — уже ценность;
— для простоты/скорости развертывания экспериментов в тестовом виртуале программа очень даже полезна.
Никто не заставляет использовать программу в рабочей среде.
Так что simplix — спасибо.
В версии 1.5 добавлена английская локализация, а до этого были исправлены все замеченные нюансы при установке, история изменений есть в шапке. На данный момент программа уже два года отлично работает на множестве серверов и до сих пор у этой концепции и реализации не найдены проблемы, поэтому могу рекомендовать для использования.