Примечание: основная проблема для меня заключается в том, чтобы иметь доступ к общему сетевому ресурсу, который я (пользователь с правами администратора Win 7) установил, когда я запускаю программу с повышенными правами. Обычно у программы с повышенными привилегиями не будет доступа к моим общим сетевым ресурсам без повышенных прав.
В соответствии с Microsoft Параметр реестра EnableLinkedConnections позволит процессам с повышенными привилегиями получать доступ к сетевому ресурсу текущего процесса проводника, вошедшего в систему (без повышенных прав).
Это объяснение имеет смысл:
[...] Когда вы являетесь членом группы администраторов и входите в систему, ваша учетная запись блокируется UAC для непривилегированного пользователя. Этот рабочий контекст полностью отделен от контекста, который вы получаете, когда вы щелкаете правой кнопкой мыши Командную строку и запускаете от имени администратора. Как вы, наверное, заметили, сетевые диски, подключенные в одном контексте, не видны в другом. [...]
Эта ветка форума спрашивает об уязвимостях, открытых этой настройкой. В ответе даны ссылки на статья насчет отключения подсказок UAC (ну я так понимаю).
Теперь вопрос в том, что означает параметр реестра EnableLinkedConnections делать или позволять в системе Windows 7, учитывая, что мы не работает в доменной среде.
Изменить: меня особенно интересует, влияет ли этот параметр только на (видимость) сетевых дисков или имеет какие-либо другие последствия.
Не имея доступа к исходным текстам Windows, трудно сказать что-либо, кроме предположений. Помимо этого отказа от ответственности, вот что я смог почерпнуть, прочитав это:
UAC создает два токена безопасности при входе в систему: повышенный токен содержащий полное членство пользователя в группах, и ограниченный токен из которого исключено членство в группе «Администраторы». Каждый маркер содержит отдельный локальный уникальный идентификатор (LUID), который идентифицирует сеанс входа в систему. Это два отдельных и разных сеанса входа в систему.
Начиная с Windows 2000 Server SP2, подключенные диски (которые представлены как символические ссылки в пространстве имен диспетчера объектов) помечаются LUID маркера, который их создал (вы можете найти некоторые ссылки Microsoft на это поведение в этой статье KBase, и вы можете узнать больше о механизме функции в этом сообщении в блоге). Суть этой функции заключается в том, что подключенные диски, созданные в одном сеансе входа, недоступны для другого сеанса входа.
Установка EnableLinkedConnections value запускает поведение службы LanmanWorkstation и подсистемы безопасности LSA (LSASS.EXE), заставляя LSA копировать диски, сопоставленные с одним из токенов пользователей, в контекст другого токена. Это позволяет дискам, сопоставленным с повышенным токеном, быть видимыми для ограниченного токена и наоборот. Нет никаких особенностей в поведении этой функции в отношении домена по сравнению с средой, не входящей в домен. Если ваши пользователи работают с учетными записями «Администратор» в среде, не относящейся к домену, их ограниченные токены и токены с повышенными правами по умолчанию будут иметь независимые сопоставления дисков.
Что касается уязвимости, официальная документация от Microsoft, похоже, отсутствует. Я нашел комментарий и ответ от сотрудника Microsoft вопрос о потенциальных уязвимостях в разговоре о UAC в 2007 году. Учитывая, что ответ исходит от Джона Шварца, которого в то время называли «Архитектор UAC», я бы склонен считать его ответ заслуживающим доверия. Вот суть его ответа на следующий запрос: «... Я не нашел никакой информации, чтобы описать, что на самом деле происходит технически, или если это открывает какие-либо лазейки UAC. Вы можете прокомментировать?»
Технически это открывает небольшую лазейку, поскольку вредоносное ПО без повышенных прав теперь может «предварительно засеять» букву диска + сопоставление с повышенным контекстом - это должно быть с низким уровнем риска, если только вы не получите что-то, специально предназначенное для вашей среды.
Лично я не могу придумать способ «использовать» эту лазейку, поскольку «заполнение» повышенного токена сопоставлением дисков по-прежнему потребует от пользователя фактического повышения и выполнения чего-то вредоносного из этого «засеянного» сопоставления дисков. Однако я не исследователь безопасности, и, возможно, я не подхожу к этому с хорошим настроем, чтобы придумывать потенциальные эксплойты.
Я уклонился от использования EnableLinkedConnections ценность на сайтах моих клиентов, продолжая тенденцию, которую мы начали, когда клиенты начали развертывать Windows NT 4.0, - вход пользователей в систему с ограниченными учетными записями. Это хорошо работало у нас в течение многих лет и продолжает хорошо работать в Windows 7.
Проще говоря, он связывает ваши учетные данные суперпользователя с вашими обычными учетными данными. Это, конечно, более сложно, но, по сути, даже ваша учетная запись «администратора» в Windows 7 не является администратором, но для выполнения множества операций необходимо выполнять эквивалент SUDO в Linux. Когда вы подключаете сетевой диск, вам нужно сделать это, но сетевой диск становится сопоставленным только для суперпользователя, а не для обычного пользователя. Этот параметр реестра связывает учетные данные суперпользователя со стандартными с целью подключения дисков. Таким образом, оба могут получить доступ к подключенному диску, а не только к суперпользователю.