Что делает параметр реестра EnableLinkedConnections на техническом уровне?

15

Примечание. Основная проблема для меня - получить доступ к сетевому ресурсу, который я (администратор Win 7) настроил при запуске программы с повышенными правами. Обычно программа с повышенными правами не имеет доступа к моим сетевым ресурсам без повышенных прав.

Согласно Microsoft, параметр реестра EnableLinkedConnections позволит процессам с повышенными правами получить доступ к сетевому ресурсу текущего вошедшего (не повышенного уровня) процесса обозревателя.

Это объяснение имеет некоторый смысл:

[...] Когда вы входите в группу «Администраторы» и входите в систему, ваша учетная запись отправляется UAC непривилегированному пользователю. Этот рабочий контекст полностью отделен от контекста, который вы получаете, когда вы щелкаете правой кнопкой мыши по Командная строка и запускаетесь от имени администратора. Как вы, наверное, заметили, сетевые диски, подключенные в одном контексте, не видны в другом. [...]

Эта ветка форума спрашивает об уязвимостях, открытых этим параметром. В ответе даны ссылки на статью об отключении подсказок UAC (или я так понимаю).

Теперь вопрос заключается в том, что параметр реестра EnableLinkedConnections делает или разрешает в системе Windows 7, учитывая, что мы не работаем в доменной среде .


Изменить: Одна вещь, которая меня особенно интересует, заключается в том, влияет ли этот параметр только (видимость) сетевых дисков или имеет какие-либо другие последствия.

Мартин
источник
С этим связан
UuDdLrLrSs

Ответы:

18

Не имея доступа к исходным текстам в Windows, трудно сказать что-то, что не является спекуляцией. Помимо этого заявления об отказе, вот что я смог найти, прочитав это:

UAC создает два токена безопасности при входе в систему: повышенный токен, содержащий полные членства пользователя в группе, и ограниченный токен, в который входит членство в группе «Администраторы». Каждый токен содержит отдельный локально уникальный идентификатор (LUID), который идентифицирует сеанс входа в систему. Это две отдельные и разные сессии входа в систему.

Начиная с Windows 2000 Server SP2, сопоставленные диски (которые представлены в виде символических ссылок в пространстве имен диспетчера объектов) помечены LUID токена, который их создал (вы можете найти некоторые ссылки Microsoft на это поведение в этой статье KBase , и вы можете узнайте больше о механике функции в этой записи блога ). Суть этой функции заключается в том, что подключенные диски, созданные одним сеансом входа, не доступны для другого сеанса входа.

Установка значения EnableLinkedConnections запускает поведение в службе LanmanWorkstation и подсистеме безопасности LSA (LSASS.EXE), чтобы заставить LSA копировать диски, сопоставленные одним из токенов пользователя, в контекст другого токена. Это позволяет дискам, сопоставленным с повышенным токеном, быть видимыми для ограниченного токена и наоборот. Нет никаких особенностей поведения этой функции по отношению к домену по сравнению с не доменной средой. Если ваши пользователи работают с учетными записями «Администратор» в среде, отличной от домена, их ограниченные токены и маркеры с повышенными правами по умолчанию будут иметь независимые сопоставления дисков.

С точки зрения уязвимости официальная документация от Microsoft, похоже, отсутствует. Я нашел комментарий и ответ от сотрудника Microsoft, спрашивающего о потенциальных уязвимостях в разговоре об UAC от 2007 года. Учитывая, что ответ исходит от Джона Шварца, который в то время назывался «Архитектор UAC», я бы склонны считать его ответ заслуживающим доверия. Вот суть его ответа на следующий запрос: «... Я не нашел никакой информации, чтобы описать, что на самом деле происходит технически, или если это открывает какие-либо лазейки UAC. Можете ли вы прокомментировать?»

Технически, это открывает небольшую лазейку, так как вредоносные программы без повышенных прав теперь могут «предварительно заполнить» букву диска + отображение в расширенном контексте - это должно быть с низким уровнем риска, если вы не получите что-то, специально предназначенное для вашей среды.

Лично я не могу придумать, как «эксплуатировать» эту лазейку, поскольку «заполнение» маркера с повышенными правами с помощью сопоставления дисков потребует от пользователя фактического повышения и выполнения чего-то вредоносного из этого «засеянного» сопоставления дисков. Я не исследователь безопасности, хотя, и, возможно, я не подхожу к этому с хорошим настроем, чтобы придумать потенциальные эксплойты.

Я уклонился от использования значения EnableLinkedConnections на своих сайтах клиентов, продолжая тенденцию, которая возникла у нас, когда клиенты начали развертывание Windows NT 4.0, когда пользователи входят в систему с ограниченными учетными записями. Это хорошо работало в течение многих лет и продолжает хорошо работать в Windows 7.

Эван Андерсон
источник
RE: «Я уклонился, используя значение EnableLinkedConnections ... [путем] входа пользователей с ограниченными учетными записями». - могут ли ограниченные учетные записи пользователей запускать приложения от имени администратора? Я думал, что они не могли. (Если они не могут, то я не понимаю, как это уклоняется от проблемы - я имею в виду, если бы я пожаловался механику, что двигатель моей машины визжит, когда я еду со скоростью 80 миль в час, я бы не принял его исправление сплющить мои шины [хотя это сделало бы невозможным движение со скоростью 80 миль в час, это не
решило
1
@ BrainSlugs83 - Вы фиксируете комментарий в крошечном абзаце длинного ответа. Ответ дал ОП, что они хотели (я предполагаю, так как они приняли): описание того, что делает значение реестра. Я сделал этот комментарий, чтобы сказать оператору, что есть способ избежать необходимости использовать EnableLinkedConnections - просто не давайте пользователям учетные записи администратора, и необходимость в этом устраняется. Это 2013 год - ограниченные учетные записи пользователей были советами Microsoft в течение почти 10 лет. Ваша машина / аналог механики напряжена, ИМО. Это не «проблема» с операционной системой - это функция безопасности.
Эван Андерсон
О, я абсолютно зациклен; также на случай, если возникла путаница: я не утверждаю, что ваш ответ неверен. Это было очень хорошо, я даже проголосовал за это! - Но я зацикливаюсь на очень реальной проблеме, которая у меня возникла - следовательно, вопрос, который я поставил перед вами, чтобы определить, будет ли работать это альтернативное решение для меня: «Могут ли ограниченные учетные записи пользователей запускать приложения в качестве администратора?» ; Из вашего ответа я понимаю, что мое первоначальное предположение было верным.
BrainSlugs83
Кроме того, я категорически не согласен с тем, что аналогия натянута. Отказ от возможности запускать приложения от имени администратора был бы полностью похож на то, чтобы дать моему компьютеру спущенную шину. У меня есть проект Microsoft Visual Studio, который не удается скомпилировать на этапе подписания кода, если Visual Studio не запущен с «Запуск от имени администратора». Я пытался решить эту проблему, но не нашел решения ни в Google, ни в блогах, ни в переполнении стека (это не единичный случай). Возможность запуска приложений в качестве администратора является обязательной для некоторых пользователей (даже если используется только программное обеспечение Microsoft).
BrainSlugs83
3
Если вам нужно запускать приложения от имени администратора, я бы порекомендовал иметь вторую учетную запись пользователя и использовать ее для запуска приложения с повышенными правами с помощью «Запуск от имени администратора». Это единственный выбор, который я вижу. Если приложение не работает должным образом с «Запустить от имени», значит, оно неисправно. (Я также утверждаю, что любое приложение, которое требует прав администратора и не является приложением для администрирования сети или компьютера, также является дефектным - программное обеспечение MSFT или нет.) Я считаю, что дефектное программное обеспечение является одним из самых неприятных аспектов моей работы, поэтому я Я тоже могу понять ваше разочарование. Я бы хотел, чтобы было хорошее решение.
Эван Андерсон
1

Проще говоря, он связывает ваши полномочия суперпользователя с вашими обычными учетными данными. Это, конечно, более сложно, но в основном даже ваша учетная запись «администратор» в Windows 7 не является администратором, но для выполнения множества операций необходимо сделать эквивалент SUDO в Linux. Когда вы подключаете сетевой диск, вам нужно это сделать, но сетевой диск становится подключенным только для суперпользователя, а не обычного пользователя. Этот параметр реестра связывает учетные данные суперпользователя со стандартными для назначенных дисков. Таким образом, оба могут получить доступ к подключенному диску, а не только к суперпользователю.

MaQleod
источник
Не могли бы вы уточнить, действительно ли этот параметр влияет только на сетевые диски? Или это имеет какой-то другой эффект? (см. правку)
Мартин